Claim this agent
Agent DossierCLAWHUBSafety 84/100

Xpersona Agent

YouTube Apify Transcript

Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. Skill: YouTube Apify Transcript Owner: robbyczgw-cla Summary: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. Tags: latest:1.1.2 Version history: v1.1.2 | 2026-02-11T09:00:23.308Z | user Fix: SKILL.md cache path updated to match code. APIFY_API_TOKEN declared in registry

OpenClaw ยท self-declared
2.6K downloadsTrust evidence available
clawhub skill install kn73gpe8xz2630jrknkb3ya96h7zb84h:youtube-apify-transcript

Overall rank

#62

Adoption

2.6K downloads

Trust

Unknown

Freshness

Feb 28, 2026

Freshness

Last checked Feb 28, 2026

Best For

YouTube Apify Transcript is best for general automation workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, CLAWHUB, runtime-metrics, public facts pack

Overview

Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.

Verifiededitorial-content

Overview

Executive Summary

Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. Skill: YouTube Apify Transcript Owner: robbyczgw-cla Summary: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. Tags: latest:1.1.2 Version history: v1.1.2 | 2026-02-11T09:00:23.308Z | user Fix: SKILL.md cache path updated to match code. APIFY_API_TOKEN declared in registry Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 4/15/2026.

No verified compatibility signals2.6K downloads

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Feb 28, 2026

Vendor

Clawhub

Artifacts

0

Benchmarks

0

Last release

1.1.2

Install & run

Setup Snapshot

clawhub skill install kn73gpe8xz2630jrknkb3ya96h7zb84h:youtube-apify-transcript
  1. 1

    Node.js workspace detected. Install dependencies securely: run `npm ci --ignore-scripts` to prevent post-install lifecycle triggers from running arbitrary code, then selectively audit the dependency tree.

  2. 2

    Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.

  3. 3

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence & Timeline

Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.

Verifiededitorial-content

Public facts

Evidence Ledger

Vendor (1)

Vendor

Clawhub

profilemedium
Observed Apr 15, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 15, 2026Source linkProvenance
Release (1)

Latest release

1.1.2

releasemedium
Observed Feb 11, 2026Source linkProvenance
Adoption (1)

Adoption signal

2.6K downloads

profilemedium
Observed Apr 15, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance

Artifacts & Docs

Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.

Self-declaredCLAWHUB

Captured outputs

Artifacts Archive

Extracted files

5

Examples

6

Snippets

0

Languages

Unknown

Executable Examples

bash

# Add to ~/.bashrc or ~/.zshrc
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

# Or use .env file (never commit this!)
echo 'APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE' >> .env

bash

# Get transcript as text (uses cache by default)
python3 scripts/fetch_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"

# Short URL also works
python3 scripts/fetch_transcript.py "https://youtu.be/VIDEO_ID"

bash

# Output to file
python3 scripts/fetch_transcript.py "URL" --output transcript.txt

# JSON format (includes timestamps)
python3 scripts/fetch_transcript.py "URL" --json

# Both: JSON to file
python3 scripts/fetch_transcript.py "URL" --json --output transcript.json

# Specify language preference
python3 scripts/fetch_transcript.py "URL" --lang de

bash

# First request: fetches from APIFY ($0.007)
python3 scripts/fetch_transcript.py "URL"

# Second request: uses cache (FREE!)
python3 scripts/fetch_transcript.py "URL"
# Output: [cached] Transcript for: VIDEO_ID

# Bypass cache (force fresh fetch)
python3 scripts/fetch_transcript.py "URL" --no-cache

# View cache stats
python3 scripts/fetch_transcript.py --cache-stats

# Clear all cached transcripts
python3 scripts/fetch_transcript.py --clear-cache

bash

# Create a file with URLs (one per line)
cat > urls.txt << EOF
https://youtube.com/watch?v=VIDEO1
https://youtu.be/VIDEO2
https://youtube.com/watch?v=VIDEO3
EOF

# Process all URLs
python3 scripts/fetch_transcript.py --batch urls.txt

# Output: 
# [1/3] Fetching VIDEO1...
# [2/3] [cached] VIDEO2
# [3/3] Fetching VIDEO3...
# Batch complete: 2 fetched, 1 cached, 0 failed
# [Cost: ~$0.014 for 2 API call(s)]

# Batch with JSON output to file
python3 scripts/fetch_transcript.py --batch urls.txt --json --output all_transcripts.json

text

Hello and welcome to this video.
Today we're going to talk about...
Extracted Files

SKILL.md

---
name: youtube-apify-transcript
version: 1.1.2
description: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required.
tags: [youtube, transcript, apify, video, subtitles, captions, cloud-ip, free-tier, web-scraping]
---

# youtube-apify-transcript

Fetch YouTube transcripts via APIFY API (works from cloud IPs, bypasses YouTube bot detection).

## Why APIFY?

YouTube blocks transcript requests from cloud IPs (AWS, GCP, etc.). APIFY runs the request through residential proxies, bypassing bot detection reliably.

## Free Tier

- **$5/month free credits** (~714 videos)
- No credit card required
- Perfect for personal use

## Cost

- **$0.007 per video** (less than 1 cent!)
- Track usage at: https://console.apify.com/billing

## Links

