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: