tik-down
API
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 URL
401Video is private or requires login — pass fb_cookies
500Failed to initialize yt-dlp
502Failed to fetch video metadata