使用 youtube-dl 将元数据(艺术家姓名、歌曲名称、年份、专辑、时长、流派)写入 mp3/m4a 音频文件(随后的 AtomicParsely 错误)

Posted

技术标签:

【中文标题】使用 youtube-dl 将元数据(艺术家姓名、歌曲名称、年份、专辑、时长、流派)写入 mp3/m4a 音频文件(随后的 AtomicParsely 错误)【英文标题】:Writing metadata (Artist Name, Song Title, Year, Album, Duration, Genre) to mp3/m4a audio file using youtube-dl (subsequent AtomicParsely error) 【发布时间】:2017-04-25 12:18:44 【问题描述】:

我仅使用 youtube-dl 从 youtube 视频中提取音频。 我想在下载后将元数据(即艺术家姓名和歌曲名称、年份、专辑、时长、流派)写入 mp3/m4a 文件。我的尝试从以下代码开始:

@echo off
youtube-dl --format m4a/mp3 --youtube-skip-dash-manifest --embed-thumbnail -o "%%(title)s.%%(ext)s" --metadata-from-title "%%(artist)s - %%(title)s" --add-metadata 2Y6Nne8RvaA
pause

此代码产生以下输出:

[youtube] 2Y6Nne8RvaA: Downloading webpage
[youtube] 2Y6Nne8RvaA: Extracting video information
[youtube] 2Y6Nne8RvaA: Downloading thumbnail ...
[youtube] 2Y6Nne8RvaA: Writing thumbnail to: Kungs vs Cookin' on 3 Burners - Thi
s Girl.jpg
[download] Destination: Kungs vs Cookin' on 3 Burners - This Girl.m4a
[download] 100% of 2.99MiB in 00:01
[ffmpeg] Correcting container in "Kungs vs Cookin' on 3 Burners - This Girl.m4a"

[fromtitle] parsed title: This Girl
[fromtitle] parsed artist: Kungs vs Cookin' on 3 Burners
[ffmpeg] Adding metadata to 'Kungs vs Cookin' on 3 Burners - This Girl.m4a'
ERROR: AtomicParsley was not found. Please install.
Press any key to continue . . .

如您所见,我能够成功地添加视频中的一些标签,但不是所有标签,并且 年份 被彻底搞砸了。

这是什么AtomicParsely 错误,我该如何补救?我需要这个程序来正确地将所有元数据添加到我想要的文件中,还是可以通过其他方式完成?

引用Steven Penny's post, FFmpeg metadata not showing in Windows?,解决这个问题就像使用ffmpeg 命令一样简单吗?

当我在谷歌上搜索这首歌时,显示的第一个链接就是我在 YouTube 上使用的确切链接,并且搜索显示了相关的元数据(见下文)。我不确定这些数据是用户手动输入的,还是谷歌从视频中挖掘出来的:

我承认我不熟悉使用 youtube-dlffmpeg,但在 *** 评论者的帮助下,我每天都在学习更多。这篇文章是我上一个问题的后续:Downloading YouTube to mp3 and writing metadata (artist/song title) to mp3 file using youtube-dl

【问题讨论】:

【参考方案1】:

您正在尝试使用 YouTube-DL,然后使用 AtomicParsley 来设置 这个文件。

要使用--embed-thumbnail,YouTube-DL 必须调用外部程序,就像这样做 这超出了 YouTube-DL 项目的范围。在这种情况下,它们是 调用 AtomicParsley。

将缩略图正确嵌入到 M4A/MP4 中并不容易,即使在 2016 年也是如此。一些 工具可以做到这一点,但它们都有各自的问题:

TagEditor 可能最适合这项任务。它可以做到位 编辑假设文件有足够的填充。它确实有问题 non ASCII content 然而。

MP4Box, Bento4 and AtomicParsley 也可以做到这一点,但没有一个 他们进行就地编辑。这可能是较大文件的问题。此外 AtomicParsley 是starting to show its age。

如果您不介意 GUI,Picard 也非常有用。

FFmpeg 是一个庞大的项目,can’t do this at all。


关于年份:在这种情况下,YouTube-DL 无法帮助您,因为 信息不在页面中:

$ de=$(mktemp)
$ wget -O "$de" https://www.youtube.com/watch?v=2Y6Nne8RvaA
$ grep '2009[^[:digit:]]' "$de" | wc
      0       0       0

这取决于上传者在描述中添加的内容和格式。

【讨论】:

以上是关于使用 youtube-dl 将元数据(艺术家姓名、歌曲名称、年份、专辑、时长、流派)写入 mp3/m4a 音频文件(随后的 AtomicParsely 错误)的主要内容,如果未能解决你的问题,请参考以下文章

如何在不发出单独请求的情况下将元数据和音轨从广播流中分离出来

使用 getid3() 插入专辑艺术家标签

从音频文件中获取专辑封面、歌曲名称、专辑名称和艺术家姓名

如何使用 php.. 从音乐文件中获取艺术家姓名?

如何使用 Spotify API 将艺术家的姓名添加到端点?

数据库中的贝宝付款商店详细信息