Open 1422384664 opened 2 years ago
可以使用另一个直播间信息API(似乎暂未收录)
https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo
例:
curl -G https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?device=phone&platform=h5&scale=3&build=10000&protocol=0,1&format=0,1,2&codec=0,1&room_id=7777
将data -> playurl_info -> playurl -> stream[i] -> format[i] -> codec[i] 中对应的 host + base_url + extra进行组合可以得到有效链接
可以使用另一个直播间信息API(看起来暂未收录)
https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo
例:
curl -G https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?device=phone&platform=h5&scale=3&build=10000&protocol=0,1&format=0,1,2&codec=0,1&room_id=7777
将data -> playurl_info -> playurl -> stream[i] -> format[i] -> codec[i] 中的host + base_url + extra进行组合可以得到有效链接
多谢大佬
直播流 URL 似乎并不必要从接口获取. 本人尝试在 DevTools 中 block 所有带 api 子串的 URL, 直播视频仍能正常播放, 且网络记录有 flv 请求. 推测可能直播流 URL 能够在本地生成并成功取流使用.
测试了普通视频, 发现屏蔽掉 api 域的请求仍能取流, 说明前端有能力生成取流的 URL (但我没能力看懂前端的js)
已经在服务端渲染的时候把地址写进去了。。。 @SessionHu
全文搜索没找到啊... 改用 curl + grep 找到了...
https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl?&cid=544957&platform=web&qn=20000&ts=1643958874 接口没失效 增加了几个必须的参数
刚刚进行了测试, 使用该接口返回的 URL 进行请求, 直接使用 curl 会返回 HTTP 403, 带上 referer 与 User-Agent 则返回 HTTP 504, 确实是已失效. 且 Web 前端也抓不到改接口了.
现在是这一个,要捕捉这个接口对于前端一窍不通的人来说,可能有点难度,但感觉这个接口已经用了一段时间了吧
https://github.com/BililiveRecorder/BililiveRecorder/commit/9865c841bdc6379a8862a206b441a7afe5e0dd84
例如这个,就可以追溯到两年前了
http://api.live.bilibili.com/room/v1/Room/playUrl?&cid=22655390&qn=10000&platform=web 这个接口解析出的播放链接播放不了了