通过歌曲名获取QQ音乐原文+翻译歌词

通过歌曲名获取QQ音乐原文+翻译歌词

本文最后更新于 164 天前,不保证现在该文章信息准确

搜索api

这一步主要是通过歌曲名获取到歌曲的id以及标识符

搜索接口 https://u.y.qq.com/cgi-bin/musicu.fcg

请求头设置

Host: u.y.qq.com
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

请求参数 该接口接收JSON格式的POST数据,主要参数如下

{
  "comm": {
    "ct": "19",
    "cv": "1873",
    "uin": "0"
  },
  "music.search.SearchCgiService": {
    "method": "DoSearchForQQMusicDesktop",
    "module": "music.search.SearchCgiService",
    "param": {
      "grp": 1,
      "num_per_page": 40,
      "page_num": 1,
      "query": "歌手 - 歌曲名",
      "search_type": 0
    }
  }
}

其中

music.search.SearchCgiService.param.query 填写歌曲名 推荐前面加上歌手以实现更精确的匹配

代码示例:

import requests
import json

def search_song(keyword, page=1, page_size=40):
    url = "https://u.y.qq.com/cgi-bin/musicu.fcg"

    # 请求头
    headers = {
        "Host": "u.y.qq.com",
        "User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
        "Content-Type": "application/json"
    }

    # POST 的 JSON 数据
    payload = {
        "comm": {
            "ct": "19",
            "cv": "1873",
            "uin": "0"
        },
        "music.search.SearchCgiService": {
            "method": "DoSearchForQQMusicDesktop",
            "module": "music.search.SearchCgiService",
            "param": {
                "grp": 1,
                "num_per_page": page_size,
                "page_num": page,
                "query": keyword,
                "search_type": 0
            }
        }
    }

    # 发送 POST 请求
    response = requests.post(
        url,
        headers=headers,
        data=json.dumps(payload)
    )

    # 返回 JSON 结果
    return response.json()

返回的格式如下

{
  "music.search.SearchCgiService": {
    "data": {
      "body": {
        "song": {
          "list": [
            {
              "name": "歌曲名",
              "mid": "歌曲MID",
              "id": "歌曲ID",
              "singer": [
                {
                  "name": "歌手名"
                }
              ],
              "album": {
                "name": "专辑名"
              }
            }
          ]
        }
      }
    }
  }
}

我们需要使用的是歌曲 MID 以及歌曲 ID

示例提取:

first_song = (
    result["music.search.SearchCgiService"]
          ["data"]
          ["body"]
          ["song"]
          ["list"][0]
)

song_mid = first_song["mid"]
song_id = first_song["id"]

print("歌曲 MID:", song_mid)
print("歌曲 ID :", song_id)

获取原文加歌词

我们需要使用上一步获取到的 MID 和 ID 来获取原文以及歌词

歌词接口 https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg

请求头设置

Origin: https://y.qq.com
Referer: https://y.qq.com/n/ryqq/player
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36

该接口接收GET请求 参数如下

请求参数

  • songmid: 歌曲的MID标识符
  • musicid: 歌曲ID
  • format: 固定为json
  • g_tk: 固定为5381

songmid填写上一步获取到的MID;musicid填写上一步获取到的歌曲ID

示例请求代码

def get_lyric(song_mid, song_id):
    url = "https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg"

    # GET 请求参数
    params = {
        "songmid": song_mid,
        "musicid": song_id,
        "format": "json",
        "g_tk": "5381"
    }

    # 请求头
    headers = {
        "Origin": "https://y.qq.com",
        "Referer": "https://y.qq.com/n/ryqq/player",
        "User-Agent": (
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
            "AppleWebKit/537.36 (KHTML, like Gecko) "
            "Chrome/102.0.5005.63 Safari/537.36"
        )
    }

    response = requests.get(url, params=params, headers=headers)
    data = response.json()

返回如以下格式

{
  "lyric": "Base64编码的歌词内容",
  "trans": "Base64编码的翻译歌词内容(可能为空)"
}

该格式十分整洁 只需要获取lyric并解码Base64即可得到原文+时间戳 标准lrc格式

按需提取trans作为翻译+时间戳 同样是标准lrc格式

本站资源多为网络收集,如涉及版权问题,请及时与站长联系,我们会在第一时间内删除相关内容 本文内容允许转载,但请注明原文出处

评论

  1. Windows Edge韩国–首尔特别市
    4 月前
    2026-3-02 23:01:46

    OVO,在你这里找到现成的教程了,不用再去问AI喽~|´・ω・)ノ

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