Facebook Video Posts  Scraper avatar

Facebook Video Posts Scraper

Pricing

$15.00/month + usage

Go to Apify Store
Facebook Video Posts  Scraper

Facebook Video Posts Scraper

Unlock Facebook video data effortlessly! Our login-free, high-speed scraper targets page timelines to extract video posts, views, transcripts, and exact reaction counts. Powered by robust GraphQL and residential proxies to beat blocks, it is the ultimate tool for seamless Facebook data mining.

Pricing

$15.00/month + usage

Rating

5.0

(1)

Developer

Neuro Scraper

Neuro Scraper

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

0

Monthly active users

16 hours ago

Last modified

Share

Facebook Video Scraper

Extract video posts, comments, and engagement statistics from any public Facebook page without login. This tool gathers deep insights including exact reaction counts (Likes, Loves, Cares, etc.), video view counts, top comments, and video URLs, delivering structured data perfect for analysis, archiving, or monitoring.


What is Facebook Video Scraper?

Facebook Video Scraper is a robust data extraction tool designed for marketers, researchers, and developers who need detailed information from public Facebook pages. Unlike standard scrapers, it operates without requiring a Facebook account login, ensuring higher reliability and avoiding account ban risks.

The scraper intelligently utilizes Facebook's internal REST/GraphQL API to paginate through a page's feed efficiently. It automatically handles different media types (videos), extracting all relevant metadata, captions, and even video viewer statistics where available. It runs seamlessly on the Apify platform using residential proxies to maintain access.

What Facebook data is publicly available to scrape?

Data CategoryPublicly Available
Page Posts (Text, Date, ID)Yes
Media (Videos)Yes
Reaction Counts (Like, Love, Haha, etc.)Yes
Share & Comment CountsYes
Top Comments (Author, Text, Likes)Yes
Video Views & Live ViewersYes
Paid Partnership TagsYes
Private / Friends-Only PostsNo
Full Follower/Friend ListsNo
User Contact InformationNo

What data can I extract with Facebook Video Scraper?

Identity & Ownership Fields

Field NameDescription
facebookUrlThe URL of the scraped Facebook page.
pageNameThe real display name of the page.
facebookIdThe unique numeric ID of the Facebook page owner.
postIdThe unique identifier for the post.
urlThe direct permalink URL to the specific post.
userObject containing id, name, profileUrl, and profilePic of the post author.
collaboratorsA list of collaborator names if the post is a joint post.

Engagement & Media Metric Fields

Field NameDescription
likesTotal number of generic likes on the post.
commentsTotal number of comments on the post.
sharesTotal number of shares.
reactionLikeCountSpecific count of 'Like' reactions.
reactionLoveCountSpecific count of 'Love' reactions.
reactionCareCountSpecific count of 'Care' reactions.
reactionHahaCountSpecific count of 'Haha' reactions.
reactionWowCountSpecific count of 'Wow' reactions.
reactionSadCountSpecific count of 'Sad' reactions.
reactionAngryCountSpecific count of 'Angry' reactions.
topReactionsCountNumber of different reaction types present on the post.
viewsCountVideo view count (applicable only to video posts).
videoPostViewCountPost view count for video items.
liveViewerCountCurrent live viewer count for live videos.

Content, Media & Comments Fields

Field NameDescription
timeISO 8601 formatted string of the post creation time.
timestampUnix timestamp of the post creation.
textThe full text content/caption of the post.
paidPartnershipBoolean indicating if the post is marked as a paid partnership.
pageAdLibraryAd library information if available.
topCommentsArray of top comments containing author, text, likesCount, date, etc.
mediaArray containing media objects (videos) attached to the post.
feedbackIdInternal Facebook feedback node ID used for tracking.

Media-Type Specific Behavior

  • Video Posts: Returns a single Video object inside the media field containing the raw video metadata, thumbnail, and optionally a transcript. The isVideo field will be set to true, and fields like viewsCount and videoPostViewCount will be populated.

How to configure Facebook Video Scraper

Configuration Options

ParameterTypeDefaultDescription
startUrlsArray[{"url": "..."}]List of public Facebook Page URLs you wish to scrape.
maxItemsInteger20Maximum number of posts to collect per page.
includeTranscriptBooleanfalseIf true, fetches video captions when available.
proxyConfigurationObjectRESIDENTIALProxy settings (Residential Apify Proxy highly recommended).

Example Configuration

