跳转至

singer

歌手相关 API

AreaType

Bases: Enum

地区

  • ALL: 全部
  • CHINA: 内地
  • TAIWAN: 台湾
  • AMERICA: 美国
  • EUROPE: 欧美
  • JAPAN: 日本
  • KOREA: 韩国

GenreType

Bases: Enum

风格

  • ALL: 全部
  • POP: 流行
  • RAP: 说唱
  • CHINESE_STYLE: 国风
  • ROCK: 摇滚
  • ELECTRONIC: 电子
  • FOLK: 民谣
  • R_AND_B: R&B
  • ETHNIC: 民族乐
  • LIGHT_MUSIC: 轻音乐
  • JAZZ: 爵士
  • CLASSICAL: 古典
  • COUNTRY: 乡村
  • BLUES: 蓝调

SexType

Bases: Enum

性别

  • ALL: 全部
  • MALE: 男
  • FEMALE: 女
  • GROUP: 组合

TabType

TabType(tab_id: str, tab_name: str)

Bases: Enum

Tab 类型

  • WIKI: wiki
  • ALBUM: 专辑
  • COMPOSER: 作曲
  • LYRICIST: 作词
  • PRODUCER: 制作人
  • ARRANGER: 编曲
  • MUSICIAN: 乐手
  • SONG: 歌曲
  • VIDEO: 视频
Source code in qqmusic_api/singer.py
def __init__(self, tab_id: str, tab_name: str) -> None:
    self.tab_id = tab_id
    self.tab_name = tab_name

get_singer_list async

get_singer_list(area: AreaType = ALL, sex: SexType = ALL, genre: GenreType = ALL) -> list

获取歌手列表

PARAMETER DESCRIPTION
area

地区.Defaluts to AreaType.ALL

TYPE: AreaType DEFAULT: ALL

sex

性别.Defaluts to SexType.ALL

TYPE: SexType DEFAULT: ALL

genre

风格.Defaluts to GenreType.ALL

TYPE: GenreType DEFAULT: ALL

RETURNS DESCRIPTION
list

歌手列表

Source code in qqmusic_api/singer.py
async def get_singer_list(
    area: AreaType = AreaType.ALL,
    sex: SexType = SexType.ALL,
    genre: GenreType = GenreType.ALL,
) -> list:
    """获取歌手列表

    Args:
        area:  地区.Defaluts to AreaType.ALL
        sex:   性别.Defaluts to SexType.ALL
        genre: 风格.Defaluts to GenreType.ALL

    Returns:
        歌手列表
    """
    result = (
        await Api(**API["singer_list"])
        .update_params(
            hastag=0,
            area=area.value,
            sex=sex.value,
            genre=genre.value,
        )
        .result
    )
    return result["hotlist"]

Singer

Singer(mid: str)

歌手类

PARAMETER DESCRIPTION
mid

歌手 mid

TYPE: str

初始化歌手类

PARAMETER DESCRIPTION
mid

歌手 mid

TYPE: str

Source code in qqmusic_api/singer.py
def __init__(self, mid: str) -> None:
    """初始化歌手类

    Args:
        mid: 歌手 mid
    """
    self.mid = mid
    self._info: dict | None = None

get_info async

get_info() -> dict

获取歌手信息

RETURNS DESCRIPTION
dict

歌手信息

Source code in qqmusic_api/singer.py
async def get_info(self) -> dict:
    """获取歌手信息

    Returns:
        歌手信息
    """
    if not self._info:
        self._info = await Api(**API["homepage"]).update_params(SingerMid=self.mid).result
    return self._info

get_tab_detail async

get_tab_detail(tab_type: TabType, page: int = 1, num: int = 100) -> dict

获取歌手主页 Tab 详细信息

PARAMETER DESCRIPTION
tab_type

Tab 类型

TYPE: TabType

page

页码

TYPE: int DEFAULT: 1

num

返回数量

TYPE: int DEFAULT: 100

RETURNS DESCRIPTION
dict

Tab 详细信息

Source code in qqmusic_api/singer.py
async def get_tab_detail(self, tab_type: TabType, page: int = 1, num: int = 100) -> dict:
    """获取歌手主页 Tab 详细信息

    Args:
        tab_type: Tab 类型
        page:     页码
        num:      返回数量

    Returns:
        Tab 详细信息
    """
    return (
        await Api(**API["homepage_tab_detail"])
        .update_params(
            SingerMid=self.mid,
            IsQueryTabDetail=1,
            TabID=tab_type.tab_id,
            PageNum=page - 1,
            PageSize=num,
            Order=0,
        )
        .result
    )[tab_type.tab_name]

get_wiki async

get_wiki() -> dict

获取歌手WiKi

RETURNS DESCRIPTION
dict

歌手WiKi

Source code in qqmusic_api/singer.py
async def get_wiki(self) -> dict:
    """获取歌手WiKi

    Returns:
        歌手WiKi
    """
    return await self.get_tab_detail(TabType.WIKI)

get_song async

get_song(type: Literal[SONG, ALBUM, COMPOSER, LYRICIST, PRODUCER, ARRANGER, MUSICIAN] = SONG, page: int = 1, num: int = 100) -> list[dict]

获取歌手歌曲

PARAMETER DESCRIPTION
type

Tab 类型

TYPE: Literal[SONG, ALBUM, COMPOSER, LYRICIST, PRODUCER, ARRANGER, MUSICIAN] DEFAULT: SONG

page

页码

TYPE: int DEFAULT: 1

num

返回数量

TYPE: int DEFAULT: 100

RETURNS DESCRIPTION
list[dict]

歌曲信息列表

Source code in qqmusic_api/singer.py
async def get_song(
    self,
    type: Literal[
        TabType.SONG,
        TabType.ALBUM,
        TabType.COMPOSER,
        TabType.LYRICIST,
        TabType.PRODUCER,
        TabType.ARRANGER,
        TabType.MUSICIAN,
    ] = TabType.SONG,
    page: int = 1,
    num: int = 100,
) -> list[dict]:
    """获取歌手歌曲

    Args:
        type: Tab 类型
        page: 页码
        num:  返回数量

    Returns:
        歌曲信息列表
    """
    data = await self.get_tab_detail(type, page, num)
    return data["List"]