Video Transcript Scraper
Pricing
from $15.02 / 1,000 transcript extracteds
Video Transcript Scraper
Extract normalized transcripts, timestamped segments, and public metadata from mixed YouTube, TikTok, Instagram, and Facebook video URLs.
Pricing
from $15.02 / 1,000 transcript extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
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. |
Output fields
inputUrl, canonicalUrl, platform, videoId, title, authorName, language, transcriptText, segments, durationSeconds, thumbnailUrl, caption, status, errorMessage, scrapedAt, and sourceData.
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
Pricing
Pay per successful transcript plus a small run-start fee. Failed or unavailable transcripts do not incur the transcript event charge. See the live Pricing tab for current rates and volume tiers.
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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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.”
Ready-to-run examples
Open a public example to inspect its input, run it, or reuse it as a task:
Timestamped YouTube transcript
{"videoUrls":[{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}],"includeTimestamps":true,"maxVideos":1}
Mixed-platform batch
{"videoUrls":[{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},{"url":"https://www.instagram.com/reel/DPR-1mcCAqa/"}],"preferredLanguage":"en","maxVideos":2}
Related Actors
- YouTube Transcript Scraper
- Instagram AI Transcript Extractor
- TikTok AI Transcript Extractor
- Facebook AI Transcript Extractor
- TikTok Sound Scraper
FAQ
Does it translate transcripts?
No. preferredLanguage selects an available caption or speech-language route; it does not translate text.
Are failed videos charged as transcripts?
No. The per-transcript event is charged only when transcript text is returned.
Can one run contain different platforms?
Yes. Mixed URL batches are the main purpose of this Actor.
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.