Skip to main content

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 ==

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beets_yapl-0.2.1.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beets_yapl-0.2.1-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file beets_yapl-0.2.1.tar.gz.

File metadata

  • Download URL: beets_yapl-0.2.1.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for beets_yapl-0.2.1.tar.gz
Algorithm Hash digest
SHA256 07494b08150a22330369c40fdccad80f7b5b65262695311a9eaa51bd2e1b6ac9
MD5 5d5d3df709128a4d1cebcfbf8536b0f8
BLAKE2b-256 bf2372ff8af8ba3ae69eaccebe7e7295c0d4bee8fc5106472b964292587d220b

See more details on using hashes here.

File details

Details for the file beets_yapl-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: beets_yapl-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for beets_yapl-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8b70cb16ebbcad76745540fc9412ef5f1bf148322201f7a3e1b040a706f2eef7
MD5 ab31357e068694d3189f970ce940e27a
BLAKE2b-256 f4b806f79712c9add614843a7f3bf5346a764e9afce7f867c3e9f648d4a8808b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page