Um TXT in SRT umzuwandeln, musst du ergänzen, was einer Textdatei fehlt: für jeden Untertitel eine Nummer, eine Start- und eine Endzeit. Die Datei von transkript.txt in transkript.srt umzubenennen, ändert am Inhalt nichts, und weder YouTube noch ein Player kann sie dann anzeigen. Woher die Zeiten kommen, hängt davon ab, was du hast: Ein Transkript mit Zeitstempeln lässt sich umbauen, reinen Text plus Video kann Software automatisch synchronisieren, und reinen Text allein musst du selbst aufteilen und timen. Wir haben ein eigenes Beispiel-Transkript in vier Sprachen umgewandelt und jeden Untertitel gegen die Lesegeschwindigkeit aus den Netflix-Richtlinien geprüft.

Welcher Weg passt zu deiner Datei?

Drei Ausgangslagen und was du jeweils tust
Was du hastWas zu tun istKostenlose Werkzeuge
Text mit Zeitstempel in jeder ZeileUmbauen: Nummern, Endzeiten, ZeilenumbrücheDas kurze Skript unten oder ein Texteditor
Reinen Text und das VideoSoftware den Text an die Sprache anlegen lassenAutomatisch synchronisieren in YouTube Studio, Forced Aligner in Subtitle Edit
Nur reinen TextIn Untertitel teilen und von Hand timenSubtitle Edit, YouTube Studio

Zwei Abkürzungen vorab. Stammt das Transkript aus einem Werkzeug, das auch Untertitel kann, exportierst du die SRT-Datei am besten dort: Fireflies bietet SRT unter den Download-Formaten für Transkripte an, Descript exportiert Untertitel als SRT oder VTT. Und ist deine Datei gar kein reiner Text, sondern WebVTT oder LRC, hat sie schon Zeiten; dann helfen dir VTT-Datei öffnen und in SRT umwandeln und LRC in SRT umwandeln.

Was einem TXT-Transkript fehlt

Dieses Beispiel haben wir für den Ratgeber geschrieben: die ersten 40 Sekunden eines ausgedachten Videos aus einem kleinen Onlineshop. Jede Zeile beginnt mit dem Zeitpunkt, an dem sie gesprochen wird, so wie viele Transkriptionsdienste es ausgeben:

packtisch.txt
[00:00:00] Hallo, ich bin Jana, und das ist der Packtisch in unserem kleinen Laden.
[00:00:05] Heute zeige ich euch, wie wir eine Keramiktasse verpacken, damit sie heil ankommt.
[00:00:10] Zuerst wickelst du den Henkel extra ein. Der bricht am häufigsten ab.
[00:00:15] Danach rollst du die ganze Tasse in zwei Lagen Papier.
[00:00:18] [Klebeband quietscht]
[00:00:20] Der Karton sollte so groß sein, dass an jeder Seite zwei Finger breit Platz bleibt.
[00:00:24] Füll den Platz mit zerknülltem Papier, bis sich beim Schütteln nichts mehr bewegt, und kleb die Nähte oben und unten in H-Form zu.
[00:00:35] Das war's schon.
[00:00:37] Fragen? Schreibt sie gern unten in die Kommentare.

Eine SRT-Datei braucht pro Untertitel vier Teile: eine Nummer, eine Zeitzeile im Format hh:mm:ss,mmm --> hh:mm:ss,mmm, ein oder zwei Zeilen Text und eine Leerzeile. Wie das Format genau aussieht, erklärt unser Ratgeber zur SRT-Datei. Dem Transkript fehlen also die Nummern und alle Endzeiten, und seine Zeilen sind zu lang: Eine davon würde auf dem Bildschirm drei Zeilen füllen. Außerdem hat es nur volle Sekunden. Das Ergebnis stimmt deshalb auf etwa eine Sekunde genau; für die meisten Videos reicht das, eine Vorschau lohnt sich trotzdem.

Weg 1: Das Transkript hat schon Zeitstempel

