mcpField
S
srt-translator

srt-translator

github.com/nicepkgCreative & media28863 installsUpdated 40w ago
Repository

About srt-translator

srt-translator is a subtitle translation guide for video creators, covering SRT, VTT, and plain text. It focuses on preserving timing and structure, with guidance for localization, batch translation, and quality checks.

Key features

  1. 01Supports SRT, VTT, and plain text
  2. 02Preserves subtitle numbering and timing
  3. 03Guidance for batch translation
  4. 04Localizes for cultural context
  5. 05Checks line length, format, and encoding

Use cases

  1. 01Translate SRT subtitles into another language
  2. 02Convert a transcript to SRT and translate it
  3. 03Prepare subtitle versions for multiple language audiences

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nicepkg/ai-workflow --skill srt-translator

After installing, type/srt-translatorin Claude Code to confirm it loaded.

Details

From the project README

SRT Translator

Translate subtitles while preserving timing and formatting.

Supported Formats

FormatExtensionDescription
SubRip.srtMost common, numbered entries
WebVTT.vttWeb standard, supports styling
Plain Text.txtTranscript without timing

SRT Format Reference

1
00:00:01,000 --> 00:00:04,000
This is the first subtitle line.

2
00:00:04,500 --> 00:00:08,000
This is the second subtitle line.
It can have multiple lines.

3
00:00:08,500 --> 00:00:12,000
And so on...

Translation Guidelines

Preserve Structure
ORIGINAL (English):
1
00:00:05,000 --> 00:00:08,500
Welcome to my channel!

TRANSLATED (Spanish):
1
00:00:05,000 --> 00:00:08,500
¡Bienvenidos a mi canal!

✅ Same timing, same number
✅ Natural translation (not word-for-word)
✅ Appropriate punctuation for target language
Handle Line Length
PROBLEM: Translation is longer than original
SOLUTION: Split or abbreviate while keeping meaning

ORIGINAL:
1
00:00:10,000 --> 00:00:13,000
Click the subscribe button

GERMAN (longer):
1
00:00:10,000 --> 00:00:13,000
Klickt auf den
Abonnieren-Button

✅ Split into two lines if needed
✅ Keep within ~42 characters per line
✅ Maintain readability
Cultural Adaptation
DON'T just translate - LOCALIZE:

Original: "That costs about 20 bucks"
Spanish (Latin America): "Eso cuesta unos 20 dólares"
Spanish (Spain): "Eso cuesta unos 20 euros"

Original: "Super Bowl Sunday"
French: "Le dimanche du Super Bowl" (keep cultural reference)
Chinese: "超级碗周日" (may need explanation)

Translation Output Format

═══════════════════════════════════════════════════════════════
SUBTITLE TRANSLATION
Source Language: [Language]
Target Language: [Language]
Total Entries: [X]
═══════════════════════════════════════════════════════════════

TRANSLATION NOTES:
─────────────────────────────────────────────────────────────
• [Any cultural adaptations made]
• [Technical terms kept/translated]
• [Idioms adapted]

TRANSLATED SRT:
─────────────────────────────────────────────────────────────
1
00:00:00,000 --> 00:00:03,500
[Translated text]

2
00:00:04,000 --> 00:00:07,500
[Translated text]

[Continue for all entries...]

═══════════════════════════════════════════════════════════════
COPY-PASTE READY FILE:
═══════════════════════════════════════════════════════════════
[Clean SRT output without notes]

How to Use

Full SRT Translation
Translate this SRT file to [Language]:

[Paste SRT content]
Batch Translation Request
Translate to multiple languages:
Languages: Spanish, French, German, Japanese, Chinese

[Paste SRT content]
With Context
Translate this gaming video subtitle to Korean:
- Game: [Game name]
- Tone: [Casual/Professional]
- Technical terms: [Keep English / Translate]

[Paste SRT content]
From Transcript to SRT
Convert this transcript to SRT format, then translate to [Language]:

