使用 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)
我使用 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
命令一样简单?
当我 google 搜索这首歌时,第一个 link 显示的正是我在 YouTube 上使用的 link,并且搜索显示相关的元数据(见下文)。我不确定这些数据是用户手动输入的,还是 Google 从视频中提取的:
我承认我是 youtube-dl
和 ffmpeg
的新手,但在 Whosebug 上的评论者的帮助下,我每天都在学习更多东西。 post 是我之前问题的 follow-up:
您正在尝试使用 YouTube-DL,并依次使用 AtomicParsley 设置标签
这个文件。
要使用 --embed-thumbnail
,YouTube-DL 必须调用外部程序,因为
这超出了 YouTube-DL 项目的范围。在这种情况下,他们是
调用 AtomicParsley.
将缩略图正确嵌入 M4A/MP4 并不容易,即使在 2016 年也是如此。几个
工具可以做到这一点,但它们各有问题:
TagEditor 可能最适合这项任务。它可以做到位
假设文件有足够的填充进行编辑。它确实有问题
non ASCII content不过
MP4Box, Bento4 and AtomicParsley 都可以做到这一点,但是 none
他们进行现场编辑。这可能是较大文件的问题。此外
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
仅从 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
命令一样简单?
当我 google 搜索这首歌时,第一个 link 显示的正是我在 YouTube 上使用的 link,并且搜索显示相关的元数据(见下文)。我不确定这些数据是用户手动输入的,还是 Google 从视频中提取的:
我承认我是 youtube-dl
和 ffmpeg
的新手,但在 Whosebug 上的评论者的帮助下,我每天都在学习更多东西。 post 是我之前问题的 follow-up:
您正在尝试使用 YouTube-DL,并依次使用 AtomicParsley 设置标签 这个文件。
要使用 --embed-thumbnail
,YouTube-DL 必须调用外部程序,因为
这超出了 YouTube-DL 项目的范围。在这种情况下,他们是
调用 AtomicParsley.
将缩略图正确嵌入 M4A/MP4 并不容易,即使在 2016 年也是如此。几个 工具可以做到这一点,但它们各有问题:
TagEditor 可能最适合这项任务。它可以做到位 假设文件有足够的填充进行编辑。它确实有问题 non ASCII content不过
MP4Box, Bento4 and AtomicParsley 都可以做到这一点,但是 none 他们进行现场编辑。这可能是较大文件的问题。此外 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
上传者在描述中输入的内容和格式由上传者决定。