使用 youtube-dl 和 id3v2 的 mp3 标签存在问题

使用 youtube-dl 和 id3v2 的 mp3 标签存在问题

简而言之:我跑了:

sudo apt install youtube-dl ffmpeg id3v2 -y
echo "youtube-dl version:"
youtube-dl --version
echo "id3v2 version:"
id3v2 --version
youtube-dl --extract-audio --audio-format mp3 "https://youtu.be/Sqk3B2041uk" --output test.mp3
id3v2 -t "cooltitle" -a "coolartist" test.mp3

输出正常:

*normal output of apt install*
youtube-dl version:
2019.01.17
id3v2 version:
id3v2 0.1.12
Uses id3lib-3.8.3

This program adds/modifies/removes/views id3v2 tags, 
and can convert from id3v1 tags
[youtube] Sqk3B2041uk: Downloading webpage
[youtube] Sqk3B2041uk: Downloading video info webpage
[download] test.mp3 has already been downloaded
[download] 100% of 2.07MiB
[ffmpeg] Post-process file test.mp3 exists, skipping

理论上,此脚本应下载一个 mp3 文件并将其标题设置为“cooltitle”,将其艺术家设置为“coolartist”。但是当我使用 rythmbox 打开文件 test.mp3 时,它没有显示正确的标题和艺术家。

有谁知道为什么这不起作用或者如何修复它?

答案1

youtube-dl 确实下载了两个都即使您指定了视频和音频,--extract-audio您的语法也会混淆 youtube-dl 和 FFmpeg,因为它给出了相同的文件名对于两个流来说。

也许最容易修复(还有其他几种方法可以实现您的目标)是将您的 youtube-dl 语法更改为以下内容:

youtube-dl --extract-audio --audio-format mp3 \
          "https://youtu.be/Sqk3B2041uk" --output "test.%(ext)s"

在我的系统上,这确实成功创建了一个 id3v2 可以处理的文件:

andrew@ilium~/tmp$ youtube-dl --extract-audio --audio-format mp3 \
>           "https://youtu.be/Sqk3B2041uk" --output "test.%(ext)s"
[youtube] Sqk3B2041uk: Downloading webpage
[youtube] Sqk3B2041uk: Downloading video info webpage
[download] Destination: test.webm
[download] 100% of 2.07MiB in 00:02
[ffmpeg] Destination: test.mp3
Deleting original file test.webm (pass -k to keep)
andrew@ilium~/tmp$ 

注意默认情况下youtube-dl 下载了可用的最佳质量音频和视频,因此对于此特定剪辑,在 webm 容器中存在 Opus 音频和 VP9 视频。然后,FFmpeg 会按要求删除视频并转换音频,查看选项--keep-video以了解其中的神奇之处 :)

相关内容