Facebook Albums Scraper⚡ avatar

Facebook Albums Scraper⚡

Pricing

from $1.50 / 1,000 album scrapeds

Go to Apify Store
Facebook Albums Scraper⚡

Facebook Albums Scraper⚡

Scrape Facebook albums from Pages, Profiles, or direct album links. Output includes: album title, item count, cover image, description, engagement (reactions/comments/shares), owner details, nested photos per album, and album comments with filter support. One row per album ✨ Facebook Albums Scraper⚡

Pricing

from $1.50 / 1,000 album scrapeds

Rating

0.0

(0)

Developer

Premium Scraper

Premium Scraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Facebook Albums Scraper ⚡ — Albums, Photos & Comments

Scrape Facebook albums from any public Facebook Page or Profile with this Facebook Albums Scraper — plus optional direct album links, per-album photo collection, and public album comments. This Facebook Albums Scraper returns one row per album with title, item count, cover image, engagement metrics, description, owner details, nested photos/comments, and exact requested-vs-returned diagnostics.

This Facebook Albums Scraper supports direct album links (/media/set/?set=a.XXX) and profile-based album discovery. max_albums_per_profile always means unique albums per profile. If you request more albums than a profile exposes publicly, the Facebook Albums Scraper stops at the available album count and does not duplicate albums to reach your requested limit.

💡 Need to scrape posts from a full profile? Use Facebook Posts Scraper — it scrapes all posts from any Facebook Page or Profile and includes full post details, comments, shares, reactions, and media. → Try Facebook Posts Scraper

🤔 Why Use This Facebook Albums Scraper?

Facebook Pages and Profiles organize photos into albums — profile pictures, cover photos, timeline photos, and custom albums. This Facebook albums scraper inventories every public album on a profile, giving you a structured catalog of album titles, photo counts, cover images, engagement data, descriptions, and optionally the individual photos and public comments within each album. Perfect for content auditing, media research, brand monitoring, and competitor analysis at scale.

⚙️ How This Facebook Albums Scraper Works

1️⃣ Provide input — enter Facebook usernames, Page/Profile URLs, or direct album links. 2️⃣ Automatic resolution — the scraper resolves usernames to profile URLs, classifies direct album links, and navigates to each profile's albums tab. 3️⃣ Album extraction — each public album is parsed: title, item count, cover image, description, type, creation date, owner details, and full engagement metrics (reactions, comments, shares). 4️⃣ Optional photo enrichment — when "Include photos per album" is on, the Facebook Albums Scraper collects up to your photos_per_album limit for every album, whether that album came from a profile, username, or direct album link. 5️⃣ Optional comment enrichment — when "Include album comments" is on, the Facebook Albums Scraper fetches public album comments with configurable filter (most_relevant, newest, all_comments). The output clearly distinguishes verified no-comment albums, fully satisfied requests, all-available-returned cases, and cases where Facebook reported more public items than were returned. 6️⃣ Flat output — every album becomes one standalone dataset row with all metadata, plus nested photos and comments. 7️⃣ Pay-per-event billing — you are charged per album, per returned photo, per returned comment, optional comment-filter surcharge, and per direct album link. The run stops gracefully when your budget cap is reached.

📦 What Data Does This Facebook Albums Scraper Extract?

Per Album

  • Album title — the display name of each album
  • Album ID — unique identifier for each album
  • Album URL — direct link to the album
  • Album item count — number of photos/videos in the album (exact integer)
  • Album item count text — display text (e.g., "234 items")
  • Album description — album description/caption text
  • Album type — wall, profile, cover, mobile, custom, etc.
  • Album creation date — when the album was created
  • Cover image URL — full-resolution album cover image
  • Thumbnail URL — album thumbnail image
  • Album owner — owner name, ID, profile URL, verification status
  • Album engagement — reaction count, comment count, share count, top reactions breakdown

Per Photo (when "Include photos per album" is on)

  • Photo ID — unique photo identifier
  • Image URL — full-resolution image URL
  • Download URL — direct image asset URL when Facebook exposes it
  • Image dimensions — width and height in pixels
  • Thumbnail URL — thumbnail image URL
  • Caption — accessibility caption text
  • Photo URL — direct link to the photo page
  • Photo details — viewer image, pagination cursor, creation story ID, focus point, and other raw-response fields when available

