rrubick
V2EX  ›  FFmpeg

请教大佬们,在线网站抓到 m3u8 能播放,但是用 ffmpeg 下载的时候 “403 forbidden” 或者 “Output file #0 does not contain any stream” 应该怎么解决

  •  
  •   rrubick · Jan 3, 2023 · 8605 views
    This topic created in 1407 days ago, the information mentioned may be changed or developed.

    有的网站能正常下,有的就会报错。

    使用命令如下: ffmpeg -i url -c copy output.mp4

    Supplement 1  ·  Jan 3, 2023
    还有个问题就是,有的网站我把调试打开后,直接进入断点无法正常操作。
    不了解前端,不知道怎么做可以跳过这个
    36 replies  •  2023-01-04 17:32:09 +08:00
    ysc3839
    ysc3839
    Jan 3, 2023
    1
    需要 cookie 等额外信息吧
    singerll
    singerll
    Jan 3, 2023❤️2
    2
    我只想问,你说的在线 m3u8 网站是 91 吗
    lakehylia
    lakehylia
    Jan 3, 2023
    3
    用网页音视频资源下载插件啊,需要 cookie 的
    mobaijun
    mobaijun
    Jan 3, 2023
    4
    @singerll 哈哈哈
    estk
    estk
    Jan 3, 2023 via iPhone
    5
    @singerll
    也可能是 hub 或者 5278
    rrubick
    rrubick
    OP
    Jan 3, 2023
    6
    @ysc3839 #1
    @lakehylia #3
    用了 --header $'Cookie:' 然后把浏览器里的东西拷贝进去也不行,可能我哪里没弄对
    rrubick
    rrubick
    OP
    Jan 3, 2023
    7
    @singerll #2
    @mobaijun #4
    @estk #5
    没,看的剧集。不讨论盗版,求大佬专注于技术问题。用的 mac
    fqzz
    fqzz
    Jan 3, 2023❤️2
    8
    可能有三个原因:
    1. 没有拿到真正的 ts 文件,比如 cookie
    2. m3u8 本身支持加密,可以搜下 EXT-X-KEY
    3. 有些网站会给每个 ts 套壳,比如加上 png header ,用 file 命令看他是个 png 文件
    bxb100
    bxb100
    Jan 3, 2023❤️1
    9
    我用这个 N_m3u8DL-RE
    ntdll
    ntdll
    Jan 3, 2023
    10
    @fqzz #8 第三种是标准行为嘛,因为我遇到过一些网站是这样的,我自己把 PNG 头去掉了。但是我不确定他自己的 web 播放器是不是也是这么做的,还是说这是 M3U 的标准行为,可以自己把这个头去掉?
    learningman
    learningman
    Jan 3, 2023
    11
    @gam2046 #10
    他们的播放器是这么做的
    不是标准行为,他们这么干是为了蹭公共图床
    0xsui
    0xsui
    Jan 3, 2023
    12
    去 52pojie 找 m3u8 的下载工具下载
    rrubick
    rrubick
    OP
    Jan 3, 2023
    13
    @fqzz #8
    感谢大佬。我是在剧集播放的时候,只显示 m3u8 类型的文件,然后拷贝的 url 地址去下载。有个网站之前是这种方式可以下载,后来就 403 forbidden 了,折腾了没弄好,就又转到别的网站去下载了 [笑哭]
    rrubick
    rrubick
    OP
    Jan 3, 2023
    14
    @fqzz #8

    @gam2046 #10
    另外想请教下,我把 m3u8 内容保存到本地,然后去用相同命令去下载,好像不行。。。
    tmtstudio
    tmtstudio
    Jan 3, 2023
    15
    用猫抓,chrome 应用商店就有
    churchmice
    churchmice
    Jan 3, 2023 via Android
    16
    @singerll 91 有 chrome 插件可以直接下,不过没开 vip 清晰度太差
    sobev
    sobev
    Jan 3, 2023
    17
    控制台调试有个按钮可以停用断点
    snowlyg
    snowlyg
    Jan 3, 2023
    18
    xvideo?
    blankmiss
    blankmiss
    Jan 3, 2023
    19
    token 过期了 有的 m3u8 有 token 时效性的
    blankmiss
    blankmiss
    Jan 3, 2023
    20
    要么可能就是有防盗链
    zapper
    zapper
    Jan 3, 2023
    21
    403 就是状态错乱问题,你得走他那套标准流程,不能直接弄 m3u8 。如果你只是想下点剧集,还是找个 web 插件之类比较好。你先在开发者模式下看看 m3u8 请求头带不带其他参数
    duan602728596
    duan602728596
    Jan 3, 2023 via iPhone
    22
    有可能 m3u8 里面的 ts 文件地址验证了 referrer ,你在命令行设置的 headers 只是在请求 m3u8 文件时添加了 header ,并没有在下载 ts 文件时设置了 header
    magnetar
    magnetar
    Jan 3, 2023
    23
    可以完整看下 m3u8 的请求携带的东西,一般有 cookie 或者 token 校验或者还有恶心的加密
    关闭调试断点:Chrome 控制台的 Source Tab 页点击 Deactivate breakpoints 按钮或者按下 Ctrl + f8
    b821025551b
    b821025551b
    Jan 3, 2023
    24
    直接打开 m3u8 抓里面的分片文件;
    m3u8 保存到本地大概率是不行的,很多时候用的是他们域名下的相对路径,需要你自己替换一下;
    chrome 断点问题有两种解决办法,1 是禁用断点,直接点 source 里面倒数第二个,缺点是会造成死循环,页面过一会就卡死了; 2 是找到带 debugger 的那个函数,console 里把这个函数置空:你找到的那个函数=function(){};
    iamben
    iamben
    Jan 3, 2023 via iPhone
    25
    用 yt-dlp 试试?
    ik
    ik
    Jan 3, 2023 via iPhone
    26
    还有可能在浏览器用了代理访问, 单独请求的时候直连了
    sunwei0325
    sunwei0325
    Jan 3, 2023
    27
    可能是 CDN 设置了 cookie, 比如 aws 的 cloudfront 可以设置 signed cookies
    systemcall
    systemcall
    Jan 4, 2023
    28
    先分析一下请求头,一般的小网站多半是请求头的问题
    遇到难搞的就麻烦了,有些甚至还会检测心跳包的
    wedfds
    wedfds
    Jan 4, 2023
    29
    N_m3u8DL-CLI-SimpleG
    deali
    deali
    Jan 4, 2023
    30
    @bxb100 我也是,这个真不错
    puzzle9
    puzzle9
    Jan 4, 2023
    31
    通常是 m3u8 文件带校验 里面的 ts 没有
    或许你可以尝试把 m3u8 先保存起来 再用命令去下载

    断点那个 浏览器有个跳过断点功能
    rrubick
    rrubick
    OP
    Jan 4, 2023
    32
    @bxb100 #9
    试了下, ffmpeg 403 的连接用这个能下,太 NB 了。
    请问大佬知道这个软件在其中做了什么吗?
    rrubick
    rrubick
    OP
    Jan 4, 2023
    33
    @ik #26
    也不是,我终端也设置 proxy 了
    rrubick
    rrubick
    OP
    Jan 4, 2023
    34
    @puzzle9 #31
    本地的 m3u8 文件怎么去下载呢?搜了下没找到。
    断点那个,我记得之前点了好几个按钮都是不行的
    AngryFootHair
    AngryFootHair
    Jan 4, 2023
    35
    @magic3584 试试 123 浏览器 https://v2ex.com/t/906468
    m8syYID5eaas8hF7
    m8syYID5eaas8hF7
    Jan 4, 2023
    36
    ffmpeg 输入参数里把 cookies 和 headers 加上
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 195ms · UTC 07:32 · PVG 15:32 · LAX 23:32 · JFK 02:32
    ♥ Do have faith in what you're doing.