关于新版bilibili 接口解析
xioxin opened this issue · 18 comments
xioxin commented
bilibili新版解析直接把 url写在了html页面中 解析异常简单
也不需要UiWebView
xioxin commented
几乎移除了之前所有的swift部分的代码 简单写了个实验性的解析 纯js的
dev分支 可以跑 不过功能不完整
并且有概率报错 偶尔会不返回durl 而是返回一个dash_mpd 里面是xml格式文本 可能是灰度测试
xioxin commented
但是并没有找到正确调节清晰度的方法
Xummer commented
看了下,貌似登录才能换清晰度,但是已经设置了 cookie 不知道他们如何判断的登录,😂,打算用移动端的接口试一下。可以看下这个 SeaHOH/ykdl#250
xioxin commented
ios 下 cookie 是系统管理的 扫码登陆后 请求接口是自动附带上cookie的
Xummer commented
看来还是得去逆向下 B 站 app 😂
xioxin commented
xioxin commented
var cookieProperties = [HTTPCookiePropertyKey: String]()
cookieProperties[HTTPCookiePropertyKey.name] = "CURRENT_QUALITY" as String
cookieProperties[HTTPCookiePropertyKey.value] = "112" as String
cookieProperties[HTTPCookiePropertyKey.domain] = ".bilibili.com" as String
cookieProperties[HTTPCookiePropertyKey.path] = "/" as String
let cookie = HTTPCookie(properties: cookieProperties)
HTTPCookieStorage.shared.setCookie(cookie!)
xioxin commented
已经传到 dev分支
mengxingshifendeni commented
dalao,分支报错了!,求救
@xioxin
xioxin commented
现在这个分支还不能用 番剧暂时不能用
xioxin commented
番剧还是需要之前的方案 利用UiWebView 抓去 playurl 信息
mengxingshifendeni commented
使用原来的uiwebview貌似只能获得到自动清晰度的分辨率?
xioxin commented
@mengxingshifendeni 通过设置cookie可以修改清晰度
需要注意的是 网页前端会检查浏览器是否支持flv解码 不支持会固定返回低清的mp4资源
需要加载页面时候注入代码 伪造检查接口 才能加载高分辨率
mengxingshifendeni commented
@xioxin 请问是用的canplaytype这种方法检测支持么?通过伪造ui来避开检测?
xioxin commented
没明白什么意思
frogcjn commented
番剧页面master无法使用,点击无响应
xjbeta commented
cookies 获取durl 已失效
只能获取到视频 音频分离开来的json 但是可以选择清晰度