mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 16:42:42 +01:00
Update a lot of URLs to use HTTPS
*All* URLs were checked manually, but only once per domain! I mostly concerned myself with URLs in documentation rather than source code because the latter may or may not have impactful changes, while the former should be straight forward. Changes in addition to simply adding an s: - changed pip and pypi references as their location has changed - MPoD (iOS app) url redirects to Regelian, so I replaced those - updated homebrew references Notable observations: - beets.io does have HTTPS set up properly (via gh-pages) - beatport.py uses the old HTTP url for beatport - as does lyrics.py for lyrics.wikia.com - https://tomahawk-player.org/ expired long ago, but the http page redirects to https regardless - none of the sourceforge subdomains have https (in 2019!)
This commit is contained in:
parent
be1daa9771
commit
aa31fea037
59 changed files with 239 additions and 233 deletions
|
|
@ -37,8 +37,8 @@ matrix:
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
- sourceline: "deb http://archive.ubuntu.com/ubuntu/ trusty multiverse"
|
- sourceline: "deb https://archive.ubuntu.com/ubuntu/ trusty multiverse"
|
||||||
- sourceline: "deb http://archive.ubuntu.com/ubuntu/ trusty-updates multiverse"
|
- sourceline: "deb https://archive.ubuntu.com/ubuntu/ trusty-updates multiverse"
|
||||||
packages:
|
packages:
|
||||||
- bash-completion
|
- bash-completion
|
||||||
- gir1.2-gst-plugins-base-1.0
|
- gir1.2-gst-plugins-base-1.0
|
||||||
|
|
|
||||||
42
README.rst
42
README.rst
|
|
@ -1,7 +1,7 @@
|
||||||
.. image:: http://img.shields.io/pypi/v/beets.svg
|
.. image:: https://img.shields.io/pypi/v/beets.svg
|
||||||
:target: https://pypi.python.org/pypi/beets
|
:target: https://pypi.python.org/pypi/beets
|
||||||
|
|
||||||
.. image:: http://img.shields.io/codecov/c/github/beetbox/beets.svg
|
.. image:: https://img.shields.io/codecov/c/github/beetbox/beets.svg
|
||||||
:target: https://codecov.io/github/beetbox/beets
|
:target: https://codecov.io/github/beetbox/beets
|
||||||
|
|
||||||
.. image:: https://travis-ci.org/beetbox/beets.svg?branch=master
|
.. image:: https://travis-ci.org/beetbox/beets.svg?branch=master
|
||||||
|
|
@ -51,28 +51,28 @@ imagine for your music collection. Via `plugins`_, beets becomes a panacea:
|
||||||
If beets doesn't do what you want yet, `writing your own plugin`_ is
|
If beets doesn't do what you want yet, `writing your own plugin`_ is
|
||||||
shockingly simple if you know a little Python.
|
shockingly simple if you know a little Python.
|
||||||
|
|
||||||
.. _plugins: http://beets.readthedocs.org/page/plugins/
|
.. _plugins: https://beets.readthedocs.org/page/plugins/
|
||||||
.. _MPD: http://www.musicpd.org/
|
.. _MPD: https://www.musicpd.org/
|
||||||
.. _MusicBrainz music collection: http://musicbrainz.org/doc/Collections/
|
.. _MusicBrainz music collection: https://musicbrainz.org/doc/Collections/
|
||||||
.. _writing your own plugin:
|
.. _writing your own plugin:
|
||||||
http://beets.readthedocs.org/page/dev/plugins.html
|
https://beets.readthedocs.org/page/dev/plugins.html
|
||||||
.. _HTML5 Audio:
|
.. _HTML5 Audio:
|
||||||
http://www.w3.org/TR/html-markup/audio.html
|
http://www.w3.org/TR/html-markup/audio.html
|
||||||
.. _albums that are missing tracks:
|
.. _albums that are missing tracks:
|
||||||
http://beets.readthedocs.org/page/plugins/missing.html
|
https://beets.readthedocs.org/page/plugins/missing.html
|
||||||
.. _duplicate tracks and albums:
|
.. _duplicate tracks and albums:
|
||||||
http://beets.readthedocs.org/page/plugins/duplicates.html
|
https://beets.readthedocs.org/page/plugins/duplicates.html
|
||||||
.. _Transcode audio:
|
.. _Transcode audio:
|
||||||
http://beets.readthedocs.org/page/plugins/convert.html
|
https://beets.readthedocs.org/page/plugins/convert.html
|
||||||
.. _Discogs: http://www.discogs.com/
|
.. _Discogs: https://www.discogs.com/
|
||||||
.. _acoustic fingerprints:
|
.. _acoustic fingerprints:
|
||||||
http://beets.readthedocs.org/page/plugins/chroma.html
|
https://beets.readthedocs.org/page/plugins/chroma.html
|
||||||
.. _ReplayGain: http://beets.readthedocs.org/page/plugins/replaygain.html
|
.. _ReplayGain: https://beets.readthedocs.org/page/plugins/replaygain.html
|
||||||
.. _tempos: http://beets.readthedocs.org/page/plugins/acousticbrainz.html
|
.. _tempos: https://beets.readthedocs.org/page/plugins/acousticbrainz.html
|
||||||
.. _genres: http://beets.readthedocs.org/page/plugins/lastgenre.html
|
.. _genres: https://beets.readthedocs.org/page/plugins/lastgenre.html
|
||||||
.. _album art: http://beets.readthedocs.org/page/plugins/fetchart.html
|
.. _album art: https://beets.readthedocs.org/page/plugins/fetchart.html
|
||||||
.. _lyrics: http://beets.readthedocs.org/page/plugins/lyrics.html
|
.. _lyrics: https://beets.readthedocs.org/page/plugins/lyrics.html
|
||||||
.. _MusicBrainz: http://musicbrainz.org/
|
.. _MusicBrainz: https://musicbrainz.org/
|
||||||
.. _Beatport: https://www.beatport.com
|
.. _Beatport: https://www.beatport.com
|
||||||
|
|
||||||
Install
|
Install
|
||||||
|
|
@ -81,7 +81,7 @@ Install
|
||||||
You can install beets by typing ``pip install beets``. Then check out the
|
You can install beets by typing ``pip install beets``. Then check out the
|
||||||
`Getting Started`_ guide.
|
`Getting Started`_ guide.
|
||||||
|
|
||||||
.. _Getting Started: http://beets.readthedocs.org/page/guides/main.html
|
.. _Getting Started: https://beets.readthedocs.org/page/guides/main.html
|
||||||
|
|
||||||
Contribute
|
Contribute
|
||||||
----------
|
----------
|
||||||
|
|
@ -90,7 +90,7 @@ Check out the `Hacking`_ page on the wiki for tips on how to help out.
|
||||||
You might also be interested in the `For Developers`_ section in the docs.
|
You might also be interested in the `For Developers`_ section in the docs.
|
||||||
|
|
||||||
.. _Hacking: https://github.com/beetbox/beets/wiki/Hacking
|
.. _Hacking: https://github.com/beetbox/beets/wiki/Hacking
|
||||||
.. _For Developers: http://docs.beets.io/page/dev/
|
.. _For Developers: https://beets.readthedocs.io/en/stable/dev/
|
||||||
|
|
||||||
Read More
|
Read More
|
||||||
---------
|
---------
|
||||||
|
|
@ -99,7 +99,7 @@ Learn more about beets at `its Web site`_. Follow `@b33ts`_ on Twitter for
|
||||||
news and updates.
|
news and updates.
|
||||||
|
|
||||||
.. _its Web site: http://beets.io/
|
.. _its Web site: http://beets.io/
|
||||||
.. _@b33ts: http://twitter.com/b33ts/
|
.. _@b33ts: https://twitter.com/b33ts/
|
||||||
|
|
||||||
Authors
|
Authors
|
||||||
-------
|
-------
|
||||||
|
|
@ -108,4 +108,4 @@ Beets is by `Adrian Sampson`_ with a supporting cast of thousands. For help,
|
||||||
please visit our `forum`_.
|
please visit our `forum`_.
|
||||||
|
|
||||||
.. _forum: https://discourse.beets.io
|
.. _forum: https://discourse.beets.io
|
||||||
.. _Adrian Sampson: http://www.cs.cornell.edu/~asampson/
|
.. _Adrian Sampson: https://www.cs.cornell.edu/~asampson/
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
.. image:: http://img.shields.io/pypi/v/beets.svg
|
.. image:: https://img.shields.io/pypi/v/beets.svg
|
||||||
:target: https://pypi.python.org/pypi/beets
|
:target: https://pypi.python.org/pypi/beets
|
||||||
|
|
||||||
.. image:: http://img.shields.io/codecov/c/github/beetbox/beets.svg
|
.. image:: https://img.shields.io/codecov/c/github/beetbox/beets.svg
|
||||||
:target: https://codecov.io/github/beetbox/beets
|
:target: https://codecov.io/github/beetbox/beets
|
||||||
|
|
||||||
.. image:: https://travis-ci.org/beetbox/beets.svg?branch=master
|
.. image:: https://travis-ci.org/beetbox/beets.svg?branch=master
|
||||||
|
|
@ -48,28 +48,28 @@ Beets는 라이브러리로 디자인 되었기 때문에, 당신이 음악들
|
||||||
만약 Beets에 당신이 원하는게 아직 없다면,
|
만약 Beets에 당신이 원하는게 아직 없다면,
|
||||||
당신이 python을 안다면 `writing your own plugin`_ _은 놀라울정도로 간단하다.
|
당신이 python을 안다면 `writing your own plugin`_ _은 놀라울정도로 간단하다.
|
||||||
|
|
||||||
.. _plugins: http://beets.readthedocs.org/page/plugins/
|
.. _plugins: https://beets.readthedocs.org/page/plugins/
|
||||||
.. _MPD: http://www.musicpd.org/
|
.. _MPD: https://www.musicpd.org/
|
||||||
.. _MusicBrainz music collection: http://musicbrainz.org/doc/Collections/
|
.. _MusicBrainz music collection: https://musicbrainz.org/doc/Collections/
|
||||||
.. _writing your own plugin:
|
.. _writing your own plugin:
|
||||||
http://beets.readthedocs.org/page/dev/plugins.html
|
https://beets.readthedocs.org/page/dev/plugins.html
|
||||||
.. _HTML5 Audio:
|
.. _HTML5 Audio:
|
||||||
http://www.w3.org/TR/html-markup/audio.html
|
http://www.w3.org/TR/html-markup/audio.html
|
||||||
.. _albums that are missing tracks:
|
.. _albums that are missing tracks:
|
||||||
http://beets.readthedocs.org/page/plugins/missing.html
|
https://beets.readthedocs.org/page/plugins/missing.html
|
||||||
.. _duplicate tracks and albums:
|
.. _duplicate tracks and albums:
|
||||||
http://beets.readthedocs.org/page/plugins/duplicates.html
|
https://beets.readthedocs.org/page/plugins/duplicates.html
|
||||||
.. _Transcode audio:
|
.. _Transcode audio:
|
||||||
http://beets.readthedocs.org/page/plugins/convert.html
|
https://beets.readthedocs.org/page/plugins/convert.html
|
||||||
.. _Discogs: http://www.discogs.com/
|
.. _Discogs: https://www.discogs.com/
|
||||||
.. _acoustic fingerprints:
|
.. _acoustic fingerprints:
|
||||||
http://beets.readthedocs.org/page/plugins/chroma.html
|
https://beets.readthedocs.org/page/plugins/chroma.html
|
||||||
.. _ReplayGain: http://beets.readthedocs.org/page/plugins/replaygain.html
|
.. _ReplayGain: https://beets.readthedocs.org/page/plugins/replaygain.html
|
||||||
.. _tempos: http://beets.readthedocs.org/page/plugins/acousticbrainz.html
|
.. _tempos: https://beets.readthedocs.org/page/plugins/acousticbrainz.html
|
||||||
.. _genres: http://beets.readthedocs.org/page/plugins/lastgenre.html
|
.. _genres: https://beets.readthedocs.org/page/plugins/lastgenre.html
|
||||||
.. _album art: http://beets.readthedocs.org/page/plugins/fetchart.html
|
.. _album art: https://beets.readthedocs.org/page/plugins/fetchart.html
|
||||||
.. _lyrics: http://beets.readthedocs.org/page/plugins/lyrics.html
|
.. _lyrics: https://beets.readthedocs.org/page/plugins/lyrics.html
|
||||||
.. _MusicBrainz: http://musicbrainz.org/
|
.. _MusicBrainz: https://musicbrainz.org/
|
||||||
.. _Beatport: https://www.beatport.com
|
.. _Beatport: https://www.beatport.com
|
||||||
|
|
||||||
설치
|
설치
|
||||||
|
|
@ -78,7 +78,7 @@ Beets는 라이브러리로 디자인 되었기 때문에, 당신이 음악들
|
||||||
당신은 ``pip install beets`` 을 사용해서 Beets를 설치할 수 있다.
|
당신은 ``pip install beets`` 을 사용해서 Beets를 설치할 수 있다.
|
||||||
그리고 `Getting Started`_ 가이드를 확인할 수 있다.
|
그리고 `Getting Started`_ 가이드를 확인할 수 있다.
|
||||||
|
|
||||||
.. _Getting Started: http://beets.readthedocs.org/page/guides/main.html
|
.. _Getting Started: https://beets.readthedocs.org/page/guides/main.html
|
||||||
|
|
||||||
컨트리뷰션
|
컨트리뷰션
|
||||||
----------
|
----------
|
||||||
|
|
@ -87,7 +87,7 @@ Beets는 라이브러리로 디자인 되었기 때문에, 당신이 음악들
|
||||||
당신은 docs 안에 `For Developers`_ 에도 관심이 있을수 있다.
|
당신은 docs 안에 `For Developers`_ 에도 관심이 있을수 있다.
|
||||||
|
|
||||||
.. _Hacking: https://github.com/beetbox/beets/wiki/Hacking
|
.. _Hacking: https://github.com/beetbox/beets/wiki/Hacking
|
||||||
.. _For Developers: http://docs.beets.io/page/dev/
|
.. _For Developers: https://beets.readthedocs.io/en/stable/dev/
|
||||||
|
|
||||||
Read More
|
Read More
|
||||||
---------
|
---------
|
||||||
|
|
@ -95,8 +95,8 @@ Read More
|
||||||
`its Web site`_ 에서 Beets에 대해 조금 더 알아볼 수 있다.
|
`its Web site`_ 에서 Beets에 대해 조금 더 알아볼 수 있다.
|
||||||
트위터에서 `@b33ts`_ 를 팔로우하면 새 소식을 볼 수 있다.
|
트위터에서 `@b33ts`_ 를 팔로우하면 새 소식을 볼 수 있다.
|
||||||
|
|
||||||
.. _its Web site: http://beets.io/
|
.. _its Web site: https://beets.io/
|
||||||
.. _@b33ts: http://twitter.com/b33ts/
|
.. _@b33ts: https://twitter.com/b33ts/
|
||||||
|
|
||||||
저자들
|
저자들
|
||||||
-------
|
-------
|
||||||
|
|
@ -105,4 +105,4 @@ Read More
|
||||||
돕고 싶다면 `forum`_.를 방문하면 된다.
|
돕고 싶다면 `forum`_.를 방문하면 된다.
|
||||||
|
|
||||||
.. _forum: https://discourse.beets.io
|
.. _forum: https://discourse.beets.io
|
||||||
.. _Adrian Sampson: http://www.cs.cornell.edu/~asampson/
|
.. _Adrian Sampson: https://www.cs.cornell.edu/~asampson/
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ class Type(object):
|
||||||
For fixed fields the type of `value` is determined by the column
|
For fixed fields the type of `value` is determined by the column
|
||||||
type affinity given in the `sql` property and the SQL to Python
|
type affinity given in the `sql` property and the SQL to Python
|
||||||
mapping of the database adapter. For more information see:
|
mapping of the database adapter. For more information see:
|
||||||
http://www.sqlite.org/datatype3.html
|
https://www.sqlite.org/datatype3.html
|
||||||
https://docs.python.org/2/library/sqlite3.html#sqlite-and-python-types
|
https://docs.python.org/2/library/sqlite3.html#sqlite-and-python-types
|
||||||
|
|
||||||
Flexible fields have the type affinity `TEXT`. This means the
|
Flexible fields have the type affinity `TEXT`. This means the
|
||||||
|
|
|
||||||
|
|
@ -542,7 +542,7 @@ def choose_candidate(candidates, singleton, rec, cur_artist=None,
|
||||||
print_(u"No matching release found for {0} tracks."
|
print_(u"No matching release found for {0} tracks."
|
||||||
.format(itemcount))
|
.format(itemcount))
|
||||||
print_(u'For help, see: '
|
print_(u'For help, see: '
|
||||||
u'http://beets.readthedocs.org/en/latest/faq.html#nomatch')
|
u'https://beets.readthedocs.org/en/latest/faq.html#nomatch')
|
||||||
sel = ui.input_options(choice_opts)
|
sel = ui.input_options(choice_opts)
|
||||||
if sel in choice_actions:
|
if sel in choice_actions:
|
||||||
return choice_actions[sel]
|
return choice_actions[sel]
|
||||||
|
|
|
||||||
|
|
@ -73,8 +73,8 @@ class AcousticBrainzSubmitPlugin(plugins.BeetsPlugin):
|
||||||
call([self.extractor])
|
call([self.extractor])
|
||||||
except OSError:
|
except OSError:
|
||||||
raise ui.UserError(
|
raise ui.UserError(
|
||||||
u'No extractor command found: please install the '
|
u'No extractor command found: please install the extractor'
|
||||||
u'extractor binary from http://acousticbrainz.org/download'
|
u' binary from https://acousticbrainz.org/download'
|
||||||
)
|
)
|
||||||
except ABSubmitError:
|
except ABSubmitError:
|
||||||
# Extractor found, will exit with an error if not called with
|
# Extractor found, will exit with an error if not called with
|
||||||
|
|
|
||||||
|
|
@ -311,6 +311,9 @@ class CoverArtArchive(RemoteArtSource):
|
||||||
|
|
||||||
class Amazon(RemoteArtSource):
|
class Amazon(RemoteArtSource):
|
||||||
NAME = u"Amazon"
|
NAME = u"Amazon"
|
||||||
|
if util.SNI_SUPPORTED:
|
||||||
|
URL = 'https://images.amazon.com/images/P/%s.%02i.LZZZZZZZ.jpg'
|
||||||
|
else:
|
||||||
URL = 'http://images.amazon.com/images/P/%s.%02i.LZZZZZZZ.jpg'
|
URL = 'http://images.amazon.com/images/P/%s.%02i.LZZZZZZZ.jpg'
|
||||||
INDICES = (1, 2)
|
INDICES = (1, 2)
|
||||||
|
|
||||||
|
|
@ -325,6 +328,9 @@ class Amazon(RemoteArtSource):
|
||||||
|
|
||||||
class AlbumArtOrg(RemoteArtSource):
|
class AlbumArtOrg(RemoteArtSource):
|
||||||
NAME = u"AlbumArt.org scraper"
|
NAME = u"AlbumArt.org scraper"
|
||||||
|
if util.SNI_SUPPORTED:
|
||||||
|
URL = 'https://www.albumart.org/index_detail.php'
|
||||||
|
else:
|
||||||
URL = 'http://www.albumart.org/index_detail.php'
|
URL = 'http://www.albumart.org/index_detail.php'
|
||||||
PAT = r'href\s*=\s*"([^>"]*)"[^>]*title\s*=\s*"View larger image"'
|
PAT = r'href\s*=\s*"([^>"]*)"[^>]*title\s*=\s*"View larger image"'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ class KeyFinderPlugin(BeetsPlugin):
|
||||||
continue
|
continue
|
||||||
except UnicodeEncodeError:
|
except UnicodeEncodeError:
|
||||||
# Workaround for Python 2 Windows bug.
|
# Workaround for Python 2 Windows bug.
|
||||||
# http://bugs.python.org/issue1759845
|
# https://bugs.python.org/issue1759845
|
||||||
self._log.error(u'execution failed for Unicode path: {0!r}',
|
self._log.error(u'execution failed for Unicode path: {0!r}',
|
||||||
item.path)
|
item.path)
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# This file is part of beets.
|
# This file is part of beets.
|
||||||
# Copyright 2016, Rafael Bodill http://github.com/rafi
|
# Copyright 2016, Rafael Bodill https://github.com/rafi
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ This plugin allows the user to print track information in a format that is
|
||||||
parseable by the MusicBrainz track parser [1]. Programmatic submitting is not
|
parseable by the MusicBrainz track parser [1]. Programmatic submitting is not
|
||||||
implemented by MusicBrainz yet.
|
implemented by MusicBrainz yet.
|
||||||
|
|
||||||
[1] http://wiki.musicbrainz.org/History:How_To_Parse_Track_Listings
|
[1] https://wiki.musicbrainz.org/History:How_To_Parse_Track_Listings
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import division, absolute_import, print_function
|
from __future__ import division, absolute_import, print_function
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ class ThumbnailsPlugin(BeetsPlugin):
|
||||||
|
|
||||||
def thumbnail_file_name(self, path):
|
def thumbnail_file_name(self, path):
|
||||||
"""Compute the thumbnail file name
|
"""Compute the thumbnail file name
|
||||||
See http://standards.freedesktop.org/thumbnail-spec/latest/x227.html
|
See https://standards.freedesktop.org/thumbnail-spec/latest/x227.html
|
||||||
"""
|
"""
|
||||||
uri = self.get_uri(path)
|
uri = self.get_uri(path)
|
||||||
hash = md5(uri.encode('utf-8')).hexdigest()
|
hash = md5(uri.encode('utf-8')).hexdigest()
|
||||||
|
|
@ -168,7 +168,7 @@ class ThumbnailsPlugin(BeetsPlugin):
|
||||||
|
|
||||||
def add_tags(self, album, image_path):
|
def add_tags(self, album, image_path):
|
||||||
"""Write required metadata to the thumbnail
|
"""Write required metadata to the thumbnail
|
||||||
See http://standards.freedesktop.org/thumbnail-spec/latest/x142.html
|
See https://standards.freedesktop.org/thumbnail-spec/latest/x142.html
|
||||||
"""
|
"""
|
||||||
mtime = os.stat(album.artpath).st_mtime
|
mtime = os.stat(album.artpath).st_mtime
|
||||||
metadata = {"Thumb::URI": self.get_uri(album.artpath),
|
metadata = {"Thumb::URI": self.get_uri(album.artpath),
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ $.fn.player = function(debug) {
|
||||||
|
|
||||||
// Simple selection disable for jQuery.
|
// Simple selection disable for jQuery.
|
||||||
// Cut-and-paste from:
|
// Cut-and-paste from:
|
||||||
// http://stackoverflow.com/questions/2700000
|
// https://stackoverflow.com/questions/2700000
|
||||||
$.fn.disableSelection = function() {
|
$.fn.disableSelection = function() {
|
||||||
$(this).attr('unselectable', 'on')
|
$(this).attr('unselectable', 'on')
|
||||||
.css('-moz-user-select', 'none')
|
.css('-moz-user-select', 'none')
|
||||||
|
|
|
||||||
|
|
@ -1216,7 +1216,7 @@ There are even more new features:
|
||||||
don't actually need to be moved. :bug:`1583`
|
don't actually need to be moved. :bug:`1583`
|
||||||
|
|
||||||
.. _Google Code-In: https://codein.withgoogle.com/
|
.. _Google Code-In: https://codein.withgoogle.com/
|
||||||
.. _AcousticBrainz: http://acousticbrainz.org/
|
.. _AcousticBrainz: https://acousticbrainz.org/
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
|
|
@ -1358,7 +1358,7 @@ Fixes:
|
||||||
communication errors. The backend has also been disabled by default, since
|
communication errors. The backend has also been disabled by default, since
|
||||||
the API it depends on is currently down. :bug:`1770`
|
the API it depends on is currently down. :bug:`1770`
|
||||||
|
|
||||||
.. _Emby: http://emby.media
|
.. _Emby: https://emby.media
|
||||||
|
|
||||||
|
|
||||||
1.3.15 (October 17, 2015)
|
1.3.15 (October 17, 2015)
|
||||||
|
|
@ -1520,8 +1520,8 @@ Fixes:
|
||||||
* :doc:`/plugins/convert`: Fix a problem with filename encoding on Windows
|
* :doc:`/plugins/convert`: Fix a problem with filename encoding on Windows
|
||||||
under Python 3. :bug:`2515` :bug:`2516`
|
under Python 3. :bug:`2515` :bug:`2516`
|
||||||
|
|
||||||
.. _Python bug: http://bugs.python.org/issue16512
|
.. _Python bug: https://bugs.python.org/issue16512
|
||||||
.. _ipfs: http://ipfs.io
|
.. _ipfs: https://ipfs.io
|
||||||
|
|
||||||
|
|
||||||
1.3.13 (April 24, 2015)
|
1.3.13 (April 24, 2015)
|
||||||
|
|
@ -1872,7 +1872,7 @@ As usual, there are loads of little fixes and improvements:
|
||||||
* The :ref:`config-cmd` command can now use ``$EDITOR`` variables with
|
* The :ref:`config-cmd` command can now use ``$EDITOR`` variables with
|
||||||
arguments.
|
arguments.
|
||||||
|
|
||||||
.. _API changes: http://developer.echonest.com/forums/thread/3650
|
.. _API changes: https://developer.echonest.com/forums/thread/3650
|
||||||
.. _Plex: https://plex.tv/
|
.. _Plex: https://plex.tv/
|
||||||
.. _musixmatch: https://www.musixmatch.com/
|
.. _musixmatch: https://www.musixmatch.com/
|
||||||
|
|
||||||
|
|
@ -2352,7 +2352,7 @@ Fixes:
|
||||||
* :doc:`/plugins/convert`: Display a useful error message when the FFmpeg
|
* :doc:`/plugins/convert`: Display a useful error message when the FFmpeg
|
||||||
executable can't be found.
|
executable can't be found.
|
||||||
|
|
||||||
.. _requests: http://www.python-requests.org/
|
.. _requests: https://www.python-requests.org/
|
||||||
|
|
||||||
|
|
||||||
1.3.3 (February 26, 2014)
|
1.3.3 (February 26, 2014)
|
||||||
|
|
@ -2534,7 +2534,7 @@ As usual, there are also innumerable little fixes and improvements:
|
||||||
|
|
||||||
|
|
||||||
.. _Acoustic Attributes: http://developer.echonest.com/acoustic-attributes.html
|
.. _Acoustic Attributes: http://developer.echonest.com/acoustic-attributes.html
|
||||||
.. _MPD: http://www.musicpd.org/
|
.. _MPD: https://www.musicpd.org/
|
||||||
|
|
||||||
|
|
||||||
1.3.1 (October 12, 2013)
|
1.3.1 (October 12, 2013)
|
||||||
|
|
@ -2601,7 +2601,7 @@ And some fixes:
|
||||||
* :doc:`/plugins/scrub`: Avoid preserving certain non-standard ID3 tags such
|
* :doc:`/plugins/scrub`: Avoid preserving certain non-standard ID3 tags such
|
||||||
as NCON.
|
as NCON.
|
||||||
|
|
||||||
.. _Opus: http://www.opus-codec.org/
|
.. _Opus: https://www.opus-codec.org/
|
||||||
.. _@Verrus: https://github.com/Verrus
|
.. _@Verrus: https://github.com/Verrus
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2833,8 +2833,8 @@ And a batch of fixes:
|
||||||
* :doc:`/plugins/lyrics`: Lyrics searches should now turn up more results due
|
* :doc:`/plugins/lyrics`: Lyrics searches should now turn up more results due
|
||||||
to some fixes in dealing with special characters.
|
to some fixes in dealing with special characters.
|
||||||
|
|
||||||
.. _Discogs: http://discogs.com/
|
.. _Discogs: https://discogs.com/
|
||||||
.. _Beatport: http://www.beatport.com/
|
.. _Beatport: https://www.beatport.com/
|
||||||
|
|
||||||
|
|
||||||
1.1.0 (April 29, 2013)
|
1.1.0 (April 29, 2013)
|
||||||
|
|
@ -2883,7 +2883,7 @@ will automatically migrate your configuration to the new system.
|
||||||
header. Thanks to Uwe L. Korn.
|
header. Thanks to Uwe L. Korn.
|
||||||
* :doc:`/plugins/lastgenre`: Fix an error when using genre canonicalization.
|
* :doc:`/plugins/lastgenre`: Fix an error when using genre canonicalization.
|
||||||
|
|
||||||
.. _Tomahawk: http://www.tomahawk-player.org/
|
.. _Tomahawk: https://tomahawk-player.org/
|
||||||
|
|
||||||
1.1b3 (March 16, 2013)
|
1.1b3 (March 16, 2013)
|
||||||
----------------------
|
----------------------
|
||||||
|
|
@ -3058,7 +3058,7 @@ Other new stuff:
|
||||||
(YAML doesn't like tabs.)
|
(YAML doesn't like tabs.)
|
||||||
* Fix the ``-l`` (log path) command-line option for the ``import`` command.
|
* Fix the ``-l`` (log path) command-line option for the ``import`` command.
|
||||||
|
|
||||||
.. _iTunes Sound Check: http://support.apple.com/kb/HT2425
|
.. _iTunes Sound Check: https://support.apple.com/kb/HT2425
|
||||||
|
|
||||||
1.1b1 (January 29, 2013)
|
1.1b1 (January 29, 2013)
|
||||||
------------------------
|
------------------------
|
||||||
|
|
@ -3067,7 +3067,7 @@ This release entirely revamps beets' configuration system. The configuration
|
||||||
file is now a `YAML`_ document and is located, along with other support files,
|
file is now a `YAML`_ document and is located, along with other support files,
|
||||||
in a common directory (e.g., ``~/.config/beets`` on Unix-like systems).
|
in a common directory (e.g., ``~/.config/beets`` on Unix-like systems).
|
||||||
|
|
||||||
.. _YAML: http://en.wikipedia.org/wiki/YAML
|
.. _YAML: https://en.wikipedia.org/wiki/YAML
|
||||||
|
|
||||||
* Renamed plugins: The ``rdm`` plugin has been renamed to ``random`` and
|
* Renamed plugins: The ``rdm`` plugin has been renamed to ``random`` and
|
||||||
``fuzzy_search`` has been renamed to ``fuzzy``.
|
``fuzzy_search`` has been renamed to ``fuzzy``.
|
||||||
|
|
@ -3229,7 +3229,7 @@ begins today on features for version 1.1.
|
||||||
.. _The Echo Nest: http://the.echonest.com/
|
.. _The Echo Nest: http://the.echonest.com/
|
||||||
.. _Tomahawk resolver: http://beets.io/blog/tomahawk-resolver.html
|
.. _Tomahawk resolver: http://beets.io/blog/tomahawk-resolver.html
|
||||||
.. _mp3gain: http://mp3gain.sourceforge.net/download.php
|
.. _mp3gain: http://mp3gain.sourceforge.net/download.php
|
||||||
.. _aacgain: http://aacgain.altosdesign.com
|
.. _aacgain: https://aacgain.altosdesign.com
|
||||||
|
|
||||||
1.0b15 (July 26, 2012)
|
1.0b15 (July 26, 2012)
|
||||||
----------------------
|
----------------------
|
||||||
|
|
@ -3338,7 +3338,7 @@ fetching cover art for your music, enable this plugin after upgrading to beets
|
||||||
database with ``beet import -AWC /path/to/music``.
|
database with ``beet import -AWC /path/to/music``.
|
||||||
* Fix ``import`` with relative path arguments on Windows.
|
* Fix ``import`` with relative path arguments on Windows.
|
||||||
|
|
||||||
.. _artist credits: http://wiki.musicbrainz.org/Artist_Credit
|
.. _artist credits: https://wiki.musicbrainz.org/Artist_Credit
|
||||||
|
|
||||||
1.0b14 (May 12, 2012)
|
1.0b14 (May 12, 2012)
|
||||||
---------------------
|
---------------------
|
||||||
|
|
@ -3496,7 +3496,7 @@ to come in the next couple of releases.
|
||||||
data.
|
data.
|
||||||
* Fix the ``list`` command in BPD (thanks to Simon Chopin).
|
* Fix the ``list`` command in BPD (thanks to Simon Chopin).
|
||||||
|
|
||||||
.. _Colorama: http://pypi.python.org/pypi/colorama
|
.. _Colorama: https://pypi.python.org/pypi/colorama
|
||||||
|
|
||||||
1.0b12 (January 16, 2012)
|
1.0b12 (January 16, 2012)
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
@ -3609,12 +3609,12 @@ release: one for assigning genres and another for ReplayGain analysis.
|
||||||
corrupted.
|
corrupted.
|
||||||
|
|
||||||
.. _KraYmer: https://github.com/KraYmer
|
.. _KraYmer: https://github.com/KraYmer
|
||||||
.. _Next Generation Schema: http://musicbrainz.org/doc/XML_Web_Service/Version_2
|
.. _Next Generation Schema: https://musicbrainz.org/doc/XML_Web_Service/Version_2
|
||||||
.. _python-musicbrainzngs: https://github.com/alastair/python-musicbrainzngs
|
.. _python-musicbrainzngs: https://github.com/alastair/python-musicbrainzngs
|
||||||
.. _acoustid: http://acoustid.org/
|
.. _acoustid: https://acoustid.org/
|
||||||
.. _Peter Brunner: https://github.com/Lugoues
|
.. _Peter Brunner: https://github.com/Lugoues
|
||||||
.. _Simon Chopin: https://github.com/laarmen
|
.. _Simon Chopin: https://github.com/laarmen
|
||||||
.. _albumart.org: http://www.albumart.org/
|
.. _albumart.org: https://www.albumart.org/
|
||||||
|
|
||||||
1.0b10 (September 22, 2011)
|
1.0b10 (September 22, 2011)
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
@ -3783,8 +3783,8 @@ below, for a plethora of new features.
|
||||||
|
|
||||||
* Fix a crash on album queries with item-only field names.
|
* Fix a crash on album queries with item-only field names.
|
||||||
|
|
||||||
.. _xargs: http://en.wikipedia.org/wiki/xargs
|
.. _xargs: https://en.wikipedia.org/wiki/xargs
|
||||||
.. _unidecode: http://pypi.python.org/pypi/Unidecode/0.04.1
|
.. _unidecode: https://pypi.python.org/pypi/Unidecode/0.04.1
|
||||||
|
|
||||||
1.0b8 (April 28, 2011)
|
1.0b8 (April 28, 2011)
|
||||||
----------------------
|
----------------------
|
||||||
|
|
@ -3927,7 +3927,7 @@ new configuration options and the ability to clean up empty directory subtrees.
|
||||||
|
|
||||||
* The old "albumify" plugin for upgrading databases was removed.
|
* The old "albumify" plugin for upgrading databases was removed.
|
||||||
|
|
||||||
.. _as specified by MusicBrainz: http://wiki.musicbrainz.org/ReleaseType
|
.. _as specified by MusicBrainz: https://wiki.musicbrainz.org/ReleaseType
|
||||||
|
|
||||||
1.0b6 (January 20, 2011)
|
1.0b6 (January 20, 2011)
|
||||||
------------------------
|
------------------------
|
||||||
|
|
@ -4043,7 +4043,7 @@ are also rolled into this release.
|
||||||
|
|
||||||
* Fixed escaping of ``/`` characters in paths on Windows.
|
* Fixed escaping of ``/`` characters in paths on Windows.
|
||||||
|
|
||||||
.. _!!!: http://musicbrainz.org/artist/f26c72d3-e52c-467b-b651-679c73d8e1a7.html
|
.. _!!!: https://musicbrainz.org/artist/f26c72d3-e52c-467b-b651-679c73d8e1a7.html
|
||||||
|
|
||||||
1.0b4 (August 9, 2010)
|
1.0b4 (August 9, 2010)
|
||||||
----------------------
|
----------------------
|
||||||
|
|
@ -4232,7 +4232,7 @@ Vorbis) and an option to log untaggable albums during import.
|
||||||
removed dependency on the aging ``cmdln`` module in favor of `a hand-rolled
|
removed dependency on the aging ``cmdln`` module in favor of `a hand-rolled
|
||||||
solution`_.
|
solution`_.
|
||||||
|
|
||||||
.. _a hand-rolled solution: http://gist.github.com/462717
|
.. _a hand-rolled solution: https://gist.github.com/462717
|
||||||
|
|
||||||
1.0b1 (June 17, 2010)
|
1.0b1 (June 17, 2010)
|
||||||
---------------------
|
---------------------
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ in hacking beets itself or creating plugins for it.
|
||||||
See also the documentation for `MediaFile`_, the library used by beets to read
|
See also the documentation for `MediaFile`_, the library used by beets to read
|
||||||
and write metadata tags in media files.
|
and write metadata tags in media files.
|
||||||
|
|
||||||
.. _MediaFile: http://mediafile.readthedocs.io/
|
.. _MediaFile: https://mediafile.readthedocs.io/
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ structure should look like this::
|
||||||
myawesomeplugin.py
|
myawesomeplugin.py
|
||||||
|
|
||||||
.. _Stack Overflow question about namespace packages:
|
.. _Stack Overflow question about namespace packages:
|
||||||
http://stackoverflow.com/questions/1675734/how-do-i-create-a-namespace-package-in-python/1676069#1676069
|
https://stackoverflow.com/questions/1675734/how-do-i-create-a-namespace-package-in-python/1676069#1676069
|
||||||
|
|
||||||
Then, you'll need to put this stuff in ``__init__.py`` to make ``beetsplug`` a
|
Then, you'll need to put this stuff in ``__init__.py`` to make ``beetsplug`` a
|
||||||
namespace package::
|
namespace package::
|
||||||
|
|
@ -42,7 +42,7 @@ Then, as described above, edit your ``config.yaml`` to include
|
||||||
``plugins: myawesomeplugin`` (substituting the name of the Python module
|
``plugins: myawesomeplugin`` (substituting the name of the Python module
|
||||||
containing your plugin).
|
containing your plugin).
|
||||||
|
|
||||||
.. _virtualenv: http://pypi.python.org/pypi/virtualenv
|
.. _virtualenv: https://pypi.org/project/virtualenv
|
||||||
|
|
||||||
.. _add_subcommands:
|
.. _add_subcommands:
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@ but it defaults to an empty parser (you can extend it later). ``help`` is a
|
||||||
description of your command, and ``aliases`` is a list of shorthand versions of
|
description of your command, and ``aliases`` is a list of shorthand versions of
|
||||||
your command name.
|
your command name.
|
||||||
|
|
||||||
.. _OptionParser instance: http://docs.python.org/library/optparse.html
|
.. _OptionParser instance: https://docs.python.org/library/optparse.html
|
||||||
|
|
||||||
You'll need to add a function to your command by saying ``mycommand.func =
|
You'll need to add a function to your command by saying ``mycommand.func =
|
||||||
myfunction``. This function should take the following parameters: ``lib`` (a
|
myfunction``. This function should take the following parameters: ``lib`` (a
|
||||||
|
|
@ -81,7 +81,7 @@ beets ``Library`` object) and ``opts`` and ``args`` (command-line options and
|
||||||
arguments as returned by `OptionParser.parse_args`_).
|
arguments as returned by `OptionParser.parse_args`_).
|
||||||
|
|
||||||
.. _OptionParser.parse_args:
|
.. _OptionParser.parse_args:
|
||||||
http://docs.python.org/library/optparse.html#parsing-arguments
|
https://docs.python.org/library/optparse.html#parsing-arguments
|
||||||
|
|
||||||
The function should use any of the utility functions defined in ``beets.ui``.
|
The function should use any of the utility functions defined in ``beets.ui``.
|
||||||
Try running ``pydoc beets.ui`` to see what's available.
|
Try running ``pydoc beets.ui`` to see what's available.
|
||||||
|
|
@ -301,7 +301,7 @@ To access this value, say ``self.config['foo'].get()`` at any point in your
|
||||||
plugin's code. The `self.config` object is a *view* as defined by the `Confuse`_
|
plugin's code. The `self.config` object is a *view* as defined by the `Confuse`_
|
||||||
library.
|
library.
|
||||||
|
|
||||||
.. _Confuse: http://confuse.readthedocs.org/
|
.. _Confuse: https://confuse.readthedocs.org/
|
||||||
|
|
||||||
If you want to access configuration values *outside* of your plugin's section,
|
If you want to access configuration values *outside* of your plugin's section,
|
||||||
import the `config` object from the `beets` module. That is, just put ``from
|
import the `config` object from the `beets` module. That is, just put ``from
|
||||||
|
|
@ -379,7 +379,7 @@ access to file tags. If you have created a descriptor you can add it through
|
||||||
your plugins ``add_media_field()`` method.
|
your plugins ``add_media_field()`` method.
|
||||||
|
|
||||||
.. automethod:: beets.plugins.BeetsPlugin.add_media_field
|
.. automethod:: beets.plugins.BeetsPlugin.add_media_field
|
||||||
.. _MediaFile: http://mediafile.readthedocs.io/
|
.. _MediaFile: https://mediafile.readthedocs.io/
|
||||||
|
|
||||||
|
|
||||||
Here's an example plugin that provides a meaningless new field "foo"::
|
Here's an example plugin that provides a meaningless new field "foo"::
|
||||||
|
|
|
||||||
22
docs/faq.rst
22
docs/faq.rst
|
|
@ -6,8 +6,8 @@ Got a question that isn't answered here? Try `IRC`_, the `discussion board`_, or
|
||||||
:ref:`filing an issue <bugs>` in the bug tracker.
|
:ref:`filing an issue <bugs>` in the bug tracker.
|
||||||
|
|
||||||
.. _IRC: irc://irc.freenode.net/beets
|
.. _IRC: irc://irc.freenode.net/beets
|
||||||
.. _mailing list: http://groups.google.com/group/beets-users
|
.. _mailing list: https://groups.google.com/group/beets-users
|
||||||
.. _discussion board: http://discourse.beets.io
|
.. _discussion board: https://discourse.beets.io
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
|
|
@ -94,14 +94,14 @@ the tracks into a single directory to force them to be tagged together.
|
||||||
|
|
||||||
An MBID looks like one of these:
|
An MBID looks like one of these:
|
||||||
|
|
||||||
- ``http://musicbrainz.org/release/ded77dcf-7279-457e-955d-625bd3801b87``
|
- ``https://musicbrainz.org/release/ded77dcf-7279-457e-955d-625bd3801b87``
|
||||||
- ``d569deba-8c6b-4d08-8c43-d0e5a1b8c7f3``
|
- ``d569deba-8c6b-4d08-8c43-d0e5a1b8c7f3``
|
||||||
|
|
||||||
Beets can recognize either the hex-with-dashes UUID-style string or the
|
Beets can recognize either the hex-with-dashes UUID-style string or the
|
||||||
full URL that contains it (as of 1.0b11).
|
full URL that contains it (as of 1.0b11).
|
||||||
|
|
||||||
You can get these IDs by `searching on the MusicBrainz web
|
You can get these IDs by `searching on the MusicBrainz web
|
||||||
site <http://musicbrainz.org/>`__ and going to a *release* page (when
|
site <https://musicbrainz.org/>`__ and going to a *release* page (when
|
||||||
tagging full albums) or a *recording* page (when tagging singletons).
|
tagging full albums) or a *recording* page (when tagging singletons).
|
||||||
Then, copy the URL of the page and paste it into beets.
|
Then, copy the URL of the page and paste it into beets.
|
||||||
|
|
||||||
|
|
@ -119,7 +119,7 @@ Run a command like this::
|
||||||
|
|
||||||
pip install -U beets
|
pip install -U beets
|
||||||
|
|
||||||
The ``-U`` flag tells `pip <http://www.pip-installer.org>`__ to upgrade
|
The ``-U`` flag tells `pip <https://pip.pypa.io/>`__ to upgrade
|
||||||
beets to the latest version. If you want a specific version, you can
|
beets to the latest version. If you want a specific version, you can
|
||||||
specify with using ``==`` like so::
|
specify with using ``==`` like so::
|
||||||
|
|
||||||
|
|
@ -163,10 +163,10 @@ on GitHub. `Enter a new issue <https://github.com/beetbox/beets/issues/new>`__
|
||||||
there to report a bug. Please follow these guidelines when reporting an issue:
|
there to report a bug. Please follow these guidelines when reporting an issue:
|
||||||
|
|
||||||
- Most importantly: if beets is crashing, please `include the
|
- Most importantly: if beets is crashing, please `include the
|
||||||
traceback <http://imgur.com/jacoj>`__. Tracebacks can be more
|
traceback <https://imgur.com/jacoj>`__. Tracebacks can be more
|
||||||
readable if you put them in a pastebin (e.g.,
|
readable if you put them in a pastebin (e.g.,
|
||||||
`Gist <https://gist.github.com/>`__ or
|
`Gist <https://gist.github.com/>`__ or
|
||||||
`Hastebin <http://hastebin.com/>`__), especially when communicating
|
`Hastebin <https://hastebin.com/>`__), especially when communicating
|
||||||
over IRC or email.
|
over IRC or email.
|
||||||
- Turn on beets' debug output (using the -v option: for example,
|
- Turn on beets' debug output (using the -v option: for example,
|
||||||
``beet -v import ...``) and include that with your bug report. Look
|
``beet -v import ...``) and include that with your bug report. Look
|
||||||
|
|
@ -188,7 +188,7 @@ there to report a bug. Please follow these guidelines when reporting an issue:
|
||||||
|
|
||||||
If you've never reported a bug before, Mozilla has some well-written
|
If you've never reported a bug before, Mozilla has some well-written
|
||||||
`general guidelines for good bug
|
`general guidelines for good bug
|
||||||
reports <http://www.mozilla.org/bugs/>`__.
|
reports <https://www.mozilla.org/bugs/>`__.
|
||||||
|
|
||||||
|
|
||||||
.. _find-config:
|
.. _find-config:
|
||||||
|
|
@ -237,7 +237,7 @@ Why does beets…
|
||||||
There are a number of possibilities:
|
There are a number of possibilities:
|
||||||
|
|
||||||
- First, make sure the album is in `the MusicBrainz
|
- First, make sure the album is in `the MusicBrainz
|
||||||
database <http://musicbrainz.org/>`__. You
|
database <https://musicbrainz.org/>`__. You
|
||||||
can search on their site to make sure it's cataloged there. (If not,
|
can search on their site to make sure it's cataloged there. (If not,
|
||||||
anyone can edit MusicBrainz---so consider adding the data yourself.)
|
anyone can edit MusicBrainz---so consider adding the data yourself.)
|
||||||
- If the album in question is a multi-disc release, see the relevant
|
- If the album in question is a multi-disc release, see the relevant
|
||||||
|
|
@ -320,7 +320,7 @@ it encounters files that *look* like music files (according to their
|
||||||
extension) but seem to be broken. Most of the time, this is because the
|
extension) but seem to be broken. Most of the time, this is because the
|
||||||
file is corrupted. To check whether the file is intact, try opening it
|
file is corrupted. To check whether the file is intact, try opening it
|
||||||
in another media player (e.g.,
|
in another media player (e.g.,
|
||||||
`VLC <http://www.videolan.org/vlc/index.html>`__) to see whether it can
|
`VLC <https://www.videolan.org/vlc/index.html>`__) to see whether it can
|
||||||
read the file. You can also use specialized programs for checking file
|
read the file. You can also use specialized programs for checking file
|
||||||
integrity---for example, type ``metaflac --list music.flac`` to check
|
integrity---for example, type ``metaflac --list music.flac`` to check
|
||||||
FLAC files.
|
FLAC files.
|
||||||
|
|
@ -378,4 +378,4 @@ installed using pip, the command ``pip show -f beets`` can show you where
|
||||||
``beet`` was placed on your system. If you need help extending your ``$PATH``,
|
``beet`` was placed on your system. If you need help extending your ``$PATH``,
|
||||||
try `this Super User answer`_.
|
try `this Super User answer`_.
|
||||||
|
|
||||||
.. _this Super User answer: http://superuser.com/a/284361/4569
|
.. _this Super User answer: https://superuser.com/a/284361/4569
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ everything by the Long Winters for listening on the go.
|
||||||
The plugin has many more dials you can fiddle with to get your conversions how
|
The plugin has many more dials you can fiddle with to get your conversions how
|
||||||
you like them. Check out :doc:`its documentation </plugins/convert>`.
|
you like them. Check out :doc:`its documentation </plugins/convert>`.
|
||||||
|
|
||||||
.. _ffmpeg: http://www.ffmpeg.org
|
.. _ffmpeg: https://www.ffmpeg.org
|
||||||
|
|
||||||
|
|
||||||
Store any data you like
|
Store any data you like
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ Installing
|
||||||
You will need Python.
|
You will need Python.
|
||||||
Beets works on `Python 2.7`_ and Python 3.4 or later.
|
Beets works on `Python 2.7`_ and Python 3.4 or later.
|
||||||
|
|
||||||
.. _Python 2.7: http://www.python.org/download/
|
.. _Python 2.7: https://www.python.org/download/
|
||||||
|
|
||||||
* **macOS** v10.7 (Lion) and later include Python 2.7 out of the box.
|
* **macOS** v10.7 (Lion) and later include Python 2.7 out of the box.
|
||||||
You can opt for Python 3 by installing it via `Homebrew`_:
|
You can opt for Python 3 by installing it via `Homebrew`_:
|
||||||
|
|
@ -49,7 +49,7 @@ Beets works on `Python 2.7`_ and Python 3.4 or later.
|
||||||
* On **NixOS**, there's a `package <NixOS_>`_ you can install with ``nix-env -i beets``.
|
* On **NixOS**, there's a `package <NixOS_>`_ you can install with ``nix-env -i beets``.
|
||||||
|
|
||||||
.. _DNF package: https://apps.fedoraproject.org/packages/beets
|
.. _DNF package: https://apps.fedoraproject.org/packages/beets
|
||||||
.. _SlackBuild: http://slackbuilds.org/repository/14.2/multimedia/beets/
|
.. _SlackBuild: https://slackbuilds.org/repository/14.2/multimedia/beets/
|
||||||
.. _FreeBSD: http://portsmon.freebsd.org/portoverview.py?category=audio&portname=beets
|
.. _FreeBSD: http://portsmon.freebsd.org/portoverview.py?category=audio&portname=beets
|
||||||
.. _AUR: https://aur.archlinux.org/packages/beets-git/
|
.. _AUR: https://aur.archlinux.org/packages/beets-git/
|
||||||
.. _Debian details: https://tracker.debian.org/pkg/beets
|
.. _Debian details: https://tracker.debian.org/pkg/beets
|
||||||
|
|
@ -64,14 +64,14 @@ beets`` if you run into permissions problems).
|
||||||
To install without pip, download beets from `its PyPI page`_ and run ``python
|
To install without pip, download beets from `its PyPI page`_ and run ``python
|
||||||
setup.py install`` in the directory therein.
|
setup.py install`` in the directory therein.
|
||||||
|
|
||||||
.. _its PyPI page: http://pypi.python.org/pypi/beets#downloads
|
.. _its PyPI page: https://pypi.org/project/beets#downloads
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
|
|
||||||
The best way to upgrade beets to a new version is by running ``pip install -U
|
The best way to upgrade beets to a new version is by running ``pip install -U
|
||||||
beets``. You may want to follow `@b33ts`_ on Twitter to hear about progress on
|
beets``. You may want to follow `@b33ts`_ on Twitter to hear about progress on
|
||||||
new versions.
|
new versions.
|
||||||
|
|
||||||
.. _@b33ts: http://twitter.com/b33ts
|
.. _@b33ts: https://twitter.com/b33ts
|
||||||
|
|
||||||
Installing on macOS 10.11 and Higher
|
Installing on macOS 10.11 and Higher
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
@ -87,7 +87,7 @@ If this happens, you can install beets for the current user only by typing
|
||||||
``~/Library/Python/3.6/bin`` to your ``$PATH``.
|
``~/Library/Python/3.6/bin`` to your ``$PATH``.
|
||||||
|
|
||||||
.. _System Integrity Protection: https://support.apple.com/en-us/HT204899
|
.. _System Integrity Protection: https://support.apple.com/en-us/HT204899
|
||||||
.. _Homebrew: http://brew.sh
|
.. _Homebrew: https://brew.sh
|
||||||
|
|
||||||
Installing on Windows
|
Installing on Windows
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
@ -122,10 +122,10 @@ Because I don't use Windows myself, I may have missed something. If you have
|
||||||
trouble or you have more detail to contribute here, please direct it to
|
trouble or you have more detail to contribute here, please direct it to
|
||||||
`the mailing list`_.
|
`the mailing list`_.
|
||||||
|
|
||||||
.. _install Python: http://python.org/download/
|
.. _install Python: https://python.org/download/
|
||||||
.. _beets.reg: https://github.com/beetbox/beets/blob/master/extra/beets.reg
|
.. _beets.reg: https://github.com/beetbox/beets/blob/master/extra/beets.reg
|
||||||
.. _install pip: http://www.pip-installer.org/en/latest/installing.html#install-pip
|
.. _install pip: https://pip.pypa.io/en/stable/installing/
|
||||||
.. _get-pip.py: https://raw.github.com/pypa/pip/master/contrib/get-pip.py
|
.. _get-pip.py: https://bootstrap.pypa.io/get-pip.py
|
||||||
|
|
||||||
|
|
||||||
Configuring
|
Configuring
|
||||||
|
|
@ -179,7 +179,7 @@ There are approximately six million other configuration options you can set
|
||||||
here, including the directory and file naming scheme. See
|
here, including the directory and file naming scheme. See
|
||||||
:doc:`/reference/config` for a full reference.
|
:doc:`/reference/config` for a full reference.
|
||||||
|
|
||||||
.. _YAML: http://yaml.org/
|
.. _YAML: https://yaml.org/
|
||||||
|
|
||||||
Importing Your Library
|
Importing Your Library
|
||||||
----------------------
|
----------------------
|
||||||
|
|
@ -300,6 +300,6 @@ import`` gives more specific help about the ``import`` command.
|
||||||
Please let me know what you think of beets via `the discussion board`_ or
|
Please let me know what you think of beets via `the discussion board`_ or
|
||||||
`Twitter`_.
|
`Twitter`_.
|
||||||
|
|
||||||
.. _the mailing list: http://groups.google.com/group/beets-users
|
.. _the mailing list: https://groups.google.com/group/beets-users
|
||||||
.. _the discussion board: http://discourse.beets.io
|
.. _the discussion board: https://discourse.beets.io
|
||||||
.. _twitter: http://twitter.com/b33ts
|
.. _twitter: https://twitter.com/b33ts
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,7 @@ Before you jump into acoustic fingerprinting with both feet, though, give beets
|
||||||
a try without it. You may be surprised at how well metadata-based matching
|
a try without it. You may be surprised at how well metadata-based matching
|
||||||
works.
|
works.
|
||||||
|
|
||||||
.. _Chromaprint: http://acoustid.org/chromaprint
|
.. _Chromaprint: https://acoustid.org/chromaprint
|
||||||
|
|
||||||
Album Art, Lyrics, Genres and Such
|
Album Art, Lyrics, Genres and Such
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
@ -292,7 +292,7 @@ sure the album is present in `the MusicBrainz database`_. You can search on
|
||||||
their site to make sure it's cataloged there. If not, anyone can edit
|
their site to make sure it's cataloged there. If not, anyone can edit
|
||||||
MusicBrainz---so consider adding the data yourself.
|
MusicBrainz---so consider adding the data yourself.
|
||||||
|
|
||||||
.. _the MusicBrainz database: http://musicbrainz.org/
|
.. _the MusicBrainz database: https://musicbrainz.org/
|
||||||
|
|
||||||
If you think beets is ignoring an album that's listed in MusicBrainz, please
|
If you think beets is ignoring an album that's listed in MusicBrainz, please
|
||||||
`file a bug report`_.
|
`file a bug report`_.
|
||||||
|
|
@ -305,5 +305,5 @@ I Hope That Makes Sense
|
||||||
If we haven't made the process clear, please post on `the discussion
|
If we haven't made the process clear, please post on `the discussion
|
||||||
board`_ and we'll try to improve this guide.
|
board`_ and we'll try to improve this guide.
|
||||||
|
|
||||||
.. _the mailing list: http://groups.google.com/group/beets-users
|
.. _the mailing list: https://groups.google.com/group/beets-users
|
||||||
.. _the discussion board: http://discourse.beets.io
|
.. _the discussion board: https://discourse.beets.io
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,9 @@ or `file a bug`_ in the issue tracker. Please let us know where you think this
|
||||||
documentation can be improved.
|
documentation can be improved.
|
||||||
|
|
||||||
.. _beets: http://beets.io/
|
.. _beets: http://beets.io/
|
||||||
.. _the mailing list: http://groups.google.com/group/beets-users
|
.. _the mailing list: https://groups.google.com/group/beets-users
|
||||||
.. _file a bug: https://github.com/beetbox/beets/issues
|
.. _file a bug: https://github.com/beetbox/beets/issues
|
||||||
.. _the discussion board: http://discourse.beets.io
|
.. _the discussion board: https://discourse.beets.io
|
||||||
|
|
||||||
Contents
|
Contents
|
||||||
--------
|
--------
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,9 @@ To configure the plugin, make a ``absubmit:`` section in your configuration file
|
||||||
- **extractor**: The absolute path to the `streaming_extractor_music`_ binary.
|
- **extractor**: The absolute path to the `streaming_extractor_music`_ binary.
|
||||||
Default: search for the program in your ``$PATH``
|
Default: search for the program in your ``$PATH``
|
||||||
|
|
||||||
.. _streaming_extractor_music: http://acousticbrainz.org/download
|
.. _streaming_extractor_music: https://acousticbrainz.org/download
|
||||||
.. _FAQ: http://acousticbrainz.org/faq
|
.. _FAQ: https://acousticbrainz.org/faq
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
.. _requests: http://docs.python-requests.org/en/master/
|
.. _requests: https://docs.python-requests.org/en/master/
|
||||||
.. _github: https://github.com/MTG/essentia
|
.. _github: https://github.com/MTG/essentia
|
||||||
.. _AcousticBrainz: https://acousticbrainz.org
|
.. _AcousticBrainz: https://acousticbrainz.org
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ AcousticBrainz Plugin
|
||||||
The ``acousticbrainz`` plugin gets acoustic-analysis information from the
|
The ``acousticbrainz`` plugin gets acoustic-analysis information from the
|
||||||
`AcousticBrainz`_ project.
|
`AcousticBrainz`_ project.
|
||||||
|
|
||||||
.. _AcousticBrainz: http://acousticbrainz.org/
|
.. _AcousticBrainz: https://acousticbrainz.org/
|
||||||
|
|
||||||
Enable the ``acousticbrainz`` plugin in your configuration (see :ref:`using-plugins`) and run it by typing::
|
Enable the ``acousticbrainz`` plugin in your configuration (see :ref:`using-plugins`) and run it by typing::
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,6 @@ from MusicBrainz and other sources.
|
||||||
If you have a Beatport ID or a URL for a release or track you want to tag, you
|
If you have a Beatport ID or a URL for a release or track you want to tag, you
|
||||||
can just enter one of the two at the "enter Id" prompt in the importer.
|
can just enter one of the two at the "enter Id" prompt in the importer.
|
||||||
|
|
||||||
.. _requests: http://docs.python-requests.org/en/latest/
|
.. _requests: https://docs.python-requests.org/en/latest/
|
||||||
.. _requests_oauthlib: https://github.com/requests/requests-oauthlib
|
.. _requests_oauthlib: https://github.com/requests/requests-oauthlib
|
||||||
.. _Beatport: http://beatport.com
|
.. _Beatport: https://beetport.com
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ implements the MPD protocol, so it's compatible with all the great MPD clients
|
||||||
out there. I'm using `Theremin`_, `gmpc`_, `Sonata`_, and `Ario`_ successfully.
|
out there. I'm using `Theremin`_, `gmpc`_, `Sonata`_, and `Ario`_ successfully.
|
||||||
|
|
||||||
.. _Theremin: https://theremin.sigterm.eu/
|
.. _Theremin: https://theremin.sigterm.eu/
|
||||||
.. _gmpc: http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client
|
.. _gmpc: https://gmpc.wikia.com/wiki/Gnome_Music_Player_Client
|
||||||
.. _Sonata: http://sonata.berlios.de/
|
.. _Sonata: http://sonata.berlios.de/
|
||||||
.. _Ario: http://ario-player.sourceforge.net/
|
.. _Ario: http://ario-player.sourceforge.net/
|
||||||
|
|
||||||
|
|
@ -29,8 +29,8 @@ You will also need the various GStreamer plugin packages to make everything
|
||||||
work. See the :doc:`/plugins/chroma` documentation for more information on
|
work. See the :doc:`/plugins/chroma` documentation for more information on
|
||||||
installing GStreamer plugins.
|
installing GStreamer plugins.
|
||||||
|
|
||||||
.. _GStreamer WinBuilds: http://www.gstreamer-winbuild.ylatuya.es/
|
.. _GStreamer WinBuilds: https://www.gstreamer-winbuild.ylatuya.es/
|
||||||
.. _Homebrew: http://mxcl.github.com/homebrew/
|
.. _Homebrew: https://brew.sh
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
@ -44,7 +44,7 @@ Then, you can run BPD by invoking::
|
||||||
Fire up your favorite MPD client to start playing music. The MPD site has `a
|
Fire up your favorite MPD client to start playing music. The MPD site has `a
|
||||||
long list of available clients`_. Here are my favorites:
|
long list of available clients`_. Here are my favorites:
|
||||||
|
|
||||||
.. _a long list of available clients: http://mpd.wikia.com/wiki/Clients
|
.. _a long list of available clients: https://mpd.wikia.com/wiki/Clients
|
||||||
|
|
||||||
* Linux: `gmpc`_, `Sonata`_
|
* Linux: `gmpc`_, `Sonata`_
|
||||||
|
|
||||||
|
|
@ -52,9 +52,9 @@ long list of available clients`_. Here are my favorites:
|
||||||
|
|
||||||
* Windows: I don't know. Get in touch if you have a recommendation.
|
* Windows: I don't know. Get in touch if you have a recommendation.
|
||||||
|
|
||||||
* iPhone/iPod touch: `MPoD`_
|
* iPhone/iPod touch: `Rigelian`_
|
||||||
|
|
||||||
.. _MPoD: http://www.katoemba.net/makesnosenseatall/mpod/
|
.. _Rigelian: https://www.rigelian.net/
|
||||||
|
|
||||||
One nice thing about MPD's (and thus BPD's) client-server architecture is that
|
One nice thing about MPD's (and thus BPD's) client-server architecture is that
|
||||||
the client can just as easily on a different computer from the server as it can
|
the client can just as easily on a different computer from the server as it can
|
||||||
|
|
@ -109,7 +109,7 @@ behaviour to their MPD equivalents. BPD aims to look enough like MPD that it
|
||||||
can interact with the ecosystem of clients, but doesn't try to be
|
can interact with the ecosystem of clients, but doesn't try to be
|
||||||
a fully-fledged MPD replacement in terms of its playback capabilities.
|
a fully-fledged MPD replacement in terms of its playback capabilities.
|
||||||
|
|
||||||
.. _the MPD protocol: http://www.musicpd.org/doc/protocol/
|
.. _the MPD protocol: https://www.musicpd.org/doc/protocol/
|
||||||
|
|
||||||
These are some of the known differences between BPD and MPD:
|
These are some of the known differences between BPD and MPD:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ information at all (or have completely incorrect data). This plugin uses an
|
||||||
open-source fingerprinting technology called `Chromaprint`_ and its associated
|
open-source fingerprinting technology called `Chromaprint`_ and its associated
|
||||||
Web service, called `Acoustid`_.
|
Web service, called `Acoustid`_.
|
||||||
|
|
||||||
.. _Chromaprint: http://acoustid.org/chromaprint
|
.. _Chromaprint: https://acoustid.org/chromaprint
|
||||||
.. _acoustid: http://acoustid.org/
|
.. _acoustid: https://acoustid.org/
|
||||||
|
|
||||||
Turning on fingerprinting can increase the accuracy of the
|
Turning on fingerprinting can increase the accuracy of the
|
||||||
autotagger---especially on files with very poor metadata---but it comes at a
|
autotagger---especially on files with very poor metadata---but it comes at a
|
||||||
|
|
@ -31,7 +31,7 @@ First, install pyacoustid itself. You can do this using `pip`_, like so::
|
||||||
|
|
||||||
$ pip install pyacoustid
|
$ pip install pyacoustid
|
||||||
|
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
|
|
||||||
Then, you will need to install `Chromaprint`_, either as a dynamic library or
|
Then, you will need to install `Chromaprint`_, either as a dynamic library or
|
||||||
in the form of a command-line tool (``fpcalc``).
|
in the form of a command-line tool (``fpcalc``).
|
||||||
|
|
@ -45,7 +45,7 @@ The simplest way to get up and running, especially on Windows, is to
|
||||||
means something like ``C:\\Program Files``. On OS X or Linux, put the
|
means something like ``C:\\Program Files``. On OS X or Linux, put the
|
||||||
executable somewhere like ``/usr/local/bin``.
|
executable somewhere like ``/usr/local/bin``.
|
||||||
|
|
||||||
.. _download: http://acoustid.org/chromaprint
|
.. _download: https://acoustid.org/chromaprint
|
||||||
|
|
||||||
Installing the Library
|
Installing the Library
|
||||||
''''''''''''''''''''''
|
''''''''''''''''''''''
|
||||||
|
|
@ -56,7 +56,7 @@ site has links to packages for major Linux distributions. If you use
|
||||||
`Homebrew`_ on Mac OS X, you can install the library with ``brew install
|
`Homebrew`_ on Mac OS X, you can install the library with ``brew install
|
||||||
chromaprint``.
|
chromaprint``.
|
||||||
|
|
||||||
.. _Homebrew: http://mxcl.github.com/homebrew/
|
.. _Homebrew: https://brew.sh/
|
||||||
|
|
||||||
You will also need a mechanism for decoding audio files supported by the
|
You will also need a mechanism for decoding audio files supported by the
|
||||||
`audioread`_ library:
|
`audioread`_ library:
|
||||||
|
|
@ -78,12 +78,12 @@ You will also need a mechanism for decoding audio files supported by the
|
||||||
* On Windows, builds are provided by `GStreamer`_
|
* On Windows, builds are provided by `GStreamer`_
|
||||||
|
|
||||||
.. _audioread: https://github.com/beetbox/audioread
|
.. _audioread: https://github.com/beetbox/audioread
|
||||||
.. _pyacoustid: http://github.com/beetbox/pyacoustid
|
.. _pyacoustid: https://github.com/beetbox/pyacoustid
|
||||||
.. _FFmpeg: http://ffmpeg.org/
|
.. _FFmpeg: https://ffmpeg.org/
|
||||||
.. _MAD: http://spacepants.org/src/pymad/
|
.. _MAD: https://spacepants.org/src/pymad/
|
||||||
.. _pymad: http://www.underbit.com/products/mad/
|
.. _pymad: https://www.underbit.com/products/mad/
|
||||||
.. _Core Audio: http://developer.apple.com/technologies/mac/audio-and-video.html
|
.. _Core Audio: https://developer.apple.com/technologies/mac/audio-and-video.html
|
||||||
.. _Gstreamer: http://gstreamer.freedesktop.org/
|
.. _Gstreamer: https://gstreamer.freedesktop.org/
|
||||||
.. _PyGObject: https://wiki.gnome.org/Projects/PyGObject
|
.. _PyGObject: https://wiki.gnome.org/Projects/PyGObject
|
||||||
|
|
||||||
To decode audio formats (MP3, FLAC, etc.) with GStreamer, you'll need the
|
To decode audio formats (MP3, FLAC, etc.) with GStreamer, you'll need the
|
||||||
|
|
@ -132,4 +132,4 @@ Then, run ``beet submit``. (You can also provide a query to submit a subset of
|
||||||
your library.) The command will use stored fingerprints if they're available;
|
your library.) The command will use stored fingerprints if they're available;
|
||||||
otherwise it will fingerprint each file before submitting it.
|
otherwise it will fingerprint each file before submitting it.
|
||||||
|
|
||||||
.. _get an API key: http://acoustid.org/api-key
|
.. _get an API key: https://acoustid.org/api-key
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ To use the ``convert`` plugin, first enable it in your configuration (see
|
||||||
:ref:`using-plugins`). By default, the plugin depends on `FFmpeg`_ to
|
:ref:`using-plugins`). By default, the plugin depends on `FFmpeg`_ to
|
||||||
transcode the audio, so you might want to install it.
|
transcode the audio, so you might want to install it.
|
||||||
|
|
||||||
.. _FFmpeg: http://ffmpeg.org
|
.. _FFmpeg: https://ffmpeg.org
|
||||||
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
|
|
@ -170,6 +170,6 @@ can use the :doc:`/plugins/replaygain` to do this analysis. See the LAME
|
||||||
options and a thorough discussion of MP3 encoding.
|
options and a thorough discussion of MP3 encoding.
|
||||||
|
|
||||||
.. _documentation: http://lame.sourceforge.net/using.php
|
.. _documentation: http://lame.sourceforge.net/using.php
|
||||||
.. _HydrogenAudio wiki: http://wiki.hydrogenaud.io/index.php?title=LAME
|
.. _HydrogenAudio wiki: https://wiki.hydrogenaud.io/index.php?title=LAME
|
||||||
.. _gapless: http://wiki.hydrogenaud.io/index.php?title=Gapless_playback
|
.. _gapless: https://wiki.hydrogenaud.io/index.php?title=Gapless_playback
|
||||||
.. _LAME: http://lame.sourceforge.net/
|
.. _LAME: https://lame.sourceforge.net/
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Discogs Plugin
|
||||||
The ``discogs`` plugin extends the autotagger's search capabilities to
|
The ``discogs`` plugin extends the autotagger's search capabilities to
|
||||||
include matches from the `Discogs`_ database.
|
include matches from the `Discogs`_ database.
|
||||||
|
|
||||||
.. _Discogs: http://discogs.com
|
.. _Discogs: https://discogs.com
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ Note: ``compare_threshold`` option requires `ImageMagick`_, and ``maxwidth``
|
||||||
requires either `ImageMagick`_ or `Pillow`_.
|
requires either `ImageMagick`_ or `Pillow`_.
|
||||||
|
|
||||||
.. _Pillow: https://github.com/python-pillow/Pillow
|
.. _Pillow: https://github.com/python-pillow/Pillow
|
||||||
.. _ImageMagick: http://www.imagemagick.org/
|
.. _ImageMagick: https://www.imagemagick.org/
|
||||||
.. _PHASH: http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/
|
.. _PHASH: http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/
|
||||||
|
|
||||||
Manually Embedding and Extracting Art
|
Manually Embedding and Extracting Art
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ To use the ``embyupdate`` plugin you need to install the `requests`_ library wit
|
||||||
|
|
||||||
With that all in place, you'll see beets send the "update" command to your Emby server every time you change your beets library.
|
With that all in place, you'll see beets send the "update" command to your Emby server every time you change your beets library.
|
||||||
|
|
||||||
.. _Emby: http://emby.media/
|
.. _Emby: https://emby.media/
|
||||||
.. _requests: http://docs.python-requests.org/en/latest/
|
.. _requests: https://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Export Plugin
|
||||||
The ``export`` plugin lets you get data from the items and export the content
|
The ``export`` plugin lets you get data from the items and export the content
|
||||||
as `JSON`_.
|
as `JSON`_.
|
||||||
|
|
||||||
.. _JSON: http://www.json.org
|
.. _JSON: https://www.json.org
|
||||||
|
|
||||||
Enable the ``export`` plugin (see :ref:`using-plugins` for help). Then, type ``beet export`` followed by a :doc:`query </reference/query>` to get the data from
|
Enable the ``export`` plugin (see :ref:`using-plugins` for help). Then, type ``beet export`` followed by a :doc:`query </reference/query>` to get the data from
|
||||||
your library. For example, run this::
|
your library. For example, run this::
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ To use the ``fetchart`` plugin, first enable it in your configuration (see
|
||||||
|
|
||||||
The plugin uses `requests`_ to fetch album art from the Web.
|
The plugin uses `requests`_ to fetch album art from the Web.
|
||||||
|
|
||||||
.. _requests: http://docs.python-requests.org/en/latest/
|
.. _requests: https://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
Fetching Album Art During Import
|
Fetching Album Art During Import
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
@ -81,7 +81,7 @@ or `Pillow`_.
|
||||||
|
|
||||||
.. _beets custom search engine: https://cse.google.com.au:443/cse/publicurl?cx=001442825323518660753:hrh5ch1gjzm
|
.. _beets custom search engine: https://cse.google.com.au:443/cse/publicurl?cx=001442825323518660753:hrh5ch1gjzm
|
||||||
.. _Pillow: https://github.com/python-pillow/Pillow
|
.. _Pillow: https://github.com/python-pillow/Pillow
|
||||||
.. _ImageMagick: http://www.imagemagick.org/
|
.. _ImageMagick: https://www.imagemagick.org/
|
||||||
|
|
||||||
Here's an example that makes plugin select only images that contain ``front`` or
|
Here's an example that makes plugin select only images that contain ``front`` or
|
||||||
``back`` keywords in their filenames and prioritizes the iTunes source over
|
``back`` keywords in their filenames and prioritizes the iTunes source over
|
||||||
|
|
@ -135,7 +135,7 @@ On some versions of Windows, the program can be shadowed by a system-provided
|
||||||
environment variable so that ImageMagick comes first or use Pillow instead.
|
environment variable so that ImageMagick comes first or use Pillow instead.
|
||||||
|
|
||||||
.. _Pillow: https://github.com/python-pillow/Pillow
|
.. _Pillow: https://github.com/python-pillow/Pillow
|
||||||
.. _ImageMagick: http://www.imagemagick.org/
|
.. _ImageMagick: https://www.imagemagick.org/
|
||||||
|
|
||||||
.. _album-art-sources:
|
.. _album-art-sources:
|
||||||
|
|
||||||
|
|
@ -191,7 +191,7 @@ Optionally, you can `define a custom search engine`_. Get your search engine's
|
||||||
token and use it for your ``google_engine`` configuration option. The
|
token and use it for your ``google_engine`` configuration option. The
|
||||||
default engine searches the entire web for cover art.
|
default engine searches the entire web for cover art.
|
||||||
|
|
||||||
.. _define a custom search engine: http://www.google.com/cse/all
|
.. _define a custom search engine: https://www.google.com/cse/all
|
||||||
|
|
||||||
Note that the Google custom search API is limited to 100 queries per day.
|
Note that the Google custom search API is limited to 100 queries per day.
|
||||||
After that, the fetchart plugin will fall back on other declared data sources.
|
After that, the fetchart plugin will fall back on other declared data sources.
|
||||||
|
|
|
||||||
|
|
@ -41,4 +41,4 @@ your entire collection.
|
||||||
Use the ``-d`` flag to remove featured artists (equivalent of the ``drop``
|
Use the ``-d`` flag to remove featured artists (equivalent of the ``drop``
|
||||||
config option).
|
config option).
|
||||||
|
|
||||||
.. _MusicBrainz style: http://musicbrainz.org/doc/Style
|
.. _MusicBrainz style: https://musicbrainz.org/doc/Style
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ Autotagger Extensions
|
||||||
* :doc:`fromfilename`: Guess metadata for untagged tracks from their
|
* :doc:`fromfilename`: Guess metadata for untagged tracks from their
|
||||||
filenames.
|
filenames.
|
||||||
|
|
||||||
.. _Discogs: http://www.discogs.com/
|
.. _Discogs: https://www.discogs.com/
|
||||||
|
|
||||||
Metadata
|
Metadata
|
||||||
--------
|
--------
|
||||||
|
|
@ -136,7 +136,7 @@ Metadata
|
||||||
* :doc:`zero`: Nullify fields by pattern or unconditionally.
|
* :doc:`zero`: Nullify fields by pattern or unconditionally.
|
||||||
|
|
||||||
.. _KeyFinder: http://www.ibrahimshaath.co.uk/keyfinder/
|
.. _KeyFinder: http://www.ibrahimshaath.co.uk/keyfinder/
|
||||||
.. _streaming_extractor_music: http://acousticbrainz.org/download
|
.. _streaming_extractor_music: https://acousticbrainz.org/download
|
||||||
|
|
||||||
Path Formats
|
Path Formats
|
||||||
------------
|
------------
|
||||||
|
|
@ -169,10 +169,10 @@ Interoperability
|
||||||
* :doc:`thumbnails`: Get thumbnails with the cover art on your album folders.
|
* :doc:`thumbnails`: Get thumbnails with the cover art on your album folders.
|
||||||
|
|
||||||
|
|
||||||
.. _Emby: http://emby.media
|
.. _Emby: https://emby.media
|
||||||
.. _Plex: http://plex.tv
|
.. _Plex: https://plex.tv
|
||||||
.. _Kodi: http://kodi.tv
|
.. _Kodi: https://kodi.tv
|
||||||
.. _Sonos: http://sonos.com
|
.. _Sonos: https://sonos.com
|
||||||
|
|
||||||
Miscellaneous
|
Miscellaneous
|
||||||
-------------
|
-------------
|
||||||
|
|
@ -200,8 +200,8 @@ Miscellaneous
|
||||||
* :doc:`types`: Declare types for flexible attributes.
|
* :doc:`types`: Declare types for flexible attributes.
|
||||||
* :doc:`web`: An experimental Web-based GUI for beets.
|
* :doc:`web`: An experimental Web-based GUI for beets.
|
||||||
|
|
||||||
.. _MPD: http://www.musicpd.org/
|
.. _MPD: https://www.musicpd.org/
|
||||||
.. _MPD clients: http://mpd.wikia.com/wiki/Clients
|
.. _MPD clients: https://mpd.wikia.com/wiki/Clients
|
||||||
.. _mstream: https://github.com/IrosTheBeggar/mStream
|
.. _mstream: https://github.com/IrosTheBeggar/mStream
|
||||||
|
|
||||||
.. _other-plugins:
|
.. _other-plugins:
|
||||||
|
|
|
||||||
|
|
@ -42,4 +42,4 @@ Additional command-line options include:
|
||||||
* ``--keys-only`` or ``-k``: Show the name of the tags without the values.
|
* ``--keys-only`` or ``-k``: Show the name of the tags without the values.
|
||||||
|
|
||||||
.. _id3v2: http://id3v2.sourceforge.net
|
.. _id3v2: http://id3v2.sourceforge.net
|
||||||
.. _mp3info: http://www.ibiblio.org/mp3info/
|
.. _mp3info: https://www.ibiblio.org/mp3info/
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ IPFS Plugin
|
||||||
The ``ipfs`` plugin makes it easy to share your library and music with friends.
|
The ``ipfs`` plugin makes it easy to share your library and music with friends.
|
||||||
The plugin uses `ipfs`_ for storing the library and file content.
|
The plugin uses `ipfs`_ for storing the library and file content.
|
||||||
|
|
||||||
.. _ipfs: http://ipfs.io/
|
.. _ipfs: https://ipfs.io/
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,4 @@ configuration file. The available options are:
|
||||||
`initial_key` value.
|
`initial_key` value.
|
||||||
Default: ``no``.
|
Default: ``no``.
|
||||||
|
|
||||||
.. _KeyFinder: http://www.ibrahimshaath.co.uk/keyfinder/
|
.. _KeyFinder: https://www.ibrahimshaath.co.uk/keyfinder/
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ In Kodi's interface, navigate to System/Settings/Network/Services and choose "Al
|
||||||
With that all in place, you'll see beets send the "update" command to your Kodi
|
With that all in place, you'll see beets send the "update" command to your Kodi
|
||||||
host every time you change your beets library.
|
host every time you change your beets library.
|
||||||
|
|
||||||
.. _Kodi: http://kodi.tv/
|
.. _Kodi: https://kodi.tv/
|
||||||
.. _requests: http://docs.python-requests.org/en/latest/
|
.. _requests: https://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ importing and autotagging music, beets does not assign a genre. The
|
||||||
to your albums and items.
|
to your albums and items.
|
||||||
|
|
||||||
.. _does not contain genre information:
|
.. _does not contain genre information:
|
||||||
http://musicbrainz.org/doc/General_FAQ#Why_does_MusicBrainz_not_support_genre_information.3F
|
https://musicbrainz.org/doc/General_FAQ#Why_does_MusicBrainz_not_support_genre_information.3F
|
||||||
.. _Last.fm: http://last.fm/
|
.. _Last.fm: https://last.fm/
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
@ -34,7 +34,7 @@ The genre list file should contain one genre per line. Blank lines are ignored.
|
||||||
For the curious, the default genre list is generated by a `script that scrapes
|
For the curious, the default genre list is generated by a `script that scrapes
|
||||||
Wikipedia`_.
|
Wikipedia`_.
|
||||||
|
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
.. _pylast: https://github.com/pylast/pylast
|
.. _pylast: https://github.com/pylast/pylast
|
||||||
.. _script that scrapes Wikipedia: https://gist.github.com/1241307
|
.. _script that scrapes Wikipedia: https://gist.github.com/1241307
|
||||||
.. _internal whitelist: https://raw.githubusercontent.com/beetbox/beets/master/beetsplug/lastgenre/genres.txt
|
.. _internal whitelist: https://raw.githubusercontent.com/beetbox/beets/master/beetsplug/lastgenre/genres.txt
|
||||||
|
|
@ -72,7 +72,7 @@ nothing would ever be matched to a more generic node since all the specific
|
||||||
subgenres are in the whitelist to begin with.
|
subgenres are in the whitelist to begin with.
|
||||||
|
|
||||||
|
|
||||||
.. _YAML: http://www.yaml.org/
|
.. _YAML: https://www.yaml.org/
|
||||||
.. _tree of nested genre names: https://raw.githubusercontent.com/beetbox/beets/master/beetsplug/lastgenre/genres-tree.yaml
|
.. _tree of nested genre names: https://raw.githubusercontent.com/beetbox/beets/master/beetsplug/lastgenre/genres-tree.yaml
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ library into beets' database. You can later create :doc:`smart playlists
|
||||||
</plugins/smartplaylist>` by querying ``play_count`` and do other fun stuff
|
</plugins/smartplaylist>` by querying ``play_count`` and do other fun stuff
|
||||||
with this field.
|
with this field.
|
||||||
|
|
||||||
.. _Last.fm: http://last.fm
|
.. _Last.fm: https://last.fm
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
@ -23,7 +23,7 @@ Next, add your Last.fm username to your beets configuration file::
|
||||||
lastfm:
|
lastfm:
|
||||||
user: beetsfanatic
|
user: beetsfanatic
|
||||||
|
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
.. _pylast: https://github.com/pylast/pylast
|
.. _pylast: https://github.com/pylast/pylast
|
||||||
|
|
||||||
Importing Play Counts
|
Importing Play Counts
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ The ``lyrics`` plugin fetches and stores song lyrics from databases on the Web.
|
||||||
Namely, the current version of the plugin uses `Lyric Wiki`_,
|
Namely, the current version of the plugin uses `Lyric Wiki`_,
|
||||||
`Musixmatch`_, `Genius.com`_, and, optionally, the Google custom search API.
|
`Musixmatch`_, `Genius.com`_, and, optionally, the Google custom search API.
|
||||||
|
|
||||||
.. _Lyric Wiki: http://lyrics.wikia.com/
|
.. _Lyric Wiki: https://lyrics.wikia.com/
|
||||||
.. _Musixmatch: https://www.musixmatch.com/
|
.. _Musixmatch: https://www.musixmatch.com/
|
||||||
.. _Genius.com: http://genius.com/
|
.. _Genius.com: https://genius.com/
|
||||||
|
|
||||||
|
|
||||||
Fetch Lyrics During Import
|
Fetch Lyrics During Import
|
||||||
|
|
@ -26,7 +26,7 @@ already have them. The lyrics will be stored in the beets database. If the
|
||||||
``import.write`` config option is on, then the lyrics will also be written to
|
``import.write`` config option is on, then the lyrics will also be written to
|
||||||
the files' tags.
|
the files' tags.
|
||||||
|
|
||||||
.. _requests: http://docs.python-requests.org/en/latest/
|
.. _requests: https://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
|
|
@ -105,11 +105,11 @@ A minimal ``conf.py`` and ``index.rst`` files are created the first time the
|
||||||
command is run. They are not overwritten on subsequent runs, so you can safely
|
command is run. They are not overwritten on subsequent runs, so you can safely
|
||||||
modify these files to customize the output.
|
modify these files to customize the output.
|
||||||
|
|
||||||
.. _Sphinx: http://www.sphinx-doc.org/
|
.. _Sphinx: https://www.sphinx-doc.org/
|
||||||
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
|
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
|
||||||
|
|
||||||
Sphinx supports various `builders
|
Sphinx supports various `builders
|
||||||
<http://www.sphinx-doc.org/en/stable/builders.html>`_, but here are a
|
<https://www.sphinx-doc.org/en/stable/builders.html>`_, but here are a
|
||||||
few suggestions.
|
few suggestions.
|
||||||
|
|
||||||
* Build an HTML version::
|
* Build an HTML version::
|
||||||
|
|
@ -148,13 +148,13 @@ Optionally, you can `define a custom search engine`_. Get your search engine's
|
||||||
token and use it for your ``google_engine_ID`` configuration option. By
|
token and use it for your ``google_engine_ID`` configuration option. By
|
||||||
default, beets use a list of sources known to be scrapeable.
|
default, beets use a list of sources known to be scrapeable.
|
||||||
|
|
||||||
.. _define a custom search engine: http://www.google.com/cse/all
|
.. _define a custom search engine: https://www.google.com/cse/all
|
||||||
|
|
||||||
Note that the Google custom search API is limited to 100 queries per day.
|
Note that the Google custom search API is limited to 100 queries per day.
|
||||||
After that, the lyrics plugin will fall back on other declared data sources.
|
After that, the lyrics plugin will fall back on other declared data sources.
|
||||||
|
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/bs4/doc/
|
.. _BeautifulSoup: https://www.crummy.com/software/BeautifulSoup/bs4/doc/
|
||||||
|
|
||||||
Activate Genius Lyrics
|
Activate Genius Lyrics
|
||||||
----------------------
|
----------------------
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ MusicBrainz Collection Plugin
|
||||||
The ``mbcollection`` plugin lets you submit your catalog to MusicBrainz to
|
The ``mbcollection`` plugin lets you submit your catalog to MusicBrainz to
|
||||||
maintain your `music collection`_ list there.
|
maintain your `music collection`_ list there.
|
||||||
|
|
||||||
.. _music collection: http://musicbrainz.org/doc/Collections
|
.. _music collection: https://musicbrainz.org/doc/Collections
|
||||||
|
|
||||||
To begin, just enable the ``mbcollection`` plugin in your
|
To begin, just enable the ``mbcollection`` plugin in your
|
||||||
configuration (see :ref:`using-plugins`).
|
configuration (see :ref:`using-plugins`).
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ The ``mbsubmit`` plugin provides an extra prompt choice during an import
|
||||||
session that prints the tracks of the current album in a format that is
|
session that prints the tracks of the current album in a format that is
|
||||||
parseable by MusicBrainz's `track parser`_.
|
parseable by MusicBrainz's `track parser`_.
|
||||||
|
|
||||||
.. _track parser: http://wiki.musicbrainz.org/History:How_To_Parse_Track_Listings
|
.. _track parser: https://wiki.musicbrainz.org/History:How_To_Parse_Track_Listings
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
@ -15,7 +15,7 @@ and select the ``Print tracks`` choice which is by default displayed when no
|
||||||
strong recommendations are found for the album::
|
strong recommendations are found for the album::
|
||||||
|
|
||||||
No matching release found for 3 tracks.
|
No matching release found for 3 tracks.
|
||||||
For help, see: http://beets.readthedocs.org/en/latest/faq.html#nomatch
|
For help, see: https://beets.readthedocs.org/en/latest/faq.html#nomatch
|
||||||
[U]se as-is, as Tracks, Group albums, Skip, Enter search, enter Id, aBort,
|
[U]se as-is, as Tracks, Group albums, Skip, Enter search, enter Id, aBort,
|
||||||
Print tracks? p
|
Print tracks? p
|
||||||
01. An Obscure Track - An Obscure Artist (3:37)
|
01. An Obscure Track - An Obscure Artist (3:37)
|
||||||
|
|
@ -23,7 +23,7 @@ strong recommendations are found for the album::
|
||||||
03. The Third Track - Another Obscure Artist (3:02)
|
03. The Third Track - Another Obscure Artist (3:02)
|
||||||
|
|
||||||
No matching release found for 3 tracks.
|
No matching release found for 3 tracks.
|
||||||
For help, see: http://beets.readthedocs.org/en/latest/faq.html#nomatch
|
For help, see: https://beets.readthedocs.org/en/latest/faq.html#nomatch
|
||||||
[U]se as-is, as Tracks, Group albums, Skip, Enter search, enter Id, aBort,
|
[U]se as-is, as Tracks, Group albums, Skip, Enter search, enter Id, aBort,
|
||||||
Print tracks?
|
Print tracks?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ Enable the ``metasync`` plugin in your configuration (see
|
||||||
To synchronize with Amarok, you'll need the `dbus-python`_ library. There are
|
To synchronize with Amarok, you'll need the `dbus-python`_ library. There are
|
||||||
packages for most major Linux distributions.
|
packages for most major Linux distributions.
|
||||||
|
|
||||||
.. _dbus-python: http://dbus.freedesktop.org/releases/dbus-python/
|
.. _dbus-python: https://dbus.freedesktop.org/releases/dbus-python/
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ habits from `MPD`_. It collects the following information about tracks:
|
||||||
* last_played: UNIX timestamp when you last played this track.
|
* last_played: UNIX timestamp when you last played this track.
|
||||||
* rating: A rating based on *play_count* and *skip_count*.
|
* rating: A rating based on *play_count* and *skip_count*.
|
||||||
|
|
||||||
.. _MPD: http://www.musicpd.org/
|
.. _MPD: https://www.musicpd.org/
|
||||||
|
|
||||||
Installing Dependencies
|
Installing Dependencies
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
@ -23,7 +23,7 @@ Install the library from `pip`_, like so::
|
||||||
|
|
||||||
Add the ``mpdstats`` plugin to your configuration (see :ref:`using-plugins`).
|
Add the ``mpdstats`` plugin to your configuration (see :ref:`using-plugins`).
|
||||||
|
|
||||||
.. _pip: http://www.pip-installer.org/
|
.. _pip: https://pip.pypa.io
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ MPDUpdate Plugin
|
||||||
``mpdupdate`` is a very simple plugin for beets that lets you automatically
|
``mpdupdate`` is a very simple plugin for beets that lets you automatically
|
||||||
update `MPD`_'s index whenever you change your beets library.
|
update `MPD`_'s index whenever you change your beets library.
|
||||||
|
|
||||||
.. _MPD: http://www.musicpd.org/
|
.. _MPD: https://www.musicpd.org/
|
||||||
|
|
||||||
To use ``mpdupdate`` plugin, enable it in your configuration
|
To use ``mpdupdate`` plugin, enable it in your configuration
|
||||||
(see :ref:`using-plugins`).
|
(see :ref:`using-plugins`).
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ To use the ``plexupdate`` plugin you need to install the `requests`_ library wit
|
||||||
With that all in place, you'll see beets send the "update" command to your Plex
|
With that all in place, you'll see beets send the "update" command to your Plex
|
||||||
server every time you change your beets library.
|
server every time you change your beets library.
|
||||||
|
|
||||||
.. _Plex: http://plex.tv/
|
.. _Plex: https://plex.tv/
|
||||||
.. _requests: http://docs.python-requests.org/en/latest/
|
.. _requests: https://docs.python-requests.org/en/latest/
|
||||||
.. _documentation about tokens: https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token
|
.. _documentation about tokens: https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ ReplayGain Plugin
|
||||||
This plugin adds support for `ReplayGain`_, a technique for normalizing audio
|
This plugin adds support for `ReplayGain`_, a technique for normalizing audio
|
||||||
playback levels.
|
playback levels.
|
||||||
|
|
||||||
.. _ReplayGain: http://wiki.hydrogenaudio.org/index.php?title=ReplayGain
|
.. _ReplayGain: https://wiki.hydrogenaudio.org/index.php?title=ReplayGain
|
||||||
|
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
|
|
@ -27,7 +27,7 @@ install GStreamer and plugins for compatibility with your audio files.
|
||||||
You will need at least GStreamer 1.0 and `PyGObject 3.x`_ (a.k.a. ``python-gi``).
|
You will need at least GStreamer 1.0 and `PyGObject 3.x`_ (a.k.a. ``python-gi``).
|
||||||
|
|
||||||
.. _PyGObject 3.x: https://pygobject.readthedocs.io/en/latest/
|
.. _PyGObject 3.x: https://pygobject.readthedocs.io/en/latest/
|
||||||
.. _GStreamer: http://gstreamer.freedesktop.org/
|
.. _GStreamer: https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
Then, enable the ``replaygain`` plugin (see :ref:`using-plugins`) and specify
|
Then, enable the ``replaygain`` plugin (see :ref:`using-plugins`) and specify
|
||||||
the GStreamer backend by adding this to your configuration file::
|
the GStreamer backend by adding this to your configuration file::
|
||||||
|
|
@ -47,8 +47,8 @@ command-line tool or the `aacgain`_ fork thereof. Here are some hints:
|
||||||
* On Windows, download and install the original `mp3gain`_.
|
* On Windows, download and install the original `mp3gain`_.
|
||||||
|
|
||||||
.. _mp3gain: http://mp3gain.sourceforge.net/download.php
|
.. _mp3gain: http://mp3gain.sourceforge.net/download.php
|
||||||
.. _aacgain: http://aacgain.altosdesign.com
|
.. _aacgain: https://aacgain.altosdesign.com
|
||||||
.. _Homebrew: http://mxcl.github.com/homebrew/
|
.. _Homebrew: https://brew.sh
|
||||||
|
|
||||||
Then, enable the plugin (see :ref:`using-plugins`) and specify the "command"
|
Then, enable the plugin (see :ref:`using-plugins`) and specify the "command"
|
||||||
backend in your configuration file::
|
backend in your configuration file::
|
||||||
|
|
|
||||||
|
|
@ -14,5 +14,5 @@ To use the ``sonosupdate`` plugin you need to install the `soco`_ library with::
|
||||||
With that all in place, you'll see beets send the "update" command to your Sonos
|
With that all in place, you'll see beets send the "update" command to your Sonos
|
||||||
controller every time you change your beets library.
|
controller every time you change your beets library.
|
||||||
|
|
||||||
.. _Sonos: http://sonos.com/
|
.. _Sonos: https://sonos.com/
|
||||||
.. _soco: http://python-soco.com
|
.. _soco: http://python-soco.com
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,8 @@ Here's an example::
|
||||||
|
|
||||||
$ beet spotify "In The Lonely Hour"
|
$ beet spotify "In The Lonely Hour"
|
||||||
Processing 14 tracks...
|
Processing 14 tracks...
|
||||||
http://open.spotify.com/track/19w0OHr8SiZzRhjpnjctJ4
|
https://open.spotify.com/track/19w0OHr8SiZzRhjpnjctJ4
|
||||||
http://open.spotify.com/track/3PRLM4FzhplXfySa4B7bxS
|
https://open.spotify.com/track/3PRLM4FzhplXfySa4B7bxS
|
||||||
[...]
|
[...]
|
||||||
|
|
||||||
Command-line options include:
|
Command-line options include:
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ SubsonicUpdate Plugin
|
||||||
``subsonicupdate`` is a very simple plugin for beets that lets you automatically
|
``subsonicupdate`` is a very simple plugin for beets that lets you automatically
|
||||||
update `Subsonic`_'s index whenever you change your beets library.
|
update `Subsonic`_'s index whenever you change your beets library.
|
||||||
|
|
||||||
.. _Subsonic: http://www.subsonic.org
|
.. _Subsonic: https://www.subsonic.org
|
||||||
|
|
||||||
To use ``subsonicupdate`` plugin, enable it in your configuration
|
To use ``subsonicupdate`` plugin, enable it in your configuration
|
||||||
(see :ref:`using-plugins`).
|
(see :ref:`using-plugins`).
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ as the :doc:`/plugins/fetchart`. You'll need 2 additional python packages:
|
||||||
`ImageMagick`_ or `Pillow`_.
|
`ImageMagick`_ or `Pillow`_.
|
||||||
|
|
||||||
.. _Pillow: https://github.com/python-pillow/Pillow
|
.. _Pillow: https://github.com/python-pillow/Pillow
|
||||||
.. _ImageMagick: http://www.imagemagick.org/
|
.. _ImageMagick: https://www.imagemagick.org/
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,13 @@ The Web interface depends on `Flask`_. To get it, just run ``pip install
|
||||||
flask``. Then enable the ``web`` plugin in your configuration (see
|
flask``. Then enable the ``web`` plugin in your configuration (see
|
||||||
:ref:`using-plugins`).
|
:ref:`using-plugins`).
|
||||||
|
|
||||||
.. _Flask: http://flask.pocoo.org/
|
.. _Flask: https://flask.pocoo.org/
|
||||||
|
|
||||||
If you need CORS (it's disabled by default---see :ref:`web-cors`, below), then
|
If you need CORS (it's disabled by default---see :ref:`web-cors`, below), then
|
||||||
you also need `flask-cors`_. Just type ``pip install flask-cors``.
|
you also need `flask-cors`_. Just type ``pip install flask-cors``.
|
||||||
|
|
||||||
.. _flask-cors: https://github.com/CoryDolphin/flask-cors
|
.. _flask-cors: https://github.com/CoryDolphin/flask-cors
|
||||||
.. _CORS: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
|
.. _CORS: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
|
||||||
|
|
||||||
|
|
||||||
Run the Server
|
Run the Server
|
||||||
|
|
@ -78,8 +78,8 @@ The Web backend is built using a simple REST+JSON API with the excellent
|
||||||
`Flask`_ library. The frontend is a single-page application written with
|
`Flask`_ library. The frontend is a single-page application written with
|
||||||
`Backbone.js`_. This allows future non-Web clients to use the same backend API.
|
`Backbone.js`_. This allows future non-Web clients to use the same backend API.
|
||||||
|
|
||||||
.. _Flask: http://flask.pocoo.org/
|
.. _Flask: https://flask.pocoo.org/
|
||||||
.. _Backbone.js: http://backbonejs.org
|
.. _Backbone.js: https://backbonejs.org
|
||||||
|
|
||||||
Eventually, to make the Web player really viable, we should use a Flash fallback
|
Eventually, to make the Web player really viable, we should use a Flash fallback
|
||||||
for unsupported formats/browsers. There are a number of options for this:
|
for unsupported formats/browsers. There are a number of options for this:
|
||||||
|
|
@ -88,8 +88,8 @@ for unsupported formats/browsers. There are a number of options for this:
|
||||||
* `html5media`_
|
* `html5media`_
|
||||||
* `MediaElement.js`_
|
* `MediaElement.js`_
|
||||||
|
|
||||||
.. _audio.js: http://kolber.github.com/audiojs/
|
.. _audio.js: https://kolber.github.io/audiojs/
|
||||||
.. _html5media: http://html5media.info/
|
.. _html5media: https://html5media.info/
|
||||||
.. _MediaElement.js: http://mediaelementjs.com/
|
.. _MediaElement.js: http://mediaelementjs.com/
|
||||||
|
|
||||||
.. _web-cors:
|
.. _web-cors:
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@ beatles`` prints out the number of tracks on each Beatles album. In Unix shells,
|
||||||
remember to enclose the template argument in single quotes to avoid environment
|
remember to enclose the template argument in single quotes to avoid environment
|
||||||
variable expansion.
|
variable expansion.
|
||||||
|
|
||||||
.. _xargs: http://en.wikipedia.org/wiki/Xargs
|
.. _xargs: https://en.wikipedia.org/wiki/Xargs
|
||||||
|
|
||||||
.. _remove-cmd:
|
.. _remove-cmd:
|
||||||
|
|
||||||
|
|
@ -498,6 +498,6 @@ defines some bash-specific functions to make this work without errors::
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
``http://beets.readthedocs.org/``
|
``https://beets.readthedocs.org/``
|
||||||
|
|
||||||
:manpage:`beetsconfig(5)`
|
:manpage:`beetsconfig(5)`
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ In YAML, you will need to use spaces (not tabs!) to indent some lines. If you
|
||||||
have questions about more sophisticated syntax, take a look at the `YAML`_
|
have questions about more sophisticated syntax, take a look at the `YAML`_
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
.. _YAML: http://yaml.org/
|
.. _YAML: https://yaml.org/
|
||||||
|
|
||||||
The rest of this page enumerates the dizzying litany of configuration options
|
The rest of this page enumerates the dizzying litany of configuration options
|
||||||
available in beets. You might also want to see an
|
available in beets. You might also want to see an
|
||||||
|
|
@ -167,7 +167,7 @@ equivalent to wrapping all your path templates in the ``%asciify{}``
|
||||||
|
|
||||||
Default: ``no``.
|
Default: ``no``.
|
||||||
|
|
||||||
.. _unidecode module: http://pypi.python.org/pypi/Unidecode
|
.. _unidecode module: https://pypi.org/project/Unidecode
|
||||||
|
|
||||||
|
|
||||||
.. _art-filename:
|
.. _art-filename:
|
||||||
|
|
@ -314,7 +314,7 @@ standard output. It's also used to read messages from the standard input.
|
||||||
By default, this is determined automatically from the locale
|
By default, this is determined automatically from the locale
|
||||||
environment variables.
|
environment variables.
|
||||||
|
|
||||||
.. _known to python: http://docs.python.org/2/library/codecs.html#standard-encodings
|
.. _known to python: https://docs.python.org/2/library/codecs.html#standard-encodings
|
||||||
|
|
||||||
.. _clutter:
|
.. _clutter:
|
||||||
|
|
||||||
|
|
@ -688,7 +688,7 @@ to one request per second.
|
||||||
|
|
||||||
.. _your own MusicBrainz database: https://musicbrainz.org/doc/MusicBrainz_Server/Setup
|
.. _your own MusicBrainz database: https://musicbrainz.org/doc/MusicBrainz_Server/Setup
|
||||||
.. _main server: https://musicbrainz.org/
|
.. _main server: https://musicbrainz.org/
|
||||||
.. _limited: http://musicbrainz.org/doc/XML_Web_Service/Rate_Limiting
|
.. _limited: https://musicbrainz.org/doc/XML_Web_Service/Rate_Limiting
|
||||||
.. _Building search indexes: https://musicbrainz.org/doc/MusicBrainz_Server/Setup#Building_search_indexes
|
.. _Building search indexes: https://musicbrainz.org/doc/MusicBrainz_Server/Setup#Building_search_indexes
|
||||||
|
|
||||||
.. _searchlimit:
|
.. _searchlimit:
|
||||||
|
|
@ -981,6 +981,6 @@ Here's an example file::
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
``http://beets.readthedocs.org/``
|
``https://beets.readthedocs.org/``
|
||||||
|
|
||||||
:manpage:`beet(1)`
|
:manpage:`beet(1)`
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ a dollars sign. As with `Python template strings`_, ``${title}`` is equivalent
|
||||||
to ``$title``; you can use this if you need to separate a field name from the
|
to ``$title``; you can use this if you need to separate a field name from the
|
||||||
text that follows it.
|
text that follows it.
|
||||||
|
|
||||||
.. _Python template strings: http://docs.python.org/library/string.html#template-strings
|
.. _Python template strings: https://docs.python.org/library/string.html#template-strings
|
||||||
|
|
||||||
|
|
||||||
A Note About Artists
|
A Note About Artists
|
||||||
|
|
@ -38,7 +38,7 @@ tracks in a "Talking Heads" directory and one in a "Tom Tom Club" directory. You
|
||||||
probably don't want that! So use ``$albumartist``.
|
probably don't want that! So use ``$albumartist``.
|
||||||
|
|
||||||
.. _Stop Making Sense:
|
.. _Stop Making Sense:
|
||||||
http://musicbrainz.org/release/798dcaab-0f1a-4f02-a9cb-61d5b0ddfd36.html
|
https://musicbrainz.org/release/798dcaab-0f1a-4f02-a9cb-61d5b0ddfd36.html
|
||||||
|
|
||||||
As a convenience, however, beets allows ``$albumartist`` to fall back to the value for ``$artist`` and vice-versa if one tag is present but the other is not.
|
As a convenience, however, beets allows ``$albumartist`` to fall back to the value for ``$artist`` and vice-versa if one tag is present but the other is not.
|
||||||
|
|
||||||
|
|
@ -89,8 +89,8 @@ These functions are built in to beets:
|
||||||
without ``$``. Note that this doesn't work with built-in :ref:`itemfields`, as
|
without ``$``. Note that this doesn't work with built-in :ref:`itemfields`, as
|
||||||
they are always defined.
|
they are always defined.
|
||||||
|
|
||||||
.. _unidecode module: http://pypi.python.org/pypi/Unidecode
|
.. _unidecode module: https://pypi.org/project/Unidecode
|
||||||
.. _strftime: http://docs.python.org/2/library/time.html#time.strftime
|
.. _strftime: https://docs.python.org/3/library/time.html#time.strftime
|
||||||
|
|
||||||
Plugins can extend beets with more template functions (see
|
Plugins can extend beets with more template functions (see
|
||||||
:ref:`templ_plugins`).
|
:ref:`templ_plugins`).
|
||||||
|
|
@ -228,8 +228,8 @@ Ordinary metadata:
|
||||||
* disctitle
|
* disctitle
|
||||||
* encoder
|
* encoder
|
||||||
|
|
||||||
.. _artist credit: http://wiki.musicbrainz.org/Artist_Credit
|
.. _artist credit: https://wiki.musicbrainz.org/Artist_Credit
|
||||||
.. _list of type names: http://musicbrainz.org/doc/Release_Group/Type
|
.. _list of type names: https://musicbrainz.org/doc/Release_Group/Type
|
||||||
|
|
||||||
Audio information:
|
Audio information:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ expressions, such as ``()[]|``. To type those characters, you'll need to
|
||||||
escape them (e.g., with backslashes or quotation marks, depending on your
|
escape them (e.g., with backslashes or quotation marks, depending on your
|
||||||
shell).
|
shell).
|
||||||
|
|
||||||
.. _Python's built-in implementation: http://docs.python.org/library/re.html
|
.. _Python's built-in implementation: https://docs.python.org/library/re.html
|
||||||
|
|
||||||
|
|
||||||
.. _numericquery:
|
.. _numericquery:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#compdef beet
|
#compdef beet
|
||||||
|
|
||||||
# zsh completion for beets music library manager and MusicBrainz tagger: http://beets.radbox.org/
|
# zsh completion for beets music library manager and MusicBrainz tagger: http://beets.io/
|
||||||
|
|
||||||
# Default values for BEETS_LIBRARY & BEETS_CONFIG needed for the cache checking function.
|
# Default values for BEETS_LIBRARY & BEETS_CONFIG needed for the cache checking function.
|
||||||
# They will be updated under the assumption that the config file is in the same directory as the library.
|
# They will be updated under the assumption that the config file is in the same directory as the library.
|
||||||
|
|
|
||||||
2
setup.py
2
setup.py
|
|
@ -156,7 +156,7 @@ setup(
|
||||||
# badfiles: mp3val and flac
|
# badfiles: mp3val and flac
|
||||||
# bpd: python-gi and GStreamer 1.0+
|
# bpd: python-gi and GStreamer 1.0+
|
||||||
# embedart: ImageMagick
|
# embedart: ImageMagick
|
||||||
# absubmit: extractor binary from http://acousticbrainz.org/download
|
# absubmit: extractor binary from https://acousticbrainz.org/download
|
||||||
# keyfinder: KeyFinder
|
# keyfinder: KeyFinder
|
||||||
# replaygain: python-gi and GStreamer 1.0+ or mp3gain/aacgain
|
# replaygain: python-gi and GStreamer 1.0+ or mp3gain/aacgain
|
||||||
# or Python Audio Tools
|
# or Python Audio Tools
|
||||||
|
|
|
||||||
|
|
@ -159,9 +159,9 @@ class FSArtTest(UseThePlugin):
|
||||||
class CombinedTest(FetchImageHelper, UseThePlugin):
|
class CombinedTest(FetchImageHelper, UseThePlugin):
|
||||||
ASIN = 'xxxx'
|
ASIN = 'xxxx'
|
||||||
MBID = 'releaseid'
|
MBID = 'releaseid'
|
||||||
AMAZON_URL = 'http://images.amazon.com/images/P/{0}.01.LZZZZZZZ.jpg' \
|
AMAZON_URL = 'https://images.amazon.com/images/P/{0}.01.LZZZZZZZ.jpg' \
|
||||||
.format(ASIN)
|
.format(ASIN)
|
||||||
AAO_URL = 'http://www.albumart.org/index_detail.php?asin={0}' \
|
AAO_URL = 'https://www.albumart.org/index_detail.php?asin={0}' \
|
||||||
.format(ASIN)
|
.format(ASIN)
|
||||||
CAA_URL = 'coverartarchive.org/release/{0}/front' \
|
CAA_URL = 'coverartarchive.org/release/{0}/front' \
|
||||||
.format(MBID)
|
.format(MBID)
|
||||||
|
|
@ -240,7 +240,7 @@ class CombinedTest(FetchImageHelper, UseThePlugin):
|
||||||
|
|
||||||
class AAOTest(UseThePlugin):
|
class AAOTest(UseThePlugin):
|
||||||
ASIN = 'xxxx'
|
ASIN = 'xxxx'
|
||||||
AAO_URL = 'http://www.albumart.org/index_detail.php?asin={0}'.format(ASIN)
|
AAO_URL = 'https://www.albumart.org/index_detail.php?asin={0}'.format(ASIN)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(AAOTest, self).setUp()
|
super(AAOTest, self).setUp()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue