欢迎光临
我们一直在努力

基于HTTP协议分析央视视频接口:请求签名机制逆向拆解

之前写过央视视频加密原理和Python爬取实战,这篇更深入一步——拆解央视App的接口请求签名机制。如果你好奇工具内部到底是怎么跟央视服务器"对话"的,这篇文章给你答案。

一、抓包环境搭建

工具:Charles + 安卓手机(已Root)

电脑运行Charles,开启HTTP代理,端口设为8888
手机WiFi设置代理,指向电脑IP:8888
手机安装Charles证书(安卓需Root后装系统证书)
打开央视App,播放一个视频
在Charles里按域名筛选,重点关注 api.cntv.cn 这个域名的请求。

二、核心接口分析

播放视频时,央视App会请求以下接口:

GET https://api.cntv.cn/video/getVideoInfo
关键参数:

参数名含义是否必须
pid视频唯一标识是
tsp当前时间戳是
vc签名校验值是
uid用户标识否
vid视频子标识否
前三个是必须的,缺一个都会返回403。

三、签名算法逆向

核心难点在 vc 参数。通过反编译央视App的APK,定位到签名生成函数:

java

// 伪代码,已脱敏
public static String generateVC(String pid, String tsp) {
String salt = “cctv_2026_salt_key”; // 固定盐值
String raw = pid + salt + tsp;
String vc = MD5(raw).substring(0, 16);
return vc;
}
签名逻辑总结:

拼接 pid + 固定盐值 + 时间戳
做一次MD5
取前16位作为vc值
四、Python复现签名生成

python

import hashlib
import time

def generate_vc(pid: str, tsp: str = None) -> str:
“”“生成央视接口签名参数vc”“”
if tsp is None:
tsp = str(int(time.time()))
salt = “cctv_2026_salt_key”
raw = pid + salt + tsp
md5 = hashlib.md5(raw.encode()).hexdigest()
return md5[:16]

def build_request(pid: str) -> dict:
“”“构建完整请求参数”“”
tsp = str(int(time.time()))
vc = generate_vc(pid, tsp)
return {
“pid”: pid,
“tsp”: tsp,
“vc”: vc
}
五、请求接口获取视频地址

python

import requests

def get_video_info(pid: str) -> dict:
params = build_request(pid)
headers = {
“User-Agent”: “CNTV_APP/3.0.0 (Android)”,
“Referer”: “https://tv.cctv.com/”
}
resp = requests.get(
“https://api.cntv.cn/video/getVideoInfo”,
params=params,
headers=headers
)
return resp.json()

使用示例

pid = “你的视频PID”
info = get_video_info(pid)
print(info)
返回的JSON中包含 videoList 字段,里面是各清晰度的视频地址。

六、注意事项

盐值可能更新:央视每次大版本更新可能会换盐值,这也是为什么旧工具会失效。当前盐值适用于2026年7月版本。

请求频率限制:同一IP短时间内请求超过30次/分钟会被临时封禁。建议加 time.sleep(2) 控制频率。

UA必须模拟App:用浏览器的UA请求会被拒绝,必须带上央视App的User-Agent。

tsp时间窗口:服务器验证tsp跟当前时间的差值不能超过60秒,超过则签名失效。所以签名必须实时生成,不能缓存。

七、总结

央视接口签名的核心就是 MD5(pid + salt + tsp) 取前16位,逻辑不复杂但如果不做逆向分析很难猜到。目前CCTV视频下载器v18内部就是实现了这套签名逻辑,封装成了图形界面工具。如果不想自己写代码,可以直接用现成工具,在盘资源基地(cc.ewp.cc)可以找到。
https://pan.baidu.com/s/1ynh0u6YsLXXVP4GKKMC6RA?pwd=aa28 提取码: aa28

赞(0)
未经允许不得转载:171主机测评 » 基于HTTP协议分析央视视频接口:请求签名机制逆向拆解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址