Facebook Video Transcript Extractor avatar

Facebook Video Transcript Extractor

Pricing

from $10.00 / 1,000 transcript extracteds

Go to Apify Store
Facebook Video Transcript Extractor

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

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

FieldTypeDescription
postIdstringFacebook video / reel ID.
urlstringCanonical Facebook video URL.
isReelbooleanTrue for /reel/ URLs.
transcriptstringPlain-text spoken-audio transcript.
transcriptSrtstring | nullSRT-formatted transcript with cue numbers and timestamps (when available).
durationSecondsnumber | nullVideo length, when metadata is fetched.
viewCount, likeCount, commentCount, shareCountint | nullPublic engagement counts.
descriptionstring | nullPost caption.
authorName, authorIsVerifiedstring / boolean | nullAuthor identity.
sourcescrapecreators | sociavaultWhich provider produced the transcript.
statusok | no_transcribable_audio | provider_errorPer-record outcome.
notestring | nullHuman-readable reason on non-ok rows.
scrapedAtISO 8601Extraction 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

EventPrice
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

  1. Each URL is normalized to a canonical Facebook video URL + post ID.
  2. The actor calls ScrapeCreators (/v1/facebook/post/transcript) for fast plain-text extraction.
  3. 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.
  4. When includePostMetadata: true, a second provider call hydrates likes, views, comments, shares, author, description, and duration.
  5. 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.