我的音乐收藏全部是 mp3,而且几乎完美地标记了。它目前位于按 [艺术家] 排序的音乐文件夹中,并按 [专辑] 排序子文件夹中。
我有很多艺术家和流派,所以我想按流派区分艺术家。最后应该是这样的 [流派]->[艺术家]->[专辑]。
我有一台 Windows PC 和一台 Ubuntu 笔记本电脑,任何能完成工作的东西都欢迎。无论是脚本还是程序。
答案1
Linux 中实现此操作的方法是使用pytagsfs
。
pytagsfs
是一个 FUSE 文件系统,旨在呈现标记媒体文件的多种视图。例如,包含音频文件的目录树可以映射到新的目录结构,按专辑、流派、发布日期等组织相同的文件。
它应该pytagsfs
在你的 Ubuntu 包中可用。
例子
cd # going to home directory
mkdir music_tree
pytagsfs -o ro,format=/%{genre}/%{artist}/%{album}/%{filename}.%{extension} /path/to/your/music/dir/ music_tree/
该工具将需要一些时间来扫描您的音乐。然后您将在 中获得所需的目录结构music_tree
。那里的文件不是副本,也不是硬链接或软链接;它们是与真实文件相连的虚拟文件。
在此示例中,我以只读方式挂载(-o ro
),因为我不想意外弄乱。通常,可以通过移动和重命名虚拟文件和目录来更改文件标签。
您可以在不同的挂载点创建多个表示(虚拟目录结构)。但我猜您可能只想使用这一个所需的表示,在 Windows 中也是如此。
要在 Windows 中使用它,您应该将此目录结构保存为普通的目录和文件。您必须这样做cp -r music_tree /somewhere/else/
。这种方法的缺点是您需要有足够的可用空间来制作这样的副本。如果能够使用硬链接来做到这一点就好了,但这不是 FUSE 的工作方式。
最后卸载:
fusermount -u ~/music_tree
附加信息:
apt-cache show pytagsfs
,man pytagsfs
(或者这里),- 维基百科上有关 FUSE 的一般信息。