Facebook Video & Reel Transcript Scraper — Text, SRT & VTT
Pricing
from $0.80 / 1,000 second of media transcribeds
Facebook Video & Reel Transcript Scraper — Text, SRT & VTT
Facebook video and Reel transcripts. Paste any facebook.com or fb.watch link and get full text, timestamped segments, word-level timings, SRT and VTT files, HD video and thumbnail URLs, plus post metadata. Whisper runs inside the Actor — no API key. 99+ languages. Billed per second.
Pricing
from $0.80 / 1,000 second of media transcribeds
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Facebook Video & Reel Transcript Scraper

Paste any Facebook video, Reel or Watch link and get the words back. Full transcript, timestamped segments, optional word-level timings, ready-to-save SRT and VTT subtitle files, the HD video URL, the thumbnail and the post's metadata. Whisper runs inside the Actor, so there is no API key to obtain and no proxy of your own to configure.
| Input you paste | What you get back |
|---|---|
facebook.com/reel/<id> | one row: transcript, segments, SRT/VTT, video + thumbnail URL, metadata |
facebook.com/watch/?v=<id> | same |
facebook.com/<page>/videos/<id> | same |
fb.watch/<code> | same |
Billed per second of audio, not per rounded-up minute. A 20-second Reel is billed 20 seconds.
How it works

