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

2020-11-03 18:17:03 +08:00
 fsq

有账号,已付费,现在是想把视频下载到本地保存,获取到 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
8569 次点击
所在节点    程序员
38 条回复
Rwing
2020-11-04 13:33:58 +08:00
@hnbcinfo 666 求教 chrome 怎么调用录屏软件?
yimity
2020-11-04 14:02:15 +08:00
@zhw2590582
@kajweb
@shenfu1991
@IDAEngine
求各位大神更详细的信息。
ixinshang
2020-11-04 14:26:03 +08:00
@hnbcinfo 能否分享一下,有几个学习视频,没法一直用电脑看,想弄到手机上。
liuze0109
2020-11-04 14:32:08 +08:00
downie 下载工具试过没?
LeeSeoung
2020-11-04 14:56:30 +08:00
把返回体里的 ts 链接全部下载后按顺序拼接在一起就是了
hnbcinfo
2020-11-04 15:49:21 +08:00
@Rwing
@ixinshang
我不是直接 Chrome 录屏的,我自己不怎么会前端,所有我用了比较笨的方法。

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


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

而且保利威视的视频,支持跑马灯的文字水印,带有当前账户的信息。不过不是嵌入到视频里的,所有很容易去掉,记得在 chrome 插件里添加去掉水印的方法在录屏
annielong
2020-11-04 18:25:47 +08:00
@ungrown 不确定,以前有类似的是光改了扩展名,实际还是视频文件,下载后直接合并就行了,这个不行,下载下来查看文件头都是 png 的
riordanw
2020-11-04 18:41:24 +08:00
可以试下,用 VLC 播放 m3u8,然后存储。
ixinshang
2020-11-04 20:39:06 +08:00
@hnbcinfo 好的 谢谢。 我再去试试其他办法
TangMonk
2020-11-04 20:47:50 +08:00
下载下来的 ts 用 AES-128 带上 key 解密就可以了,看样子没有偏移量。
TangMonk
2020-11-04 20:48:19 +08:00
之前搞过小鹅通的,差不多的
TangMonk
2020-11-04 20:50:09 +08:00
@annielong 硬编码成 png? 好奇,怎么搞的?
zouguolvyi
2020-11-05 07:34:36 +08:00
chrome 插件 stream recorder 应该可以解决你的问题
mamahaha
2020-11-05 10:51:17 +08:00
这都是分段的同时再加密的,就算你把切片都下载下来也看不了,除非你能黑掉服务器找到他的密钥文件。老老实实录屏吧。
ttimasdf
2022-03-18 16:29:37 +08:00
key 的数据变换比较复杂,调试起来也需要一定技巧,但加密是标准的加密。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/721486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX