Skip to content

songs 歌曲

歌曲信息获取模块。

python
from bestdori import songs

类型定义

SongInfo 歌曲信息

歌曲详细信息字典。 all.{index}.json 信息字典为该字典中选取部分字段信息。

字段名类型描述
musicTitleList[str | None]歌曲名定长列表
tagstr歌曲种类
bandIdint歌曲乐队 ID
jacketImageList[str]歌曲封面链接列表。某些歌曲会有多个封面
publishedAtList[str | None]歌曲发布时间戳定长列表
closedAtList[str | None]歌曲下架时间戳定长列表
difficultyDict[DifficultyString, Difficulty]歌曲难度信息字典
lengthfloat歌曲时长
notesDict[DifficultyString, int]各难度谱面音符数字典
bpmDict[DifficultyString, List[BPM]]各难度谱面 BPM 信息字典
rubyList[str | None]歌曲名拼写 (平假) 定长列表
phoneticList[str | None]歌曲名拼写 (片假) 定长列表
lyricistList[str | None]作词者名定长列表
composerList[str | None]作曲者名定长列表
arrangerList[str | None]编曲者名定长列表
bgmIdint歌曲资源文件 ID
bgmFilestr歌曲资源文件名
achievementsList[Achievement]歌曲成就信息
seqint歌曲序列号
howToGetList[str | None]获取方式定长列表
descriptionList[str | None]歌曲描述定长列表

Difficulty 歌曲难度

在该类型结构中,所有标识为 NotRequired 的字段中,除字段 publishedAt 以外的字段都不会出现在通过 get_all() 方法获取到的返回值中,而必定会出现在由 get_info() 方法获取到的返回值中。

字段名类型描述
playLevelint难度等级
publishedAt NotRequiredList[str | None]难度发布时间戳定长列表 ,仅对额外添加的 SPECIAL 难度存在
notesQuantity NotRequiredint音符数
scoreC NotRequiredintC 判定分数线
scoreB NotRequiredintB 判定分数线
scoreA NotRequiredintA 判定分数线
scoreS NotRequiredintS 判定分数线
scoreSS NotRequiredintSS 判定分数线
scoreSSS NotRequiredintSSS 判定分数线
multiLiveScore NotRequiredDict[MultiLiveDifficultyField, MultiLiveScoreMap]协力演出分数信息

MultiLiveScoreMap 协力演出分数信息

字段名类型描述
musicIdint歌曲 ID
musicDifficultystr谱面难度
multiLiveDifficultyIdMultiLiveDifficultyId协力演出难度 ID
multiLiveDifficultyTypeMultiLiveDifficultyType协力演出难度类型
scoreCintC 判定分数线
scoreBintB 判定分数线
scoreAintA 判定分数线
scoreSintS 判定分数线
scoreSSintSS 判定分数线
scoreSSSintSSS 判定分数线

MultiLiveDifficultyId - Type 协力演出难度 ID 与名称对照

MultiLiveDifficultyId / MultiLiveDifficultyFieldMultiLiveDifficultyType 的对应关系。在获取到的信息中,两者的值总是一一对应的。

MultiLiveDifficultyIdMultiLiveDifficultyFieldMultiLiveDifficultyType
2001'2001''daredemo'
2011'2011''standard'
2021'2021''grand'
2031'2031''legend'

BPM 歌曲 BPM 信息

字段名类型描述
bpmfloatBPM 值
startfloatBPM 起始节拍值
endfloatBPM 结束节拍值

Achievement 歌曲成就

字段名类型描述
musicIdint歌曲 ID
achievementTypestr成就类型
rewardTypestr奖励类型
quantityint奖励数量

def get_all() async

参数名类型默认值描述
indexint0指定获取的 JSON 信息
me keywordOptional[Me]None登录用户类

获取总歌曲信息,返回以歌曲 ID 为字段名、 SongsAllInfo 为字段值的信息字典, SongsAllInfo 为从 SongInfo 中截取出的部分信息。根据 index 参数值不同,获取到的 SongsAllInfo 所包含的信息也不同。

特别地,当 index 值为 0 时,返回值为以歌曲 ID 为字段名、 NoneDict 为字段值的字典

index 可用参数值
参数值获取字段值末项字段名
0-
1musicTitle
5publishedAt
7bpm
8arranger
返回值: Dict[str, SongsAllInfo | NoneDict]

class Jacket()

歌曲封面类,包含歌曲封面相关资源整合。

属性名类型描述
urlstr封面图片链接

def init()

参数名类型默认值描述
indexint-数据包序列号
jacket_imagestr-封面图片文件名
serverServerName-封面所在服务器名称

def get_bytes() async

获取封面字节数据。

返回值: bytes

class Song()

歌曲类,包含歌曲相关资源整合。

def init()

参数名类型默认值描述
idint-歌曲 ID
me keywordOptional[Me]None登录用户类

def get_info() async

获取歌曲信息。

返回值: SongInfo

def get_jacket() async

获取歌曲封面对象列表 Jacket

返回值: List[Jacket]

def get_chart() async

参数名类型默认值描述
diffDifficultyName'expert'难度名称

获取歌曲指定难度的谱面对象。

返回值: Chart

def get_bgm() async

获取歌曲音频资源文件字节数据。

返回值: bytes

def get_comment() async

参数名类型默认值描述
limitint20获取到的帖子数量上限
offsetint0获取帖子时的偏移量
orderOrder'TIME_DESC'帖子排序方式

获取歌曲的社区评论列表。

返回值: PostList