Przejdź do treści
Biblioteka skilli
Produktywność osobista · Nauka i wyjaśnianie

youtube-transcribe

/youtube-transcribe

Przerabia wykłady i filmy YouTube na tekst i wiedzę: transkrypcja ElevenLabs Scribe, analiza wizualna i streszczenie tego, czego uczy film.

Licencja
MIT
Ostatnia zmiana repozytorium
08.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
12
Skrypty
10
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 08.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co sprawdzić przed instalacją
  • 10 skryptów w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.

Skrypty: scripts/ask-gemini.py, scripts/ask-gemini.sh, scripts/batch.sh, scripts/download.sh, scripts/frames.sh, scripts/load-keys.sh, scripts/search.sh, scripts/setup.sh, scripts/transcribe.py, scripts/transcribe.sh

Co robi i kiedy

Przerabia wykłady i filmy YouTube na tekst i wiedzę: transkrypcja ElevenLabs Scribe, analiza wizualna i streszczenie tego, czego uczy film.

Wyzwalacze z opisu

s content as text or knowledge rather than just a link —what does this video saysummarize/explain this talkpull the transcriptget subtitlesturn this lecture into notesfind 10-20 videos about <topic> and tell me everythingresearch <topic> on YouTube
Oryginalny opis (EN)

Absorb the knowledge in YouTube videos — find them, transcribe them with ElevenLabs Scribe v2, inspect their visuals, and digest what they actually teach. Use this whenever someone wants a video's content as text or knowledge rather than just a link — "transcribe this YouTube video", "what does this video say", "summarize/explain this talk", "pull the transcript", "get subtitles", "turn this lecture into notes", or research-style asks like "find 10-20 videos about <topic> and tell me everything", "research <topic> on YouTube", "what are people saying about <X>". Also use it when a question nee

Jak działa

  1. Setup (once per machine)
  2. Mode A — one video
  3. Mode B — a topic (many videos)
  4. Seeing what is on screen
  5. Output — absorb, do not dump
  6. Scripts
  7. Notes
Sekcje z nagłówków SKILL.md, w oryginale · 103 linii, 918 słów
Podgląd SKILL.md
---
name: youtube-transcribe
description: Absorb the knowledge in YouTube videos — find them, transcribe them with ElevenLabs Scribe v2, inspect their visuals, and digest what they actually teach. Use this whenever someone wants a video's content as text or knowledge rather than just a link — "transcribe this YouTube video", "what does this video say", "summarize/explain this talk", "pull the transcript", "get subtitles", "turn this lecture into notes", or research-style asks like "find 10-20 videos about <topic> and tell me everything", "research <topic> on YouTube", "what are people saying about <X>". Also use it when a question needs what is shown on screen (slides, charts, code, UI, product) and not only what is said — it extracts frames and, as a last resort, asks Google Gemini to describe the video. Works on any yt-dlp-supported URL. Trigger it even when the words "transcribe" or "skill" never appear but the goal is to learn from video.
license: MIT
compatibility: Needs internet, ffmpeg, and python3 (with python3-venv). ELEVENLABS_API_KEY is required for transcription; GEMINI_API_KEY is optional and only used for the visual fallback.
metadata: {"openclaw": {"requires": {"env": ["ELEVENLABS_API_KEY"]}, "optionalEnv": ["GEMINI_API_KEY"], "primaryEnv": "ELEVENLABS_API_KEY"}}
---

# YouTube Transcribe

Turn a video — or a whole topic's worth of videos — into text you can actually read and reason over. The point is not to hand back a transcript and stop; it is to **absorb what the video teaches** and report it back usefully.

Pipeline: **find → download → transcribe → (look at frames) → (ask Gemini) → synthesize.** Most tasks only need the middle. Reach for the visual steps when the spoken words are not enough.

## Setup (once per machine)

```bash
S=.claude/skills/youtube-transcribe/scripts
bash "$S/setup.sh"    # creates a venv, installs yt-dlp + elevenlabs + google-genai (idempotent)
```

