Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (
Help us improve Python packaging - Donate today!

Sync music library to external devices

Project Description

This program allows you to synchronize your music library for the usage on primitive music players that don’t support the diversity of your collection.

In normal operation mode, sync_music performs its synchronization tasks depending on the input file format. Music files in FLAC and Ogg Vorbis format are transcoded to MP3. MP3 audio files and other files are transferred unchanged. Filenames are adapted where necessary to comply with the FAT32 format.

Transcoding is a time consuming operation, therefore the first run of sync_music can take several minutes. In subsequent runs however, it will only process files that changed in the source. To optimize the detection of file changes, the script stores and compares a hash build on a fixed size block at the beginning of each file.

Besides audio files, sync_music is also able to export M3U playlists to the destination folder. Absolute paths are hereby replaced with relative paths in addition to the FAT32 filename adaptations.


  • Python 3.4
  • Python Audio Tools >= 3.0 (for transcoding to MP3)
  • Mutagen >= 1.29 (for tag manipulation)


pip3 install –process-dependency-links


sync_music –audio-src=<FOLDER> –audio-dest=<FOLDER>

M3U Playlist syncing can be enabled by specifying the path to the playlist with the –playlist-src=<FOLDER> parameter.

Some media players don’t properly support album artist tags, but they do support the composer field. This restriction can be bypassed by writing the album artist information into the composer field. This can be enabled by the –albumartist-hack

Some media players don’t properly support disc number tags with tracks numbered starting with 1 for every disc. The user typically wants to group them by disc and not by track position. This can be solved by creating a different album for each disc. With the –discnumber-hack option, the disc number is appended to the album field.

Some media players don’t properly support track number tags containing the total number of tracks on the disk. With the –tracknumber-hack option, the track total is removed from the track number field.

Call sync_music with –help to get a full list of supported command line parameters.


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License]( for more details.

Release History

Release History

This version
History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
sync_music-0.2.0.tar.gz (15.6 kB) Copy SHA256 Checksum SHA256 Source Oct 18, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting