agentsclimarketplace

Video transcript

Skill ZeroPointRepo/youtube-skills/skills/video-transcript

Use when video content needs to be extracted as text: pasted YouTube links or IDs, requests to transcribe, summarize, quote, translate, convert video to text, or extract information from video content. Also use when a user shares a video URL without explanation and wants to know what it says. Not for uploads or account management.From its SKILL.md

Install
npx -y skills add ZeroPointRepo/youtube-skills --skill video-transcript

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 1 credential source: `$TRANSCRIPT_API_KEY`.
  • runs commandsInstructs the agent to run 1 command, including `curl -s "https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: Y`.
  • fetches URLsInstructs the agent to fetch 1 URL, including https://transcriptapi.com/api/v2/youtube/transcript.

SKILL.md

4.3 KB, 873 tokens by cl100k_base, as published. Nobody here has run it

Video Transcript

Extract transcripts from videos via TranscriptAPI.com.

Setup

If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md and follow the instructions there to get and store the key.

Required Headers

Every request needs two headers:

  • Authorization: Bearer $TRANSCRIPT_API_KEY
  • User-Agent: your agent's name and version if known (e.g. HermesAgent/0.11.0, ClaudeCode/1.0). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.

GET /api/v2/youtube/transcript

curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
ParamRequiredDefaultValues
video_urlyesYouTube URL or 11-char video ID
formatnojsonjson (structured), text (readable)
include_timestampnotruetrue, false
send_metadatanofalsetrue, false

Accepted URL formats:

  • https://www.youtube.com/watch?v=VIDEO_ID
  • https://youtu.be/VIDEO_ID
  • https://youtube.com/shorts/VIDEO_ID
  • Bare video ID: dQw4w9WgXcQ

Response (format=text&send_metadata=true):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": "[00:00:18] We're no strangers to love\n[00:00:21] You know the rules...",
  "metadata": {
    "title": "Rick Astley - Never Gonna Give You Up",
    "author_name": "Rick Astley",
    "author_url": "https://www.youtube.com/@RickAstley",
    "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
  }
}

Response (format=json):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 },
    { "text": "You know the rules and so do I", "start": 21.5, "duration": 2.8 }
  ]
}

Tips

  • Summarize long transcripts into key points first, offer full text on request.
  • Use format=json when you need precise timestamps for quoting specific moments.
  • Use send_metadata=true to get video title and channel for context.
  • Works with YouTube Shorts too.

Errors

CodeMeaningAction
401Bad API keyCheck key or re-setup
402No creditsTop up at transcriptapi.com/billing
403/1010Cloudflare blockAdd or fix User-Agent header
404No transcriptVideo may not have captions enabled
408TimeoutRetry once after 2s

1 credit per successful request. Errors don't consume credits. Free tier: 100 credits, 300 req/min.

What ships with it: 1 file

7.2 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.