NanoSkill
Dodaj swoją umiejętność

Umiejętność agenta transkryptów YouTube

przezJimLiu1Kgwiazdki GitHubGitHub

Pobieraj transkrypty, napisy i obrazy okładek filmów z YouTube po adresie URL lub identyfikatorze wideo. Obsługuje wiele języków, tłumaczenie, rozdziały i identyfikację mówcy, aby zwiększyć dostępność treści. Zacznij za darmo w kilka sekund.

youtubeSkan bezpieczeństwa zakończony pomyślnie
Podgląd wyniku

Pełne demo

Przejrzyj profesjonalny raport z analizy wideo stworzony dzięki tej umiejętności.

Start

Uruchom pierwsze zadanie

  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

    Zainstaluj

    Dodaj umiejętność agenta transkryptów YouTube do swojego agenta 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

    Podaj zawartość

    Udostępnij link do YouTube i określ żądany format wyjściowy.

  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

    Wyciągnij wnioski

    Generuj uporządkowane transkrypty, streszczenia, kluczowe wnioski i treści do ponownego wykorzystania.

Komenda instalacji

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

O umiejętności

Umiejętność pobierania transkryptów YouTube zapewnia solidne rozwiązanie do wydobywania wyczerpujących informacji z filmów na YouTube. Ta umiejętność umożliwia użytkownikom łatwe pobieranie pełnych transkryptów, napisów, a nawet obrazów okładek, podając jedynie adres URL lub identyfikator wideo. Została zaprojektowana dla twórców treści, badaczy i wszystkich, którzy potrzebują przekształcić mowę na tekst, oferując funkcje takie jak obsługa wielu języków, możliwości tłumaczenia i zaawansowane opcje strukturyzacji.

Wykorzystując bezpośredni dostęp do wewnętrznego API YouTube (InnerTube) i sprytne przełączanie na `yt-dlp` w razie potrzeby, umiejętność zapewnia niezawodne i wydajne pobieranie danych bez konieczności posiadania osobistych kluczy API. Oferuje elastyczne formaty wyjściowe, w tym Markdown do szczegółowej analizy ze znacznikami czasu i wskaźnikami rozdziałów, oraz SRT do standardowej integracji napisów. Dodatkowo obsługuje segmentację rozdziałów z opisów wideo i zapewnia przepływ pracy do identyfikacji mówców opartej na sztucznej inteligencji, dostarczając wysoce uporządkowany i przypisany tekst.

Dzięki inteligentnemu buforowaniu umiejętność minimalizuje zbędne żądania sieciowe, sprawiając, że kolejne operacje na tym samym filmie są wyjątkowo szybkie. Niezależnie od tego, czy chcesz analizować treść wideo, tworzyć dostępne napisy, tłumaczyć materiały dla globalnej publiczności, czy po prostu wydobywać metadane wideo i miniatury, ta umiejętność usprawnia proces, zapewniając potężne narzędzie do zarządzania treściami z YouTube.

Kluczowe funkcje

Co czyni ją mocną

  • Bezpośredni dostęp do YouTube

    Korzysta bezpośrednio z wewnętrznego interfejsu API YouTube w celu szybkiego pobierania transkrypcji, automatycznie przełączając się na `yt-dlp`, jeśli bezpośredni interfejs API jest zablokowany, zapewniając niezawodny dostęp bez kluczy API.

  • Wsparcie wielojęzyczne i tłumaczenie

    Określ preferowane języki transkrypcji i przetłumacz je na wybrany język docelowy, udostępniając treści globalnej publiczności.

  • Segmentacja na rozdziały i identyfikacja mówców

    Automatycznie dzieli transkrypcje według rozdziałów wideo i obsługuje późniejsze przetwarzanie przez SI w celu identyfikacji mówców, dostarczając uporządkowany tekst z przypisaniem.

  • Elastyczne formaty wyjściowe

    Generuje transkrypcje w formacie Markdown ze znacznikami czasu lub pliki napisów SRT, odpowiednie do różnych zastosowań, od analizy treści po odtwarzacze wideo.

  • Inteligentne buforowanie dla wydajności

    Buforuje surowe dane wideo, metadane i podzielone transkrypcje, umożliwiając szybkie ponowne formatowanie i zmniejszając liczbę wywołań sieciowych przy kolejnych żądaniach dla tego samego filmu.

Przypadki użycia