If venv creation fails on Debian/Ubuntu, install `python3-venv` first (`sudo apt-get install -y python3-venv`).

**Keys:** transcription reads `ELEVENLABS_API_KEY`; the Gemini fallback reads `GEMINI_API_KEY`. Export them, or drop a `scripts/load-keys.local.sh` that resolves them however you like (the wrappers source it automatically, and it is gitignored so it never ships). Never print a key into your output.

## Mode A — one video

```bash
S=.claude/skills/youtube-transcribe/scripts
OUT=/tmp/claude/youtube-transcribe/<video-id>        # scratch; never a repo

bash "$S/download.sh"   "<url>" "$OUT" audio          # audio.mp3 + metadata.json
bash "$S/transcribe.sh" "$OUT/audio.mp3" "$OUT"        # transcript.txt + .diarized.txt + .json
```

Then **read `transcript.diarized.txt`** (speaker-grouped, one timestamped line every ~30-60 s, so even a single-speaker talk can be cited by minute) and write up what matters: the thesis, the steps/method, the concrete claims, the numbers, anything actionable. Skip the filler. If it is a tutorial, capture the actual how; if it is a talk, capture the argument and evidence.

`transcribe.sh` flags: `--no-diarize` (single speaker), `--lang spa` (hint; omit to auto-detect), `--keyterms "Kubernetes,PyTorch,yt-dlp"` (spell names/jargon right — Scribe will otherwise mangle them, which poisons the summary).

## Mode B — a topic (many videos)

Search is **free and needs no API key** — it uses yt-dlp's own search.

```bash
S=.claude/skills/youtube-transcribe/scripts

# 1. Find candidates — pick the good ones by title/channel/duration before spending transcription on them.
bash "$S/search.sh" "quantitative trading with LLMs" 20            # id | duration | channel | title
bash "$S/search.sh" "quantitative trading with LLMs" 20 --date     # sort by newest instead of relevance

# 2. Transcribe the chosen ones in one go (each lands in <OUT>/<video-id>/).
bash "$S/search.sh" "quantitative trading with LLMs" 20 --urls > /tmp/urls.txt
#   ...edit /tmp/urls.txt down to the 10-15 worth watching, then:
bash "$S/batch.sh" /tmp/claude/youtube-transcribe/topic /tmp/urls.txt --lang spa --keyterms "IRPF,Hacienda"   # flags after the urls file go to every transcription
```

Be selective, not exhaustive: a 3-hour stream and a 40-second Short are rarely both worth it. Prefer substance (duration, channel authority, title specificity) over raw view count. Then read every transcript and produce **one synthesis** across all of them — the consensus, the disagreements, the best single source, and what is still unanswered — not N separate summaries.

## Seeing what is on screen

The transcript misses slides, charts, code, dashboards, product shots, and anyone pointing at "this". Two escalating tools:

**1. Frames (cheap, local).** Download the video, pull stills, and Read the JPGs.

```bash
bash "$S/download.sh" "<url>" "$OUT" video                 # video.mp4 (≤720p)
bash "$S/frames.sh"   "$OUT/video.mp4" "$OUT/frames" every 30          # one frame / 30s
bash "$S/frames.sh"   "$OUT/video.mp4" "$OUT/frames" at 00:01:20,00:04:05   # exact moments from the transcript
```

Use timestamps from `transcript.diarized.txt` to grab the exact moment someone says "as you can see here".

**2. Gemini (last resort, needs GEMINI_API_KEY).** When frames are not enough — you need the video *understood*, on-screen text read, or a direct visual question answered. Gemini ingests the YouTube URL directly (no download); for a local file it uploads first.

```bash
bash "$S/ask-gemini.sh" "<url-or-local-mp4>" "What indicators are shown on the chart at minute 4, and what are their values?"
```

