Search

PythonReactSEOPDF
OpenClaw

youtube-transcriber

One-command YouTube video transcription. Automatically downloads audio and transcribes using OpenAI Whisper API — works even when YouTube subtitles are disabled. Use when asked to "transcribe this video", "get transcript", "what does this video say", or when YouTube captions are unavailable.

edisonchenai0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install edisonchenai/youtube-transcriber

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

YouTube Transcriber

One-command transcription for any YouTube video — even when subtitles are disabled.

How it works:

  1. Tries to fetch existing YouTube subtitles first (free, instant)
  2. If subtitles are disabled/unavailable → downloads audio → transcribes via OpenAI Whisper API

Prerequisites

  • yt-dlp — brew install yt-dlp or pip install yt-dlp
  • ffmpeg — brew install ffmpeg
  • OPENAI_API_KEY environment variable set

Usage

# Basic — auto-detect best method
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID"

# Specify language (improves accuracy for non-English)
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --lang zh

# Custom output path
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --out /tmp/transcript.txt

# Force Whisper (skip subtitle check)
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --force-whisper

# Keep downloaded audio file
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --keep-audio

Options

Option Description Default
--lang <code> Language hint (ISO 639-1: en, zh, ja, ko, etc.) auto-detect
--out <path> Output transcript file path /tmp/yt_transcript_<VIDEO_ID>.txt
--force-whisper Skip subtitle check, always use Whisper API off
--keep-audio Keep the downloaded audio file after transcription off (deletes audio)
--audio-bitrate <kbps> Audio compression bitrate 64

How It Works

YouTube URL
    │
    ├─► Try yt-dlp subtitles (free, instant)
    │       │
    │       ├─ Found → Clean & output transcript ✓
    │       │
    │       └─ Not found / disabled
    │               │
    │               ▼
    └─► Download audio (yt-dlp + ffmpeg)
            │
            ├─ Compress to mono, low bitrate (fit 25MB API limit)
            │
            ▼
        OpenAI Whisper API → tran...

Source information

Source
github
Repository
openclaw/skills
Path
skills/edisonchenai/youtube-transcriber
Version
—
Commit
0fb0a7b8db3f36f4179fb9b1dbaaa6417246af31
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README

YouTube Transcriber

One-command YouTube video transcription for Claude Code. Works even when YouTube subtitles are disabled.

How It Works

  1. Fast path: Tries to fetch existing YouTube subtitles (free, instant)
  2. Fallback: Downloads audio → compresses → transcribes via OpenAI Whisper API
YouTube URL → [subtitles available?] → YES → clean transcript ✓
                                     → NO  → download audio → Whisper API → transcript ✓

Install

npx clawhub install youtube-transcriber

Or install directly from GitHub:

# Clone to your Claude Code skills directory
git clone https://github.com/EdisonChenAI/youtube-transcriber.git ~/.claude/skills/youtube-transcriber

Prerequisites

  • yt-dlp: brew install yt-dlp or pip install yt-dlp
  • ffmpeg: brew install ffmpeg
  • OPENAI_API_KEY: Required only when subtitles are unavailable

Usage

# Basic usage
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID"

# Chinese video
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --lang zh

# Custom output path
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --out ./transcript.txt

# Force Whisper API (skip subtitle check)
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --force-whisper

# Keep the downloaded audio file
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --keep-audio

Options

Option Description Default
--lang <code> Language hint (en, zh, ja, ko, etc.) auto-detect
--out <path> Output transcript file path /tmp/yt_transcript_<ID>.txt
--force-whisper Always use Whisper API off
--keep-audio Keep downloaded audio off
--audio-bitrate <kbps> Compression bitrate 64

Cost

Method Cost Speed
Subtitles available Free Instant
Whisper...

Extracted content

SKILL.md
# YouTube Transcriber

One-command transcription for any YouTube video — even when subtitles are disabled.

