NanoSkill
Kirim skill Anda

Keahlian Agen Transkrip YouTube

olehJimLiu1Kbintang GitHubGitHub

Unduh transkrip video YouTube, terjemahan teks, dan gambar sampul berdasarkan URL atau ID video. Mendukung berbagai bahasa, terjemahan, pembagian bab, dan identifikasi pembicara untuk meningkatkan aksesibilitas konten. Mulai gratis dalam hitungan detik.

youtubePemindaian keamanan lulus
Pratinjau hasil

Demo lengkap

Jelajahi laporan analisis video profesional yang didukung oleh Keahlian ini.

Mulai

Jalankan tugas pertama Anda

  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

    Instal

    Tambahkan Keahlian Agen Transkrip YouTube ke agen AI Anda.

  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

    Berikan Konten

    Bagikan tautan YouTube dan tentukan format keluaran yang Anda inginkan.

  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

    Ekstrak Wawasan

    Hasilkan transkrip terstruktur, ringkasan, poin-poin utama, dan konten yang dapat digunakan kembali.

Perintah instalasi

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

Tentang

Keahlian Pengunduh Transkrip YouTube menyediakan solusi tangguh untuk mengekstrak informasi lengkap dari video YouTube. Keahlian ini memungkinkan pengguna mengunduh transkrip YouTube lengkap, terjemahan teks, dan bahkan gambar sampul dengan mudah hanya dengan memberikan URL atau ID video. Ini dirancang untuk kreator konten, peneliti, dan siapa pun yang perlu mengonversi konten lisan menjadi teks, menawarkan fitur seperti dukungan multi-bahasa, kemampuan penerjemahan, dan opsi penataan lanjutan.

Dengan memanfaatkan akses langsung ke API InnerTube YouTube dan fallback cerdas ke `yt-dlp`, keahlian ini memastikan pengambilan data yang andal dan efisien tanpa memerlukan kunci API pribadi. Ini menawarkan format keluaran yang fleksibel, termasuk Markdown untuk analisis terperinci dengan stempel waktu dan penanda bab, serta SRT untuk integrasi subtitle standar. Selain itu, mendukung segmentasi bab dari deskripsi video dan menyediakan alur kerja untuk identifikasi pembicara bertenaga AI, menghasilkan teks yang sangat terorganisir dan diatribusikan.

Dengan caching cerdas, keahlian ini meminimalkan permintaan jaringan yang berlebihan, membuat operasi selanjutnya pada video yang sama menjadi sangat cepat. Baik Anda perlu menganalisis konten video, membuat subtitle yang dapat diakses, menerjemahkan materi untuk audiens global, atau sekadar mengekstrak metadata dan thumbnail video, keahlian ini menyederhanakan proses, menyediakan alat yang kuat untuk manajemen konten YouTube.

Fitur utama

Apa yang membuatnya kuat

  • Akses YouTube Langsung

    Mengakses InnerTube API YouTube secara langsung untuk pengambilan transkrip cepat, secara otomatis beralih ke `yt-dlp` jika API langsung diblokir, memastikan akses yang andal tanpa kunci API.

  • Dukungan Multi-bahasa & Terjemahan

    Tentukan bahasa pilihan untuk transkrip dan terjemahkan ke dalam bahasa target, membuat konten dapat diakses oleh audiens global.

  • Segmentasi Bab & Identifikasi Pembicara

    Secara otomatis menyegmentasi transkrip berdasarkan bab video dan mendukung pemrosesan lanjutan AI untuk identifikasi pembicara, menyediakan teks yang terstruktur dan teratribusi.

  • Format Keluaran Fleksibel

    Menghasilkan transkrip dalam format Markdown dengan cap waktu atau file subtitle SRT, cocok untuk berbagai penggunaan dari analisis konten hingga pemutar video.

  • Caching Cerdas untuk Efisiensi

    Menyimpan cache data video mentah, metadata, dan transkrip tersegmentasi, memungkinkan pemformatan ulang cepat dan mengurangi panggilan jaringan pada permintaan berikutnya untuk video yang sama.

