3

My music collection is all in mp3's and almost perfectly tagged. It's currently in a music folder sorted by [artist] and subfolders for the [albums].

I have got a lot of artists and genres, so I would like to seperate the artists by genre. It should look like this in the end [genre]->[artist]->[album].

I have got a Windows Pc and a Ubuntu Laptop, anything that will do the job is welcome. Be it a script or a program.

Diemex
  • 131

1 Answers1

0

A Linux way to do this will be with pytagsfs.

pytagsfs is a FUSE filesystem that was designed to present multiple views of tagged media files. For instance, a directory tree containing audio files could be mapped to a new directory structure organizing those same files by album, genre, release date, etc.

It should be available in the pytagsfs package in your Ubuntu.


Example

cd  # going to home directory
mkdir music_tree
pytagsfs -o ro,format=/%{genre}/%{artist}/%{album}/%{filename}.%{extension} /path/to/your/music/dir/ music_tree/

The tool will take some time to scan your music. Then you will have the desired directory structure in music_tree. The files there are not copies nor hard- nor softlinks; they are virtual files connected to the real ones.

In this example I mount read-only (-o ro) because I don't want to make a mess by accident. In general, file tags can be changed by moving and renaming virtual files and directories.

You can create multiple representations (virtual directory structures) in separate mountpoints. But I guess you would want to use this one desired representation only, also in Windows.

To use it in Windows you should save this directory structure as normal dirs'n'files. You have to cp -r music_tree /somewhere/else/. The downside of this approach is you need to have enough free space to make such a copy. It would be nice to be able to do this with hardlinks, but it's not how FUSE works.

Finally unmount:

fusermount -u ~/music_tree

Additional info: