NanoSkill
Skill einreichen

YouTube-Transkript-Agenten-Skill

vonJimLiu1KGitHub-SterneGitHub

Laden Sie YouTube-Videotranskripte, Untertitel und Titelbilder per URL oder Video-ID herunter. Unterstützt mehrere Sprachen, Übersetzung, Kapitel und Sprecheridentifikation, um die Barrierefreiheit von Inhalten zu verbessern. Starten Sie kostenlos in Sekunden.

youtubeSicherheitsprüfung bestanden
Ergebnisvorschau

Vollständige Demo

Entdecken Sie einen professionellen Videoanalysebericht, der von diesem Skill unterstützt wird.

Loslegen

Erste Aufgabe ausführen

  1. A screenshot showing the installation process of the 'baoyu-youtube-transcript' AI agent skill from a GitHub repository using an NPX command. At the top, a blue command banner displays the installation command for adding the skill from the GitHub repository. Below, a conversational interface explains the installation workflow, including handling an interactive installation prompt, detecting that the process did not complete automatically, rerunning the command with a '-y' flag to bypass prompts, and explicitly targeting the Hermes Agent environment. The log then describes creating a symbolic link from the agent skills directory to the Hermes skills directory so the skill can be recognized by the Hermes Agent. A final confirmation states that the 'baoyu-youtube-transcript' skill was successfully installed, linked, and is available for use through a skill invocation command. The interface uses a clean chat-style layout with gray response panels, dark blue command highlighting, and monospaced code snippets for file paths and terminal commands.
    01

    Installieren

    Fügen Sie den YouTube-Transkript-Agenten-Skill zu Ihrem KI-Agenten hinzu.

  2. A screenshot showing a prompt and response workflow for a YouTube transcript analysis skill. The top section contains a dark blue prompt panel describing an AI-powered content research and knowledge extraction system designed to analyze YouTube videos and transform them into structured knowledge assets. The prompt outlines requirements such as extracting complete transcripts, metadata, chapter structures, timestamps, speaker distinctions, key topics, major insights, statistics, examples, and actionable takeaways. It also lists supported output formats including executive summaries, study notes, blog articles, social media content, newsletter drafts, and research reports. Additional instructions emphasize transcript quality evaluation, improved readability, information hierarchy, redundancy removal, and generating a polished final deliverable. The requested output is a visually engaging PDF report with chapter navigation, highlighted takeaways, and presentation-ready layouts. Beneath the prompt, a gray response panel shows the AI acknowledging that the skill has been loaded successfully but explaining that a YouTube URL is still required before transcript extraction and report generation can begin. The interface uses a clean chat-style layout with large rounded panels, white text on a dark blue background, and structured instructional formatting.
    02

    Inhalt bereitstellen

    Geben Sie einen YouTube-Link an und geben Sie Ihr gewünschtes Ausgabeformat an.

  3. A presentation cover slide for a TED Talk analysis and knowledge report. The slide features a bold red background with a teal accent bar running along the bottom edge. Centered at the top is the large white title 'This Is How Kids Should Be Learning with AI.' Below the title, the speaker attribution reads 'Priya Lakhani | TEDNext 2025,' followed by the subtitle 'TED Talk Analysis & Knowledge Report' in italicized white text. In the center of the slide is a thumbnail image from the TED Talk showing Priya Lakhani on stage. The thumbnail includes the prominent message 'AI Isn't a Shortcut to Learning' alongside the TED logo. The overall design resembles a professional research report cover, using strong typography, high contrast colors, and a clean layout to introduce an educational analysis focused on artificial intelligence, learning science, and the future of education.
    03

    Erkenntnisse extrahieren

    Erstellen Sie strukturierte Transkripte, Zusammenfassungen, Kernpunkte und wiederverwendbare Inhalte.

Installationsbefehl

$ npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-youtube-transcript

Überblick