Use case

Kapan menggunakannya

  • Hasilkan Transkrip YouTube untuk Analisis Konten

    Pembuat konten dan peneliti dapat dengan cepat memperoleh transkrip YouTube lengkap, termasuk cap waktu dan penanda bab, untuk menganalisis konten video, mengekstrak informasi penting, atau menggunakan kembali konten lisan menjadi artikel teks.

  • Buat File Subtitle untuk Aksesibilitas

    Editor video dan spesialis aksesibilitas dapat menghasilkan file subtitle SRT dari video YouTube, memastikan konten dapat diakses oleh audiens tuna rungu atau mereka yang lebih suka mengonsumsi konten tanpa suara.

  • Terjemahkan Konten Video untuk Jangkauan Global

    Pemasar dan pendidik dapat menerjemahkan transkrip YouTube ke berbagai bahasa, memperluas jangkauan konten video mereka ke penutur non-asli dan meningkatkan keterlibatan global.

  • Ekstrak Metadata dan Gambar Sampul

    Pengguna dapat dengan mudah mengekstrak metadata video dan gambar sampul berkualitas tinggi, berguna untuk katalogisasi, promosi media sosial, atau membuat aset visual terkait konten video.

SKILL.md

Transkrip YouTube

Mengunduh transkrip (subtitle/teks) dari video YouTube. Bekerja dengan transkrip yang dibuat secara manual maupun otomatis. Tidak memerlukan kunci API atau browser — menggunakan API InnerTube YouTube secara langsung dan secara otomatis beralih ke yt-dlp ketika YouTube memblokir jalur API langsung.

Mengambil metadata video dan gambar sampul pada proses pertama, menyimpan data mentah untuk pemformatan ulang yang cepat.

Direktori Skrip

Skrip berada di subdirektori scripts/. {baseDir} = jalur direktori SKILL.md ini. Tentukan runtime ${BUN_X}: jika bun terpasang → bun; jika npx tersedia → npx -y bun; selain itu sarankan untuk memasang bun. Ganti {baseDir} dan ${BUN_X} dengan nilai sebenarnya.

SkripTujuan
scripts/main.tsCLI pengunduhan transkrip

Penggunaan

# Default: markdown dengan stempel waktu (Bahasa Inggris)
${BUN_X} {baseDir}/scripts/main.ts <youtube-url-or-id>

# Tentukan bahasa (urutan prioritas)
${BUN_X} {baseDir}/scripts/main.ts <url> --languages zh,en,ja

# Tanpa stempel waktu
${BUN_X} {baseDir}/scripts/main.ts <url> --no-timestamps

# Dengan segmentasi bab
${BUN_X} {baseDir}/scripts/main.ts <url> --chapters

# Dengan identifikasi pembicara (memerlukan pasca-pemrosesan AI)
${BUN_X} {baseDir}/scripts/main.ts <url> --speakers

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

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

# Tampilkan daftar transkrip yang tersedia
${BUN_X} {baseDir}/scripts/main.ts <url> --list

# Paksa pengambilan ulang (abaikan cache)
${BUN_X} {baseDir}/scripts/main.ts <url> --refresh

Opsi

OpsiDeskripsiDefault
<url-or-id>URL YouTube atau ID video (dapat lebih dari satu)Diperlukan
--languages <codes>Kode bahasa, dipisahkan koma, dalam urutan prioritasen
--format <fmt>Format keluaran: text, srttext
--translate <code>Terjemahkan ke kode bahasa yang ditentukan
--listTampilkan transkrip yang tersedia alih-alih mengunduh
--timestampsSertakan stempel waktu [JJ:MM:DD → JJ:MM:DD] per paragrafaktif
--no-timestampsNonaktifkan stempel waktu
--chaptersSegmentasi bab dari deskripsi video
--speakersTranskrip mentah dengan metadata untuk identifikasi pembicara
--exclude-generatedLewati transkrip yang dibuat otomatis
--exclude-manually-createdLewati transkrip yang dibuat manual
--refreshPaksa pengambilan ulang, abaikan data cache
-o, --output <path>Simpan ke jalur berkas tertentudibuat otomatis
--output-dir <dir>Direktori keluaran dasaryoutube-transcript

