NanoSkill
Invia la tua skill

Competenza Agente Trascrizioni YouTube

diJimLiu1Kstelle GitHubGitHub

Scarica trascrizioni, sottotitoli e immagini di copertina dei video di YouTube tramite URL o ID video. Supporta più lingue, traduzione, capitoli e identificazione del parlante per migliorare l'accessibilità dei contenuti. Inizia gratuitamente in pochi secondi.

youtubeScansione di sicurezza superata
Anteprima risultato

Demo completa

Esplora un report professionale di analisi video basato su questa Competenza.

Per iniziare

Esegui il primo task

  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

    Installa

    Aggiungi la Competenza Agente Trascrizioni YouTube al tuo agente AI.

  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

    Fornisci contenuto

    Condividi un link di YouTube e specifica il formato di output desiderato.

  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

    Estrai approfondimenti

    Genera trascrizioni strutturate, riassunti, punti chiave e contenuti riutilizzabili.

Comando di installazione

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

Informazioni

La Competenza Scaricatore di Trascrizioni YouTube fornisce una soluzione robusta per estrarre informazioni complete dai video di YouTube. Questa competenza consente agli utenti di scaricare senza sforzo trascrizioni complete di YouTube, sottotitoli e persino immagini di copertina semplicemente fornendo un URL o ID video. È progettata per creatori di contenuti, ricercatori e chiunque abbia bisogno di convertire contenuti parlati in testo, offrendo funzionalità come il supporto multilingue, capacità di traduzione e opzioni avanzate di strutturazione.

Sfruttando l'accesso diretto all'API InnerTube di YouTube e un fallback intelligente a `yt-dlp`, la competenza garantisce un recupero dati affidabile ed efficiente senza la necessità di chiavi API personali. Offre formati di output flessibili, incluso Markdown per analisi dettagliate con timestamp e marcatori di capitoli, e SRT per l'integrazione standard dei sottotitoli. Inoltre, supporta la segmentazione dei capitoli dalle descrizioni video e fornisce un flusso di lavoro per l'identificazione del parlante basata sull'IA, producendo testo altamente organizzato e attribuito.

Con una cache intelligente, la competenza riduce al minimo le richieste di rete ridondanti, rendendo le operazioni successive sullo stesso video eccezionalmente veloci. Che tu abbia bisogno di analizzare contenuti video, creare sottotitoli accessibili, tradurre materiale per un pubblico globale o semplicemente estrarre metadati e miniature dei video, questa competenza semplifica il processo, fornendo un potente strumento per la gestione dei contenuti YouTube.

Funzioni chiave

Cosa la rende potente

  • Accesso Diretto a YouTube

    Accede direttamente all'API InnerTube di YouTube per un rapido recupero delle trascrizioni, ricorrendo automaticamente a `yt-dlp` se l'API diretta è bloccata, garantendo un accesso affidabile senza chiavi API.

  • Supporto Multilingue e Traduzione

    Specifica le lingue preferite per le trascrizioni e traducile in una lingua di destinazione, rendendo i contenuti accessibili a un pubblico globale.

  • Segmentazione per Capitoli e Identificazione dei Parlanti

    Segmenta automaticamente le trascrizioni per capitoli video e supporta la post-elaborazione AI per l'identificazione dei parlanti, fornendo testo strutturato e attribuito.

  • Formati di Output Flessibili

    Genera trascrizioni in Markdown con timestamp o file di sottotitoli SRT, adatti a vari utilizzi dall'analisi dei contenuti ai lettori video.

  • Caching Intelligente per l'Efficienza

    Memorizza nella cache i dati video grezzi, i metadati e le trascrizioni segmentate, consentendo una rapida riformattazione e riducendo le chiamate di rete nelle richieste successive per lo stesso video.

Casi d’uso

Quando usarla

  • Generare Trascrizioni YouTube per l'Analisi dei Contenuti

    Creatori di contenuti e ricercatori possono ottenere rapidamente trascrizioni complete di YouTube, inclusi timestamp e marcatori di capitoli, per analizzare i contenuti video, estrarre informazioni chiave o riutilizzare il parlato in articoli testuali.

  • Creare File di Sottotitoli per l'Accessibilità

    Editor video e specialisti dell'accessibilità possono generare file di sottotitoli SRT da video YouTube, garantendo che i contenuti siano accessibili a persone con problemi di udito o a chi preferisce fruire i contenuti in silenzio.

  • Tradurre Contenuti Video per una Portata Globale

    Operatori di marketing ed educatori possono tradurre le trascrizioni di YouTube in più lingue, ampliando la portata dei loro contenuti video a parlanti non nativi e migliorando il coinvolgimento globale.

  • Estrarre Metadati e Immagini di Copertina

    Gli utenti possono estrarre facilmente metadati video e immagini di copertina di alta qualità, utili per la catalogazione, la promozione sui social media o la creazione di risorse visive relative al contenuto video.

SKILL.md

Trascrizione YouTube

