YouTube Transcript v4.0.0
Die primäre Vollprodukt-Laufzeitumgebung ist das youtube-note-reader Obsidian-Desktop-Plugin. Es besitzt den deterministischen Zustandsautomaten, ruft das konfigurierte OpenAI-kompatible Modell auf, führt diese Skripte aus, persistiert den Aufgabenstatus und schreibt die fertige Notiz in die aktive Vault. Die Chrome-Erweiterung liefert nur die aktuelle Video-URL und das Browser-Cookie. OpenCode bleibt ein optionaler Skill-only-Einstiegspunkt und wird von der vollständigen Browser- + Obsidian-Installation nicht benötigt.
Verwenden Sie diesen Skill als strengen Zustandsautomaten. Improvisieren Sie keine alternativen Extraktionspfade.
Version
Wenn der Benutzer nach der aktuellen Version fragt, führen Sie Folgendes aus:
python .obsidian/skills/youtube-transcript/scripts/video_note.py --version
Geben Sie die Befehlsausgabe zurück. Antworten Sie niemals aus dem Gedächtnis. Es meldet die installierte Version, den Quellpfad und SHA-256-Werte für die Kern-Dateien.
Fester Workflow
Führen Sie für jede URL die folgenden Schritte vollständig aus, bevor Sie zur nächsten URL übergehen. Stoppen Sie den gesamten Batch beim ersten Skript-Ergebnis ungleich Null.
- Quellmaterial extrahieren:
python .obsidian/skills/youtube-transcript/scripts/extract_transcript.py "<url>" --output-dir "YouTube video" --deadline 300
- Lesen Sie die generierte Notiz und ihre SRT. Erstellen Sie einen JSON-Plan mit
article_outlineundframes.article_outlineenthält 3-8 aus dem Transkript abgeleitete Kapitel; jedes Element hatsection_id,title,start,end,core_claimsundlearning_goal. Wählen Sie Frames nach Lernwert aus, normalerweise ein erforderlicher Frame für jedes visuell sinnvolle Kapitel plus optionale Belege für unterschiedliche Schritte oder Ergebnisse. Die meisten Videos benötigen 6-14 Frames; 24 ist nur die harte Sicherheitsgrenze, niemals ein Ziel. Erstellen Sie nicht mehrere nahezu identische Zeitpunkte, nur um die Anzahl zu erhöhen. Jeder Frame hatsection_id,timestamp,purposeundrequired. Verwenden Sie dieselbesection_id, um jeden Screenshot an sein detailliertes Zusammenfassungskapitel zu binden. Benennen Sie die Notiz noch nicht um und überschreiben Sie sie nicht. Schreiben Sie keine Probe-Skripte oder inspizieren Sie Videoformate manuell. - Extrahieren Sie die geplanten Frames genau einmal. Nach einem erfolgreichen Materialergebnis ist dies der einzig zulässige nächste ausführbare Befehl:
python .obsidian/skills/youtube-transcript/scripts/extract_frames.py "<url>" --plan "<plan.json>" --note "<generated-note.md>" --output-dir "YouTube video" --deadline 120
- Bestätigen Sie, dass das Frame-Ergebnis
status: ok, mindestens einen Screenshot und einen echtenmanifestPfad enthält. Das Skript schreibt automatischframe_manifestin das Notiz-YAML. Wenn eines dieser Elemente fehlt, stoppen Sie; schreiben Sie die endgültige Notiz nicht und ersetzen Sie das Cover nicht. - Benennen Sie die generierte Notiz um und überschreiben Sie sie direkt gemäß references/note-contract.md. Verwenden Sie unter
## 详细内容总结jedenarticle_outline.titleals exakte###-Überschrift, erklären Sie seine Kernaussagen und fügen Sie jeden erfolgreichen erforderlichen Frame mit einer chinesischen Erklärung in sein passendes Kapitel ein. Verwenden Sie für vault-lokale Screenshots immer Obsidian-Wiki-Einbettungen wie![[YouTube video/assets/VIDEO_ID/frame.jpg]]; verwenden Sie niemals ein nicht maskiertes Markdown-Ziel, das Leerzeichen enthält. Nur Bilder, die im Manifest aufgeführt sind, gelten als Screenshots. - Validieren:
python .obsidian/skills/youtube-transcript/scripts/validate_note.py "<finished-note.md>"
- Wenn die Validierung fehlschlägt, bearbeiten Sie diese Notiz nur einmal und führen Sie den Validator erneut aus. Führen Sie während dieser Reparatur niemals eine Extraktion durch, schreiben Sie temporäre Skripte, inspizieren Sie Implementierungscode oder diagnostizieren Sie das Plattformverhalten. Wenn es immer noch fehlschlägt, stoppen Sie und melden Sie die zurückgegebenen Fehler. Nach einer erfolgreichen Validierung entfernt der Validator nur
待命名 - ...Markdown-Entwürfe im selben Ordner, deren YAMLurlgenau mit der endgültigen Notiz übereinstimmt; nicht übereinstimmende unterbrochene Entwürfe bleiben für eine Wiederaufnahme verfügbar.
Fehlerbehandlungsrichtlinie
PIPELINE_RESULT ist die Quelle der Wahrheit. Bei status: error sofort anhalten und die URL, Phase, Code, Nachricht, Aktion, abgeschlossene URLs und nicht gestartete URLs melden.
Reagieren Sie niemals auf einen Fehler, indem Sie einen anderen Downloader, einen Browser, Puppeteer, Chrome/Edge-Cookie-Extraktion, eine Websuche, eine Audioaufnahme oder einen zweiten Versuch ausführen. Der einzige kontrollierte Wiederholungsversuch befindet sich in den Skripten: Ein letzter bekanntermaßen gültiger Cookie-Check und eine Aktualisierung der Video-Stream-URL während der gezielten Frame-Extraktion.
ASR ist standardmäßig deaktiviert. Verwenden Sie --allow-asr nur, wenn der Benutzer explizit Audio-Download und langsamere Verarbeitung akzeptiert.
Visuelle Anforderungen
- Screenshots sind Beweise, keine Dekoration.
- Verwenden Sie Demonstrationen, Schnittstellen, Diagramme, Parameter, Vergleichszustände und Ergebnisse.
- Das Frame-Skript verwendet zuerst einen entfernten 720p-oder-niedriger-Stream mit yt-dlp-Anforderungs-Headern. Wenn das ferne Seek fehlschlägt, kann es nur ein 8-Sekunden-begrenztes Segment um jeden geplanten Zeitpunkt herunterladen. Temporäre Segmente werden sofort gelöscht und ein vollständiges Video wird niemals für Screenshots heruntergeladen.
- Ein Fehler bei einem erforderlichen Frame oder weniger als 70% Frame-Plan-Abdeckung ist ein schwerwiegender Fehler.
- Ein Cover, Thumbnail, manuell kopiertes Bild oder doppelter Embed zählt niemals als Keyframe.
- Behalten Sie geplante Frames bei, selbst wenn ihre Gesamtlayouts ähnlich aussehen. Terminaltext, Code, Folien und UI-Zustandsänderungen sind nützlich. Lehnen Sie nur effektiv leere schwarze/weiße Frames ab; verwenden Sie keine OCR, KI-Bildanalyse oder wahrnehmungsbezogene Duplikatfilterung.
- Behalten Sie geplante Frames bei, selbst wenn ihre Gesamtlayouts ähnlich aussehen. Terminaltext, Code, Folien und UI-Zustandsänderungen sind nützlich. Lehnen Sie nur effektiv leere schwarze/weiße Frames ab; verwenden Sie keine OCR, KI-Bildanalyse oder wahrnehmungsbezogene Duplikatfilterung.
- Behaupten Sie niemals den Abschluss, es sei denn,
frame_manifestexistiert und jeder erforderliche Manifest-Frame erscheint in## 详细内容总结. - Erstellen Sie keine Canvas-Dateien.
Anforderungen an die endgültige Notiz
- Dateiname:
中文标题 - English Title. - YAML enthält
skill_version: 4.0.0,quality_profile_version: 1und ein gültigesframe_manifest, das vonextract_frames.pygeschrieben wurde. - Der Text beginnt mit
## 一句话摘要ohne eine doppelte H1-Überschrift. - Entfernen Sie Quellstatus, Videobeschreibung, visuelle Materialindizes, Extraktionswarnungen, Aufgabenanweisungen und Selbstprüfungsabschnitte aus dem endgültigen Text; YAML trägt bereits Quellmetadaten.
- Verwenden Sie zuerst Chinesisch; erklären Sie notwendige englische Terminologie bei der ersten Verwendung.
- Lassen Sie das Transkript die Gliederung und Tiefe des Artikels bestimmen. Bilder unterstützen die Erklärung; kürzen oder lassen Sie niemals wichtige Inhalte weg, nur weil ein passender Frame nicht verfügbar ist.
- Passen Sie die Artikeltiefe an die Videodauer an. Jedes geplante Kapitel benötigt eine echte Erklärung, Video-Beweis oder Beispiel und eine klare Lernimplikation. Vermeiden Sie generische Fülltexte und wiederholte Absätze.
- Verlinken Sie die SRT am Ende. Fügen Sie keinen rohen Transkripttext ein.
- Entfernen Sie die Selbstprüfungs-Checkliste vor dem endgültigen Abschluss.