# CCTV CDN 地理封锁与API技巧

## 背景

CCTV(央视网)的2026世界杯比赛回放/集锦托管在**网宿海外CDN**(Wangsu/CDNetworks)上。
该CDN使用WSSEA(Web Services Security for Edge Authentication)协议进行防盗链，
并从海外IP请求时返回403 Forbidden。

## 已知可工作的GUID模式

CCTV比赛页面URL格式：
```
https://worldcup.cctv.com/2026/match/<match_id>/index.shtml
https://sports.cctv.com/2026/06/14/<video_id>.shtml
```

页面中会嵌入多个GUID(32位十六进制字符串)，对应不同类型的视频内容：

| GUID对应的视频类型 | 时长 | 用途 |
|---|---|---|
| 全场回放 | 6000s+ (约100分钟) | 完整比赛 |
| 集锦(Highlight) | 200-320s (3-5分钟) | 进球+精彩片段 |
| 单球片段 | 60-80s | 单个进球/事件的独立片段 |

## API端点

查询视频信息：
```
https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=<GUID>
```

返回关键字段：
- `title`: 视频标题
- `video.totalLength`: 时长(秒)
- `hls_url`: HLS流URL
- `manifest.hls_h5e_url`: H5播放器HLS流URL（含contentid参数）
- `manifest.hls_enc_url`: 加密HLS流URL
- `asp_error_code`: "0"表示正常
- `is_protected`: "1"表示有防盗链保护

## 服务端返回示例(200 OK, 但CDN拒付)

```
{"ack":"yes","status":"001","title":"[世界杯]C组第1轮：巴西VS摩洛哥","video":{"totalLength":"320.52"},... }
```

但HLS URL实际访问时返回403。需要国内IP或Token才能获取视频流。

## 变通方案

1. **换源到腾讯视频** - yt-dlp + Tencent Video成功率最高
2. **换源到Dailymotion** - 用户上传的集锦，yt-dlp可下载，但可能画幅不对
3. **YouTube** - 需cookies.txt文件绕过机器人检测
4. **国内代理** - 通过国内VPS/代理转发请求