Der YouTube-Transkript-Downloader-Skill bietet eine robuste Lösung zum Extrahieren umfassender Informationen aus YouTube-Videos. Dieser Skill ermöglicht es Benutzern, mühelos vollständige YouTube-Transkripte, Untertitel und sogar Titelbilder herunterzuladen, indem sie einfach eine Video-URL oder -ID angeben. Er ist für Content-Ersteller, Forscher und alle gedacht, die gesprochene Inhalte in Text umwandeln müssen, und bietet Funktionen wie Mehrsprachunterstützung, Übersetzungsfähigkeiten und erweiterte Strukturierungsoptionen.

Durch den direkten Zugriff auf die YouTube InnerTube API und einen intelligenten Fallback auf `yt-dlp` gewährleistet der Skill eine zuverlässige und effiziente Datenabfrage ohne persönliche API-Schlüssel. Er bietet flexible Ausgabeformate, darunter Markdown für detaillierte Analysen mit Zeitstempeln und Kapitelmarkierungen, sowie SRT für die standardmäßige Untertitelintegration. Darüber hinaus unterstützt er die Kapitelsegmentierung aus Videobeschreibungen und bietet einen Workflow für KI-gestützte Sprecheridentifikation, die hochgradig organisierten und zugeordneten Text liefert.

Durch intelligentes Caching minimiert der Skill redundante Netzwerkanfragen, sodass nachfolgende Operationen auf demselben Video außergewöhnlich schnell sind. Egal, ob Sie Videoinhalte analysieren, barrierefreie Untertitel erstellen, Material für ein globales Publikum übersetzen oder einfach Videometadaten und Thumbnails extrahieren möchten – dieser Skill optimiert den Prozess und bietet ein leistungsstarkes Werkzeug für das YouTube-Content-Management.

Wichtige Funktionen

Was ihn stark macht

  • Direkter YouTube-Zugriff

    Greift direkt auf die InnerTube-API von YouTube zu, um Transkripte schnell abzurufen, und greift automatisch auf `yt-dlp` zurück, wenn die direkte API blockiert ist, um einen zuverlässigen Zugriff ohne API-Schlüssel zu gewährleisten.

  • Mehrsprachige Unterstützung & Übersetzung

    Geben Sie bevorzugte Sprachen für Transkripte an und übersetzen Sie sie in eine Zielsprache, um Inhalte einem globalen Publikum zugänglich zu machen.

  • Kapitelsegmentierung & Sprechererkennung

    Segmentiert Transkripte automatisch nach Videokapiteln und unterstützt die KI-Nachbearbeitung zur Sprechererkennung, um strukturierten und zugeordneten Text bereitzustellen.

  • Flexible Ausgabeformate

    Erzeugt Transkripte in Markdown mit Zeitstempeln oder SRT-Untertiteldateien, geeignet für verschiedene Anwendungen von der Inhaltsanalyse bis zu Videoplayern.

  • Intelligentes Caching für Effizienz

    Speichert rohe Videodaten, Metadaten und segmentierte Transkripte im Cache, was eine schnelle Neuformatierung ermöglicht und Netzwerkaufrufe bei nachfolgenden Anfragen für dasselbe Video reduziert.

Anwendungsfälle

Wann du ihn einsetzen solltest

  • YouTube-Transkripte für die Inhaltsanalyse generieren

    Inhaltsersteller und Forscher können schnell vollständige YouTube-Transkripte einschließlich Zeitstempeln und Kapitelmarkierungen erhalten, um Videoinhalte zu analysieren, Schlüsselinformationen zu extrahieren oder gesprochene Inhalte in Textartikel umzuwandeln.

  • Untertiteldateien für Barrierefreiheit erstellen

    Videoeditoren und Barrierefreiheitsspezialisten können SRT-Untertiteldateien aus YouTube-Videos generieren und so sicherstellen, dass Inhalte für hörgeschädigte Zuschauer oder Personen, die Inhalte lieber ohne Ton konsumieren, zugänglich sind.

  • Videoinhalte für globale Reichweite übersetzen

    Marketingfachleute und Pädagogen können YouTube-Transkripte in mehrere Sprachen übersetzen, um die Reichweite ihrer Videoinhalte auf Nicht-Muttersprachler auszudehnen und das globale Engagement zu verbessern.

  • Metadaten und Coverbilder extrahieren

    Benutzer können problemlos Videometadaten und hochwertige Coverbilder extrahieren, nützlich für Katalogisierung, Social-Media-Werbung oder die Erstellung visueller Assets im Zusammenhang mit dem Videoinhalt.

