--- title: "feat: v2.8 Release — Instagram Reels + TikTok ScrapeCreators Migration" type: enhancement status: pending date: 2026-03-04 --- # feat: v2.8 Release — Instagram Reels + TikTok ScrapeCreators Migration ## Summary Ship everything from the last sprint as one combined GitHub release: TikTok's migration from Apify to ScrapeCreators (already committed) + Instagram Reels as the 8th source (uncommitted) + SKILL.md URL regression fixes. Version bump to v2.8. ## What's Shipping ### 1. Instagram Reels — 8th source (NEW) - Search Instagram Reels by keyword via ScrapeCreators `/v1/instagram/reels/search` - Spoken-word transcript extraction via `/v2/instagram/media/transcript` - Full pipeline: search → normalize → score → dedupe → cross-link → render - Shares `SCRAPECREATORS_API_KEY` with TikTok (no new API key needed) - ~7 credits per topic at default depth ### 2. TikTok — Apify → ScrapeCreators migration (ALREADY COMMITTED) - Replaced Apify dependency with ScrapeCreators API - Same functionality, different backend - No more `APIFY_API_TOKEN` — uses `SCRAPECREATORS_API_KEY` ### 3. SKILL.md quality fixes - Instagram added to stats template, citation priority, data sections, footer - URL regression fix: explicit URL-to-name extraction rules, stronger anti-Sources instruction - Security section updated: Apify → ScrapeCreators ## Release Checklist ### Pre-commit: Update docs - [ ] **README.md** — Update for v2.8: - [ ] Change title from "v2.7" to "v2.8" - [ ] Add "New in v2.8" banner: Instagram Reels + ScrapeCreators migration - [ ] Update installation section: `APIFY_API_TOKEN` → `SCRAPECREATORS_API_KEY` - [ ] Add Instagram to the "How it works" flow description (line 132) - [ ] Update TikTok section: replace Apify references with ScrapeCreators - [ ] Add Instagram section (after TikTok section, ~line 963) - [ ] Update API endpoints table: `api.apify.com` → `api.scrapecreators.com`, add Instagram endpoints - [ ] Update closing tagline to include Instagram - [ ] Remove "The shared Apify client wrapper is designed for future Facebook and Instagram sources" (line 963) — Instagram is here now - [ ] **CHANGELOG.md** — Add v2.8.0 entry: ``` ## [2.8.0] - 2026-03-04 ### Highlights Instagram Reels as the 8th signal source, TikTok migrated from Apify to ScrapeCreators API, and SKILL.md quality improvements. ### Added - Instagram Reels as 8th research source via ScrapeCreators API — keyword search, engagement metrics (views, likes, comments), spoken-word transcript extraction - Instagram items in SKILL.md stats template, citation priority, and output footer - URL-to-name extraction examples in SKILL.md for cleaner web source display ### Changed - TikTok backend migrated from Apify to ScrapeCreators API (same key covers TikTok + Instagram) - `APIFY_API_TOKEN` replaced by `SCRAPECREATORS_API_KEY` in config - SKILL.md version bumped to v2.8 - WebSearch citation instruction strengthened to prevent trailing Sources: blocks ### Fixed - Web stats line showing full URLs instead of plain domain names (regression from v2.7) - Trailing "Sources:" block appearing after invitation (WebSearch tool mandate conflict) - Instagram/TikTok not running in web-only mode when `--search=instagram` used without Reddit/X ``` - [ ] **SKILL.md** frontmatter — Bump version from "2.7" to "2.8" - [ ] **SKILL.md** description — Add Instagram to the description field ### Commit & tag - [ ] Stage all changes: modified files + 4 new files (`scripts/lib/instagram.py`, 3 plan docs) - [ ] Commit with message: ``` feat: v2.8 — Instagram Reels source + TikTok ScrapeCreators migration - Add Instagram Reels as 8th research source via ScrapeCreators API - Migrate TikTok from Apify to ScrapeCreators (same API key) - Add SCRAPECREATORS_API_KEY config (replaces APIFY_API_TOKEN) - Fix web stats URL regression and trailing Sources: block - Fix Instagram/TikTok not running in --search=instagram web-only path - Update SKILL.md with Instagram stats, citations, URL formatting rules ``` - [ ] Create tag: `git tag -a v2.8.0 -m "v2.8.0: Instagram Reels + ScrapeCreators"` - [ ] Push: `git push origin main --tags` ### Post-push: GitHub release - [ ] Create GitHub release via `gh release create v2.8.0`: ``` ## What's New in v2.8 **Instagram Reels** is now the 8th signal source. Search any topic and get trending Instagram Reels with views, likes, and spoken-word transcripts — scored and ranked alongside Reddit, X, YouTube, TikTok, HN, Polymarket, and the web. **TikTok migrated to ScrapeCreators API.** Same functionality, new backend. Replace `APIFY_API_TOKEN` with `SCRAPECREATORS_API_KEY` in your config. One key now covers both TikTok and Instagram. ### Setup Sign up at [scrapecreators.com](https://scrapecreators.com) (100 free credits, then PAYG) and add your key: ```bash echo 'SCRAPECREATORS_API_KEY=your_key' >> ~/.config/last30days/.env ``` ### Breaking Change - `APIFY_API_TOKEN` is no longer used. Replace with `SCRAPECREATORS_API_KEY`. ### Bug Fixes - Fixed web source URLs leaking into stats display - Fixed Instagram/TikTok not running when used with `--search=` flag ``` ### Post-release: Sync - [ ] Run `bash scripts/sync.sh` to deploy to all 4 skill destinations - [ ] Verify Instagram works in a fresh `/last30days` session ## Files Modified (this release) | File | Status | Description | |------|--------|-------------| | `scripts/lib/instagram.py` | NEW | Instagram search + transcript via ScrapeCreators | | `scripts/lib/schema.py` | MODIFIED | InstagramItem dataclass, Report.instagram field | | `scripts/lib/normalize.py` | MODIFIED | normalize_instagram_items() | | `scripts/lib/score.py` | MODIFIED | score_instagram_items(), engagement formula | | `scripts/lib/dedupe.py` | MODIFIED | dedupe_instagram(), cross-source linking | | `scripts/lib/render.py` | MODIFIED | Instagram render section, stats | | `scripts/lib/env.py` | MODIFIED | is_instagram_available(), get_instagram_token() | | `scripts/lib/ui.py` | MODIFIED | Instagram spinner messages | | `scripts/last30days.py` | MODIFIED | Instagram in orchestrator pipeline | | `scripts/watchlist.py` | MODIFIED | Instagram findings extraction | | `SKILL.md` | MODIFIED | Instagram in stats/citations/footer, URL fixes | | `README.md` | TO UPDATE | Instagram section, ScrapeCreators migration | | `CHANGELOG.md` | TO UPDATE | v2.8.0 entry | | `docs/plans/*.md` | NEW (3) | Plan documents for this work |