xioxin / biliATV

bilibili apple tv app
GNU General Public License v3.0
173 stars 32 forks source link

关于新版bilibili 接口解析 #24

Closed xioxin closed 2 years ago

xioxin commented 6 years ago

bilibili新版解析直接把 url写在了html页面中 解析异常简单 也不需要UiWebView

xioxin commented 6 years ago

几乎移除了之前所有的swift部分的代码 简单写了个实验性的解析 纯js的 dev分支 可以跑 不过功能不完整

并且有概率报错 偶尔会不返回durl 而是返回一个dash_mpd 里面是xml格式文本 可能是灰度测试

xioxin commented 6 years ago

但是并没有找到正确调节清晰度的方法

Xummer commented 6 years ago

看了下,貌似登录才能换清晰度,但是已经设置了 cookie 不知道他们如何判断的登录,😂,打算用移动端的接口试一下。可以看下这个 https://github.com/zhangn1985/ykdl/issues/250

xioxin commented 6 years ago

ios 下 cookie 是系统管理的 扫码登陆后 请求接口是自动附带上cookie的

Xummer commented 6 years ago

看来还是得去逆向下 B 站 app 😂

xioxin commented 6 years ago

image

可以看到 已关注 状态是能获取到的 账号是正常登陆了的

xioxin commented 6 years ago

image 啊 哈 搞定了 设置了下cookie

        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 6 years ago

已经传到 dev分支

mengxingshifendeni commented 6 years ago
2018-09-01 10 12 20

dalao,分支报错了!,求救 @xioxin

xioxin commented 6 years ago

现在这个分支还不能用 番剧暂时不能用

xioxin commented 6 years ago

番剧还是需要之前的方案 利用UiWebView 抓去 playurl 信息

mengxingshifendeni commented 6 years ago

使用原来的uiwebview貌似只能获得到自动清晰度的分辨率?

Xummer commented 6 years ago

@xioxin GJ

xioxin commented 6 years ago

@mengxingshifendeni 通过设置cookie可以修改清晰度 需要注意的是 网页前端会检查浏览器是否支持flv解码 不支持会固定返回低清的mp4资源 需要加载页面时候注入代码 伪造检查接口 才能加载高分辨率

mengxingshifendeni commented 6 years ago

@xioxin 请问是用的canplaytype这种方法检测支持么?通过伪造ui来避开检测?

xioxin commented 6 years ago

没明白什么意思

frogcjn commented 5 years ago

番剧页面master无法使用,点击无响应

xjbeta commented 5 years ago

cookies 获取durl 已失效 只能获取到视频 音频分离开来的json 但是可以选择清晰度