帮助组织音乐

帮助组织音乐

我在中型办公环境中安装了 Ubuntu 服务器,将其设置为 Subsonic 媒体服务器。我允许所有员工上传到服务器上的媒体文件夹。

您可以想象,由于目录名中有多种艺术家和专辑名称的拼写、重复的文件以及不正确的文件名和标签,所以文件会变得有点混乱。

我希望能找到一个脚本,可以每天作为 cron 作业运行以清理媒体驱动器。有人知道有什么可行的方法吗?我想维护类似于以下路径:/mnt/music/Artist/Album/Song.file

答案1

我找到了这个脚本http://www.skryking.net/post/bash-sort-mp3-s-by-id3-tag

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

for i in `ls -1 *.mp3`
do
TITLE="`id3info "$i" | grep '^=== TIT2' | sed -e 's/.*: //g'`"
ARTIST="`id3info "$i" | grep '^=== TPE1' | sed -e 's/.*: //g'`"
ALBUM="`id3info "$i" | grep '^=== TALB' | sed -e 's/.*: //g'`"
YEAR="`id3info "$i" | grep '^=== TYER' | sed -e 's/.*: //g'`"
TRACKNUM="`id3info "$i" | grep '=== TRCK' | sed -e 's/.*: //g'`"

if [ -e "$TITLE" ]; then
  TITLE="Unknown"
fi

if [ -e "$ARTIST" ]; then
  ARTIST="Unknown"
fi

if [ -e $ALBUM ]; then
  ALBUM="Unknown"
fi

if [ -e $YEAR ]; then
  YEAR="Unknown"
fi

if [ -e $TRACKNUM ]; then
  TRACKNUM="Unknown"
fi

echo "$ARTIST $TITLE $ALBUM $YEAR $TRACKNUM"

install -D "$i" /storage/Multimedia/Music/"$ARTIST"/"$ALBUM"/"$i"
echo "/storage/Multimedia/Music/$ARTIST/$ALBUM/$i" >> filelist.txt

done

IFS=$SAVEIFS

显然,您需要修改它才能使用您的特定文件夹。它要求所有未分类的音乐都放在一个文件夹中,而不是放在子文件夹中,但除此之外,它很棒。

答案2

我以前也有过类似的安排。我采用的方法是,不让人们写入实际的最终目录,而是有一个传入目录,每天处理一次所有文件,并将它们移动到音乐目录。

我发现这好多了,因为我可以处理元数据并一次性清除垃圾文件。

这篇文章不会是最有用的,因为我弄丢了我为此编写的脚本。这是一个 Python 脚本,用于从 Amazon 抓取专辑封面、检查 CDDB 中是否存在元数据等。如果您正在寻找一个快速的 Python 项目,我诚挚地推荐它 - 它很有趣。

否则,您可以使用传入的编排并运行 Banshee 之类的程序,它里面有一个很棒的音乐组织引擎。唯一的问题是您必须手动进行导入,因为我认为没有自动导入功能。

相关内容