【问题标题】:Error when extracting info with youtube_dl使用 youtube_dl 提取信息时出错
【发布时间】:2020-07-27 16:11:39
【问题描述】:

我目前正在制作一个程序,将保存在我的 YT 帐户中的歌曲转移到 Spotify 播放列表中,我正在使用 youtube_dl 使用以下代码从 YT 视频中提取元数据:

# use youtube_dl to collect the song name & artist name
        video = youtube_dl.YoutubeDL({}).extract_info(
            youtube_url, download=False)
        song_name = video["track"]
        artist = video["artist"]

当我在三月份第一次做这个项目时,extract_info 生成的 json 包含正确的艺术家姓名,但现在艺术家以及许多其他值(尽管对于此任务不是必需的)被列为无。有没有人遇到过这个问题?我正在考虑不使用艺术家姓名来获取 uri 的解决方法,但这将无法区分两首同名歌曲。如果其他人注意到这一点并找到了解决方案,我很乐意听到!

【问题讨论】:

  • 我认为youtube_dl 正在从某些视频中提取艺术家、跟踪字段,尤其是那些由 YT 上传并获得版权所有者许可的视频,其描述类似于“提供给YouTube by ......”我用这种视频尝试了你的代码,youtube_dl 很好地提取了这些字段。
  • 这太奇怪了。请问你用的是什么视频?我试图从中提取的所有视频都被 YouTube 注册为“音乐”,但仍然没有返回正确的歌曲信息。此外,这是我使用的播放列表,以防万一我正在查看某些内容。 youtube.com/playlist?list=PLT6RFFUUdzx8HEANLbhHH4UO-M8E4Ue09
  • 我查看了您提供的播放列表,除了第一个在我国被屏蔽的视频外,其余都是普通视频,不属于我之前提到的类别(描述具有特殊格式)。我也在添加一个答案来提供日志

标签: python youtube youtube-dl


【解决方案1】:

这是我尝试使用您的代码的视频:https://www.youtube.com/watch?v=QBxSQXbj6Go

下面是您的 sn-p 的代码和输出:

脚本:

[http_offline@greenhat-32 LEARNING]$ cat tests2.py 
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import youtube_dl

# use youtube_dl to collect the song name & artist name

youtube_url = 'QBxSQXbj6Go'
video = youtube_dl.YoutubeDL({}).extract_info(youtube_url, download=False)
song_name = video["track"]
artist = video["artist"]

print(artist, ' - ', song_name)
[http_offline@greenhat-32 LEARNING]$ 

输出:

[http_offline@greenhat-32 LEARNING]$ ./tests2.py 
[youtube] QBxSQXbj6Go: Downloading webpage
[youtube] QBxSQXbj6Go: Downloading MPD manifest
REO Speedwagon  -  Keep Pushin'
[http_offline@greenhat-32 LEARNING]$ 

youtube-dl 无法从任何视频中提取艺术家、发布日期和其他某些字段,它必须是具有描述格式的视频,如我上面提供的视频。

干杯

PS。它对你没有帮助,但他们几天前发布了一个新的 youtube-dl 版本,你可能想抓住它。

【讨论】:

    【解决方案2】:

    将用户代理设置为 Facebook 的网络爬虫似乎可以解决这个问题

    youtube_dl.utils.std_headers['User-Agent'] = "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
    

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 2022-01-03
      • 2021-06-04
      相关资源
      最近更新 更多