SKILL.md

YouTube-Transkript

Lädt Transkripte (Untertitel) von YouTube-Videos herunter. Funktioniert mit manuell erstellten und automatisch generierten Transkripten. Kein API-Schlüssel oder Browser erforderlich – verwendet direkt die InnerTube-API von YouTube und greift automatisch auf yt-dlp zurück, wenn YouTube den direkten API-Pfad blockiert.

Ruft beim ersten Durchlauf Videometadaten und Coverbild ab, speichert Rohdaten für schnelle Umformatierung zwischen.

Skriptverzeichnis

Skripte im Unterverzeichnis scripts/. {baseDir} = Verzeichnispfad dieser SKILL.md. Ersetze ${BUN_X}-Laufzeitumgebung: wenn bun installiert → bun; wenn npx verfügbar → npx -y bun; andernfalls schlage die Installation von bun vor. Ersetze {baseDir} und ${BUN_X} durch tatsächliche Werte.

SkriptZweck
scripts/main.tsCLI zum Herunterladen von Transkripten

Verwendung

# Standard: Markdown mit Zeitstempeln (Englisch)
${BUN_X} {baseDir}/scripts/main.ts <youtube-url-oder-id>

# Sprachen angeben (Prioritätsreihenfolge)
${BUN_X} {baseDir}/scripts/main.ts <url> --languages zh,en,ja

# Ohne Zeitstempel
${BUN_X} {baseDir}/scripts/main.ts <url> --no-timestamps

# Mit Kapitelsegmentierung
${BUN_X} {baseDir}/scripts/main.ts <url> --chapters

# Mit Sprecheridentifikation (erfordert KI-Nachbearbeitung)
${BUN_X} {baseDir}/scripts/main.ts <url> --speakers

# SRT-Untertiteldatei
${BUN_X} {baseDir}/scripts/main.ts <url> --format srt

# Transkript übersetzen
${BUN_X} {baseDir}/scripts/main.ts <url> --translate zh-Hans

# Verfügbare Transkripte auflisten
${BUN_X} {baseDir}/scripts/main.ts <url> --list

# Erneuten Abruf erzwingen (Cache ignorieren)
${BUN_X} {baseDir}/scripts/main.ts <url> --refresh

Optionen

OptionBeschreibungStandard
<url-oder-id>YouTube-URL oder Video-ID (mehrere erlaubt)Erforderlich
--languages <codes>Sprachcodes, durch Kommas getrennt, in Prioritätsreihenfolgeen
--format <fmt>Ausgabeformat: text, srttext
--translate <code>In angegebenen Sprachcode übersetzen
--listVerfügbare Transkripte anzeigen, statt abzurufen
--timestamps[HH:MM:SS → HH:MM:SS]-Zeitstempel pro Absatz einfügenein
--no-timestampsZeitstempel deaktivieren
--chaptersKapitelsegmentierung aus der Videobeschreibung
--speakersRohtranskript mit Metadaten zur Sprecheridentifikation
--exclude-generatedAutomatisch generierte Transkripte überspringen
--exclude-manually-createdManuell erstellte Transkripte überspringen
--refreshErneuten Abruf erzwingen, zwischengespeicherte Daten ignorieren
-o, --output <pfad>In bestimmten Dateipfad speichernautomatisch generiert
--output-dir <verz>Basis-Ausgabeverzeichnisyoutube-transcript

Optionale Umgebungsvariablen

VariableBeschreibung
YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSERWird beim Fallback an yt-dlp --cookies-from-browser übergeben, z.B. chrome, safari, firefox oder chrome:Profile 1

Eingabeformate

Akzeptiert eine der folgenden als Videoeingabe:

  • Vollständige URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • Kurze URL: https://youtu.be/dQw4w9WgXcQ
  • Einbettungs-URL: https://www.youtube.com/embed/dQw4w9WgXcQ
  • Shorts-URL: https://www.youtube.com/shorts/dQw4w9WgXcQ
  • Video-ID: dQw4w9WgXcQ

Ausgabeformate

FormatErweiterungBeschreibung
text.mdMarkdown mit Frontmatter (inkl. description), Titelüberschrift, Zusammenfassung, optionales Inhaltsverzeichnis/Cover/Zeitstempel/Kapitel/Sprecher
srt.srtSubRip-Untertitelformat für Videoplayer

Ausgabeverzeichnis

youtube-transcript/
├── .index.json                          # Zuordnung Video-ID → Verzeichnispfad (für Cache-Suche)
└── {channel-slug}/{title-full-slug}/
    ├── meta.json                        # Videometadaten (Titel, Kanal, Beschreibung, Dauer, Kapitel, etc.)
    ├── transcript-raw.json              # Rohtranskript-Snippets von der YouTube-API (gecached)
    ├── transcript-sentences.json        # Satzsegmentiertes Transkript (durch Interpunktion getrennt, über Snippets hinweg zusammengeführt)
    ├── imgs/
    │   └── cover.jpg                    # Videothumbnail
    ├── transcript.md                    # Markdown-Transkript (aus Sätzen generiert)
    └── transcript.srt                   # SRT-Untertitel (aus Rohsnippets generiert, wenn --format srt)
  • {channel-slug}: Kanalname in kebab-case
  • {title-full-slug}: Voller Videotitel in kebab-case

Der --list-Modus gibt nur auf stdout aus (keine Datei gespeichert).

Caching

Beim ersten Abruf speichert das Skript:

  • meta.json – Videometadaten, Kapitel, Coverbildpfad, Sprachinfo
  • transcript-raw.json – Rohtranskript-Snippets von der YouTube-API ({ text, start, duration }[])
  • transcript-sentences.json – Satzsegmentiertes Transkript ({ text, start: "HH:mm:ss", end: "HH:mm:ss" }[]), aufgeteilt durch satzbeendende Interpunktion (.?!…。?! etc.), Zeitstempel proportional zur Zeichenlänge zugewiesen, CJK-bewusste Textzusammenführung
  • imgs/cover.jpg – Videothumbnail

Nachfolgende Durchläufe für dasselbe Video verwenden zwischengespeicherte Daten (keine Netzwerkaufrufe). Verwende --refresh zum erneuten Abrufen. Wird eine andere Sprache angefordert, wird der Cache automatisch aktualisiert.

Wenn YouTube Anti-Bot-/Blockierungsantworten auf dem direkten InnerTube-Pfad zurückgibt, wiederholt das Skript mit alternativen Client-Identitäten und greift dann auf yt-dlp zurück, falls verfügbar. Falls ein Fallback erforderlich ist, aber yt-dlp nicht verfügbar ist, sollte der Agent selbst entscheiden, wie er yt-dlp verfügbar macht und fortfährt, anstatt die Installationsentscheidung dem Benutzer zu überlassen.

Die SRT-Ausgabe (--format srt) wird aus transcript-raw.json generiert. Die Text-/Markdown-Ausgabe verwendet transcript-sentences.json für natürliche Satzgrenzen.

Workflow

Wenn der Benutzer eine YouTube-URL bereitstellt und das Transkript möchte:

  1. Starte zuerst mit --list, wenn der Benutzer keine Sprache angegeben hat, um die verfügbaren Optionen anzuzeigen.
  2. Setze die URL immer in einfache Anführungszeichen, wenn das Skript ausgeführt wird – zsh behandelt ? als Glob-Platzhalter, daher verursacht eine nicht in Anführungszeichen gesetzte YouTube-URL den Fehler "keine Treffer gefunden": verwende 'https://www.youtube.com/watch?v=ID'
  3. Standard: Führe mit --chapters --speakers aus, um die reichhaltigste Ausgabe zu erhalten (Kapitel + Sprecheridentifikation)
  4. Das Skript speichert automatisch die zwischengespeicherten Daten + Ausgabedatei und gibt den Dateipfad aus.
  5. Für den --speakers-Modus: Nachdem das Skript die Rohdatei gespeichert hat, folge dem untenstehenden Workflow zur Sprecheridentifikation, um mit Sprecherbezeichnungen nachzubearbeiten.

Wenn der Benutzer nur ein Coverbild oder Metadaten möchte, wird das Ausführen des Skripts mit einer beliebigen Option auch meta.json und imgs/cover.jpg cachen.

Beim Umformatieren desselben Videos (z.B. zuerst Text, dann SRT) werden die zwischengespeicherten Daten wiederverwendet – kein erneuter Abruf erforderlich.

Kapitel- & Sprecher-Workflow

Kapitel (--chapters)

Das Skript parst Kapitelzeitstempel aus der Videobeschreibung (z.B. 0:00 Einleitung), segmentiert das Transkript an Kapitelgrenzen, gruppiert Snippets in lesbare Absätze und speichert es als .md mit einem Inhaltsverzeichnis. Keine weitere Verarbeitung erforderlich.

Wenn in der Beschreibung keine Kapitelzeitstempel vorhanden sind, wird das Transkript als gruppierte Absätze ohne Kapitelüberschriften ausgegeben.

Sprecheridentifikation (--speakers)

Die Sprecheridentifikation erfordert KI-Verarbeitung. Das Skript gibt eine rohe .md-Datei aus, die Folgendes enthält:

  • YAML-Frontmatter mit Videometadaten (Titel, Kanal, Datum, Cover, Beschreibung, Sprache)
  • Videobeschreibung (zur Extraktion von Sprechernamen)
  • Kapitelliste aus der Beschreibung (falls verfügbar)
  • Rohtranskript im SRT-Format (vorberechnete Start-/Endzeitstempel, token-effizient)

Nachdem das Skript die Rohdatei gespeichert hat, starte einen Sub-Agenten (verwende ein kostengünstigeres Modell wie Sonnet für Kosteneffizienz), um die Sprecheridentifikation zu verarbeiten:

  1. Lies die gespeicherte .md-Datei
  2. Lies die Prompt-Vorlage unter {baseDir}/prompts/speaker-transcript.md
  3. Verarbeite das Rohtranskript gemäß dem Prompt:
    • Identifiziere Sprecher anhand von Videometadaten (Titel → Gast, Kanal → Gastgeber, Beschreibung → Namen)
    • Erkenne Sprecherwechsel aus Gesprächsfluss, Frage-Antwort-Mustern und kontextuellen Hinweisen
    • Unterteile in Kapitel (verwende Beschreibungskapitel, falls vorhanden, andernfalls erstelle aus Themenwechseln)
    • Formatiere mit **Sprechername:**-Bezeichnungen, Absatzgruppierung (2-4 Sätze) und [HH:MM:SS → HH:MM:SS]-Zeitstempeln
  4. Überschreibe die .md-Datei mit dem verarbeiteten Transkript (behalte das YAML-Frontmatter bei)

Wenn --speakers verwendet wird, ist --chapters impliziert – die verarbeitete Ausgabe enthält immer eine Kapitelsegmentierung.

Fehlerfälle

FehlerBedeutung
Transkripte deaktiviertVideo hat überhaupt keine Untertitel
Kein Transkript gefundenAngeforderte Sprache nicht verfügbar
Video nicht verfügbarVideo gelöscht, privat oder regionsgesperrt
IP blockiertZu viele Anfragen, versuche es später erneut
AltersbeschränktVideo erfordert Anmeldung zur Altersüberprüfung
Bot erkanntDas Skript wiederholt mit alternativen Clients und dann yt-dlp; falls Fallback-Tooling fehlt, sollte der Agent dies selbst beheben, andernfalls, wenn es immer noch fehlschlägt, versuche YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER=safari (oder deinen Browser)

FAQ