| name | supadata |
| description | Supadata API via curl. Use this skill to extract transcripts from YouTube/TikTok/Instagram videos and scrape web content to markdown. |
| vm0_secrets | SUPADATA_API_KEY |
Supadata API
Use the Supadata API via direct curl calls to extract video transcripts and scrape web content for AI applications.
Official docs:
https://docs.supadata.ai/
When to Use
Use this skill when you need to:
- Extract transcripts from YouTube, TikTok, Instagram, X (Twitter), Facebook videos
- Scrape web pages to markdown format for AI processing
- Get video/channel metadata from social platforms
- Crawl websites to extract content from multiple pages
Prerequisites
- Sign up at Supadata Dashboard
- API key is automatically generated on signup (no credit card required)
- Store your API key in environment variable
export SUPADATA_API_KEY="your-api-key"
Pricing
- Transcript fetch (existing): 1 credit
- Transcript generation (AI): 2 credits/minute
- Free tier available
Important: When using
$VARin a command that pipes to another command, wrap the command containing$VARinbash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .
How to Use
All examples below assume you have SUPADATA_API_KEY set.
The base URL for the API is:
https://api.supadata.ai/v1
Authentication uses the x-api-key header.
1. Get YouTube Video Transcript
Extract transcript from a YouTube video:
bash -c 'curl -s "https://api.supadata.ai/v1/transcript" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" -d "text=true"' | jq .
Parameters:
url: Video URL (required)text: Return plain text (true) or timestamped chunks (false, default)lang: Preferred language (ISO 639-1 code, e.g.,en,zh)mode:native(existing only),generate(AI),auto(default)
2. Get Transcript with Timestamps
Get transcript with timing information:
bash -c 'curl -s "https://api.supadata.ai/v1/transcript" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" -d "text=false"' | jq '.content[:3]
Response format:
{
"content": [
{"text": "Hello", "offset": 0, "duration": 1500, "lang": "en"}
],
"lang": "en",
"availableLangs": ["en", "es", "zh"]
}
3. Get TikTok/Instagram/X Transcript
Extract transcript from other platforms:
# TikTok
bash -c 'curl -s "https://api.supadata.ai/v1/transcript" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.tiktok.com/@user/video/1234567890" -d "text=true"' | jq .
# Instagram Reel
bash -c 'curl -s "https://api.supadata.ai/v1/transcript" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.instagram.com/reel/ABC123/" -d "text=true"' | jq .
Supported platforms: YouTube, TikTok, Instagram, X (Twitter), Facebook
4. Native Transcript Only (Save Credits)
Fetch only existing transcripts without AI generation:
bash -c 'curl -s "https://api.supadata.ai/v1/transcript" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" -d "text=true" -d "mode=native"' | jq .
Use mode=native to avoid AI generation costs (1 credit vs 2 credits/min).
5. Get YouTube Channel Metadata
Get channel information:
bash -c 'curl -s "https://api.supadata.ai/v1/youtube/channel" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "id=@mkbhd"' | jq '{name, subscriberCount, videoCount}
Accepts channel URL, channel ID, or handle (e.g., @mkbhd).
6. Get YouTube Video Metadata
Get video information:
bash -c 'curl -s "https://api.supadata.ai/v1/youtube/video" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.youtube.com/watch?v=dQw4w9WgXcQ"' | jq '{title, viewCount, likeCount, duration}
7. Get Social Media Metadata
Get metadata from any supported platform:
bash -c 'curl -s "https://api.supadata.ai/v1/metadata" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.tiktok.com/@user/video/1234567890"' | jq .
Works with YouTube, TikTok, Instagram, X, Facebook posts.
8. Scrape Web Page to Markdown
Extract web page content:
bash -c 'curl -s "https://api.supadata.ai/v1/web/scrape" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://example.com"' | jq .
Returns page content in Markdown format, ideal for AI processing.
9. Map Website Links
Get all links from a website:
bash -c 'curl -s "https://api.supadata.ai/v1/web/map" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://example.com"' | jq '.urls[:10]'
10. Crawl Website (Async)
Start a crawl job for multiple pages.
Write to /tmp/supadata_request.json:
{
"url": "https://example.com",
"maxPages": 10
}
Then run:
# Start crawl
JOB_ID="$(bash -c 'curl -s "https://api.supadata.ai/v1/web/crawl" -X POST -H "x-api-key: ${SUPADATA_API_KEY}" -H "Content-Type: application/json" -d @/tmp/supadata_request.json' | jq -r '.jobId')"
echo "Job ID: ${JOB_ID}"
# Check status
bash -c 'curl -s "https://api.supadata.ai/v1/web/crawl/${JOB_ID}" -H "x-api-key: ${SUPADATA_API_KEY}"' | jq '{status, pagesCompleted}'
Status values: queued, active, completed, failed
11. Translate Transcript
Translate a YouTube transcript to another language:
bash -c 'curl -s "https://api.supadata.ai/v1/youtube/transcript/translate" -H "x-api-key: ${SUPADATA_API_KEY}" -G --data-urlencode "url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" -d "lang=zh" -d "text=true"' | jq .
Response Handling
Synchronous (HTTP 200): Direct result returned.
Asynchronous (HTTP 202): Returns jobId for polling:
{"jobId": "abc123"}
Poll the job endpoint until status is completed.
Guidelines
- Use
mode=nativeto save credits: Only fetches existing transcripts - URL encode parameters: Use
--data-urlencodefor URLs - Check available languages: Response includes
availableLangsarray - Handle async responses: Some requests return job IDs for polling
- Max file size: 1GB for direct file URLs
- Supported formats: MP4, WEBM, MP3, FLAC, MPEG, M4A, OGG, WAV