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版本,并且应用上面的第一个方案,示例如下:
importpytubedefdownload_callback(stream, chunk, remaining): # 可选的回调函数,处理下载过程中的流、块和剩余字节数# 在这里添加您的处理逻辑passdefcomplete_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()