Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc. avatar

Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc.

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc.

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

InVideoIQ

Maintained by Community

Actor stats

4

Bookmarked

5

Total users

4

Monthly active users

2 days ago

Last modified

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 ActorTypical Competitor
Platforms supported7+ (YouTube, X, TikTok, Facebook, Vimeo, Dailymotion, Loom...)YouTube only
Output formatTimestamped segments + LLM-ready plain textSegments only
Video metadataTitle, description, thumbnail, duration, views, likes, channel, publish dateTranscript only
SpeedFast async processing, high concurrency, no rate limitsSequential or rate-limited
Language supportMulti-language with auto-detectionLimited
Proxy handlingBuilt-in residential proxies with smart fallbackManual 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 pipeline
  • transcript: 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, and selected_language are currently available for YouTube videos only.


Supported Platforms

Tested and production-ready:

PlatformNotes
YouTubeLong-form videos, Shorts, auto-generated and manual captions
X (Twitter)Paste the tweet URL containing the video
TikTokPublic videos with available captions
FacebookPublic videos
DailymotionFull support
VimeoFull support
LoomFull 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

ParameterRequiredDescription
video_urlsYesArray of video URLs. Mix platforms freely in a single request
languageNoLanguage code ("en", "fr", "de", etc.). Leave empty for default language
best_effortNoIf 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 requests
import json
url = "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.