SocialSisterYi / bilibili-API-collect

哔哩哔哩-API收集整理【不断更新中....】
https://socialsisteryi.github.io/bilibili-API-collect/
Other
14.51k stars 1.64k forks source link

直播接口失效了 #286

Open 1422384664 opened 2 years ago

1422384664 commented 2 years ago

http://api.live.bilibili.com/room/v1/Room/playUrl?&cid=22655390&qn=10000&platform=web 这个接口解析出的播放链接播放不了了

Josh-zjx commented 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进行组合可以得到有效链接

1422384664 commented 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进行组合可以得到有效链接

多谢大佬

1422384664 commented 2 years ago

https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl?&cid=544957&platform=web&qn=20000&ts=1643958874 接口没失效 增加了几个必须的参数

SessionHu commented 2 weeks ago

直播流 URL 似乎并不必要从接口获取. 本人尝试在 DevTools 中 block 所有带 api 子串的 URL, 直播视频仍能正常播放, 且网络记录有 flv 请求. 推测可能直播流 URL 能够在本地生成并成功取流使用. 图片

SessionHu commented 2 weeks ago

测试了普通视频, 发现屏蔽掉 api 域的请求仍能取流, 说明前端有能力生成取流的 URL (但我没能力看懂前端的js)

shugen002 commented 2 weeks ago

已经在服务端渲染的时候把地址写进去了。。。 @SessionHu

SessionHu commented 2 weeks ago

全文搜索没找到啊... 改用 curl + grep 找到了...

SessionHu commented 2 weeks ago

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 前端也抓不到改接口了.

shugen002 commented 2 weeks ago

https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=164725&no_playurl=0&mask=1&qn=0&platform=web&protocol=0,1&format=0,1,2&codec=0,1,2&dolby=5&panorama=1

现在是这一个,要捕捉这个接口对于前端一窍不通的人来说,可能有点难度,但感觉这个接口已经用了一段时间了吧

https://github.com/BililiveRecorder/BililiveRecorder/commit/9865c841bdc6379a8862a206b441a7afe5e0dd84

例如这个,就可以追溯到两年前了

SessionHu commented 2 weeks ago

在该提交的版本中其实已经收录了该接口 https://github.com/SocialSisterYi/bilibili-API-collect/blob/8d956bab82eedde202c15114e07eae5d20d67c86/docs%2Flive%2Finfo.md#%E8%8E%B7%E5%8F%96%E7%9B%B4%E6%92%AD%E9%97%B4%E4%BF%A1%E6%81%AF-1 另外 #1074 中将会合并迁移直播流接口的文档