Pytube下载YouTube视频提示错误'streamingData'

2023-05-18 15:29:21 浏览数 (3)

亿牛云代理亿牛云代理

Pytube是一个用Python编写的工具,可以方便地从YouTube下载视频。它有以下几个优点:

  • 它没有第三方依赖,只需要标准的Python库,安装和使用都很简单。
  • 它支持多种视频格式和质量,可以根据用户的需求选择合适的视频流。
  • 它提供了命令行界面和Python API,可以灵活地集成到其他项目中。
  • 它支持下载视频列表和字幕,可以批量处理多个视频。

使用中提示错误‘streamingData’,需要注意以下两个问题:

  • 一个是在创建YouTube对象时添加use_oauth和allow_oauth_cache参数,例如:video=YT (i, use_oauth=True, allow_oauth_cache=True)。这样会要求你通过浏览器登录YouTube一次,然后就可以下载视频了。
  • 另一个是降级pytube版本或者使用yt_dlp库代替pytube,例如:import yt_dlp。这样可以避免出现streamingData的错误。

如果想下载高清视频需要使用pytube的12.0.0版本,并且应用上面的第一个方案,示例如下:

代码语言:python代码运行次数:0复制
import pytube

def download_callback(stream, chunk, remaining):
    # 可选的回调函数,处理下载过程中的流、块和剩余字节数
    # 在这里添加您的处理逻辑
    pass

def complete_callback(stream, file_path):
    # 可选的回调函数,处理下载完成后的流和文件路径
    # 在这里添加您的处理逻辑
    pass

# 亿牛云(动态转发隧道代理)爬虫代理加强版 代理IP、端口及用户名和密码认证
proxy = 'http://www.16yun.cn:31000'
username = '16YUN'
password = '16IP'

# 创建YouTube对象并设置参数
yt = pytube.YouTube("https://www.youtube.com/watch?v=video_id",
                    use_oauth=True,
                    allow_oauth_cache=True,
                    proxies={"http": proxy, "https": proxy},
                    proxy_username=username,
                    proxy_password=password,
                    on_progress_callback=download_callback,
                    on_complete_callback=complete_callback,
                    deferred=False)

# 获取最高质量的视频
video = yt.streams.get_highest_resolution()

# 下载视频
video.download()

0 人点赞