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

怎么下载付费的加密视频(有已付费的账号)

  •  
  •   fsq · 2020-11-03 18:17:03 +08:00 · 8498 次点击
    这是一个创建于 1467 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有账号,已付费,现在是想把视频下载到本地保存,获取到 m3u8 文件如下:

    #EXTM3U</br>
    #EXT-X-VERSION:3</br>
    #EXT-X-MEDIA-SEQUENCE:0</br>
    #EXT-X-ALLOW-CACHE:YES</br>
    #EXT-X-KEY:METHOD=AES-128,URI="https://hls.videocc.net/f8f97d17d0/b/f8f97d17d0fb9c02969e6eca2f6a13eb_2.key",IV=0x6955c16d9422a4cf93633f5974ea84a0</br>
    #EXT-X-TARGETDURATION:13</br>
    #EXTINF:5.080000,</br>
    https://ab-dts.videocc.net/f8f97d17d0/4/1592411664781/b/6a/13/eb_2/f8f97d17d0fb9c02969e6eca2f6a13eb_2_0.ts?pid=1604394927408X1704589&device=desktop</br>
    #EXTINF:5.000000,</br>
    https://ab-dts.videocc.net/f8f97d17d0/4/1592411664781/b/6a/13/eb_2/f8f97d17d0fb9c02969e6eca2f6a13eb_2_1.ts?pid=1604394927408X1704589&device=desktop</br>
    。。。省略后面部分
    

    我可以下载到 key 文件,然后要怎么操作?我把 m3u8 文件中的 key 换成本地路径:

    #EXT-X-KEY:METHOD=AES-128,URI="./f8f97d17d0fb9c02969e6eca2f6a13eb_2.key",IV=0x6955c16d9422a4cf93633f5974ea84a0</br>
    

    然后用 ffmpeg 下载成 mp4,如下:

    ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,https,crypto,tcp,tls" -i f8f97d17d0fb9c02969e6eca2f6a13eb_2.m3u8 a.mp4
    

    然后报错:

    Error when loading first segment 'https://ab-dts.videocc.net/f8f97d17d0/4/1592411664781/b/6a/13/eb_2/f8f97d17d0fb9c02969e6eca2f6a13eb_2_0.ts?pid=1604394927408X1704589&device=desktop'
    f8f97d17d0fb9c02969e6eca2f6a13eb_2.m3u8: Invalid data found when processing input
    
    38 条回复    2022-03-18 16:29:37 +08:00
    fsq
        1
    fsq  
    OP
       2020-11-03 18:26:36 +08:00
    看源代码有 https://player.polyv.net/script/player.js ,是用的保利威视加密的?
    chendy
        2
    chendy  
       2020-11-03 18:28:50 +08:00
    录屏怎么样?
    flewsea
        3
    flewsea  
       2020-11-03 18:55:54 +08:00
    印象中他们用的加密是非标准的方式。需要自己去逆向 js 分析
    6J73U552K5UVij4R
        4
    6J73U552K5UVij4R  
       2020-11-03 22:39:04 +08:00 via iPhone
    @fsq 这一家我之前试过,挺复杂的。但是应该可以,难道是技术升级了?
    yuzo555
        5
    yuzo555  
       2020-11-03 22:50:13 +08:00
    F12 模拟手机客户端试试。
    这种第三方视频平台加密一般很垃圾
    learningman
        6
    learningman  
       2020-11-04 00:55:14 +08:00
    有改 chromium 源码直接输出的,你找找
    kajweb
        7
    kajweb  
       2020-11-04 01:51:11 +08:00
    录屏吧。
    feast
        8
    feast  
       2020-11-04 02:03:02 +08:00
    可能是 HLS 需要特殊参数
    zhw2590582
        9
    zhw2590582  
       2020-11-04 07:43:50 +08:00
    js 就能录屏,就几行代码就能实现,任何加密都是浮云
    shenfu1991
        10
    shenfu1991  
       2020-11-04 08:26:36 +08:00 via iPhone
    Chrome 插件就能下载,只要你能播放
    hnbcinfo
        11
    hnbcinfo  
       2020-11-04 08:40:22 +08:00   ❤️ 1
    我想起了,之前在蓝铅笔上报名的绘画班,因为没时间看直播,想着,下载下来看。试了好多方法,就是不行,用的就是楼主看的网站上的 videocc.net 的保利威视的视频方案,看过官网的文档,每段视频都是单独的加密方案,基本可以说是无解。

    最后,我选择了录屏,简单写了个 Chrome 脚本去调用录屏软件进行录屏和保存,家里电脑开了一天多录完了。只要网络可以,不出现那种加载中的状态,录屏还是可以的。
    annielong
        12
    annielong  
       2020-11-04 09:17:53 +08:00
    一般有 key 有 vi 属于标准加密吧,见过一个视频网站才是真加密,不用 key 和 vi,直接把 ts 硬编码成 png 格式,
    siknet
        13
    siknet  
       2020-11-04 09:21:55 +08:00 via Android
    用安卓端的 UC 浏览器登录看看,自带下载功能
    saar
        14
    saar  
       2020-11-04 09:45:48 +08:00
    saar
        15
    saar  
       2020-11-04 09:46:30 +08:00
    少打了个 4...,go /t/292974
    xinghen57
        16
    xinghen57  
       2020-11-04 09:54:30 +08:00 via iPhone
    ffmpeg 转录
    oree
        17
    oree  
       2020-11-04 11:02:06 +08:00
    NETFLIX 如何录屏?
    wunonglin
        18
    wunonglin  
       2020-11-04 11:15:46 +08:00
    拿手机录下来就行了啊
    IDAEngine
        19
    IDAEngine  
       2020-11-04 13:26:14 +08:00 via iPhone
    直接在底层下手,av 模块改一改
    IDAEngine
        20
    IDAEngine  
       2020-11-04 13:26:51 +08:00 via iPhone
    把裸 h265/265 提取下来
    Rwing
        21
    Rwing  
       2020-11-04 13:33:58 +08:00
    @hnbcinfo 666 求教 chrome 怎么调用录屏软件?
    yimity
        22
    yimity  
       2020-11-04 14:02:15 +08:00
    @zhw2590582
    @kajweb
    @shenfu1991
    @IDAEngine
    求各位大神更详细的信息。
    ixinshang
        23
    ixinshang  
       2020-11-04 14:26:03 +08:00
    @hnbcinfo 能否分享一下,有几个学习视频,没法一直用电脑看,想弄到手机上。
    liuze0109
        24
    liuze0109  
       2020-11-04 14:32:08 +08:00
    downie 下载工具试过没?
    LeeSeoung
        25
    LeeSeoung  
       2020-11-04 14:56:30 +08:00
    把返回体里的 ts 链接全部下载后按顺序拼接在一起就是了
    hnbcinfo
        26
    hnbcinfo  
       2020-11-04 15:49:21 +08:00
    @Rwing
    @ixinshang
    我不是直接 Chrome 录屏的,我自己不怎么会前端,所有我用了比较笨的方法。

    1 、录屏软件,我用的 Captura,配置好开始和停止录屏的快捷键。
    2 、开发了一个 windows 程序,超级简单,只用来接收请求,并发送全局模拟按键,通过快捷键调用录屏软件。
    3 、我写了 chrome 插件判断每个视频的播放开始和结束,开始时,发送一个 http 请求给 windows 程序,视频播放结束时,发送一个 http 请求给 windows 程序,同时切换到下一个视频。


    Captura 是开源的,本来想着在它的基础上开发一下的,后来还得读源码,放弃了,就用了这种曲线救国的方式,比较笨,但是开发的快啊,一个小时就能搞定。
    ungrown
        27
    ungrown  
       2020-11-04 15:53:25 +08:00
    @annielong #12 那不是为了白嫖国内的 CDN 用的套路吗
    Cy86
        28
    Cy86  
       2020-11-04 15:54:27 +08:00
    hnbcinfo
        29
    hnbcinfo  
       2020-11-04 15:54:30 +08:00
    @hnbcinfo 同时还得处理下,如果模拟点击的方式切换视频会有退出全屏的问题,录屏起来就不好看了。
    保利威视有文档,可以看看他们播放器的代码,很容易做到通过执行 js 切换视频。然后在播放页面,提前获取了视频的 Id,视频结束,直接切换即可。

    而且保利威视的视频,支持跑马灯的文字水印,带有当前账户的信息。不过不是嵌入到视频里的,所有很容易去掉,记得在 chrome 插件里添加去掉水印的方法在录屏
    annielong
        30
    annielong  
       2020-11-04 18:25:47 +08:00
    @ungrown 不确定,以前有类似的是光改了扩展名,实际还是视频文件,下载后直接合并就行了,这个不行,下载下来查看文件头都是 png 的
    riordanw
        31
    riordanw  
       2020-11-04 18:41:24 +08:00
    可以试下,用 VLC 播放 m3u8,然后存储。
    ixinshang
        32
    ixinshang  
       2020-11-04 20:39:06 +08:00
    @hnbcinfo 好的 谢谢。 我再去试试其他办法
    TangMonk
        33
    TangMonk  
       2020-11-04 20:47:50 +08:00 via iPad
    下载下来的 ts 用 AES-128 带上 key 解密就可以了,看样子没有偏移量。
    TangMonk
        34
    TangMonk  
       2020-11-04 20:48:19 +08:00 via iPad
    之前搞过小鹅通的,差不多的
    TangMonk
        35
    TangMonk  
       2020-11-04 20:50:09 +08:00 via iPad
    @annielong 硬编码成 png? 好奇,怎么搞的?
    zouguolvyi
        36
    zouguolvyi  
       2020-11-05 07:34:36 +08:00
    chrome 插件 stream recorder 应该可以解决你的问题
    mamahaha
        37
    mamahaha  
       2020-11-05 10:51:17 +08:00
    这都是分段的同时再加密的,就算你把切片都下载下来也看不了,除非你能黑掉服务器找到他的密钥文件。老老实实录屏吧。
    ttimasdf
        38
    ttimasdf  
       2022-03-18 16:29:37 +08:00
    key 的数据变换比较复杂,调试起来也需要一定技巧,但加密是标准的加密。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2659 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:17 · PVG 14:17 · LAX 22:17 · JFK 01:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.