- ๐Ÿ”— [APIFY Pricing](https://apify.com/pricing)
- ๐Ÿ”‘ [Get API Key](https://console.apify.com/account/integrations)
- ๐ŸŽฌ [YouTube Transcripts Actor](https://apify.com/karamelo/youtube-transcripts)

## Setup

1. Create free APIFY account: https://apify.com/
2. Get your API token: https://console.apify.com/account/integrations
3. Set environment variable:

```bash
# Add to ~/.bashrc or ~/.zshrc
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

# Or use .env file (never commit this!)
echo 'APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE' >> .env
```

## Usage

### Basic Usage

```bash
# Get transcript as text (uses cache by default)
python3 scripts/fetch_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"

# Short URL also works
python3 scripts/fetch_transcript.py "https://youtu.be/VIDEO_ID"
```

### Options

```bash
# Output to file
python3 scripts/fetch_transcript.py "URL" --output transcript.txt

# JSON format (includes timestamps)
python3 scripts/fetch_transcript.py "URL" --json

# Both: JSON to file
python3 scripts/fetch_transcript.py "URL" --json --output transcript.json

# Specify language preference
python3 scripts/fetch_transcript.py "URL" --lang de
```

### Caching (saves money!)

Transcripts are cached locally by default. Repeat requests for the same video cost $0.

```bash
# First request: fetches from APIFY ($0.007)
python3 scripts/fetch_transcript.py "URL"

# Second request: uses cache (FREE!)
python3 scripts/fetch_transcript.py "URL"
# Output: [cached] Transcript for: VIDEO_ID

# Bypass cache (force fresh fetch)
python3 scripts/fetch_transcript.py "URL" --no-cache

# View cache stats
python3 scripts/fetch_transcript.py --cache-stats

# Clear all cached transcripts
python3 scripts/fetch_transcript.py --clear-cache
```

Cache location: `.cache/` in skill directory (override with `YT_TRANSCRIPT_CACHE_DIR` env var)

### Batch Mode

Process multiple videos at once:

```bash
# Create a file with URLs (one per line)
cat > urls.txt << EOF
https://youtube.com/watch?v=VIDEO1
https://youtu.be/VIDEO2
https://youtube.com/watch?v=VIDEO3
EOF

# Process all URLs
python3 scripts/fetch_

README.md

# ๐Ÿ“น YouTube Transcript Fetcher (APIFY)

Fetch YouTube video transcripts from anywhere โ€” even cloud servers where YouTube blocks direct access.

## โœจ Features

- Works from cloud IPs (AWS, GCP, VPS, etc.)
- Bypasses YouTube bot detection via APIFY proxies
- **Local caching** โ€” repeat requests are FREE
- **Batch mode** โ€” process multiple videos at once
- Text or JSON output with timestamps
- Language preference support
- Simple Python script, no SDK needed

## ๐Ÿ’ฐ Free Tier

APIFY offers **$5/month free credits** โ€” that's approximately **714 videos per month** at $0.007 each!

No credit card required. [Sign up here](https://apify.com/)

## ๐Ÿš€ Quick Start

```bash
# 1. Set your API token
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN"

# 2. Fetch a transcript
python3 scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID"
```

## ๐Ÿ“– Documentation

See [SKILL.md](SKILL.md) for full documentation, setup instructions, and usage examples.

## ๐Ÿ”— Links

- [APIFY Free Tier](https://apify.com/pricing) - $5/month free
- [Get API Key](https://console.apify.com/account/integrations)
- [YouTube Transcripts Actor](https://apify.com/karamelo/youtube-transcripts)

## โš™๏ธ Requirements

- Python 3.6+
- `requests` library (`pip install requests`)
- APIFY API token (free)

## ๐Ÿ“„ License

MIT

_meta.json

{
  "ownerId": "kn73gpe8xz2630jrknkb3ya96h7zb84h",
  "slug": "youtube-apify-transcript",
  "version": "1.1.2",
  "publishedAt": 1770800423308
}

CHANGELOG.md

# Changelog

## [1.0.7] - 2026-02-04

- Privacy cleanup: removed hardcoded paths and personal info from docs

package.json

{
  "name": "@openclaw/youtube-apify-transcript",
  "version": "1.1.2",
  "description": "Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos).",
  "author": "robbyczgw-cla",
  "license": "MIT",
  "keywords": [
    "openclaw",
    "skill",
    "youtube",
    "transcript",
    "apify",
    "video",
    "subtitles",
    "captions",
    "cloud-ip",
    "free-tier",
    "web-scraping"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/robbyczgw-cla/youtube-apify-transcript.git"
  },
  "homepage": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
  "bugs": {
    "url": "https://github.com/robbyczgw-cla/youtube-apify-transcript/issues"
  },
  "openclaw": {
    "skill": true,
    "triggers": [
      "youtube transcript",
      "get transcript",
      "video transcript"
    ],
    "capabilities": [
      "transcript-extraction",
      "cloud-ip-bypass",
      "multi-language"
    ],
    "requirements": {
      "bins": [
        "python3"
      ],
      "env": {
        "APIFY_API_TOKEN": "required"
      }
    }
  },
  "files": [
    "SKILL.md",
    "README.md",
    ".env.example",
    "scripts/"
  ]
}

Editorial read

Docs & README

Docs source

CLAWHUB

Editorial quality

ready

Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. Skill: YouTube Apify Transcript Owner: robbyczgw-cla Summary: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. Tags: latest:1.1.2 Version history: v1.1.2 | 2026-02-11T09:00:23.308Z | user Fix: SKILL.md cache path updated to match code. APIFY_API_TOKEN declared in registry

Full README

Skill: YouTube Apify Transcript

Owner: robbyczgw-cla

Summary: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required.

Tags: latest:1.1.2

Version history:

v1.1.2 | 2026-02-11T09:00:23.308Z | user

Fix: SKILL.md cache path updated to match code. APIFY_API_TOKEN declared in registry metadata.

v1.1.1 | 2026-02-11T08:56:09.256Z | user

Security: cache dir now skill-local (configurable via env). APIFY token moved from query string to Authorization Bearer header.

v1.1.0 | 2026-02-11T08:37:36.806Z | user

Added local transcript caching (permanent, by video ID), --no-cache, --clear-cache, --cache-stats. New batch mode: --batch file.txt for bulk processing.

v1.0.7 | 2026-02-04T23:04:20.193Z | auto

  • Added a CHANGELOG.md file.
  • Updated SKILL.md to include a Metadata section with structured YAML and an emoji.
  • Simplified metadata requirements in SKILL.md (now only lists required environment variable and binary).
  • Bumped version to 1.0.7.

v1.0.6 | 2026-02-03T17:18:28.536Z | user

Add ClawHub runtime requirements metadata (SKILL.md frontmatter)

v1.0.5 | 2026-02-03T16:58:59.245Z | user

Add runtime requirements metadata for ClawHub discovery

v1.0.4 | 2026-02-03T14:17:47.459Z | user

Fix: Handle string captions format from APIFY API. The API returns captions as plain strings instead of dicts with timestamps. Updated both text and JSON formatters to handle both formats gracefully.

v1.0.3 | 2026-02-03T14:14:55.926Z | auto

youtube-apify-transcript 1.0.3

  • No changes detected from previous version 1.0.2.
  • Version number updated only; functionality and documentation remain the same.

v1.0.2 | 2026-02-03T13:45:56.097Z | auto

  • Added a frontmatter block with name, version, description, and tags at the top of SKILL.md.
  • No changes to functionality or usage instructions. Documentation only.

v1.0.1 | 2026-02-03T13:38:50.494Z | user

Fixed: Now in own GitHub repo (was incorrectly pushed as PR)

v1.0.0 | 2026-02-03T13:35:27.412Z | user

Initial release - Fetch YouTube transcripts via APIFY API

Archive index:

Archive v1.1.2: 6 files, 8791 bytes

Files: CHANGELOG.md (109b), package.json (1263b), README.md (1326b), scripts/fetch_transcript.py (17571b), SKILL.md (4024b), _meta.json (143b)

File v1.1.2:SKILL.md


name: youtube-apify-transcript version: 1.1.2 description: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. tags: [youtube, transcript, apify, video, subtitles, captions, cloud-ip, free-tier, web-scraping]

youtube-apify-transcript

Fetch YouTube transcripts via APIFY API (works from cloud IPs, bypasses YouTube bot detection).

Why APIFY?

YouTube blocks transcript requests from cloud IPs (AWS, GCP, etc.). APIFY runs the request through residential proxies, bypassing bot detection reliably.

Free Tier

  • $5/month free credits (~714 videos)
  • No credit card required
  • Perfect for personal use

Cost

  • $0.007 per video (less than 1 cent!)
  • Track usage at: https://console.apify.com/billing

Links

Setup

  1. Create free APIFY account: https://apify.com/
  2. Get your API token: https://console.apify.com/account/integrations
  3. Set environment variable:
# Add to ~/.bashrc or ~/.zshrc
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

# Or use .env file (never commit this!)
echo 'APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE' >> .env

Usage

Basic Usage

# Get transcript as text (uses cache by default)
python3 scripts/fetch_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"

# Short URL also works
python3 scripts/fetch_transcript.py "https://youtu.be/VIDEO_ID"

Options

# Output to file
python3 scripts/fetch_transcript.py "URL" --output transcript.txt

# JSON format (includes timestamps)
python3 scripts/fetch_transcript.py "URL" --json

# Both: JSON to file
python3 scripts/fetch_transcript.py "URL" --json --output transcript.json

# Specify language preference
python3 scripts/fetch_transcript.py "URL" --lang de

Caching (saves money!)

Transcripts are cached locally by default. Repeat requests for the same video cost $0.

# First request: fetches from APIFY ($0.007)
python3 scripts/fetch_transcript.py "URL"

# Second request: uses cache (FREE!)
python3 scripts/fetch_transcript.py "URL"
# Output: [cached] Transcript for: VIDEO_ID

# Bypass cache (force fresh fetch)
python3 scripts/fetch_transcript.py "URL" --no-cache

# View cache stats
python3 scripts/fetch_transcript.py --cache-stats

# Clear all cached transcripts
python3 scripts/fetch_transcript.py --clear-cache

Cache location: .cache/ in skill directory (override with YT_TRANSCRIPT_CACHE_DIR env var)

Batch Mode

Process multiple videos at once:

# Create a file with URLs (one per line)
cat > urls.txt << EOF
https://youtube.com/watch?v=VIDEO1
https://youtu.be/VIDEO2
https://youtube.com/watch?v=VIDEO3
EOF

# Process all URLs
python3 scripts/fetch_transcript.py --batch urls.txt

# Output: 
# [1/3] Fetching VIDEO1...
# [2/3] [cached] VIDEO2
# [3/3] Fetching VIDEO3...
# Batch complete: 2 fetched, 1 cached, 0 failed
# [Cost: ~$0.014 for 2 API call(s)]

# Batch with JSON output to file
python3 scripts/fetch_transcript.py --batch urls.txt --json --output all_transcripts.json

Output Formats

Text (default):

Hello and welcome to this video.
Today we're going to talk about...

JSON (--json):

{
  "video_id": "dQw4w9WgXcQ",
  "title": "Video Title",
  "transcript": [
    {"start": 0.0, "duration": 2.5, "text": "Hello and welcome"},
    {"start": 2.5, "duration": 3.0, "text": "to this video"}
  ],
  "full_text": "Hello and welcome to this video..."
}

Error Handling

The script handles common errors:

  • Invalid YouTube URL
  • Video has no transcript
  • API quota exceeded
  • Network errors

Metadata

metadata:
  clawdbot:
    emoji: "๐Ÿ“น"
    requires:
      env: ["APIFY_API_TOKEN"]
      bins: ["python3"]

File v1.1.2:README.md

๐Ÿ“น YouTube Transcript Fetcher (APIFY)

Fetch YouTube video transcripts from anywhere โ€” even cloud servers where YouTube blocks direct access.

โœจ Features

  • Works from cloud IPs (AWS, GCP, VPS, etc.)
  • Bypasses YouTube bot detection via APIFY proxies
  • Local caching โ€” repeat requests are FREE
  • Batch mode โ€” process multiple videos at once
  • Text or JSON output with timestamps
  • Language preference support
  • Simple Python script, no SDK needed

๐Ÿ’ฐ Free Tier

APIFY offers $5/month free credits โ€” that's approximately 714 videos per month at $0.007 each!

No credit card required. Sign up here

๐Ÿš€ Quick Start

# 1. Set your API token
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN"

# 2. Fetch a transcript
python3 scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID"

๐Ÿ“– Documentation

See SKILL.md for full documentation, setup instructions, and usage examples.

๐Ÿ”— Links

โš™๏ธ Requirements

  • Python 3.6+
  • requests library (pip install requests)
  • APIFY API token (free)

๐Ÿ“„ License

MIT

File v1.1.2:_meta.json

{ "ownerId": "kn73gpe8xz2630jrknkb3ya96h7zb84h", "slug": "youtube-apify-transcript", "version": "1.1.2", "publishedAt": 1770800423308 }

File v1.1.2:CHANGELOG.md

Changelog

[1.0.7] - 2026-02-04

  • Privacy cleanup: removed hardcoded paths and personal info from docs

File v1.1.2:package.json

{ "name": "@openclaw/youtube-apify-transcript", "version": "1.1.2", "description": "Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos).", "author": "robbyczgw-cla", "license": "MIT", "keywords": [ "openclaw", "skill", "youtube", "transcript", "apify", "video", "subtitles", "captions", "cloud-ip", "free-tier", "web-scraping" ], "repository": { "type": "git", "url": "https://github.com/robbyczgw-cla/youtube-apify-transcript.git" }, "homepage": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript", "bugs": { "url": "https://github.com/robbyczgw-cla/youtube-apify-transcript/issues" }, "openclaw": { "skill": true, "triggers": [ "youtube transcript", "get transcript", "video transcript" ], "capabilities": [ "transcript-extraction", "cloud-ip-bypass", "multi-language" ], "requirements": { "bins": [ "python3" ], "env": { "APIFY_API_TOKEN": "required" } } }, "files": [ "SKILL.md", "README.md", ".env.example", "scripts/" ] }

Archive v1.1.1: 6 files, 8744 bytes

Files: CHANGELOG.md (109b), package.json (1223b), README.md (1326b), scripts/fetch_transcript.py (17571b), SKILL.md (3984b), _meta.json (143b)

File v1.1.1:SKILL.md


name: youtube-apify-transcript version: 1.1.1 description: Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos). No credit card required. tags: [youtube, transcript, apify, video, subtitles, captions, cloud-ip, free-tier, web-scraping]

youtube-apify-transcript

Fetch YouTube transcripts via APIFY API (works from cloud IPs, bypasses YouTube bot detection).

Why APIFY?

YouTube blocks transcript requests from cloud IPs (AWS, GCP, etc.). APIFY runs the request through residential proxies, bypassing bot detection reliably.

Free Tier

  • $5/month free credits (~714 videos)
  • No credit card required
  • Perfect for personal use

Cost

  • $0.007 per video (less than 1 cent!)
  • Track usage at: https://console.apify.com/billing

Links

Setup

  1. Create free APIFY account: https://apify.com/
  2. Get your API token: https://console.apify.com/account/integrations
  3. Set environment variable:
# Add to ~/.bashrc or ~/.zshrc
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

# Or use .env file (never commit this!)
echo 'APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE' >> .env

Usage

Basic Usage

# Get transcript as text (uses cache by default)
python3 scripts/fetch_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"

# Short URL also works
python3 scripts/fetch_transcript.py "https://youtu.be/VIDEO_ID"

Options

# Output to file
python3 scripts/fetch_transcript.py "URL" --output transcript.txt

# JSON format (includes timestamps)
python3 scripts/fetch_transcript.py "URL" --json

# Both: JSON to file
python3 scripts/fetch_transcript.py "URL" --json --output transcript.json

# Specify language preference
python3 scripts/fetch_transcript.py "URL" --lang de

Caching (saves money!)

Transcripts are cached locally by default. Repeat requests for the same video cost $0.

# First request: fetches from APIFY ($0.007)
python3 scripts/fetch_transcript.py "URL"

# Second request: uses cache (FREE!)
python3 scripts/fetch_transcript.py "URL"
# Output: [cached] Transcript for: VIDEO_ID

# Bypass cache (force fresh fetch)
python3 scripts/fetch_transcript.py "URL" --no-cache

# View cache stats
python3 scripts/fetch_transcript.py --cache-stats

# Clear all cached transcripts
python3 scripts/fetch_transcript.py --clear-cache

Cache location: /root/clawd/memory/transcript-cache/

Batch Mode

Process multiple videos at once:

# Create a file with URLs (one per line)
cat > urls.txt << EOF
https://youtube.com/watch?v=VIDEO1
https://youtu.be/VIDEO2
https://youtube.com/watch?v=VIDEO3
EOF

# Process all URLs
python3 scripts/fetch_transcript.py --batch urls.txt

# Output: 
# [1/3] Fetching VIDEO1...
# [2/3] [cached] VIDEO2
# [3/3] Fetching VIDEO3...
# Batch complete: 2 fetched, 1 cached, 0 failed
# [Cost: ~$0.014 for 2 API call(s)]

# Batch with JSON output to file
python3 scripts/fetch_transcript.py --batch urls.txt --json --output all_transcripts.json

Output Formats

Text (default):

Hello and welcome to this video.
Today we're going to talk about...

JSON (--json):

{
  "video_id": "dQw4w9WgXcQ",
  "title": "Video Title",
  "transcript": [
    {"start": 0.0, "duration": 2.5, "text": "Hello and welcome"},
    {"start": 2.5, "duration": 3.0, "text": "to this video"}
  ],
  "full_text": "Hello and welcome to this video..."
}

Error Handling

The script handles common errors:

  • Invalid YouTube URL
  • Video has no transcript
  • API quota exceeded
  • Network errors

Metadata

metadata:
  clawdbot:
    emoji: "๐Ÿ“น"
    requires:
      env: ["APIFY_API_TOKEN"]
      bins: ["python3"]

File v1.1.1:README.md

๐Ÿ“น YouTube Transcript Fetcher (APIFY)

Fetch YouTube video transcripts from anywhere โ€” even cloud servers where YouTube blocks direct access.

โœจ Features

  • Works from cloud IPs (AWS, GCP, VPS, etc.)
  • Bypasses YouTube bot detection via APIFY proxies
  • Local caching โ€” repeat requests are FREE
  • Batch mode โ€” process multiple videos at once
  • Text or JSON output with timestamps
  • Language preference support
  • Simple Python script, no SDK needed

๐Ÿ’ฐ Free Tier

APIFY offers $5/month free credits โ€” that's approximately 714 videos per month at $0.007 each!

No credit card required. Sign up here

๐Ÿš€ Quick Start

# 1. Set your API token
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN"

# 2. Fetch a transcript
python3 scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID"

๐Ÿ“– Documentation

See SKILL.md for full documentation, setup instructions, and usage examples.

๐Ÿ”— Links

โš™๏ธ Requirements

  • Python 3.6+
  • requests library (pip install requests)
  • APIFY API token (free)

๐Ÿ“„ License

MIT

File v1.1.1:_meta.json

{ "ownerId": "kn73gpe8xz2630jrknkb3ya96h7zb84h", "slug": "youtube-apify-transcript", "version": "1.1.1", "publishedAt": 1770800169256 }

File v1.1.1:CHANGELOG.md

Changelog

[1.0.7] - 2026-02-04

  • Privacy cleanup: removed hardcoded paths and personal info from docs

File v1.1.1:package.json

{ "name": "@openclaw/youtube-apify-transcript", "version": "1.1.1", "description": "Fetch YouTube transcripts via APIFY API. Works from cloud IPs (Hetzner, AWS, etc.) by bypassing YouTube's bot detection. Free tier includes $5/month credits (~714 videos).", "author": "robbyczgw-cla", "license": "MIT", "keywords": [ "openclaw", "skill", "youtube", "transcript", "apify", "video", "subtitles", "captions", "cloud-ip", "free-tier", "web-scraping" ], "repository": { "type": "git", "url": "https://github.com/robbyczgw-cla/youtube-apify-transcript.git" }, "homepage": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript", "bugs": { "url": "https://github.com/robbyczgw-cla/youtube-apify-transcript/issues" }, "openclaw": { "skill": true, "triggers": ["youtube transcript", "get transcript", "video transcript"], "capabilities": [ "transcript-extraction", "cloud-ip-bypass", "multi-language" ], "requirements": { "bins": ["python3"], "env": { "APIFY_API_TOKEN": "required" } } }, "files": [ "SKILL.md", "README.md", ".env.example", "scripts/" ] }

API & Reliability

Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.

MissingCLAWHUB

Machine interfaces

Contract & API

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/trust"

Operational fit

Reliability & Benchmarks

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Machine Appendix

Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.

MissingCLAWHUB

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "CLAWHUB",
      "generatedAt": "2026-04-17T05:11:00.099Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Clawhub",
    "href": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceUrl": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "2.6K downloads",
    "href": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceUrl": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "latest_release",
    "category": "release",
    "label": "Latest release",
    "value": "1.1.2",
    "href": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceUrl": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-11T09:00:23.308Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-youtube-apify-transcript/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "release",
    "title": "Release 1.1.2",
    "description": "Fix: SKILL.md cache path updated to match code. APIFY_API_TOKEN declared in registry metadata.",
    "href": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceUrl": "https://clawhub.ai/robbyczgw-cla/youtube-apify-transcript",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-11T09:00:23.308Z",
    "isPublic": true
  }
]

Sponsored

Ads related to YouTube Apify Transcript and adjacent AI workflows.