subtitle-translator
使用 LLM API 翻译具有 OpenAI 兼容格式的 SRT 字幕文件。支持单语和双语输出。当您需要将字幕文件 (.srt) 从一种语言翻译为另一种语言,同时保留时间戳时使用。批量处理 50 个句子,并记录进度。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~thetail001-subtitle-translate-skillcURL直接下载,无需登录
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