Music File Organizer


I've been using this utility since I wrote it 6 years ago, and this afternoon, I cleaned up the code base in order to release it. It's a simple command-line music file organizer. It takes a list of files or directories as program arguments, inspects the tags of all the enclosed music files, and then determines which directories need to be created and what the music file name should be. Plenty of GUI tools do this already, many of which are very customizable, but I have yet to see a command-line utility as simple as this that gets the job done.

The general ingestion routine for acquiring music on the Interwebs is I load it up in Picard or EasyTag or another command line utility to adjust the tags, and then run:

$ organizemusic ~/Downloads/some-silly-m4a-directory

And presto, all the music is moved into the right place.

It takes care of translating difficult non ASCII character into correct transliterations using libicu and uses KDE Scott Wheeler's taglib for the audio file tag reading.


This project ships two very simple utilities for organizing music files.


This scans recursively all directories and files given as arguments and determines the tags of the audio files. It uses these tags to generate a file name and directory sstructure, normalizes the name to remove non ASCII characters, and then moves the files to their new location inside $MUSICDIR or $HOME/Music.

$ organizemusic ~/Downloads/Some-Torrent-Directory/ ~/Desktop/file-from-friend.mp3


This spits out all the tag data inside the music files given as arguments.

$ readmusictags ~/some-music-file.flac ~/files/another_music-file.wma

Build Requirements

  • taglib - http://taglib.github.com/
  • libicu - http://site.icu-project.org/

Build Instructions

$ make