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()