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

与 @Sophomores 折腾了一轮 CCTV / 央视频的播放和下载链路, 最后稳定跑通 战绩: 点播 直播 (央视频 1080p 直播) 回放 脚本: scripts.zip (21.4 KB) 整体思路: CCTV 点播: 从 MSE 后置边界拿 clean 数据 cctv.com 点播这条...
央视 (CCTV) 点播/直播/回放 下载脚本 | 五一快乐!
央视 (CCTV) 点播/直播/回放 下载脚本 | 五一快乐!

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

战绩:

  1. 点播

image

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

image

  1. 回放

image

脚本:

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

1 个帖子 - 1 位参与者

阅读完整话题

来源: linux.do查看原文