POST/facebook
Fetches metadata and download URLs for a single Facebook video. Returns a single JSON object (not streamed).
Request Body
urequiredFull Facebook video URL (facebook.com or fb.watch)fb_cookiesoptionalRaw cookie header string copied from a logged-in browser session (e.g. c_user=...; xs=...; datr=...). Required only for private or restricted videos.Example Request
POST /facebook
Content-Type: application/json
{
"u": "https://www.facebook.com/watch/?v=1234567890",
"fb_cookies": "c_user=100012345; xs=1%3Aabc123..."
}Response
Returns the raw yt-dlp JSON metadata object for the video, including formats with direct download URLs.
{"id":"1234567890","title":"...","webpage_url":"https://www.facebook.com/watch/?v=1234567890","thumbnail":"https://...","duration":42,"formats":[...],...}Consuming
const res = await fetch('/facebook', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ u: 'https://www.facebook.com/watch/?v=1234567890' })
});
const data = await res.json();
console.log(data.title, data.formats);Error Responses
400Missing u or invalid/non-Facebook URL401Video is private or requires login — pass fb_cookies500Failed to initialize yt-dlp502Failed to fetch video metadata