Gr4zy
V2EX  ›  问与答

m3u8 格式视频下载 请教一下各位

  •  
  •   Gr4zy · Feb 28, 2019 · 8858 views
    This topic created in 2810 days ago, the information mentioned may be changed or developed.
    62 replies  •  2019-03-02 17:40:27 +08:00
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    1
    各位大佬麻烦一下了,需要完整数据包的话可以跟我讲声

    邮箱:Z3JhenkyMzMzQGdtYWlsLmNvbQ==
    599316527
    599316527
    Feb 28, 2019
    2
    WordTian
    WordTian
    Feb 28, 2019 via Android
    3
    按一般大厂的套路来说的话,你还是先把 signature 字段的生成规则逆出来再说吧
    shuangyeying
    shuangyeying
    Feb 28, 2019
    4
    貌似网课手机端可以离线。
    whwlsfb21
    whwlsfb21
    Feb 28, 2019
    6
    ffmpeg.exe -i "%url%" -bsf:a aac_adtstoasc -codec copy %filename%
    ryanlid
    ryanlid
    Feb 28, 2019
    7
    用 ffmpeg 下载

    放个我的链接 😀
    https://lidong.me/blog/ffmpeg-download-ts/
    lyminghao
    lyminghao
    Feb 28, 2019
    8
    用过下面这个,还不错:
    https://github.com/nilaoda/M3U8-Downloader
    ThirdFlame
    ThirdFlame
    Feb 28, 2019
    9
    idm 自动解析 直接下
    hundan
    hundan
    Feb 28, 2019 via Android
    10
    @WordTian 不用 在签名没过期的时候下载转码就行了
    Valyrian
    Valyrian
    Feb 28, 2019
    11
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    12
    @ThirdFlame 想請教一下 IDM 如何下載 m3u8 的視頻呢,嘗試下載,好像不太會用

    @ryanlid
    @whwlsfb21
    @599316527 好像不太會用 ffmpeg,不會用 m3u8 文件批量下載,可能是因爲每個 ts 文件帶不同簽名?想請教一下
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    13
    使用 FFmpeg 批量下載 ts 的時候是不帶簽名這些參數的,
    請問一下有沒有什麼辦法可以帶參數下載呢?
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    14
    @hundan
    @WordTian 一個視頻有大幾百個 ts 分段,手工下載太麻煩。。


    @whwlsfb21 需要帶簽名什麼的才可以訪問 ts 分段。。求教
    hundan
    hundan
    Feb 28, 2019 via Android
    15
    @Gr4zy 你要下的是 m3u8 文件 不是下载 ts 文件
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    16
    折騰了好幾天了,眼看就快過期了,是不是權重太低大家看不到啊。。。
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    17
    @hundan 下好了 m3u8 文件,但是沒有 ts 文件就無法在本地播放視頻吧

    但 ts 文件帶參,有點難辦,是不是要模擬瀏覽器要簽名呢?
    hundan
    hundan
    Feb 28, 2019 via Android
    18
    @Gr4zy 我解释不动了 你留个联系方式叭 我明天帮你下 ……
    crab
    crab
    Feb 28, 2019
    19
    没必要下载成 ts 格式啊,直接 ffmpeg 指定去下 m3u8 转 mp4。
    crab
    crab
    Feb 28, 2019
    20
    ffmpeg 大了点,可以用 gohls.exe
    hundan
    hundan
    Feb 28, 2019 via Android
    21
    m3u8 打开就是在线播放源 不出意外的话 里面就是带 sign 的 拿到 m3u8 用 ffmpeg 转成 mp4 就可以了
    Gr4zy
    Gr4zy
    OP
    Feb 28, 2019
    22
    @hundan 一樓有我郵箱地址,大佬不介意的話發郵箱可以嗎。。。

    m3u8 文件下載下來大概是長這樣,URI 那裏做了點模糊處理。。。

    https://paste.ubuntu.com/p/6N4jkPrBxd/

    但是把 m3u8 導入 ffmpeg 中會直接訪問 ts 鏈接。。。

    問題描述里抓包是有後綴的。。

    先感謝下大家的熱心
    binux
    binux
    Feb 28, 2019 via Android
    23
    @Gr4zy 你怎么就听不懂呢,ffmpeg 边下载边合并就行了啊
    hundan
    hundan
    Mar 1, 2019 via Android
    24
    O ……明白你的点了…… m3u8 里是不带签名的 是前端带上的……这个要么就是手动把链接换成浏览器里抓到的带签名的,要么调试一下 js,找找加签名的地方,改改自用……
    都是有点麻烦的 我就不掺和了 加油
    hundan
    hundan
    Mar 1, 2019 via Android
    25
    照理说可以用 idm 嗅探视频 ts 批量下载 然后下到本地之后 再把 m3u8 里的视频链接改成本地的 然后用 ffmpeg 转成 mp4
    不知道里面那个 key 有没有带参的 最好把 key 也下载过来
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    26
    @crab
    @hundan
    @binux

    ffmpeg 下載輸出大概如下這樣,不清楚邊下載邊合併會不會不一樣,但是這樣操作完全訪問不了 ts 文件的樣子

    https://paste.ubuntu.com/p/wTNQ6CFVsN/

    如同問題描述裏一樣,實際上要帶後綴才能訪問 ts 文件,像這樣

    https://video.xxx.xxx/yugu-live/yugucamp5PJ4/2018-10-04-18_50_57_2018-10-04-20_02_20_HD_0.ts?OSSAccessKeyId=77VpRAQE2xbIU9LM&Expires=1551390104&Signature=pNPydf1F0CZTmJDWNwCmxT94Bn8%3D

    這裏的 OSSAccessKeyId 應該是阿里的吧,好像這個後綴是不變的

    瀏覽器抓包發現,在訪問 ts 之前有訪問類似下面這樣的鏈接

    https://class.xxx.com.cn/live/signReplay?url=https:%2F%2Fvideo.xxx.xxx%2Fyugu-live%2Fyugucamp5PJ4%2F2018-10-04-18_50_57_2018-10-04-20_02_20_HD_0.ts

    應該是一對一關係。。。

    系統說我回覆太頻繁了,1800s 不能發言,有點想用郵件。。

    手動來操作完全下不完啊。。太多了

    不是很明白前端。。所以也不太清楚是不是前端加的

    有沒有可能寫一個腳本抓包,把瀏覽器訪問的 ts 文件識別並下載呢?
    可是技術棧不太符合。。只會 C/C++應該沒救。。

    idm 嗅探不太會用。key 具體指什麼呢? m3u8 加密用的 key 是在 m3u8 文件裏那項嗎?

    m3u8 裏的 URI 是完整的鏈接,打開會是這樣:
    �Z|F.&�z�QG�۲ �
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    27
    @hundan 剛才用 idm 試過,這種帶簽名的 idm 說是受保護的文件,無法下載

    寫腳本抓包也許可行?只是我太弱不會。。
    Gua
    Gua
    Mar 1, 2019❤️1
    28
    下载个录屏软件,录!
    mYYnSmiTEQWcCwAr
    mYYnSmiTEQWcCwAr
    Mar 1, 2019 via Android
    29
    咦 不科学啊 如果是前端生成 signature 签名的话
    是不是意味着 oss 的密钥也给了前端
    如果真这么蠢的话 就可以直接下载这 oss 所有资源了
    Nasei
    Nasei
    Mar 1, 2019
    30
    就是说这东西的下载并不是通用流程而是访问 ts 时带参数了? 那你得先知道每个 ts 后面的参数是怎么得到的, 然后就可以写脚本了.
    下载完成之后还得用那个 m3u8 里的 key 解下密, 这个我之前找到过可以用的脚本 https://paste.ubuntu.com/p/mgnQRT6wHs/
    binux
    binux
    Mar 1, 2019 via Android
    31
    看起来播放器不是标准 m3u8 播放,还进行了签名
    jiangnanyanyu
    jiangnanyanyu
    Mar 1, 2019 via Android
    32
    我觉得录屏不错
    leis1015
    leis1015
    Mar 1, 2019 via iPhone
    33
    m3u8 直接 chrome 浏览器地址栏输入就可以下载来了啊,直接就能播放…
    只要你的地址正确…
    反正斗鱼虎牙的直播视频都直接下的
    d5
    d5
    Mar 1, 2019 via iPhone
    34
    带上 cookies 和 header 头访问,一般 token 都允许客户端在短时间反复用
    d5
    d5
    Mar 1, 2019 via iPhone
    35
    另外 33 楼说的没错……淘宝的宝贝视频可以直接打开了另存为视频
    bbq777aass
    bbq777aass
    Mar 1, 2019 via Android
    36
    Cốc Cốc 浏览器,直接下载成 mp4
    yingfengi
    yingfengi
    Mar 1, 2019 via Android
    37
    试试 firefox+videodownloadhelper
    okface
    okface
    Mar 1, 2019
    38
    @binux 老哥,问一句 pyspider 的分布式部署的问题,是否是在内网主机上搭建同样的 pyspider 环境然后 slave 监听 master 的任务队列就可以? slave 只启动 fetcher 和 processor 就行。谢谢🙏
    binux
    binux
    Mar 1, 2019❤️1
    39
    @okface #38 是
    okface
    okface
    Mar 1, 2019
    40
    @binux 那请问如何验证 slave
    okface
    okface
    Mar 1, 2019
    41
    @binux 那请问如何验证 slave 的机器确实在抓 master 的任务呢~,slave 的 processor 的日志确实监听到了队列,master 的任务会收到返回一个字段说哪个任务是 slave 抓取的嘛。什么情况下才会触发 slave 呢,高并发?
    binux
    binux
    Mar 1, 2019❤️1
    42
    @okface #41 pyspider 不存在 master, 只有 scheduler,你可以认为所有任务都是 slave 抓的
    okface
    okface
    Mar 1, 2019
    43
    @binux 测试成功啦,(访问 httpbin 发现返回的是两个服务器的 IP 地址)
    特别感谢。
    ifxo
    ifxo
    Mar 1, 2019
    44
    这个格式可能下载不了吧
    mingl0280
    mingl0280
    Mar 1, 2019
    45
    firefox 下使用 Video Downloadhelper,下 m3u8 视频毫无压力……
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    47
    @yingfengi
    @mingl0280 之前试过一次,好像不行,应该是签名后缀这些问题,Video Downloadhelper 可以带这些参数访问吗?今晚回去再试一下好了。。


    @d5
    @leis1015
    @binux
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    48
    这个签名好像是访问另一个网站给的,具体链接形式在 26 楼有抓包。。

    每个 ts 文件后面的签名都不同,OSS 的 key 倒是相同
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    49
    @leexy 抱歉没有 52pojie 的账号。。用不了这个
    不过下面第一个回复 逍遥一仙 的下载器之前试过了,用不了

    具体的签名方式应该就是像 26 里的链接和问题描述那样
    mingl0280
    mingl0280
    Mar 1, 2019 via Android
    50
    @Gr4zy VDH 是直接用你当前的 cookie,用浏览器模拟访问的,这个一般都能用……
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    51
    @shuangyeying
    只有网页端呢。。

    @rolitter 这个大概是 ffmpeg 和 aria2 的命令行封装吧。。试过了,不行。不过还是感谢了


    @mingl0280 倒是可以看到文件,但是不能自己下载,要手动一个个下。。感觉和抓包下载一样。
    有大几百个 ts 分段。。手动有点累

    下载下来的 m3u8 文件打开是 22 楼链接里贴的那样
    mingl0280
    mingl0280
    Mar 1, 2019 via Android
    52
    @Gr4zy 他那个插件有个客户端程序,如果你装了的话是可以自动下的
    Gr4zy
    Gr4zy
    OP
    Mar 1, 2019
    53
    @mingl0280 行,我晚上回家去试一下
    iro
    iro
    Mar 1, 2019
    54
    macOS 下面的 Downie 可以自动下载并合并
    Telegram
    Telegram
    Mar 1, 2019
    55
    我感觉楼上有几位可能想的简单了,我也搞过几个类似的网课视频下载,有些很简单,可以直接抓到 m3u8 地址,然后批量下载片段 ts 合并就行了。
    像楼主这种,可能是服务器用了签名认证的,就算下载来了,也不一定在本地能播放,网站那个播放器貌似自带解密的
    d5
    d5
    Mar 1, 2019 via iPhone
    56
    总之,客户端能正常播放的,一定有办法弄下来的,也有很多浏览器插件,最不济屏幕录像成了吧
    goodan
    goodan
    Mar 1, 2019
    57
    ios 不是自带录屏功能么
    安卓早就有了吧
    heiyutian
    heiyutian
    Mar 2, 2019
    59
    @liuguang 你好,商店下不了了,能导出一下吗?
    liuguang
    liuguang
    Mar 2, 2019❤️1
    60
    上面的地址可能有问题,用这个地址
    https://chrome.google.com/webstore/detail/iogidnfllpdhagebkblkgbfijkbkjdmm

    插件名叫 stream recorder,使用的很简单先打开页面,播放视频,他的图标会变成大红点,点击进行下载
    会弹出一个新页面,慢慢的下载,页面注意别关了,然后所有的 ts 文件下载好了之后,点击 save 保存
    只支持 m3u8
    liuguang
    liuguang
    Mar 2, 2019❤️2
    61
    插件好像下线了。。。。这是目录打包
    链接: https://pan.baidu.com/s/1YzmHzH2Q4iEr05kOvAesVA 提取码: 5ivt
    heiyutian
    heiyutian
    Mar 2, 2019
    62
    @liuguang 非常感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1673 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 13:22 · PVG 21:22 · LAX 05:22 · JFK 08:22
    ♥ Do have faith in what you're doing.