playlistcopy is a Python 3 program for merging and copying (and syncing) several tracks of several playlists (m3u/m3u8) to a destination device, even splitted in folders and shuffled.
Per default playlistcopy rewrites file names to artist - album - track (with help of hsaudiotag3k) so it's important to have correct file tags. It also handles not unique source tracks (if the same track is on several playlists). A track is identified by its file name (rewritten one from tags or real filename if disabled).
playlistcopy has two possible modes: sync and append. In sync mode playlistcopy removes all files which are not on the given playlists! In comparison to sync, append does not do any deletion.
Originally I wrote this script for my Kenwood car radio which only recognizes 255 tracks per folder (and 254 folders in total) on an USB-device. Nobody wants to split thousands of tracks by hand…
Sync or append. See above.
playlistcopy task [PARAMETERS] destination playlist [playlist ...]
--dry-run, -n |
|
--no-rewrite-filenames |
|
--shuffle |
|
--reshuffle |
|
--tracks-per-folder |
|
--folder-names |
|
destination |
|
playlist [...] |
|
Randomly move all files between all existing destination folders (according format for folder name). This is usually needed after a sync with shuffle as sync/append only fill all folders and place new tracks in new folders without any reshuffle.
playlistcopy reshuffle [PARAMETERS] destination
--dry-run, -n |
|
--folder-names |
|
destination |
|
Stats about tracks in destination. Sums by track count per artist or per track (including percentage).
playlistcopy stats [PARAMETERS] destination
--group-by |
Group by artist (default) or track |
---|---|
Common Arguments ~~~~~~~~~~~~~~~~ |
|
================= | ===== ================================================================== |
--help, -h |
|
--verbose, -v |
|
--version, -V |
|
- Python 3.1 (at least)
- hsaudiotag3k (semi-optional)
- chardet (optional)
playlistcopy is licensed under the terms of GPLv3+.