跳转至

UserApi

modules.user.UserApi

UserApi(client: Client)

Bases: ApiModule

用户相关 API.

Source code in qqmusic_api/modules/_base.py
def __init__(self, client: "Client") -> None:
    self._client = client

get_homepage

get_homepage(
    euin: str, *, credential: Credential | None = None
)

获取用户主页头部及统计信息.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

credential

可选的登录凭证; 未传入时优先使用客户端当前凭证,
若客户端凭证不可用则自动使用占位凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_homepage(self, euin: str, *, credential: Credential | None = None):
    """获取用户主页头部及统计信息.

    Args:
        euin: 加密后的 UIN.
        credential: 可选的登录凭证; 未传入时优先使用客户端当前凭证,
            若客户端凭证不可用则自动使用占位凭证.
    """
    target_credential = self._resolve_placeholder_credential(credential)
    return self._build_request(
        module="music.UnifiedHomepage.UnifiedHomepageSrv",
        method="GetHomepageHeader",
        param={"uin": euin, "IsQueryTabDetail": 1},
        credential=target_credential,
        response_model=UserHomepageResponse,
    )

get_vip_info

get_vip_info(*, credential: Credential | None = None)

获取当前登录账号的 VIP 会员信息.

PARAMETER DESCRIPTION
credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_vip_info(self, *, credential: Credential | None = None):
    """获取当前登录账号的 VIP 会员信息.

    Args:
        credential: 登录凭证.
    """
    target_credential = self._require_login(credential)
    return self._build_request(
        module="VipLogin.VipLoginInter",
        method="vip_login_base",
        param={},
        credential=target_credential,
        response_model=UserVipInfoResponse,
    )

get_follow_singers