Per Comment (when "Include album comments" is on)

  • Comment ID — unique comment identifier
  • Message text — comment content
  • Author — name, ID, profile URL, profile picture
  • Created at — comment timestamp
  • Reaction count — number of reactions on the comment
  • Reply count — number of replies
  • Attachments — image/video URLs attached to the comment

🔗 Supported Input Sources

Source TypeExample
Page URLhttps://www.facebook.com/nike
Profile URLhttps://www.facebook.com/Cristiano
UsernameCristiano
Page with pathhttps://www.facebook.com/nike/photos
Direct album linkhttps://www.facebook.com/media/set/?set=a.322648365888377&type=3
Direct album linkhttps://www.facebook.com/media/set/?set=a.10153828194112164&type=3

Note: Direct album links require the "Include direct album" toggle to be turned on. When off, direct album links in the input are ignored with a warning.

⚙️ Input Configuration

FieldTypeDefaultDescription
usernamestring[]Facebook usernames (e.g., Cristiano, nike)
facebook_urlsURL[]Facebook Page/Profile URLs or direct album links
max_albums_per_profileinteger10Maximum unique albums to collect per profile. If the profile exposes fewer albums, the Facebook Albums Scraper stops at the available album count and reports requested vs returned values.
include_direct_albumbooleanfalseTurn on to scrape direct album links. Costs extra per direct album link. When off, direct album links in input are skipped with a clear log message.
include_album_photosbooleanfalseTurn on to scrape individual photos from each album. Costs extra per returned photo.
photos_per_albuminteger10Maximum photos per album. This limit applies to albums from usernames, profile URLs, page URLs, and direct album links.
include_album_commentsbooleanfalseTurn on to scrape public comments from each album when Facebook exposes them.
comments_limitinteger10Maximum public top-level comments per album.
comment_filterstringmost_relevantComment ordering: most_relevant, newest, or all_comments. newest and all_comments cost extra per album.

You can combine username, facebook_urls (profile URLs), and direct album links in a single run. Duplicates are skipped automatically.

📊 Output Dataset — Album Fields

Each row represents one album:

FieldTypeDescription
typestringAlways album
numberintegerSequential row number
source_inputstringOriginal input URL or username
source_typestringprofile or direct_album_link
profile_urlstringResolved profile URL (for profile sources)
album_idstringAlbum unique identifier
album_urlstringDirect URL to this album
album_titlestringAlbum display name
album_descriptionstringAlbum description/caption text
album_countintegerNumber of items in this album
album_item_count_textstringItem count display text (e.g., "234 items")
album_typestringAlbum type (wall, profile, cover, mobile, custom)
album_created_atstringAlbum creation date (ISO 8601)
cover_image_urlstringAlbum cover image URL
image_urlstringPrimary image URL
thumbnail_urlstringThumbnail image URL
album_ownerobjectOwner name, ID, URL, verification status
album_engagementobjectReaction count, comment count, share count, top reactions breakdown
album_detailsobjectAdditional album metadata
album_photosobjectNested photos (when enabled) — exact availability diagnostics + photos list
album_commentsobjectNested comments (when enabled) — selected filter, exact availability diagnostics + comments list
album_request_detailsobjectRequested vs returned album counts, whether the available count is exact, and a note that the Facebook Albums Scraper never duplicates albums to satisfy max_albums_per_profile

Nested Request Diagnostics

When album_photos or album_comments is enabled, each nested request object can include:

  • requested_count — how many items you asked for
  • returned_count — how many items were actually returned
  • available_count — how many public items Facebook reported overall
  • available_count_is_exact — whether that overall count is exact
  • available_count_for_selected_filter — how many public comments Facebook reported for the selected filter when that count is available
  • expected_return_count — how many items the actor expected to return based on the reported public count
  • availability_statusfulfilled, all_available_returned, verified_none_available, verified_extraction_issue, or partial_unverified
  • message — a human-readable explanation of whether the shortfall is expected, verified, or needs review

📋 Sample Output

