B站视频下载需要用到2个接口,一个是通过Aid号获取视频基本信息和Cid号的接口,一个是通过视频Cid号获取下载地址的接口。
接口一
1
| https://api.bilibili.com/x/web-interface/view?aid=29702317
|
接口二
1
| https://api.bilibili.com/x/player/playurl?avid=29702317&cid=51686571&qn=74&otype=json
|
注意事项
- 接口二在获取视频下载地址的时候,如果没有cookie信息的话最大只能获取到480P清晰度的视频,需要用账户登录后获取其cookie里面的
SESSDATA
值(SESSDATA有效期是一个月)请求的同时还要在headers
中添加User-Agent
和Host
,具体请看下面:
1 2 3 4 5
| headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:56.0) Gecko/20100101 Firefox/56.0', 'Host': 'api.bilibili.com', 'Cookie': 'SESSDATA=bd125cdd%2C1554519358%2C6d4df231' }
|
- 在下载视频的时候,
headers
也要进行伪造,具体看下面:
1 2 3 4 5 6 7 8 9 10
| headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:56.0) Gecko/20100101 Firefox/56.0', 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate, br', 'Range': 'bytes=0-', 'Referer': 'http://www.bilibili.com/video/av46174956/', 'Origin': 'https://www.bilibili.com', 'Connection': 'keep-alive' }
|
把Referer里面的av号替换成下载的视频的aid号