Skip to main content

Music toolbox

This is a small toolbox of utilities written in Python 2 that help users groom their music collection.

What's in the box

The box contains a number of utilities. The main one is syncplaylists.

syncplaylists: the playlist synchronizer

syncplaylists takes a number of file lists / playlists in the command line, and a destination directory, then synchronizes all the songs in the playlists to the destination directory, with optional modifications to the files and their names as they are copied to the destination directory. syncplaylists preserves your music collection's directory structure, and allows you to define what formats you want your music to be transcoded to.

Run syncplaylists --help for more information.

syncplaylists accepts a simple YAML file in your home directory, by default read from file transcoding.yaml in $HOME/.config/musictoolbox (although you can change which file to use with the -c command line parameter). The file must say how you want things to be transcoded (documentation on the config format is forthcoming):

# cat ~/.config/musictoolbox/transcoding.yaml
policies:
- source: ogg
  # Ogg Vorbis and Ogg Opus files to be copied directly
  pipeline: [copy]
- source: *
  # Everything else to transcode to MP3.  MP3 files
  # themselves will be copied since the copy transcoder
  # is the one with the cheapest "cost".
  target: mp3

Once you've created the YAML config file, here's the quickstart version of how you actually use the tool:

[user@laptop ~/Music]$ syncplaylists -vd Playlists/*.m3u /mnt/usbdrive/Music/

That will copy all songs listed in all M3U playlists within your ~/Music/Playlists folder directly into /mnt/usbdrive/Music, preserving the directory structure you have.

Any playlist you specify as parameter can also be a symlink. If they are, then any relative paths within the playlist will be resolved in relation to the target of the symlink, rather than the symlink itself. This lets you symlink album playlists to a folder with favorite playlists of yours, and then use syncplaylists directly with those symlinked favorites.

genplaylist: the playlist generator

genplaylist generates playlists. Run genplaylist --help for more information.

Requirements / dependencies

This is a list of requirements for most of these utilities to work:

  • python3-packaging
  • python3-networkx
  • python3-pyxdg
  • python3-psutil
  • python3-mutagen
  • ffmpeg
  • GStreamer

Metadata

Release files for musictoolbox 0.0.87

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for musictoolbox 0.0.87
File Size Uploaded
musictoolbox-0.0.87.tar.gz 46.1 kB Details

Release files / musictoolbox-0.0.87.tar.gz

Download URL musictoolbox-0.0.87.tar.gz
Size 46.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7c2835166dce7e1e50c14bffe07c70f87113ce296080745b7824b715fa40277c
BLAKE2b-256 checksum
How to use checksums
daab92302180643986476708f6397573dded4db7179b070c008cad255bea8a34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.0.87 This release

1 release file

0.0.84

1 release file

0.0.83

1 release file

0.0.82

1 release file

0.0.81

1 release file

0.0.76

1 release file

0.0.75

1 release file

0.0.74

1 release file

0.0.73

1 release file

0.0.71

1 release file

0.0.55

1 release file

0.0.44

1 release file

0.0.43

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page