列出并删除音频比特率太小的专辑

列出并删除音频比特率太小的专辑

我正在清理我的音乐库,但一直无法删除多年来一直在那里收集的数千张比特率低于 320kbps 的专辑。手动检查单个文件的比特率并删除整个文件夹真的很繁琐。也许有人能想出一些办法来帮助我清理?我希望之后只保留 320kbps 的 MP3 和 flacs。提前谢谢!

答案1

这是一个 shell 方法。它将删除所有不包含.mp3比特率 >= 320 kbps 的文件的目录:

find /path/to/Music -type d -print0 | 
    while IFS= read -r -d '' dir; do 
     mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1); 
     [ -e "$mp3" ] && [[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]] && 
            rm -rf "$(dirname "$mp3")"; 
    done

笔记

  • 这将删除包含以下内容的所有目录最后一个mp3 文件,其比特率小于 320。如果同一目录中存在另一个具有正确比特率的文件,则该文件也将被删除。此方法假设目录中的所有文件都具有相同的比特率。

  • 这将丢失可变比特率的文件。

  • 它应该适用于任何类型的文件名,包括带有空格、换行符甚至反斜杠的文件名。

  • 您可能需要安装mp3infosudo apt-get install mp3info

  • 首先在测试目录上运行它。

解释

  • find /path/to/Music -type d -print0:查找下面的所有目录/path/to/Music,并以空字符串分隔打印它们。这是为了处理奇怪的文件名。

  • while IFS= read -r -d '' dir; do:遍历每个结果find,并将它们保存在$dir变量中。

  • mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1);:将该目录下第一个mp3文件命名为$mp3

  • [ -e "$mp3" ]:如果此文件存在。这是跳过没有 mp3 文件的目录所必需的。

  • [[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]]:这将检查 的比特率$mp3。它运行mp3info,查找比特率并检查它是否小于320

  • rm -rf "$(dirname "$mp3")";:删除包含 mp3 文件的目录。仅当其比特率低于所需时才会运行此操作。

答案2

@DavidFoerster 的评论我会使用 Banshee。

media通过前往->import media并选择文件夹,从您想要的文件夹(甚至整个分区)导入所有媒体文件。

导入所有媒体后,右键单击列栏(如下面的屏幕截图所示)并选择Bitrate。然后单击列名称以按该列排序。

然后,您可以选择所需的比特率(在本例中为 320),向下滚动,按下Shift并单击最后一首歌曲。然后右键单击所选歌曲并选择Delete from Drive

在此处输入图片描述

相关内容