Extract transcripts from public YouTube, TikTok, Instagram, and Facebook videos in one run. Send a mixed list of video URLs and receive normalized transcript text, timestamped segments, language, video metadata, and clear per-video status rows.
What you can export
- Full transcript text for public videos with accessible captions or speech
- Timestamped transcript segments
- Platform, canonical URL, video ID, title, author, duration, thumbnail, and caption when public
- Stable success/failure status and error details
- Original platform-specific fields in
sourceData
Input example
{
"videoUrls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
{ "url": "https://www.tiktok.com/@scout2015/video/6718335390845095173" }
],
"preferredLanguage": "en",
"includeTimestamps": true,
"includeMetadata": true,
"maxVideos": 2
}
Output example
{
"inputUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"canonicalUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"platform": "youtube",
"videoId": "dQw4w9WgXcQ",
"title": "Video title",
"authorName": "Channel name",
"language": "en",
"transcriptText": "Transcript text...",
"segments": [{ "text": "Transcript text", "startSeconds": 0, "endSeconds": 2.4, "durationSeconds": 2.4 }],
"durationSeconds": 213,
"thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
"caption": null,
"status": "succeeded",
"errorMessage": null,
"scrapedAt": "2026-09-06T00:00:00.000Z",
"sourceData": {}
}
Input settings
| Field | Description |
|---|---|
videoUrls |
Public YouTube, TikTok, Instagram Reel/video, or Facebook Reel/video URLs. |
preferredLanguage |
Preferred caption or speech language code. |
includeTimestamps |
Include segment timing when available. |
includeMetadata |
Include public title, author, duration, thumbnail, and caption. |
maxVideos |
Maximum unique URLs to process (1–5) within the shared run deadline. |
maxRetries |
Maximum retries (0–5) for transient timeout, connection, rate-limit, and 5xx failures. |
proxyConfiguration |
Optional Apify Proxy settings. |
Who is it for?
- AI and data teams building RAG, semantic search, or media-monitoring pipelines
- Researchers comparing video narratives across social platforms
- Content teams creating summaries, subtitles, topic indexes, and editorial briefs
- Developers who need one stable schema instead of platform-specific integrations
Use cases
- Feed mixed social-video transcripts into RAG or search pipelines
- Monitor creators across several platforms
- Create subtitles, summaries, topic indexes, and content briefs
- Export timestamped quotes for research and editorial review
Tips and limits
- Use direct public video URLs, not profile or channel pages.
- Private, deleted, age-restricted, geo-restricted, or silent videos may return failed rows.
- Metadata and timestamp availability varies by platform and public source.
- Keep the first run small, then increase
maxVideosafter confirming the source URLs work.
API usage
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~video-transcript-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"videoUrls":[{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}],"maxVideos":1}'
JavaScript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/video-transcript-scraper').call({
videoUrls: [{ url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' }],
maxVideos: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/video-transcript-scraper').call(run_input={
'videoUrls': [{'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'}],
'maxVideos': 1,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
MCP and AI agents
Connect through Apify MCP and expose fetch_cat/video-transcript-scraper to your agent.
claude mcp add apify --transport http "https://mcp.apify.com/?tools=fetch_cat/video-transcript-scraper"
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=fetch_cat/video-transcript-scraper"
}
}
}
Example prompts:
- “Extract timestamped transcripts from these three public video URLs.”
- “Summarize the main themes and cite the source URL for each transcript.”
Support
Open an issue from the Actor's Apify Store page with a public example URL, expected result, and run ID. Do not include private videos, credentials, cookies, or personal data.