V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
magic3584
V2EX  ›  FFmpeg

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

  •  
  •   magic3584 · 144 天前 · 3621 次点击
    这是一个创建于 144 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    断点那个 浏览器有个跳过断点功能
    magic3584
        32
    magic3584  
    OP
       143 天前
    @bxb100 #9
    试了下, ffmpeg 403 的连接用这个能下,太 NB 了。
    请问大佬知道这个软件在其中做了什么吗?
    magic3584
        33
    magic3584  
    OP
       143 天前
    @ik #26
    也不是,我终端也设置 proxy 了
    magic3584
        34
    magic3584  
    OP
       143 天前
    @puzzle9 #31
    本地的 m3u8 文件怎么去下载呢?搜了下没找到。
    断点那个,我记得之前点了好几个按钮都是不行的
    AngryFootHair
        35
    AngryFootHair  
       143 天前
    @magic3584 试试 123 浏览器 https://v2ex.com/t/906468
    LINEX
        36
    LINEX  
       143 天前
    ffmpeg 输入参数里把 cookies 和 headers 加上
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1062 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 23:56 · PVG 07:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.