Youtube Search

v1.4.1

Search YouTube for videos and channels, search within specific channels, then fetch transcripts. Use when the user asks to "find videos about X", "search YouTube for", "look up a channel", "who makes videos about", "find on youtube", or wants to discover YouTube content on a topic.

3· 2.1k·10 current·11 all-time
byRohit Das@therohitdas
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (YouTube search + transcript fetch) match the declared needs: TRANSCRIPT_API_KEY is the service API key, node is required to run the provided auth helper, and ~/.openclaw/openclaw.json is the stated agent config file that will store the API key.
Instruction Scope
Runtime instructions call TranscriptAPI endpoints (register, verify, search, transcript) and direct the included CLI script to save the resulting API key to ~/.openclaw/openclaw.json. This is in-scope for obtaining and using a transcript API key, but users should be aware the skill will ask for an email and OTP and will persist the API key to their OpenClaw config file (backing up the original).
Install Mechanism
No install spec is provided (instruction-only). A single bundled Node script (scripts/tapi-auth.js) is included and is human-readable; network calls go to transcriptapi.com. There are no downloads from arbitrary or short URLs and no archives extracted.
Credentials
Only TRANSCRIPT_API_KEY is required and declared as the primary credential. The required config path (~/.openclaw/openclaw.json) is directly used to store that key. No unrelated secrets or extra environment variables are requested.
Persistence & Privilege
always is false and the skill does not request elevated or system-wide changes. The included script writes only to the agent-specific ~/.openclaw/openclaw.json (and creates a .bak). It does not modify other skills or global system configs.
Assessment
This skill appears to do what it says: it uses TranscriptAPI to search YouTube and fetch transcripts. Before installing: (1) confirm you trust transcriptapi.com (the CLI will make network calls to their auth endpoints), (2) be aware the auth helper asks for your email and OTP and will save the resulting API key in plaintext to ~/.openclaw/openclaw.json (the script backs up the file to .bak), (3) treat TRANSCRIPT_API_KEY as a secret — anyone with it can use your TranscriptAPI credits, so consider creating a scoped/limited API key on the TranscriptAPI dashboard if available, and (4) review the included scripts (scripts/tapi-auth.js) yourself — it's human-readable and currently only touches the OpenClaw config. If the skill later requested unrelated credentials, wrote to other config paths, or contacted unknown domains, re-evaluate. I have high confidence in this assessment given the provided files and instructions.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🔍 Clawdis
Binsnode
EnvTRANSCRIPT_API_KEY
Config~/.openclaw/openclaw.json
Primary envTRANSCRIPT_API_KEY
latestvk976aky3wb8d34qbkem1nbxa9n80zgby
2.1kdownloads
3stars
13versions
Updated 1mo ago
v1.4.1
MIT-0

YouTube Search

Search YouTube and fetch transcripts via TranscriptAPI.com.

Setup

If $TRANSCRIPT_API_KEY is not set, help the user create an account (100 free credits, no card):

Step 1 — Register: Ask user for their email.

node ./scripts/tapi-auth.js register --email USER_EMAIL

→ OTP sent to email. Ask user: "Check your email for a 6-digit verification code."

Step 2 — Verify: Once user provides the OTP:

node ./scripts/tapi-auth.js verify --token TOKEN_FROM_STEP_1 --otp CODE

API key saved to ~/.openclaw/openclaw.json. See File Writes below for details. Existing file is backed up before modification.

Manual option: transcriptapi.com/signup → Dashboard → API Keys.

File Writes

The verify and save-key commands save the API key to ~/.openclaw/openclaw.json (sets skills.entries.transcriptapi.apiKey and enabled: true). Existing file is backed up to ~/.openclaw/openclaw.json.bak before modification.

To use the API key in terminal/CLI outside the agent, add to your shell profile manually: export TRANSCRIPT_API_KEY=<your-key>

API Reference

Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas.

GET /api/v2/youtube/search — 1 credit

Search YouTube globally for videos or channels.

curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredDefaultValidation
qyes1-200 chars (trimmed)
typenovideovideo or channel
limitno201-50

Video search response:

{
  "results": [
    {
      "type": "video",
      "videoId": "dQw4w9WgXcQ",
      "title": "Rick Astley - Never Gonna Give You Up",
      "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
      "channelTitle": "Rick Astley",
      "channelHandle": "@RickAstley",
      "channelVerified": true,
      "lengthText": "3:33",
      "viewCountText": "1.5B views",
      "publishedTimeText": "14 years ago",
      "hasCaptions": true,
      "thumbnails": [{ "url": "...", "width": 120, "height": 90 }]
    }
  ],
  "result_count": 20
}

Channel search response (type=channel):

{
  "results": [{
    "type": "channel",
    "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
    "title": "Rick Astley",
    "handle": "@RickAstley",
    "url": "https://www.youtube.com/@RickAstley",
    "description": "Official channel...",
    "subscriberCount": "4.2M subscribers",
    "verified": true,
    "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC...",
    "thumbnails": [...]
  }],
  "result_count": 5
}

GET /api/v2/youtube/channel/search — 1 credit

Search videos within a specific channel. Accepts channel — an @handle, channel URL, or UC... ID.

curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\
?channel=@TED&q=climate+change&limit=30" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredValidation
channelyes@handle, channel URL, or UC... ID
qyes1-200 chars
limitno1-50 (default 30)

Returns up to ~30 results (YouTube limit). Same video response shape as global search.

GET /api/v2/youtube/channel/resolve — FREE

Convert @handle to channel ID:

curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Workflow: Search → Transcript

# 1. Search for videos
curl -s "https://transcriptapi.com/api/v2/youtube/search\
?q=python+web+scraping&type=video&limit=5" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

# 2. Get transcript from result
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Errors

CodeAction
402No credits — transcriptapi.com/billing
404Not found
408Timeout — retry once
422Invalid channel identifier

Free tier: 100 credits, 300 req/min.

Comments

Loading comments...