Youtube-dl 在音频转换过程中添加元数据

Youtube-dl add metadata during audio conversion

抱歉,如果这个问题被误导了。在将它们添加到 iTunes 之前,我正在使用 youtube-dl 将歌曲视频下载为 mp3。问题是视频似乎不包含其中的元数据。我阅读了有关 --add-metadata 选项的所有信息,但据我了解,此选项仅用于添加已在视频中的 ID?我知道艺术家和歌曲名称,所以如果可能的话,我喜欢直接添加的方法。效果 --add-metadata-artist "Pink Floyd" 使用当前的配置选项可能吗?我看到了这个相关问题,但它并没有真正帮助 https://github.com/rg3/youtube-dl/issues/1570 这是我当前的配置设置:

options = {
        'format':'bestaudio/best',
        'extractaudio':True,
        'audioformat':'mp3',
        'outtmpl':'%(id)s.%(ext)s',     #name the file the ID of the video
        'noplaylist':True,
        'nocheckcertificate':True,
        'proxy':"",
        'addmetadata':True,
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }]
    }

既然有人对我的问题投了赞成票,我会提到我最终没有找到用 youtube-dl 做到这一点的方法,但这没关系,因为它很容易用 EasyID3 做到:

from mutagen.easyid3 import EasyID3

metatag = EasyID3(pathToMp3File)
metatag['title'] = "Song Title"
metatag['artist'] = "Song Artist"
metatag.RegisterTextKey("track", "TRCK")
metatag['track'] = 7
metatag.save()

有关如何使用它的更多信息here

有youtube-dl选项:--add-metadatapost-processing documentation。 该文档说它将向视频文件添加元数据,但这也适用于音频文件。我用它来下载视频的 m4a 音频文件,所以它也应该适用于 mp3。此选项添加艺术家、曲目标题、日期和评论标签。

我发现我需要下载 FFmpeg 才能工作,我只是将 ffmpeg.exe 文件放在与 youtube-dl.exe 相同的目录中(这是在 windows系统).

我刚刚注意到您提到您注意到了这个选项。从测试看来,它使用视频上传器作为艺术家标签,实际视频名称作为标题标签,视频发布日期作为日期标签,视频评论作为评论标签。所以对于音乐视频来说,这可能并不理想。

如果你想用 Youtube-dl 做这个,你可以使用 --postprocessor-args 开关:

--add-metadata --postprocessor-args "-metadata artist=Pink\ Floyd"

您可以在后处理器列表中添加 FFmpegMetadata

options = {
    'format':'bestaudio/best',
    'extractaudio':True,
    'audioformat':'mp3',
    'outtmpl':'%(id)s.%(ext)s',     #name the file the ID of the video
    'noplaylist':True,
    'nocheckcertificate':True,
    'proxy':"",
    'addmetadata':True,
    'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        },
        {
            'key': 'FFmpegMetadata'
        }]