Facebook:
- Broaden URL validation to accept ALL real FB shapes: /watch/?v=,
/reel/:id, /videos/:id (user vids), /video.php, /story.php, fb.watch,
and no-www facebook.com. Old regex rejected /reel, /videos, fb.watch.
- Add yt-dlp as the PRIMARY provider (authoritative, returns direct
fbcdn progressive URLs with real title/format metadata, no junk).
Only falls back to downr.org then Playwright. This kills the
'link exists but 404s' bug where Playwright harvested broken
bytestart byte-range chunks alongside the one good URL.
- Filter Playwright-harvested bytestart= chunk URLs + dedupe.
TeraBox:
- Add /proxy/terabox streaming endpoint that forwards the resolver's
cookie-authenticated stream through the public API.
- Rewrite the returned download URL to the public proxy (raw dlink
403s without cookies; TERABOX_PUBLIC_BASE_URL env override).
- Fix: server_port env is APP_SERVER_PORT (single underscore); the
OLD stale 4091 bind in tests came from APP__SERVER_PORT not mapping.
flake: bump scraper-0.1.0 -> 0.1.1
- Nix flake now installs scrape_media.py to $out/bin so CI deploys it with the binary
- run_playwright_scraper locates the script alongside the running binary (Nix store),
the Cargo manifest dir (dev), /home/code/scraper, or $SCRAPER_SCRIPT_DIR
- Fix var_os() Option match