最近有个需求要把大量的vtt文件转成lrc文件,在网上找了半天没一个好用的软件,一气之下索性自己写了个批处理文件来解决

VTT文件与LRC文件

下面是VTT文件的形式:

WEBVTT

1
00:00:03.017 --> 00:00:08.156
第一句话

2
00:00:09.220 --> 00:00:15.849
第二句话

3
00:00:17.906 --> 00:00:25.206
第三句话

4
00:00:26.042 --> 00:00:31.042
第四句话...

下面是LRC文件的格式:

[00:03.01]第一句话
[00:09.22]第二句话
[00:17.90]第三句话
[00:26.04]第四句话...

可以看到这两种文件格式其实很好转换 ,也许就是因为简单所以没人搞?核心想法就是把VTT里的起始时间和内容挖出来再写入一个新文件,这里也不多赘述了...

VTT to LRC

下面是源码,直接复制粘贴再重命名为bat应该就行:

@echo off
chcp 65001

if not exist %1 (
  echo 错误的文件名!
  goto end
)

set counter=0
echo |set /p=>%1.lrc


setlocal EnableDelayedExpansion
for /f %%i in ('type %1') do (
  set /a counter+=1

  if !counter! GEQ 3 (
    if !counter!==3 (
      set ttt=%%i
    )
    if !counter!==4 (
      echo [!ttt:~3,8!]%%i>>%1.lrc
      set counter=1
    )
  )
)
setlocal DisableDelayedExpansion

:end

使用方法 

首先将bat文件放到要转换的文件所在的文件夹下,然后启动cmd,移动到该文件夹,以下是使用示例,假设bat文件名为 "VTT2LRC.bat" :

VTT2LRC.bat 目标文件.vtt

运行完以后可以在文件夹中找到名为 "目标文件.vtt.lrc" 的文件,那就是转换完成的LRC文件。在实际使用时可以利用Tab快速补全文件名,效率要比借助其他的软件一个一个导入导出快不少 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