**How it works:**
1. Tries to fetch existing YouTube subtitles first (free, instant)
2. If subtitles are disabled/unavailable → downloads audio → transcribes via OpenAI Whisper API

## Prerequisites

- `yt-dlp` — `brew install yt-dlp` or `pip install yt-dlp`
- `ffmpeg` — `brew install ffmpeg`
- `OPENAI_API_KEY` environment variable set

## Usage

```bash
# Basic — auto-detect best method
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID"

# Specify language (improves accuracy for non-English)
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --lang zh

# Custom output path
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --out /tmp/transcript.txt

# Force Whisper (skip subtitle check)
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --force-whisper

# Keep downloaded audio file
{baseDir}/scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --keep-audio
```

## Options

| Option | Description | Default |
|--------|-------------|---------|
| `--lang <code>` | Language hint (ISO 639-1: en, zh, ja, ko, etc.) | auto-detect |
| `--out <path>` | Output transcript file path | `/tmp/yt_transcript_<VIDEO_ID>.txt` |
| `--force-whisper` | Skip subtitle check, always use Whisper API | off |
| `--keep-audio` | Keep the downloaded audio file after transcription | off (deletes audio) |
| `--audio-bitrate <kbps>` | Audio compression bitrate | 64 |

## How It Works

```
YouTube URL
    │
    ├─► Try yt-dlp subtitles (free, instant)
    │       │
    │       ├─ Found → Clean & output transcript ✓
    │       │
    │       └─ Not found / disabled
    │               │
    │               ▼
    └─► Download audio (yt-dlp + ffmpeg)
            │
            ├─ Compress to mono, low bitrate (fit 25MB API limit)
            │
            ▼
        OpenAI Whisper API → tran...
README
# YouTube Transcriber

One-command YouTube video transcription for [Claude Code](https://claude.com/claude-code). Works even when YouTube subtitles are disabled.

## How It Works

1. **Fast path**: Tries to fetch existing YouTube subtitles (free, instant)
2. **Fallback**: Downloads audio → compresses → transcribes via OpenAI Whisper API

```
YouTube URL → [subtitles available?] → YES → clean transcript ✓
                                     → NO  → download audio → Whisper API → transcript ✓
```

## Install

```bash
npx clawhub install youtube-transcriber
```

Or install directly from GitHub:

```bash
# Clone to your Claude Code skills directory
git clone https://github.com/EdisonChenAI/youtube-transcriber.git ~/.claude/skills/youtube-transcriber
```

## Prerequisites

- **yt-dlp**: `brew install yt-dlp` or `pip install yt-dlp`
- **ffmpeg**: `brew install ffmpeg`
- **OPENAI_API_KEY**: Required only when subtitles are unavailable

## Usage

```bash
# Basic usage
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID"

# Chinese video
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --lang zh

# Custom output path
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --out ./transcript.txt

# Force Whisper API (skip subtitle check)
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --force-whisper

# Keep the downloaded audio file
./scripts/transcribe.sh "https://www.youtube.com/watch?v=VIDEO_ID" --keep-audio
```

## Options

| Option | Description | Default |
|--------|-------------|---------|
| `--lang <code>` | Language hint (en, zh, ja, ko, etc.) | auto-detect |
| `--out <path>` | Output transcript file path | `/tmp/yt_transcript_<ID>.txt` |
| `--force-whisper` | Always use Whisper API | off |
| `--keep-audio` | Keep downloaded audio | off |
| `--audio-bitrate <kbps>` | Compression bitrate | 64 |

## Cost

| Method | Cost | Speed |
|--------|------|-------|
| Subtitles available | Free | Instant |
| Whisper...

Related skills

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...

OpenClaw

0protocol

0isone

Agents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.

OpenClaw

0x0-messenger

eijiac24

Send and receive P2P messages using disposable numbers and PINs. No servers, no accounts. Use for human notifications, approval flows, and agent-to-agent communication.