Skip to content

A small collection of basic tools and scripts for bulk management of a local music library.

License

Notifications You must be signed in to change notification settings

mwdle/MusicTools

Repository files navigation

MusicTools

A small collection of basic tools and scripts for management of a local music library.

Table of Contents

Playlist Generator

This script allows you to quickly generate a .m3u playlist containing all music in a given folder and subfolders. Has support for excluding files/folders using regex.
To learn more, execute the following from a shell in the same folder as this README:

python3 generatePlaylist.py --help

or

python3 generatePlaylist.py -h

Name Normalizer

Some song, album, and artist names have characters that don't play nicely with some systems, resulting in poor portability of your music library when syncing across devices.
This script automates the process of removing and replacing such characters from your music library.
To learn more, execute the following from a shell in the same folder as this README:

python3 normalizeNames.py --help

or

python3 normalizeNames.py -h

Playlist File Structure Flattener

This script assumes all filepaths in your .m3u playlist follow UNIX conventions.

I recently wanted to migrate my music library file structure from Playlist/Artist/Album/song.ext to Artist/Album/song.ext which required adjusting many filepaths across many .m3u playlists. This script automates the process of updating a .m3u playlist to use filepaths one level up. Essentially the script removes the leading directory of every filepath in the playlist, so some/path/song.ext becomes path/song.ext.

This script only modifies the .m3u file you provide, it doesn't update your music library structure, that is something that can easily be done manually in a file explorer.

To learn more, execute the following from a shell in the same folder as this README:

python3 flattenPlaylist.py --help

or

python3 flattenPlaylist.py -h

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details.

Disclaimer

This repository is provided as-is and is intended for informational and reference purposes only. The author assumes no responsibility for any errors or omissions in the content or for any consequences that may arise from the use of the information provided. Always exercise caution and seek professional advice if necessary.