首先感谢@xiaoxi-ij478大神的贡献,新方法目前已经在Windows、Macos、Linux、Termux跑通。为了让它多活一段时间,我会等域名挂掉再公开这个方法。
此方法仅供学习研究使用!
以下是原文:
这次先来看一下vdn返回的响应吧。
先拿一个示例请求来看看,链接是https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=04a9d0abc9234716b574504290a15352
{
"ack": "yes",
"status": "001",
"is_preview": "0",
"tag": "健康之路,冀玉华,当归,黄芪,肉苁蓉,养生药膳",
"title": "《健康之路》 20251128 用对补药来养生(上)",
"play_channel": "CCTV-10高清",
"produce": "",
"editer_name": "liyuanyuan",
"produce_id": "wxsb01",
"column": "健康之路高清",
"f_pgmtime": "2025-11-28 18:53:54",
"segments": [
{
"guid": "24f71c11a3914d05b4b9c1c143d37b42",
"title": "[健康之路]用对补药来养生(上) 当归",
"start": 56680,
"end": 765640
},
{
"guid": "0d90c19c2d9642ccb21d0e2b67e8c09d",
"title": "[健康之路]用对补药来养生(上) 黄芪",
"start": 778240,
"end": 1738720
},
{
"guid": "5651559754f043c6aec1a631ca351e2a",
"title": "[健康之路]用对补药来养生(上) 肉苁蓉",
"start": 1754400,
"end": 2298640
}
],
"image": "https://p5.img.cctvpic.com/fmspic/2025/11/28/04a9d0abc9234716b574504290a15352-1.jpg",
"cdn_info": {
"cdn_vip": "vod.cntv.lxdns.com",
"cdn_code": "VOD-MP4-CDN-CNC",
"cdn_name": "3rd网宿"
},
"video": 此处是视频分块,太长了省略
"hls_cdn_info": {
"cdn_vip": "hls.cntv.lxdns.com",
"cdn_code": "VOD-HLS-CDN-CNCNEW",
"cdn_name": "3rd网宿-新"
},
"hls_url": "https://hls.cntv.lxdns.com/asp/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048",
"asp_error_code": "0",
"manifest": {
"audio_mp3": "https://dhlsaliwx01.v.cntv.cn/asp/audio/0/4/a/9/04a9d0abc9234716b574504290a15352/mp3/main.m3u8",
"hls_audio_url": "https://dhlsaliwx01.v.cntv.cn/asp/hlsaudio/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8",
"hls_enc_url": "https://dhlsaliwx01.v.cntv.cn/asp/enc/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048&contentid=18120319242338",
"hls_h5e_url": "https://dh5wswx02.v.cntv.cn/asp/h5e/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048&contentid=15120519184043",
"hls_enc2_url": "https://dhls2.cntv.cdn20.com/asp/enc2/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048&contentid=16121029231855"
},
"client_sid": "6m9b7S7mpR/idtHcCinq+Gt6rgHi6pgkBYLN8ByFlm0=",
"public": "1",
"is_invalid_copyright": "0",
"is_protected": "0",
"is_fn_hot": "true",
"is_p2p_use": true,
"default_stream": "chapters3",
"lc": {
"isp_code": "",
"city_code": "",
"provice_code": "",
"country_code": "CN",
"ip": "100.125.151.10"
},
"is_ipad_support": "true",
"version": "0.2",
"embed": "",
"is_fn_multi_stream": false
}
先看一下它的结构吧
"ack": "yes"代表请求被成功处理
"status": "001"是视频状态,目前有四种状态代码001-004。
001代表正常,002代表前端隐藏,003代表后端删除,004代表GUID没有存在过,可能是你打错了。
"is_preview": "0"预览状态
"tag": "健康之路,冀玉华,当归,黄芪,肉苁蓉,养生药膳"标签
"title": "《健康之路》 20251128 用对补药来养生(上)"标题
"play_channel": "CCTV-10高清"频道
"produce": ""生产编号
"editer_name": "liyuanyuan"编辑姓名
"wxsb01"生产ID,这里面的wx指的应该是江苏省无锡市新吴区CNTV央视国际网络有限公司
"column": "健康之路高清"栏目名称
"f_pgmtime": "2025-11-28 18:53:54"节目时间
"segments"相关视频
"image"视频封面链接
下面是CDN信息了
CCTV现在有四种m3u8链接和一种mp4链接。我不知道为什么要编码这么多相同码率重复的版本。
"cdn_info"MP4格式的CDN链接,原来有华为和腾讯云之类的CDN,现在只剩网宿了。而且全都403了。(注意只是CDN层面的限制,后端依然有文件)
"video"视频分块,就是原来的mp4video63链接,现在已经不返回了。
"hls_url": "https://hls.cntv.lxdns.com/asp/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048"HLS的视频播放CDN链接,这个链接是给投屏用的。现在好像只剩网宿和腾讯云的CDN了,而且会强制返回最低的分辨率。最早大家就是用这种方法下载的。
"audio_mp3": "https://dhlsaliwx01.v.cntv.cn/asp/audio/0/4/a/9/04a9d0abc9234716b574504290a15352/mp3/main.m3u8"音频文件的MP3链接,应该是用于央视影音客户端听视频功能的。
"hls_audio_url": "https://dhlsaliwx01.v.cntv.cn/asp/hlsaudio/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8"音频文件的M3U8链接,应该是用于央视影音客户端听视频功能的。
"hls_enc_url": "https://dhlsaliwx01.v.cntv.cn/asp/enc/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048&contentid=18120319242338"用于央视影音电脑版APP和手机版APP在线播放视频的链接。目前无法解密。
"hls_h5e_url": "https://dh5wswx02.v.cntv.cn/asp/h5e/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048&contentid=15120519184043"用于www.cctv.com和www.cntv.cn在线播放视频的链接。2025年8月前可以解密,2025年8月后改用wasm和jvm加密,解密难度高。目前无法解密。
"hls_enc2_url": "https://dhls2.cntv.cdn20.com/asp/enc2/hls/main/0303000a/3/default/04a9d0abc9234716b574504290a15352/main.m3u8?maxbr=2048&contentid=16121029231855"用于央视影音PC版与手机版下载或缓存文件的链接。2025年11月强制降级分辨率为360p,即使用电脑或手机版本的央视影音缓存下来也是360p。可以解密。另外这个CDN拉黑了CCTVVideoDownloader这个项目所使用的UA,是专门给这个软件拉黑的,因为你把UA里面的x64改成x86都能200OK。
再后面的内容就是一些播放信息了。不过要注意的是,CCTV已经全面启用PCDN,所以你可以看到网页端有个"is_p2p_use": true。当然这个PCDN网页端很少遇到,因为现在主流浏览器都有强制HTTPS,不过要是客户端的话,那就多了,甚至还有用UDP播放视频的。
好了,讲了这么多现在讲一下怎么下载视频吧。
首先是我们目前有5个链接能下载。
- mp4是不加密的分片,用于最早的flash播放器。我不知道flash已经退役这么多年为什么CCTV还在留着这些视频。
- hls是不加密的,CDN限制了返回的分辨率。CDN回源有签名,所以不能回源改hosts下载。
- dhls/enc是完全花屏的而且所有解密逻辑都在客户端里,没有有效的方式。CDN回源无签名,但是你解不了所以没啥用。
- dhls2/enc2目前可解,但是CDN限制了返回的分辨率。CDN回源无签名,但是估计马上就要加签名。
- dh5是25年8月以前的可以解密,8月以后的视频更新了算法,新算法解密难度高,解不了。CDN回源无签名,但是你解不了所以没啥用。
对于不同时期的视频所采取的下载方法也不一样
- 下载视频之前先检查一下最原始的hls链接的视频是否花屏,如果不花屏的话算你捡到了,直接找个m3u8下载器下载然后ffmpeg合并就行。
- 2007年-2009年的分段flv和mp4视频,需要在评论区留下GUID我帮你下,或发信至[email protected],不保证成功率。
- 2009年年的m3u8链接,可以直接使用最早期不加密低分辨率hls域名下载,因为这些视频本来也没有高分辨率。
- 2010年-2025年7月的m3u8链接,最好使用dh5域名,配上老版本的CCTVVideoDownloader下载。
- 2025年8月至今的m3u8链接,只能使用本文中给出的软件下载,而且我相信这个方法也会很快挂掉。
- 2009年-2011年的mp4链接,由于缺少url中的unix时间戳,无法下载。
- 2012年至今的mp4链接,需要在评论区留下GUID我帮你下,或发信至[email protected],不保证成功率。
- 前端隐藏或者因为旧版播放器失效放不出来的视频,需要在评论区留下GUID我帮你下,或发信至[email protected],不保证成功率。
剩余的存活域名
- hls
- enc2/dh5
https://dh5.cntv.DOMAIN/asp/h5e/hls/main/0303000a/3/default/54858c9b48ab4580876cba00acde9ddc/main.m3u8DOMAIN可以为lxdns.com、cdn20.com、kcdnvip.com、qcloudcdn.comhttps://dh5AAwxBB.v.cntv.cn/asp/h5e/hls/main/0303000a/3/default/54858c9b48ab4580876cba00acde9ddc/main.m3u8AA可以为ali ws qq BB可以为01、02https://dh5AABB.v.cntv.cn/asp/h5e/hls/main/0303000a/3/default/54858c9b48ab4580876cba00acde9ddc/main.m3u8AA可以为ali ws qq BB可以为01、02
- dhls2/enc2(唯二两个高清域名)
- dhls/enc解不开,就不发了
- mp4video全挂
最后上文件
所以最后上文件点我下载使用方法还是一样的。另外我觉得它活不到年底。到时候再说吧。
还有这种方法有解不了的视频比如说https://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=054c22cc80b343489b8b87a71ef09f41(而且你会发现这个GUID少了一个m3u8链接),这种视频只能我帮你下。或者去用猫抓的浏览器缓存模式下载。
已知guid可以通过这个链接找回原来的视频播放界面。https://app.cctv.com/special/m/livevod/index.html?guid=054c22cc80b343489b8b87a71ef09f41&vtype=2
希望此方案坚持些日子,博主超众。如若方便加v以请教:601196626,谢~
建议hls补充
如果视频在网页端的布局非常简陋,则能直接获取高分辨率视频(仅能获取2024年5月31日之后的)
例:https://tv.cctv.com/2023/05/31/VIDEt5jVq0d4WAN21AF9Jyen230531.shtml(布局简陋,但只能获得低分辨率视频)
https://tv.cctv.com/2025/03/04/VIDEINEYMaovIwtg8g2V7PN5250304.shtml(布局简陋,可以获得高分辨率视频)
其实两个都限制码率了,只不过第一个限制到270p 450Kbps,第二个限制到720p 1200Kbps。这两个视频的原始码率都是2000Kbps。
第一个其实限制到了850kbps,你可以试试把450.M3U8换成850.M3U8,前面的hls/450/中的450也要换成850,这个850的流是可以直接播放的
第二个是没有限制到1200kbps的,用2000.m3u8也是可以的,只不过还是720P罢了
你这个非常简陋应该是指没有评论框和播放列表吧
这些个布局简陋的column属性和tag属性有点特殊,tag里包含特定人名的会没有评论和播放列表,column里写着”XX高清精切”的则能直接获取到不花屏的720P的M3U8链接
有720高清的,hls_url链接内容里,直接就写明了有1200.m3u8,没高清的只有个450.m3u8
感觉他们很精,有1200的其实就有2000的,只是他们故意不显示,改成2000是能用的,默认450的其实可以改成850,
这个应该是CDN侧的一个查找替换,也就是说当网宿发现一个请求是到2000/1200/850,会自动改成450然后发送到源站。所以说你在URL里面看到的码率不一定是真的码率,很有可能是被CDN动过手脚的。
我下载试过,码率是对应的码率,不过只在所谓网页画面简陋的视频生效,其他的普通视频则会被替换成低分辨率的
你最后说的解不了的视频,其实只能用4000这个流,比如https://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/054c22cc80b343489b8b87a71ef09f41/4000.m3u8
原理是play_channel这个属性如果是CCTV-4K的,需要用4000.m3u8这个流才能访问,不过只有1080P的,且没有其他清晰度可选.
经过CCTV这波屏蔽升级,现在基于cbox的解密工具的意义已经不大了,
新的视频除了标题或内容包含现任主席的视频可以通过替换hls_url中的main成2000,获取到不花屏的720P视频,其他的视频要获取到不花屏的720P恐怕只能用缓存捕捉或录屏了,
可以直接使用https://gf.qytechs.cn/zh-CN/scripts/466482这个脚本,能分析出网页能下载到的不花屏的最高清晰度,因为脚本内置下载功能,所以会直接提示是否立即下载,如果点击取消后还想用浏览器下载的,只要重新刷新一下就会提示是否下载了.
有个叫小滑轮下载器的现在还能正常解密央视的视频,但是是收费的,是electron开发的,解压看了一下,没有找到cbox那玩意,只看到一些js文件,好像是js解密的,但是没学过js看不懂他的代码逻辑,大佬看有空能不能研究一下,https://www.feiaci.com/,这是下载地址
貌似解密逻辑在他的程序resourcesappsrcmainvideoDownloadcctvVideoPlayhtmlTem.js 有177KB大小,5000多行,有点难绷
h5e可以用的,能跑通,就是解密速度比较慢
他用的基本是现在网页端解密的方法,放到了一个看不见的浏览器窗口里,顺便还抄了点https://scz.617.cn/web/202408231518.txt里的代码
从猫抓扩展提取了缓存捕捉功能,并转化成油猴脚本,match 属性现在只包含了CCTV的视频页,如有其他页面的需求,请自行添加网址
去掉了调用在线ffmpeg合并文件的代码,只支持下载音频和视频分离的文件,需要下载后自行合并
适合无法安装猫抓扩展,或者猫抓版本不兼容的浏览器
dh5cntv.a.bdydns.com这个域名已经G了,感觉ENC2接口下载失效只是时间问题,还是缓存捕捉靠谱
用这个吧
这么快就链接失效了,命令行用着还是稍微有点吃力,我打算用nwjs包装一下
貌似不太方便用nwjs包装,只能把run.js和download.js整合成一个文件了,看着清爽些
内置的ffmpeg体积有点大,其实可以用小点的版本,我的才56MB。node.msi要安装过,无法做到开箱即用,建议用单个的node.exe文件而不是安装包
现在这两个都没了
两个cdn现在均无法访问,客户端缓存现在还是标清画质(下载时大小还是高清画质的大小)
它禁止CDN把自己的客户端都给误伤了
你发的工具不完美,合并后的视频中间会出现卡顿和绿屏
估计他觉得用客户端下载视频的人少吧。反正能看就行。
你发个guid我看看是哪个视频啊
基于你的工具做了一个只需要输入视频页网址的,不需要手动获取GUID的,放到你的工具文件夹里运行带x86的那个exe文件
你可以试试效果,顺便看下有没有什么bug,
https://pan.baidu.com/s/1O8UTel-UAuftdamsaWIYVw?pwd=52pj
我找不到那个视频了,电脑重装回10了,浏览记录没了,依稀记得是cctv-15那里的某个素人唱歌的视频,但是当我在用我基于你的工具开发的工具时又无法复现这个现象了,是有点奇怪的。
win11确实烂,好多莫名其妙的bug。
博主你好,看你的方法研究了半天也没弄明白,输入对应的指令程序直接关掉了。。。GUID 是 dff5f6717ca44a06a0161153b2935e56 , 请问可以帮我下载一下最高画质么?谢谢!
通过网盘分享的文件:1767012010.mp4
链接: https://pan.baidu.com/s/1RarzFZQt_t1ohYC67HoUrw?pwd=r2dv 提取码: r2dv 复制这段内容后打开百度网盘手机App,操作更方便哦
–来自百度网盘超级会员v5的分享
drm.cntv.vod.dnsv1.com
dhls.cntv.baishancdnx.cn.bsgslb.cn
新域名
感觉这域名活不过春节那会
活不到元旦结束的
感觉找新域名的意义不大了,估计再搞下去可能就要会员或者实时更新的token了,你发的那个工具在Win10上很完美,就是不好包装成单文件,我暂时只把run.js和download.js合成了到一个index,js,用go开发的接受网址的程序感觉可以搞成图形界面,黑框框的观感还是不太好看
大佬,这个CDN地址要去哪里才能抓取到啊?
现在下载是花屏了
还是缓存法靠谱点,就是略慢,可以看看评论区里我发的那个油猴脚本