SRT-Datei übersetzen, ohne das Timing zu zerstören
SRT-Datei übersetzen, ohne das Timing zu zerstören: warum Übersetzer Timecodes ruinieren, vier Methoden dagegen und der Einzeiler, der kaputte Dateien erkennt.
Um eine SRT-Datei zu übersetzen und dabei das Timing zu behalten, nutze ein Tool, das das Untertitelformat parst, statt eines, das die Datei als Fließtext behandelt. Ein formatbewusstes Tool liest die Blocknummer, die Timecode-Zeile und den Text als drei getrennte Dinge, übersetzt nur das dritte und schreibt die anderen beiden exakt so zurück, wie sie waren.
Jede kaputte übersetzte Untertiteldatei geht auf denselben Fehler zurück: Die gesamte Datei landete in einem allgemeinen Übersetzer, der keinen Grund hatte zu wissen, welche Zeilen tragend waren.
Warum zerstört das Übersetzen einer SRT-Datei das Timing?
Ein SRT-Block hat vier Teile, und nur einer davon ist Sprache:
2
00:00:04,120 --> 00:00:06,480
The timings live on the line above.
A translator must never touch it.
Die Nummer identifiziert die Untertitelzeile. Die Timecode-Zeile mit ihren kommagetrennten Millisekunden und ihrem -->-Pfeil ist das Timing. Der Text ist der Untertitel. Die Leerzeile ist der Trenner, der einem Parser mitteilt, dass der Block zu Ende ist.
Ein allgemeiner Übersetzer sieht ein einziges Dokument, das alle vier enthält. Er hat keinen Grund, 00:00:04,120 --> 00:00:06,480 als Syntax zu behandeln, also gehen meist gleich drei Dinge zusammen schief:
- Untertitelzeilen werden zusammengeführt. Die Leerzeile zwischen den Blöcken ist für einen Fließtext-Übersetzer nur Leerraum, und übersteht sie die Hin- und Rückübersetzung nicht, werden aus zwei Untertitelzeilen ein Absatz. Alles danach liegt jetzt nicht mehr synchron zum Ton.
- Blöcke werden umnummeriert oder neu geordnet. Das Umbrechen von Absätzen verschiebt die Indexnummern, und manche Parser lehnen die Datei rundweg ab, während andere sie stillschweigend umnummerieren und die Untertitelzeilen verschieben.
- Timecodes werden umformatiert. Ein Leerzeichen um den Pfeil, ein Komma, das zu einem Punkt wird, ein anders aufgefülltes Millisekundenfeld — jedes davon reicht, um die Zeile unlesbar für den Parser zu machen.
Es gibt noch einen vierten Fehler, der nichts mit dem Übersetzer zu tun hat. Kodierung. Eine Datei mit Akzentzeichen oder einer nicht-lateinischen Schrift, die als Latin-1 oder Windows-1254 statt als UTF-8 gespeichert wird, erscheint in der Hälfte der Player, die sie öffnen, als Zeichensalat. Speichere jede Untertiteldatei als UTF-8, und dieses Problem verschwindet dauerhaft.
Das Verräterische daran: Eine verstümmelte Datei sieht beim Überfliegen oft noch gut aus. Der Text ist in der richtigen Sprache, die Timecodes sind noch da, und nichts schreit einen an. Sie versagt erst, wenn ein Player versucht, sie zu parsen — oder schlimmer, sie wird geparst und läuft zwei Sekunden daneben.
Die vier Wege, eine SRT-Datei zu übersetzen
Vom schnellsten zum kontrolliertesten:
- Subtitle Edit — kostenlos, Open Source, Übersetzung eingebaut, läuft lokal.
- Ein formatbewusster Online-Übersetzer — Datei hochladen, eine zurückbekommen.
- Ein LLM mit einem strikten Prompt — beste Terminologiekontrolle, braucht Verifizierung.
- Eine Desktop-App, die Übersetzung als Ebene behandelt — mehrere Sprachen aus einer Timeline.
Alle vier halten die Timecodes intakt, wenn sie richtig genutzt werden. Sie unterscheiden sich in Kosten, Privatsphäre und darin, wie viele Sprachen du produzierst.
Methode 1: Subtitle Edit
Die kostenlose Antwort, und die, mit der die meisten anfangen sollten.
Subtitle Edit ist Open Source, läuft unter Windows, macOS und Linux und hat eine Auto-Translate-Funktion, die den Text im Speicher ersetzt und die Blockstruktur allein durch ihre Bauart unangetastet lässt. Es bietet mehrere Engines — DeepL und Google, wenn du Schlüssel hast, LibreTranslate, wenn du selbst hostest, und lokale Modelle über Ollama, llama.cpp oder einen beliebigen OpenAI-kompatiblen Endpunkt.
- Öffne die
.srtin Subtitle Edit. - Wähle Auto-Translate und dann eine Engine und Zielsprache.
- Prüfe das Ergebnis in der Listenansicht, wo Original und Übersetzung nebeneinanderstehen.
- Speichere als neue Datei, UTF-8.
Der Weg über ein lokales Modell ist der, den es sich zu merken lohnt: Er braucht keinen API-Schlüssel, und nichts verlässt den Rechner, was ihn zur einzigen kostenlosen Methode auf dieser Seite macht, die auch privat ist. Der Kompromiss: Ein kleines lokales Modell übersetzt bei europäischen Sprachpaaren spürbar schlechter als DeepL, und du wirst mehr nachbearbeiten müssen.
Methode 2: Ein formatbewusster Online-Übersetzer
Datei hochladen, Sprache wählen, Ergebnis herunterladen. DeepL akzeptiert eine .srt als Dokumenttyp und liefert eine übersetzte .srt mit intakter Struktur zurück; wie viele Dokumente du verarbeiten kannst, hängt von deinem Plan ab. Mehrere spezialisierte Untertitel-Übersetzungsseiten machen dasselbe.
Das ist der schnellste Weg für eine Datei in einer Sprache, und die Qualität bei den großen europäischen Sprachpaaren ist ohne jede Konfiguration die beste der vier Methoden.
Zwei Dinge solltest du vorher wissen. Die Datei wird hochgeladen, also ist es die falsche Methode für alles Vertrauliche — einen unveröffentlichten Schnitt, das Filmmaterial eines Kunden, eine aufgezeichnete interne Besprechung. Und ein Dokumentübersetzer gibt dir keine Kontrolle über Terminologie: Produktnamen, Figurennamen und Fachjargon werden zusammen mit allem anderen übersetzt — genau das Gegenteil von dem, was du bei Namen willst.
Methode 3: Ein LLM mit einem strikten Prompt
Das gibt die beste Terminologiekontrolle der vier Methoden, weil du dem Modell sagen kannst, was es nicht übersetzen soll. Es ist auch die Methode, die eine Datei am ehesten still und leise beschädigt, weshalb der Verifizierungsschritt nicht optional ist.
Ein Prompt, der funktioniert:
Translate the subtitle text below from English into German.
Rules:
- Output exactly the same number of subtitle blocks as the input.
- Copy every block number and every timecode line unchanged, character for character.
- Translate only the subtitle text lines.
- Keep the blank line between blocks.
- Do not merge, split, reorder or renumber blocks.
- Do not translate these terms: [list product and character names here]
- Keep each translated line roughly the length of the original.
Arbeite in Abschnitten von 50 bis 100 Blöcken, statt einen zweistündigen Film in einem Rutsch einzufügen. Bei langen Eingaben fangen Modelle an, Untertitelzeilen zusammenzuführen und Blöcke fallen zu lassen — und sie tun das, ohne es zu erwähnen.
Dann verifizieren. Dieser Einzeiler zählt die Timecode-Zeilen in beiden Dateien:
grep -c " --> " original.srt translated.srt
Die beiden Zahlen müssen identisch sein. Ist die Übersetzung kürzer, wurden Blöcke zusammengeführt, und jede Untertitelzeile nach der Zusammenführung ist jetzt falsch. Führe diese Prüfung bei jeder LLM-Übersetzung durch, jedes Mal.
Methode 4: Als Ebene übersetzen, nicht als Datei
Die drei Methoden oben teilen alle dieselbe Form: Du hast eine Datei, produzierst eine weitere, und willst du acht Sprachen, machst du das achtmal und verwaltest acht Dateien.
Eine Desktop-App kann stattdessen eine einzige Timeline behalten. In Sablate ist eine Übersetzung eine Ebene, die zu einer bestehenden Transkription hinzukommt, statt ein neuer Auftrag — die Segmentgrenzen werden einmal angelegt, und jede Sprache übernimmt sie, sodass sich die Timing-Frage kein zweites Mal stellt. Jede Ebene trägt ihren eigenen Stil und ihre eigene Schriftart für ihr Schriftsystem — wichtig in dem Moment, in dem eine Sprache ein Schriftsystem braucht, das die Untertitel-Schriftart nicht enthält.
Zwei Übersetzungswege stehen zur Verfügung. Argos läuft offline auf deinem Rechner und sendet nie irgendetwas irgendwohin; DeepL, OpenAI und Claude stehen bereit, wenn du deinen eigenen API-Schlüssel mitbringst. Ein ehrliches Detail zum Offline-Weg: Argos veröffentlicht Pakete, die auf einer Seite mit Englisch gepaart sind, also hat ein Paar wie Türkisch nach Deutsch kein direktes Paket und wird über Englisch als Zwischenschritt zusammengesetzt. Es funktioniert, und eine Zeile von Türkisch nach Deutsch klingt etwas flacher als eine von Türkisch nach Englisch.
Im kostenlosen Plan ist eine offline Übersetzungsebene pro Auftrag enthalten, für Videos bis zu zehn Minuten; unbegrenzte Ebenen, die Cloud-Engines und Ein-Klick-Export für jede Sprache gehören zu Pro. Lade es für Windows oder Mac herunter und übersetze eine Datei, bevor du dich für irgendetwas entscheidest.
Welche Methode solltest du nutzen?
| Methode | Kosten | Läuft offline | Terminologiekontrolle | Am besten für |
|---|---|---|---|---|
| Subtitle Edit | Kostenlos | Ja, mit einem lokalen Modell | Teilweise | Eine Datei, jedes Sprachenpaar |
| Online-Dokumentübersetzer | Kostenlose Stufe, dann kostenpflichtig | Nein | Nein | Schnellstes gutes Ergebnis bei europäischen Sprachpaaren |
| LLM mit striktem Prompt | Je nach Modell unterschiedlich | Ja, mit einem lokalen Modell | Ja | Fachjargon, Namen, ein firmeneigenes Glossar |
| Sablate | Kostenlose Stufe, Pro einmalig $29 | Ja | Ja | Mehrere Sprachen aus einem Transkript |
„Ich habe eine Datei und kein Budget.“ Subtitle Edit. Es ist kostenlos, es ist das fähigste Untertitel-Tool auf dieser Liste für Formatarbeit, und es bricht dein Timing nicht.
„Ich brauche die beste deutsche Übersetzung, und die Datei ist nicht sensibel.“ Ein Dokumentübersetzer. DeepLs Ergebnis von Englisch nach Deutsch braucht von allem hier am wenigsten Nacharbeit.
„Das Video ist vertraulich.“ Subtitle Edit mit einem lokalen Modell, oder Sablates Offline-Weg. Alles, was hochlädt, ist disqualifiziert, egal wie gut es ist.
„Ich liefere dasselbe Video in sechs Sprachen aus.“ Ebenen, keine Dateien. Die Methoden pro Datei vervielfachen sich mal sechs; ein ebenenbasierter Workflow tut das nicht, und der mehrsprachige Workflow erklärt, warum das Transkript das sorgfältige Korrekturlesen verdient, bevor irgendetwas davon beginnt.
Wie du verhinderst, dass das Timing wieder bricht
Drei Gewohnheiten, geordnet danach, wie viel Zeit sie sparen.
Prüfe die Blockzahl bei jeder Übersetzung. Die grep-Zeile oben dauert zwei Sekunden und fängt den einzigen Fehler ab, der bei einer Sichtprüfung unsichtbar bleibt. Eine übersetzte Datei mit weniger Blöcken als ihre Quelle ist immer kaputt.
Prüfe die Lesegeschwindigkeit nach dem Übersetzen, nicht nach dem Transkribieren. Die Timings haben überlebt; der Text ist nicht gleich lang geblieben. Englisch ins Spanische oder Französische wird meist 20 bis 25 Prozent länger, Deutsch bis zu 35 Prozent, alles innerhalb derselben Sekundenzahl. Eine komfortable 14-CPS-Zeile wird zu einer 17,5-CPS-Zeile, ohne dass sich ein einziger Zeitstempel bewegt — die Lesegeschwindigkeits-Grenzwerte behandeln, was dagegen hilft, und die Antwort ist immer, die Worte oder die Dauer zu ändern, niemals den Sync.
Behalte das Ausgangstranskript als Master. Korrigiere Namen, Fachbegriffe und Zeichensetzung dort, bevor du irgendetwas übersetzt. Ein Nachname, der in der Quelle korrigiert wird, ist in jeder Sprache korrigiert; derselbe Nachname, danach korrigiert, ist eine Änderung pro Sprache — und die Änderungen laufen auseinander.
Landet das am Ende in einem eingebrannten Video, mach es als Letztes. Die Lesegeschwindigkeit in einer eingebrannten Kopie ist endgültig, und das Format, in das du exportierst entscheidet, ob der Zuschauer die Sprache überhaupt wechseln kann.
Übersetze die Datei, nicht das Video. Behalte die Timeline, für die du schon bezahlt hast, stecke die Arbeit in die Worte, die darauf sitzen, und prüfe die Blockzahl, bevor du lieferst.