{
"startUrls": [
{ "url": "https://www.facebook.com/virat.kohli/" }
],
"maxItems": 50,
"includeTranscript": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

How to use Facebook Video Scraper

  1. Sign up/Log in to your Apify account.
  2. Navigate to this actor's page on the Apify Store and click "Try for free".
  3. Set the Target: In the Input configuration, enter the URL of the Facebook page you want to scrape in the startUrls field (e.g., https://www.facebook.com/zuck).
  4. Set Limits: Specify the maxItems to dictate how many posts you want to extract.
  5. Run: Click the "Start" button. The actor will launch, utilizing residential proxies to securely fetch the data.
  6. Download: Once the run completes, navigate to the "Storage" tab. Your data is available in the default dataset (and an additional RESULT dataset) in formats like JSON, CSV, or Excel.

Output Format

The actor outputs data in JSON format, creating one object per scraped post.

Example Output — Video Post

{
"facebookUrl": "https://www.facebook.com/virat.kohli/",
"postId": "987654321098765",
"pageName": "Virat Kohli",
"url": "https://www.facebook.com/virat.kohli/posts/987654321098765",
"time": "2023-10-14T08:00:00.000Z",
"timestamp": 1697270400,
"user": {
"id": "987654321",
"name": "Virat Kohli",
"profileUrl": "https://www.facebook.com/987654321"
},
"text": "Training session highlights.",
"likes": 200000,
"comments": 5000,
"shares": 2000,
"isVideo": true,
"viewsCount": 1500000,
"videoPostViewCount": 1400000,
"liveViewerCount": 0,
"media": [
{
"__typename": "Video",
"id": "5544332211",
"thumbnail": "https://scontent.xx.fbcdn.net/v/...jpg",
"captions_url": null,
"transcript": null
}
],
"topComments": []
}

Field Reference (Complete)

Field NameTypeApplies ToDescription
facebookUrlStringAllThe source URL provided in the input.
postIdStringAllThe unique ID of the post.
pageNameStringAllReal display name of the page.
urlStringAllDirect permalink to the post.
timeStringAllISO 8601 creation time.
timestampIntegerAllUnix creation time.
userObjectAllDetails of the post author (id, name, pic).
collaboratorsArrayAllNames of any collaborating pages.
textStringAllPost caption or body text.
likesIntegerAllTotal like count.
commentsIntegerAllTotal comment count.
sharesIntegerAllTotal share count.
topReactionsCountIntegerAllNumber of unique reaction types on the post.
mediaArrayAllMedia attachments (Photos or Videos).
feedbackIdStringAllInternal Facebook feedback ID.
reactionLikeCountIntegerAllCount of 'Like' reactions.
reactionLoveCountIntegerAllCount of 'Love' reactions.
reactionCareCountIntegerAllCount of 'Care' reactions.
reactionHahaCountIntegerAllCount of 'Haha' reactions.
reactionWowCountIntegerAllCount of 'Wow' reactions.
reactionSadCountIntegerAllCount of 'Sad' reactions.
reactionAngryCountIntegerAllCount of 'Angry' reactions.
paidPartnershipBooleanAllWhether the post is sponsored/paid partnership.
topCommentsArrayAllThe top comments visible on the post.
topLevelUrlStringAllBase URL constructed from owner ID and post ID.
facebookIdStringAllThe numeric ID of the page owner.
inputUrlStringAllAlias for the input URL.
isVideoBooleanVideo PostsTrue if the post contains a video.
viewsCountIntegerVideo PostsTotal video views.
videoPostViewCountIntegerVideo PostsPost-specific video views.
liveViewerCountIntegerVideo PostsActive live viewers (if currently live).
pageAdLibraryObjectAdsAd library communication data (if applicable).

How does it work?

  • Painless Initialization: The scraper starts by safely fetching the page's HTML to automatically detect necessary identifiers like the page ID and authentication tokens, without requiring cookies from a logged-in user.
  • REST/GraphQL API: It targets Facebook's internal, publicly exposed GraphQL endpoints to fetch timeline feed units incrementally.
  • Efficient Pagination: It extracts pages of posts consistently. For every page iteration, it pulls all available posts on that page before seamlessly continuing to the next.
  • Smart Data Structuring: It deeply traverses Facebook's complex JSON payload to unify disparate fields (like finding reaction counts inside deep comet_sections) into a flat, predictable JSON output.

How does Facebook Video Scraper differ from the official Graph API?

FeatureOfficial Graph APIFacebook Video Scraper
Access ScopeHeavily restricted, requires approvals.Accesses any public page data directly.
Account RequirementRequires a Developer account & API keys.None. Runs entirely anonymously.
Setup TimeDays/Weeks (App approval process).Instant.
Media Type SupportLimited by permissions.Full support for Videos and Captions.
Fields ReturnedOften omits exact reaction breakdown.Comprehensive breakdown of all reactions.

Rate Limits & Error Handling

To ensure longevity and reliability, this actor is designed to use Apify Residential Proxies.

  • The script automatically continues paginating until it hits the maxItems limit or runs out of posts.
  • If it encounters missing parameters or network blocks, it will safely skip to the next URL in your list or exit gracefully, ensuring whatever data was already collected is saved to your dataset.

This scraper extracts exclusively publicly available data accessible to any unauthenticated user navigating the web. It does not bypass logins, CAPTCHAs, or scrape private user data. It is your responsibility to ensure that your use of the extracted data complies with all applicable local laws, regulations, and terms of service. This is not legal advice.

Frequently Asked Questions

Does it require a Facebook account? No, it runs entirely anonymously without needing any login cookies.

How many posts can I scrape? You can set maxItems to any number. It will scrape until it reaches that limit or until the page has no more public posts available.

Does it handle video posts? Yes. This scraper specifically filters for and extracts only video posts along with their statistics.

Can I scrape private pages or groups? No. This tool only accesses data from public Facebook Pages that are visible without a login.

What Python version is required? The actor runs on Python 3.11 within the Apify Docker container.

What happens when Facebook changes its API? This scraper relies on internal GraphQL structures. If Facebook makes significant changes, the scraper may require updates. Apify actors are easy to update once patched.

Can I scrape multiple pages at once? Yes! Just add multiple URLs to the startUrls array in the input configuration.

How are the results saved? Results are saved to the default dataset and a named dataset called RESULT. They can be downloaded in JSON, CSV, Excel, XML, or HTML formats.

Troubleshooting

  • Empty results or "Failed to initialize": Ensure the URL is a public Facebook Page (not a personal profile locked to public viewing). Double-check that your proxy settings are configured to use Residential proxies.
  • Missing Posts: Facebook sometimes restricts chronological pagination for unauthenticated users after a certain depth. Using high-quality residential proxies mitigates this.
  • 429 rate limiting: If you scrape too aggressively, Facebook may temporarily block the IP. Ensure you are utilizing a pool of Residential proxies.

Changelog / Version History

  • v1.0.0: Initial release. Added async support, comprehensive proxy integration, and dynamic GraphQL pagination.