← 返回信息流
Agent SkillLINUX DO · AI·2026/4/30

央视点播直播回放下载脚本开源

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

速览

该脚本实现了央视点播、1080p直播及历史回放的稳定下载。点播与直播通过浏览器MSE后置接管媒体数据,回放则利用Android App接口直接获取HLS流。无需登录即可获取高清视频,大幅简化了媒体抓取流程。

AI 深度解读

央视 (CCTV) 点播/直播/回放 下载脚本深度解读

背景

在数字媒体内容获取领域,央视(CCTV)及央视频平台的音视频内容因其高价值和加密特性,一直是技术爱好者和开发者关注的重点。传统的抓取方式往往面临两大痛点:一是直接抓取 HLS 流容易遭遇花屏或解密失败;二是历史回放内容在 Web 端缺乏稳定的公开接口,导致自动化下载困难。

近期,LINUX DO 社区用户 @Sophomores@dkly2004 合作,针对 CCTV 点播、央视频直播以及历史回放三条链路进行了深度逆向与工程化验证。他们并未试图完全复刻官方复杂的播放器算法,而是采取了“后置接管”和“接口挖掘”的策略,成功打通了从浏览器媒体处理层到本地文件存储的完整链路,并开源了相关脚本。

核心内容

该工作流的核心在于针对不同业务场景(点播、直播、回放)采用差异化的数据捕获策略,最终统一通过 ffmpeg 进行封装或验证。

1. CCTV 点播:MSE 后置数据接管

直接抓取官方暴露的 hls_h5e_urlhls_enc_url 并不稳定,容易出现花屏。稳定方案依赖于浏览器端的 Media Source Extensions (MSE) 机制:

  • 流程:在浏览器中打开官方点播页面,让官方播放器完成正常的调度、鉴权和媒体解码处理。
  • 捕获点:在 SourceBuffer.appendBuffer 附近拦截已解密、已解码的 Clean 数据。
  • 处理:按 Seek 分段捕获数据,使用 ffmpeg -c copy 进行无损拼接生成 MP4 文件。
  • 验证:通过 decode log 验证数据完整性,已验证的大熊猫点播视频达到 720p 纯净度,decode log 为 0。

2. 央视频直播:浏览器后置实时录制

对于 1080p 高清直播,目前最稳定的方案依然是依赖浏览器链路,因为鉴权、清晰度选择、cKey 生成及解密均由官方播放器动态完成:

  • 流程:浏览器打开央视频直播页,官方播放器完成所有前置处理。
  • 接管:本地脚本接管 MSE 后置的音视频片段。
  • 输出:利用 ffmpeg 将接管的数据重新封装为本地 HLS 流。
  • 播放/保存:生成本地 HLS 地址(如 http://127.0.0.1:8899/live.m3u8),可通过 PotPlayer 播放或直接使用 ffmpeg 进行实时录制。
  • 注意:此方法为实时录制当前直播流,而非下载历史回放。

3. 央视频历史回看:Android App 接口逆向

Web 端主要暴露当前直播信息,player-apiplayurl 返回的 HLS 仅支持当前直播,添加 timeshift 参数无效且常遇 403 错误。因此,方案转向 Android App 原生接口:

  • 关键接口POST https://jacc.ysp.cctv.cn
  • 请求参数
    • cmd = 25312
    • name = PidTimeShift
    • 核心字段:pid (频道ID), sid (会话ID), starttime, endtime, stream (清晰度,如 fhd)。
  • 示例:以 CCTV1 为例,pid=600001859, sid=2024078201, stream=fhd
  • 结果:服务端返回标准的历史 VOD m3u8 文件(包含 #EXT-X-PLAYLIST-TYPE:VOD#EXT-X-PROGRAM-DATE-TIME)。
  • 优势:无需浏览器状态、无需登录、无需 Cookie 或 localStorage。获取 m3u8 后直接交给 ffmpeg remux 即可。
  • 验证:已验证过去 24h 至 23h 的 20分钟 1080p 样本,格式为 H.264/AAC,decode log 为 0。

关键要点

  • 技术路线差异化
    • 点播:利用 MSE 后置数据,避免直接下载加密 HLS 的不稳定性。
    • 直播:依赖浏览器完成复杂的鉴权和动态密钥处理,脚本仅负责数据搬运和封装。
    • 回放:绕过 Web 端限制,直接调用 Android App 内部的 PidTimeShift 接口获取原始 VOD 列表。
  • 数据完整性保障:所有方案均强调使用 ffmpeg -c copy 进行无损封装,并通过 decode log 验证数据无损坏(Log 为 0)。
  • 无需逆向播放器内核:开发者并未尝试独立复刻官方播放器的解密和调度算法,而是“站在巨人肩膀上”,在官方播放器产出可播放媒体后介入,降低了技术门槛和逆向难度。
  • 回放接口的特殊性:Web 端并不提供稳定的历史回放 URL,必须通过 App 原生接口(JCE)获取,且该接口无需认证即可访问公开的历史时段数据。
  • 开源与协作:项目由 @Sophomores@dkly2004 主导,并感谢了 GPT 5.5、DeepSeek V4 Pro、Claude Code 等 AI 工具及 JSHOOK 等辅助技术在调试过程中的帮助。

意义与影响

这一工作流的成功打通,展示了在复杂商业加密流媒体环境下,通过“侧信道”数据捕获和接口逆向获取高质量视频内容的可行性。

  1. 技术参考价值:为其他需要处理 HLS 加密、DRM 保护或动态鉴权的媒体抓取项目提供了具体的工程实践思路,特别是 MSE 后置接管和 App 接口逆向的结合使用。
  2. 内容存档与个人使用:使得用户能够方便地获取央视的高清直播录像和历史回放,对于新闻存档、节目回顾或个人媒体库建设具有实用价值。
  3. 自动化潜力:由于历史回放接口无需登录且返回标准 HLS,该方案极易集成到自动化脚本中,实现定时录制或批量下载。
  4. 社区协作典范:体现了开源社区利用 AI 辅助开发(如代码生成、调试)与人类专家逆向工程相结合的高效协作模式。

注:该脚本仅供技术研究与个人合法使用,请遵守相关法律法规及平台服务条款,不得用于商业侵权或非法传播。

查看原文 →linux.do