Scarica trascrizioni (sottotitoli/didascalie) da video YouTube. Funziona sia con trascrizioni create manualmente che generate automaticamente. Nessuna chiave API o browser richiesto — utilizza direttamente l'API InnerTube di YouTube e ricorre automaticamente a yt-dlp quando YouTube blocca il percorso API diretto.

Recupera i metadati del video e l'immagine di copertina alla prima esecuzione, memorizza nella cache i dati grezzi per una riformattazione rapida.

Directory degli script

Script nella sottodirectory scripts/. {baseDir} = percorso della directory di questo SKILL.md. Risolvi il runtime ${BUN_X}: se bun installato → bun; se npx disponibile → npx -y bun; altrimenti suggerisci di installare bun. Sostituisci {baseDir} e ${BUN_X} con i valori effettivi.

ScriptScopo
scripts/main.tsCLI per scaricare trascrizioni

Utilizzo

# Predefinito: markdown con timestamp (inglese)
${BUN_X} {baseDir}/scripts/main.ts <youtube-url-or-id>

# Specifica le lingue (ordine di priorità)
${BUN_X} {baseDir}/scripts/main.ts <url> --languages zh,en,ja

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

# Con segmentazione per capitoli
${BUN_X} {baseDir}/scripts/main.ts <url> --chapters

# Con identificazione dell'oratore (richiede post-elaborazione AI)
${BUN_X} {baseDir}/scripts/main.ts <url> --speakers

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

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

# Elenca le trascrizioni disponibili
${BUN_X} {baseDir}/scripts/main.ts <url> --list

# Forza il ri-recupero (ignora la cache)
${BUN_X} {baseDir}/scripts/main.ts <url> --refresh

Opzioni

OpzioneDescrizionePredefinito
<url-o-id>URL di YouTube o ID del video (più di uno consentiti)Richiesto
--languages <codici>Codici di lingua, separati da virgola, in ordine di prioritàen
--format <fmt>Formato di output: text, srttext
--translate <codice>Traduci nel codice di lingua specificato
--listElenca le trascrizioni disponibili invece di recuperarle
--timestampsIncludi timestamp [HH:MM:SS → HH:MM:SS] per ogni paragrafoattivo
--no-timestampsDisabilita i timestamp
--chaptersSegmentazione in capitoli dalla descrizione del video
--speakersTrascrizione grezza con metadati per l'identificazione dell'oratore
--exclude-generatedSalta le trascrizioni generate automaticamente
--exclude-manually-createdSalta le trascrizioni create manualmente
--refreshForza il ri-recupero, ignora i dati nella cache
-o, --output <percorso>Salva su un percorso file specificogenerato automaticamente
--output-dir <dir>Directory di output di baseyoutube-transcript

Variabili d'ambiente opzionali

VariabileDescrizione
YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSERPassato a yt-dlp --cookies-from-browser durante il fallback, ad es. chrome, safari, firefox, o chrome:Profile 1

Formati di input

Accetta uno qualsiasi di questi come input video:

  • URL completo: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • URL abbreviato: https://youtu.be/dQw4w9WgXcQ
  • URL embed: https://www.youtube.com/embed/dQw4w9WgXcQ
  • URL Shorts: https://www.youtube.com/shorts/dQw4w9WgXcQ
  • ID video: dQw4w9WgXcQ

Formati di output

FormatoEstensioneDescrizione
text.mdMarkdown con frontmatter (inclusa description), titolo, riepilogo, TOC/immagine di copertina/timestamp/capitoli/oratori opzionali
srt.srtFormato sottotitoli SubRip per lettori video

Directory di output

youtube-transcript/
├── .index.json                          # Mappatura ID video → percorso directory (per la ricerca nella cache)
└── {channel-slug}/{title-full-slug}/
    ├── meta.json                        # Metadati del video (titolo, canale, descrizione, durata, capitoli, ecc.)
    ├── transcript-raw.json              # Frammenti grezzi di trascrizione dall'API di YouTube (in cache)
    ├── transcript-sentences.json        # Trascrizione segmentata in frasi (divisa per punteggiatura, unita tra i frammenti)
    ├── imgs/
    │   └── cover.jpg                    # Miniatura del video
    ├── transcript.md                    # Trascrizione in Markdown (generata dalle frasi)
    └── transcript.srt                   # Sottotitoli SRT (generati dai frammenti grezzi, se --format srt)
  • {channel-slug}: Nome del canale in kebab-case
  • {title-full-slug}: Titolo completo del video in kebab-case

La modalità --list produce output solo su stdout (nessun file salvato).

Memorizzazione nella cache

Al primo recupero, lo script salva:

  • meta.json — metadati del video, capitoli, percorso dell'immagine di copertina, informazioni sulla lingua
  • transcript-raw.json — frammenti grezzi di trascrizione dall'API di YouTube ({ text, start, duration }[])
  • transcript-sentences.json — trascrizione segmentata in frasi ({ text, start: "HH:mm:ss", end: "HH:mm:ss" }[]), divisa per punteggiatura di fine frase (.?!…。?! ecc.), timestamp allocati proporzionalmente alla lunghezza dei caratteri, unione del testo consapevole dei caratteri CJK
  • imgs/cover.jpg — miniatura del video

