fb.watch short links are all supported.
Request
Response
transcript is a plain string with newlines between spoken lines — there is no per-line timing in the Facebook response and no title field. videoUrls is included when the upstream exposes a downloadable video URL (Facebook usually provides both sd and hd); it is omitted when neither is available.
Supported URL formats
| Format | Example |
|---|---|
| Standard video post | https://www.facebook.com/{user}/videos/{id}/ |
| Reels | https://www.facebook.com/reel/<id> |
| Watch | https://www.facebook.com/watch/?v=<id> |
| Posts containing video | https://www.facebook.com/{user}/posts/<id> |
fb.watch short link | https://fb.watch/<code>/ |
| Live replay | Completed Live videos served at the standard /videos/<id>/ URL |
facebook.com/watch Watch home page (no ?v=) is rejected with 400 Invalid URL — the validator requires a v query parameter.
FAQ
Do private or friends-only Facebook videos work?
Do private or friends-only Facebook videos work?
No. Only publicly viewable videos can be transcribed.
What about videos in private Groups?
What about videos in private Groups?
Group-only videos aren’t supported because the API can’t authenticate as a group member.
Does it work on Facebook Live in progress?
Does it work on Facebook Live in progress?
No — only completed Live replays. Live-in-progress streams don’t have stable transcripts to fetch.
What if the video has no captions?
What if the video has no captions?
If a video URL is available but no captions, you’ll get a 200 with
transcript: "" and a videoUrls object — and you’ll be charged 1 credit. If the upstream has neither captions nor a video URL, you’ll get 404 No transcript available for this video and you won’t be charged.