subtitle-translator

TotalClaw 作者 totalclaw

使用 LLM API 翻译具有 OpenAI 兼容格式的 SRT 字幕文件。支持单语和双语输出。当您需要将字幕文件 (.srt) 从一种语言翻译为另一种语言,同时保留时间戳时使用。批量处理 50 个句子,并记录进度。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~thetail001-subtitle-translate-skill
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~thetail001-subtitle-translate-skill/file -o thetail001-subtitle-translate-skill.md
## 概述(中文)

使用 LLM API 翻译具有 OpenAI 兼容格式的 SRT 字幕文件。支持单语和双语输出。当您需要将字幕文件 (.srt) 从一种语言翻译为另一种语言,同时保留时间戳时使用。批量处理 50 个句子,并记录进度。

## 原文

# Subtitle Translator

## Overview

Translate SRT subtitle files using LLM APIs. Supports OpenAI-compatible API format with customizable URL, API key, and model selection. Outputs single-language or bilingual subtitles with original timestamps preserved.

## Features

- **Format Support**: SRT subtitles
- **API Compatibility**: OpenAI-compatible endpoints
- **Output Modes**: Single-language or bilingual (translation above original)
- **Batch Processing**: 50 sentences per batch (configurable) with 1-second intervals
- **Progress Tracking**: Detailed logging of task progress and execution
- **Validation**: Ensures sentence count consistency and timestamp preservation

## Quick Start

### Basic Translation

```bash
python3 scripts/translate_srt.py \
  --input video.srt \
  --output video_zh.srt \
  --source-lang en \
  --target-lang zh \
  --api-url https://api.openai.com/v1 \
  --api-key sk-... \
  --model gpt-4
```

### Bilingual Output

```bash
python3 scripts/translate_srt.py \
  --input video.srt \
  --output video_bilingual.srt \
  --source-lang en \
  --target-lang zh \
  --bilingual \
  --api-url https://api.openai.com/v1 \
  --api-key sk-...
```

### Validate SRT File

```bash
python3 scripts/validate_srt.py input.srt
```

### List Available Models

```bash
python3 scripts/list_models.py \
  --api-url https://api.openai.com/v1 \
  --api-key sk-...
```

## Configuration

### Option 1: Environment Variables (Recommended)

```bash
export SUBTITLE_API_URL="https://api.openai.com/v1"
export SUBTITLE_API_KEY="sk-your-api-key"
export SUBTITLE_MODEL="gpt-4"

python3 scripts/translate_srt.py -i input.srt -o output.srt
```

### Option 2: Command Line Arguments

```bash
python3 scripts/translate_srt.py \
  -i input.srt \
  -o output.srt \
  -u https://api.openai.com/v1 \
  -k sk-your-api-key \
  -m gpt-4
```

### Option 3: Config File (Less Secure)

Create `~/.openclaw/skills/subtitle-translator/config.json`:

```json
{
  "api_url": "https://api.openai.com/v1",
  "api_key": "sk-your-api-key",
  "model": "gpt-4",
  "batch_size": 50,
  "batch_interval_ms": 1000,
  "output_mode": "single",
  "log_level": "info"
}
```

⚠️ **Security Warning**: Storing API keys in plaintext config files increases risk. Prefer environment variables or command line arguments.

## Security Considerations

1. **API Key Storage**: Use environment variables or secure secret managers instead of plaintext config files
2. **API Endpoint**: Ensure you trust the API URL you provide
3. **Proxy Environment**: The scripts honor `http_proxy`/`https_proxy` environment variables. If your environment uses untrusted proxies, API keys could be captured
4. **Network Traffic**: All subtitle content is sent to the API endpoint. Do not use with sensitive/confidential content unless you control the API

## Workflow

1. **Parse SRT**: Extract index, timecodes, and text
2. **Validate**: Optional validation of input format
3. **Batch Translation**: Send 50 sentences per request (configurable)
4. **Validate**: Ensure output count matches input
5. **Reconstruct**: Combine original timecodes with translations
6. **Output**: Generate SRT file

## Resources

### scripts/

- `translate_srt.py` - Main translation script
- `list_models.py` - List available models from API
- `validate_srt.py` - Validate SRT file format

### references/

- `srt_format.md` - SRT file format specification