You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用youtube_dl下载年龄限制视频报错,如何程序化解决?

问题描述

我编写了如下Python代码:

from youtube_dl import YoutubeDL

videos = [...]

with YoutubeDL() as ydl:
    ydl.download(videos)

运行时出现如下错误:

WARNING: unable to download video info webpage: HTTP Error 410: Gone
ERROR: Sign in to confirm your age
This video may be inappropriate for some users.
Traceback (most recent call last):
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/extractor/youtube.py", line 1731, in _real_extract
    raise ExtractorError(reason, expected=True)
youtube_dl.utils.ExtractorError: Sign in to confirm your age
This video may be inappropriate for some users.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/onur/PycharmProjects/youtube_video_downloader/main.py", line 53, in <module>
    ydl.download(videos)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 2068, in download
    res = self.extract_info(
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 847, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 885, in process_ie_result
    return self.extract_info(ie_result['url'],
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 847, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 933, in process_ie_result
    return self.__process_playlist(ie_result, download)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 1067, in __process_playlist
    entry_result = self.__process_iterable_entry(entry, download, extra)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 1076, in __process_iterable_entry
    return self.process_ie_result(
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 885, in process_ie_result
    return self.extract_info(ie_result['url'],
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 824, in wrapper
    self.report_error(compat_str(e), e.format_traceback())
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 628, in report_error
    self.trouble(error_message, tb)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 598, in trouble
    raise DownloadError(message, exc_info)
youtube_dl.utils.DownloadError: ERROR: Sign in to confirm your age
This video may be inappropriate for some users.

请问如何通过程序化方式登录以验证年龄,或者彻底避免该错误?我哪里操作有误?


解决方案

核心原因说明

你没写错代码,问题出在youtube-dl已经停止维护,对YouTube最新的年龄验证、反爬机制支持不足,导致无法获取受年龄限制的视频资源。

方案1:切换到yt-dlp(优先推荐)

yt-dlp是youtube-dl的活跃分支,持续更新,对YouTube的新兼容更好,多数情况下能直接绕过普通年龄验证,也支持通过登录cookie解决强制验证问题:

  1. 安装yt-dlp:
pip install yt-dlp
  1. 修改代码,用法和youtube-dl基本一致:
from yt_dlp import YoutubeDL

videos = [...]

with YoutubeDL() as ydl:
    ydl.download(videos)
  1. 若仍遇年龄验证,导入浏览器登录后的cookie:
    • 用浏览器登录YouTube并完成年龄验证,用插件导出Netscape格式的cookie文件
    • 在代码中配置cookie路径:
    ydl_opts = {
        'cookiefile': '/你的cookie文件路径/cookies.txt'
    }
    with YoutubeDL(ydl_opts) as ydl:
        ydl.download(videos)
    

方案2:给youtube-dl传入cookie(不推荐)

如果非要用youtube-dl,也可以通过传入登录cookie绕过验证,但因为库已停更,可能还是会遇到其他兼容问题:

  1. 导出浏览器的YouTube cookie为Netscape格式
  2. 修改代码配置:
ydl_opts = {
    'cookiefile': '/你的cookie文件路径/cookies.txt'
}
with YoutubeDL(ydl_opts) as ydl:
    ydl.download(videos)

方案3:确认视频权限

有些视频强制要求登录验证年龄,这种情况下必须使用已通过年龄验证的YouTube账号cookie才能下载,没有其他绕过方法。


内容的提问来源于stack exchange,提问作者mchd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:45:50