Le esecuzioni successive per lo stesso video utilizzano i dati memorizzati nella cache (nessuna chiamata di rete). Usa --refresh per forzare il ri-recupero. Se viene richiesta una lingua diversa, la cache viene automaticamente aggiornata.

Quando YouTube restituisce risposte anti-bot / bloccate sul percorso InnerTube diretto, lo script ritenta con identità client alternative e poi ricorre a yt-dlp se disponibile. Se è necessario il fallback ma yt-dlp non è disponibile, l'agente dovrebbe decidere come rendere disponibile yt-dlp e continuare anziché scaricare la decisione di installazione sull'utente.

L'output SRT (--format srt) è generato da transcript-raw.json. L'output testo/markdown utilizza transcript-sentences.json per limiti di frase naturali.

Flusso di lavoro

Quando l'utente fornisce un URL di YouTube e desidera la trascrizione:

  1. Esegui prima con --list se l'utente non ha specificato una lingua, per mostrare le opzioni disponibili
  2. Metti sempre tra virgolette singole l'URL quando esegui lo script — zsh tratta ? come un carattere jolly glob, quindi un URL di YouTube senza virgolette causa "nessuna corrispondenza trovata": usa 'https://www.youtube.com/watch?v=ID'
  3. Predefinito: esegui con --chapters --speakers per l'output più ricco (capitoli + identificazione oratore)
  4. Lo script salva automaticamente i dati nella cache + il file di output e stampa il percorso del file
  5. Per la modalità --speakers: dopo che lo script ha salvato il file grezzo, segui il flusso di lavoro per l'identificazione dell'oratore descritto di seguito per post-elaborare con etichette degli oratori

Quando l'utente desidera solo un'immagine di copertina o i metadati, eseguire lo script con qualsiasi opzione memorizzerà comunque nella cache meta.json e imgs/cover.jpg.

Quando si riformatta lo stesso video (ad es., prima testo poi SRT), i dati nella cache vengono riutilizzati — nessun ri-recupero necessario.

Flusso di lavoro per capitoli e oratori

Capitoli (--chapters)

Lo script analizza i timestamp dei capitoli dalla descrizione del video (ad es., 0:00 Introduzione), segmenta la trascrizione in base ai confini dei capitoli, raggruppa i frammenti in paragrafi leggibili e salva come .md con un indice. Nessuna ulteriore elaborazione necessaria.

Se non esistono timestamp dei capitoli nella descrizione, la trascrizione viene emessa come paragrafi raggruppati senza intestazioni di capitolo.

Identificazione dell'oratore (--speakers)

L'identificazione dell'oratore richiede l'elaborazione AI. Lo script produce un file .md grezzo contenente:

  • Frontmatter YAML con metadati del video (titolo, canale, data, copertina, descrizione, lingua)
  • Descrizione del video (per l'estrazione dei nomi degli oratori)
  • Elenco dei capitoli dalla descrizione (se disponibile)
  • Trascrizione grezza in formato SRT (timestamp di inizio/fine precalcolati, efficiente in termini di token)

Dopo che lo script ha salvato il file grezzo, genera un sotto-agente (usa un modello più economico come Sonnet per efficienza dei costi) per elaborare l'identificazione dell'oratore:

  1. Leggi il file .md salvato
  2. Leggi il modello di prompt in {baseDir}/prompts/speaker-transcript.md
  3. Elabora la trascrizione grezza seguendo il prompt:
    • Identifica gli oratori usando i metadati del video (titolo → ospite, canale → conduttore, descrizione → nomi)
    • Rileva i turni degli oratori dal flusso della conversazione, pattern domanda-risposta e indizi contestuali
    • Segmenta in capitoli (usa i capitoli della descrizione se disponibili, altrimenti crea dai cambi di argomento)
    • Formatta con etichette **Nome Oratore:**, raggruppamento in paragrafi (2-4 frasi) e timestamp [HH:MM:SS → HH:MM:SS]
  4. Sovrascrivi il file .md con la trascrizione elaborata (mantieni il frontmatter YAML)

Quando viene usato --speakers, --chapters è implicito — l'output elaborato include sempre la segmentazione in capitoli.

Casi di errore

ErroreSignificato
Trascrizioni disabilitateIl video non ha alcun sottotitolo
Nessuna trascrizione trovataLa lingua richiesta non è disponibile
Video non disponibileVideo eliminato, privato o bloccato per regione
IP bloccatoTroppe richieste, riprova più tardi
Limitato per etàIl video richiede l'accesso per la verifica dell'età
bot rilevatoLo script ritenta con client alternativi e poi yt-dlp; se mancano gli strumenti di fallback, l'agente dovrebbe risolvere da sé, altrimenti se ancora fallisce prova YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER=safari (o il tuo browser)

FAQ