无法提取uploader_id

问题描述 投票:0回答:4
import youtube_dl

def download_youtube_video(url):
    ydl_opts = {
        'format': 'bestvideo+bestaudio/best',
        'outtmpl': '%(title)s.%(ext)s',
    }
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        try:
            info_dict = ydl.extract_info(url, download=True)
            video_title = info_dict.get('title', None)
            print(f"Downloaded '{video_title}' successfully!")
        except Exception as e:
            print("An error occurred during the download:")
            print(str(e))

video_url = 'https://www.youtube.com/watch?v=nWxB9yiYAgo'
download_youtube_video(video_url)

返回: 错误:无法提取上传者 ID;请在 https://yt-dl.org/bug 报告此问题。确保您使用的是最新版本;请参阅https://yt-dl.org/update了解如何更新。请务必使用 --verbose 标志调用 youtube-dl 并包含其完整输出。

我在这里缺少什么?

我尝试更改代码结构几次。使用链接本身调用 YouTube_dl 没有任何变化。

python youtube-dl
4个回答
0
投票

youtube-dl
已过时。由于 YouTube 往往会经常更改,因此 YTDL 必须保持最新,否则会出现此类错误。


0
投票

我最近创建了一个基于 tkinter 的 YouTube 下载器应用程序,并遇到了同样的问题。

由于 youtube-dl 已经过时,我们必须使用其最新的分支 yt-dlp。 确保已安装,否则运行: pip install yt-dlp

这是工作代码:

import yt_dlp

url = "<<your video url>>"

video_info = yt_dlp.YoutubeDL().extract_info(url, download = False)
title = video_info.get("title", "YouTube video")

在此示例中,我们提取视频的标题。如果由于某种原因未提供,我们将使用默认标题“YouTube 视频”。用同样的方法我们可以提取诸如“fps”之类的信息...


0
投票

我通过使用以下方法升级库来修复它:

pip install --upgrade --force-reinstall "git+https://github.com/ytdl-org/youtube-dl.git"

0
投票

FMJUKE 的回答对我有用,谢谢!

pip install --upgrade --force-reinstall "git+https://github.com/ytdl-org/youtube-dl.git"

© www.soinside.com 2019 - 2024. All rights reserved.