视(音)频类型id与编码、分辨率等对应关系
首先腾讯视频的m3u8链接一般长这样:
http://101.206.186.17/moviets.tc.qq.com/AN5SbV718VX6_2HWcx7ahexT_ZdqeD3jXHJoe4mD9NKM/uwMROfz2r5xggaQXGdGnC2df54QW1RJDjotqhbRC6iUyaxmU/dWU834FFbAZywdBb92AWkZwTetnAdWHQnHhYPgN-01EWtYg2H3dR-KubOrltU-9MVh5K0uCs_vi1o8tEqEhPvpplNhhmQqTr9rPDrxorb279J7VGAN8z8BjWhZ72lx_h0A1zF3dq3lJ-1XHivHpn8WaF_FKRLhS8goQoQyZtJDY/e0033e0q9cc.322016.ts.m3u8?ver=4
- 最前面的ip是接口返回给用户的cdn ip
- moviets.tc.qq.com是m3u8资源所位于的域名
- 中间一串是变化的
- e0033e0q9cc是视频vid
- ver是m3u8版本 已知的有4和5
- 最前面通常会是
http://defaultts.tc.qq.com/defaultts.tc.qq.com/
以及http://ltsbsy.qq.com
等等 - 322016是一个和视频编码分辨率相关的参数
已知id与视频/音频对应关系:
320001 -> 普通音频(AAC)
320069 -> 1080p h265 3Mbps码率
320093 -> 1080p h264
320143 -> 1080p h265(官方标注4K 实际是伪4K 不过码率高点罢了)
320144 -> ?
320159 -> 1080p h265 杜比视界(1.0, dvhe.stn@fhd24, BL+RPU) mediainfo示例:https://pastebin.com/77rpguT3
320156 -> ?
320161 -> ? 杜比视界
320160 -> 4K h265 杜比视界(1.0, dvhe.stn@uhd24, BL+RPU) mediainfo示例:https://pastebin.com/nzLY2S3R
320164 -> 1080p h265 杜比视界(1.0, dvhe.stn@fhd24, BL+RPU) mediainfo示例:https://pastebin.com/eFzFtytv
320179 -> 1080p h265 HDR10(Apple系) mediainfo示例:https://pastebin.com/VRcJpV2M
320194 -> 1080p h265 HDR10(Android系)
320199 -> 1080p h265 杜比视界(1.0, dvhe.stn@fhd30, BL+RPU) mediainfo示例:https://pastebin.com/npqv4Hf7
321001 -> 270p h264
321002 -> 480p h264
321003 -> 720p h264
321004 -> 1080p h264
321005 -> 1080p h264(官方标注杜比视听 实际只是码率高点)
322000 -> ?
322001 -> 270p h265
322002 -> 480p h265
322003 -> 720p h265
322004 -> 1080p h265
322005 -> ?
322006 -> ?
322011 -> 270p h265
322012 -> 480p h265
322013 -> 720p h265
322014 -> 1080p h265
322016 -> 4K h265
322069 -> ?
326013 -> 杜比音效(AC3)
可以自己抓app的包看到参数
获取hdr+杜比音轨
http://vv.video.qq.com/getinfo?spptype=4,5,6,7,8,9,10,11,12&spaudio=15&spvideo=128&spwm=2&livequeue=1&defnpayver=5&hevclv=33&platform=10303&sdtfrom=v5000&vid=i0032qxbi2v&cKey=&ipstack=0&track=db&drm=104&defnsrc=3&charge=1&atime=26&spau=1&appVer=7.7.8.20476&defn=hdr10&encryptVer=5.1&dtype=3&incver=20476&newnettype=1&spsrt=1&sphls=1&otype=ojson&device=21&flowid=&clip=0&fhdswitch=0&
- 普通音频
&defn=audio
- 返回hdr链接
&defn=hdr10
- 需要返回杜比音轨时添加
&track=db
腾讯视频指定平台返回该平台支持的类型
{
"spvideo":"128",
"platform":"10303",
"sdtfrom":"v5000",
"hevclv":"33",
"appVer":"7.7.8.20476",
"encryptVer":"5.1"
}
指定&otype=ojson
或者&otype=json
,返回时会是纯json格式(没有QZOutputJson之类的),否则返回xml格式内容。
返回示例:腾讯真正HDR的链接后缀应该是320194,此处HDR不是真正的HDR,而是普通的1080,因为并没提供(?)
原来是姿势不对,根据@花村 的分享spvideo改为140则会返回HDR,如图:
TODO
补充其他平台的参数...
大佬,已知电视和网页的vid一样,但是网页最高的画质只能选1080p
有没有办法在网页抓取电视的m3u8?
或者判断最大画质?这里说的是单个视频
也就是可否直接在网页,在pc端抓取4k 画质?
可以获取,毕竟解析是通过接口完成的。
可否给个pc端能用的网页抓4k接口?
不方便公开的话能私享吗?(大佬看的到我邮箱吧)
天天架设备抓包腾讯4k好麻烦呀(┬_┬)
(无需审核通过此消息)
http://wuxianlin.com/android/
发现一个问题.如果用http://vv.video.qq.com/getinfo?spptype=4,5,6,7,8,9,10,11,12&spaudio=15&spvideo=140&spwm=2&livequeue=1&defnpayver=5&hevclv=33&platform=10303&sdtfrom=v5000&vid=i0032qxbi2v&cKey=&ipstack=0&track=db&drm=104&defnsrc=3&charge=1&atime=26&spau=1&appVer=7.7.8.20476&defn=hdr10&encryptVer=5.1&dtype=3&incver=20476&newnettype=1&spsrt=1&sphls=1&otype=ojson&device=21&flowid=&clip=0&fhdswitch=0 请求的视频只能看3分37秒,cookie我都是用的安卓的cookie..难道还有参数?还有z0033zg18xu这个vid的视频返回的比例也不对,我抓pc端的客户端抓到1920x1080的视频,但是这个只能1920x726的分辨率
"spvideo":"128",
"platform":"10303",其实好像只需要这个就可以获取到了,但是获取到的链接播放不了,显示未授权
可能需要加上ckey这个参数
加入ckey参数还是不行,,还有
http://vv.video.qq.com/getinfo?spptype=4,5,6,7,8,9,10,11,12&spaudio=15&spvideo=128&spwm=2&livequeue=1&defnpayver=5&hevclv=33&platform=10303&sdtfrom=v5000&vid=i0032qxbi2v&cKey=&ipstack=0&track=db&drm=104&defnsrc=3&charge=1&atime=26&spau=1&appVer=7.7.8.20476&defn=hdr10&encryptVer=5.1&dtype=3&incver=20476&newnettype=1&spsrt=1&sphls=1&otype=ojson&device=21&flowid=&clip=0&fhdswitch=0 这个我用我vip的cookie只能获取到720p的视频
加入ckey参数还是不行,,还有
http://vv.video.qq.com/getinfo?spptype=4,5,6,7,8,9,10,11,12&spaudio=15&spvideo=128&spwm=2&livequeue=1&defnpayver=5&hevclv=33&platform=10303&sdtfrom=v5000&vid=i0032qxbi2v&cKey=&ipstack=0&track=db&drm=104&defnsrc=3&charge=1&atime=26&spau=1&appVer=7.7.8.20476&defn=hdr10&encryptVer=5.1&dtype=3&incver=20476&newnettype=1&spsrt=1&sphls=1&otype=ojson&device=21&flowid=&clip=0&fhdswitch=0 这个我用我vip的cookie只能获取到720p的视频
不知道你的cKey是怎么算的。
不过encryptVer、appVer和platform三者是相关联的,说明白一点就是不同平台三者搭配不一样,所以出现前面你提到的未授权的情况,因为不匹配的请求无法通过服务器的验证。
另外encryptVer不同,对应的cKey算法也不同。
另外提醒一下,getinfo是移动端接口。
围观大佬惹...