get_follow_singers(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取用户关注的歌手列表.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

每页返回数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_follow_singers(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取用户关注的歌手列表.

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 每页返回数量.
        credential: 登录凭证.
    """
    target_credential = self._require_login(credential)
    return self._build_request(
        module="music.concern.RelationList",
        method="GetFollowSingerList",
        param={"HostUin": euin, "From": (page - 1) * num, "Size": num},
        credential=target_credential,
        response_model=UserRelationListResponse,
        pager_meta=PagerMeta(
            strategy=OffsetStrategy(offset_key="From", page_size_key="Size"),
            adapter=ResponseAdapter(
                has_more_flag="has_more",
                total="total",
                count=lambda response: len(response.users),
            ),
        ),
    )

get_fans

get_fans(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取用户粉丝列表.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

每页返回数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_fans(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取用户粉丝列表.

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 每页返回数量.
        credential: 登录凭证.
    """
    target_credential = self._require_login(credential)
    return self._build_request(
        module="music.concern.RelationList",
        method="GetFansList",
        param={"HostUin": euin, "From": (page - 1) * num, "Size": num},
        credential=target_credential,
        response_model=UserRelationListResponse,
        pager_meta=PagerMeta(
            strategy=OffsetStrategy(offset_key="From", page_size_key="Size"),
            adapter=ResponseAdapter(
                has_more_flag="has_more",
                total="total",
                count=lambda response: len(response.users),
            ),
        ),
    )

get_friend

get_friend(
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取好友列表.

PARAMETER DESCRIPTION
page

页码.

TYPE: int DEFAULT: 1

num

每页返回数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_friend(
    self,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取好友列表.

    Args:
        page: 页码.
        num: 每页返回数量.
        credential: 登录凭证.
    """
    target_credential = self._require_login(credential)
    return self._build_request(
        module="music.homepage.Friendship",
        method="GetFriendList",
        param={"PageSize": num, "Page": page - 1},
        credential=target_credential,
        response_model=UserFriendListResponse,
        pager_meta=PagerMeta(
            strategy=PageStrategy(page_key="Page", page_size=num, start_page=page - 1),
            adapter=ResponseAdapter(has_more_flag="has_more"),
        ),
    )

get_follow_user

get_follow_user(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取关注的用户列表.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

每页返回数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_follow_user(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取关注的用户列表.

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 每页返回数量.
        credential: 登录凭证.
    """
    target_credential = self._require_login(credential)
    return self._build_request(
        module="music.concern.RelationList",
        method="GetFollowUserList",
        param={"HostUin": euin, "From": (page - 1) * num, "Size": num},
        credential=target_credential,
        response_model=UserRelationListResponse,
        pager_meta=PagerMeta(
            strategy=OffsetStrategy(offset_key="From", page_size_key="Size"),
            adapter=ResponseAdapter(
                has_more_flag="has_more",
                total="total",
                count=lambda response: len(response.users),
            ),
        ),
    )

get_created_songlist

get_created_songlist(
    uin: int, *, credential: Credential | None = None
)

获取用户创建的歌单列表.

PARAMETER DESCRIPTION
uin

用户 UIN.

TYPE: int

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_created_songlist(self, uin: int, *, credential: Credential | None = None):
    """获取用户创建的歌单列表.

    Args:
        uin: 用户 UIN.
        credential: 登录凭证.
    """
    return self._build_request(
        module="music.musicasset.PlaylistBaseRead",
        method="GetPlaylistByUin",
        param={"uin": str(uin)},
        credential=credential,
        response_model=UserCreatedSonglistResponse,
    )

get_fav_song

get_fav_song(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取用户收藏的歌曲列表 (默认 dirid 为 201).

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

返回数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_fav_song(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取用户收藏的歌曲列表 (默认 dirid 为 201).

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 返回数量.
        credential: 登录凭证.
    """
    return self._build_request(
        module="music.srfDissInfo.DissInfo",
        method="CgiGetDiss",
        param={
            "disstid": 0,
            "dirid": 201,
            "tag": True,
            "song_begin": num * (page - 1),
            "song_num": num,
            "userinfo": True,
            "orderlist": True,
            "enc_host_uin": euin,
        },
        credential=credential,
        response_model=GetSonglistDetailResponse,
        pager_meta=PagerMeta(
            strategy=OffsetStrategy(offset_key="song_begin", page_size_key="song_num"),
            adapter=ResponseAdapter(
                has_more_flag="hasmore",
                total="total",
                count=lambda response: len(response.songs),
            ),
        ),
    )

get_fav_songlist

get_fav_songlist(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取用户收藏的外部歌单列表.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

每页数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_fav_songlist(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取用户收藏的外部歌单列表.

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 每页数量.
        credential: 登录凭证.
    """
    return self._build_request(
        module="music.musicasset.PlaylistFavRead",
        method="CgiGetPlaylistFavInfo",
        param={"uin": euin, "offset": (page - 1) * num, "size": num},
        credential=credential,
        response_model=UserFavSonglistResponse,
        pager_meta=PagerMeta(
            strategy=OffsetStrategy(offset_key="offset", page_size_key="size"),
            adapter=ResponseAdapter(
                has_more_flag="hasmore",
                total="total",
                count=lambda response: len(response.playlists),
            ),
        ),
    )

get_fav_album

get_fav_album(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取用户收藏的专辑列表.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

每页数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_fav_album(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取用户收藏的专辑列表.

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 每页数量.
        credential: 登录凭证.
    """
    return self._build_request(
        module="music.musicasset.AlbumFavRead",
        method="CgiGetAlbumFavInfo",
        param={"euin": euin, "offset": (page - 1) * num, "size": num},
        credential=credential,
        response_model=UserFavAlbumResponse,
        pager_meta=PagerMeta(
            strategy=OffsetStrategy(offset_key="offset", page_size_key="size"),
            adapter=ResponseAdapter(
                has_more_flag="hasmore",
                total="total",
                count=lambda response: len(response.albums),
            ),
        ),
    )

get_fav_mv

get_fav_mv(
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
)

获取用户收藏的 MV 列表.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

page

页码.

TYPE: int DEFAULT: 1

num

每页数量.

TYPE: int DEFAULT: 10

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_fav_mv(
    self,
    euin: str,
    page: int = 1,
    num: int = 10,
    *,
    credential: Credential | None = None,
):
    """获取用户收藏的 MV 列表.

    Args:
        euin: 加密后的 UIN.
        page: 页码.
        num: 每页数量.
        credential: 登录凭证.
    """
    target_credential = self._require_login(credential)
    return self._build_request(
        module="music.musicasset.MVFavRead",
        method="getMyFavMV_v2",
        param={"encuin": euin, "pagesize": num, "num": page - 1},
        credential=target_credential,
        response_model=UserFavMvResponse,
    )

get_music_gene

get_music_gene(
    euin: str, *, credential: Credential | None = None
)

获取用户的音乐基因数据.

PARAMETER DESCRIPTION
euin

加密后的 UIN.

TYPE: str

credential

登录凭证.

TYPE: Credential | None DEFAULT: None

Source code in qqmusic_api/modules/user.py
def get_music_gene(self, euin: str, *, credential: Credential | None = None):
    """获取用户的音乐基因数据.

    Args:
        euin: 加密后的 UIN.
        credential: 登录凭证.
    """
    return self._build_request(
        module="music.recommend.UserProfileSettingSvr",
        method="GetProfileReport",
        param={"VisitAccount": euin},
        credential=credential,
        response_model=UserMusicGeneResponse,
    )