全程交给 AI,不写一行代码,本地复现 CCTV 视频播放链路的一次实战记录
本帖最后由 逗逗苍穹 于 2026-4-24 21:38 编辑## 前言
参考文章
- (https://www.52pojie.cn/thread-1875225-1-1.html)
- (https://www.52pojie.cn/thread-1882587-1-1.html)
- (https://www.52pojie.cn/thread-2052017-1-1.html)
- (https://www.52pojie.cn/thread-1940562-1-1.html)
- (https://www.52pojie.cn/thread-1957747-1-1.html)
- [某视频站wasm 分析](https://mp.weixin.qq.com/s/aCN84875VEzhNbJB5inbjg)
- (https://www.52pojie.cn/forum.php?mod=viewthread&tid=2094716&highlight=wasm)
这篇文章想想讨论一个的问题是:
> 面对 CCTV 这种已经上了 `wasm + vmp`、并且明显依赖会话状态推进的播放链路,AI 能不能在几乎不手写代码的前提下,把浏览器里的真实播放流程一步步对齐到本地,最终实现本地播放?
我的结论是:
> 能,而且效果比预想中更强。
## 环境准备
- Chrome DevTools MCP
- Codex
- 可用的 GPT-5.4 账号
## 一、先说结论
这篇文章真正想讨论的,不是单纯“某个视频网站怎么解密”,而是想验证一件事:
> AI 到底能不能自动补环境、自动试错、自动收敛,把一个复杂的播放加密链路从浏览器搬到本地,并做到可用?
这次最终达成的结果是:
- 成功拿到目标 `m3u8`
- 在本地完成解密、分段 `mux` 和整体 `concat`
- 输出可播放的 `mp4`
- 但还不是完全无损复刻:浏览器里仍有部分状态没有 `100%` 对齐,少量 `NAL` 依然可能异常,所以个别位置仍会出现局部花屏、异常帧或短暂画面瑕疵
所以这篇文章的重点,不是“有没有把所有边角都抠到完全一致”,而是:
> 面对这种复杂链路,AI 已经能把问题从“完全黑盒”推进到“本地可用”。
至少从这次实验来看,这一点已经被验证了。
## 二、为什么选 CCTV 这类目标
如果只是普通站点、普通播放器、普通 `AES` 流,这个实验的意义其实没有那么大。
因为很多站点的前端保护强度并不高,逻辑也比较直。
但 CCTV 这套链路不一样。实际接触下来,它至少有几个比较“硬”的特点:
1. 不是简单的固定 `key` 解密。
2. 浏览器真实播放过程中有 `wasm` 参与。
3. 存在 `vmpTag` 这种明显依赖会话状态推进的机制。
4. 同一个 `NAL`,在不同状态下结果并不稳定。
5. 不是抓一个包下来,本地调用一下就能 `1:1` 复现。
也就是说,这不是那种“看一眼 `JS` 变量、抄一下 `key`、直接完事”的目标。
从逆向角度看,这已经算是比较难啃的一类前端播放链路。
所以我才觉得,这个场景特别适合拿来验证 AI 的能力。
如果 AI 连这种级别的链路都能逐步收敛到本地可播放,那么对于其它那些没有这么严、没有这么重状态机、没有这么复杂 `wasm` 参与的网站,难度只会更低。
## 三、这次最有价值的,不是“解出来了”,而是“AI 真的能补环境”
这次我一路让 AI 去补:
- `mediaTagID`
- `Date.now()`
- `new Date()`
- `performance.now()`
- `pageHref`
- `workerHref`
- `location.origin`
- `blob worker` 的 `href / pathname / protocol`
后面甚至把浏览器 `main worker` 的主线程 `postMessage` 序列抓下来,在本地按顺序重放。
虽然最终还没有做到浏览器和本地每一个 `vmpTag` 都完全一致,但这个过程已经足以证明一件事:
> AI 在“运行环境复刻”这件事上的效率非常高。
这点非常重要。
很多时候真正难的,并不是某个函数本身,而是:
- 这个函数究竟在什么环境下运行
- 前面多少步状态已经推进
- 浏览器真实会话里到底传了什么参数
而这些,恰恰是传统人工逆向里最花时间、最烦、也最容易漏细节的部分。
这次 AI 在这里的表现,确实很强。
## 四、这次没有完全对齐浏览器,但并不影响对 AI 的判断
原因很简单。这次的目标并不是做一个教科书式的完美复刻,而是看:
> 面对一个复杂的 `wasm / vmp` 前端播放加密链路,AI 能不能把问题从“完全黑盒”推进到“本地可用”。
答案已经很明确了:它不仅能推进,而且推进得很快。
## 五、真正让我觉得震撼的地方
### 1. 它真的可以把高难度链路往本地搬
以前一提到这种链路,第一反应通常都是:
- 太复杂
- 要盯很多 `JS`
- 要看 `wasm`
- 还要补浏览器环境
- 状态机一乱就全乱
但这次实际体验是,只要你能不断给 AI 提供反馈,它就真的可以持续往前推。
### 2. 它不是只能做低门槛站点
很多人会觉得,AI 能处理的,最多只是一些没什么对抗强度的网站。
但这次面对的是:
- `wasm`
- `vmpTag`
- worker 状态推进
这种链路本身就已经不算简单。
如果连这种级别都能本地复现到可播放,那么对于其它一些没有这么严、没有这么复杂、没有这么重状态控制的网站,结果其实是可以预期的。
最近Anthropic 最新发布的 Claude Mythos,因为Anthropic觉得太危险,不能给普通用户用,得先给大公司用,让他们做好防护。当时看到嗤之以鼻,以为是噱头,现在看来,也不全是了
## 六、尝试复原算法
1. 先补环境,尽可能把浏览器中的播放逻辑扣到本地,并让下载到的 `ts` 可以正常播放。
2. 再把 `wasm` 通过 `wasm2js` 转成 `js`,让 AI 去替换原本的 `wasm` 调用链。
3. 最后让 AI 自动插桩、自动分析关键路径,逐步逼近具体算法。
## 七、分享 Skill
我把这次调试和对齐过程总结成了一个 `skill`,方便后面重复使用。
有兴趣的话,可以自己去试一下:
`https://wwaxz.lanzoul.com/iuUON3n2fh9a`
## 后记
- (https://www.52pojie.cn/thread-2103854-1-1.html) minjun 发表于 2026-4-12 15:18
这种链路本身就已经不算简单。
如果连这种级别都能本地复现到可播放,那么对于其它一些没有这么严、没有 ...
;www;www;www{:1_921:}{:1_921:}{:1_921:}估计就是AI 这种链路本身就已经不算简单。
如果连这种级别都能本地复现到可播放,那么对于其它一些没有这么严、没有这么复杂、没有这么重状态控制的网站,结果其实是可以预期的。
换句话说,这次真正让我有判断依据的,不是“它一次就全做对了”,而是它在复杂链路里已经表现出了很强的补环境、对状态、自动试错和持续收敛能力。我感觉这句也是ai写的
axeofluban 发表于 2026-4-15 11:42
不管怎么样,膜拜一下,年纪大了,看这种技术文章,没看完十行就打瞌睡了
谢谢!不过确实车轱辘话有点多了,过几天写篇详细的 emdel 发表于 2026-4-15 12:43
太强了,前几天需要爬CCTV的切片视频做素材,下载下来不是低画质就是乱码,后面另辟蹊径去其他转载网站才下 ...
是的,cctv是加密的,放在nal层了 ai是真的新产力工具啊 AI发展越来越快,是时候突破人类潜能极限了 看到这个,相到了 矛和盾 的故事,谢谢楼主的分享,很有启发! greendays 发表于 2026-4-13 09:21
用的啥模型啊?claude 4.6?gpt5.4?
gpt5.4+codex+Chrome DevTools MCP 本帖最后由 m_h 于 2026-4-12 15:13 编辑
{:1_918:} 重点是结尾的 skill,以后这种逆向活 只会越来越靠向AI 。
当AI 成为依赖 ,所有软件工作方式逻辑都被实现一次。{:1_926:}还有啥可玩的吗? minjun 发表于 2026-4-12 15:18
这种链路本身就已经不算简单。
如果连这种级别都能本地复现到可播放,那么对于其它一些没有这么严、没有 ...
哈哈哈,猜的真准,就是ai写的 看着这个AI都是万能了 AI都是万能了,看到AI拔玉米苗有点想笑 太强了大佬 这么好的东西才发现。