Facebook Page Video Downloader avatar

Facebook Page Video Downloader

Pricing

$4.45 / 1,000 saved videos

Go to Apify Store
Facebook Page Video Downloader

Facebook Page Video Downloader

Collect public videos from Facebook Page video libraries. Export video IDs, captions, publish times, engagement counts, authors, thumbnails, and playable URLs when Facebook exposes them.

Pricing

$4.45 / 1,000 saved videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

51

Total users

12

Monthly active users

17 days ago

Last modified

Share

📥 Facebook page video downloader for public Pages

Content researchers, social teams, analysts, and developers can collect public videos from Facebook Page libraries. The Actor returns one dataset row per successful video with the submitted target, Page identity, video ID, title or caption, publish time, engagement counts, author data, thumbnail, and a direct playable link when Facebook exposes them. This gives you source-backed data for research, reporting, and repeat exports without copying each video by hand.

This also supports content research, campaign reporting, and focused Page video audits. Instead of opening a Page, scrolling through the Videos tab, and copying metadata by hand, you can run the Actor, export the dataset, schedule repeat exports, or call it from the Apify API.

📦 Facebook Page video data

What you get

Each successful row represents one public Facebook Page video. It includes source-confirmed Page identity, a stable video ID, title or description, publish time, duration, public play, reaction, and share counts, reaction details, author identity, and media links when Facebook exposes them. Fields that Facebook does not expose stay null.

The Actor saves the first eligible occurrence of each source video. If the same source item appears again through another submitted target or equivalent value, the later occurrence is ignored. The saved row describes only the first match.

Direct playable URLs can be temporary. Use videoId, target, and page when you need to join rows across repeated runs.

🚀 Run a Facebook Page video export

Run steps

  1. Open the Actor input.
  2. Add one or more public Facebook Pages in Facebook Pages.
  3. Use a Page URL such as https://www.facebook.com/facebook, a handle such as facebook, a profile ID, or a delegate Page ID such as 20531316728.
  4. Set Maximum videos to the number of successful video rows you want across the run. Leave it empty to return all available videos until the source is exhausted.
  5. Start the Actor and open the dataset.

The Actor continues through each public Page's video list until the run-wide maximum or the source is exhausted.

For a first run, keep the prefilled public Pages and the prefilled Maximum videos value. Replace them after you confirm the output shape.

⚙️ Input

Input fields

FieldTypeWhat it does
pageTargetsarray of stringsAccepts 1 to 50 public Facebook Page URLs, handles, slugs, profile IDs, or delegate Page IDs.
maxResultsintegerSets an optional run-wide maximum of public Page videos, with a minimum of 1. The prefilled value is 25. Leave it empty to return all available videos until the source is exhausted.

Example input

This input is copied from the successful current-beta run that used the hosted default input:

{
"pageTargets": [
"https://www.facebook.com/facebook",
"https://www.facebook.com/instagram",
"https://www.facebook.com/Meta",
"https://www.facebook.com/WhatsApp"
],
"maxResults": 25
}

🧾 Output

Run output link

FieldTypeWhat it does
resultsstringOpens the public dataset with the saved Page video rows.

Video row

All saved rows use one shape. Each row represents one successful public Facebook Page video. Optional values are null when Facebook does not expose them.

Only successful video rows are saved, so failed targets do not create placeholder rows.

FieldTypeWhat it does
targetstringShows the Page URL, handle, slug, profile ID, or delegate Page ID submitted for this row.
pageobjectHolds the source-confirmed Facebook Page identity.
page.idstring or nullGives the Facebook Page profile ID when available.
page.delegatePageIdstring or nullGives the Facebook delegate Page ID when available.
page.namestring or nullGives the Page name when available.
page.handlestring or nullGives the public Page handle or slug when available.
videoIdstringGives the stable Facebook video ID.
titlestring or nullGives the video title or headline when available.
descriptionstring or nullGives the video caption or description when available.
publishedAtstring or nullGives the source publish time as an ISO 8601 timestamp when available.
durationSecondsnumber or nullGives the video duration in seconds when available.
playCountinteger or nullGives the public play count when available.
reactionCountinteger or nullGives the total public reaction count when available.
shareCountinteger or nullGives the public share count when available.
reactionsobject or nullHolds the per-reaction counts when Facebook exposes them.
reactions.likeinteger or nullGives the Like count when available.
reactions.loveinteger or nullGives the Love count when available.
reactions.careinteger or nullGives the Care count when available.
reactions.hahainteger or nullGives the Haha count when available.
reactions.wowinteger or nullGives the Wow count when available.
reactions.sadinteger or nullGives the Sad count when available.
reactions.angryinteger or nullGives the Angry count when available.
authorobject or nullHolds source-exposed author or Page identity.
author.idstring or nullGives the author ID when available.
author.delegatePageIdstring or nullGives the author delegate Page ID when available.
author.namestring or nullGives the author name when available.
mediaobjectHolds playable video and thumbnail links when available.
media.playableUrlstring or nullGives the direct playable Facebook video URL when available.
media.thumbnailUrlstring or nullGives the video thumbnail URL when available.
media.qualitystring or nullGives the source media quality hint when available.
media.formatstring or nullGives the media format when available.

Example video row

This complete row is from the successful current-beta run that used the hosted default input:

