最近在听dlsite的音声,但是.vtt格式的字幕文件在常规手机播放器上无法正常使用。因此想实现最简单的批量vtt转lrc,在网上查找无果后决定自己搞一个。代码如下:
@echo off
chcp 65001
setlocal EnableDelayedExpansion
:: 遍历当前目录下的所有 .vtt 文件
for %%f in (*.vtt) do (
echo Converting: %%f
:: 获取不含扩展名的文件基本名,并移除可能的后缀,这部分可自行进行增添
set "base_name=%%~nf"
set "base_name=!base_name:.mp3=!"
set "base_name=!base_name:.vtt=!"
set "base_name=!base_name:.wav=!"
:: 创建对应的 .lrc 文件名
set "lrc_file=!base_name!.lrc"
echo. > "!lrc_file!"
set "counter=0"
:: 读取并转换每一行
for /f "tokens=*" %%i in (%%f) do (
set /a counter+=1
if !counter! geq 3 (
if !counter!==3 (
set "ttt=%%i"
)
if !counter!==4 (
echo [!ttt:~3,8!]%%i>>"!lrc_file!"
set "counter=1"
)
)
)
)
echo All .vtt files have been converted to .lrc format.
pause
endlocal
这段代码基于fesdfe288大佬的代码进行修改,原文地址vtt转lrc批处理文件_vtt字幕文件转化为lrc-CSDN博客。将原来的转换指定文件更改为转换当前目录所有后缀为vtt的文件,并删除无关后缀残余,适用于单个目录内批量处理(就是同人音声)。经多组测试,测试的文件使用potplayer可以正常播放转换后歌词。
备注:原来存在的问题现在也依然存在,具体情况可参考原文。本修改仅针对特定用途进行。