beets-yapl
beets plugin to parse a yaml playlist format and compile it into the near universally supported M3U format.
M3U playlists are inherently fragile, breaking at the slightest change in a file's path. This plugin utilises beetDreamers' queries to define playlists in a simple yaml format, where you can provide precisely the level of detail required to unambiguously find the song you're after.
A playlist can be written as:
name: Christmas
tracks:
# The library only contains one version of this song, so this is enough.
- title: Christmas (Baby Please Come Home)
artist: Darlene Love
# The library contains multiple recordings of this track, so let's include
# the year to get the right version.
- artist: Withered Hand
title: Real Snow
year: 2013
# Typing Japanese characters is finicky, so let's just use the track's
# MusicBrainz ID
- mb_trackid: dafff56a-f327-4de5-ab35-633c8863857f
which will be compiled into an M3U playlist looking something like:
#EXTM3U
#PLAYLIST:Christmas
#EXTINF:166, Darlene Love - Christmas (Baby Please Come Home)
../Darlene Love/Non-Album/Christmas (Baby Please Come Home).flac
#EXTINF:202, Withered Hand - Real Snow
../Withered Hand/Non-Album/Real Snow.flac
#EXTINF:266, クレイジーケンバンド - クリスマスなんて、大嫌い!!なんちゃって
../クレイジーケンバンド/Non-Album/クリスマスなんて、大嫌い!!なんちゃって.m4a
Getting Started
Installation
To install via pip: Run pip install beets-yapl.
If you're on an Arch-based distro, you can install it from the AUR as beets-yapl-git.
Configuration
Enable the plugin by adding it to your plugin option in the beets configuration and configure the plugin.
plugins:
- ...
- yapl
yapl:
input_path: ~/Music/playlists/
output_path: ~/Music/playlists/
relative: true
input_path: path decides what directory yapl will search for yapl files.
output_path: path decides where to output the compiled m3u files. Can be the same as input_path.
relative: bool controls whether to use absolute or relative filepaths in the outputted M3U files.
Run
Once configured, run beet yapl to compile all the playlists in your input_path directory. Warnings will be issued for any ambiguous or resultless queries and these tracks will be left out of the output.
$ beet yapl
== Parsing 13 playlists ==
christmas.yapl: 2 results for query: ['artist:Withered Hand', 'title:Real Snow']
favourites.yapl: No results for query: ['title: How I Won My Stripes', 'artist: JOKES']
== 13 playlists compiled ==
Metadata
Release files for beets-yapl 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| beets_yapl-0.2.1.tar.gz | 16.2 kB | Without provenance | Details for beets_yapl-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| beets_yapl-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for beets_yapl-0.2.1-py3-none-any.whl |
Total release size: 32.5 kB
Release files / beets_yapl-0.2.1.tar.gz
| Download URL | beets_yapl-0.2.1.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07494b08150a22330369c40fdccad80f7b5b65262695311a9eaa51bd2e1b6ac9
|
|
BLAKE2b-256 checksum How to use checksums |
bf2372ff8af8ba3ae69eaccebe7e7295c0d4bee8fc5106472b964292587d220b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / beets_yapl-0.2.1-py3-none-any.whl
| Download URL | beets_yapl-0.2.1-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b70cb16ebbcad76745540fc9412ef5f1bf148322201f7a3e1b040a706f2eef7
|
|
BLAKE2b-256 checksum How to use checksums |
f4b806f79712c9add614843a7f3bf5346a764e9afce7f867c3e9f648d4a8808b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for beets-yapl 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.