iOS端(OC)获取虎牙直播真实地址
HuyaData
码云直达HuyaData (GitHub太tm卡了, 弃了)
这是一个自学的demo, 简单解析虎牙html数据, 显示直播列表, 拼接获取真实的直播地址. 获取到的地址可以直接放到IINA等app在线播放(最新版本已经内置播放器, 可以mac播放)
参考
本来我参考的不会写代码的菜鸡程序猿-解决MAC系统观看虎牙直播,发热卡顿问题。, 不过虎牙更新了最新的规则, 导致拼接的地址无法播放, 无奈继续寻找, github大佬整理的huya地址解析 它是获取https://m.huya.com的数据以后, 重新处理参数, 加密, 之后拼接新的播放地址, 不过原文是Python开发, 我这里用OC实现
开发背景
之前, 本人电脑MacBook pro 15款, 然后升级的catalina最新版
我的电脑
用谷歌浏览器看虎牙直播的时候, 风扇猛转, 分分钟温度上99, 无奈上网寻找解决方法
我在直播窗口右击, 显示的也是h5
![](https://image.shishitao.com:8440/aHR0cHM6Ly9waWMuZG93bmsuY2MvaXRlbS81ZTk5YzlhN2MyYTlhODNiZTUwM2Y0YTAuanBn.jpg?w=700)
网页
但是我发现我换Safari看直播的时候, 它让我装flash, 可能这个播放器还是用的flash
扯远了, 我找到上面参考博客, 然后博主是解析的直播页面, 拼接出直播流的url, 然后用本地播放器播放
播放器你可以选择vlc或者iina, 都行
实现
原理我知道了, 它是Python实现的, 我就想着用OC来实现. 现在Xcode支持直接开发在mac端运行的iOS应用, 所以, 我们直接上iOS
我没有所有直播都抓, 就抓了一些我常看的, 配置文件在ProTypesList.json里面, 一看就很清楚
![](https://image.shishitao.com:8440/aHR0cHM6Ly9waWMuZG93bmsuY2MvaXRlbS81ZTk5Y2EwY2MyYTlhODNiZTUwNDdiYWUuanBn.jpg?w=700)
本地配置
- 简单的网络请求, 获取数据
- 利用OCGumbo解析HTML, 教程-icc_tips-iOS解析html标签内容-OCGumbo, 这个库使用的时候, 注意gumbo文件夹中的.c文件, 在Xcode中改成Object-c file
文件修改
3. 简单解析直播列表并展示, 点击cell跳转页面获取直播网址
![](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWcuaW1nZGIuY24vaXRlbS82MDAwNTllMzNmZmE3ZDM3YjNkZGQ4MDguZ2lm.gif?w=700)
手机模拟器演示
4. 勾选了mac平台, 跑了一下, 删除了几个不支持的库, 效果还行(不过好像不支持上下滑动, 难道需要我点右边的滑动条?)
![](https://image.shishitao.com:8440/aHR0cHM6Ly9waWMuZG93bmsuY2MvaXRlbS81ZTliMWJiM2MyYTlhODNiZTVmNTZmOTguanBn.jpg?w=700)
勾选mac端
![](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWcuaW1nZGIuY24vaXRlbS82MDAwNTllMzNmZmE3ZDM3YjNkZGQ4MTIuZ2lm.gif?w=700)
mac端演示
改进
目前只有列表, 以及直播地址
还没有实现手机端播放直播的功能目前已经支持直接播放了- 我其实一开始是想实现mac端开发(ios项目勾线mac平台, 总归缺点意思), 解析到直播url的时候通过命令唤起IINA, 但是因技术局限性, 未实现, 要是大佬们知道怎么实现的, 可以联系我