Facebook Transcript API

Transcribe Facebook video via REST API

POST any public Facebook video URL — Reels, video posts, Watch shows, or Live replays — and receive timestamped JSON. Purpose-built for long-form content workflows where video posts routinely run 30+ minutes.

JSON response · Reels, Watch & Live replays · Long-form supported · No scraping

Three steps to a transcript

1
Create an API key Generate a key in your dashboard. Free credits included.
2
POST a Facebook video URL Any public video, Reel, Watch URL, or Live replay.
3
Receive JSON Full transcript plus timed segments.

POST /api/facebook/transcript

Base URL: https://api.transcriptmagic.com. Authenticate with a Bearer token in the Authorization header.

cURL
curl -X POST https://api.transcriptmagic.com/api/facebook/transcript \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.facebook.com/natgeo/videos/1234567890123456/"}'
Python
import requests

response = requests.post(
    "https://api.transcriptmagic.com/api/facebook/transcript",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"url": "https://www.facebook.com/natgeo/videos/1234567890123456/"},
)

data = response.json()
print(data["transcript"])
JavaScript
const response = await fetch("https://api.transcriptmagic.com/api/facebook/transcript", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ url: "https://www.facebook.com/natgeo/videos/1234567890123456/" }),
});

const data = await response.json();
console.log(data.transcript);

What you get back

A JSON object sized for long-form content — a typical Watch show returns dozens to hundreds of segments depending on duration.

200 OK
{
  "title": "Inside the Deep Ocean | NatGeo Explorer Classics",
  "transcript": "Welcome back to Explorer. Tonight we're heading three thousand meters below the surface of the Pacific...",
  "segments": [
    {
      "text": "Welcome back to Explorer.",
      "startMs": "2400",
      "endMs": "4120",
      "startTimeText": "0:02"
    },
    {
      "text": "Tonight we're heading three thousand meters below the surface of the Pacific.",
      "startMs": "4120",
      "endMs": "9480",
      "startTimeText": "0:04"
    }
  ],
  "credits": 554
}
title Video title when Facebook exposes one
transcript Full spoken content joined as a single string
segments Line-level array with startMs, endMs, startTimeText
credits Your remaining credit balance after this call

What the API handles

Video posts

Standard videos on Pages, profiles, and Groups — from 30-second clips to multi-hour documentaries. Any public post URL works.

Facebook Reels

Short-form vertical content at facebook.com/reel/…. Great for hook analysis and cross-posting to Instagram or TikTok.

Watch videos

Long-form content from Facebook's dedicated video platform — shows, series, and creator originals. Episode-length transcription in one call.

Live replays

Completed Live sessions once they become regular posts. Ideal for repurposing webinars, interviews, and community Q&As into written content.

One credit per call

Every successful API request uses 1 credit — whether it's a 15-second Reel or a 3-hour Live replay. Monthly credits roll over, cancel anytime.

Free
$0 /month
10 credits/month
  • SRT exports
  • All platforms supported

No credit card required

Pro
$19 /month
3000 credits/month
Choose your credits:
  • All Plus features
  • Batch processing

Credits rollover. Cancel anytime

Processing enterprise-scale archives? Email [email protected] for custom pricing.

What developers build with it

Live replay repurposing

Turn a 90-minute Facebook Live into a blog post, tweet thread, email newsletter, and YouTube description — all from one transcript.

Show & series indexing

Make Facebook Watch catalogs searchable by the actual spoken content, not just titles and descriptions.

Community management

Transcribe Group Q&As, member live streams, and community events so moderators can skim text instead of rewatching video.

Media & publisher archives

Long-form news and documentary content gets transcribed to feed archives, quote-extraction pipelines, and SEO summary pages.

Customer-facing support

Transcribe brand Live sessions so support agents can answer questions that surfaced on stream without rewatching the whole session.

Accessibility workflows

Generate caption files for teams that publish to Facebook and other platforms simultaneously — same transcript powers every downstream caption.

Questions developers ask

Which Facebook URLs does the API accept?

Video posts (facebook.com/<page>/videos/<id>/), Reels (facebook.com/reel/<id>/), Watch URLs (facebook.com/watch?v=<id>), and share links generated from the three-dot menu. The API resolves the variant server-side.

Does the API work on Facebook Live replays?

Yes — once the Live session ends and the replay becomes a regular video post, it's transcribable. Actively streaming Live sessions aren't supported; wait for the replay to publish.

What about private or friends-only videos?

Only public videos are reachable. Friends-only posts, private group videos, and personal-profile videos with restricted audiences aren't supported because the upstream data isn't available to the API.

How long a video can the API handle?

Long-form content works fine — documentaries, multi-hour Live replays, full-length shows from Facebook Watch. The response returns segments for the entire video. Very long videos (2+ hours) may take slightly longer to process.

Are Reels and regular video posts billed differently?

No. Every successful call is 1 credit, regardless of video length or format. A 15-second Reel and a 2-hour Live replay both cost the same.

Does the API handle non-English Facebook videos?

Yes. Facebook is global and the API returns whichever language the creator spoke. For multilingual content pipelines, run the transcript through an LLM translation step after fetching.

Other platforms & references

Dashboard Pricing Get Extension