2019/12/19

视(音)频类型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, [email protected], BL+RPU) mediainfo示例:https://pastebin.com/77rpguT3
320156 -> ?
320161 -> ? 杜比视界
320160 -> 4K h265 杜比视界(1.0, [email protected], BL+RPU) mediainfo示例:https://pastebin.com/nzLY2S3R
320164 -> 1080p h265 杜比视界(1.0, [email protected], 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, [email protected], 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)

2019/12/18

可以自己抓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

补充其他平台的参数...

标签: none

已有 12 条评论

  1. 00 00

    大佬,已知电视和网页的vid一样,但是网页最高的画质只能选1080p
    有没有办法在网页抓取电视的m3u8?
    或者判断最大画质?这里说的是单个视频

    1. 00 00

      也就是可否直接在网页,在pc端抓取4k 画质?

      1. 可以获取,毕竟解析是通过接口完成的。

        1. 00 00

          可否给个pc端能用的网页抓4k接口?
          不方便公开的话能私享吗?(大佬看的到我邮箱吧)
          天天架设备抓包腾讯4k好麻烦呀(┬_┬)
          (无需审核通过此消息)

          1. http://wuxianlin.com/android/

  2. 发现一个问题.如果用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的分辨率

  3. "spvideo":"128",

    "platform":"10303",

    其实好像只需要这个就可以获取到了,但是获取到的链接播放不了,显示未授权

    1. 可能需要加上ckey这个参数

      1. 加入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的视频

      2. 加入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的视频

        1. 不知道你的cKey是怎么算的。
          不过encryptVer、appVer和platform三者是相关联的,说明白一点就是不同平台三者搭配不一样,所以出现前面你提到的未授权的情况,因为不匹配的请求无法通过服务器的验证。
          另外encryptVer不同,对应的cKey算法也不同。
          另外提醒一下,getinfo是移动端接口。

  4. 千千万万道不明 千千万万道不明

    围观大佬惹...

添加新评论