symmusic: build directory structure from audio tags
Posted: Sun Oct 23, 2011 7:11 pm
I'm a big fan of Subsonic using pure file lists for browsing my library. It grants a lot of flexibility. On occasion though I wish it was organized by by artist, genre, album, etc. As such, I built symmusic (https://github.com/jmeb/symmusic). Its a little python widget that (flexibly) builds a directory structure from audio tags in a specified directory. The audio files in the new directory structure are then symbolically linked to their originating file. This way you can have a different directory for each organization (by genre, by artist) without having multiple copies of the data itself. I've only tested this on linux (debian). Hypothetically it should work on OS X as well, but I very much doubt compatibility with windows.
This is basically a much-inferior implementation of pytagsfs http://www.pytagsfs.org. Its a really cool project and is much more than symmusic will ever by. That said it was a bit of a resource hog on my ~100gb music collection. Unlike pytagsfs, once the script of symmusic is run no additional resources (beyond a bit of disk space for the directory structure) are used.
As the code of symmusic shows I'm a complete novice to python and programming. If you have suggestions, ideas, requests, etc, please feel free to branch, fork, or what have you.
I'm sure this could be done via java/jaudiotagger and thereby integrated more closely with subsonic -- I just don't have the skills. Hoping someone may find this to be of use.
This is basically a much-inferior implementation of pytagsfs http://www.pytagsfs.org. Its a really cool project and is much more than symmusic will ever by. That said it was a bit of a resource hog on my ~100gb music collection. Unlike pytagsfs, once the script of symmusic is run no additional resources (beyond a bit of disk space for the directory structure) are used.
As the code of symmusic shows I'm a complete novice to python and programming. If you have suggestions, ideas, requests, etc, please feel free to branch, fork, or what have you.
I'm sure this could be done via java/jaudiotagger and thereby integrated more closely with subsonic -- I just don't have the skills. Hoping someone may find this to be of use.