读取文件的iD3比特率标签并将其写入文件夹名称(包含文件的文件夹)

时间:2012-08-19 16:29:05

标签: terminal osx-lion mp3 directory id3

在我第一次认真尝试整合一个拥有近20,000个文件夹的巨大音乐库时(每张专辑都是一个文件夹)。文件夹的名称如下:

艺术家 - 年份 - 专辑名称

但是,与任何大型图书馆一样,有很多相册重复,我发现越来越多的重复,因为我将所有文件夹命名设置为上述命名标准。

要解决相册副本,我决定保留具有最高比特率的那个,通过命名文件夹如下:

艺术家 - 年份 - 相册名称[比特率 kbps]

这样我就可以轻松查看我将保留哪个文件夹并删除所有低质量的文件夹。但事实证明这项任务过于耗时。

所以我想知道是否可以通过OSX终端完成。解决方案看起来像这样:

  1. 在文件夹
  2. 中查找文件的iD3“比特率”标记
  3. 将找到的比特率标记写在文件夹名称的末尾,例如
  4. 艺术家 - 年份 - 相册名称[ 320 kbps]

    如果文件夹中文件的比特率彼此不同,请将名称设置为

    艺术家 - 年份 - 相册名称[ vrb kbps]

    请注意,我想在我的机器中使用终端或任何其他可用工具本地。没有涉及服务器或涉及脚本语言......

    任何方向的任何帮助都会很棒!请记住,我不是一个先进的终端用户,所以我真的很感激婴儿步骤的解释......;)

1 个答案:

答案 0 :(得分:0)

根据http://osxdaily.com/2010/10/04/check-bitrate-of-mp3-and-audio-files/尝试类似

的内容
find /path -type d |
while read folder; do
    prev=
    br=
    for file in "$folder"/*; do
        case $file in "$folder/*") break;; esac  # Skip empty directories
        br=$(afinfo "$file" | awk '/Bit rate:/{print $3/1000}')
        echo '##' "$br" "$file"
        case $prev in "" | $br) prev=$br; continue;; esac
        br="vbr"
        break
    done
    case $br in '') continue;; esac  # Don't rename if we don't have a bitrate
    echo moving "$folder" to "$folder [$br]"
    mv "$folder" "$folder [$br]"
done

未测试;也许在没有重命名的情况下尝试这个。如果您喜欢静音操作,请取出echo行。