Variabel Lingkungan Opsional

VariabelDeskripsi
YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSERDiteruskan ke yt-dlp --cookies-from-browser saat fallback, misal chrome, safari, firefox, atau chrome:Profile 1

Format Masukan

Menerima salah satu dari berikut sebagai masukan video:

  • URL lengkap: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • URL pendek: https://youtu.be/dQw4w9WgXcQ
  • URL sematan: https://www.youtube.com/embed/dQw4w9WgXcQ
  • URL Shorts: https://www.youtube.com/shorts/dQw4w9WgXcQ
  • ID Video: dQw4w9WgXcQ

Format Keluaran

FormatEkstensiDeskripsi
text.mdMarkdown dengan frontmatter (termasuk description), judul, ringkasan, opsional TOC/sampul/stempel waktu/bab/pembicara
srt.srtFormat subtitle SubRip untuk pemutar video

Direktori Keluaran

youtube-transcript/
├── .index.json                          # Pemetaan ID Video → jalur direktori (untuk pencarian cache)
└── {channel-slug}/{title-full-slug}/
    ├── meta.json                        # Metadata video (judul, saluran, deskripsi, durasi, bab, dll.)
    ├── transcript-raw.json              # Potongan transkrip mentah dari API YouTube (di-cache)
    ├── transcript-sentences.json        # Transkrip tersegmentasi kalimat (dipisah berdasarkan tanda baca, digabung antar potongan)
    ├── imgs/
    │   └── cover.jpg                    # Gambar mini video
    ├── transcript.md                    # Transkrip markdown (dibuat dari kalimat)
    └── transcript.srt                   # Subtitle SRT (dibuat dari potongan mentah, jika --format srt)
  • {channel-slug}: Nama saluran dalam kebab-case
  • {title-full-slug}: Judul video lengkap dalam kebab-case

Mode --list hanya menampilkan ke stdout (tidak menyimpan berkas).

Cache

Pada pengambilan pertama, skrip menyimpan:

  • meta.json — metadata video, bab, jalur gambar sampul, info bahasa
  • transcript-raw.json — potongan transkrip mentah dari API YouTube ({ text, start, duration }[])
  • transcript-sentences.json — transkrip tersegmentasi kalimat ({ text, start: "JJ:mm:dd", end: "JJ:mm:dd" }[]), dipisah berdasarkan tanda baca akhir kalimat (.?!…。?! dll.), stempel waktu dialokasikan secara proporsional berdasarkan panjang karakter, penggabungan teks sadar CJK
  • imgs/cover.jpg — gambar mini video

Proses selanjutnya untuk video yang sama menggunakan data cache (tanpa panggilan jaringan). Gunakan --refresh untuk memaksa pengambilan ulang. Jika bahasa berbeda diminta, cache otomatis diperbarui.

Ketika YouTube memberikan respons anti-bot / diblokir pada jalur InnerTube langsung, skrip mencoba lagi dengan identitas klien alternatif lalu beralih ke yt-dlp jika tersedia. Jika fallback diperlukan tetapi yt-dlp tidak tersedia, agen harus memutuskan cara agar yt-dlp tersedia dan melanjutkan, daripada menyerahkan keputusan instalasi kepada pengguna.

Keluaran SRT (--format srt) dibuat dari transcript-raw.json. Keluaran teks/markdown menggunakan transcript-sentences.json untuk batasan kalimat alami.

Alur Kerja