Kiedy jej używać

  • Generuj transkrypcje YouTube do analizy treści

    Twórcy treści i badacze mogą szybko uzyskać pełne transkrypcje YouTube, w tym znaczniki czasu i znaczniki rozdziałów, aby analizować treści wideo, wyodrębniać kluczowe informacje lub przekształcać treści mówione w artykuły tekstowe.

  • Twórz pliki napisów dla dostępności

    Montażyści wideo i specjaliści ds. dostępności mogą generować pliki napisów SRT z filmów YouTube, zapewniając dostępność treści dla osób niesłyszących lub tych, którzy wolą odbierać treści bez dźwięku.

  • Tłumacz treści wideo dla globalnego zasięgu

    Marketerzy i edukatorzy mogą tłumaczyć transkrypcje YouTube na wiele języków, rozszerzając zasięg swoich treści wideo na osoby niebędące rodzimymi użytkownikami i zwiększając globalne zaangażowanie.

  • Wyodrębnij metadane i obrazy okładek

    Użytkownicy mogą łatwo wyodrębnić metadane wideo i obrazy okładek w wysokiej jakości, przydatne do katalogowania, promocji w mediach społecznościowych lub tworzenia zasobów wizualnych związanych z treścią wideo.

SKILL.md

Transkrypcja YouTube

Pobiera transkrypcje (napisy/podpisy) z filmów YouTube. Działa zarówno z ręcznie tworzonymi, jak i automatycznie generowanymi transkrypcjami. Nie wymaga klucza API ani przeglądarki — korzysta bezpośrednio z API InnerTube YouTube i automatycznie przełącza się na yt-dlp, gdy YouTube blokuje bezpośrednią ścieżkę API.

Przy pierwszym uruchomieniu pobiera metadane wideo i obraz okładki, przechowuje surowe dane w pamięci podręcznej w celu szybkiego ponownego formatowania.

Katalog skryptów

Skrypty w podkatalogu scripts/. {baseDir} = ścieżka katalogu tego SKILL.md. Ustal środowisko wykonawcze ${BUN_X}: jeśli zainstalowano bunbun; jeśli dostępny jest npxnpx -y bun; w przeciwnym razie zasugeruj instalację bun. Zastąp {baseDir} i ${BUN_X} rzeczywistymi wartościami.

SkryptPrzeznaczenie
scripts/main.tsCLI do pobierania transkrypcji

Użycie

# Domyślnie: markdown z znacznikami czasu (angielski)
${BUN_X} {baseDir}/scripts/main.ts <youtube-url-or-id>

# Określ języki (kolejność priorytetów)
${BUN_X} {baseDir}/scripts/main.ts <url> --languages zh,en,ja

# Bez znaczników czasu
${BUN_X} {baseDir}/scripts/main.ts <url> --no-timestamps

# Z segmentacją rozdziałów
${BUN_X} {baseDir}/scripts/main.ts <url> --chapters

# Z identyfikacją mówców (wymaga obróbki AI)
${BUN_X} {baseDir}/scripts/main.ts <url> --speakers

# Plik napisów SRT
${BUN_X} {baseDir}/scripts/main.ts <url> --format srt

# Przetłumacz transkrypcję
${BUN_X} {baseDir}/scripts/main.ts <url> --translate zh-Hans

# Lista dostępnych transkrypcji
${BUN_X} {baseDir}/scripts/main.ts <url> --list

# Wymuś ponowne pobranie (ignoruj pamięć podręczną)
${BUN_X} {baseDir}/scripts/main.ts <url> --refresh

Opcje

OpcjaOpisDomyślnie
<url-or-id>Adres URL YouTube lub identyfikator wideo (dozwolone wiele)Wymagane
--languages <codes>Kody językowe, oddzielone przecinkami, w kolejności priorytetówen
--format <fmt>Format wyjściowy: text, srttext
--translate <code>Przetłumacz na podany kod języka
--listWyświetl dostępne transkrypcje zamiast pobierać
--timestampsDołącz znaczniki czasu [HH:MM:SS → HH:MM:SS] dla każdego akapituwłączone
--no-timestampsWyłącz znaczniki czasu
--chaptersSegmentacja rozdziałów na podstawie opisu wideo
--speakersSurowa transkrypcja z metadanymi do identyfikacji mówców
--exclude-generatedPomiń automatycznie generowane transkrypcje
--exclude-manually-createdPomiń ręcznie tworzone transkrypcje
--refreshWymuś ponowne pobranie, ignoruj dane z pamięci podręcznej
-o, --output <path>Zapisz do określonej ścieżki plikuautomatycznie generowana
--output-dir <dir>Podstawowy katalog wyjściowyyoutube-transcript

