这可能有点挑剔,但当我使用 Youtube-DL 将视频中的音频转换为 MP3 时,我让它也标记标题并嵌入视频中的缩略图。不知何故,它会添加视频描述和一些其他元视频信息,而我不想要这些信息。这是我使用的命令:
youtube-dl -o "%(title)s.%(ext)s" -x --audio-format mp3 --audio-quality 320K --embed-thumbnail --add-metadata --metadata-from-title "%(artist)s - %(title)s" <youtube url>
当我检查 ID3 标签信息时,它按预期添加了视频标题。如果我将扩展名重命名为 AVI,播放音频文件并打开其属性,我可以看到不需要的信息,例如视频描述、版本编码器和品牌。该选项--add-metadata
将元数据写入视频文件,从中获取视频描述,但当我忽略它时,视频根本没有被标记。
我通读了 Youtube-DL 和 FFMPEG 的文档,但找不到适当的方法来删除视频描述/信息并保留 MP3 标记。
有谁知道如何做到这一点?
答案1
我不相信您目前可以控制该--add-metadata
选项。
但是,您可以使用该--exec
选项随后使用对输出文件的引用执行命令{}
,并要求ffmpeg
删除不需要的元数据,如下所示:
--exec "ffmpeg -y -i {} -map 0 -c copy -metadata comment=\"\" -metadata description=\"\" -metadata purl=\"\" temp.mp3"
执行“转换”过程(覆盖同一个文件)会破坏输出文件的流数据,但添加辅助文件temp.mp3
然后覆盖它会使它正常工作。
我已经测试了以下命令组合:
youtube-dl -o "%(title)s.%(ext)s" -x --audio-format mp3 --audio-quality 320K --embed-thumbnail --add-metadata --metadata-from-title "%(artist)s - %(title)s" <youtube url> --exec "ffmpeg -y -i {} -map 0 -c copy -metadata comment=\"\" -metadata description=\"\" -metadata purl=\"\" temp.mp3;cp -r temp.mp3 {};rm -rf temp.mp3"
我希望这有帮助!
附言:我知道这个问题有点老了,但发布一个可行的解决方案可能会对您和其他人有所帮助。