Ketika pengguna memberikan URL YouTube dan menginginkan transkrip:

  1. Jalankan dengan --list terlebih dahulu jika pengguna belum menentukan bahasa, untuk menampilkan opsi yang tersedia
  2. Selalu kutip URL dengan tanda kutip tunggal saat menjalankan skrip — zsh memperlakukan ? sebagai wildcard glob, sehingga URL YouTube tanpa kutipan menyebabkan "no matches found": gunakan 'https://www.youtube.com/watch?v=ID'
  3. Default: jalankan dengan --chapters --speakers untuk keluaran terkaya (bab + identifikasi pembicara)
  4. Skrip otomatis menyimpan data cache + berkas keluaran dan mencetak jalur berkas
  5. Untuk mode --speakers: setelah skrip menyimpan berkas mentah, ikuti alur kerja identifikasi pembicara di bawah ini untuk pasca-pemrosesan dengan label pembicara

Ketika pengguna hanya menginginkan gambar sampul atau metadata, menjalankan skrip dengan opsi apa pun juga akan menyimpan meta.json dan imgs/cover.jpg.

Ketika memformat ulang video yang sama (misalnya, pertama teks lalu SRT), data cache digunakan kembali — tidak perlu pengambilan ulang.

Alur Kerja Bab & Pembicara

Bab (--chapters)

Skrip mengurai stempel waktu bab dari deskripsi video (misalnya, 0:00 Pendahuluan), membagi transkrip berdasarkan batas bab, mengelompokkan potongan menjadi paragraf yang mudah dibaca, dan menyimpannya sebagai .md dengan Daftar Isi. Tidak diperlukan pemrosesan lebih lanjut.

Jika tidak ada stempel waktu bab dalam deskripsi, transkrip ditampilkan sebagai paragraf yang dikelompokkan tanpa judul bab.

Identifikasi Pembicara (--speakers)

Identifikasi pembicara memerlukan pemrosesan AI. Skrip menghasilkan berkas .md mentah yang berisi:

  • Frontmatter YAML dengan metadata video (judul, saluran, tanggal, sampul, deskripsi, bahasa)
  • Deskripsi video (untuk ekstraksi nama pembicara)
  • Daftar bab dari deskripsi (jika tersedia)
  • Transkrip mentah dalam format SRT (stempel waktu awal/akhir yang telah dihitung sebelumnya, hemat token)

Setelah skrip menyimpan berkas mentah, jalankan sub-agen (gunakan model yang lebih murah seperti Sonnet untuk efisiensi biaya) untuk memproses identifikasi pembicara:

  1. Baca berkas .md yang disimpan
  2. Baca templat prompt di {baseDir}/prompts/speaker-transcript.md
  3. Proses transkrip mentah mengikuti prompt:
    • Identifikasi pembicara menggunakan metadata video (judul → tamu, saluran → host, deskripsi → nama)
    • Deteksi giliran pembicara dari alur percakapan, pola tanya jawab, dan petunjuk kontekstual
    • Bagi menjadi bab (gunakan bab deskripsi jika tersedia, selain itu buat dari pergeseran topik)
    • Format dengan label **Nama Pembicara:**, pengelompokan paragraf (2-4 kalimat), dan stempel waktu [JJ:MM:DD → JJ:MM:DD]
  4. Tumpang tindih berkas .md dengan transkrip yang telah diproses (pertahankan frontmatter YAML)

Ketika --speakers digunakan, --chapters otomatis berlaku — keluaran yang diproses selalu menyertakan segmentasi bab.

Kasus Kesalahan

KesalahanArti
Transkrip dinonaktifkanVideo tidak memiliki teks sama sekali
Transkrip tidak ditemukanBahasa yang diminta tidak tersedia
Video tidak tersediaVideo dihapus, pribadi, atau dibatasi wilayah
IP diblokirTerlalu banyak permintaan, coba lagi nanti
Dibatasi usiaVideo memerlukan login untuk verifikasi usia
bot terdeteksiSkrip mencoba ulang dengan klien alternatif lalu yt-dlp; jika alat fallback tidak ada, agen harus menyelesaikannya sendiri, selain itu jika masih gagal coba YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER=safari (atau browser Anda)

FAQ