Opcjonalne zmienne środowiskowe

ZmiennaOpis
YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSERPrzekazywane do yt-dlp --cookies-from-browser podczas przełączania, np. chrome, safari, firefox lub chrome:Profile 1

Formaty wejściowe

Akceptuje dowolne z poniższych jako wejście wideo:

  • Pełny URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • Krótki URL: https://youtu.be/dQw4w9WgXcQ
  • URL osadzenia: https://www.youtube.com/embed/dQw4w9WgXcQ
  • URL Shorts: https://www.youtube.com/shorts/dQw4w9WgXcQ
  • ID wideo: dQw4w9WgXcQ

Formaty wyjściowe

FormatRozszerzenieOpis
text.mdMarkdown z frontmatter (zawiera description), nagłówek tytułu, podsumowanie, opcjonalny spis treści/okładka/znaczniki czasu/rozdziały/mówcy
srt.srtFormat napisów SubRip dla odtwarzaczy wideo

Katalog wyjściowy

youtube-transcript/
├── .index.json                          # Mapowanie identyfikatora wideo → ścieżka katalogu (do wyszukiwania w pamięci podręcznej)
└── {channel-slug}/{title-full-slug}/
    ├── meta.json                        # Metadane wideo (tytuł, kanał, opis, czas trwania, rozdziały itp.)
    ├── transcript-raw.json              # Surowe fragmenty transkrypcji z API YouTube (buforowane)
    ├── transcript-sentences.json        # Transkrypcja podzielona na zdania (podział według interpunkcji, scalanie między fragmentami)
    ├── imgs/
    │   └── cover.jpg                    # Miniatura wideo
    ├── transcript.md                    # Transkrypcja w formacie Markdown (wygenerowana z zdań)
    └── transcript.srt                   # Napisy SRT (wygenerowane z surowych fragmentów, jeśli użyto --format srt)
  • {channel-slug}: Nazwa kanału w formacie kebab-case
  • {title-full-slug}: Pełny tytuł wideo w formacie kebab-case

Tryb --list wyprowadza tylko na stdout (nie zapisuje pliku).

Buforowanie

Przy pierwszym pobraniu skrypt zapisuje:

  • meta.json — metadane wideo, rozdziały, ścieżka do obrazu okładki, informacje o języku
  • transcript-raw.json — surowe fragmenty transkrypcji z API YouTube ({ text, start, duration }[])
  • transcript-sentences.json — transkrypcja podzielona na zdania ({ text, start: "HH:mm:ss", end: "HH:mm:ss" }[]), podzielona według znaków kończących zdanie (.?!…。?! itp.), znaczniki czasu proporcjonalnie przydzielone według długości znaków, scalanie tekstu z uwzględnieniem CJK
  • imgs/cover.jpg — miniatura wideo

Kolejne uruchomienia dla tego samego wideo korzystają z danych z pamięci podręcznej (bez wywołań sieciowych). Użyj --refresh, aby wymusić ponowne pobranie. W przypadku żądania innego języka, pamięć podręczna jest automatycznie odświeżana.

Gdy YouTube zwraca odpowiedzi anty-botowe / zablokowane na bezpośredniej ścieżce InnerTube, skrypt ponawia próby z alternatywnymi tożsamościami klienta, a następnie przełącza się na yt-dlp, jeśli jest dostępny. Jeśli konieczne jest użycie narzędzia zapasowego, ale yt-dlp jest niedostępny, agent powinien zdecydować, jak udostępnić yt-dlp i kontynuować, zamiast zmuszać użytkownika do podjęcia decyzji o instalacji.

Dane wyjściowe SRT (--format srt) są generowane z transcript-raw.json. Wyjście tekstowe/markdown używa transcript-sentences.json dla naturalnych granic zdań.

Przepływ pracy

