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

Implement get_media_list() in User #599

Merged
merged 5 commits into from
Dec 19, 2023
Merged

Implement get_media_list() in User #599

merged 5 commits into from
Dec 19, 2023

Conversation

TZFC
Copy link
Contributor

@TZFC TZFC commented Dec 18, 2023

以medialist形式获取用户的所有视频

接口:https://api.bilibili.com/x/v2/medialist/resource/list
新增 MedialistOrder, get_media_list()
同时更新API, docs, test
部分参数(mobi_app, type,oid,otype,direction,with_current)的作用仍未知
经测试Open In Colab可以获得期望的结果
注意到:
分P视频被视为一个视频
合集被展开为多个视频

@z0z0r4
Copy link
Collaborator

z0z0r4 commented Dec 19, 2023

lowest_3_play_asc
注意到播放量最高的一个为超多分P的视频,多分P被视为同一个视频
第二个和第三个视频来自不同的合集,合集被展开了

这是什么意思?分P 会作为一个视频,合集会展开会当成多个实例?

@z0z0r4
Copy link
Collaborator

z0z0r4 commented Dec 19, 2023

oid 是单向链表的索引,和 ps 一块作用

otype 是 oid 类型

type 应该是视频类型

@z0z0r4
Copy link
Collaborator

z0z0r4 commented Dec 19, 2023

mobi_app 可以直接忽略作为定值...

direction,with_current 我在学校没法比对,试试看?

@TZFC
Copy link
Contributor Author

TZFC commented Dec 19, 2023

lowest_3_play_asc
注意到播放量最高的一个为超多分P的视频,多分P被视为同一个视频
第二个和第三个视频来自不同的合集,合集被展开了

这是什么意思?分P 会作为一个视频,合集会展开会当成多个实例?

如果多个视频是以分P的形式上传的,那么会被当成一个视频进行播放量排序(总和)、上传时间排序(p1时间)、收藏量排序(总和);如果是以合集的形式上传的,那么会展开成独立的视频进行排序。

@TZFC
Copy link
Contributor Author

TZFC commented Dec 19, 2023

mobi_app 可以直接忽略作为定值...

direction,with_current 我在学校没法比对,试试看?

direction是播放顺序,与desc列表顺序不同。如果不提供oid(默认为最后一个视频), 若direction为true则会尝试获取后面的视频,返回None。若提供oid,则会以这个oid为起点,往direction方向(true:靠近列表末尾,false:靠近列表开头, 大在末还是小在末尾由desc决定)获取想要的视频列表。
举例1:
想要获取比 oid=12345678 的视频播放少的20个视频,以播放量少到多排序:
oid: 12345678
ps: 20
direction: false (因为是少到多排序,我们想要的在靠近列表开头方向)
desc: false (播放量少到多)
sort_field: MedialistOrder.PLAY (按播放量排序)
举例2:
想要获取比 oid=12345678 的视频播放少的20个视频,以播放量多到少排序:
oid: 12345678
ps: 20
direction: true(因为是多到少排序,我们想要的在靠近列表结尾方向)
desc: true (播放量多到少)
sort_field: MedialistOrder.PLAY (按播放量排序)
实战:https://colab.research.google.com/drive/1ScCIm6ZZh9PoedUzF7uqRG70HakEFNiN?usp=sharing
with_current 控制返回的列表里是否包含给定oid本身
tid 跟我以为的不一样,并不完全是视频分区。只有0和1能返回非空结果, tid=1会排除视频tid为{17,21,172} (不全)的视频,保留{25,257} (不全)的视频,暂时归为未知吧

@TZFC
Copy link
Contributor Author

TZFC commented Dec 19, 2023

oid 是单向链表的索引,和 ps 一块作用

otype 是 oid 类型

type 应该是视频类型

type 在不为1的时候确实能获取到其它视频,但与User就无关了,应该是biz_id恰好相同了(想要视频时这里填的uid)。既然这个方法写在User,就固定为1了吧

otype 就算在使用oid的情况下, 输入任何值都能正常获取到视频。固定为默认的2了吧

@z0z0r4 z0z0r4 merged commit f22dbf2 into Nemo2011:dev Dec 19, 2023
@z0z0r4 z0z0r4 linked an issue Dec 19, 2023 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[需求] 获取用户的全部视频的 medialist
2 participants