用于将(ID3)标签从FLAC传输到MP3的Linux脚本

The*_*ner 3 linux scripting mp3 id3v2 flac

对于我的媒体服务器,我正在寻找将标签从我的FLAC文件传输到MP3的方法.

在bash脚本中,我可以使用metaflac将标签提取到本地变量,但是当用id3v2标记mp3时,我似乎丢失了国家字符(猜测它必须是unicode?)

此外,我需要能够设置重播增益标签和专辑封面(所有这些都存在于FLAC中).

我正在寻找一个无人值守的脚本解决方案.

Vic*_*man 9

如果您对Python解决方案感兴趣,mutagen库看起来非常好.

它可以像以下一样简单:

from mutagen.flac import FLAC
from mutagen.easyid3 import EasyID3

flacfile = FLAC("flacfile.flac")
mp3file = EasyID3("mp3file.mp3")

for tag in flacfile:
    if tag in EasyID3.valid_keys.keys():
        mp3file[tag] = flacfile[tag]

mp3file.save()
Run Code Online (Sandbox Code Playgroud)

我找到了将mp3 id3标签复制到FLAC文件的解决方案.


Neo*_*eox 5

试试这个工具eyed3.它支持专辑艺术嵌入,latin1,utf8,utf16-BE和utf16-LE中的文本编码.但是不支持重播增益.据我所知,它没有得到广泛支持.

  • 年度问题已解决:eyeD3默认使用ID3v2.4标签.在这个版本中,年份的元数据更复杂.eyeD3 -Y写入TDRL(发布日期)标签,而mp3tag(和其他)在TDRC(录制时间)标签中查找年份.更改我的标记脚本以包括--set-text-frame = TDRC:"$ DATE"解决了我的问题. (2认同)