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

使用Pytube下载YouTube视频时遇url_encoded_fmt_stream_map错误求助

解决Pytube的url_encoded_fmt_stream_map错误

我之前也踩过这个坑,这个错误基本都是因为YouTube更新了流媒体的格式映射规则,而你的Pytube版本没跟上,或者旧的API调用方式已经失效了。给你几个亲测有效的解决办法:

  • 先升级Pytube到最新版
    YouTube的接口经常迭代更新,旧版本的Pytube肯定会出现解析失败的问题。打开终端运行这个命令:

    pip install --upgrade pytube
    

    注意:如果之前装的是pytube3这类分支包,建议先卸载再安装官方的pytube,分支的维护速度通常跟不上官方节奏。

  • 替换废弃的first()方法
    新版本的Pytube已经弃用了first()这个方法,继续使用会导致解析逻辑出错。你可以换成更明确的调用方式:
    比如直接下载最高分辨率的视频:

    from pytube import YouTube
    yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
    yt.streams.get_highest_resolution().download()
    

    如果只想下载合并好的MP4格式视频(不用后续转码),可以这样筛选:

    yt.streams.filter(file_extension='mp4', progressive=True).get_highest_resolution().download()
    
  • 处理区域/登录限制
    如果视频有区域限制或者需要登录才能观看,单纯的解析会失败。可以试试开启OAuth授权:

    from pytube import YouTube
    yt = YouTube(
        'http://youtube.com/watch?v=9bZkp7q19f0',
        use_oauth=True,
        allow_oauth_cache=True
    )
    yt.streams.get_highest_resolution().download()
    

    第一次运行会弹出浏览器让你登录YouTube授权,授权成功后会缓存凭证,下次就不用重复操作了,能绕过很多登录/区域限制。

  • 检查网络环境
    如果你的网络用了代理或者VPN,可能会干扰Pytube的解析请求。可以暂时关掉代理,或者确保代理能正常访问YouTube的API接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:37:30