源码和打包好软件
前言
前几天再找直播源头,使用到了咪咕视频这个平台,在解析咪咕视频直播流接口的时候,发现其vip视频是可以突破的。
视频解析接口
在请求m3u8 文件前,我发现了一个接口https://webapi.miguvideo.com/gateway/playurl/v3/play/playurl?contId=608807416&rateType=3&startPlay=true
返回值:


其中接口中的
contId :视频id其实就是url中的cid rateType : 视频分辨率,数字越大分辨率越高,而如果没有会员的用户可以获得最高的分辨率就是 720p,这里值得一说的是如果请求头加入

这个参数,才可以获得720p的分辨率,否者获得最高的分辨率只有 540p。
关于付费的破解
咪咕视频是否付费有以下4种:
- {'code': 'FREE_LIMIT', 'msg': '限免'}
- {'code': 'VIP', 'msg': 'VIP'}
- {'code': 'USE_TICKET', 'msg': '用券'}
- 完全免费
而限免和免费都是可以直接播放的。
用券和 VIP是不能播放的。
下面请求到付费或VIP视频的 m3u8文件中内容:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXTINF:11.580,
5102308925_5005109660_56.mp4_0-0.ts?msisdn=20210301014326ba9dc40f5d254b8a85eb0612263ca014&mdspid=&spid=800033&netType=0&sid=5500832854&pid=2028600496×tamp=20210301014326&Channel_ID=0132_10010001005&ProgramID=657876036&ParentNodeID=-99&preview=1&playseek=000000-000600&assertID=5500832854&client_ip=60.17.70.67&SecurityKey=20210301014326&mvid=5102308925&mcid=1007&mpid=130000130131&playurlVersion=SJ-A1-4.3.1&userid=&jmhm=&videocodec=h264&encrypt=bd9738d23b2c0c827b2ccc12a459abb9&hls_type=2&HlsSubType=2&HlsProfileId=0&FreePlay=1&mtv_session=ad38583321e68526076c20ad6d356d00
省略n行。。。。。
5102308925_5005109660_56.mp4_0-146.ts?msisdn=20210301014326ba9dc40f5d254b8a85eb0612263ca014&mdspid=&spid=800033&netType=0&sid=5500832854&pid=2028600496×tamp=20210301014326&Channel_ID=0132_10010001005&ProgramID=657876036&ParentNodeID=-99&preview=1&playseek=000000-000600&assertID=5500832854&client_ip=60.17.70.67&SecurityKey=20210301014326&mvid=5102308925&mcid=1007&mpid=130000130131&playurlVersion=SJ-A1-4.3.1&userid=&jmhm=&videocodec=h264&encrypt=faa37c31aaf6e290c73a4b24f7398220&hls_type=2&HlsSubType=2&HlsProfileId=0&FreePlay=0&mtv_session=ad38583321e68526076c20ad6d356d00
我拿出了一个视频个开头ts 和结尾ts文件地址,那么视频可以试看6分钟的,就说明开头和结尾有什么区别,导致了结尾不能看。
经过对比我发现 FreePlay=0 就会禁止看,而 FreePlay=1 就可以看。那么事情就简单了,只需要修改后面所有的ts文件中FreePlay=1 就可以突破用券和VIP的限制了。
软件编写
根据上一步提出的解决方案, 我刚开始编写了 生成一个 本地的 m3u8 文件,当然是需要拼接主域名和路径后的,然后播放的时候发现只有 vlc 会把我生成的文件当成一个视频来播放,而 mpv 或 potplayer 会当成播放列表来播放(在切换ts流的时候明显会卡顿,因为没有预缓存)。我有想到使用网页播放,但是会有跨域问题,解决的都不太好,最后我使用 flask框架建立一个服务端,然后结合Native HLS Playback 进行播放,效果还可以,很流畅。

界面有点丑(我也懒得改了),不过主要是功能方面还是够用了
软件的使用及功能
1.使用
如果要流畅使用我写的软件,建议安装浏览器插件 Native HLS Playback
软件名字为 main.exe 直接双击, 然后允许防火墙即可(需要建立服务监听端口),然后在 浏览器中访问 http://127.0.0.1 就可以使用了,复制播放界面的 url , 然后粘贴到输入框后回车就可以解析了,另外如果你手机和 电脑在一个局域网,也可以使用扫描二维码的方式播放。
2.功能
- 破解VIP限制
- 破解用券限制
- 解析直播视频流
可以解析咪咕视频的所有视频
其他
为了解决播放我生成的 m3u8 文件的问题,所以才使用 服务端 + 浏览器 这种方案来编写的这个软件,另外就是我昨天学了flask 框架,正好练练手。 如果要修改界面样式及其布局可以在 templates 文件中进行修改,其中包含 html js css。
另外放几个我在手机上抓包得到的直播界面的cid吧,都可以解析
CCTV3综艺:609017193
CCTV4中文国际高清:672924435
CCTV3综艺:609017193
CCTV2财经高清:672926537
CCTV5体育:641886657
CCTV6电影:608919883
CCTV7国防军事高清:673168121
CCTV8电视剧:673168121
CCTV9纪录高清:673168140
CCTV10科教高清:624878405
CCTV11戏曲高清:672923822
CCTV12社会与法高清:673168185
CCTV13新闻:672922360
CCTV14少儿高清:624878440
CCTV15音乐高清:673168223
CCTV17农业农村高清:673168256
CCTV1综合:608807427
CCTV2财经:635492309
CCTV4中文国际:672924423
CCTV4欧洲高清:608807419
CCTV4美洲高清:608807416
CCTV7国防军事:609018153
CCTV11戏曲:672923835
CCTV12社会与法:672923842
<font color="red">软件及其源码我已经放在文章的开头了 </font>
|