Konvertiere „gesprochene Wörter“ aus Video/Audio in Text. Hier ist eine bewährte Vorgehensweise, die durch bittere Erfahrung gelernt wurde. Halte dich strikt an die Reihenfolge und mache nicht eigenmächtig einen Bogen um Schritt 0.
Eiserne Regel (Diese ist am wichtigsten, merke sie dir zuerst)
Suche immer zuerst nach „vorhandenen Untertiteln“, und greife nur dann auf „Spracherkennung“ zurück, wenn es wirklich keine gibt. Die meisten seriösen Vorträge, Konferenzen und Podcasts werden auf YouTube hochgeladen, und YouTube hat fast immer Untertitel – mit einem einzigen Befehl in Sekunden heruntergeladen, kostenlos, ohne das gesamte Video herunterladen zu müssen und ohne die Grafikkarte zu belasten. Heute habe ich diesen kurzen Weg nicht genutzt, dummerweise ein 450 MB Video heruntergeladen, eine halbe Stunde mit der CPU transkribiert und dabei jede Menge Fehler produziert. Diese Falle darf nicht noch einmal passieren.
Schritt 0: Wenn du einen Link bekommst, unterscheide zuerst zwei Dinge, dann entscheide über die Reihenfolge
Transkription (den Text dieser Rede bekommen) und Quellenrecherche (wer hat gesprochen, wann wurde das Original gehalten, ist es vollständig) sind zwei verschiedene Paar Schuhe und sollten nicht zusammengeworfen werden. Die alte Methode, blind „Wenn ich X sehe, gehe ich sofort zu YouTube“, ist falsch – X hat oft selbst Untertitel, und der Umweg über YouTube war umsonst.
Transkription: Untersuche immer zuerst den vorliegenden Link, ohne standardmäßig über YouTube zu gehen.
- Führe direkt grab.py aus – Das Skript wird zuerst nach den Untertiteln des Links suchen (X hat oft Untertitel in en/es usw.). Wenn es welche findet, ist die Arbeit erledigt. Das ist der schnellste Weg.
- Nur in diesen beiden Fällen lohnt sich der Umweg über YouTube, um das Original zu finden:
- X hat überhaupt keine Untertitel (YouTube hat sie wahrscheinlich);
- Auf X handelt es sich um einen Ausschnitt – der Text bezieht sich auf ein längeres Video, aber der X-Beitrag ist nur ein oder zwei Minuten lang (das Herunterladen bringt nur einen kleinen Teil; für das gesamte Video muss das Original gefunden werden). Vorgehen: Suche nach „Redner + Thema/Titel + Veranstaltungsname“, um das YouTube-Original zu finden, und verwende es für Schritt 1.
Die Dauer ist der Prüfstein: Überprüfe zuerst mit
yt-dlp --no-download --print "%(duration_string)s". Wenn der X-Beitrag ungefähr so lang ist wie im Text behauptet („28 Minuten“ und es sind 27 Minuten) = vollständige Übernahme, einfach herunterladen; wenn er deutlich kürzer ist = Ausschnitt, muss das Original gefunden werden.
Die Quellenrecherche (wer/wann gehalten/vollständig) ist eine separate Sache und wird nur durchgeführt, wenn der Benutzer danach fragt. Sie ist kein notwendiger Schritt für die Transkription. Und höre auf, wenn es ausreicht: Suche so lange, bis du die Informationen zur Beantwortung der Benutzerfrage hast. Jage nicht wiederholt nach präzisen Daten, offiziellen Originalversionen oder anderer Genauigkeit, die der Benutzer nicht verlangt hat (Diese Falle habe ich am 2026-07-22 selbst erlebt).
Schritt 1: Skript mit einem Befehl ausführen (Es entscheidet selbst, ob Untertitel oder Spracherkennung verwendet wird)
python "C:/Users/Administrator/.claude/skills/视频转文字/scripts/grab.py" "<Link oder lokale Datei>" "Ausgabeordnername" [Sprache]
Der dritte Parameter [Sprache] ist optional: Für chinesische Videos zh übergeben (erzwingt chinesische + vereinfachte Ausgabe), für englische en, ohne Angabe automatische Erkennung.
Interne Logik des Skripts (fest codiert):
- Zuerst vorhandene Untertitel extrahieren → bei Erfolg sofort
完整文字稿.txtausgeben, fertig. - Keine Untertitel gefunden → automatisch Audio extrahieren, mit Grafikkarte (GPU) transkribieren (nicht CPU).
- Die Ausgabe landet einheitlich im Ordner
<Ausgabeordnername>auf dem Desktop:完整文字稿.txt(sauberer Nur-Text) + Original-Untertitel/Subtitle-Dateien.
Melde dem Benutzer nach der Ausführung den Speicherort und die Wortanzahl von 完整文字稿.txt.
Bilibili / Chinesische Websites (Anders als YouTube, separat merken)
- Herunterladen möglich: Das Download-Tool unterstützt Bilibili (B站) und viele andere chinesische Websites. Das Abrufen von Video/Audio ist kein Problem.
- Aber der kurze, kostenlose Weg „vorhandene Untertitel extrahieren“ ist so gut wie unmöglich: B站 hat keine maschinellen Untertitel für die gesamte Seite wie YouTube. Nur wenige Uploader haben manuell CC-Untertitel hochgeladen, die extrahiert werden können. Danmaku (Barrage) sind keine Untertitel (Danmaku sind Kommentare, die über den Bildschirm scrollen, kein Text). Extrahiere keine Danmaku.
- Daher wird bei den meisten B站-Videos direkt die „Grafikkarten-Spracherkennung“ verwendet. Bei chinesischen Videos übergib den dritten Parameter
zh:python ".../grab.py" "<B站-Link>" "Ausgabeordnername" zh - Hinweis zur chinesischen Genauigkeit: Derzeit wird das kleine (small) Modell verwendet. Für Chinesisch ist es nur „ungefähr richtig“ und neigt zu Fehlzeichen. Für mehr Genauigkeit müsste auf das mittlere (medium) Modell umgestellt werden (ca. 1,5 GB, einmaliger Download, derzeit nicht installiert). Der Benutzer hat am 2026-07-21 entschieden, „erstmal mit dem kleinen Modell auszukommen“. Für mehr Genauigkeit später medium installieren und im Skript
--model smalldurchmediumersetzen. - Anmeldung: Bei B站-Videos, die für Mitglieder exklusiv sind, in hoher Auflösung oder eine Anmeldung erfordern, muss beim Herunterladen ein Cookie des Kontos verwendet werden. Frage zuerst den Benutzer, greife nicht eigenmächtig auf das Konto zu.
Videos, deren Links nicht erfasst werden können (WeChat Video Accounts / kostenpflichtige, verschlüsselte Seiten / alles, was nur auf dem Bildschirm abgespielt werden kann) → Bildschirmton aufnehmen
Das Download-Tool erreicht solche Videos nicht (Video Accounts sind in der App eingeschlossen, kostenpflichtige Seiten sind verschlüsselt). Der einzige universelle Weg: Das Video abspielen und gleichzeitig den aktuell vom Computer ausgegebenen Ton aufnehmen, dann transkribieren. Der Computer ist bereits mit interner Aufnahmefähigkeit ausgestattet (soundcard-Bibliothek, keine Treiber oder Einstellungen erforderlich).
Drei Schritte:
- Aufnahme starten (läuft im Hintergrund, bis du sie stoppst):
python "C:/Users/Administrator/.claude/skills/视频转文字/scripts/record.py" "Ausgabeordnername" - Das Video von Anfang bis Ende abspielen (Live-Aufnahme, ein 3-stündiges Video muss 3 Stunden abgespielt werden, Vorspulen nicht möglich).
- Den Aufnahmeprozess stoppen (Agent stoppt Hintergrundaufgabe = harter Stopp, das ist in Ordnung), dann die Datei
录音.pcmdirekt an grab.py zur Transkription übergeben (es erkennt pcm, bei Chinesisch mit zh):python "C:/Users/Administrator/.claude/skills/视频转文字/scripts/grab.py" "<Desktop-Pfad>/<Ordner>/录音.pcm" "<Ordner>" zh
- Die Daten werden während der Aufnahme auf die Festplatte geschrieben. Ein vorzeitiger Abbruch führt nicht zum vollständigen Verlust (pcm bleibt erhalten, keine abschließenden Schritte erforderlich).
- Wenn du einen Link bekommen kannst, verwende keine Aufnahme: Das Herunterladen dauert Minuten, die Aufnahme erfordert das Warten auf die gesamte Dauer. Bildschirmaufnahme nur für Fälle, in die du wirklich keinen Link bekommst.
Schritt 2: Nur bei Spracherkennung relevante Dinge
- Muss über die Grafikkarte laufen: Dieser Computer hat eine NVIDIA GTX 1060 (5 GB VRAM). Das Skript wird sie automatisch priorisieren. Sollte das Log eines Tages „CPU“ anzeigen, bedeutet das, dass die GPU-fähige Version von torch wieder durch die CPU-Version ersetzt wurde. Repariere es gemäß dem Abschnitt [Grafikkarten-Grundlage] unten.
- Sehr lange (> 20 Minuten): Es ist normal, dass es langsam läuft, aber mit Grafikkarte sollte es im Minutenbereich liegen. Wenn es sich wie eine halbe Stunde anfühlt, ist es definitiv auf die CPU zurückgefallen.
- Spracherkennung ist nie perfekt: Fehler und Auslassungen sind unvermeidlich, es ist nur „ungefähr richtig“. Die Genauigkeit ist geringer als bei nativen Untertiteln. Wenn Untertitel extrahiert werden können, vermeide die Spracherkennung.
Grafikkarten-Grundlage (Wird für Spracherkennung benötigt, bei Problemen hier reparieren)
Die Spracherkennung mit Grafikkarte erfordert, dass die GPU-fähige Version von torch installiert ist. Selbsttest:
C:/Users/Administrator/portable-python311/runtime/python.exe -c "import torch;print(torch.__version__, torch.cuda.is_available())"
- Zeigt
...+cu126 True= Normal, Grafikkarte funktioniert. - Zeigt
...+cpu False= Nur CPU verwendet, Neuinstallation:
C:/Users/Administrator/portable-python311/runtime/python.exe -m pip install --force-reinstall torch==2.11.0 --index-url https://download.pytorch.org/whl/cu126
(Der Treiber CUDA 12.6 → verwende die cu126-Quelle. Diese 5 GB Grafikkarte reicht für Spracherkennung/OCR/mittelgroße Modelle; für große Modelle, die 8 GB VRAM benötigen, ist sie nicht geeignet.)
Nützliche manuelle Befehle (Außerhalb des Skripts, zum Nachschlagen)
- Nur Untertitelsprachen anzeigen:
yt-dlp --no-download --list-subs "<url>" - Nur englische Untertitel herunterladen, ohne Video:
yt-dlp --skip-download --write-auto-subs --sub-langs "en-orig,en.*" --convert-subs srt -o "%(title)s.%(ext)s" "<url>" - Dauer/Veröffentlichungsdatum überprüfen:
yt-dlp --no-download --print "%(title)s | %(duration_string)s | %(upload_date)s" "<url>"