Dann ist es reine Umbauarbeit. Diese Regeln haben wir angewendet:

  1. Ein Zeitstempel pro Untertitel. Kopierst du das Transkript aus dem Transkript-Bereich von YouTube, steht jeder Zeitstempel in einer eigenen Zeile über dem Text. Unser Skript hat auch diese Form gelesen und genau dieselbe SRT-Datei erzeugt.
  2. Jeder Untertitel endet, wenn der nächste beginnt, aber nach höchstens 7 Sekunden. Die allgemeinen Netflix-Richtlinien erlauben zwischen 5/6 Sekunde und 7 Sekunden pro Untertitel.
  3. Der letzte Untertitel braucht Lesezeit. Teile seine Zeichenzahl durch die Lesegeschwindigkeit. Unsere letzte Zeile hat 50 Zeichen; bei 17 Zeichen pro Sekunde sind das knapp 3 Sekunden, sie endet also bei 00:00:39,942.
  4. Lange Zeilen umbrechen. Netflix erlaubt im deutschen Leitfaden 42 Zeichen pro Zeile und zwei Zeilen pro Untertitel. Umbrüche sollen grammatische Einheiten zusammenhalten: nach Satzzeichen, vor „und“, „in“ oder „mit“, aber nie zwischen Artikel und Nomen.
  5. Was nicht in zwei Zeilen passt, wird geteilt: zwei Untertitel, die sich die Zeit nach Textlänge aufteilen.
  6. Nummeriere ab 1, setz nach jedem Untertitel eine Leerzeile und speichere die Datei als UTF-8.

Wir haben ein kleines Skript geschrieben, das die Schritte 1 bis 6 erledigt und das Ergebnis danach prüft: Nummern, Pfeil, Zeilenlänge und Zeichen pro Sekunde. Das hat es aus unserem Beispiel gemacht:

Drei Zeilen des Beispiel-Transkripts mit Zeitstempeln, dieselben Zeilen als nummerierte SRT-Untertitel mit Endzeiten und Zeilenumbruch, darunter die Prüfung mit drei zu schnellen Untertiteln
Vorher und nachher: unser Beispiel-Transkript und die SRT-Datei, die unser Skript daraus gemacht hat. Eigener Test, 25. Oktober 2026.

Die Prüfung meldete drei Untertitel, die schneller sind als die 17 Zeichen pro Sekunde, die Netflix für deutsche Untertitel vorgibt. Englische Untertitel dürfen bis zu 20 haben. Zum Vergleich haben wir dieselbe kurze Szene auf Englisch, Französisch und Spanisch geschrieben und genauso umgewandelt:

Unser Beispiel-Transkript in vier Sprachen, umgewandelt und geprüft am 25. Oktober 2026
SpracheUntertitelLängste ZeileSchnellster UntertitelNetflix-GrenzeZu schnell
Deutsch1242 Zeichen20,5 Zeichen pro Sekunde173
Englisch1041 Zeichen19,5 Zeichen pro Sekunde200
Französisch1341 Zeichen20,2 Zeichen pro Sekunde174
Spanisch1042 Zeichen17 Zeichen pro Sekunde170

Einen zu schnellen Untertitel kann kein Skript reparieren, da muss jemand den Text kürzen. Wir haben zwei Sätze gekürzt: aus „Danach rollst du die ganze Tasse in zwei Lagen Papier.“ wurde „Dann rollst du die Tasse in zwei Lagen Papier.“, aus dem Satz über den Karton „Der Karton braucht rundum zwei Finger breit Platz.“ Danach lag kein Untertitel mehr über der Grenze. Dasselbe passiert, wenn du Untertitel übersetzt: Die Zeiten bleiben, also muss der längere deutsche Text kürzer formuliert werden. Für Untertitel für Hörgeschädigte erlaubt der deutsche Netflix-Leitfaden übrigens bis zu 20 Zeichen pro Sekunde.

Ein kurzes Skript zum Selbermachen

Steht in deinem Transkript am Anfang jeder Zeile eine Zeit, macht dieses Skript eine SRT-Datei daraus. Du brauchst dafür das kostenlose Node.js. Speichere den Code als txt2srt.mjs und starte ihn mit node txt2srt.mjs transkript.txt transkript.srt:

