Facebook Video Transcript Extractor
Pricing
from $10.00 / 1,000 transcript extracteds
Facebook Video Transcript Extractor
AI transcript extractor for Facebook videos and Reels by URL — plain text + SRT, no cookies, no login. MCP/API-ready.
Pricing
from $10.00 / 1,000 transcript extracteds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Extract AI transcripts from public Facebook videos and Reels by URL — plain text and SRT — without cookies, login, or session tokens. Designed as a first-class MCP tool: paste a video URL, get a clean transcript and (optionally) post metadata back as structured JSON.
What you get per video
| Field | Type | Description |
|---|---|---|
postId | string | Facebook video / reel ID. |
url | string | Canonical Facebook video URL. |
isReel | boolean | True for /reel/ URLs. |
transcript | string | Plain-text spoken-audio transcript. |
transcriptSrt | string | null | SRT-formatted transcript with cue numbers and timestamps (when available). |
durationSeconds | number | null | Video length, when metadata is fetched. |
viewCount, likeCount, commentCount, shareCount | int | null | Public engagement counts. |
description | string | null | Post caption. |
authorName, authorIsVerified | string / boolean | null | Author identity. |
source | scrapecreators | sociavault | Which provider produced the transcript. |
status | ok | no_transcribable_audio | provider_error | Per-record outcome. |
note | string | null | Human-readable reason on non-ok rows. |
scrapedAt | ISO 8601 | Extraction timestamp. |
Why use this actor
- MCP-ready. One verb, one input (URLs), one structured output. Perfect for Claude / GPT / Gemini agents wiring "watch a Facebook video" into a workflow.
- Both formats. Plain text for prompts and embeddings; SRT with timestamps for subtitle tooling. You don't pick — you get whichever the responding provider returned.
- No cookies, no login. HTTP-only against two cookieless providers (ScrapeCreators + SociaVault), with automatic fallback if one is rate-limited.
- Predictable PPE pricing. $0.01 per transcript successfully extracted. Failed and no-audio rows are recorded but never billed.
- Honest results. Photos, long videos (>~2 min), and posts without speech come back with a clear
status: "no_transcribable_audio"note instead of vanishing.
Pricing
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Transcript extracted | $0.01 per video |
Failed videos and no-speech videos are NOT charged. Optional post-metadata enrichment is included — no extra Apify charge.
Input
{// 1+ Facebook video / reel URLs."postUrls": ["https://www.facebook.com/reel/1535656380759655","https://www.facebook.com/watch/?v=1234567890"],// Optional: pass URL objects when chaining from another actor."startUrls": [{ "url": "https://fb.watch/abc123XY" }],// Optional cap on charged transcripts per run."maxTranscripts": 100,// Optional: also fetch likes / views / author / description."includePostMetadata": false,// Optional: metadata-only language hint stored on each record."language": "auto"}
Supported URL formats:
https://www.facebook.com/reel/<id>https://www.facebook.com/watch/?v=<id>https://www.facebook.com/<page>/videos/<id>https://www.facebook.com/video.php?v=<id>https://www.facebook.com/share/v/<id>/and/share/r/<id>/https://fb.watch/<slug>- Mobile (
m.facebook.com) variants of all of the above.
Output
Each transcribed video produces one row in the default dataset. Example:
{"postId": "1535656380759655","url": "https://www.facebook.com/reel/1535656380759655","isReel": true,"transcript": "Air fryer chocolate cake. Throw one ripe banana into a bowl...","transcriptSrt": "1\n00:00:00,000 --> 00:00:02,561\nAir fryer chocolate cake...\n\n2\n00:00:02,561 --> 00:00:05,121\nThrow one ripe banana into a bowl...","durationSeconds": 25,"viewCount": 316000,"likeCount": 8784,"authorName": "Some Page","source": "scrapecreators","status": "ok","scrapedAt": "2026-06-27T01:23:45.000Z"}
A final run summary is written to the key-value store under OUTPUT:
{"_summary": true,"requested": 10,"valid": 9,"processed": 9,"transcribed": 8,"noAudio": 1,"failed": 0,"charged": 8,"billedUsd": 0.08}
Use cases
- AI content pipelines — feed Facebook video transcripts into Claude / GPT for summarization, classification, sentiment, content moderation, or RAG ingestion.
- Creator research — pull transcripts of competitor Reels at scale to map content themes, hooks, and CTAs.
- Accessibility & repurposing — convert spoken audio into captions, blog posts, or short-form clips.
- Brand monitoring — track what's being said in user-generated videos that mention your brand.
- Newsroom workflows — quickly transcribe public-figure Facebook Reels for quoting and fact-checking.
How it works
- Each URL is normalized to a canonical Facebook video URL + post ID.
- The actor calls ScrapeCreators (
/v1/facebook/post/transcript) for fast plain-text extraction. - If ScrapeCreators returns no transcript or rate-limits, the actor falls back to SociaVault (
/v1/scrape/facebook/post/transcript), which returns SRT-formatted transcripts with timestamps. - When
includePostMetadata: true, a second provider call hydrates likes, views, comments, shares, author, description, and duration. - One PPE event fires per successful transcript; failed or no-speech videos are recorded but never billed.
Provider transcription is currently capped at videos under ~2 minutes. Longer videos return status: "no_transcribable_audio" with a clear note rather than failing the whole run.
MCP usage
Hosted at apify--facebook-video-transcript-extractor on Apify MCP. Typical agent call:
{"tool": "apify--facebook-video-transcript-extractor","input": {"postUrls": ["https://www.facebook.com/reel/1535656380759655"],"includePostMetadata": true}}
Returns a dataset row with transcript, transcriptSrt, and status. Errors come back with isError: true and a fix hint — no silent failures.
Limits & honest disclosure
- Provider transcript is capped at videos under ~2 minutes.
- Only public videos are supported. Private posts, group-only posts, and login-walled content cannot be transcribed.
- This actor scrapes data that is publicly accessible on Facebook through third-party providers; you are responsible for compliance with Facebook's Terms of Service and applicable law (GDPR, CCPA, etc.) in your jurisdiction.
FAQ
Why two providers? Single-provider scrapers break when one provider has an outage or rate limit. We try the cheap, fast one first and fall back automatically — that's how we get to 99%+ run reliability without you paying for double calls.
Why pay $0.01 per video when the cheapest competitor charges $0.005? Because that competitor (and most others in this niche) ships sub-50% success rates. We refund failures by not billing them, and our provider-backed architecture is bot-proof. Math works out cheaper at run-scale.
Can I get translations? No — the providers return the spoken language. Pipe the output into a translation step in your own pipeline.
What if my video is longer than 2 minutes? It comes back with status: "no_transcribable_audio" and no charge. Pre-filter for shorter videos in your pipeline.
Does this work with Facebook live videos? Only after they finish and become available as a regular video post.
Related actors
instagram-transcript-scraper— same pattern for Instagram Reels.youtube-transcript-extractor— bulk YouTube transcripts.facebook-posts-scraper— scrape full Facebook page post feeds (not just transcripts).