bilibili-API-collect
bilibili-API-collect copied to clipboard
[补充] 视频合集与列表
#367 #404 [合集视频]-https://api.bilibili.com/x/polymer/space/seasons_archives_list?mid=37737161&sort_reverse=false&season_id=1227671&page_num=1&page_size=30 [只获取系列视频]--https://api.bilibili.com/x/polymer/web-space/home/seasons_series?mid=37737161&page_num=1&page_size=10 [查询系列视频]--https://api.bilibili.com/x/series/series?series_id=2800548
[获取空间系列和合集视频]-https://api.bilibili.com/x/polymer/web-space/seasons_series_list?mid=1219456450&page_num=1&page_size=18&web_location=333.999&w_rid=03b4190fbc78ab21a46bade3e32a5064&wts=1706173818
通过这样的方法:
https://api.bilibili.com/x/polymer/web-space/seasons_series_list?mid=344849038&page_num=1&page_size=20
获取到的视频合集不全,请问应该如何解决?此 up 的合集实际应有 6 个,但是只返回了前两个
修改 page_num 参数或者 page_size 参数都没有用。
假如修改 page_num 参数,只有 page_num = 1 时有数据,之后的页面都是空的。
而 page_size 最大值为 20,超过会报错 {"code":-400,"message":"请求错误","ttl":1}
items_lists下有seasons_list(2个)和series_list(4个)
合集确实有 6 个,我之前说错了,我的问题是合集不全,你可以把 json 数据保存下来,然后用下面的 python 代码进行读取,只能读取到 29 个,每个合集都包含了一些但不全。而实际上合集的视频总数有 53 个,我认为这里应该有后面的页数。
import json
with open('content.txt', 'r', encoding='utf-8') as fp:
txt = fp.read()
data = json.loads(txt)
items_lists = data['data']['items_lists']
archives = []
for season in items_lists['seasons_list']:
archives.extend(season['archives'])
for series in items_lists['series_list']:
archives.extend(series['archives'])
print('获取archives总数:', len(archives))
获取archives总数: 29
作者空间:https://space.bilibili.com/344849038/channel/series
B站只返回最多6个最近的视频,要想得到全部视频还要在查询一遍 https://api.bilibili.com/x/series/series?series_id=485264 https://api.bilibili.com/x/polymer/web-space/seasons_archives_list?season_id=35378
对于这样的方法获取 season_id 现在没有问题了: https://api.bilibili.com/x/polymer/web-space/seasons_archives_list?season_id=35378
但是使用 series_id 获取到的视频信息只有最近的 10 个(实际应有 16 个) 应该如何解决? https://api.bilibili.com/x/series/series?mid=344849038&series_id=341793
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"meta": {
"series_id": 341793,
"mid": 344849038,
"name": "学习观",
"description": "人脑学习视频\n并非经验总结,而是演化切入的",
"keywords": [
""
],
"creator": "",
"state": 2,
"last_update_ts": 1652720585,
"total": 16,
"ctime": 1631964363,
"mtime": 1652720585,
"raw_keywords": "",
"category": 1
},
"recent_aids": [97049740, 78766364, 843420241, 90424787, 65013444, 60071067, 55513374, 54874176, 45329808, 44080562]
}
}
实际应有 16 个:https://space.bilibili.com/344849038/channel/seriesdetail?sid=341793
用 https://api.bilibili.com/x/series/archives?mid=344849038&series_id=341793&only_normal=true&sort=desc&pn=1&ps=30¤t_mid=558830935
我不理解这么一目了然的东西怎么搞这么久的,稍微 F12 搜一下 series_id 就出来了,没有 mid 的话可以先请求 api.bilibili.com/x/series/series?mid=344849038&series_id=341793 拿 meta
这个接口挺好玩的,再查一下mid,可以看到那些账号注销了,但视频没删的账号
@z0z0r4 感谢
来个人pr下呗=-=
maybe added in #1064