{
"target": "https://www.facebook.com/WhatsApp",
"page": {
"id": "100064758844406",
"delegatePageId": "280034132055819",
"name": "WhatsApp",
"handle": "WhatsApp"
},
"videoId": "1467263565193775",
"title": "the tldr version",
"description": "the tldr version",
"publishedAt": "2026-03-30T16:31:43.000Z",
"durationSeconds": 10,
"playCount": 1243350,
"reactionCount": 7722,
"shareCount": null,
"reactions": {
"like": 7455,
"love": 179,
"care": 32,
"haha": 45,
"wow": 6,
"sad": 2,
"angry": 3
},
"author": {
"id": "100064758844406",
"delegatePageId": "280034132055819",
"name": "WhatsApp"
},
"media": {
"playableUrl": "https://video-lax3-2.xx.fbcdn.net/o1/v/t2/f2/m412/AQPSiP3myhFQSiZcDA82HWFVSy4tZBsuWPIikYtK2uRw6Lb6-TdWWcBL72IqeDW3BFlbuejxOZS8Syv3kcDDkeUgIr8fIaDDHxfOXsdcvg.mp4?_nc_cat=103&_nc_sid=8bf8fe&_nc_ht=video-lax3-2.xx.fbcdn.net&_nc_ohc=fUUYJWfEZxsQ7kNvwHS2l4U&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5GQUNFQk9PSy4uQzMuMzYwLnN2ZV9zZCIsInhwdl9hc3NldF9pZCI6MjU4ODI4NjM5ODgwNjMwMDksImFzc2V0X2FnZV9kYXlzIjoxNjUsInZpX3VzZWNhc2VfaWQiOjEwMTIyLCJkdXJhdGlvbl9zIjoxMCwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&_nc_gid=7AgqfbWaivKGT-m3Ye8LvQ&_nc_ss=70289&_nc_zt=28&oh=00_AQIdC8VNz0nMVEVVkFZ-EWZZUlMpxfDBqlpb4Vd9SZ9cUg&oe=6AAABA1F&bitrate=170448&tag=sve_sd",
"thumbnailUrl": "https://scontent-lax3-1.xx.fbcdn.net/v/t15.5256-10/660804614_3856253358008608_4227983087319331556_n.jpg?stp=dst-jpg_tt6&cstp=mx1080x1350&ctp=s1080x1350&_nc_cat=110&ccb=1-7&_nc_sid=5fad0e&_nc_ohc=EdibrXhMSaEQ7kNvwEEYcKN&_nc_oc=AdozRNmNp0shHbkUv0iEHjv8JfodMMFQgdX0ZqfOa1uqYIoKrHMad1b1uQ4XNUPu6wS73pLxwIVLZGYZA7AZ_nOZ&_nc_zt=23&_nc_ht=scontent-lax3-1.xx&_nc_gid=7AgqfbWaivKGT-m3Ye8LvQ&_nc_ss=70289&oh=00_AQLM9UpfkzCGtl7c1hElW2VtmNgt4m8KQ-Uaj5YFNLw6pg&oe=6AAAB666",
"quality": "sd",
"format": "mp4"
}
}

💳 Pricing

How charges work

This Actor uses pay-per-event pricing. One facebook-page-video event is charged for each public Page video saved to the dataset. The current price is $0.004 per saved video.

A run or target that saves no video does not create a facebook-page-video event.

🔌 Integrations

Connect your workflow

Run the Actor in Apify Console or through the Apify API. Schedule repeat exports, send run-completion webhooks, or export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.

Limits and caveats

Only public Facebook Page video libraries are in scope. Private, restricted, removed, login-only, group, Marketplace, photo, story, search-result, and direct single-post media workflows are outside this Actor's scope.

Direct playable Facebook video URLs can be temporary. Use videoId, target, and page when you need stable identifiers across repeated runs.

Facebook can expose different metadata for different Pages, videos, regions, and run times. When it does not expose a title, share count, reaction breakdown, thumbnail, or playable URL, that field is null.

❓ FAQ

Can I use a Page URL, handle, or numeric ID?

Yes. Add public Page URLs, handles, slugs, profile IDs, or delegate Page IDs. The Actor collects Page video libraries, not personal-profile feeds, groups, Marketplace listings, search results, or direct single-post media.

Can I collect all videos from a Page?

Yes. Leave Maximum videos empty to return all available videos until the source is exhausted. A set value is a maximum, so the run can return fewer videos when the source has fewer eligible rows.

What happens when the same video is found through more than one submitted value?

The Actor saves the first eligible occurrence and ignores later matches for that source video. The saved row describes only the first match and does not combine later targets or values.

Facebook does not expose the same fields for every public video. A null value means that field was not available for that row, and the Actor does not invent it.

Are playable video URLs permanent?

No. They are direct links exposed by Facebook and may expire. Use videoId, target, and page to match rows across runs, or run the Actor again for a fresh link.

Does the Actor host the downloaded video file?

No. It returns direct playable video and thumbnail URLs when Facebook exposes them. It does not mirror the source files.

Can it export private Page videos?

No. The Actor only handles public Page video libraries. Private, restricted, removed, and login-only content is outside its scope.

Is this a Facebook video search tool?

No. Add the public Page targets you want to collect. The Actor does not search Facebook by keyword.

📝 Changelog

v0.2 (10-09-2026)

  • Collect all available public Page videos when no maximum is set.
  • Include public share counts when Facebook exposes them.
  • Retry temporary Facebook access failures before reporting an error.
  • Show short progress messages while videos are saved.

v0.1

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré