NanoSkill
Skill indienen

YouTube Transcript Agent-vaardigheid

doorJimLiu1KGitHub-sterrenGitHub

Download YouTube-videotranscripties, ondertitels en coverafbeeldingen via URL of video-ID. Ondersteunt meerdere talen, vertaling, hoofdstukken en sprekeridentificatie om de toegankelijkheid van content te verbeteren. Begin gratis binnen enkele seconden.

youtubeBeveiligingsscan geslaagd
Resultaatpreview

Volledige demo

Ontdek een professioneel videoanalyserapport mogelijk gemaakt door deze vaardigheid.

Aan de slag

Voer je eerste taak uit

  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

    Installeren

    Voeg de YouTube Transcript Agent-vaardigheid toe aan uw AI-agent.

  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

    Content verstrekken

    Deel een YouTube-link en specificeer het gewenste uitvoerformaat.

  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

    Inzichten extraheren

    Genereer gestructureerde transcripties, samenvattingen, belangrijkste punten en herbruikbare content.

Installatiecommando

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

Overzicht

De YouTube Transcript Downloader-vaardigheid biedt een robuuste oplossing voor het extraheren van uitgebreide informatie uit YouTube-video's. Met deze vaardigheid kunnen gebruikers moeiteloos volledige YouTube-transcripties, ondertitels en zelfs coverafbeeldingen downloaden door simpelweg een video-URL of -ID op te geven. Het is ontworpen voor contentmakers, onderzoekers en iedereen die gesproken content naar tekst moet omzetten, met functies zoals ondersteuning voor meerdere talen, vertaalmogelijkheden en geavanceerde structureringsopties.

Door gebruik te maken van directe toegang tot YouTube's InnerTube API en een slimme terugvaloptie naar `yt-dlp`, zorgt de vaardigheid voor betrouwbare en efficiënte gegevensopvraging zonder dat persoonlijke API-sleutels nodig zijn. Het biedt flexibele uitvoerformaten, waaronder Markdown voor gedetailleerde analyse met tijdstempels en hoofdstukmarkeringen, en SRT voor standaard ondertitelintegratie. Bovendien ondersteunt het segmentatie van hoofdstukken uit videobeschrijvingen en biedt het een workflow voor AI-gestuurde sprekeridentificatie, wat leidt tot zeer georganiseerde en toegeschreven tekst.

Met intelligente caching minimaliseert de vaardigheid overbodige netwerkverzoeken, waardoor latere bewerkingen op dezelfde video uitzonderlijk snel zijn. Of u nu video-inhoud moet analyseren, toegankelijke ondertitels wilt maken, materiaal wilt vertalen voor een wereldwijd publiek of gewoon videometadata en thumbnails wilt extraheren, deze vaardigheid stroomlijnt het proces en biedt een krachtige tool voor het beheer van YouTube-content.

Belangrijkste functies

Wat maakt dit krachtig

  • Directe YouTube-toegang

    Geeft rechtstreeks toegang tot de Binnenbuis-API van YouTube voor snelle transcriptieophaal, schakelt automatisch over op `yt-dlp` als de directe API wordt geblokkeerd, waardoor betrouwbare toegang zonder API-sleutels wordt gegarandeerd.

  • Meertalige ondersteuning en vertaling

    Specificeer voorkeurstalen voor transcripties en vertaal ze naar een doeltaal, waardoor content toegankelijk wordt voor een wereldwijd publiek.

  • Hoofdstuksegmentatie en sprekeridentificatie

    Segmenteert transcripties automatisch op basis van videohoofdstukken en ondersteunt AI-nabewerking voor sprekeridentificatie, wat gestructureerde en toegeschreven tekst oplevert.

  • Flexibele uitvoerformaten

    Genereert transcripties in Markdown met tijdstempels of SRT-ondertitelbestanden, geschikt voor diverse toepassingen van inhoudsanalyse tot videospelers.

  • Slimme caching voor efficiëntie

    Cachet ruwe videogegevens, metadata en gesegmenteerde transcripties, waardoor snelle herformattering mogelijk is en netwerkoproepen bij volgende verzoeken voor dezelfde video worden verminderd.

