Social Transcript Extractor — SupaData API
Extract transcripts from video content across all major social platforms via SupaData. Primary use: competitor ad research and content repurposing.
Supported Platforms
- YouTube
- Instagram (Reels, IGTV, Stories)
- TikTok
- Twitter/X (video tweets)
- Facebook (video posts)
Auth & Setup
API key: D:\Ecosystem\secrets\MASTER_API_KEYS.env → SUPADATA_API_KEY
Dashboard: https://dash.supadata.ai
Pricing: Free tier = 100 credits/mo | Pro = $17/mo for 3,000 credits
Basic Extraction
curl -X GET "https://api.supadata.ai/v1/transcript?url=VIDEO_URL&text=true" \
-H "x-api-key: $SUPADATA_API_KEY"
| Parameter | Required | Description | |-----------|----------|-------------| | url | Yes | Full video URL | | text | No | Return plain text instead of timestamped JSON | | lang | No | Language code (default: auto-detect) |
Python Extraction
import os
import requests
def extract_transcript(video_url):
response = requests.get(
"https://api.supadata.ai/v1/transcript",
params={"url": video_url, "text": "true"},
headers={"x-api-key": os.environ["SUPADATA_API_KEY"]}
)
data = response.json()
return data.get("content", "")
# Competitor TikTok
transcript = extract_transcript("https://www.tiktok.com/@competitor/video/123456")
print(transcript)
Response Format
{
"content": "Full transcript text...",
"lang": "en",
"availableLangs": ["en", "es"],
"wordCount": 312
}
Workflow: Competitor Ad Research
- Find competitor video via TikTok/Instagram/YouTube search
- Extract transcript with this skill
- Analyze hook structure, pacing, CTAs
- Feed into [[scriptwriter]] as reference for new scripts
- Identify winning angles for [[ai-video-pipeline]]
Workflow: Content Repurposing
- Extract transcript from Mike's or client's existing video
- Clean up with Claude
- Use as blog post body or email newsletter
- Add to PAA content engine for keyword optimization
Proxy Rule
Instagram and TikTok extraction must use proxies — do not pull from home IP.
Read proxy config from D:\Ecosystem\secrets\MASTER_API_KEYS.env (PROXY_1).
proxies = {
"http": f"http://{user}:{password}@{host}:{port}",
"https": f"http://{user}:{password}@{host}:{port}"
}
response = requests.get(url, params=params, headers=headers, proxies=proxies)
Related Topics
- [[assemblyai-transcription]] — transcribe audio files (not social URLs)
- [[ytdlp-agent]] — download YouTube videos and subtitles directly
- [[yt-transcript-pipeline]] — automated YouTube transcript vault
#video-sop #transcript #social-media #youtube #tiktok #instagram #competitor-research