# Changelog of Facebook Video Scraper (`fertech/facebook-video-scraper`) Actor

- **URL**: https://apify.com/fertech/facebook-video-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/fertech/facebook-video-scraper.md

## Changelog

### 0.1 — 2026-09-24

First release.

- Scrapes Facebook videos and reels by URL over plain HTTP — no login,
  no browser.
- Returns **exact** play, view, reaction and comment counts. The page shows
  one rounded figure and labels it "views"; that figure is the play count.
  The real view count is not shown on the page at all.
- Accepts every URL shape Facebook produces: `/reel/<id>`, `/watch/?v=<id>`,
  `/videos/<id>`, `/<page>/videos/<slug>/<id>/` (what the app's "Copy link"
  button produces), `facebook.com/share/r/...`, `fb.watch/...` and
  `story.php` links from any Facebook host
  (`m.`, `web.`, `mbasic.`, `touch.`).
- Reports the reaction-type breakdown, not just the total.
- Absent counts are reported as `null` rather than `0`.
- Retries automatically when Facebook rate-limits a request; an exit IP that
  keeps failing is dropped and the session rotated. Retries are not charged.
- A share link whose redirect cannot be read after two attempts is reported
  as `unresolved-link` (retried: no) rather than fetched anyway. The page it
  redirects to carries no exact-count payload, so fetching it could only
  burn residential bandwidth and end in a misleading `blocked` record.
- Every submitted URL is charged once, whatever the outcome — delivered,
  `not-found`, `invalid-url`, `unresolved-link`, `unsupported-page`,
  `blocked` or `network`. An error record is billed the same as a delivered
  one, because the request was made and the bandwidth spent. Retries and
  duplicates are not charged on top, and a charge never happens without its
  record.
