python获取bilibili封面
2020年3月23日前AV号
通过一个api接口我们就可以通过AV号(aid)获取视频封面的地址,
即https://api.bilibili.com/x/web-interface/view?aid=
加上AV号
编写python代码如下,输入一个av号,输出该视频封面的地址
1 | import json |
BV号改动后
自 2020 年 3 月 23 日起,AV 号将全面升级为 BV 号。与纯数字的 AV 号不同,BV 号是一段由数字和大小写字母组成的字符串,经过算法自动生成。未来将统一使用 BV 号作为稿件标识。
虽说变成了BV号,但是仍然可以通过aid获取到视频封面,所以我们要先将BV号转成aid(具体分为两个步骤)
1.bvid获取cid:
https://api.bilibili.com/x/player/pagelist?bvid=(bvid)
在json的['data'][0]['cid']
里
2.用bvid和cid获取aid:
https://api.bilibili.com/x/web-interface/view?cid=(cid)&bvid=(bvid)
在json的['data']['aid']
里
注意:以上的bvid要带上前面的”BV”。
也就是说,先使用bvid获取cid,然后使用获取到的cid和原先的bvid获取到aid,最后调用以前的api获取封面。具体代码如下:
1 | import json |
本地转换bvid到aid
已经有人破解出了大致的转换算法,知乎链接:
https://www.zhihu.com/question/381784377/answer/1099438784
1 | table='fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF' |
即av号和bv互相转换。
至此,就可以获取到bilibili的视频封面地址了。之后当然也可以写一个下载器,将封面进行下载保存。
此外,再分享一些bilibili api:
获取UP主信息(视频总播放数、文章总浏览数)
https://api.bilibili.com/x/relation/stat?vmid=(UUID)
获取视频播放列表
https://api.bilibili.com/x/player/playurl?cid=(cid)&bvid=(bvid)