diff --git a/CODE_OF_CONDUCT.rst b/CODE_OF_CONDUCT.rst index e4f744bdd0..cf37e29f36 100644 --- a/CODE_OF_CONDUCT.rst +++ b/CODE_OF_CONDUCT.rst @@ -127,7 +127,7 @@ Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available `here -`_. +`_. Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index c2cde4ed4d..22db94565b 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -157,10 +157,10 @@ Code Contribution Ideas `__. These are issues that would serve as a good introduction to the codebase. Claim one and start exploring! -- Like testing? Our `test coverage `__ - is somewhat low. You can help out by finding low-coverage modules or checking - out other `testing-related issues - `__. +- Like testing? Our `test coverage + `__ is somewhat low. You can help + out by finding low-coverage modules or checking out other `testing-related + issues `__. - There are several ways to improve the tests in general (see :ref:`testing` and some places to think about performance optimization (see `Optimization `__). @@ -169,8 +169,8 @@ Code Contribution Ideas `__ are currently quite sparse. You can help by adding to the docstrings in the code and to the documentation pages themselves. beets follows `PEP-257 - `__ for docstrings and in some - places, we also sometimes use `ReST autodoc syntax for Sphinx + `__ for docstrings and in some places, we + also sometimes use `ReST autodoc syntax for Sphinx `__ to, for example, refer to a class name. @@ -179,7 +179,7 @@ Your First Contribution If this is your first time contributing to an open source project, welcome! If you are confused at all about how to contribute or what to contribute, take a -look at `this great tutorial `__, or stop by our +look at `this great tutorial `__, or stop by our `discussion board`_ if you have any questions. We maintain a list of issues we reserved for those new to open source labeled @@ -263,13 +263,13 @@ There are a few coding conventions we use in beets: - f-strings should be used instead of the ``%`` operator and ``str.format()`` calls. - Never ``print`` informational messages; use the `logging - `__ module instead. In + `__ module instead. In particular, we have our own logging shim, so you’ll see ``from beets import logging`` in most files. - The loggers use `str.format - `__-style logging - instead of ``%``-style, so you can type ``log.debug("{}", obj)`` to do your + `__-style logging instead + of ``%``-style, so you can type ``log.debug("{}", obj)`` to do your formatting. - Exception handlers must use ``except A as B:`` instead of ``except A, B:``. @@ -357,10 +357,9 @@ Writing Tests ~~~~~~~~~~~~~ Writing tests is done by adding or modifying files in folder test_. Take a look -at `https://github.com/beetbox/beets/blob/master/test/test_template.py#L224`_ to -get a basic view on how tests are written. Since we are currently migrating the -tests from unittest_ to pytest_, new tests should be written using pytest_. -Contributions migrating existing tests are welcome! +at test-query_ to get a basic view on how tests are written. Since we are +currently migrating the tests from unittest_ to pytest_, new tests should be +written using pytest_. Contributions migrating existing tests are welcome! External API requests under test should be mocked with requests-mock_, However, we still want to know whether external APIs are up and that they return expected @@ -375,14 +374,12 @@ In order to add such a test, mark your test with the ``integration_test`` marker This way, the test will be run only in the integration test suite. -.. _codecov: https://codecov.io/github/beetbox/beets +.. _codecov: https://app.codecov.io/github/beetbox/beets .. _discussion board: https://github.com/beetbox/beets/discussions .. _documentation: https://beets.readthedocs.io/en/stable/ -.. _https://github.com/beetbox/beets/blob/master/test/test_template.py#l224: https://github.com/beetbox/beets/blob/master/test/test_template.py#L224 - .. _integration test: https://github.com/beetbox/beets/actions?query=workflow%3A%22integration+tests%22 .. _pipx: https://pipx.pypa.io/stable @@ -391,7 +388,7 @@ This way, the test will be run only in the integration test suite. .. _poetry: https://python-poetry.org/docs/ -.. _pyproject.toml: https://github.com/beetbox/beets/tree/master/pyproject.toml +.. _pyproject.toml: https://github.com/beetbox/beets/blob/master/pyproject.toml .. _pytest: https://docs.pytest.org/en/stable/ @@ -401,6 +398,8 @@ This way, the test will be run only in the integration test suite. .. _test: https://github.com/beetbox/beets/tree/master/test +.. _test-query: https://github.com/beetbox/beets/blob/master/test/test_query.py + .. _unittest: https://docs.python.org/3/library/unittest.html .. _vim: https://www.vim.org/ diff --git a/README.rst b/README.rst index 9e42eec305..851d3bffa5 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ :target: https://pypi.python.org/pypi/beets .. image:: https://img.shields.io/codecov/c/github/beetbox/beets.svg - :target: https://codecov.io/github/beetbox/beets + :target: https://app.codecov.io/github/beetbox/beets .. image:: https://img.shields.io/github/actions/workflow/status/beetbox/beets/ci.yaml :target: https://github.com/beetbox/beets/actions diff --git a/README_kr.rst b/README_kr.rst index 8032294252..a1a3389d33 100644 --- a/README_kr.rst +++ b/README_kr.rst @@ -2,7 +2,7 @@ :target: https://pypi.python.org/pypi/beets .. image:: https://img.shields.io/codecov/c/github/beetbox/beets.svg - :target: https://codecov.io/github/beetbox/beets + :target: https://app.codecov.io/github/beetbox/beets .. image:: https://travis-ci.org/beetbox/beets.svg?branch=master :target: https://travis-ci.org/beetbox/beets diff --git a/docs/changelog.rst b/docs/changelog.rst index 35bc1ab0cc..1f79f64873 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -95,6 +95,8 @@ Other changes - :doc:`plugins/lyrics`: To cut down noise from the ``lrclib`` lyrics source, synced lyrics are now checked to ensure the final verse falls within the track's duration. +- Updated URLs in the documentation to use HTTPS where possible and updated + outdated links. 2.6.2 (February 22, 2026) ------------------------- @@ -1587,13 +1589,13 @@ For packagers .. _confuse: https://github.com/beetbox/confuse -.. _deezer: https://www.deezer.com +.. _deezer: https://www.deezer.com/en/ .. _fish shell: https://fishshell.com/ .. _keyfinder-cli: https://github.com/EvanPurkhiser/keyfinder-cli -.. _last.fm: https://last.fm +.. _last.fm: https://www.last.fm/ .. _mediafile: https://github.com/beetbox/mediafile @@ -2543,7 +2545,7 @@ The ``echonest`` plugin has been removed in this version because the API it used is `shutting down`_. You might want to try the :doc:`/plugins/acousticbrainz` instead. -.. _shutting down: https://developer.spotify.com/news-stories/2016/03/29/api-improvements-update/ +.. _shutting down: https://web.archive.org/web/20260000000000*/developer.spotify.com/news-stories/2016/03/29/api-improvements-update Some of the larger new features ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2667,7 +2669,7 @@ There are even more new features .. _acousticbrainz: https://acousticbrainz.org/ -.. _google code-in: https://codein.withgoogle.com/ +.. _google code-in: https://codein.withgoogle.com/archive/ Fixes ~~~~~ @@ -2973,7 +2975,7 @@ Fixes - :doc:`/plugins/convert`: Fix a problem with filename encoding on Windows under Python 3. :bug:`2515` :bug:`2516` -.. _ipfs: https://ipfs.io +.. _ipfs: https://about.ipfs.io/ .. _python bug: https://bugs.python.org/issue16512 @@ -3048,7 +3050,7 @@ Little fixes and improvements ``date`` and ``original_date`` (which are not built-in beets fields). :bug:`1404` -.. _jellyfish: https://github.com/sunlightlabs/jellyfish +.. _jellyfish: https://github.com/jamesturk/jellyfish 1.3.11 (April 5, 2015) ---------------------- @@ -3244,7 +3246,7 @@ For developers immediately after they are initialized. It's also possible to replace the originally created tasks by returning new ones using this event. -.. _bs1770gain: http://bs1770gain.sourceforge.net +.. _bs1770gain: https://sourceforge.net/projects/bs1770gain/ 1.3.10 (January 5, 2015) ------------------------ @@ -3330,7 +3332,7 @@ As usual, there are loads of little fixes and improvements .. _musixmatch: https://www.musixmatch.com/ -.. _plex: https://plex.tv/ +.. _plex: https://watch.plex.tv/ 1.3.9 (November 17, 2014) ------------------------- @@ -3554,7 +3556,7 @@ The big new features are .. _mutagen: https://github.com/quodlibet/mutagen -.. _spotify: https://www.spotify.com/ +.. _spotify: https://open.spotify.com/ And the multitude of little improvements and fixes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -3730,7 +3732,7 @@ There are also many bug fixes and little enhancements .. _enum: https://docs.python.org/3.4/library/enum.html -.. _enum34: https://pypi.python.org/pypi/enum34 +.. _enum34: https://pypi.org/project/enum34/ 1.3.4 (April 5, 2014) --------------------- @@ -3810,7 +3812,7 @@ Fixes - :doc:`/plugins/convert`: Display a useful error message when the FFmpeg executable can't be found. -.. _requests: https://requests.readthedocs.io/en/master/ +.. _requests: https://requests.readthedocs.io/en/latest/ 1.3.3 (February 26, 2014) ------------------------- @@ -4513,7 +4515,7 @@ Other new stuff (YAML doesn't like tabs.) - Fix the ``-l`` (log path) command-line option for the ``import`` command. -.. _itunes sound check: https://support.apple.com/kb/HT2425 +.. _itunes sound check: https://support.apple.com/itunes 1.1b1 (January 29, 2013) ------------------------ @@ -4681,9 +4683,9 @@ today on features for version 1.1. - Changed plugin loading so that modules can be imported without unintentionally loading the plugins they contain. -.. _aacgain: https://aacgain.altosdesign.com +.. _aacgain: https://github.com/dgilman/aacgain -.. _mp3gain: http://mp3gain.sourceforge.net/download.php +.. _mp3gain: https://sourceforge.net/projects/mp3gain/ .. _the echo nest: https://web.archive.org/web/20180329103558/http://the.echonest.com/ @@ -4953,7 +4955,7 @@ to come in the next couple of releases. data. - Fix the ``list`` command in BPD (thanks to Simon Chopin). -.. _colorama: https://pypi.python.org/pypi/colorama +.. _colorama: https://pypi.org/project/colorama/ 1.0b12 (January 16, 2012) ------------------------- @@ -5066,11 +5068,11 @@ release: one for assigning genres and another for ReplayGain analysis. .. _acoustid: https://acoustid.org/ -.. _albumart.org: https://www.albumart.org/ +.. _albumart.org: https://web.archive.org/web/20191217041318/http://www.albumart.org/ .. _kraymer: https://github.com/KraYmer -.. _next generation schema: https://musicbrainz.org/doc/XML_Web_Service/Version_2 +.. _next generation schema: https://musicbrainz.org/doc/MusicBrainz_API .. _peter brunner: https://github.com/Lugoues @@ -5201,9 +5203,9 @@ below, for a plethora of new features. - Suppress errors due to timeouts and bad responses from MusicBrainz. - Fix a crash on album queries with item-only field names. -.. _unidecode: https://pypi.python.org/pypi/Unidecode/0.04.1 +.. _unidecode: https://pypi.org/project/Unidecode/0.04.1/ -.. _xargs: https://en.wikipedia.org/wiki/xargs +.. _xargs: https://en.wikipedia.org/wiki/Xargs 1.0b8 (April 28, 2011) ---------------------- @@ -5404,7 +5406,7 @@ are also rolled into this release. - Fixed normalization of relative paths. - Fixed escaping of ``/`` characters in paths on Windows. -.. _!!!: https://musicbrainz.org/artist/f26c72d3-e52c-467b-b651-679c73d8e1a7.html +.. _!!!: https://musicbrainz.org/artist/f26c72d3-e52c-467b-b651-679c73d8e1a7 1.0b4 (August 9, 2010) ---------------------- @@ -5574,7 +5576,7 @@ Vorbis) and an option to log untaggable albums during import. removed dependency on the aging ``cmdln`` module in favor of `a hand-rolled solution`_. -.. _a hand-rolled solution: https://gist.github.com/462717 +.. _a hand-rolled solution: https://gist.github.com/sampsyo/462717 1.0b1 (June 17, 2010) --------------------- diff --git a/docs/conf.py b/docs/conf.py index 8a812d1591..84fa9bbca3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -69,6 +69,11 @@ r"https?://127\.0\.0\.1", r"https://www.musixmatch.com/", # blocks requests r"https://genius.com/", # blocks requests + r"https://sourceforge\.net/", # blocks requests + r"https://[^/]*fanart\.tv/", # blocks requests + r"https://[^/]*fandom\.com/", # blocks requests + r"https://imgur\.com/", # not accessible from the UK + r"https://www.discogs.com/settings/developers", # requires login ] # Options for HTML output diff --git a/docs/dev/plugins/commands.rst b/docs/dev/plugins/commands.rst index f39578f112..68adf38866 100644 --- a/docs/dev/plugins/commands.rst +++ b/docs/dev/plugins/commands.rst @@ -34,14 +34,14 @@ 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 your command name. -.. _optionparser instance: https://docs.python.org/library/optparse.html +.. _optionparser instance: https://docs.python.org/3/library/optparse.html You'll need to add a function to your command by saying ``mycommand.func = myfunction``. This function should take the following parameters: ``lib`` (a beets ``Library`` object) and ``opts`` and ``args`` (command-line options and arguments as returned by OptionParser.parse_args_). -.. _optionparser.parse_args: https://docs.python.org/library/optparse.html#parsing-arguments +.. _optionparser.parse_args: https://docs.python.org/3/library/optparse.html#parsing-arguments The function should use any of the utility functions defined in ``beets.ui``. Try running ``pydoc beets.ui`` to see what's available. diff --git a/docs/dev/plugins/index.rst b/docs/dev/plugins/index.rst index a8feb32d9b..e01b34741a 100644 --- a/docs/dev/plugins/index.rst +++ b/docs/dev/plugins/index.rst @@ -91,7 +91,7 @@ and you're good to go! .. _this article: https://realpython.com/python-namespace-package/#setting-up-some-namespace-packages -.. _this stack overflow question: https://stackoverflow.com/a/27586272/9582674 +.. _this stack overflow question: https://stackoverflow.com/questions/1675734/how-do-i-create-a-namespace-package-in-python/27586272#27586272 More information ---------------- diff --git a/docs/dev/plugins/other/logging.rst b/docs/dev/plugins/other/logging.rst index a26f0c4c09..c44e690c47 100644 --- a/docs/dev/plugins/other/logging.rst +++ b/docs/dev/plugins/other/logging.rst @@ -11,7 +11,7 @@ str.format-style string formatting. So you can write logging calls like this: self._log.debug("Processing {0.title} by {0.artist}", item) -.. _pep 3101: https://www.python.org/dev/peps/pep-3101/ +.. _pep 3101: https://peps.python.org/pep-3101/ .. _standard python logging module: https://docs.python.org/3/library/logging.html diff --git a/docs/faq.rst b/docs/faq.rst index 287dc88afe..847bbd9a89 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -171,7 +171,8 @@ follow these guidelines when reporting an issue: - Most importantly: if beets is crashing, please `include the traceback `__. Tracebacks can be more readable if you put them in a pastebin (e.g., `Gist `__ or `Hastebin - `__), especially when communicating over IRC. + `__), especially when + communicating over IRC. - Turn on beets' debug output (using the -v option: for example, ``beet -v import ...``) and include that with your bug report. Look through this verbose output for any red flags that might point to the problem. @@ -191,7 +192,7 @@ guidelines for good bug reports`_. .. _find-config: -.. _general guidelines for good bug reports: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines +.. _general guidelines for good bug reports: https://bugzilla.mozilla.org/page.cgi?id=bug-writing.html .. _issue tracker: https://github.com/beetbox/beets/issues @@ -298,9 +299,9 @@ remedy this.) Beets writes ID3v2.4_ tags by default. Some software, including Windows (i.e., Windows Explorer and Windows Media Player) and `id3lib/id3v2 -`__, don't support v2.4 tags. When using -2.4-unaware software, it might look like the tags are unmodified or missing -completely. +`__, don't support v2.4 tags. When +using 2.4-unaware software, it might look like the tags are unmodified or +missing completely. To enable ID3v2.3 tags, enable the :ref:`id3v23` config option. @@ -369,4 +370,4 @@ try `this Super User answer`_. .. _pip: https://pip.pypa.io/en/stable/ -.. _this super user answer: https://superuser.com/a/284361/4569 +.. _this super user answer: https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them/284361#284361 diff --git a/docs/guides/installation.rst b/docs/guides/installation.rst index bd634c4c53..1340d28afe 100644 --- a/docs/guides/installation.rst +++ b/docs/guides/installation.rst @@ -4,7 +4,7 @@ Installation Beets requires `Python 3.10 or later`_. You can install it using package managers, pipx_, pip_ or by using package managers. -.. _python 3.10 or later: https://python.org/download/ +.. _python 3.10 or later: https://www.python.org/downloads/ Using ``pipx`` or ``pip`` ------------------------- @@ -40,7 +40,7 @@ conflicts and keeps your system clean. If you don't have pipx_ installed, you can follow the instructions on the `pipx installation page`_ to get it set up. -.. _pip: https://pip.pypa.io/en/ +.. _pip: https://pip.pypa.io/en/stable/ .. _pipx: https://pipx.pypa.io/stable @@ -100,11 +100,11 @@ package manager. Here are some common options: .. _dnf package: https://packages.fedoraproject.org/pkgs/beets/ -.. _freebsd: http://portsmon.freebsd.org/portoverview.py?category=audio&portname=beets +.. _freebsd: https://www.freshports.org/audio/beets/ -.. _nixos: https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/audio/beets +.. _nixos: https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/python-modules/beets -.. _openbsd: http://openports.se/audio/beets +.. _openbsd: https://openports.pl/path/audio/beets .. _ubuntu details: https://launchpad.net/ubuntu/+source/beets @@ -160,7 +160,7 @@ necessary keys to your registry. You can then right-click a directory and choose .. _install pip: https://pip.pypa.io/en/stable/installing/ -.. _install python: https://python.org/download/ +.. _install python: https://www.python.org/downloads/ ARM Installation ~~~~~~~~~~~~~~~~ diff --git a/docs/plugins/absubmit.rst b/docs/plugins/absubmit.rst index 262977c4fb..894deb4437 100644 --- a/docs/plugins/absubmit.rst +++ b/docs/plugins/absubmit.rst @@ -75,6 +75,6 @@ file. The available options are: .. _pip: https://pip.pypa.io -.. _requests: https://requests.readthedocs.io/en/master/ +.. _requests: https://requests.readthedocs.io/en/latest/ .. _streaming_extractor_music: https://essentia.upf.edu/ diff --git a/docs/plugins/aura.rst b/docs/plugins/aura.rst index a29fa19521..b845350823 100644 --- a/docs/plugins/aura.rst +++ b/docs/plugins/aura.rst @@ -6,9 +6,9 @@ Flask_ framework. AURA is still a work in progress and doesn't yet have a stable version, but this server should be kept up to date. You are advised to read the :ref:`aura-issues` section. -.. _aura: https://auraspec.readthedocs.io +.. _aura: https://auraspec.readthedocs.io/en/latest/ -.. _flask: https://palletsprojects.com/p/flask/ +.. _flask: https://palletsprojects.com/projects/flask/ Install ------- @@ -26,7 +26,7 @@ is used, which will give a warning about using it in a production environment. It is safe to ignore this warning if the server will have only a few users. Alternatively, you can use ``beet aura -d`` to start the server in `development -mode `__, which will reload +mode `__, which will reload the server every time the AURA plugin file is changed. You can specify the hostname and port number used by the server in your @@ -122,7 +122,7 @@ what you need. .. _gunicorn: https://gunicorn.org -.. _uwsgi: https://uwsgi-docs.readthedocs.io +.. _uwsgi: https://uwsgi-docs.readthedocs.io/en/latest/ Reverse Proxy Support --------------------- @@ -131,7 +131,7 @@ The plugin should work behind a reverse proxy without further configuration, however this has not been tested extensively. For details of what headers must be rewritten and a sample NGINX configuration see `Flask proxy setups`_. -.. _flask proxy setups: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#proxy-setups +.. _flask proxy setups: https://flask.palletsprojects.com/en/stable/deploying/proxy_fix/ It is (reportedly) possible to run the application under a URL prefix (for example so you could have ``/foo/aura/server`` rather than ``/aura/server``), diff --git a/docs/plugins/badfiles.rst b/docs/plugins/badfiles.rst index 8f496cfce7..b546e7dace 100644 --- a/docs/plugins/badfiles.rst +++ b/docs/plugins/badfiles.rst @@ -34,7 +34,7 @@ and errors will be presented when selecting a tagging option. .. _flac: https://xiph.org/flac/ -.. _mp3val: http://mp3val.sourceforge.net/ +.. _mp3val: https://sourceforge.net/projects/mp3val/ Using ----- diff --git a/docs/plugins/bpd.rst b/docs/plugins/bpd.rst index dc0bd92b27..558b92aa64 100644 --- a/docs/plugins/bpd.rst +++ b/docs/plugins/bpd.rst @@ -5,11 +5,11 @@ BPD is a music player using music from a beets library. It runs as a daemon and 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. -.. _ario: http://ario-player.sourceforge.net/ +.. _ario: https://sourceforge.net/projects/ario-player/ -.. _gmpc: https://gmpc.wikia.com/wiki/Gnome_Music_Player_Client +.. _gmpc: https://gmpc.fandom.com/wiki/Gnome_Music_Player_Client -.. _sonata: http://sonata.berlios.de/ +.. _sonata: https://www.nongnu.org/sonata/ .. _theremin: https://github.com/TheStalwart/Theremin @@ -35,7 +35,7 @@ extra which installs Python bindings for ``GStreamer``: pip install "beets[bpd]" -.. _gstreamer: https://gstreamer.freedesktop.org/download +.. _gstreamer: https://gstreamer.freedesktop.org/ .. _homebrew: https://brew.sh @@ -52,7 +52,7 @@ To use the ``bpd`` plugin, first enable it in your configuration (see Fire up your favorite MPD client to start playing music. The MPD site has `a long list of available clients`_. Here are my favorites: -.. _a long list of available clients: https://mpd.wikia.com/wiki/Clients +.. _a long list of available clients: https://mpd.fandom.com/wiki/Clients - Linux: gmpc_, Sonata_ - Mac: Theremin_ @@ -111,7 +111,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 a fully-fledged MPD replacement in terms of its playback capabilities. -.. _the mpd protocol: https://www.musicpd.org/doc/protocol/ +.. _the mpd protocol: https://mpd.readthedocs.io/en/latest/protocol.html These are some of the known differences between BPD and MPD: diff --git a/docs/plugins/convert.rst b/docs/plugins/convert.rst index 14b545b28d..1b16dcf315 100644 --- a/docs/plugins/convert.rst +++ b/docs/plugins/convert.rst @@ -230,12 +230,12 @@ use the :doc:`/plugins/replaygain` to do this analysis. See the LAME documentation_ and the `HydrogenAudio wiki`_ for other LAME configuration options and a thorough discussion of MP3 encoding. -.. _documentation: https://lame.sourceforge.io/index.php +.. _documentation: https://sourceforge.net/projects/lame/ -.. _gapless: https://wiki.hydrogenaud.io/index.php?title=Gapless_playback +.. _gapless: https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback -.. _hydrogenaudio wiki: https://wiki.hydrogenaud.io/index.php?title=LAME +.. _hydrogenaudio wiki: https://wiki.hydrogenaudio.org/index.php?title=LAME -.. _lame: https://lame.sourceforge.io/index.php +.. _lame: https://sourceforge.net/projects/lame/ .. _m3u8 format: https://en.wikipedia.org/wiki/M3U#M3U8 diff --git a/docs/plugins/deezer.rst b/docs/plugins/deezer.rst index d44a565ce5..6e3b5527e7 100644 --- a/docs/plugins/deezer.rst +++ b/docs/plugins/deezer.rst @@ -6,7 +6,7 @@ Deezer_ Album_ and Track_ APIs. .. _album: https://developers.deezer.com/api/album -.. _deezer: https://www.deezer.com +.. _deezer: https://www.deezer.com/en/ .. _track: https://developers.deezer.com/api/track diff --git a/docs/plugins/discogs.rst b/docs/plugins/discogs.rst index 3734b57e73..f886857202 100644 --- a/docs/plugins/discogs.rst +++ b/docs/plugins/discogs.rst @@ -165,7 +165,7 @@ Default .. _discogs guidelines: https://support.discogs.com/hc/en-us/articles/360005055373-Database-Guidelines-12-Tracklisting#Index_Tracks_And_Headings -.. _divisions album: https://www.discogs.com/Handel-Sutherland-Kirkby-Kwella-Nelson-Watkinson-Bowman-Rolfe-Johnson-Elliott-Partridge-Thomas-The-A/release/2026070 +.. _divisions album: https://www.discogs.com/release/2026070-Handel-Sutherland-Kirkby-Kwella-Nelson-Watkinson-Bowman-Rolfe-Johnson-Elliott-Partridge-Thomas-The-A Troubleshooting --------------- diff --git a/docs/plugins/embedart.rst b/docs/plugins/embedart.rst index 0140ceff87..85498304b1 100644 --- a/docs/plugins/embedart.rst +++ b/docs/plugins/embedart.rst @@ -76,9 +76,9 @@ file. The available options are: Note: ``compare_threshold`` option requires ImageMagick_, and ``maxwidth`` requires either ImageMagick_ or Pillow_. -.. _imagemagick: https://www.imagemagick.org/ +.. _imagemagick: https://imagemagick.org/ -.. _phash: http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/ +.. _phash: https://web.archive.org/web/*/http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html .. _pillow: https://github.com/python-pillow/Pillow diff --git a/docs/plugins/fetchart.rst b/docs/plugins/fetchart.rst index fd578212aa..99a869662a 100644 --- a/docs/plugins/fetchart.rst +++ b/docs/plugins/fetchart.rst @@ -112,7 +112,7 @@ Pillow_. PIL.features.pilinfo() to print a list of all supported formats in Pillow (``python3 -c 'import PIL.features as f; f.pilinfo()'``). -.. _beets custom search engine: https://cse.google.com.au:443/cse/publicurl?cx=001442825323518660753:hrh5ch1gjzm +.. _beets custom search engine: https://cse.google.com/cse?cx=001442825323518660753:hrh5ch1gjzm 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 @@ -224,7 +224,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 default engine searches the entire web for cover art. -.. _define a custom search engine: https://www.google.com/cse/all +.. _define a custom search engine: https://programmablesearchengine.google.com/about/ 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. @@ -294,6 +294,6 @@ do The values written to ``art_source`` are the same names used in the ``sources`` configuration value. -.. _imagemagick: https://www.imagemagick.org/ +.. _imagemagick: https://imagemagick.org/ .. _pillow: https://github.com/python-pillow/Pillow diff --git a/docs/plugins/hook.rst b/docs/plugins/hook.rst index f3e847aa37..52979188b4 100644 --- a/docs/plugins/hook.rst +++ b/docs/plugins/hook.rst @@ -38,7 +38,7 @@ Commands can access the parameters of events using `Python string formatting`_. Use ``{name}`` in your command and the plugin will substitute it with the named value. The name can also refer to a field, as in ``{album.path}``. -.. _python string formatting: https://www.python.org/dev/peps/pep-3101/ +.. _python string formatting: https://peps.python.org/pep-3101/ You can find a list of all available events and their arguments in the :ref:`plugin events ` documentation. diff --git a/docs/plugins/index.rst b/docs/plugins/index.rst index bb89dde3f4..6db1c89000 100644 --- a/docs/plugins/index.rst +++ b/docs/plugins/index.rst @@ -160,13 +160,13 @@ Autotagger Extensions :doc:`spotify ` Search for releases in the Spotify_ database. -.. _deezer: https://www.deezer.com +.. _deezer: https://www.deezer.com/en/ .. _discogs: https://www.discogs.com .. _musicbrainz: https://www.musicbrainz.com -.. _spotify: https://www.spotify.com +.. _spotify: https://open.spotify.com/ Metadata -------- @@ -237,7 +237,7 @@ Metadata :doc:`zero ` Nullify fields by pattern or unconditionally. -.. _keyfinder: http://www.ibrahimshaath.co.uk/keyfinder/ +.. _keyfinder: https://www.ibrahimshaath.co.uk/keyfinder/ .. _librosa: https://github.com/librosa/librosa/ @@ -318,7 +318,7 @@ Interoperability :doc:`subsonicupdate ` Automatically notifies Subsonic_ whenever the beets library changes. -.. _aura: https://auraspec.readthedocs.io +.. _aura: https://auraspec.readthedocs.io/en/latest/ .. _emby: https://emby.media @@ -326,11 +326,11 @@ Interoperability .. _kodi: https://kodi.tv -.. _plex: https://plex.tv +.. _plex: https://watch.plex.tv/ -.. _sonos: https://sonos.com +.. _sonos: https://www.sonos.com/ -.. _subsonic: http://www.subsonic.org/ +.. _subsonic: https://www.subsonic.org/pages/index.jsp Miscellaneous ------------- @@ -397,7 +397,7 @@ mstream_ .. _mpd: https://www.musicpd.org/ -.. _mpd clients: https://mpd.wikia.com/wiki/Clients +.. _mpd clients: https://mpd.fandom.com/wiki/Clients .. _mstream: https://github.com/IrosTheBeggar/mStream @@ -646,7 +646,7 @@ beets-youtube_ .. _beetstream: https://github.com/BinaryBrain/Beetstream -.. _cmus: http://cmus.sourceforge.net/ +.. _cmus: https://sourceforge.net/projects/cmus/ .. _drop2beets: https://github.com/martinkirch/drop2beets @@ -654,6 +654,6 @@ beets-youtube_ .. _ibroadcast: https://ibroadcast.com/ -.. _subsonic api: http://www.subsonic.org/pages/api.jsp +.. _subsonic api: https://www.subsonic.org/pages/api.jsp .. _whatlastgenre: https://github.com/YetAnotherNerd/whatlastgenre/tree/master/plugin/beets diff --git a/docs/plugins/info.rst b/docs/plugins/info.rst index 051b081efc..77dc60efd3 100644 --- a/docs/plugins/info.rst +++ b/docs/plugins/info.rst @@ -47,6 +47,6 @@ Additional command-line options include: `. - ``--keys-only`` or ``-k``: Show the name of the tags without the values. -.. _id3v2: http://id3v2.sourceforge.net +.. _id3v2: https://sourceforge.net/projects/id3v2/ .. _mp3info: https://www.ibiblio.org/mp3info/ diff --git a/docs/plugins/ipfs.rst b/docs/plugins/ipfs.rst index 6f8144087a..25e2d5bc70 100644 --- a/docs/plugins/ipfs.rst +++ b/docs/plugins/ipfs.rst @@ -4,7 +4,7 @@ IPFS Plugin 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. -.. _ipfs: https://ipfs.io/ +.. _ipfs: https://about.ipfs.io/ Installation ------------ @@ -12,7 +12,7 @@ Installation This plugin requires go-ipfs_ to be running as a daemon and that the associated ``ipfs`` command is on the user's ``$PATH``. -.. _go-ipfs: https://github.com/ipfs/go-ipfs +.. _go-ipfs: https://github.com/ipfs/kubo Once you have the client installed, enable the ``ipfs`` plugin in your configuration (see :ref:`using-plugins`). diff --git a/docs/plugins/keyfinder.rst b/docs/plugins/keyfinder.rst index c692c54073..c89a7094c5 100644 --- a/docs/plugins/keyfinder.rst +++ b/docs/plugins/keyfinder.rst @@ -26,6 +26,6 @@ file. The available options are: - **overwrite**: Calculate a key even for files that already have an ``initial_key`` value. Default: ``no``. -.. _keyfinder: http://www.ibrahimshaath.co.uk/keyfinder/ +.. _keyfinder: https://www.ibrahimshaath.co.uk/keyfinder/ .. _keyfinder-cli: https://github.com/EvanPurkhiser/keyfinder-cli/ diff --git a/docs/plugins/lastgenre.rst b/docs/plugins/lastgenre.rst index cbf63e4544..b0c01eabd2 100644 --- a/docs/plugins/lastgenre.rst +++ b/docs/plugins/lastgenre.rst @@ -4,7 +4,7 @@ LastGenre Plugin The ``lastgenre`` plugin fetches *tags* from Last.fm_ and assigns them as genres to your albums and items. -.. _last.fm: https://last.fm/ +.. _last.fm: https://www.last.fm/ Installation ------------ @@ -32,7 +32,7 @@ Wikipedia`_. .. _internal whitelist: https://raw.githubusercontent.com/beetbox/beets/master/beetsplug/lastgenre/genres.txt -.. _script that scrapes wikipedia: https://gist.github.com/1241307 +.. _script that scrapes wikipedia: https://gist.github.com/sampsyo/1241307 Canonicalization ~~~~~~~~~~~~~~~~ diff --git a/docs/plugins/lastimport.rst b/docs/plugins/lastimport.rst index 61fadc506d..973ada92b1 100644 --- a/docs/plugins/lastimport.rst +++ b/docs/plugins/lastimport.rst @@ -6,7 +6,7 @@ into beets' database. You can later create :doc:`smart playlists ` by querying ``play_count`` and do other fun stuff with this field. -.. _last.fm: https://last.fm +.. _last.fm: https://www.last.fm/ Installation ------------ diff --git a/docs/plugins/lyrics.rst b/docs/plugins/lyrics.rst index 83e24a645c..276e0cd95a 100644 --- a/docs/plugins/lyrics.rst +++ b/docs/plugins/lyrics.rst @@ -95,7 +95,7 @@ The available options are: existing synced lyrics are not replaced by newly fetched plain lyrics (even when ``force`` is enabled). To allow that replacement, disable ``synced``. -.. _beets custom search engine: https://www.google.com:443/cse/publicurl?cx=009217259823014548361:lndtuqkycfu +.. _beets custom search engine: https://cse.google.com/cse?cx=009217259823014548361:lndtuqkycfu Fetching Lyrics Manually ------------------------ @@ -148,11 +148,11 @@ Sphinx supports various builders_, see a few suggestions: sphinx-build -b latex /latex && make -C /latex all-pdf -.. _builders: https://www.sphinx-doc.org/en/stable/builders.html +.. _builders: https://www.sphinx-doc.org/en/master/usage/builders/index.html -.. _restructuredtext: http://docutils.sourceforge.net/rst.html +.. _restructuredtext: https://sourceforge.net/projects/docutils/ -.. _sphinx: https://www.sphinx-doc.org/ +.. _sphinx: https://www.sphinx-doc.org/en/master/ Activate Google Custom Search ----------------------------- @@ -173,7 +173,7 @@ beets use a list of sources known to be scrapeable. 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. -.. _define a custom search engine: https://www.google.com/cse/all +.. _define a custom search engine: https://programmablesearchengine.google.com/about/ .. _lyrics-translation: diff --git a/docs/plugins/musicbrainz.rst b/docs/plugins/musicbrainz.rst index 2baa36776b..aa6205a9d8 100644 --- a/docs/plugins/musicbrainz.rst +++ b/docs/plugins/musicbrainz.rst @@ -152,7 +152,7 @@ Default .. include:: ./shared_metadata_source_config.rst -.. _building search indexes: https://musicbrainz.org/doc/Development/Search_server_setup +.. _building search indexes: https://wiki.musicbrainz.org/History:Development/Search_server_setup .. _limited: https://musicbrainz.org/doc/XML_Web_Service/Rate_Limiting diff --git a/docs/plugins/plexupdate.rst b/docs/plugins/plexupdate.rst index a3aecae113..8b4d6daa46 100644 --- a/docs/plugins/plexupdate.rst +++ b/docs/plugins/plexupdate.rst @@ -27,9 +27,9 @@ Plex's own `documentation about tokens`_). With that all in place, you'll see beets send the "update" command to your Plex server every time you change your beets library. -.. _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/articles/204059436-finding-an-authentication-token-x-plex-token/ -.. _plex: https://plex.tv/ +.. _plex: https://watch.plex.tv/ Configuration ------------- diff --git a/docs/plugins/replaygain.rst b/docs/plugins/replaygain.rst index 2973dd959c..191b37f243 100644 --- a/docs/plugins/replaygain.rst +++ b/docs/plugins/replaygain.rst @@ -31,7 +31,7 @@ least GStreamer 1.0 and `PyGObject 3.x`_ (a.k.a. ``python-gi``). .. _gstreamer: https://gstreamer.freedesktop.org/ -.. _pygobject 3.x: https://pygobject.readthedocs.io/en/latest/ +.. _pygobject 3.x: https://pygobject.gnome.org/ Then, install ``beets`` with ``replaygain`` extra which installs ``GStreamer`` bindings for Python @@ -105,11 +105,11 @@ the path explicitly like so: replaygain: command: /Applications/MacMP3Gain.app/Contents/Resources/aacgain -.. _aacgain: https://aacgain.altosdesign.com +.. _aacgain: https://github.com/dgilman/aacgain .. _homebrew: https://brew.sh -.. _mp3gain: http://mp3gain.sourceforge.net/download.php +.. _mp3gain: https://sourceforge.net/projects/mp3gain/download.php .. _mp3rgain: https://github.com/M-Igashi/mp3rgain @@ -128,7 +128,7 @@ On OS X, most of the dependencies can be installed with Homebrew_: The Python Audio Tools backend does not support parallel analysis. -.. _python audio tools: http://audiotools.sourceforge.net +.. _python audio tools: https://sourceforge.net/projects/audiotools/ ffmpeg ~~~~~~ diff --git a/docs/plugins/sonosupdate.rst b/docs/plugins/sonosupdate.rst index 956a26a2a6..5fce65627d 100644 --- a/docs/plugins/sonosupdate.rst +++ b/docs/plugins/sonosupdate.rst @@ -15,4 +15,4 @@ To use the ``sonosupdate`` plugin, first enable it in your configuration (see With that all in place, you'll see beets send the "update" command to your Sonos controller every time you change your beets library. -.. _sonos: https://sonos.com/ +.. _sonos: https://www.sonos.com/ diff --git a/docs/plugins/spotify.rst b/docs/plugins/spotify.rst index f0d6ac2eff..ed41995dea 100644 --- a/docs/plugins/spotify.rst +++ b/docs/plugins/spotify.rst @@ -7,13 +7,13 @@ with the ``beet spotify`` command using the `Spotify Search API`_. Also, the plugin can use the Spotify Album_ and Track_ APIs to provide metadata matches for the importer. -.. _album: https://developer.spotify.com/documentation/web-api/reference/#/operations/get-an-album +.. _album: https://developer.spotify.com/documentation/web-api/reference/get-an-album -.. _spotify: https://www.spotify.com/ +.. _spotify: https://open.spotify.com/ -.. _spotify search api: https://developer.spotify.com/documentation/web-api/reference/#/operations/search +.. _spotify search api: https://developer.spotify.com/documentation/web-api/reference/search -.. _track: https://developer.spotify.com/documentation/web-api/reference/#/operations/get-track +.. _track: https://developer.spotify.com/documentation/web-api/reference/get-track Why Use This Plugin? -------------------- @@ -150,9 +150,9 @@ Obtaining Track Popularity and Audio Features from Spotify Spotify provides information on track popularity_ and audio features_ that can be used for music discovery. -.. _features: https://developer.spotify.com/documentation/web-api/reference/#/operations/get-audio-features +.. _features: https://developer.spotify.com/documentation/web-api/reference/get-audio-features -.. _popularity: https://developer.spotify.com/documentation/web-api/reference/#/operations/get-track +.. _popularity: https://developer.spotify.com/documentation/web-api/reference/get-track The ``spotify`` plugin provides an additional command ``spotifysync`` to obtain these track attributes from Spotify: diff --git a/docs/plugins/subsonicupdate.rst b/docs/plugins/subsonicupdate.rst index 27ee925dce..a7a5b03a6c 100644 --- a/docs/plugins/subsonicupdate.rst +++ b/docs/plugins/subsonicupdate.rst @@ -4,7 +4,7 @@ SubsonicUpdate Plugin ``subsonicupdate`` is a very simple plugin for beets that lets you automatically update Subsonic_'s index whenever you change your beets library. -.. _subsonic: http://www.subsonic.org/pages/index.jsp +.. _subsonic: https://www.subsonic.org/pages/index.jsp To use ``subsonicupdate`` plugin, enable it in your configuration (see :ref:`using-plugins`). Then, you'll probably want to configure the specifics of @@ -30,7 +30,7 @@ This plugin requires Subsonic with an active Premium license (or active trial) or any other `Subsonic API compatible`_ server implementing the ``startScan`` endpoint. -.. _subsonic api compatible: http://www.subsonic.org/pages/api.jsp +.. _subsonic api compatible: https://www.subsonic.org/pages/api.jsp Configuration ------------- diff --git a/docs/plugins/thumbnails.rst b/docs/plugins/thumbnails.rst index 4eeeb74be1..b1be6f89f7 100644 --- a/docs/plugins/thumbnails.rst +++ b/docs/plugins/thumbnails.rst @@ -16,7 +16,7 @@ install ``beets`` with ``thumbnails`` and ``fetchart`` extras ``thumbnails`` need to resize the covers, and therefore requires either ImageMagick_ or Pillow_. -.. _imagemagick: https://www.imagemagick.org/ +.. _imagemagick: https://imagemagick.org/ .. _pillow: https://github.com/python-pillow/Pillow diff --git a/docs/plugins/web.rst b/docs/plugins/web.rst index 74e2cf03eb..0ade39dc52 100644 --- a/docs/plugins/web.rst +++ b/docs/plugins/web.rst @@ -143,7 +143,7 @@ directory: proxy_set_header X-Script-Name /beets; } -.. _nginx: https://www.nginx.com +.. _nginx: https://www.f5.com/products/nginx JSON API -------- @@ -295,4 +295,4 @@ Responds with the number of tracks and albums in the database. "albums": 3 } -.. _flask: https://flask.palletsprojects.com/en/1.1.x/ +.. _flask: https://flask.palletsprojects.com/en/stable/ diff --git a/docs/reference/cli.rst b/docs/reference/cli.rst index 6f60d22326..758fd111a5 100644 --- a/docs/reference/cli.rst +++ b/docs/reference/cli.rst @@ -149,7 +149,7 @@ Optional command flags: .. _py7zr: https://pypi.org/project/py7zr/ -.. _rarfile: https://pypi.python.org/pypi/rarfile/ +.. _rarfile: https://pypi.org/project/rarfile/ .. only:: html diff --git a/docs/reference/pathformat.rst b/docs/reference/pathformat.rst index aff48a7c67..612d16d472 100644 --- a/docs/reference/pathformat.rst +++ b/docs/reference/pathformat.rst @@ -21,7 +21,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 text that follows it. -.. _python template strings: https://docs.python.org/library/string.html#template-strings +.. _python template strings: https://docs.python.org/3/library/string.html#template-strings-strings A Note About Artists -------------------- @@ -34,7 +34,7 @@ Continuing with the Stop Making Sense example, you'll end up with most of the tracks in a "Talking Heads" directory and one in a "Tom Tom Club" directory. You probably don't want that! So use ``$albumartist``. -.. _stop making sense: https://musicbrainz.org/release/798dcaab-0f1a-4f02-a9cb-61d5b0ddfd36.html +.. _stop making sense: https://musicbrainz.org/release/798dcaab-0f1a-4f02-a9cb-61d5b0ddfd36 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. diff --git a/docs/reference/query.rst b/docs/reference/query.rst index a8d2c44879..9d1e8571bb 100644 --- a/docs/reference/query.rst +++ b/docs/reference/query.rst @@ -200,7 +200,7 @@ with a single ``:``, like so: $ beet list ":Ho[pm]eless" Regular expressions are case-sensitive and build on `Python's built-in -implementation `__. See Python's +implementation `__. See Python's documentation for specifics on regex syntax. Most command-line shells will try to interpret common characters in regular