SRT zu Text: ein sauberes Transkript aus Untertiteln gewinnen
Veröffentlicht am 5.8.2026 · 11 Min. Lesezeit · Entwickler-Tools
Daniel Okonkwo — Front-end-Entwickler und Tech-Redakteur bei OneKitly
Web-Performance · Dateiformate
Anhand von 3 Quellen geprüft
Dieser Konverter entfernt genau zwei Dinge: die Untertitelnummer und die Zeitzeile. Alles zwischen Zeitzeile und Leerzeile kommt unverändert durch — eine bewusste Entscheidung und zugleich das, was die meisten falsch verstehen. Gib ihm eine Untertiteldatei, und die Kursiv-Tags überleben als <i>…</i>, die Farb-Tags als <font color=…>, die Positionsanweisung als {\an8}, die Geräuschbeschreibungen als [MÖWEN], die Dialogstriche als Bindestrich plus Leerzeichen, und in einer WebVTT-Datei überleben die Sprecher-Tags als <v Roger Bingham>, dazu Klassen-Tags und die eingebetteten <00:00:07.500>-Stempel für wortweise Hervorhebung. Was es dir auf der WebVTT-Seite abnimmt, ist die Struktur um die Untertitel herum: WEBVTT-Header, NOTE-Kommentarblöcke, STYLE-Blöcke, REGION-Blöcke, Cue-Bezeichner und die Einstellungsliste nach dem Pfeil werden sämtlich verworfen. Das Zweite betrifft die Zusammenführungsoption. „Jeden Untertitel in eine Zeile zusammenführen“ verbindet die Zeilen innerhalb eines Untertitels; sie verbindet nie einen über zwei Untertitel verteilten Satz, und nichts in der Datei ließe das zu — ein Untertitelumbruch entscheidet, wie viel Text auf den Schirm passt, nicht wo ein Satz endet. Eine Zeile „Die Sache mit dem Hafen“ gefolgt von einem Untertitel „ist, dass er nie richtig zufror“ kommt in beiden Modi als zwei Zeilen heraus. Rollende Untertitel, die eine Zeile beim Scrollen wiederholen, werden ebenfalls nicht entdoppelt. Rechne mit einem Durchgang Suchen-und-Ersetzen für die Auszeichnung und einem Durchlesen für die Verbindungen.
Nummern und Zeitstempel zu entfernen ist die leichte Hälfte. Über die Lesbarkeit entscheiden Kursiv-Tags, Dialogstriche, Geräuschbeschreibungen und über zwei Untertitel gebrochene Sätze — und dieser Konverter überlässt sie dir allesamt.
Die leichte Hälfte: Nummern, Zeiten, Leerzeilen
Eine SubRip-Datei besteht aus vier wiederholten Dingen: einem Zähler, einer Zeitzeile, einer oder mehreren Textzeilen und einer Leerzeile, die den Block schließt. Drei dieser vier sind Gerüst. Entferne sie, und du hast ein Transkript — hier fängt jeder Untertitel-zu-Text-Konverter an, und hier gelingt es allen. Dieser liest jeden Block, springt vor, bis er eine Zeile mit dem Pfeil findet, und behält alles danach bis zur Leerzeile. Der Zähler wird verworfen, ob er in der Reihe steht oder nicht, eine Datei mit doppelten oder unsortierten Nummern konvertiert also problemlos.
Eine Folge, die man kennen sollte: Ein Untertitel ganz ohne Text zählt trotzdem als Untertitel. Manche Encoder geben einen leeren Block aus, um eine Einblendung vom Schirm zu nehmen; der Konverter findet dessen Zeitzeile, behält das Nichts danach, und das Transkript beginnt mit zwei Leerzeilen vor dem ersten echten Satz. Harmlos, aber es sieht nach einem Fehler deines Exports aus statt nach einer Eigenheit deiner Quelle — deshalb lohnt es, es zu erkennen.
Die schwere Hälfte: alles, was der Konverter stehen lässt
Untertiteltext ist kein reiner Text. Das ursprüngliche SubRip-Programm unterstützte einen kleinen, von HTML abgeleiteten Satz an Formatierungen — fett, kursiv, unterstrichen und farbig — und diese Tags reisen mit der Datei. Fansubs und Rips fügen mehr hinzu: {\an8}, um eine Einblendung an den oberen Bildrand zu heben, wenn sie mit eingebranntem Text kollidieren würde, und Geräuschbeschreibungen in eckigen Klammern wie [MÖWEN] oder [MUSIK], die zur Untertitelung für Gehörlose und Schwerhörige gehören. Zwei Sprecher in einem Untertitel werden konventionell mit Bindestrich und Leerzeichen am Anfang jeder Zeile markiert. Nichts davon wird hier entfernt, und nichts sollte ohne deine Entscheidung entfernt werden: Ob ein Transkript seine Geräuschbeschreibungen behält, hängt ganz davon ab, wozu es dient.
WebVTT bringt sein eigenes Vokabular mit, und die Behandlung durch den Konverter zerfällt sauber in zwei Teile. Die Struktur um die Untertitel wird bewältigt: die WEBVTT-Kopfzeile, NOTE-Kommentarblöcke, STYLE-Blöcke mit CSS, REGION-Blöcke für Scrollbereiche, der optionale Bezeichner über der Zeitzeile und die Einstellungsliste nach dem Pfeil — Ausrichtung, Position, Zeile, Region — werden allesamt entfernt, denn sie stehen nie im Untertitelrumpf. Die Auszeichnung im Rumpf wird überhaupt nicht behandelt. Ein Sprecher-Tag, das die Spezifikation als öffnendes Tag v mit einer den Sprecher benennenden Annotation definiert, landet in deinem Transkript als der wörtliche Text <v Roger Bingham>. Klassen-Tags landen als <c.yellow>…</c>. Wortweise Hervorhebung landet als nackte Stempel wie <00:00:07.500> mitten im Satz.
Das aufzuräumen ist Suchen-und-Ersetzen und dauert eine Minute, aber tu es in der richtigen Reihenfolge. Entferne zuerst die Tag-Paare, denn nur die spitzen Klammern zu löschen ließe verwaisten Attributtext zurück. Entscheide dann über die eckigen Klammern — behalten für ein Barrierefreiheits-Transkript, streichen für eine Übersetzungsvorlage. Entscheide zuletzt über die Striche, die in einem Zwei-Sprecher-Untertitel echte Information tragen und in einem Ein-Sprecher-Untertitel bloßes Rauschen sind. Erst danach lohnt es sich, auf Sinn zu lesen.
Ein Satz, zwei Untertitel: die Verbindung, die kein Werkzeug für dich herstellen kann
Untertitel brechen dort, wo der Bildschirm endet, nicht dort, wo der Satz endet. Ein einzelner Teilsatz erstreckt sich regelmäßig über zwei Untertitel, und im Transkript werden daraus zwei Zeilen, die sich wie Fragmente lesen. Der Konverter bietet eine Zusammenführungsoption, und man sollte genau sagen, was sie zusammenführt: Das Kästchen verbindet die Zeilen innerhalb eines Untertitels, aus einer zweizeiligen Einblendung wird also eine Zeile. Über Untertitelgrenzen hinweg verbindet es nicht und kann es nicht. Getestet an einer Datei, deren erster Untertitel „Die Sache mit dem Hafen“ lautet und deren zweiter „ist, dass er nie richtig zufror“, liefern beide Modi zwei getrennte Zeilen.
Das ist weniger ein Mangel als eine Grenze der Eingabe. Nichts in einer SubRip-Datei markiert das Satzende; das einzige verfügbare Signal sind Interpunktion und Großschreibung im Text selbst, und beide sind über Sprachen hinweg unzuverlässig. Die Heuristik, die von Hand gut genug funktioniert, ist einfach: Verbinde einen Untertitel mit dem vorigen, wenn dieser nicht mit Punkt, Frage-, Ausrufezeichen oder schließendem Anführungszeichen endet und wenn der nächste weder mit einem Großbuchstaben noch mit einem Dialogstrich beginnt. Von einer Maschine angewandt zerlegt diese Regel deutsche Substantive, Abkürzungen und Auslassungspunkte; von einem sprachkundigen Leser angewandt kostet sie bei einem Spielfilm-Transkript ein paar Minuten.
Das andere wiederkehrende Durcheinander kommt von der Live-Untertitelung. Sendeuntertitel rollen oft: Eine Zeile erscheint unten und wandert nach oben, wenn die nächste kommt, und der Encoder schreibt beide Zustände als eigene Untertitel — derselbe Satz steht also zwei- oder dreimal hintereinander in der Datei. Der Konverter entdoppelt nicht — er hat keinen Grund dazu, denn eine tatsächlich wiederholte Dialogzeile ist ebenfalls möglich —, sodass ein Transkript aus einer Livesendung leicht doppelt so lang ausfällt wie es sollte. Das aufzuräumen heißt durchlesen, und es ist das stärkste Argument dafür, beim Lieferanten der Datei die aufpoppende statt der rollenden Fassung zu erbitten.
SRT oder VTT: derselbe Konverter zweimal
Es gibt auf dieser Seite zwei Konverter, einen für SubRip und einen für WebVTT, und in der Praxis verhalten sie sich identisch. Beide lesen Blöcke, beide überspringen alles ohne Zeitzeile, beide verwerfen NOTE- und STYLE-Blöcke, beide akzeptieren Komma oder Punkt vor den Millisekunden, und beide akzeptieren einen Zeitstempel mit oder ohne Stundenfeld. Der einzige formale Unterschied: Der WebVTT-Konverter erkennt und überspringt den WEBVTT-Headerblock namentlich — und der SubRip-Konverter verwirft ihn ohnehin, denn ein Headerblock enthält keine Zeitzeile und wird daher nie zu einem Untertitel. Nebeneinander an derselben WebVTT-Datei getestet, liefern beide byteweise gleiche Ausgabe.
Das ist bequem statt schlampig: Du kannst jedes der beiden Formate auf jeder der beiden Seiten einfügen und bekommst dasselbe Transkript — genau das wolltest du. Es heißt aber auch, dass dir keine der beiden Seiten sagt, dass deine Datei fehlerhaft ist. Fehlt der Pfeil in einer Zeitzeile oder ist er falsch geschrieben, verschwindet der ganze Block stillschweigend aus der Ausgabe, statt einen Fehler auszulösen, und das einzige Symptom ist eine niedrigere Untertitelzahl als erwartet. Die Zahl steht unter dem Eingabefeld; vergleiche sie mit der letzten Nummer in deiner Datei, bevor du dem Ergebnis traust.
| Element | Wie es in der Datei steht | Was der Konverter tut | Was dir bleibt |
|---|---|---|---|
| Nummer und Zeitzeile | 1 / 00:00:01,000 --> 00:00:04,000 | Entfernt | Nichts |
| WebVTT-Header, NOTE-, STYLE-, REGION-Blöcke | WEBVTT / NOTE Transkribiert am 11.02.2026 | Entfernt | Nichts |
| Cue-Bezeichner und Cue-Einstellungen | hello-1 / align:start position:10% | Entfernt | Nichts |
| Kursiv-, Fett- und Farb-Tags | <i>…</i>, <b>…</b>, <font color="#ffff00">…</font> | Wörtlich behalten | Erst die Tag-Paare, dann die Klammern entfernen |
| Positionsanweisung und Geräuschbeschreibungen | {\an8}, [MÖWEN], [MUSIK] | Wörtlich behalten | Anweisung löschen; über die Klammern entscheiden |
| Dialogstriche und Sprecher-Tags | - Hast du es gesehen? / <v Roger Bingham> | Wörtlich behalten | In die gewünschten Sprecherangaben umwandeln |
| Ein über zwei Untertitel verteilter Satz | Untertitel 1 bricht mitten im Teilsatz ab, Untertitel 2 beginnt klein | Zwei getrennte Zeilen, in beiden Modi | Von Hand verbinden: keine Satzzeichen am Ende, kein Großbuchstabe am Anfang |
Häufige Fragen
- Entfernt es Kursiv-Tags, Dialogstriche und [MUSIK]-Angaben?
- Nein. Es entfernt die Untertitelnummer und die Zeitzeile und reicht den Rest genau so durch, wie er geschrieben steht. An einer Datei mit allen gängigen Fällen getestet, enthält die Ausgabe weiterhin <i>…</i>, <b>…</b>, <font color="#ffff00">…</font>, die ASS-artige Positionsanweisung {\an8}, die Geräuschbeschreibung [MÖWEN], die Zwei-Sprecher-Striche am Zeilenanfang und — bei WebVTT-Eingabe — das Sprecher-Tag <v Roger Bingham>, Klassen-Tags wie <c.yellow>…</c> und eingebettete Stempel wie <00:00:07.500>. Das ist vertretbar, denn ob ein Transkript seine Geräuschbeschreibungen behalten soll, hängt von seinem Zweck ab: Ein Barrierefreiheitsprotokoll will sie, eine Übersetzungsvorlage nicht. Es bedeutet aber, dass die Konvertierung einer von zwei Schritten ist. Plane danach einen Suchen-und-Ersetzen-Durchgang ein und entferne vollständige Tag-Paare statt nur der spitzen Klammern, sonst bleibt verwaister Attributtext wie color="#ffff00" in deinem Fließtext stehen.
- Ein Satz läuft über zwei Untertitel. Wie bekomme ich ihn in eine Zeile?
- Nicht mit dem Zusammenführungshäkchen — das verbindet die Zeilen innerhalb eines Untertitels, nicht zwei Untertitel miteinander, und die Beschriftung lädt zum Missverstehen ein. Geprüft an einer Datei, in der Untertitel 1 mitten im Teilsatz endet und Untertitel 2 ihn fortsetzt: Blockmodus wie Zusammenführungsmodus liefern zwei getrennte Zeilen. Die Verbindung muss von dir kommen, denn nichts in der Datei markiert sie. Die funktionierende Regel ist auf beiden Seiten negativ: Verbinde einen Untertitel mit dem vorigen, wenn dieser nicht mit Punkt, Frage-, Ausrufezeichen, Doppelpunkt oder schließendem Anführungszeichen endet und wenn der aktuelle weder mit einem Großbuchstaben noch mit einem Dialogstrich beginnt. Mach das als manuelles Durchlesen statt als Skript: Abkürzungen, Auslassungspunkte und im Deutschen großgeschriebene Substantive brechen sie oft genug, dass ein automatischer Durchlauf mehr Reparatur kostet, als er spart.
- Was unterscheidet den SRT- vom VTT-Konverter?
- Im beobachtbaren Verhalten keiner. Es ist dieselbe Routine mit einem Schalter, und der Schalter bewirkt nur, dass die WebVTT-Fassung den WEBVTT-Headerblock namentlich erkennt — den die SubRip-Fassung ohnehin verwirft, weil dieser Block keine Zeitzeile hat und daher nie zu einem Untertitel wird. Beide verwerfen NOTE- und STYLE-Blöcke, beide akzeptieren Komma oder Punkt vor den Millisekunden, beide akzeptieren einen Zeitstempel mit oder ohne Stundenfeld, und beide ignorieren alles nach dem Pfeil in einer Zeitzeile. Mit derselben WebVTT-Datei gefüttert, geben beide Seiten identischen Text zurück. Nimm der Übersicht halber die Seite, die zu deiner Datei passt, aber erwarte nicht, dass die VTT-Seite Sprecher-Tags aufräumt oder die SRT-Seite ein .vtt ablehnt: Beides geschieht nicht. Zu beachten ist auf beiden Seiten nur die Untertitelzahl unter dem Eingabefeld. Eine fehlerhafte Zeitzeile lässt ihren ganzen Block ohne Fehlermeldung verschwinden, und eine Zahl unter der letzten Nummer deiner Datei ist der einzige Hinweis.
- Warum wiederholt mein Transkript dieselbe Zeile zwei- oder dreimal?
- Weil die Quelle Roll-up-Untertitelung ist. Live erscheint eine Zeile unten in einem Zwei- oder Dreizeilenfenster und wandert nach oben, wenn die nächste kommt; der Encoder hält jeden Zustand des Fensters als eigenen Untertitel fest. Derselbe Satz steht daher in aufeinanderfolgenden Untertiteln, mitunter dreimal, und die Datei ist ein getreues Protokoll dessen, was zu jedem Zeitpunkt auf dem Schirm war, nicht dessen, was gesagt wurde. Der Konverter entdoppelt nicht, und er sollte nicht raten: Eine tatsächlich zur Wirkung wiederholte Dialogzeile sieht in der Datei genauso aus. Die Wiederholungen zu entfernen heißt durchlesen — die Zeilen zu sortieren, um sie zu finden, zerstört die Reihenfolge, also gehe der Reihe nach vor. Kannst du auf die Quelle einwirken, bitte um Pop-on-Untertitel: Jeder Satz wird einmal geschrieben, und das Transkript kommt sauber heraus.
- Ich will den Text, aber auch die Zeiten. Was soll ich nehmen?
- Nicht diesen Konverter, der die Zeiten absichtlich entfernt und keine Möglichkeit bietet, sie zu behalten. Nimm stattdessen den SRT-zu-CSV-Konverter: Er schreibt eine Zeile je Untertitel mit Index, Start, Ende und Text, sodass die Zeiten in eigenen Spalten stehen und der Text lesbar und durchsuchbar bleibt. Diese Form willst du auch, wenn das Transkript von jemand anderem bearbeitet oder übersetzt wird, denn sie hält jede Zeile an den Moment gebunden, zu dem sie gehört, und lässt sich danach wieder in eine Untertiteldatei verwandeln. Reiner Text ist die richtige Ausgabe, wenn das Ziel Fließtext ist — eine Zusammenfassung, ein Suchindex, ein Dokument — und die falsche, sobald jemand weiter unten wissen muss, wann etwas gesagt wurde.
Artikel, die dich interessieren könnten
Alle Ratgeber →Ähnliche Tools
SubRip hat keine Spezifikation. Die Library of Congress führt es als nur teilweise dokumentiert und schlecht normiert, also entscheidet der Player, der Encoder oder die Plattform, die sie liest, was als gültige .srt-Datei gilt — und zwei davon werden früher oder später uneins sein. Alles hier Beschriebene wurde an der tatsächlichen Ausgabe des Werkzeugs geprüft, nicht an einer Norm, denn für dieses Format gibt es keine. WebVTT ist anders — es hat eine veröffentlichte W3C-Spezifikation — bleibt aber ein Candidate Recommendation Draft und keine fertige Empfehlung. Behalte die Originaldatei, teste die konvertierte in genau dem Player oder Upload-Werkzeug, das du wirklich verwenden willst, bevor du etwas wegwirfst, und behandle jede Aussage darüber, was „alle Player“ tun — auch die auf dieser Seite — als etwas, das du an deinem prüfst.
Quellen
- W3C — WebVTT: The Web Video Text Tracks Format, Candidate Recommendation Draft of 20 May 2026 — defines the WEBVTT header, NOTE comment blocks, STYLE blocks, REGION definition blocks, the optional cue identifier, the cue settings list after the arrow, and the cue voice span whose start tag v carries an annotation naming the speaker
- Library of Congress — Sustainability of Digital Formats, FDD000569, SubRip Subtitle format (SRT): describes the four components of a cue — counter, start and end time separated by two hyphens and a right angle bracket, one or more lines of text, blank line — and records that the SubRip software supported a limited set of text formatting derived from HTML tags including bold, italic, underline and colour
- Matroska — Subtitles technical page: when SRT is muxed into Matroska the cue text is converted to UTF-8 as S_TEXT/UTF8 and placed in the block, and because there are no general settings for SRT the CodecPrivate is left blank — the container carries the text and the timing, and nothing else
Hast du einen Fehler in diesem Artikel entdeckt?