将lrc歌词文件转ass或srt字幕文件,派生自 https://github.com/kafuumi/ltc
Go to file
2022-06-02 15:46:48 +08:00
.github/workflows 修改github action 2022-03-30 11:01:30 +08:00
.idea 修改README 2022-04-04 13:35:29 +08:00
example 修复歌词原文和译文交错排列时会出现不对应的问题 2022-03-05 13:02:32 +08:00
glist 添加测试用例 2022-03-29 11:16:04 +08:00
lrctocaptions 删除build.bat 2022-03-30 10:43:09 +08:00
.gitignore 支持ass转换 2022-03-30 10:41:28 +08:00
ass.go 支持ass转换 2022-03-30 10:41:28 +08:00
cloudlyric.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
cloudlyric_test.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
go.mod 支持ass转换 2022-03-30 10:41:28 +08:00
go.sum 支持ass转换 2022-03-30 10:41:28 +08:00
lrc.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
lrc_test.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
qqlyric.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
qqlyric_test.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
README.md Merge branch 'master' of github.com:Hami-Lemon/ltc 2022-06-02 15:46:48 +08:00
srt.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
srt_test.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
util.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00
util_test.go 修改模块名: lrc2lts => ltc (LrcToCaptions) 2022-03-29 19:47:26 +08:00

LrcToCaptons

Build

用于将LRC歌词文件转换成ASS、SRT字幕文件

功能

  • lrc文件转换成srt文件
  • lrc文件转换成ass文件
  • 从网易云音乐或QQ音乐上获取歌词并转换。
  • 从网易云音乐或QQ音乐上下载歌词。

下载

开始使用

LrcToCaptions(ltc) 将LRC歌词文件转换成字幕文件。
ltc version: "0.3.4" (build 2022.03.30)

用法ltc [options] OutputFile

options:

  -d    设置该选项时,只下载歌词,而无需转换。
  -f value
        转换成的字幕文件格式可选值ass(默认),srt
  -i string
        歌词来源可以是歌词对应的歌曲id也可以是歌词文件
  -m value
        设置歌词原文和译文的合并模式可选值1(默认),2,3。
  -s string
        选择从网易云还是QQ音乐上获取歌词可选值163(默认)qq。 (default "163")
  -v    获取当前程序版本信息。
  -h	显示帮助信息。

获取歌曲id

网易云音乐

进入网易云音乐网页版,找到歌曲进入详情页,如下图:

image-20220218154517793

其链接中id=1903635166中的1903635166即为该歌曲的id

QQ音乐

同样进入QQ音乐网页版找到歌曲并进入详情页如下图

image-20220218154715806

其链接中的000cPEL247vktn即为歌曲id

使用举例

转换lrc文件

进入需要转换的lrc文件所在的目录运行命令其中的``file.lrc为对应的文件名(**必须写出后缀名**-I中的I必须大写),save.srt`为生成的srt文件名可以省略不写。

lts -I file.lrc save.srt

从网易云音乐或QQ音乐上获取歌词

按照上述步骤获取到对应歌曲的歌曲id后通过-i(小写的i)选项指定id即可获取歌词并转换成srt文件其中-s选项指定从哪个平台获取歌词目前只支持网易云和QQ音乐默认为网易云

# 从QQ音乐上下载传说的世界歌词并转换成SRT文件
lts -i 000cPEL247vktn -s qq "传说的世界.srt"
# 从网易云音乐上下载传说的世界歌词并转换成SRT文件这里省略了-s选项因为默认为网易云
lts -i 1903635166 "传说的世界.srt"
*注

-I-i同时指定即既传入了歌曲的id又传入了歌词文件时只有-i选项会有用。

下载歌词

使用-d选项即可下载原始的LRC歌词文件而不会进行转换

# 从QQ音乐上下载传说的世界歌词
lts -i 000cPEL247vktn -s qq -d "传说的世界.lrc"
# 从网易云音乐上下载传说的世界歌词,这里省略了-s选项因为默认为网易云
lts -i 1903635166 "传说的世界.lrc"

mode选项

只有歌词包含译文时才有意义mode选项用于控制生成的srt文件中原文和译文的排列方式可选值有

  • 1原文和译文交错排列默认

    7
    00:00:14,430 --> 00:00:17,920
    White shirt now red my bloody nose
    
    8
    00:00:14,430 --> 00:00:17,920
    血流不止的鼻子染红了我的白衬衫
    
    9
    00:00:17,920 --> 00:00:21,430
    Sleepin' you're on your tippy toes
    
    10
    00:00:17,920 --> 00:00:21,430
    你会踮着脚尖趁我安睡时
    
    11
    00:00:21,430 --> 00:00:24,960
    Creepin' around like no one knows
    
    12
    00:00:21,430 --> 00:00:24,960
    偷偷潜到我的身边 仿佛无人察觉
    
    ...
    
  • 2原文在上译文在下

    原文
    ....
    译文
    
  • 3译文在下原文在上

    译文
    ....
    原文
    

可通过-m选项指定mode

lts -i 003FJlVU1rxjv8 -m 2 -s qq "ふわふわ时间.srt"

结束时间处理策略

因为在LRC文件中并不包含一句歌词的结束时间所以在转换成SRT文件时处理策略为一句歌词的结束时间为下一句歌词的开始时间,最后一句歌词的结束时间为其开始时间+10秒,所以在打轴时,对进入间奏的地方应该手动调整歌词的结束时间。

源码编译

环境需求

编译

git clone https://github.com/Hami-Lemon/ltc.git
cd ./ltc/lrctocaptions
go build -o ltc.exe .