半步多 玄玉的博客

MP3添加歌词以及QQ音乐网页版抓取LRC

2023-11-24
玄玉

2003 年左右,随着网络流行音乐与免费时代的开启,大量的 mp3 歌曲,与歌词显示所使用的 lrc 文件被广泛应用

lrc 是英文 lyric(歌词)的缩写,它能在各类数码播放器中同步显示,也是当前网络上最流行的一种歌词格式

LRC文件浅析

lrc 文件是一种基于文本的格式,它与外挂的字幕流(subtitle)类似,它可以分为:简单版、扩展版、增强版

简单版

这是最常见的一种格式,共有两种元素:时间标签 + 歌词、ID 标签

时间标签用于音频同步播放,格式为:[mm:ss.xx],也即分钟数-秒数-毫秒数(固定两位数,超长可能会认为格式错误)

ID 标签通常出现在歌词之前,有些播放器会忽略 ID 标签(不做任何解析)

通常支持的 ID 标签如下:

[al:专辑名]
[ar:歌手名]
[au:歌词作者-作曲家]
[by:此LRC文件的创建者]
[offset:+/- 时间补偿值,以毫秒为单位,正值表示加快,负值表示延后] 
[re:创建此LRC文件的播放器或编辑器]
[ti:歌词(歌曲)的标题]
[ve:程序的版本]

下面是一个常见的 lrc 文件内容:

[ti:姑娘别哭泣]
[ar:柯柯柯啊]
[al:姑娘别哭泣]
[by:v_ttzhang]
[offset:0]
[00:00.00]姑娘别哭泣 (弹唱版) - 柯柯柯啊
[00:01.83]词:柯柯柯啊
[00:02.00]曲:柯柯柯啊
[00:02.98]突来的消息 那个人是你
[00:07.20]这么多年 你杳无音讯
[00:11.80]
[00:12.52]时间的橡皮 擦掉了记忆
[00:16.80]但我迟迟 都没有忘记你

扩展版

在简单版的基础上,该版可使用标签设置歌词的性别:M: 男性, F: 女性, D: 合唱(常用于卡啦OK媒体播放器)

举例如下:

[00:22.15]秒针的声音 嘀嗒转不停
[00:26.41]M: 我的心里 住着一个你
[00:30.65]
[00:31.74]F: 流过的泪滴 全都因为你
[00:36.04]D: 原来迟迟都 不曾放下你

增强版

在简单版的基础上,它增加了一个额外的时间标签,用于表示一行歌词中不同词显示的时间,其格式为:<mm:ss.xx>

示例如下:

[00:40.85]或许<00:41:05>我们 就不该<00:44:50>有段因果
[00:45.61]或许<00:46:15>我不该 一味<00:47:55>求施舍

QQ音乐抓取LRC

这里是从 QQ 音乐的网页版,抓取歌曲的 LRC 内容(QQ 音乐的好处是歌曲和歌词是同步对应的,不需要再次调整了)

  1. 在播放歌曲的 Web 页面,正常播放歌曲(歌曲旁边会滚动显示歌词,视为正常)
  2. 按 F12 打开开发者工具,点击 Network 这个 Tab,然后刷新页面
  3. 在下方请求的左侧列表,找到 musics.fcg 这个请求
  4. 在下方请求的右侧列表,找到 req_6 这个返回项,其中有一个属性是 lyric,其值是一个 Base64 的字符串
  5. 打开 https://tool.oschina.net/encrypt?type=3 在线解密,即得到了歌词内容(也可以保存为 UTF-8 编码的 lrc 文件)

如下图所示:

MP3添加歌词内容

这里需要用到一个工具:Mp3tag,下载地址为:s/1UKFwwYfaeVonspZvo8Y8Xg?pwd=mith

  1. 打开 Mp3tag,在对应的歌曲上,右键选择 标签
  2. 添加两个标签,标签名分别为 LYRICISTUNSYNCEDLYRICS,两个标签的值相同,都是上一步 Base64 解密的内容
  3. 最后保存即可

如下图所示:(注:千千静听识别不到 LYRICIST 标签的歌词,但可以识别 UNSYNCEDLYRICS 标签的歌词)


Content