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

标签 ffmpeg metadata extract youtube-dl m4a

我仅使用 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 . . .

如您所见,我能够成功添加视频中的一些标签,但不是所有标签和年份 被皇家搞砸了。
enter image description here

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

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

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

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

最佳答案

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

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

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

  • TagEditor可能最适合这项任务。它可以做到位
    编辑假设文件有足够的填充。它确实有问题
    non ASCII content然而。
  • MP4Box, Bento4 and AtomicParsley都可以做到这一点,但没有一个
    他们进行就地编辑。这可能是较大文件的问题。此外
    原子欧芹是 starting to show its age .
  • Picard如果您不介意 GUI,它也非常有用。
  • 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
    

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

    关于ffmpeg - 使用 youtube-dl 将元数据(艺术家姓名、歌曲名称、年份、专辑、时长、流派)写入 mp3/m4a 音频文件(随后的 AtomicParsely 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070258/

    相关文章:

    python - ffmpeg Python命令在PM2环境下只运行一次

    android - 如何使用 mp4parser 将元数据写入 mp4 文件?

    r - 应用 tm_map 时 tm 丢失元数据

    linux - 根据另一个行迭代生成新文件

    ffmpeg - dash 的 init seg_duration 选项类似于 -hls_init_time 选项

    stream - 如何使用 ffmpeg 创建流式音频文件?

    java - 在不影响可用性的情况下向图像添加任意数据

    java - 如何使用 iText 库获取 pdf 文件的给定段落内容?

    file - 从 sqlite 中提取

    ffmpeg - 使用 ffmpeg 录制游戏屏幕时显示透明键盘的色度键过滤器