video-transcript
Scannednpx machina-cli add skill ZeroPointRepo/youtube-skills/video-transcript --openclawVideo Transcript
Extract transcripts from videos 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 your shell profile and agent config. Ready to use.
Manual option: transcriptapi.com/signup → Dashboard → API Keys.
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"
| Param | Required | Default | Values |
|---|---|---|---|
video_url | yes | — | YouTube URL or 11-char video ID |
format | no | json | json (structured), text (readable) |
include_timestamp | no | true | true, false |
send_metadata | no | false | true, false |
Accepted URL formats:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://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=jsonwhen you need precise timestamps for quoting specific moments. - Use
send_metadata=trueto get video title and channel for context. - Works with YouTube Shorts too.
Errors
| Code | Meaning | Action |
|---|---|---|
| 401 | Bad API key | Check key or re-setup |
| 402 | No credits | Top up at transcriptapi.com/billing |
| 404 | No transcript | Video may not have captions enabled |
| 408 | Timeout | Retry once after 2s |
1 credit per successful request. Errors don't consume credits. Free tier: 100 credits, 300 req/min.
Source
git clone https://github.com/ZeroPointRepo/youtube-skills/blob/main/skills/video-transcript/SKILL.mdView on GitHub Overview
Video Transcript retrieves full transcripts from YouTube videos via TranscriptAPI.com. It supports text and JSON outputs, can include timestamps and metadata, and is ideal for analysis, summarization, or note-taking.
How This Skill Works
Provide a YouTube URL or video ID and choose a format (json or text) with options for include_timestamp and send_metadata. The API call to GET /api/v2/youtube/transcript returns either a structured transcript with start times or a readable text block, plus optional metadata such as title and author. Accepts common YouTube URL formats or a bare video ID to locate the video.
When to Use It
- Transcribing lectures, talks, or tutorials for study notes
- Quoting specific moments with timestamps for papers or blogs
- Citing video sources with title and author metadata in reports
- Analyzing webinars or product demos for insights and summaries
- Converting long videos into structured transcripts for archiving
Quick Start
- Step 1: Register for a TranscriptAPI key and retrieve your API key
- Step 2: Call GET /api/v2/youtube/transcript with video_url, format, include_timestamp, and send_metadata, including Authorization: Bearer YOUR_KEY
- Step 3: Use the transcript data from the response, either as text or JSON with timestamps and metadata
Best Practices
- Provide the exact video URL or ID to ensure correct retrieval
- Use format=json when you need precise timestamps for quoting moments
- Set include_timestamp to true and send_metadata to true for context
- Be mindful of API credits; 1 credit per successful request; manage your quota
- If the video lacks captions, expect a no transcript response and verify availability
Example Use Cases
- A student transcribes a university lecture to create organized study notes
- A researcher pulls timestamped quotes from a conference talk for a literature review
- A content team logs a product demo transcript with metadata for a knowledge base
- An accessibility specialist generates readable transcripts to improve inclusivity and SEO
- An archivist stores video transcripts with metadata for long-term retrieval