Gemini is the fallback, not the default: transcription is cheaper, faster, and usually sufficient. Go to Gemini only when the answer is genuinely visual.

## Output — absorb, do not dump

Default to a tight knowledge digest, not a wall of transcript:

- **What it is:** title, channel, length, one-line framing.
- **Core knowledge:** the actual ideas/method/claims, in your own words, dense and specific.
- **Notable specifics:** numbers, names, tools, steps, quotes worth keeping (with `[mm:ss]` timestamps).
- **Caveats / what's unproven or salesy.** Many "educational" videos are funnels — say so plainly.

Keep the raw `transcript.txt` on disk and point to it; paste quotes, not the whole thing.

## Scripts

| Script | Does |
|---|---|
| `scripts/setup.sh` | Create the venv, install deps (idempotent) |
| `scripts/search.sh "<q>" [n] [--date] [--urls]` | Find videos for a topic — free, no API key |
| `scripts/download.sh <url> <out> [audio\|video\|both]` | yt-dlp audio (mp3) and/or video (≤720p) + metadata.json |
| `scripts/transcribe.sh <audio> <out> [--no-diarize] [--lang] [--keyterms]` | ElevenLabs Scribe v2 → text + diarized + raw json |
| `scripts/batch.sh <outdir> <urls-file> [--lang] [--keyterms] [--no-diarize]` | Download+transcribe many; one folder per video + manifest; flags are passed to every transcription |
| `scripts/frames.sh <video> <out> every <sec> \| at <ts,ts>` | Extract stills to Read |
| `scripts/ask-gemini.sh <url\|file> "<question>"` | Gemini visual understanding (fallback) |

## Notes

- **Scratch only.** Media and transcripts go in `/tmp/claude/youtube-transcribe/…`, never in a repo. They can be large.
- **Scribe limits:** 3 GB / 10 h per file; 90+ languages, auto-detected. A ~12 min talk is a single call.
- **Age-restricted / members-only / private** videos may need cookies (`yt-dlp --cookies-from-browser` or `--cookies`). For Gemini, prefer uploading the downloaded file over passing a URL it cannot reach.
- **This is for learning from public videos.** Respect copyright and each platform's terms; do not republish someone's content as your own.
Pliki w paczce (12)
  • .gitignore 1 KB
  • SKILL.md 8 KB
  • scripts/ask-gemini.py 2 KB
  • scripts/ask-gemini.sh 1 KB
  • scripts/batch.sh 2 KB
  • scripts/download.sh 1 KB
  • scripts/frames.sh 1 KB
  • scripts/load-keys.sh 1 KB
  • scripts/search.sh 1 KB
  • scripts/setup.sh 1 KB
  • scripts/transcribe.py 4 KB
  • scripts/transcribe.sh 1 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · marks97/youtube-transcribe100MIT
kennyzir/7deer_skills100MIT

Migawka bazy z 28.10.2026 · wersja paczki a880a8f7893f (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100yt-transcribe
    Pobiera ścieżkę audio z filmów YouTube przez yt-dlp i zamienia ją na tekst przez ElevenLabs Scribe.
  • 100youtube-transcript
    Pobiera transkrypcję filmu YouTube, gdy użytkownik prosi o tekst, napisy lub streszczenie treści z linku.
  • 100transcribe-youtube
    Pobiera filmy z YouTube, transkrybuje je przez yt-dlp i Whisper i zapisuje tekst w pliku markdown.
  • 100watch
    Transkrybuje, streszcza i bada filmy z linków YouTube, podcastów, Loom i TikToka, domyślnie bez pobierania wideo.
  • 100summarize
    Streszcza lub wyciąga tekst i transkrypcje z adresów URL, podcastów, filmów na YouTube i plików lokalnych przy użyciu CLI summarize.
  • 100youtube-transcriber
    Pobiera transkrypcje filmów i playlist YouTube z napisów w przeglądarce, bez klucza API i zewnętrznej usługi, za darmo.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.