mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
250 字
1 分钟
通过歌曲名获取网易云原文+翻译歌词(网易云api)
2025-08-22
无标签

歌词api#

歌词api地址

https://music.163.com/api/song/lyric

参数os,id,tv,lv 其中 tv 返回翻译和时间轴信息, lv 返回原文和时间轴信息

os 查询值可以固定为 pc,id 为歌曲id (id可以通过下面的 “查找歌曲id” 获取)

示例#

GET https://music.163.com/api/song/lyric?os=pc&id=1900172235&lv=-1

可得到包含时间轴信息的歌词(json)

GET https://music.163.com/api/song/lyric?os=pc&id=1900172235&tv=-1

可得到包含时间轴信息的翻译(json)

json格式为:

{
"sgc": false,
"sfy": false,
"qfy": false,
"transUser": {
"id": 3954145,
"status": 99,
"demand": 1,
"userid": 286296639,
"nickname": "Crazy_Knight",
"uptime": 1473236549828
},
"lyricUser": {
"id": 3954139,
"status": 99,
"demand": 0,
"userid": 45478087,
"nickname": "color-9",
"uptime": 1473236549828
},
"lrc": {
"version": 15,
"lyric": "[00:00.617]这个世上没有比假花更美的花\n[00:05.748]因为它完全是由虚假所构成\n 其他歌词省略"
},
"code": 200
}

其中歌词每行通过 \n 标记换行

示例提取#

import json
# 假设 data 是从接口获取的 json 字符串
data = '''{
"lrc": {
"version": 15,
"lyric": "第一行歌词\n第二行歌词\n第三行歌词"
}
}'''
obj = json.loads(data)
lyric_text = obj['lrc']['lyric'] # 提取歌词
lines = lyric_text.split('\n') # 可选 按行拆分

查找歌曲id#

上面提到查找歌词需要歌曲id

通过下列方法可以查找到歌曲id

搜索api

https://music.163.com/api/search/get

参数: type 固定为1(表示查找歌曲) s 为你想要搜索的歌曲名称 limit 为返回的歌曲数量

示例#

GET https://music.163.com/api/search/get/?s=フォニイ;可不&type=1&limit=2

返回格式为

{
"result": {
"注": "这里省略了很多信息,这里只展示最核心的",
"songs": [
{
"注": "这是第1首歌的信息",
"id": 1900172235,
"name": "フォニイ",
"artists": [
{
"注": "这里是歌手信息,暂时省略"
},
{
"注": "这里是歌手信息,暂时省略"
}
],
"album": {
"注": "这里是专辑信息,暂时省略"
},
"注1": "这是歌曲信息,暂时省略"
},
{
"注": "这是第2首歌的信息",
"id": 1864969357,
"name": "フォニイ(偽物/phony)(翻自 可不)",
"artists": [
{
"注": "这里是歌手信息,暂时省略"
},
{
"注": "这里是歌手信息,暂时省略"
}
],
"album": {
"注": "这里是专辑信息,暂时省略"
},
"注1": "这是歌曲信息,暂时省略"
}
],
"hasMore": true,
"songCount": 10
},
"code": 200
}

示例提取#

import json
data = '''json字符串'''
obj = json.loads(data)
songs_info = []
for song in obj['result']['songs']:
song_id = song['id']
# 歌手昵称列表
artist_names = [artist.get('name', '未知') for artist in song['artists']]
songs_info.append({'id': song_id, 'artists': artist_names})
# 输出
for info in songs_info:
print(f"歌曲ID: {info['id']}, 歌手昵称: {', '.join(info['artists'])}")

示例输出:

歌曲ID: 1900172235, 歌手昵称: 可不, ツミキ
歌曲ID: 1864969357, 歌手昵称: Yvan叶子, 翼と実TsubasatMi

总结#

通过以上两个方法,分两步就可以通过歌曲名称获取到对应的歌词和翻译以及时间轴信息

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

通过歌曲名获取网易云原文+翻译歌词(网易云api)
https://www.showby.top/posts/2025-08-23-通过歌曲名称使用网易云api获取对应的原文加翻译/
作者
小白
发布于
2025-08-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录