# @gosavetool/subtitles 中文文档

规范地址：https://npmcn.com/package/%40gosavetool/subtitles/

版本：1\.0\.0
npm 元数据更新时间：2026-11-01T05:24:17.632Z
中文译文更新时间：2026-11-01T06:33:34.784Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40gosavetool/subtitles
原文对照：https://npmcn.com/package/%40gosavetool/subtitles/?lang=original
项目主页：https://www.gosavetool.com/vtt-subtitle-generator
源码仓库：https://github.com/mitolocya/gosavetool

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.7 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=14
- 运行依赖：0 个
- 首次发布：2026-11-01T05:23:01.396Z
- 最新版本发布：2026-11-01T05:24:17.448Z
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

解析，转换，移位和修复SRT和WebVTT字幕。零依赖，使用CLI。

## 安装

```sh
npm install @gosavetool/subtitles
```

也可以使用：`pnpm add @gosavetool/subtitles`、`yarn add @gosavetool/subtitles`、`bun add @gosavetool/subtitles`

## README

# @gosavetool /字幕

解析、转换、移位和修复 **SRT** 和 **WebVTT** 字幕。零依赖，在Node和浏览器中工作，并附带一个小CLI。

由 [GoSaveTool](https://www.gosavetool.com/)． 喜欢视觉编辑器？这个 [VTT字幕生成器](https://www.gosavetool.com/vtt-subtitle-generator) 根据浏览器中的视频计时字幕。

## 安装

```bash
npm install @gosavetool/subtitles
```

## 将SRT转换为WebVTT

```js
const { convert } = require('@gosavetool/subtitles');

const vtt = convert(fs.readFileSync('movie.srt', 'utf8'), 'vtt');
const srt = convert(fs.readFileSync('movie.vtt', 'utf8'), 'srt');
```

## 利用线索

```js
const { parse, shift, repair, toSrt, toVtt } = require('@gosavetool/subtitles');

const cues = parse(text);           // [{ start: 1000, end: 3500, settings: '', text: 'Hello' }, …]
const later = shift(cues, 1500);    // every cue 1.5 s later (negative = earlier)
const { cues: fixed, fixed: n } = repair(cues); // sort, fix overlaps and bad end times, drop empty cues
fs.writeFileSync('out.srt', toSrt(fixed));
```

| 函数 | 返回 |
| --- | --- |
| `parse(text)` | SRT或WebVTT文本的提示，以毫秒为单位 |
| `toSrt(cues)` / `toVtt(cues)` | 字幕文本;SRT从1开始重新编号 |
| `convert(text, 'srt' | 'vtt')` | 在一次呼叫中转换文本 |
| `shift(cues, ms)` | 线索移动 `ms`;0之前的球杆被剪掉或丢弃 |
| `repair(cues, { minDuration })` | `{ cues, fixed }` 随着数量的变化 |
| `isVtt(text)` | `true` 当文本以 `WEBVTT` |
| `toMs('00:01:02,500')` / `fromMs(62500, '.')` | 时间戳↔毫秒 |

包括TypeScript类型。

## 命令行界面

```bash
npx @gosavetool/subtitles convert movie.srt --to vtt
npx @gosavetool/subtitles shift movie.srt -1.5
npx @gosavetool/subtitles repair movie.vtt
npx @gosavetool/subtitles info movie.srt
```

`-o out.vtt` 写入另一个文件， `--stdout` 输出结果。

## 相关

-   [自动字幕生成器](https://www.gosavetool.com/auto-captions-generator)：演讲说明
-   [视频转文本](https://www.gosavetool.com/video-to-text)转录一段视频
-   Python: [`gosavetool-subtitles`](https://pypi.org/project/gosavetool-subtitles/) ·PHP: [`gosavetool/subtitles`](https://packagist.org/packages/gosavetool/subtitles)
-   VS代码: [GoSaveTool扩展](https://marketplace.visualstudio.com/items?itemName=gosavetool.gosavetool)

## 许可证

麻省理工学院

## 常见问题

### @gosavetool/subtitles 是什么？

解析，转换，移位和修复SRT和WebVTT字幕。零依赖，使用CLI。

### 如何安装 @gosavetool/subtitles？

在项目目录运行 npm install @gosavetool/subtitles，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 subtitles，可以用 npx subtitles 直接运行。

### @gosavetool/subtitles 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @gosavetool/subtitles 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @gosavetool/subtitles 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=14。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @gosavetool/subtitles 可以商用吗？

@gosavetool/subtitles 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @gosavetool/subtitles 还在维护吗？

最新版本 1\.0\.0 发布于 2026/11/01（2 天前）；至今共发布 2 个版本，其中过去 12 个月发布了 2 个；首次发布于 2026/11/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

