SocialSisterYi / bilibili-API-collect

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

视频下载地址(Playurl)Web端API的鉴权方式貌似变了 #194

Closed HashLiver closed 3 years ago

HashLiver commented 3 years ago

以前只需Cookie参数SESSDATA就行了,但现在就会返回code 412。 例如curl -s "https://api.bilibili.com/x/player/playurl?avid=170001&cid=279786&qn=80&fnval=0&fourk=1" -b "SESSDATA=xxxxxx"会返回:

{
  "code": -412,
  "message": "请求被拦截",
  "ttl": 1,
  "data": null
}

尝试加上api.bilibili.com的Cookie参数bfe_id,问题就解决了: curl -s "https://api.bilibili.com/x/player/playurl?avid=170001&cid=279786&qn=80&fnval=0&fourk=1" -b "SESSDATA=xxxxxx;bfe_id=xxxxxx"

不知道还有没有其它更好的办法。

duzhaokun123 commented 3 years ago

https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/videostream_url.md#%E8%A7%86%E9%A2%91%E6%B5%81url

> 80 1080P 高清(登录)

很明显需要登录才能获取 换低分辨率或省略(32(480P))

HashLiver commented 3 years ago

@duzhaokun123 看清楚主楼,SESSDATA就是登录用的Cookie。

duzhaokun123 commented 3 years ago

bfe_id是什么, 哪来的

HashLiver commented 3 years ago

bfe_id是什么, 哪来的

bfe_id

HashLiver commented 3 years ago

貌似今天又恢复正常了,我记得我也没对API频繁请求过(可能这个月都还没50次),B站这一套风控系统很迷。