如何获取并处理网易云音乐的歌词数据
本文将详细介绍如何通过Python代码从网易云音乐获取歌曲的歌词数据,并将其转换为标准JSON格式,最终在Python中处理和输出。
步骤概述
- 打开网易云音乐,选择任意歌曲。
- 获取歌曲URL中的ID。
- 通过API获取歌词的JSON数据。
- 转换JSON格式并提取歌词。
- 在Python中处理和输出歌词。
数据获取与处理
1. 获取歌曲ID
打开网易云音乐,选择任意歌曲。例如,URL为:
https://music.163.com/#/song?id=1928112928
从URL中提取歌曲ID:
1928112928
2. 构建API请求URL
使用获取到的ID构建API请求URL:
https://music.163.com/api/song/media?id=1928112928
3. 获取JSON数据
访问上述URL,获取歌曲的JSON数据。示例数据如下:
{
"songStatus": 1,
"lyricVersion": 1,
"lyric": "[by:南归_T]\n[00:00.00]作词:Fukase\n[00:01.00]作曲:Nakajin\n[00:02.00]编曲:久下真音\n[00:03.00]原唱:SEKAI NO OWARI\n[00:04.18]スノーマジックファンタジー\n[00:10.28]スノーマジックファンタジー\n[00:13.95]雪の魔法にかけられて\n[00:17.81]僕は君に恋した\n[00:21.54]もしかして君は雪の妖精?\n[00:26.44]\n[00:28.56]僕は星の降る雪山で、\n[00:32.49]君を見るまではオカルトの類はまったく\n[00:40.19]信じていなかったのだけれども\n[00:44.68]\n[00:46.11]君が住む山は“スノーランド”\n[00:49.72]1年中、雪の降るこの国で\n[00:54.77]私は生まれたの、と君は話してくれたんだ\n[01:03.25]ねぇ、私は夏を見たことがないの、\n[01:07.56]燃えるようなあの夏を、\n[01:11.18]それを見るのが私の夢なの\n[01:18.63]でも良いの\n[01:20.00]この世界は知らない方がロマンチックな事も\n[01:30.54]たくさんあるのでしょう?\n[01:34.64]スノーマジックファンタジー\n[01:38.51]雪の魔法にかけられて\n[01:42.28]僕は君に恋した\n[01:45.95]もしかして君は雪の精?\n[01:50.15]\n[02:16.28]僕はこれまでの人生を誰にも愛される\n[02:23.50]こともなく1人で生きてきた\n[02:27.67]君と出逢うその時までは\n[02:33.58]ふいに、\n[02:34.10]「君は妖精だから、やっぱり年齢は200歳とかなのかい?」と聞いたら、\n[02:45.65]それはなんか無視された\n[02:48.03]\n[02:50.72]ねぇ、命はいずれ終わるものよ\n[02:55.01]貴方と私は終わりがくるの\n[02:59.15]なのに、なんで出逢ってしまったの?\n[03:06.13]貴方は「幸せ」と同時に「悲しみ」も運んできたわ\n[03:18.25]皮肉なものね\n[03:22.11]スノーマジックファンタジー\n[03:25.97]雪の魔法にかけられて\n[03:29.77]僕は君に恋した\n[03:33.34]もしかして君は雪の精?\n[03:37.53]雪の妖精とのファンタジー\n[03:47.46]\n[04:03.91]やがて、僕は眠くなってきた\n[04:08.11]君と一緒にいるという事は、\n[04:12.43]やはりこういう事だったんだろう\n[04:19.03]でも良いんだ、君に出逢えて初めて誰かを愛せたんだ\n[04:31.23]これが僕のハッピーエンド\n[04:35.08]スノーマジックファンタジー\n[04:38.93]雪の魔法にかけられて\n[04:42.73]僕は君に恋した\n[04:46.39]もしかして君は雪の精?\n[04:50.53]雪の妖精とのファンタジー",
"code": 200
}
4. 转换为标准JSON格式
使用在线工具 Bejson 将JSON数据转换为标准格式。
5. 提取歌词数据
从JSON数据中提取歌词内容:
[by:南归_T]\n[00:00.00]作词:Fukase\n[00:01.00]作曲:Nakajin\n[00:02.00]编曲:久下真音\n[00:03.00]原唱:SEKAI NO OWARI\n[00:04.18]スノーマジックファンタジー\n[00:10.28]スノーマジックファンタジー\n[00:13.95]雪の魔法にかけられて\n[00:17.81]僕は君に恋した\n[00:21.54]もしかして君は雪の妖精?\n[00:26.44]\n[00:28.56]僕は星の降る雪山で、\n[00:32.49]君を見るまではオカルトの類はまったく\n[00:40.19]信じていなかったのだけれども\n[00:44.68]\n[00:46.11]君が住む山は“スノーランド”\n[00:49.72]1年中、雪の降るこの国で\n[00:54.77]私は生まれたの、と君は話してくれたんだ\n[01:03.25]ねぇ、私は夏を見たことがないの、\n[01:07.56]燃えるようなあの夏を、\n[01:11.18]それを見るのが私の夢なの\n[01:18.63]でも良いの\n[01:20.00]この世界は知らない方がロマンチックな事も\n[01:30.54]たくさんあるのでしょう?\n[01:34.64]スノーマジックファンタジー\n[01:38.51]雪の魔法にかけられて\n[01:42.28]僕は君に恋した\n[01:45.95]もしかして君は雪の精?\n[01:50.15]\n[02:16.28]僕はこれまでの人生を誰にも愛される\n[02:23.50]こともなく1人で生きてきた\n[02:27.67]君と出逢うその時までは\n[02:33.58]ふいに、\n[02:34.10]「君は妖精だから、やっぱり年齢は200歳とかなのかい?」と聞いたら、\n[02:45.65]それはなんか無視された\n[02:48.03]\n[02:50.72]ねぇ、命はいずれ終わるものよ\n[02:55.01]貴方と私は終わりがくるの\n[02:59.15]なのに、なんで出逢ってしまったの?\n[03:06.13]貴方は「幸せ」と同時に「悲しみ」も運んできたわ\n[03:18.25]皮肉なものね\n[03:22.11]スノーマジックファンタジー\n[03:25.97]雪の魔法にかけられて\n[03:29.77]僕は君に恋した\n[03:33.34]もしかして君は雪の精?\n[03:37.53]雪の妖精とのファンタジー\n[03:47.46]\n[04:03.91]やがて、僕は眠くなってきた\n[04:08.11]君と一緒にいるという事は、\n[04:12.43]やはりこういう事だったんだろう\n[04:19.03]でも良いんだ、君に出逢えて初めて誰かを愛せたんだ\n[04:31.23]これが僕のハッピーエンド\n[04:35.08]スノーマジックファンタジー\n[04:38.93]雪の魔法にかけられて\n[04:42.73]僕は君に恋した\n[04:46.39]もしかして君は雪の精?\n[04:50.53]雪の妖精とのファンタジー
6. 使用Python处理歌词
使用Python代码处理并输出歌词数据:
lyrics = "[00:00.00]作词:Fukase\n[00:01.00]作曲:Nakajin\n[00:02.00]编曲:久下真音\n[00:03.00]原唱:SEKAI NO OWARI\n[00:04.18]スノーマジックファンタジー\n[00:10.28]スノーマジックファンタジー\n[00:13.95]雪の魔法にかけられて\n[00:17.81]僕は君に恋した\n[00:21.54]もしかして君は雪の妖精?\n[00:26.44]\n[00:28.56]僕は星の降る雪山で、\n[00:32.49]君を見るまではオカルトの類はまったく\n[00:40.19]信じていなかったのだけれども\n[00:44.68]\n[00:46.11]君が住む山は“スノーランド”\n[00:49.72]1年中、雪の降るこの国で\n[00:54.77]私は生まれたの、と君は話してくれたんだ\n[01:03.25]ねぇ、私は夏を見たことがないの、\n[01:07.56]燃えるようなあの夏を、\n[01:11.18]それを見るのが私の夢なの\n[01:18.63]でも良いの\n[01:20.00]この世界は知らない方がロマンチックな事も\n[01:30.54]たくさんあるのでしょう?\n[01:34.64]スノーマジックファンタジー\n[01:38.51]雪の魔法にかけられて\n[01:42.28]僕は君に恋した\n[01:45.95]もしかして君は雪の精?\n[01:50.15]\n[02:16.28]僕はこれまでの人生を誰にも愛される\n[02:23.50]こともなく1人で生きてきた\n[02:27.67]君と出逢うその時までは\n[02:33.58]ふいに、\n[02:34.10]「君は妖精だから、やっぱり年齢は200歳とかなのかい?」と聞いたら、\n[02:45.65]それはなんか無視された\n[02:48.03]\n[02:50.72]ねぇ、命はいずれ終わるものよ\n[02:55.01]貴方と私は終わりがくるの\n[02:59.15]なのに、なんで出逢ってしまったの?\n[03:06.13]貴方は「幸せ」と同時に「悲しみ」も運んできたわ\n[03:18.25]皮肉なものね\n[03:22.11]スノーマジックファンタジー\n[03:25.97]雪の魔法にかけられて\n[03:29.77]僕は君に恋した\n[03:33.34]もしかして君は雪の精?\n[03:37.53]雪の妖精とのファンタジー\n[03:47.46]\n[04:03.91]やがて、僕は眠くなってきた\n[04:08.11]君と一緒にいるという事は、\n[04:12.43]やはりこういう事だったんだろう\n[04:19.03]でも良いんだ、君に出逢えて初めて誰かを愛せたんだ\n[04:31.23]これが僕のハッピーエンド\n[04:35.08]スノーマジックファンタジー\n[04:38.93]雪の魔法にかけられて\n[04:42.73]僕は君に恋した\n[04:46.39]もしかして君は雪の精?\n[04:50.53]雪の妖精とのファンタジー"
lyrics = lyrics.replace('\n识别', '\n')
print(lyrics)
在线运行Python代码
可以使用在线运行工具运行Python代码,例如JSON.cn。将代码粘贴到在线工具中,点击运行按钮,查看输出结果。
标准输出
[by:南归_T]
[00:00.00]作词:Fukase
[00:01.00]作曲:Nakajin
[00:02.00]编曲:久下真音
[00:03.00]原唱:SEKAI NO OWARI
[00:04.18]スノーマジックファンタジー
[00:10.28]スノーマジックファンタジー
[00:13.95]雪の魔法にかけられて
[00:17.81]僕は君に恋した
[00:21.54]もしかして君は雪の妖精?
转换为JavaScript格式(lyc.js)
将歌词数据转换为JavaScript格式:
const lyricStr = `[00:01.00]作曲:Nakajin
[00:02.00]编曲:久下真音
[00:03.00]原唱:SEKAI NO OWARI
[00:04.18]スノーマジックファンタジー
[00:10.28]スノーマジックファンタジー
[00:13.95]雪の魔法にかけられて
[00:17.81]僕は君に恋した
[00:21.54]もしかして君は雪の妖精?
[00:26.44]...`;
总结
本文介绍了如何从网易云音乐获取歌词数据并在Python中处理,最终将歌词数据转换为JavaScript格式。希望这篇文章对你有所帮助!