- Read the post. Every link is checked as a Facebook URL first — anything else is named and skipped rather than failing halfway through. The post is then read for its title, author, publish date, view count, thumbnail and the list of available video renditions.
- Pull the audio. Only the audio track is downloaded; the video itself is never stored. Each attempt tries a direct connection first and falls back to the Actor's own residential pool where Facebook blocks datacenter IPs, so no proxy quota of yours is spent.
- Transcribe. faster-whisper runs locally on the audio, VAD-filtered, and returns the language, the segments and — when you ask for them — per-word timings.
- Package. Segments become SRT and VTT files, saved to the run's key-value store and linked from the row.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
videoUrls | array | — (required) | Facebook video, Reel or Watch URLs, one per line |
language | string | auto-detect | ISO 639-1 code (en, es, pt, de, …) to force a language |
model | string | base | tiny (fastest) · base (fast, accurate on clear speech) · small (most accurate) |
translateToEnglish | boolean | false | Return an English translation instead of the original language |
wordTimestamps | boolean | false | Add per-word start/end/confidence inside every segment |
maxMinutesPerItem | integer | 120 | Per-video cap; longer videos are transcribed up to the cap |
cookies | string (secret) | — | Netscape cookies.txt, only for private or age-gated posts |
proxyConfiguration | object | none needed | The Actor brings its own pool; set this only to add a fallback |
Example input
{"videoUrls": ["https://www.facebook.com/reel/636216875539019"],"model": "base","wordTimestamps": true}
Output schema
One row per video. Real row from the run above, trimmed:
{"url": "https://www.facebook.com/reel/636216875539019","title": "The viral spider video explained! 🤯","uploader": "Steven Bartlett","publishedAt": "2025-07-17","viewCount": 3263423,"durationSeconds": 60.8,"transcribedSeconds": 60.8,"billedSeconds": 61,"language": "en","languageProbability": 0.9962,"wordCount": 259,"text": "Have you ever seen that video of the ant in the pen? …","segments": [{ "start": 0.0, "end": 4.46, "text": "Have you ever seen that video of the ant in the pen?","words": [ { "start": 0.0, "end": 0.26, "word": "Have", "probability": 0.84 } ] }],"srt": "1\n00:00:00,000 --> 00:00:04,460\n…","vtt": "WEBVTT\n\n00:00:00.000 --> 00:00:04.460\n…","srtFileUrl": "https://api.apify.com/v2/key-value-stores/…/001-the-viral-spider.srt","vttFileUrl": "https://api.apify.com/v2/key-value-stores/…/001-the-viral-spider.vtt","videoUrl": "https://video.fsjj1-1.fna.fbcdn.net/o1/v/t2/f2/m366/…","videoHeight": 1920,"thumbnailUrl": "https://scontent.fsjj1-1.fna.fbcdn.net/v/t15.5256-10/…","error": null}
Key output fields
| Field | Description |
|---|---|
text | Full transcript as one string |
segments | [{ start, end, text }]; each also carries words when wordTimestamps is on |
srt / vtt | Subtitle strings, ready to save |
srtFileUrl / vttFileUrl | Direct download links to the stored .srt / .vtt |
videoUrl / videoHeight | Highest-resolution video link Facebook listed, and its pixel height |
thumbnailUrl | Post thumbnail |
title, uploader, publishedAt, viewCount | Post metadata |
durationSeconds / transcribedSeconds | Full length vs. what was transcribed after the cap |
billedSeconds | Seconds charged for this video |
language / languageProbability | Detected language and confidence |
error | null on success; failed videos keep the reason and are never charged |
Pricing
| Event | When | Rate |
|---|---|---|
| Actor start | Once per run, per GB of run memory | $0.005 |
| Second of media transcribed | Per second of audio actually transcribed | $0.0008 |
$0.0008/second works out to $0.048 per minute. A 20-second Reel costs about $0.026 all-in at the default 2 GB. Failed and skipped videos are never charged, and maxMinutesPerItem plus the run's maximum-cost setting bound the spend.
What makes this richer than the competition
| Capability | Typical Facebook transcript Actor | This Actor |
|---|---|---|
| Billing granularity | per video or per rounded-up minute | per second of audio |
| Word-level timings | sometimes, extra cost | included, one toggle |
| SRT + VTT files | text only, or SRT only | both, as strings and stored files |
| HD video URL | rarely | included, with pixel height |
| API key needed | usually yes | no — Whisper runs in the Actor |
| Proxy quota needed | usually yours | no — the Actor brings its own pool |
| Languages | varies | 99+, auto-detected |
Notes & limitations
- Private, friends-only and age-gated posts need cookies. Public Reels and page videos work without them. Export a
cookies.txtfrom a browser where the post opens normally and paste it into thecookiesfield. videoUrlandthumbnailUrlare signed CDN links and expire within hours. Download them during or shortly after the run; they are not durable storage.- Live videos have to finish first. A stream that is still live or being processed cannot be transcribed; the row says so and nothing is charged. Retry once the recording is published.
- Longer videos need more run memory. Whisper decodes at roughly 2-3× realtime on the 2 GB default; for anything over about 20 minutes, raise the run's memory so it also gets more CPU.
- The model is clamped to the memory it fits in.
smallneeds 2 GB; below that the Actor drops to a model that fits and says so in the log rather than being killed mid-decode.
🤖 For AI Agents & LLM Apps
- Purpose: Facebook video/Reel → transcript, subtitles and post metadata. One dataset row per input URL.
- Minimal tested input:
{"videoUrls": ["https://www.facebook.com/reel/636216875539019"]} - Output fields (flat):
url,inputUrl,platform,sourceType,title,uploader,publishedAt,viewCount,thumbnailUrl,videoUrl,videoHeight,durationSeconds,transcribedSeconds,billedSeconds,billedMinutes,language,languageProbability,task,model,engine,wordTimestamps,text,wordCount,segments,srt,vtt,srtFileUrl,vttFileUrl,error. - Nested:
segments[] = {start, end, text, words?};words[] = {start, end, word, probability}. - Billing:
media-second-transcribed×billedSeconds, $0.0008 each, plusapify-actor-startat $0.005 per GB of run memory. Bound spend withmaxMinutesPerItemand the run's maximum cost. - Behaviours worth knowing: non-Facebook URLs are skipped with a logged reason rather than failing the run; a video that cannot be fetched produces a row with
errorset andtext: nulland is not charged; the run stops cleanly and explains itself if it would otherwise hit its timeout. - For other platforms (YouTube, TikTok, Instagram, X, podcasts, direct files) use
memo23/video-audio-transcriber.
⚠️ Disclaimer
This Actor collects only data that is publicly accessible without logging in. It does not bypass authentication, and it does not collect private or personal data beyond what the post itself displays publicly. You are responsible for how you use the output, including compliance with Facebook's terms, applicable copyright, and data-protection law such as GDPR and CCPA. Transcripts are derived works of the source video — check the rights before republishing. Use for research, accessibility, subtitling and content analysis.
SEO Keywords
facebook transcript, facebook video to text, facebook reel transcript, facebook video transcription, facebook subtitle generator, facebook srt, facebook vtt, facebook watch transcript, fb.watch transcript, facebook speech to text, facebook video captions, facebook reel to text, whisper facebook, facebook video downloader url, facebook video metadata, transcribe facebook video, facebook accessibility captions, facebook content analysis