Youtube-DL:将音频文件转换为 MP3 时如何去除视频信息/描述?

jal*_*eco 9 video linux mp3 ffmpeg youtube-dl

这可能有点挑剔,但是当我使用 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>
Run Code Online (Sandbox Code Playgroud)

当我检查 ID3 标签信息时,它按预期添加了视频标题。如果我将扩展名重命名为 AVI、播放音频文件并打开其属性,我可以看到不需要的信息,如视频描述、版本编码器和品牌。该选项--add-metadata将元数据写入视频文件,从中获取视频描述,但是当我忽略它时,视频根本不会被标记。

我通读了 Youtube-DL 和 FFMPEG 的文档,但找不到合适的方法来剥离视频描述/信息并保持 MP3 标记。

有谁知道如何做到这一点?

小智 5

我不相信你目前可以控制该--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"
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!

PS:我知道这个问题有点老了,但发布一个可行的解决方案可能会对您和其他人有所帮助。