Use cases

Wanneer je dit gebruikt

  • Genereer YouTube-transcripties voor inhoudsanalyse

    Contentmakers en onderzoekers kunnen snel volledige YouTube-transcripties verkrijgen, inclusief tijdstempels en hoofdstukmarkeringen, om video-inhoud te analyseren, belangrijke informatie te extraheren of gesproken inhoud om te zetten in tekstuele artikelen.

  • Maak ondertitelbestanden voor toegankelijkheid

    Video-editors en toegankelijkheidsspecialisten kunnen SRT-ondertitelbestanden genereren van YouTube-video's, zodat inhoud toegankelijk is voor slechthorende doelgroepen of voor degenen die de inhoud liever zonder geluid consumeren.

  • Vertaal video-inhoud voor wereldwijd bereik

    Marketeers en docenten kunnen YouTube-transcripties vertalen naar meerdere talen, waardoor het bereik van hun video-inhoud wordt uitgebreid naar niet-moedertaalsprekers en de wereldwijde betrokkenheid wordt verbeterd.

  • Metadata en omslagafbeeldingen extraheren

    Gebruikers kunnen eenvoudig videometadata en omslagafbeeldingen van hoge kwaliteit extraheren, handig voor catalogisering, promotie op sociale media of het maken van visuele middelen met betrekking tot de video-inhoud.

SKILL.md

YouTube Transcriptie

Downloadt transcripties (ondertitels/bijschriften) van YouTube-video's. Werkt met zowel handmatig gemaakte als automatisch gegenereerde transcripties. Geen API-sleutel of browser nodig — gebruikt direct de InnerTube API van YouTube en schakelt automatisch over naar yt-dlp wanneer YouTube het directe API-pad blokkeert.

Haalt video-metadata en omslagafbeelding op bij de eerste uitvoering, slaat ruwe gegevens op in cache voor snelle herformattering.

Scriptmap

Scripts in de scripts/ submap. {baseDir} = het mappad van deze SKILL.md. Bepaal ${BUN_X} runtime: als bun is geïnstalleerd → bun; als npx beschikbaar is → npx -y bun; anders stel voor om bun te installeren. Vervang {baseDir} en ${BUN_X} door werkelijke waarden.

ScriptDoel
scripts/main.tsCLI voor transcriptiedownload

Gebruik

# Standaard: markdown met tijdstempels (Engels)
${BUN_X} {baseDir}/scripts/main.ts <youtube-url-or-id>

# Specificeer talen (prioriteitsvolgorde)
${BUN_X} {baseDir}/scripts/main.ts <url> --languages zh,en,ja

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

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

# Met sprekeridentificatie (vereist AI-nabewerking)
${BUN_X} {baseDir}/scripts/main.ts <url> --speakers

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

# Transcriptie vertalen
${BUN_X} {baseDir}/scripts/main.ts <url> --translate zh-Hans

# Toon beschikbare transcripties
${BUN_X} {baseDir}/scripts/main.ts <url> --list

# Forceer opnieuw ophalen (negeer cache)
${BUN_X} {baseDir}/scripts/main.ts <url> --refresh

Opties

OptieBeschrijvingStandaard
<url-or-id>YouTube-URL of video-ID (meerdere toegestaan)Vereist
--languages <codes>Taalcodes, door komma's gescheiden, in prioriteitsvolgordeen
--format <fmt>Uitvoerformaat: text, srttext
--translate <code>Vertaal naar opgegeven taalcode
--listToon beschikbare transcripties in plaats van op te halen
--timestampsVoeg [HH:MM:SS → HH:MM:SS] tijdstempels per alinea toeaan
--no-timestampsSchakel tijdstempels uit
--chaptersHoofdstuksegmentatie op basis van videobeschrijving
--speakersRuwe transcriptie met metadata voor sprekeridentificatie
--exclude-generatedSla automatisch gegenereerde transcripties over
--exclude-manually-createdSla handmatig gemaakte transcripties over
--refreshForceer opnieuw ophalen, negeer gegevens in cache
-o, --output <pad>Opslaan naar specifiek bestandspadautomatisch gegenereerd
--output-dir <map>Basisuitvoermapyoutube-transcript

Optionele Omgevingsvariabelen

VariabeleBeschrijving
YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSERDoorgegeven aan yt-dlp --cookies-from-browser tijdens fallback, bijv. chrome, safari, firefox, of chrome:Profile 1

Invoerformaten

Accepteert een van de volgende als video-invoer:

  • Volledige URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • Verkorte URL: https://youtu.be/dQw4w9WgXcQ
  • Insluit-URL: https://www.youtube.com/embed/dQw4w9WgXcQ
  • Shorts-URL: https://www.youtube.com/shorts/dQw4w9WgXcQ
  • Video-ID: dQw4w9WgXcQ

Uitvoerformaten

FormaatExtensieBeschrijving
text.mdMarkdown met frontmatter (incl. description), titelkop, samenvatting, optionele inhoudsopgave/omslag/tijdstempels/hoofdstukken/sprekers
srt.srtSubRip-ondertitelformaat voor videospelers

Uitvoermap

youtube-transcript/
├── .index.json                          # Video-ID → mappadtoewijzing (voor cache-opzoekingen)
└── {channel-slug}/{title-full-slug}/
    ├── meta.json                        # Videometadata (titel, kanaal, beschrijving, duur, hoofdstukken, enz.)
    ├── transcript-raw.json              # Ruwe transcriptiefragmenten van YouTube API (gecached)
    ├── transcript-sentences.json        # In zinnen gesegmenteerd transcript (gesplitst door interpunctie, samengevoegd over fragmenten)
    ├── imgs/
    │   └── cover.jpg                    # Videominiatuur
    ├── transcript.md                    # Markdown-transcript (gegenereerd uit zinnen)
    └── transcript.srt                   # SRT-ondertiteling (gegenereerd uit ruwe fragmenten, indien --format srt)
  • {channel-slug}: Kanaalnaam in kebab-case
  • {title-full-slug}: Volledige videotitel in kebab-case

De modus --list voert alleen uit naar stdout (geen bestand opgeslagen).

Caching

Bij de eerste ophaalactie slaat het script op:

  • meta.json — videometadata, hoofdstukken, pad naar omslagafbeelding, taalinformatie
  • transcript-raw.json — ruwe transcriptiefragmenten van YouTube API ({ text, start, duration }[])
  • transcript-sentences.json — in zinnen gesegmenteerd transcript ({ text, start: "HH:mm:ss", end: "HH:mm:ss" }[]), gesplitst door zinseindigende interpunctie (.?!…。?! enz.), tijdstempels proportioneel toegewezen op basis van karakterlengte, CJK-bewuste tekstsamenvoeging
  • imgs/cover.jpg — videominiatuur

Latere uitvoeringen voor dezelfde video gebruiken gegevens uit de cache (geen netwerkaanroepen). Gebruik --refresh om opnieuw ophalen te forceren. Als een andere taal wordt aangevraagd, wordt de cache automatisch vernieuwd.

Wanneer YouTube anti-bot / geblokkeerde antwoorden retourneert op het directe InnerTube-pad, probeert het script opnieuw met alternatieve clientidentiteiten en schakelt vervolgens over naar yt-dlp indien beschikbaar. Als fallback nodig is maar yt-dlp niet beschikbaar is, moet de agent beslissen hoe hij yt-dlp beschikbaar maakt en doorgaan in plaats van de installatiebeslissing aan de gebruiker over te laten.

SRT-uitvoer (--format srt) wordt gegenereerd uit transcript-raw.json. Tekst/markdown-uitvoer gebruikt transcript-sentences.json voor natuurlijke zinsgrenzen.

Workflow