{
"type": "album",
"number": 1,
"source_input": "Cristiano",
"source_type": "profile",
"profile_url": "https://www.facebook.com/Cristiano/",
"album_id": "10150095902597164",
"album_url": "https://www.facebook.com/media/set/?set=a.10150095902597164&type=3",
"album_title": "Timeline Photos",
"album_description": "Photos posted to the timeline",
"album_count": 1234,
"album_item_count_text": "1,234 items",
"album_type": "wall",
"album_created_at": "2011-01-15T00:00:00+00:00",
"cover_image_url": "https://scontent.xx.fbcdn.net/v/...",
"image_url": "https://scontent.xx.fbcdn.net/v/...",
"thumbnail_url": "https://scontent.xx.fbcdn.net/v/...",
"album_owner": {
"name": "Cristiano Ronaldo",
"id": "81221197163",
"url": "https://www.facebook.com/Cristiano",
"is_verified": true
},
"album_engagement": {
"reaction_count_total": 5432,
"comment_count_total": 234,
"share_count_total": 56,
"top_reactions_breakdown": [
{ "type": "LIKE", "count": 3000, "emoji": "👍", "label": "Like" },
{ "type": "LOVE", "count": 2000, "emoji": "❤️", "label": "Love" }
]
},
"album_details": {
"title": "Timeline Photos",
"item_count_text": "1,234 items",
"cover_image": {
"url": "https://scontent.xx.fbcdn.net/v/..."
}
},
"album_photos": {
"enabled": true,
"source_album": {
"album_id": "10150095902597164",
"album_title": "Timeline Photos",
"album_url": "https://www.facebook.com/media/set/?set=a.10150095902597164&type=3",
"album_count": 1234
},
"request": {
"requested_count": 20,
"returned_count": 15,
"available_count_signal": 1234,
"available_count": 1234,
"available_count_is_exact": true,
"expected_return_count": 20,
"availability_status": "verified_extraction_issue",
"request_fulfilled": false,
"message": "You requested 20 photos. Facebook indicates that at least 20 public photos should have been returned, but the actor only returned 15. Review the album link, and if the missing public photos are visible there, contact the developer."
},
"photos": [
{
"photo_id": "10154261928667164",
"image_url": "https://scontent.xx.fbcdn.net/v/...",
"download_url": "https://scontent.xx.fbcdn.net/v/...",
"image_width": 960,
"image_height": 720,
"thumbnail_url": "https://scontent.xx.fbcdn.net/v/...",
"caption": "May be an image of 1 person",
"photo_page_url": "https://www.facebook.com/photo.php?fbid=10154261928667164&set=a.10150095902597164&type=3",
"source_album": {
"album_id": "10150095902597164",
"album_title": "Timeline Photos",
"album_url": "https://www.facebook.com/media/set/?set=a.10150095902597164&type=3",
"album_count": 1234
}
}
]
},
"album_comments": {
"enabled": true,
"filter": "all_comments",
"filter_title": "All comments",
"filter_summary": "Facebook requests the broadest public album-comment view available.",
"request": {
"requested_count": 10,
"returned_count": 8,
"available_count_signal": 234,
"available_count": 234,
"available_count_is_exact": true,
"available_count_for_selected_filter": 234,
"available_count_for_selected_filter_is_exact": true,
"expected_return_count": 10,
"availability_status": "verified_extraction_issue",
"request_fulfilled": false,
"message": "You requested 10 comments. Facebook indicates that at least 10 public comments should have been returned, but the actor only returned 8. Review the album link, and if the missing public comments are visible there, contact the developer."
},
"comments": [
{
"comment_id": "10154261929867164",
"created_at": "2026-01-15T14:30:00+00:00",
"message_text": "Amazing photos!",
"comment_url": "https://www.facebook.com/...",
"author_name": "John Doe",
"author_id": "123456789",
"reaction_count": 5,
"reply_count": 2
}
]
},
"album_request_details": {
"source_type": "profile",
"requested_albums": 100,
"available_albums": 30,
"available_albums_is_exact": true,
"returned_albums": 30,
"request_fulfilled": false,
"unique_album_rows_only": true,
"message": "You requested 100 unique albums, but this profile only exposes 30 public albums. All 30 available albums were scraped without duplicates.",
"tip": "max_albums_per_profile controls how many unique albums are requested per profile. When the profile exposes fewer public albums, the actor stops at the available count."
}
}

