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.
SocialBlade Stats Scraper — Changelog