Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[补充] 视频合集与列表 #945

Open
SOCK-MAGIC opened this issue Jan 24, 2024 · 10 comments
Open

[补充] 视频合集与列表 #945

SOCK-MAGIC opened this issue Jan 24, 2024 · 10 comments
Labels
新增/Add 添加或修改新的内容 视频/Video 接口:视频&视频相关
Milestone

Comments

@xiaoyv404 xiaoyv404 added 新增/Add 添加或修改新的内容 视频/Video 接口:视频&视频相关 labels Jan 24, 2024
@xiaoyv404 xiaoyv404 added this to the API Update milestone Jan 24, 2024
@cr941131
Copy link

cr941131 commented Apr 10, 2024

通过这样的方法:

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}

@SOCK-MAGIC
Copy link
Author

items_lists下有seasons_list(2个)和series_list(4个)

@cr941131
Copy link

cr941131 commented Apr 16, 2024

合集确实有 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
Clip_2024-04-17_00-35-36

@SOCK-MAGIC
Copy link
Author

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

@cr941131
Copy link

cr941131 commented Apr 21, 2024

对于这样的方法获取 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

@z0z0r4
Copy link
Collaborator

z0z0r4 commented Apr 21, 2024

https://api.bilibili.com/x/series/archives?mid=344849038&series_id=341793&only_normal=true&sort=desc&pn=1&ps=30&current_mid=558830935

我不理解这么一目了然的东西怎么搞这么久的,稍微 F12 搜一下 series_id 就出来了,没有 mid 的话可以先请求 api.bilibili.com/x/series/series?mid=344849038&series_id=341793 拿 meta

image

@guanzhujiaran
Copy link

这个接口挺好玩的,再查一下mid,可以看到那些账号注销了,但视频没删的账号

@cr941131
Copy link

cr941131 commented Apr 23, 2024

@z0z0r4 感谢

@z0z0r4
Copy link
Collaborator

z0z0r4 commented Apr 23, 2024

来个人pr下呗=-=

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
新增/Add 添加或修改新的内容 视频/Video 接口:视频&视频相关
Projects
None yet
Development

No branches or pull requests

5 participants