Wanneer de gebruiker een YouTube-URL opgeeft en de transcriptie wil:

  1. Voer eerst --list uit als de gebruiker geen taal heeft opgegeven, om beschikbare opties te tonen
  2. Gebruik altijd enkele aanhalingstekens voor de URL bij het uitvoeren van het script — zsh behandelt ? als een glob-wildcard, dus een niet-geciteerde YouTube-URL veroorzaakt "no matches found": gebruik 'https://www.youtube.com/watch?v=ID'
  3. Standaard: voer uit met --chapters --speakers voor de rijkste uitvoer (hoofdstukken + sprekeridentificatie)
  4. Het script slaat automatisch gegevens in cache + uitvoerbestand op en toont het bestandspad
  5. Voor de modus --speakers: nadat het script het ruwe bestand heeft opgeslagen, volg de onderstaande workflow voor sprekeridentificatie om na te bewerken met sprekerlabels

Wanneer de gebruiker alleen een omslagafbeelding of metadata wil, zal het uitvoeren van het script met elke optie ook meta.json en imgs/cover.jpg in de cache opslaan.

Bij het opnieuw formatteren van dezelfde video (bijv. eerst tekst, dan SRT), worden de gegevens in de cache hergebruikt — geen nieuwe ophaalactie nodig.

Hoofdstuk- en sprekerworkflow

Hoofdstukken (--chapters)

Het script ontleedt hoofdstuktijdstempels uit de videobeschrijving (bijv. 0:00 Introductie), segmenteert de transcriptie op hoofdstukgrenzen, groepeert fragmenten in leesbare alinea's en slaat op als .md met een inhoudsopgave. Geen verdere verwerking nodig.

Als er geen hoofdstuktijdstempels in de beschrijving bestaan, wordt de transcriptie uitgevoerd als gegroepeerde alinea's zonder hoofdstukkoppen.

Sprekeridentificatie (--speakers)

Sprekeridentificatie vereist AI-verwerking. Het script voert een ruw .md-bestand uit met:

  • YAML-frontmatter met videometadata (titel, kanaal, datum, omslag, beschrijving, taal)
  • Videobeschrijving (voor het extraheren van sprekersnamen)
  • Hoofdstuklijst uit beschrijving (indien beschikbaar)
  • Ruwe transcriptie in SRT-formaat (vooraf berekende start-/eindtijdstempels, token-efficiënt)

Nadat het script het ruwe bestand heeft opgeslagen, start een sub-agent (gebruik een goedkoper model zoals Sonnet voor kostenefficiëntie) om sprekeridentificatie te verwerken:

  1. Lees het opgeslagen .md-bestand
  2. Lees de promptsjabloon op {baseDir}/prompts/speaker-transcript.md
  3. Verwerk de ruwe transcriptie volgens de prompt:
    • Identificeer sprekers met behulp van videometadata (titel → gast, kanaal → host, beschrijving → namen)
    • Detecteer sprekerwisselingen op basis van gespreksstroom, vraag-antwoordpatronen en contextuele aanwijzingen
    • Segmenteer in hoofdstukken (gebruik beschrijvingshoofdstukken indien beschikbaar, anders maak aan op basis van onderwerpverschuivingen)
    • Opmaak met **Spreker Naam:** labels, alineagroepering (2-4 zinnen) en [HH:MM:SS → HH:MM:SS] tijdstempels
  4. Overschrijf het .md-bestand met de verwerkte transcriptie (behoud de YAML-frontmatter)

Wanneer --speakers wordt gebruikt, is --chapters impliciet — de verwerkte uitvoer bevat altijd hoofdstuksegmentatie.

Foutgevallen

FoutBetekenis
Transcripties uitgeschakeldVideo heeft helemaal geen ondertitels
Geen transcriptie gevondenAangevraagde taal niet beschikbaar
Video niet beschikbaarVideo verwijderd, privé, of regiogeblokkeerd
IP geblokkeerdTe veel verzoeken, probeer later opnieuw
LeeftijdsbeperkingVideo vereist inloggen voor leeftijdsverificatie
bot gedetecteerdHet script probeert opnieuw met alternatieve clients en vervolgens yt-dlp; als fallback-tooling ontbreekt, moet de agent dit zelf oplossen, anders als het nog steeds mislukt, probeer YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER=safari (of jouw browser)

FAQ