webrium/vtt-parser 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

webrium/vtt-parser

Composer 安装命令:

composer require webrium/vtt-parser

包简介

Parser of vtt subtitles by php

README 文档

README

Features

  • Load and parse VTT files
  • Extract timestamp information
  • Validate subtitle structure
  • Handle malformed files with error tracking
  • Lightweight and dependency-free

Installation

Composer

composer require webrium/vtt-parser

Usage

Basic Parsing

<?php

use Vtt\TextParser;

$parser = new TextParser();
$loaded = $parser->openFile('/path/to/files', 'subtitles.vtt');

if ($loaded) {
    $subtitles = $parser->parse();
    
    foreach ($subtitles as $subtitle) {
        echo "Time: {$subtitle['time']['start']} - {$subtitle['time']['end']}\n";
        echo "Text: " . implode("\n", $subtitle['text']) . "\n\n";
    }
}

Validation

$validation = $parser->textValidation();

if ($validation['ok']) {
    echo "VTT file is valid";
} else {
    echo "Found errors at lines: " . implode(', ', $validation['errors']);
}

API Reference

openFile(string $file_path, string $file_name): bool

Loads a VTT file for parsing.

Parameters:

$file_path: Directory path

$file_name: Filename

Returns: true if file was successfully loaded parse(): array

Parses the loaded VTT file.

Returns: Array of subtitle blocks with structure:

[
    [
        'time' => [
            'start' => 'HH:MM:SS',
            'end' => 'HH:MM:SS'
        ],
        'text' => [
            'Subtitle line 1',
            'Subtitle line 2'
        ]
    ],
    // ...
]

textValidation(): array

Validates the VTT structure.

Returns: Validation result array:

[
    'ok' => bool,     // Overall validation status
    'errors' => array // Line numbers with errors
]

Error Handling

The parser throws exceptions for:

Missing start/end timestamps (InvalidArgumentException)

File not found (when using openFile)

Always wrap calls in try-catch blocks:

try {
    $parser->openFile('path', 'file.vtt');
    $subtitles = $parser->parse();
} catch (\InvalidArgumentException $e) {
    echo "Error: " . $e->getMessage();
}

Example VTT File

WEBVTT

00:00:01.000 --> 00:00:04.000
Hello world!

00:00:05.000 --> 00:00:08.000
This is a subtitle
Second line

Output Structure

[
    [
        'time' => [
            'start' => '00:00:01',
            'end' => '00:00:04'
        ],
        'text' => ['Hello world!']
    ],
    [
        'time' => [
            'start' => '00:00:05',
            'end' => '00:00:08'
        ],
        'text' => ['This is a subtitle', 'Second line']
    ]
]

webrium/vtt-parser 适用场景与选型建议

webrium/vtt-parser 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 21 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 07 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 webrium/vtt-parser 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 webrium/vtt-parser 我们能提供哪些服务?
定制开发 / 二次开发

基于 webrium/vtt-parser 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 21
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 17
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-07-10