# Changelog of SocialBlade Stats Scraper (`devilscrapes/socialblade-stats-scraper`) Actor

- **URL**: https://apify.com/devilscrapes/socialblade-stats-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/devilscrapes/socialblade-stats-scraper.md

## SocialBlade Stats Scraper — Changelog

### 0.0.1 — 2026-08-10

- Scaffolded: `.actor/` (actor.json, input/output/dataset schemas, PPE,
  Dockerfile), `src/models.py` (`ActorInput` + `TargetSpec` + `ResultRow` +
  `Ranks` + `DailySnapshot` per spec, REQ-1/REQ-2 target precedence
  validator), icon (SocialBlade navy/cyan "B" dashboard mark + grade badge
  inside the Devil Scrapes container).
- Implemented `src/scraper.py` (curl-cffi fetch loop, retry/backoff on
  408/429/503, session\_id + browser-profile rotation per ADR-0002) and
  `src/parser.py` (pure `__NEXT_DATA__`/tRPC-query parsing, normalizes all
  four platforms onto one `ResultRow` schema). Rewrote `src/main.py` with
  real SDK plumbing, per-target fault isolation, and a
  `RUN_WALL_CLOCK_BUDGET_SECONDS` guard.
- 107 tests green, ruff/pyright clean, `verify_input_prefill.py` OK. Local
  `apify run` confirmed live: 4/4 targets (YouTube/Twitch/Instagram/TikTok)
  scraped successfully against real socialblade.com data.
- README regenerated from `scaffold.json`; `promo.json` added (GTM source
  of truth, wedge keyword "socialblade scraper").
- Local-green only — not yet pushed, published, or priced. Cloud QA and
  publish are the orchestrator's next step.
