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

youtube-dl配置no_check_certificate仍报SSL证书验证失败错误

youtube-dl 代码调用时SSL证书验证失败解决方案

问题表现

  • 终端执行命令 youtube-dl --no-check-certificate https://youtu.be/PsO6ZnUZI0g 可正常完成视频下载
  • 代码中调用youtube-dl时,已添加配置项 'no_check_certificate': True,执行 ydl.download(['https://youtu.be/PsO6ZnUZI0g']) 时抛出如下错误:

Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>

可行解决方法

  • 检查参数传递逻辑是否正确
    多数场景下是配置参数传入位置错误导致no_check_certificate未生效,正确写法是将配置项传入YoutubeDL构造方法,不要传入download方法:

    import youtube_dl
    
    ydl_opts = {
        'no_check_certificate': True,
        # 其余自定义配置
    }
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download(['https://youtu.be/PsO6ZnUZI0g'])
    
  • 全局跳过Python SSL证书校验
    如果参数位置正确依然报错,可在代码最开头(导入youtube_dl之前)添加如下代码,直接关闭Python全局HTTPS证书校验,效果和终端加--no-check-certificate参数完全一致:

    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    
  • 修复本地证书库
    不想全局关闭证书校验的场景,可以直接修复本地Python环境的证书信任链:

    • Mac系统自带Python环境:执行对应版本路径下的证书安装脚本,路径格式为 /Applications/Python 3.x/Install Certificates.command,将3.x替换为本地实际Python版本号
    • Conda虚拟环境:执行 conda install ca-certificates certifi 更新证书依赖
    • 原生pip环境:执行 pip install --upgrade certifi 升级证书包,操作完成后重启Python进程即可
  • 替换为维护活跃的yt-dlp分支
    原版youtube-dl已长期停止更新,大量参数逻辑、站点适配存在已知bug,yt-dlp是其兼容的活跃维护分支,参数完全对齐原版,替换成本极低:

    1. 执行 pip uninstall youtube-dl && pip install yt-dlp 完成安装替换
    2. 将代码中导入语句从 import youtube_dl 修改为 import yt_dlp as youtube_dl,其余业务代码不需要改动即可正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:36:19