央视 (CCTV) 点播/直播/回放 下载脚本 | 五一快乐!

Davon 2026-04-30 18:50 1

与 @Sophomores 折腾了一轮 CCTV / 央视频的播放和下载链路, 最后稳定跑通


战绩:



  1. 点播




  1. 直播 (央视频 1080p 直播)




  1. 回放



脚本:


scripts.zip (21.4 KB)


整体思路:



  1. CCTV 点播: 从 MSE 后置边界拿 clean 数据


cctv.com 点播这条, 直接抓源站 HLS 容易花屏. 一些看起来像最终地址的 hls_h5e_url / hls_enc_url, 直接下载并不稳定.


稳定方案是:




  1. 浏览器打开官方点播页面.




  2. 让官方播放器正常完成调度和媒体处理.




  3. SourceBuffer.appendBuffer 附近接管 MSE 后置数据.




  4. 按 seek 分段捕获.




  5. ffmpeg -c copy 拼接成 MP4.




  6. 用 decode log 做最终验证.




这条已经验证过大熊猫那个点播视频, 720p clean, decode log 为 0.



  1. 央视频直播: 1080p 可以, 但当前仍需要浏览器链路


央视频 1080p 直播目前稳定做法是浏览器后置接管:




  1. 浏览器打开央视频直播页.




  2. 官方播放器完成鉴权, 调度, 清晰度选择和媒体处理.




  3. 本地脚本接管 MSE 后置音视频片段.




  4. 用 ffmpeg 重新封装成本地 HLS.




  5. PotPlayer 或 ffmpeg 访问本地 HLS.




本地播放地址类似:


http://127.0.0.1:8899/live.m3u8


PotPlayer 打开这个地址就能播放. ffmpeg 打这个地址就能保存当前直播.


直播保存是实时录制当前直播, 不是下载过去回放.



直播 1080p 链路里的调度, 鉴权, cKey, 清晰度选择, 解密或解封装仍由官方播放器动态完成. 我没有独立复刻整套播放器算法, 而是在它产出可播放媒体后接管.




  1. 央视频历史回看: 反而可以不用浏览器


历史回看一开始也试过 Web/H5 路线, 但 Web 侧基本只暴露当前直播信息:




  • PC 页面主要给当前直播.




  • player-api 返回当前直播 playurl.




  • 给当前 HLS 加 timeshift 参数无效.




  • 部分 timeshift 地址 403.




  • Web 侧没有稳定暴露历史媒体 URL.




后来换方向看 Android App, 找到 App-native JCE 接口.


关键接口是:


POST https://jacc.ysp.cctv.cn
cmd = 25312
name = PidTimeShift


请求核心字段:


pid
sid
starttime
endtime
stream


以 CCTV1 为例:


pid = 600001859
sid = 2024078201
stream = fhd


stream=fhd 时服务端返回历史 VOD m3u8, 实测是 1080p 线路, 类似:


2024078203.m3u8


这个 m3u8 是标准历史 HLS, 里面能看到:


#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-PROGRAM-DATE-TIME


所以历史回看这条不需要浏览器状态, 不需要登录, 不需要 cookie, 不需要 localStorage. 拿到历史 m3u8 后直接交给 ffmpeg remux 就行.


我这边已经验证过过去 24h 到过去 23h 的 20min 1080p 样本:




  • h264




  • 1920x1080




  • 25fps




  • aac




  • decode log 为 0





目前脚本:

































能力/功能 当前状态 备注
cctv.com 点播下载 已实现 已验证 720p clean
央视频直播 1080p 下载 已实现 实时保存, 不是回放
央视频历史回看下载 已实现 可指定过去时间窗口, 已验证 1080p
PotPlayer 播放直播 已实现 本地 HLS 地址播放

安装教程 (由AI总结):


INSTALL.zip (804 字节)


感言:

在此我们感谢 GPT 5.5, DeepSeek V4 Pro, DeepSeek V4 Flash, Opus 4.6 (ermm, 算了给他面子),感谢 Claude Code, JSHOOK 等等吧,还有人类的我们 @dkly2004 和 @Sophomores

最新回复 (8)
  • 阿森纳 04-30 22:44
    3

    我想在海外看cctv5,每年世界杯奥运会欧冠之类的,还是央视最清楚,记得以前东南亚酒吧赶上一次英超,也用的cctv5的源,不知道他们怎么做到的。

  • steve 05-01 18:51
    4

    感谢佬友无私奉献分享。btw, 佬友们 五一快乐! 送1000个编程设计付费学习资源网站的永久会员! | 已完成某付费资源网站逆向, 可下所有资源这里的vip号还有多吗?私我一个,感谢

  • 轩宇 05-02 08:24
    5

    Cctv12 等几个频道不能播放吗?我试了其他好像没有多大问题,回放模式

  • pcwithus 05-03 11:49
    6

    最后都用的deepseek api处理的?ds需要像chatgpt那样破限制吗?

  • Junglecola 05-03 11:51
    7

    佬 想问问五星的源有办法搞到吗 我想看F1 ^-^

  • brother2 06-13 14:10
    9

    大佬,请问这些脚本怎么使用啊?谢谢

  • jovin 06-13 14:35
    10

    好厉害

    不过这个脚本涉及侵权啥的么,帖子要不要加权限哦

  • Henry Leo 07-05 17:48
    11

    pid = 600001859
    sid = 2024078201


    佬,哪里可以获取pid ;sid的列表呀

* 帖子来源Linux.do
返回