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 没有任何变化。
youtube-dl
已过时。由于 YouTube 往往会经常更改,因此 YTDL 必须保持最新,否则会出现此类错误。
我最近创建了一个基于 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”之类的信息...
我通过使用以下方法升级库来修复它:
pip install --upgrade --force-reinstall "git+https://github.com/ytdl-org/youtube-dl.git"
FMJUKE 的回答对我有用,谢谢!
pip install --upgrade --force-reinstall "git+https://github.com/ytdl-org/youtube-dl.git"