跳转至

LyricApi

modules.lyric.LyricApi

LyricApi(client: Client)

Bases: ApiModule

歌词相关 API.

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

get_lyric

get_lyric(
    value: int | str,
    song_type: int = 1,
    *,
    qrc: bool = False,
    trans: bool = False,
    roma: bool = False,
    singing_annotations: bool = False,
)

获取歌词原始数据.

PARAMETER DESCRIPTION
value

歌曲 ID 或 MID.

TYPE: int | str

qrc

是否获取逐字歌词.

TYPE: bool DEFAULT: False

trans

是否获取翻译.

TYPE: bool DEFAULT: False

roma

是否获取罗马音.

TYPE: bool DEFAULT: False

singing_annotations

是否获取助唱标注歌词.

TYPE: bool DEFAULT: False

song_type

歌曲类型.

TYPE: int DEFAULT: 1

Source code in qqmusic_api/modules/lyric.py
def get_lyric(
    self,
    value: int | str,
    song_type: int = 1,
    *,
    qrc: bool = False,
    trans: bool = False,
    roma: bool = False,
    singing_annotations: bool = False,
):
    """获取歌词原始数据.

    Args:
        value: 歌曲 ID 或 MID.
        qrc: 是否获取逐字歌词.
        trans: 是否获取翻译.
        roma: 是否获取罗马音.
        singing_annotations: 是否获取助唱标注歌词.
        song_type: 歌曲类型.
    """
    params: dict[str, Any] = {
        "crypt": 1,
        "lrc_t": 0,
        "qrc": int(qrc),
        "qrc_t": 0,
        "roma": int(roma),
        "roma_t": 0,
        "trans": int(trans),
        "trans_t": 0,
        "needSingingAnnotations": singing_annotations,
        "type": song_type,
    }

    if isinstance(value, int) or (isinstance(value, str) and value.isdecimal()):
        params["songId"] = int(value)
    else:
        params["songMid"] = value

    return self._build_cgi(
        module="music.musichallSong.PlayLyricInfo",
        method="GetPlayLyricInfo",
        param=params,
        preserve_bool=True,
        response_model=GetLyricResponse,
    )

get_singing_annotations_info

get_singing_annotations_info(songid: int)

获取助唱标注歌词信息.

PARAMETER DESCRIPTION
songid

歌曲 ID.

TYPE: int

Source code in qqmusic_api/modules/lyric.py
def get_singing_annotations_info(
    self,
    songid: int,
):
    """获取助唱标注歌词信息.

    Args:
        songid: 歌曲 ID.
    """
    return self._build_cgi(
        module="music.musichallSong.PlayLyricInfo",
        method="GetSingingAnnotationsInfo",
        param={
            "songID": songid,
            "needNum": False,
        },
        preserve_bool=True,
        response_model=GetSingingAnnotationsInfoResponse,
    )

get_multi_style_trans_lyric

get_multi_style_trans_lyric(songid: int)

获取多风格翻译歌词 (如诗意、粤语、方言等).

PARAMETER DESCRIPTION
songid

歌曲 ID.

TYPE: int

Source code in qqmusic_api/modules/lyric.py
def get_multi_style_trans_lyric(
    self,
    songid: int,
):
    """获取多风格翻译歌词 (如诗意、粤语、方言等).

    Args:
        songid: 歌曲 ID.
    """
    return self._build_cgi(
        module="music.musichallSong.PlayLyricInfo",
        method="BatchGetMultiStyleTransLyric",
        param={"songID": songid},
        response_model=BatchGetMultiStyleTransLyricResponse,
    )

is_ai_dict_exists

is_ai_dict_exists(songid: int)

检查是否存在 AI 歌词词典.

PARAMETER DESCRIPTION
songid

歌曲 ID.

TYPE: int

Source code in qqmusic_api/modules/lyric.py
def is_ai_dict_exists(
    self,
    songid: int,
):
    """检查是否存在 AI 歌词词典.

    Args:
        songid: 歌曲 ID.
    """
    return self._build_cgi(
        module="music.musichallSong.PlayLyricInfo",
        method="IsAIDictExists",
        param={"songID": songid},
        response_model=IsAIDictExistsResponse,
    )

get_ai_dict

get_ai_dict(songid: int)

获取 AI 歌词词典信息.

PARAMETER DESCRIPTION
songid

歌曲 ID.

TYPE: int

Source code in qqmusic_api/modules/lyric.py
def get_ai_dict(
    self,
    songid: int,
):
    """获取 AI 歌词词典信息.

    Args:
        songid: 歌曲 ID.
    """
    return self._build_cgi(
        module="music.musichallSong.PlayLyricInfo",
        method="GetAIDictInfo",
        param={"songID": songid},
        response_model=GetAIDictResponse,
    )