[00:00] Hello everyone, welcome to the video.
[00:05] Today we're going to talk about...

Translation Tips by Language

Spanish (ES/LATAM)
• Use ustedes (LATAM) vs vosotros (Spain)
• "Click" = "Haz clic" / "Da clic"
• Keep brand names in English
• Informal tone often preferred for YouTube
French (FR/CA)
• Tu (informal) vs Vous (formal) - YouTube usually tu
• "Subscribe" = "Abonnez-vous" / "Abonne-toi"
• Quebec French has unique expressions
• Keep anglicisms when commonly used
German (DE)
• Du (informal) vs Sie (formal) - Du common on YouTube
• Compound words can be very long - may need line breaks
• "Daumen hoch" = Thumbs up
• Technical terms often kept in English
Japanese (JA)
• Casual (だ/である) vs Polite (です/ます)
• YouTube content usually casual-polite mix
• Keep brand names in katakana or English
• Consider vertical text for some contexts
Chinese (ZH-CN/ZH-TW)
• Simplified (CN) vs Traditional (TW)
• No spaces between words
• "Subscribe" = 订阅 (CN) / 訂閱 (TW)
• May need shorter text (faster reading)
Korean (KO)
• Honorific levels matter (해요체 common for YouTube)
• "Subscribe" = 구독
• Mixing English is common and accepted
• Konglish terms often preferred
Portuguese (PT-BR/PT-PT)
• Brazilian vs European Portuguese differ significantly
• "Você" vs "Tu" usage varies
• "Subscribe" = "Se inscreva" (BR) / "Subscreva" (PT)
• Brazilian audience is larger on YouTube
Arabic (AR)
• Right-to-left text
• Modern Standard vs Colloquial
• Numbers may need adjustment
• Consider dialect for specific regions
Hindi (HI)
• Devanagari script
• English mixing (Hinglish) is common
• Formal vs informal forms
• Regional language considerations

Quality Checklist

Before finalizing translation:

  • Timing unchanged from original
  • Line numbers sequential and correct
  • No missing entries
  • Line length readable (≤42 chars)
  • Natural language (not robotic)
  • Cultural references adapted
  • Technical terms consistent
  • Punctuation correct for target language
  • Character encoding correct (UTF-8)
  • Format valid (SRT/VTT structure)

Common Issues & Solutions

IssueCauseSolution
Text overflowTranslation longer than originalSplit lines, use abbreviations
Timing mismatchReading speed differentAdjust text length, not timing
Encoding errorsWrong character setSave as UTF-8 with BOM
Broken formatExtra line breaksValidate SRT structure
Awkward phrasingLiteral translationLocalize for natural speech

Multi-Language Workflow

EFFICIENT BATCH PROCESS:

1. Get original transcript/SRT
2. Identify top languages for your audience:
   - Check YouTube Analytics for viewer locations
   - Common targets: ES, PT-BR, FR, DE, JA, KO, ZH

3. Translation priority order:
   Tier 1: Spanish, Portuguese (largest non-EN audiences)
   Tier 2: French, German (strong markets)
   Tier 3: Japanese, Korean (dedicated fandoms)
   Tier 4: Chinese, Hindi (massive populations)

4. Upload workflow:
   - YouTube: Add via Studio > Subtitles
   - Filename: videoname.[lang].srt (e.g., video.es.srt)

Integration with YouTube

Upload Subtitles
YouTube Studio > Video > Subtitles > Add Language

File types accepted:
- .srt (SubRip)
- .sbv (YouTube format)
- .vtt (WebVTT)
- .sub (SubViewer)

Naming convention:
videoname.en.srt (English)
videoname.es.srt (Spanish)
videoname.ja.srt (Japanese)
Auto-Translate Warning
⚠️ YouTube's auto-translate is poor quality.
   Always provide human-quality translations for top languages.

Priority: Upload translated subtitles for your top 3-5 viewer countries.

Comments

Markdown supported