当前位置: 首页 > 知识库问答 >
问题:

使用youtube-dl将元数据(艺人名称、歌名、年份、专辑、持续时间、流派)写入MP3/M4A音频文件(随后的AtomicParsely错误)

衡修洁
2023-03-14

我只从使用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的文章,Windows中没有显示FFmpeg元数据?,解决这个问题就像使用FFmpeg命令一样简单吗?

我承认我对使用YouTube-dlFFMPEG是新手,但是在StackOverflow上的评论者的帮助下,我每天都在学习更多。这篇文章是我上一个问题的后续:下载YouTube到mp3并使用youtube-dl将元数据(艺术家/歌曲标题)写入mp3文件

共有1个答案

胡彭亮
2023-03-14

您正在尝试使用YouTube-DL,然后AtomicParsley来设置该文件的标记。

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

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

>

  • TagEditor可能最适合这项任务。假设文件有足够的填充,它可以进行原地编辑。但是,它确实有一个非ASCII内容的问题。

    MP4Box、Bento4和AtomicParsley也可以做到这一点,但它们都没有做到原地编辑。对于较大的文件,这可能是一个问题。此外,AtomicParsley开始显示出它的年龄。

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

    FFmpeg是一个庞大的项目,根本做不到这一点。

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

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

    这取决于上传者他们在描述中放了什么,以什么格式。

  •  类似资料:
    • 我只从使用的youtube视频中提取音频。我想在下载后将元数据(即艺人名称和歌名)写入mp3文件。我尝试从以下代码开始: 这段代码的输出是: 如您所见,代码将元数据添加到文件名中,而不是添加到文件中。将其写入文件是无用的,因为该文件在进程完成后会被删除。我希望将此元数据写入文件,以便在查看文件夹中的歌曲时,它将如下所示: 这种格式对我很有用,因为我可以直接输入这些文件到iTunes,元数据将是完整

    • 你好,我想做一个android音乐应用程序,我想我的listView显示所有歌曲,以显示该歌曲的专辑艺术,艺术家姓名,持续时间和歌曲名称 我已经成功显示列表视图中的所有歌曲,但无法显示专辑艺术等 有人能帮我吗?? 提前谢谢

    • 对不起,如果这个问题被误导了。我使用youtube-dl下载歌曲视频作为MP3,然后添加到iTunes。问题是视频中似乎没有包含元数据。我阅读了关于--add-metadata选项的内容,但据我所知,该选项仅用于添加ID,如果它们已经在视频中?我知道艺术家和歌曲标题,所以我想一个方法,添加到直接,如果可能的话。大意是--添加-元数据-艺术家“Pink Floyd”用当前的配置选项可能吗?我看到了这

    • 当我尝试通过HTML5播放器播放一些MP3时,播放器似乎返回两个不同的持续时间。当我用jQuery查询持续时间时,我会得到当前的持续时间,但在默认的Chrome播放器中,歌曲尝试播放的时间要比歌曲实际播放的时间长得多。这在Safari(MacOSX上的7.0.1)中不是问题。是什么原因导致某些MP3出现此问题?如何让Chrome(第31节)使用正确的时间? 代码如下: 以下是音频文件的JSFIDL

    • 在我的程序中,我通过管道将webm从流传输到ffmpeg,然后将输出传输到http请求。这个过程的一部分是为MP3添加元数据。到目前为止,这很有效。然而,在添加图像作为相册艺术后,它开始表现得出乎意料。 首先,这是我在程序中使用的命令行: 它创建了一个有效的mp3文件,我可以在mp3文件中找到元数据和图像,但当播放它时,它们都没有显示在VLC或其他任何地方。为了测试各种配置,我将其转换为命令行。

    • 我想获取正在上传到系统中的音频/视频文件的持续时间。早些时候,我使用了,但我想它不再被维护了,因为没有与此兼容的python 3模块。 还有其他轻量级替代品吗? 如果我想写一些自己的东西来完成它,先决条件是什么?