mirror of
https://github.com/beetbox/beets.git
synced 2025-12-27 02:52:33 +01:00
Update all docs with Poetry
This commit is contained in:
parent
e30ee3f490
commit
7bbd215efc
25 changed files with 176 additions and 181 deletions
|
|
@ -65,30 +65,24 @@ Programming
|
|||
Getting the Source
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The easiest way to get started with the latest beets source is to use
|
||||
`pip`_ to install an “editable” package. This
|
||||
can be done with one command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install -e git+https://github.com/beetbox/beets.git#egg=beets
|
||||
|
||||
Or, equivalently:
|
||||
The easiest way to get started with the latest beets source is to clone the
|
||||
repository and install ``beets`` in a local virtual environment using `poetry`_.
|
||||
This can be done with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ git clone https://github.com/beetbox/beets.git
|
||||
$ cd beets
|
||||
$ pip install -e .
|
||||
$ poetry install
|
||||
|
||||
This will install ``beets`` and all development dependencies into its own
|
||||
virtual environment in your ``$POETRY_CACHE_DIR``. See ``poetry install
|
||||
--help`` for installation options, including installing ``extra`` dependencies
|
||||
for plugins.
|
||||
|
||||
In order to run commands within this virtual environment, prepend ``poetry
|
||||
run`` to them, for example ``poetry run pytest``.
|
||||
|
||||
If you already have a released version of beets installed, you may need
|
||||
to remove it first by typing ``pip uninstall beets``. The pip command
|
||||
above will put the beets source in a ``src/beets`` directory and install
|
||||
the ``beet`` CLI script to a standard location on your system. You may
|
||||
want to use the ``--src`` option to specify the parent directory where
|
||||
the source will be checked out and the ``--user`` option such that the
|
||||
package will be installed to your home directory (compare with the
|
||||
output of ``pip install --help``).
|
||||
|
||||
Code Contribution Ideas
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
@ -310,15 +304,12 @@ that reveal ordering dependencies—which are bad news!
|
|||
Test Dependencies
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The tests have a few more dependencies than beets itself. (The
|
||||
additional dependencies consist of testing utilities and dependencies of
|
||||
non-default plugins exercised by the test suite.) The dependencies are
|
||||
listed under 'test' in ``extras_require`` in `setup.py`_.
|
||||
To install the test dependencies, run ``python -m pip install .[test]``.
|
||||
Or, just run a test suite with ``tox`` which will install them
|
||||
automatically.
|
||||
The tests have a few more dependencies than beets itself. (The additional
|
||||
dependencies consist of testing utilities and dependencies of non-default
|
||||
plugins exercised by the test suite.) The dependencies are listed under the
|
||||
``tool.poetry.group.test.dependencies`` section in `pyproject.toml`_.
|
||||
|
||||
.. _setup.py: https://github.com/beetbox/beets/blob/master/setup.py
|
||||
.. _pyproject.toml: https://github.com/beetbox/beets/blob/master/pyproject.toml
|
||||
|
||||
Writing Tests
|
||||
-------------
|
||||
|
|
@ -359,5 +350,5 @@ others. See `unittest.mock`_ for more info.
|
|||
.. _integration test: https://github.com/beetbox/beets/actions?query=workflow%3A%22integration+tests%22
|
||||
.. _unittest.mock: https://docs.python.org/3/library/unittest.mock.html
|
||||
.. _documentation: https://beets.readthedocs.io/en/stable/
|
||||
.. _pip: https://pip.pypa.io/en/stable/
|
||||
.. _poetry: https://python-poetry.org/docs/
|
||||
.. _vim: https://www.vim.org/
|
||||
|
|
|
|||
15
docs/faq.rst
15
docs/faq.rst
|
|
@ -149,18 +149,19 @@ it's helpful to run on the "bleeding edge". To run the latest source:
|
|||
and ``python3`` instead of ``pip`` and ``python`` respectively.
|
||||
- Use ``pip`` to install the latest snapshot tarball. Type:
|
||||
``pip install https://github.com/beetbox/beets/tarball/master``
|
||||
- Grab the source using git. First, clone the repository:
|
||||
``git clone https://github.com/beetbox/beets.git``.
|
||||
Then, ``cd beets`` and ``python setup.py install``.
|
||||
- Use ``pip`` to install an "editable" version of beets based on an
|
||||
automatic source checkout. For example, run
|
||||
``pip install -e git+https://github.com/beetbox/beets#egg=beets``
|
||||
to clone beets and install it, allowing you to modify the source
|
||||
in-place to try out changes.
|
||||
- Combine the previous two approaches, cloning the source yourself,
|
||||
and then installing in editable mode:
|
||||
``git clone https://github.com/beetbox/beets.git`` then
|
||||
``pip install -e beets``. This approach lets you decide where the
|
||||
- Clone source code and install it in editable mode
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
git clone https://github.com/beetbox/beets.git
|
||||
poetry install
|
||||
|
||||
This approach lets you decide where the
|
||||
source is stored, with any changes immediately reflected in your
|
||||
environment.
|
||||
|
||||
|
|
|
|||
|
|
@ -21,13 +21,12 @@ to run. Its source can be found on `GitHub`_, and while it is possible to
|
|||
compile the extractor from source, AcousticBrainz would prefer if you used
|
||||
their binary (see the AcousticBrainz `FAQ`_).
|
||||
|
||||
The ``absubmit`` plugin also requires `requests`_, which you can install
|
||||
using `pip`_ by typing::
|
||||
Then, install ``beets`` with ``absubmit`` extra
|
||||
|
||||
pip install requests
|
||||
pip install "beets[absubmit]"
|
||||
|
||||
Lastly, enable the plugin in your configuration (see :ref:`using-plugins`).
|
||||
|
||||
After installing both the extractor binary and requests you can enable
|
||||
the plugin ``absubmit`` in your configuration (see :ref:`using-plugins`).
|
||||
|
||||
Submitting Data
|
||||
---------------
|
||||
|
|
|
|||
|
|
@ -12,19 +12,10 @@ read the :ref:`aura-issues` section.
|
|||
Install
|
||||
-------
|
||||
|
||||
The ``aura`` plugin depends on `Flask`_, which can be installed using
|
||||
``python -m pip install flask``. Then you can enable the ``aura`` plugin in
|
||||
your configuration (see :ref:`using-plugins`).
|
||||
To use the ``aura`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``aura`` extra
|
||||
|
||||
It is likely that you will need to enable :ref:`aura-cors`, which introduces
|
||||
an additional dependency: `flask-cors`_. This can be installed with
|
||||
``python -m pip install flask-cors``.
|
||||
|
||||
If `Pillow`_ is installed (``python -m pip install Pillow``) then the optional
|
||||
``width`` and ``height`` attributes are included in image resource objects.
|
||||
|
||||
.. _flask-cors: https://flask-cors.readthedocs.io
|
||||
.. _Pillow: https://pillow.readthedocs.io
|
||||
pip install "beets[aura]"
|
||||
|
||||
|
||||
Usage
|
||||
|
|
|
|||
|
|
@ -10,13 +10,12 @@ both MusicBrainz and (to a lesser degree) `Discogs`_ show no matches.
|
|||
|
||||
Installation
|
||||
------------
|
||||
|
||||
To use the ``beatport`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install the `requests`_ and `requests_oauthlib`_
|
||||
libraries (which we need for querying and authorizing with the Beatport API)
|
||||
by typing::
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``beatport`` extra
|
||||
|
||||
pip install requests requests_oauthlib
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[beatport]"
|
||||
|
||||
You will also need to register for a `Beatport`_ account. The first time you
|
||||
run the :ref:`import-cmd` command after enabling the plugin, it will ask you
|
||||
|
|
@ -41,6 +40,4 @@ Configuration
|
|||
|
||||
This plugin can be configured like other metadata source plugins as described in :ref:`metadata-source-plugin-configuration`.
|
||||
|
||||
.. _requests: https://requests.readthedocs.io/en/master/
|
||||
.. _requests_oauthlib: https://github.com/requests/requests-oauthlib
|
||||
.. _Beatport: https://www.beatport.com/
|
||||
|
|
|
|||
|
|
@ -26,6 +26,13 @@ You will also need the various GStreamer plugin packages to make everything
|
|||
work. See the :doc:`/plugins/chroma` documentation for more information on
|
||||
installing GStreamer plugins.
|
||||
|
||||
Once you have system dependencies installed, install ``beets`` with ``bpd``
|
||||
extra which installs Python bindings for ``GStreamer``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install "beets[bpd]"
|
||||
|
||||
.. _GStreamer: https://gstreamer.freedesktop.org/download
|
||||
.. _Homebrew: https://brew.sh
|
||||
|
||||
|
|
|
|||
|
|
@ -23,18 +23,23 @@ If you're willing to pay the performance cost for fingerprinting, read on!
|
|||
Installing Dependencies
|
||||
-----------------------
|
||||
|
||||
To get fingerprinting working, you'll need to install three things: the
|
||||
`Chromaprint`_ library or command-line tool, an audio decoder, and the
|
||||
`pyacoustid`_ Python library (version 0.6 or later).
|
||||
To get fingerprinting working, you'll need to install three things:
|
||||
|
||||
First, install pyacoustid itself. You can do this using `pip`_, like so::
|
||||
1. `pyacoustid`_ Python library (version 0.6 or later). You can install it by
|
||||
installing ``beets`` with ``chroma`` extra
|
||||
|
||||
$ pip install pyacoustid
|
||||
.. code-block:: bash
|
||||
|
||||
.. _pip: https://pip.pypa.io
|
||||
pip install "beets[chroma]"
|
||||
|
||||
Then, you will need to install `Chromaprint`_, either as a dynamic library or
|
||||
in the form of a command-line tool (``fpcalc``).
|
||||
2. the `Chromaprint`_ library_ or |command-line-tool|_
|
||||
3. an |audio-decoder|_
|
||||
|
||||
.. |command-line-tool| replace:: command line tool
|
||||
.. |audio-decoder| replace:: audio decoder
|
||||
|
||||
|
||||
.. _command-line-tool:
|
||||
|
||||
Installing the Binary Command-Line Tool
|
||||
'''''''''''''''''''''''''''''''''''''''
|
||||
|
|
@ -47,6 +52,8 @@ executable somewhere like ``/usr/local/bin``.
|
|||
|
||||
.. _download: https://acoustid.org/chromaprint
|
||||
|
||||
.. _library:
|
||||
|
||||
Installing the Library
|
||||
''''''''''''''''''''''
|
||||
|
||||
|
|
@ -58,6 +65,11 @@ chromaprint``.
|
|||
|
||||
.. _Homebrew: https://brew.sh/
|
||||
|
||||
.. _audio-decoder:
|
||||
|
||||
Audio Decoder
|
||||
'''''''''''''
|
||||
|
||||
You will also need a mechanism for decoding audio files supported by the
|
||||
`audioread`_ library:
|
||||
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@ Installation
|
|||
------------
|
||||
|
||||
To use the ``discogs`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install the `python3-discogs-client`_ library by typing:
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``discogs`` extra
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install python3-discogs-client
|
||||
pip install "beets[discogs]"
|
||||
|
||||
You will also need to register for a `Discogs`_ account, and provide
|
||||
authentication credentials via a personal access token or an OAuth2
|
||||
|
|
|
|||
|
|
@ -10,10 +10,15 @@ displaying album art in some media players (iPods, for example).
|
|||
Embedding Art Automatically
|
||||
---------------------------
|
||||
|
||||
To automatically embed discovered album art into imported files, just enable
|
||||
the ``embedart`` plugin (see :doc:`/plugins/index`). You'll also want to enable the
|
||||
:doc:`/plugins/fetchart` to obtain the images to be embedded. Art will be
|
||||
embedded after each album has its cover art set.
|
||||
To use the ``embedart`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``embedart`` extra
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[embedart]"
|
||||
|
||||
You'll also want to enable the :doc:`/plugins/fetchart` to obtain the images to
|
||||
be embedded. Art will be embedded after each album has its cover art set.
|
||||
|
||||
This behavior can be disabled with the ``auto`` config option (see below).
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,20 @@
|
|||
EmbyUpdate Plugin
|
||||
=================
|
||||
|
||||
``embyupdate`` is a plugin that lets you automatically update `Emby`_'s library whenever you change your beets library.
|
||||
``embyupdate`` is a plugin that lets you automatically update `Emby`_'s library
|
||||
whenever you change your beets library.
|
||||
|
||||
To use ``embyupdate`` plugin, enable it in your configuration (see :ref:`using-plugins`). Then, you'll want to configure the specifics of your Emby server. You can do that using an ``emby:`` section in your ``config.yaml``, which looks like this::
|
||||
To use it, first enable the your configuration (see :ref:`using-plugins`).
|
||||
Then, install ``beets`` with ``embyupdate`` extra
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[embyupdate]"
|
||||
|
||||
Then, you'll want to configure the specifics of your Emby server. You can do
|
||||
that using an ``emby`` section in your ``config.yaml``
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
emby:
|
||||
host: localhost
|
||||
|
|
@ -11,14 +22,9 @@ To use ``embyupdate`` plugin, enable it in your configuration (see :ref:`using-p
|
|||
username: user
|
||||
apikey: apikey
|
||||
|
||||
To use the ``embyupdate`` plugin you need to install the `requests`_ library with::
|
||||
|
||||
pip install requests
|
||||
|
||||
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: https://emby.media/
|
||||
.. _requests: https://requests.readthedocs.io/en/master/
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
|
|
|||
|
|
@ -5,13 +5,11 @@ The ``fetchart`` plugin retrieves album art images from various sources on the
|
|||
Web and stores them as image files.
|
||||
|
||||
To use the ``fetchart`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install the `requests`_ library by typing::
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``fetchart`` extra
|
||||
|
||||
pip install requests
|
||||
.. code-block:: bash
|
||||
|
||||
The plugin uses `requests`_ to fetch album art from the Web.
|
||||
|
||||
.. _requests: https://requests.readthedocs.io/en/master/
|
||||
pip install "beets[fetchart]"
|
||||
|
||||
Fetching Album Art During Import
|
||||
--------------------------------
|
||||
|
|
@ -260,10 +258,6 @@ the list of sources in your configuration.
|
|||
Spotify
|
||||
'''''''
|
||||
|
||||
Spotify backend requires `BeautifulSoup`_, which you can install using `pip`_ by typing::
|
||||
|
||||
pip install beautifulsoup4
|
||||
|
||||
Spotify backend is enabled by default and will update album art if a valid Spotify album id is found.
|
||||
|
||||
.. _pip: https://pip.pypa.io
|
||||
|
|
|
|||
|
|
@ -29,18 +29,21 @@ To update multiple Kodi instances, specify them as an array::
|
|||
pwd: kodi2
|
||||
|
||||
|
||||
To use the ``kodiupdate`` plugin you need to install the `requests`_ library with::
|
||||
To use the ``kodiupdate`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``kodiupdate`` extra
|
||||
|
||||
pip install requests
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[kodiupdate]"
|
||||
|
||||
You'll also need to enable JSON-RPC in Kodi.
|
||||
|
||||
You'll also need to enable JSON-RPC in Kodi in order the use the plugin.
|
||||
In Kodi's interface, navigate to System/Settings/Network/Services and choose "Allow control of Kodi via HTTP."
|
||||
|
||||
With that all in place, you'll see beets send the "update" command to your Kodi
|
||||
host every time you change your beets library.
|
||||
|
||||
.. _Kodi: https://kodi.tv/
|
||||
.. _requests: https://requests.readthedocs.io/en/master/
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@ to your albums and items.
|
|||
Installation
|
||||
------------
|
||||
|
||||
The plugin requires `pylast`_, which you can install using `pip`_ by typing::
|
||||
To use the ``lastgenre`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``lastgenre`` extra
|
||||
|
||||
pip install pylast
|
||||
.. code-block:: bash
|
||||
|
||||
After you have pylast installed, enable the ``lastgenre`` plugin in your
|
||||
configuration (see :ref:`using-plugins`).
|
||||
pip install "beets[lastgenre]"
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
|
@ -31,8 +31,6 @@ 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
|
||||
Wikipedia`_.
|
||||
|
||||
.. _pip: https://pip.pypa.io
|
||||
.. _pylast: https://github.com/pylast/pylast
|
||||
.. _script that scrapes Wikipedia: https://gist.github.com/1241307
|
||||
.. _internal whitelist: https://raw.githubusercontent.com/beetbox/beets/master/beetsplug/lastgenre/genres.txt
|
||||
|
||||
|
|
|
|||
|
|
@ -11,21 +11,18 @@ with this field.
|
|||
Installation
|
||||
------------
|
||||
|
||||
The plugin requires `pylast`_, which you can install using `pip`_ by typing::
|
||||
To use the ``lastimport`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``lastimport`` extra
|
||||
|
||||
pip install pylast
|
||||
.. code-block:: bash
|
||||
|
||||
After you have pylast installed, enable the ``lastimport`` plugin in your
|
||||
configuration (see :ref:`using-plugins`).
|
||||
pip install "beets[lastimport]"
|
||||
|
||||
Next, add your Last.fm username to your beets configuration file::
|
||||
|
||||
lastfm:
|
||||
user: beetsfanatic
|
||||
|
||||
.. _pip: https://pip.pypa.io
|
||||
.. _pylast: https://github.com/pylast/pylast
|
||||
|
||||
Importing Play Counts
|
||||
---------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -13,22 +13,19 @@ and, optionally, the Google custom search API.
|
|||
Fetch Lyrics During Import
|
||||
--------------------------
|
||||
|
||||
To automatically fetch lyrics for songs you import, enable the ``lyrics``
|
||||
plugin in your configuration (see :ref:`using-plugins`).
|
||||
Then, install the `requests`_ library by typing::
|
||||
To automatically fetch lyrics for songs you import, first enable it in your
|
||||
configuration (see :ref:`using-plugins`). Then, install ``beets`` with
|
||||
``lyrics`` extra
|
||||
|
||||
pip install requests
|
||||
.. code-block:: bash
|
||||
|
||||
The plugin uses `requests`_ to download lyrics.
|
||||
pip install "beets[lyrics]"
|
||||
|
||||
When importing new files, beets will now fetch lyrics for files that don't
|
||||
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
|
||||
the files' tags.
|
||||
|
||||
.. _requests: https://requests.readthedocs.io/en/master/
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
|
|
@ -130,12 +127,7 @@ few suggestions.
|
|||
Activate Google Custom Search
|
||||
------------------------------
|
||||
|
||||
Using the Google backend requires `BeautifulSoup`_, which you can install
|
||||
using `pip`_ by typing::
|
||||
|
||||
pip install beautifulsoup4
|
||||
|
||||
You also need to `register for a Google API key`_. Set the ``google_API_key``
|
||||
You need to `register for a Google API key`_. Set the ``google_API_key``
|
||||
configuration option to your key.
|
||||
Then add ``google`` to the list of sources in your configuration (or use
|
||||
default list, which includes it as long as you have an API key).
|
||||
|
|
@ -153,17 +145,11 @@ default, 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.
|
||||
|
||||
.. _pip: https://pip.pypa.io
|
||||
.. _BeautifulSoup: https://www.crummy.com/software/BeautifulSoup/bs4/doc/
|
||||
|
||||
Activate Genius and Tekstowo.pl Lyrics
|
||||
--------------------------------------
|
||||
|
||||
Using the Genius or Tekstowo.pl backends requires `BeautifulSoup`_, which
|
||||
you can install using `pip`_ by typing::
|
||||
|
||||
pip install beautifulsoup4
|
||||
|
||||
These backends are enabled by default.
|
||||
|
||||
.. _lyrics-translation:
|
||||
|
|
@ -171,16 +157,10 @@ These backends are enabled by default.
|
|||
Activate On-the-Fly Translation
|
||||
-------------------------------
|
||||
|
||||
Using the Bing Translation API requires `langdetect`_, which you can install
|
||||
using `pip`_ by typing::
|
||||
|
||||
pip install langdetect
|
||||
|
||||
You also need to register for a Microsoft Azure Marketplace free account and
|
||||
You need to register for a Microsoft Azure Marketplace free account and
|
||||
to the `Microsoft Translator API`_. Follow the four steps process, specifically
|
||||
at step 3 enter ``beets`` as *Client ID* and copy/paste the generated
|
||||
*Client secret* into your ``bing_client_secret`` configuration, alongside
|
||||
``bing_lang_to`` target `language code`.
|
||||
|
||||
.. _langdetect: https://pypi.python.org/pypi/langdetect
|
||||
.. _Microsoft Translator API: https://docs.microsoft.com/en-us/azure/cognitive-services/translator/translator-how-to-signup
|
||||
|
|
|
|||
|
|
@ -19,8 +19,12 @@ Installation
|
|||
Enable the ``metasync`` plugin in your configuration (see
|
||||
:ref:`using-plugins`).
|
||||
|
||||
To synchronize with Amarok, you'll need the `dbus-python`_ library. There are
|
||||
packages for most major Linux distributions.
|
||||
To synchronize with Amarok, you'll need the `dbus-python`_ library. In such
|
||||
case, install ``beets`` with ``metasync`` extra
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[metasync]"
|
||||
|
||||
.. _dbus-python: https://dbus.freedesktop.org/releases/dbus-python/
|
||||
|
||||
|
|
|
|||
|
|
@ -21,13 +21,10 @@ Installing Dependencies
|
|||
This plugin requires the python-mpd2 library in order to talk to the MPD
|
||||
server.
|
||||
|
||||
Install the library from `pip`_, like so::
|
||||
To use the ``mpdstats`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``mpdstats`` extra
|
||||
|
||||
$ pip install python-mpd2
|
||||
|
||||
Add the ``mpdstats`` plugin to your configuration (see :ref:`using-plugins`).
|
||||
|
||||
.. _pip: https://pip.pypa.io
|
||||
pip install "beets[mpdstats]"
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
|
|
|||
|
|
@ -4,11 +4,15 @@ PlexUpdate Plugin
|
|||
``plexupdate`` is a very simple plugin for beets that lets you automatically
|
||||
update `Plex`_'s music library whenever you change your beets library.
|
||||
|
||||
To use ``plexupdate`` plugin, enable it in your configuration
|
||||
(see :ref:`using-plugins`).
|
||||
Then, you'll probably want to configure the specifics of your Plex server.
|
||||
You can do that using an ``plex:`` section in your ``config.yaml``,
|
||||
which looks like this:
|
||||
Firstly, install ``beets`` with ``plexupdate`` extra
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install "beets[plexupdate]"
|
||||
|
||||
Then, enable ``plexupdate`` plugin it in your configuration (see :ref:`using-plugins`).
|
||||
Optionally, configure the specifics of your Plex server. You can do this using
|
||||
a ``plex:`` section in your ``config.yaml``:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
|
@ -19,17 +23,10 @@ which looks like this:
|
|||
|
||||
The ``token`` key is optional: you'll need to use it when in a Plex Home (see Plex's own `documentation about tokens`_).
|
||||
|
||||
To use the ``plexupdate`` plugin you need to install the `requests`_ library with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ pip install beets[plexupdate]
|
||||
|
||||
With that all in place, you'll see beets send the "update" command to your Plex
|
||||
server every time you change your beets library.
|
||||
|
||||
.. _Plex: https://plex.tv/
|
||||
.. _requests: https://requests.readthedocs.io/en/master/
|
||||
.. _documentation about tokens: https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token
|
||||
|
||||
Configuration
|
||||
|
|
@ -48,4 +45,4 @@ The available options under the ``plex:`` section are:
|
|||
- **secure**: Use secure connections to the Plex server.
|
||||
Default: ``False``
|
||||
- **ignore_cert_errors**: Ignore TLS certificate errors when using secure connections.
|
||||
Default: ``False``
|
||||
Default: ``False``
|
||||
|
|
|
|||
|
|
@ -33,8 +33,16 @@ 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/
|
||||
.. _GStreamer: https://gstreamer.freedesktop.org/
|
||||
|
||||
Then, enable the ``replaygain`` plugin (see :ref:`using-plugins`) and specify
|
||||
the GStreamer backend by adding this to your configuration file::
|
||||
Then, install ``beets`` with ``replaygain`` extra which installs
|
||||
``GStreamer`` bindings for Python
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[replaygain]"
|
||||
|
||||
Lastly, enable the ``replaygain`` plugin in your configuration (see
|
||||
:ref:`using-plugins`) and specify the GStreamer backend by adding this to your
|
||||
configuration file::
|
||||
|
||||
replaygain:
|
||||
backend: gstreamer
|
||||
|
|
|
|||
|
|
@ -10,11 +10,17 @@ also provides a command that lets you manually remove files' tags.
|
|||
Automatic Scrubbing
|
||||
-------------------
|
||||
|
||||
To automatically remove files' tags before writing new ones, just
|
||||
enable the ``scrub`` plugin (see :ref:`using-plugins`). When importing new files (with
|
||||
``import.write`` turned on) or modifying files' tags with the ``beet modify``
|
||||
command, beets will first strip all types of tags entirely and then write the
|
||||
database-tracked metadata to the file.
|
||||
To automatically remove files' tags before writing new ones, enable ``scrub``
|
||||
plugin in your configuration (see :ref:`using-plugins`) and install ``beets``
|
||||
with ``scrub`` extra
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[scrub]"
|
||||
|
||||
When importing new files (with ``import.write`` turned on) or modifying files'
|
||||
tags with the ``beet modify`` command, beets will first strip all types of tags
|
||||
entirely and then write the database-tracked metadata to the file.
|
||||
|
||||
This behavior can be disabled with the ``auto`` config option (see below).
|
||||
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ library whenever you change your beets library.
|
|||
To use ``sonosupdate`` plugin, enable it in your configuration
|
||||
(see :ref:`using-plugins`).
|
||||
|
||||
To use the ``sonosupdate`` plugin you need to install the `soco`_ library with::
|
||||
To use the ``sonosupdate`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``sonosupdate`` extra
|
||||
|
||||
pip install soco
|
||||
pip install "beets[sonosupdate]"
|
||||
|
||||
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/
|
||||
.. _soco: http://python-soco.com
|
||||
|
|
|
|||
|
|
@ -5,11 +5,15 @@ The ``thumbnails`` plugin creates thumbnails for your album folders with the
|
|||
album cover. This works on freedesktop.org-compliant file managers such as
|
||||
Nautilus or Thunar, and is therefore POSIX-only.
|
||||
|
||||
To use the ``thumbnails`` plugin, enable it (see :doc:`/plugins/index`) as well
|
||||
as the :doc:`/plugins/fetchart`. You'll need 2 additional python packages:
|
||||
:pypi:`pyxdg` and :pypi:`pathlib`.
|
||||
To use the ``thumbnails`` plugin, enable ``thumbnails`` and
|
||||
:doc:`/plugins/fetchart` in your configuration (see :ref:`using-plugins`) and
|
||||
install ``beets`` with ``thumbnails`` and ``fetchart`` extras
|
||||
|
||||
``thumbnails`` needs to resize the covers, and therefore requires either
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[fetchart,thumbnails]"
|
||||
|
||||
``thumbnails`` need to resize the covers, and therefore requires either
|
||||
`ImageMagick`_ or `Pillow`_.
|
||||
|
||||
.. _Pillow: https://github.com/python-pillow/Pillow
|
||||
|
|
|
|||
|
|
@ -15,16 +15,12 @@ drastically increase the number of people who can use beets.
|
|||
Install
|
||||
-------
|
||||
|
||||
The Web interface depends on `Flask`_. To get it, just run ``pip install
|
||||
flask``. Then enable the ``web`` plugin in your configuration (see
|
||||
:ref:`using-plugins`).
|
||||
To use the ``web`` plugin, first enable it in your configuration (see
|
||||
:ref:`using-plugins`). Then, install ``beets`` with ``web`` extra
|
||||
|
||||
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``.
|
||||
|
||||
.. _flask-cors: https://github.com/CoryDolphin/flask-cors
|
||||
.. _CORS: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
|
||||
.. code-block:: bash
|
||||
|
||||
pip install "beets[web]"
|
||||
|
||||
Run the Server
|
||||
--------------
|
||||
|
|
@ -101,8 +97,7 @@ server as the API. (You will get an arcane error about ``XMLHttpRequest``
|
|||
otherwise.) A technology called `CORS`_ lets you relax this restriction.
|
||||
|
||||
If you want to use an in-browser client hosted elsewhere (or running from a
|
||||
different server on your machine), first install the `flask-cors`_ plugin by
|
||||
typing ``pip install flask-cors``. Then set the ``cors`` configuration option to
|
||||
different server on your machine), set the ``cors`` configuration option to
|
||||
the "origin" (protocol, host, and optional port number) where the client is
|
||||
served. Or set it to ``'*'`` to enable access from all origins. Note that there
|
||||
are security implications if you set the origin to ``'*'``, so please research
|
||||
|
|
@ -118,6 +113,7 @@ For example::
|
|||
host: 0.0.0.0
|
||||
cors: 'http://example.com'
|
||||
|
||||
.. _CORS: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
|
||||
.. _reverse-proxy:
|
||||
|
||||
Reverse Proxy Support
|
||||
|
|
|
|||
5
poetry.lock
generated
5
poetry.lock
generated
|
|
@ -2602,13 +2602,14 @@ files = [
|
|||
|
||||
[extras]
|
||||
absubmit = ["requests"]
|
||||
aura = ["Pillow", "flask", "flask-cors"]
|
||||
beatport = ["requests-oauthlib"]
|
||||
bpd = ["PyGObject"]
|
||||
chroma = ["pyacoustid"]
|
||||
discogs = ["python3-discogs-client"]
|
||||
embedart = ["Pillow"]
|
||||
embyupdate = ["requests"]
|
||||
fetchart = ["Pillow", "beautifulsoup4", "requests"]
|
||||
fetchart = ["Pillow", "beautifulsoup4", "langdetect", "requests"]
|
||||
import = ["py7zr", "rarfile"]
|
||||
kodiupdate = ["requests"]
|
||||
lastgenre = ["pylast"]
|
||||
|
|
@ -2627,4 +2628,4 @@ web = ["flask", "flask-cors"]
|
|||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.8,<4"
|
||||
content-hash = "3c37973d479d97cb7cb4ca195fe15ede03577e4c91a88a939769aa7924ca2d3c"
|
||||
content-hash = "697ebfc73bb20e4bf4ee41f639847212384102601d94b0231374f41e6932e5bd"
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ sphinx = "*"
|
|||
[tool.poetry.extras]
|
||||
# inline comments note required external / non-python dependencies
|
||||
absubmit = ["requests"] # extractor binary from https://acousticbrainz.org/download
|
||||
aura = ["flask", "flask-cors", "Pillow"]
|
||||
# badfiles # mp3val and flac
|
||||
beatport = ["requests-oauthlib"]
|
||||
bpd = ["PyGObject"] # python-gi and GStreamer 1.0+
|
||||
|
|
@ -113,7 +114,7 @@ chroma = ["pyacoustid"] # chromaprint or fpcalc
|
|||
discogs = ["python3-discogs-client"]
|
||||
embedart = ["Pillow"] # ImageMagick
|
||||
embyupdate = ["requests"]
|
||||
fetchart = ["beautifulsoup4", "Pillow", "requests"]
|
||||
fetchart = ["beautifulsoup4", "langdetect", "Pillow", "requests"]
|
||||
import = ["py7zr", "rarfile"]
|
||||
# ipfs # go-ipfs
|
||||
# keyfinder # KeyFinder
|
||||
|
|
|
|||
Loading…
Reference in a new issue