如何使用Python的Pytube库下载年龄限制的视频/音频
解决年龄限制YouTube视频的下载问题
要下载年龄限制的YouTube视频,核心是让pytube模拟已登录状态——这类视频要求账号验证才能访问,所以需要传入你的YouTube账号Cookie来绕过限制。
步骤1:获取YouTube账号的Cookie
- 用浏览器登录你的YouTube账号(确保账号已完成年龄验证)。
- 按
F12打开开发者工具,切换到「网络」标签页。 - 在搜索框输入
youtube.com,点击任意一个请求,找到「请求头」里的Cookie字段,复制完整的Cookie字符串。
步骤2:修改你的代码
把复制到的Cookie字符串填入代码,在初始化YouTube对象时传入cookie参数。以下是修改后的完整代码:
from pytube import YouTube, Playlist from moviepy.editor import VideoFileClip import os # 替换成你自己的YouTube Cookie字符串 YOUTUBE_COOKIE = "这里粘贴你复制的Cookie内容" choice = input('你想下载播放列表还是单个视频?(P,V) ') if choice == 'V': link = input("输入要下载的YouTube视频链接: ") # 初始化YouTube对象时传入cookie参数 yt = YouTube(link, cookie=YOUTUBE_COOKIE) # 显示视频详情 print("标题: ", yt.title) print("播放量: ", yt.views) print("视频时长: ", yt.length) print("作者: ", yt.author) print("评分: ", yt.rating) try: # 获取最高分辨率流 youtube_stream = yt.streams.get_highest_resolution() print("正在下载...") youtube_stream.download() print("下载完成!!") # 转换为MP3并释放资源 video = VideoFileClip(f"{yt.title}.mp4") video.audio.write_audiofile(f"{yt.title}.mp3") video.close() except Exception as e: print(f"下载失败: {str(e)}") elif choice == 'P': restricted_videos = [] restricted_videos_links = [] playlist_link = input('输入播放列表链接: ') playlist = Playlist(playlist_link) print('注意:若视频仍无法下载,可能是Cookie失效或权限不足\n') for video in playlist.videos: try: # 给每个视频对象传入cookie yt_video = YouTube(video.watch_url, cookie=YOUTUBE_COOKIE) print(f'正在下载 {yt_video.title}...') video_stream = yt_video.streams.get_highest_resolution() video_stream.download() print('下载完成.') # 转换为MP3并释放资源 new_video = VideoFileClip(f"{yt_video.title}.mp4") new_video.audio.write_audiofile(f"{yt_video.title}.mp3") new_video.close() except Exception as e: print(f'视频 {video.title} 无法下载: {str(e)}') restricted_videos.append(video.title) restricted_videos_links.append(video.watch_url) continue if restricted_videos: restricted_videos_names = '\n'.join(restricted_videos) print(f'未成功下载的视频标题:\n{restricted_videos_names}') else: print('所有视频均已下载完成!')
注意事项
- Cookie会定期失效,若出现下载失败,重新获取一次Cookie即可。
- 确保你的YouTube账号已通过年龄验证,否则即使传入Cookie也无法访问限制内容。
- 不要将你的Cookie分享给他人,这会泄露你的账号隐私。
内容的提问来源于stack exchange,提问作者LukaGujabidze
相关产品推荐
相关产品推荐