Gdy użytkownik poda adres URL YouTube i chce uzyskać transkrypcję:

  1. Uruchom z --list najpierw, jeśli użytkownik nie określił języka, aby pokazać dostępne opcje
  2. Zawsze umieszczaj adres URL w pojedynczych cudzysłowach podczas uruchamiania skryptu — zsh traktuje ? jako symbol wieloznaczny glob, więc niecytowany adres URL YouTube powoduje "nie znaleziono dopasowań": użyj 'https://www.youtube.com/watch?v=ID'
  3. Domyślnie: uruchom z --chapters --speakers, aby uzyskać najbogatsze wyniki (rozdziały + identyfikacja mówców)
  4. Skrypt automatycznie zapisuje dane z pamięci podręcznej + plik wyjściowy i drukuje ścieżkę pliku
  5. Dla trybu --speakers: po zapisaniu surowego pliku przez skrypt, postępuj zgodnie z poniższym przepływem pracy identyfikacji mówców, aby przeprowadzić obróbkę końcową z etykietami mówców

Gdy użytkownik chce tylko obrazu okładki lub metadanych, uruchomienie skryptu z dowolną opcją spowoduje również zapisanie w pamięci podręcznej meta.json i imgs/cover.jpg.

Podczas ponownego formatowania tego samego wideo (np. najpierw tekst, potem SRT), dane z pamięci podręcznej są ponownie wykorzystywane — nie ma potrzeby ponownego pobierania.

Przepływ pracy rozdziałów i mówców

Rozdziały (--chapters)

Skrypt analizuje znaczniki czasu rozdziałów z opisu wideo (np. 0:00 Wprowadzenie), dzieli transkrypcję według granic rozdziałów, grupuje fragmenty w czytelne akapity i zapisuje jako .md z spisem treści. Nie jest wymagane dalsze przetwarzanie.

Jeśli w opisie nie ma znaczników czasu rozdziałów, transkrypcja jest wyprowadzana jako zgrupowane akapity bez nagłówków rozdziałów.

Identyfikacja mówców (--speakers)

Identyfikacja mówców wymaga przetwarzania AI. Skrypt generuje surowy plik .md zawierający:

  • YAML frontmatter z metadanymi wideo (tytuł, kanał, data, okładka, opis, język)
  • Opis wideo (do ekstrakcji nazw mówców)
  • Lista rozdziałów z opisu (jeśli dostępna)
  • Surowa transkrypcja w formacie SRT (wstępnie obliczone znaczniki czasu początku/końca, oszczędne tokenowo)

Po zapisaniu surowego pliku przez skrypt, uruchom pod-agenta (użyj tańszego modelu, np. Sonnet, dla oszczędności kosztów), aby przeprowadzić identyfikację mówców:

  1. Odczytaj zapisany plik .md
  2. Odczytaj szablon promptu z {baseDir}/prompts/speaker-transcript.md
  3. Przetwórz surową transkrypcję zgodnie z promptem:
    • Zidentyfikuj mówców, korzystając z metadanych wideo (tytuł → gość, kanał → gospodarz, opis → nazwiska)
    • Wykryj zmiany mówców na podstawie przepływu rozmowy, wzorców pytanie-odpowiedź i wskazówek kontekstowych
    • Podziel na rozdziały (użyj rozdziałów z opisu, jeśli są dostępne, w przeciwnym razie utwórz na podstawie zmian tematów)
    • Formatuj z etykietami **Imię mówcy:**, grupowaniem akapitów (2-4 zdania) i znacznikami czasu [HH:MM:SS → HH:MM:SS]
  4. Nadpisz plik .md przetworzoną transkrypcją (zachowaj YAML frontmatter)

Gdy używana jest opcja --speakers, --chapters jest implikowane — przetworzone dane wyjściowe zawsze zawierają segmentację rozdziałów.

Przypadki błędów

BłądZnaczenie
Transkrypcje wyłączoneWideo nie ma wcale napisów
Nie znaleziono transkrypcjiŻądany język nie jest dostępny
Wideo niedostępneWideo usunięte, prywatne lub zablokowane regionalnie
IP zablokowaneZbyt wiele żądań, spróbuj ponownie później
Ograniczenie wiekoweWideo wymaga logowania w celu weryfikacji wieku
Wykryto botaSkrypt ponawia próby z alternatywnymi klientami, a następnie yt-dlp; jeśli brakuje narzędzi zapasowych, agent powinien sam to rozwiązać, w przeciwnym razie jeśli nadal nie działa, spróbuj YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER=safari (lub swojej przeglądarki)

FAQ