You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用node-webvtt解析器遇Unexpected token ':'错误,求原因

解析WebVTT文件时「Unexpected token ':'」错误排查与解决

问题描述

使用node-webvtt包解析WebVTT内容时,无论传入完整文件还是片段字符串,均抛出「Unexpected token ':'」错误,即使将解析逻辑包裹在try-catch块中也无法拦截该错误,移除try-catch后错误依旧出现。

相关代码

const parsed = (err) => {
    try{
        webvtt.parse(`WEBVTT 


1
00:02:57,642 --> 00:02:58,672
Happy Monday, everybody.`);
    }catch(err){
        console.log(err);
    }
}

排查与解决步骤

  • 检查时间格式细节
    确认时间戳里的冒号是半角英文冒号,毫秒部分用逗号分隔(不能用句号)。你提供的示例格式没问题,但可以手动替换一遍时间里的符号,排除编码导致的全角符号问题。

  • 调整内容结构,减少多余空行
    把WEBVTT后面的连续空行改成一行,保持标准WebVTT结构:

    webvtt.parse(`WEBVTT
    
    1
    00:02:57,642 --> 00:02:58,672
    Happy Monday, everybody.`);
    

    连续多行空行可能让解析器误判结构。

  • 更新node-webvtt到最新版本
    旧版本可能存在格式兼容bug,运行命令更新:

    npm update node-webvtt
    
  • 确认webvtt变量已正确引入
    代码开头必须有引入语句,否则解析方法无法被正确调用:

    const webvtt = require('node-webvtt');
    
  • 换文件读取方式测试
    避免模板字符串的转义问题,直接读取本地文件内容解析:

    const fs = require('fs');
    const webvtt = require('node-webvtt');
    
    const parsed = () => {
        try {
            const content = fs.readFileSync('./your-subtitle.vtt', 'utf8');
            const result = webvtt.parse(content);
            console.log(result);
        } catch (err) {
            console.error(err);
        }
    }
    

内容的提问来源于stack exchange,提问作者chicken_code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:05:15