这篇文章上次修改于 279 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

cue 文件用于为整轨音频文件提供索引信息, 是一种纯文本文件. 简单来说 cue 指示了音轨在光盘中的具体摆放方式, 内容格式就像下面这样.

REM DATE 140423
REM DISCID DE116C0E
CATALOG 4988003825744
PERFORMER "Various Artists"
TITLE "WHITE ALBUM2 CONCERT SPECIAL CD"
FILE "KIXM-91030.flac" WAVE
  TRACK 01 AUDIO
    TITLE "届かない恋 ’13"
    PERFORMER "上原れな"
    ISRC JPKI01411024
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "WHITE ALBUM"
    PERFORMER "米澤 円"
    ISRC JPKI01411025
    INDEX 00 05:26:04
    INDEX 01 05:27:29
  TRACK 03 AUDIO
    TITLE "SOUND OF DESTINY"
    PERFORMER "米澤 円"
    ISRC JPKI01411026
    INDEX 00 10:11:48
    INDEX 01 10:13:35
  TRACK 04 AUDIO
    TITLE "さよならのこと"
    PERFORMER "上原れな"
    ISRC JPKI01411027
    INDEX 00 14:27:47
    INDEX 01 14:28:67

我拿到的不少音乐都是一整个的 wav/flac/ape/dsf 这种格式的文件, 虽然用播放器什么都能放但如果丢网盘的话高品质 (采样率大于 96KHz) 资源格式的文件根本就放不出来的, 而且也不能根据 cue 文件来选择相应的曲目了. 所以这次来对这些文件进行切割处理!

首先是想用 Python 来解析文件然后通过调用 FFmpeg 实现的, 但是后来发现了有更方便的办法就放弃了.

首先安装需要的两个软件分别用于切割文件和添加 metadata

yay -S shntool cuetools

如果源文件格式不支持先用 FFmpeg 转一下码.

切割示例, 输出文件名形如 01 - xxx.flac, 但导出的所有文件都是不包含元数据的

shntool split -f AQMC-039.cue -t '%n - %t' -o flac AQMC-039.flac

补充元数据示例, 从第二个参数开始指定音频文件.

cuetag.sh AQMC-039.cue *.flac

当然也可以偷懒用 * 代替文件名来直接粘贴命令而不用修改内容.

2023-08-22T05:32:30.png

我在用 cuetag.sh 命令的时候会出现刷屏报错, 因为这玩意甚至不能解析全部内容, 当然它添加的也不是全部信息了. 一定程度上会影响收录吧, 但是只是拿来看看倒是完全无所谓, 丢失的无非是些专辑流派 时间 DISCID 之类的东西.

2023-08-22T05:33:03.png

参考文章:

EAC 与 Cue 文件

根据 cue 分割无损音乐文件