首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

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

  •  
  •   Gr4zy · 49 天前 · 2587 次点击
    这是一个创建于 49 天前的主题,其中的信息可能已经有所发展或是发生改变。
    62 回复  |  直到 2019-03-02 17:40:27 +08:00
        1
    Gr4zy   49 天前
    各位大佬麻烦一下了,需要完整数据包的话可以跟我讲声

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

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

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


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

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

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

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

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

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

    先感謝下大家的熱心
        23
    binux   48 天前 via Android
    @Gr4zy 你怎么就听不懂呢,ffmpeg 边下载边合并就行了啊
        24
    hundan   48 天前 via Android
    O ……明白你的点了…… m3u8 里是不带签名的 是前端带上的……这个要么就是手动把链接换成浏览器里抓到的带签名的,要么调试一下 js,找找加签名的地方,改改自用……
    都是有点麻烦的 我就不掺和了 加油
        25
    hundan   48 天前 via Android
    照理说可以用 idm 嗅探视频 ts 批量下载 然后下到本地之后 再把 m3u8 里的视频链接改成本地的 然后用 ffmpeg 转成 mp4
    不知道里面那个 key 有没有带参的 最好把 key 也下载过来
        26
    Gr4zy   48 天前
    @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�۲ �
        27
    Gr4zy   48 天前
    @hundan 剛才用 idm 試過,這種帶簽名的 idm 說是受保護的文件,無法下載

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


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

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

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

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


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

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

    插件名叫 stream recorder,使用的很简单先打开页面,播放视频,他的图标会变成大红点,点击进行下载
    会弹出一个新页面,慢慢的下载,页面注意别关了,然后所有的 ts 文件下载好了之后,点击 save 保存
    只支持 m3u8
        61
    liuguang   47 天前   ♥ 1
    插件好像下线了。。。。这是目录打包
    链接: https://pan.baidu.com/s/1YzmHzH2Q4iEr05kOvAesVA 提取码: 5ivt
        62
    heiyutian   47 天前
    @liuguang 非常感谢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3020 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 10:55 · PVG 18:55 · LAX 03:55 · JFK 06:55
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1