Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc.
Pricing
from $10.00 / 1,000 results
Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc.
Scrapes transcripts from online video/audio content on multiple plateforms (Youtube, X, ..) in any available language. It delivers outputs in both JSON and LLM-ready formats, making it ideal for analytics, and AI-based applications. Perfect for research and building intelligent conversational agents
Pricing
from $10.00 / 1,000 results
Rating
5.0
(3)
Developer

InVideoIQ
Actor stats
4
Bookmarked
5
Total users
4
Monthly active users
2 days ago
Last modified
Categories
Share
Video Transcript Extractor: One API for Every Video Platform
Most transcript tools only work with YouTube. This one works everywhere.
Extract clean, structured transcripts from YouTube, X (Twitter), TikTok, Facebook, Dailymotion, Vimeo, Loom and more through a single, unified API. No switching between tools, no per-platform headaches.
Send a URL. Get back timestamped transcript + rich metadata in seconds. That's it.
Why Teams Choose This Over YouTube-Only Tools
| This Actor | Typical Competitor | |
|---|---|---|
| Platforms supported | 7+ (YouTube, X, TikTok, Facebook, Vimeo, Dailymotion, Loom...) | YouTube only |
| Output format | Timestamped segments + LLM-ready plain text | Segments only |
| Video metadata | Title, description, thumbnail, duration, views, likes, channel, publish date | Transcript only |
| Speed | Fast async processing, high concurrency, no rate limits | Sequential or rate-limited |
| Language support | Multi-language with auto-detection | Limited |
| Proxy handling | Built-in residential proxies with smart fallback | Manual or none |
What You Get Back
Every request returns two transcript formats plus rich metadata:
text: the full transcript as a single plain string, ready to feed into any LLM or NLP pipelinetranscript: timestamped segments with precise start/end times, ideal for indexing, search, and UI display- Video metadata: title, description, thumbnail, duration, view count, like count, channel info, publish date
- Language info: available languages and which one was selected
{"title": "How to Build a Startup in 2026","description": "In this video we break down...","duration": 847,"thumbnail": "https://i.ytimg.com/vi/abc123/maxresdefault.jpg","view_count": 284000,"like_count": 12400,"published_date": "2026-03-10","channel": "TechFounders","channel_url": "https://youtube.com/@TechFounders","channel_id": "UC1234567890","available_languages": ["English", "French", "Spanish"],"selected_language": "English","text": "Welcome back to the channel. Today we're going to talk about...","transcript": [{ "text": "Welcome back to the channel.", "start": 0.0, "end": 1.8 },{ "text": "Today we're going to talk about...", "start": 1.8, "end": 4.2 }]}
Note:
like_count,channel,channel_url,available_languages, andselected_languageare currently available for YouTube videos only.
Supported Platforms
Tested and production-ready:
| Platform | Notes |
|---|---|
| YouTube | Long-form videos, Shorts, auto-generated and manual captions |
| X (Twitter) | Paste the tweet URL containing the video |
| TikTok | Public videos with available captions |
| Public videos | |
| Dailymotion | Full support |
| Vimeo | Full support |
| Loom | Full support |
Also works on many other video hosting sites and media platforms. If it has embedded subtitles, this actor can probably extract them.
Need to transcribe videos that don't have captions (e.g. Instagram, or videos without any subtitle track)? Use our speech-to-text companion actor: Video Transcriber.
Use Cases
- RAG pipelines & AI agents: Feed video transcripts into your retrieval-augmented generation system. One API call gives you LLM-ready text.
- Content repurposing: Turn YouTube videos, tweets, and TikToks into blog posts, newsletters, or social media threads.
- Market research: Monitor what competitors, influencers, or thought leaders say across platforms. Batch-process hundreds of URLs.
- Accessibility & compliance: Generate text versions of video content for accessibility requirements.
- Media monitoring: Track brand mentions across video platforms at scale.
- Dataset building: Build training datasets from video content across multiple platforms.
Inputs
| Parameter | Required | Description |
|---|---|---|
video_urls | Yes | Array of video URLs. Mix platforms freely in a single request |
language | No | Language code ("en", "fr", "de", etc.). Leave empty for default language |
best_effort | No | If true, returns metadata even when no transcript is available |
Example Input
{"video_urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://x.com/elonmusk/status/1234567890","https://www.tiktok.com/@user/video/1234567890"],"language": "en"}
Yes, you can mix platforms in a single batch. They all come back in the same format.
Quick Start: Code Examples
cURL
curl -X POST "https://api.apify.com/v2/acts/invideoiq~video-transcript-extractor/run-sync?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"video_urls": ["https://www.youtube.com/watch?v=vl6jn-DdafM", "https://www.youtube.com/watch?v=4czjS9h4Fpg"]}'
Python
import requestsimport jsonurl = "https://api.apify.com/v2/acts/invideoiq~video-transcript-extractor/run-sync?token=YOUR_TOKEN"data = {"video_urls": ["https://www.youtube.com/watch?v=vl6jn-DdafM","https://www.youtube.com/watch?v=4czjS9h4Fpg"]}response = requests.post(url, json=data, headers={"Content-Type": "application/json"})print(json.dumps(response.json(), indent=4, ensure_ascii=False))
JavaScript
const response = await fetch("https://api.apify.com/v2/acts/invideoiq~video-transcript-extractor/run-sync?token=YOUR_TOKEN",{method: "POST",headers: { "Content-Type": "application/json" },body: JSON.stringify({video_urls: ["https://www.youtube.com/watch?v=vl6jn-DdafM","https://www.youtube.com/watch?v=4czjS9h4Fpg",],}),});const data = await response.json();console.log(data);
FAQ
Q: What if a video has no subtitles/captions?
The actor relies on embedded subtitle tracks (manual or auto-generated). If none exist, it returns an error, or metadata-only if best_effort is enabled. For videos without any captions, use our Video Transcriber which uses speech-to-text.
Q: Can I specify a transcript language?
Yes. Pass a language code like "en" or "fr" in the language field. If that language isn't available for a given video, you'll get a clear message. When in doubt, leave it empty and the actor returns the default language. For YouTube, check the available_languages field in the output to see what's available.
Q: How many videos can I process at once?
As many as you need. Pass all your URLs in the video_urls array and the actor processes them concurrently, no rate limiting applied.
Q: I'm getting an error for my URL. What's wrong?
Make sure the URL is a complete, direct link to the video (e.g. https://www.youtube.com/watch?v=..., not a shortened or embedded URL). The actor supports direct links from YouTube, X (tweet URLs), TikTok, Facebook, Vimeo, Dailymotion, and Loom.
Q: Does it work with private or age-restricted videos? No. The actor can only access publicly available videos with public subtitle tracks.
Start Extracting. It Takes 30 Seconds.
Every minute, thousands of videos are published across platforms. The insights inside them, what people say, how they say it, what topics trend, are locked behind play buttons.
This actor gives you the key. One API, every platform, structured data out.
Try it now, paste a URL and see the result in seconds.
Need Help?
Something not working? Reach out, we respond fast and fix issues quickly.