🎯 Use Cases

  • 📊 Content auditing — inventory all albums on competitor pages with engagement metrics
  • 📸 Photo cataloging — extract photos from specific albums with descriptions
  • 💬 Community analysis — scrape album comments for sentiment analysis
  • 🔍 Album monitoring — track new albums and photos added to profiles
  • 🛡️ Media research — catalog album sizes, types, and cover images at scale
  • 📈 Brand asset tracking — monitor album changes on brand pages with reactions
  • 🎯 Digital archiving — build complete album catalogs with photos for research
  • 📢 Reporting — generate album inventory reports with engagement data

💡 Tips & Best Practices

  • Use usernames for cleaner input — e.g., Cristiano instead of a full URL.
  • 💰 Set max_albums_per_profile to control how many albums per profile you retrieve. The default (10) covers many use cases. If you set it higher than the actual count, the scraper stops at the actual count and shows a helpful tip.
  • 📸 Enable photos selectively — turn on "Include photos per album" only when you need individual photo URLs. It adds cost per photo.
  • 💬 Comment filtersnewest usually changes the ordering. all_comments requests the broadest public view Facebook exposes, but on some albums Facebook can still return the same comment set as most_relevant.
  • 🔗 Direct album links — paste direct album URLs to scrape specific albums without needing the profile URL. Remember to turn on the toggle.
  • 🔧 Budget cap — always set a Maximum Cost Per Run, especially when photos and comments are enabled.
  • 📌 Combine sources — mix usernames, profile URLs, and direct album links in one run.

❓ Frequently Asked Questions

Q: What happens if I request 100 albums but the profile only has 30? A: The Facebook Albums Scraper stops at 30. It does NOT create duplicate albums to reach 100. Each album row includes album_request_details showing how many albums you requested, how many were returned, whether the available count is exact, and that the actor only returns unique albums.

Q: Can this scraper download individual photos from albums? A: Yes. Turn on "Include photos per album" and set your photos_per_album limit. That limit applies to every album source in the Facebook Albums Scraper: usernames, profile/page URLs, and direct album links.

Q: Does this scraper support album comments? A: Yes. Turn on "Include album comments" and choose your comment filter (most_relevant, newest, all_comments). Comments appear nested under each album row together with exact requested-vs-returned diagnostics. If Facebook exposes no public album-comment surface, the output is marked as a verified zero-comment case. We charge a flat fee for selecting newest or all_comments.

Q: What do the comment filters actually change? A: newest usually changes the comment order and often returns a different first page than most_relevant. all_comments asks Facebook for the broadest public album-comment view it exposes, but Facebook can still return the same visible set as most_relevant on some albums. The output always records which filter was requested.

Q: How do direct album links work? A: Paste links like https://www.facebook.com/media/set/?set=a.322648365888377&type=3 into facebook_urls and turn on "Include direct album". When that toggle is off, the Facebook Albums Scraper skips direct album links and logs why they were ignored.

Q: Does this scraper require login? A: No. This scraper only accesses publicly visible album data. No login or session tokens are required.

Q: Can I scrape albums from personal profiles? A: Only public albums. If a profile restricts their albums to friends-only, those albums will not appear.

Q: What happens if an error occurs during scraping? A: The scraper is designed to exit cleanly without failing the entire run. It safely catches access errors or network timeouts, logs the issue, and moves to the next item so you never lose the data already collected.

Q: What happens when the budget limit is reached? A: The scraper stops gracefully and delivers all album rows collected so far. You are never charged beyond your set limit.

🔌 Integration Ideas

  • 📊 Export album data with engagement metrics to Google Sheets for team review.
  • 🔗 Feed album cover images and photos into a brand-asset management tool.
  • ⏰ Schedule daily runs to track new albums and photos across monitored pages.
  • 🔄 Combine with the Page Transparency Scraper for a full Facebook page audit.
  • 💾 Connect via Apify integrations to Slack, Zapier, or Make for automated album monitoring.
  • 🤖 Store album data in a database for historical trend analysis.

🔒 Privacy & Compliance

This Facebook albums scraper only accesses publicly visible album data. No authentication is required. The actor does not bypass any access controls. All internal tokens and proxy connection data are redacted from logs. Users are responsible for ensuring their use of album data complies with applicable laws and Facebook's terms of service.