txt2srt.mjs
// txt2srt.mjs: macht aus Zeilen wie „[00:01:05] Text“ eine SRT-Datei und meldet Untertitel zum Nachbessern.
// Aufruf: node txt2srt.mjs transkript.txt transkript.srt
import { readFileSync, writeFileSync } from 'node:fs'

const MAX_LINE = 42 // Zeichen pro Zeile, zwei Zeilen pro Untertitel
const MAX_CPS = 17 // Zeichen pro Sekunde: 17 für Deutsch, 20 für Englisch
const [input, output] = process.argv.slice(2)

const cues = []
for (const line of readFileSync(input, 'utf8').replace(/^/, '').split(/\r?\n/)) {
  const m = line.match(/^\[?(?:(\d{1,2}):)?(\d{1,2}):(\d{2})\]?\s+(.+)/)
  if (m) cues.push({ start: ((+(m[1] ?? 0) * 60 + +m[2]) * 60 + +m[3]) * 1000, text: m[4].trim() })
}

const time = (ms) => new Date(ms).toISOString().slice(11, 23).replace('.', ',')
const wrap = (text) => {
  if (text.length <= MAX_LINE) return text
  let cut = -1
  for (let i = 0; i < text.length; i++)
    if (text[i] === ' ' && (cut < 0 || Math.abs(i - text.length / 2) < Math.abs(cut - text.length / 2))) cut = i
  return cut < 0 ? text : text.slice(0, cut) + '\n' + text.slice(cut + 1)
}

let srt = ''
cues.forEach((cue, i) => {
  // Ende = Start des nächsten Untertitels, höchstens 7 Sekunden; der letzte bleibt so lange, wie das Lesen dauert.
  const next = cues[i + 1]?.start
  const end = next !== undefined ? Math.min(next, cue.start + 7000) : cue.start + Math.max(1000, Math.ceil((cue.text.length / MAX_CPS) * 1000))
  const lines = wrap(cue.text)
  srt += `${i + 1}\n${time(cue.start)} --> ${time(end)}\n${lines}\n\n`
  const cps = lines.replace('\n', '').length / ((end - cue.start) / 1000)
  if (lines.split('\n').some((l) => l.length > MAX_LINE)) console.log(`Untertitel ${i + 1}: zu lang für zwei Zeilen, bitte teilen`)
  if (cps > MAX_CPS) console.log(`Untertitel ${i + 1}: ${cps.toFixed(1)} Zeichen pro Sekunde, Text kürzen`)
})
writeFileSync(output, srt, 'utf8')

Es liest Zeiten wie [00:01:05], 00:01:05 oder 1:05, wenn der Text in derselben Zeile folgt. Lange Zeilen bricht es am Leerzeichen nahe der Mitte um. Das geht schnell, trifft aber nicht immer die Stelle, an der ein Mensch umbrechen würde; schau dir also jeden zweizeiligen Untertitel an. Bei unserem deutschen Beispiel meldete es drei Untertitel, die nicht in zwei Zeilen passen, und drei, die zu schnell sind. Diese teilst und kürzt du von Hand. Die Datei schreibt das Skript selbst als UTF-8, du musst die Ausgabe also nicht umleiten.

Weg 2: Reiner Text und das Video

Hat der Text gar keine Zeiten, kann Software das Video anhören und deine Wörter an die richtigen Stellen setzen. Das heißt Ausrichten (englisch „forced alignment“), und dein Text bleibt dabei genau so, wie du ihn geschrieben hast.

YouTube Studio, für deine eigenen Videos. Laut YouTube-Hilfe meldest du dich in YouTube Studio an, wählst links Untertitel und dann das Video. Klick auf Sprache hinzufügen, wähl die Sprache und klick unter „Untertitel“ auf Hinzufügen. Dann wählst du Automatisch synchronisieren, gibst den gesprochenen Text ein oder lädst eine Transkriptdatei hoch und schließt mit BEARBEITEN und SPEICHERN UND SCHLIEẞEN ab. Das Festlegen der Zeiten kann einige Minuten dauern, danach erscheinen die Untertitel automatisch im Video.

YouTube nennt drei Bedingungen: Das Transkript muss in der Sprache sein, die im Video gesprochen wird, diese Sprache muss die Spracherkennung unterstützen, und für Videos über einer Stunde oder mit schlechtem Ton rät YouTube davon ab. Die Tipps für die Transkriptdatei: eine Nur-Text-Datei im TXT-Format, eine leere Zeile, wo ein neuer Untertitel beginnen soll, Geräusche in eckigen Klammern und „>>“ vor einem Sprecherwechsel. Unser Beispiel, so vorbereitet:

packtisch-ohne-zeiten.txt
>> JANA: Hallo, ich bin Jana, und das ist der Packtisch in unserem kleinen Laden.

Heute zeige ich euch, wie wir eine Keramiktasse verpacken, damit sie heil ankommt.

[Klebeband quietscht]

Sind die Zeiten gesetzt, kannst du die Untertitel in YouTube Studio als SRT-Datei herunterladen. Automatisch synchronisieren haben wir für diesen Ratgeber nicht an einem Video ausprobiert; die Schritte stammen aus der deutschen YouTube-Hilfe, abgerufen am 25. Oktober 2026.

Subtitle Edit, ohne Upload. Der kostenlose Untertitel-Editor hat Downloads für Windows, macOS und Linux. Wähle Datei, Importieren, Klartext... und stell unter Text teilen bei Leerzeilen oder Eine Zeile ist ein Untertitel ein. Laut Dokumentation legt Zeitstempel per Forced Aligner ausrichten... deinen Text dann an den Ton des Videos an, ohne neu zu transkribieren. Beim ersten Mal lädt das Programm ein Modell herunter; die sprachspezifischen sind etwa 200 bis 300 MB groß, daneben gibt es mehrsprachige. Unterstützt der Aligner deine Sprache nicht, transkribiert Zeitstempel per "Sprache-zu-Text" ausrichten... das Video erst und ordnet deinen Text dann zu. Gespeichert wird im Format SubRip. Das stammt aus der Dokumentation zu Version 5.3.0; den Aligner selbst haben wir nicht laufen lassen.

Descript. Die Funktion Import transcript (oder Replace transcript, wenn die Datei schon transkribiert ist) legt deinen eigenen Text an die Aufnahme an, laut Hilfeseite aber nur auf Englisch. Für ein deutsches Transkript hilft sie also nicht.

Weg 3: Nur Text, von Hand getimt

Ohne Video weiß kein Programm, wann welcher Satz fällt. Jede Zeit, die du einträgst, ist eine Schätzung, bis du sie am Video prüfst. Erst teilen, dann timen:

  • Teilen in Untertitel mit höchstens zwei Zeilen à 42 Zeichen, am besten an Satzenden und Kommas.
  • Genug Zeit geben: Zeichenzahl geteilt durch die Lesegeschwindigkeit. Unser gekürzter Untertitel „Dann rollst du die Tasse / in zwei Lagen Papier.“ hat 45 Zeichen und braucht auf Deutsch mindestens 2,7 Sekunden; auf Englisch wären es bei gleicher Länge 2,3.
  • Jeder Untertitel steht zwischen 5/6 Sekunde und 7 Sekunden.

In Subtitle Edit erledigt Klartext importieren die ersten beiden Schritte für dich: Ohne Video legt es die Untertitel ab null hintereinander, mit einer Dauer nach Textlänge. Danach schiebst du jeden an die richtige Stelle, während das Video läuft. Willst du die Zeiten lieber beim Zuschauen notieren, zeigt unser Ratgeber zum Transkript mit Zeitmarken, wie das geht.

Was Online-Konverter für TXT in SRT machen

Die meisten Seiten, die TXT in SRT umwandeln, hören dein Video gar nicht an. Sie schätzen die Zeiten aus dem Text. Das stand am 25. Oktober 2026 auf ihren eigenen Seiten:

  • SubtitleKit legt die Untertitel ab dem Anfang hintereinander, mit einer festen Sekundenzahl pro Zeile, nennt die Zeiten Platzhalter und behandelt Zeitstempel im Text wie normalen Text.
  • SozAI macht aus jedem Absatz einen Untertitel, rechnet mit etwa 150 Wörtern pro Minute und begrenzt jeden auf 2 bis 8 Sekunden.
  • Submagic rechnet mit 170 Wörtern pro Minute, hält jeden Untertitel zwischen 1,2 und 6 Sekunden und bricht nach 42 Zeichen um.
  • MConverter wandelt in seiner Cloud oder bei manchen Formaten auf deinem Gerät um und löscht Cloud-Dateien nach eigenen Angaben vier Stunden nach der Umwandlung.

Zwei Seiten versprechen mehr, als ein reines Transkript hergibt. Eine schreibt, ihr Konverter behalte das Timing deiner Untertitel; das „TXT“, das sie liest, ist aber ein Untertitelformat mit Zeiten. Ein anderer Untertitel-Konverter nimmt nur ASS, SSA, SMI, SUB und VTT an, eine TXT-Datei lässt sich dort gar nicht hochladen. Geschätzte Zeiten sind bestenfalls ein Anfang. Für Interviews oder Vertrauliches nimmst du besser einen Weg ohne Upload.

Kodierung: damit Umlaute heil bleiben

YouTube verlangt SRT-Dateien in reinem UTF-8 und empfiehlt UTF-8 auch für jede Transkriptdatei, die nicht auf Englisch ist. Die Hilfe beschreibt das Speichern so:

  • Editor (Notepad) unter Windows: Datei, Speichern unter, dann unter Codierung UTF-8 wählen.
  • TextEdit auf dem Mac: Format, In reinen Text umwandeln, dann Datei, Speichern und Unicode (UTF-8).

Bei deutschem Text fällt eine falsche Kodierung sofort auf: Aus „Füll“ wird je nach Fehler „Füll“ oder ein Ersatzzeichen. Wie das genau aussieht und wie du es reparierst, zeigt der oben verlinkte Ratgeber zur SRT-Datei. Auch typografische Apostrophe, die Word automatisch setzt, sind in Windows-1252 einzelne Bytes, die in UTF-8 ungültig sind.

Vor dem Hochladen prüfen

Um unsere Prüfung zu testen, haben wir in die gekürzte deutsche SRT-Datei sechs typische Fehler eingebaut: zwei Zeilen zu einer zusammengezogen, einen Pfeil mit Gedankenstrich, einen Punkt vor den Millisekunden, eine doppelte Nummer, zwei überlappende Untertitel und die ganze Datei als Windows-1252 gespeichert. Die Prüfung fand alle sechs:

pruefung.txt
11 Untertitel, längste Zeile 72 Zeichen, schnellster 16,7 Zeichen pro Sekunde
- 6 Zeile(n) kein gültiges UTF-8, zuerst Zeile 6 (Datei als UTF-8 speichern)
- Zeile 6: Pfeil mit Gedankenstrich statt zwei Bindestrichen: --> schreiben
- Zeile 11: Punkt vor den Millisekunden, SRT braucht ein Komma
- Zeile 19: Untertitel-Nummer 5 erwartet, gefunden: „4“
- Untertitel 6: beginnt, bevor Untertitel 5 endet
- Untertitel 1: Zeile mit 72 Zeichen (höchstens 42)
6 Problem(e) gefunden

Ohne Prüfskript gehst du diese Liste durch:

  • Untertitel fortlaufend nummeriert, nach jedem eine Leerzeile.
  • Jeder Pfeil aus zwei Bindestrichen und einem Größer-als-Zeichen. Textverarbeitungen machen aus zwei Bindestrichen gern einen Gedankenstrich.
  • Ein Komma vor den Millisekunden.
  • Kein Untertitel beginnt, bevor der vorige endet.
  • Höchstens zwei Zeilen à 42 Zeichen und 17 Zeichen pro Sekunde für deutsche Untertitel.
  • Gespeichert als UTF-8, und eine Vorschau auf der Plattform, auf der du veröffentlichst.

Brauchst du später nur den Text zurück, entfernt SRT in Text umwandeln Nummern und Zeiten wieder.