db75f9e341
Add Instagram Reels as the 8th research source via ScrapeCreators API. One API key (SCRAPECREATORS_API_KEY) now covers both TikTok and Instagram. - Add scripts/lib/instagram.py: keyword search, transcript extraction, relevance scoring, engagement metrics (views, likes, comments) - Add InstagramItem to schema, normalization, scoring, dedup, rendering - Add Instagram to orchestrator pipeline, watchlist, and UI spinners - Update SKILL.md: stats template, citation priority, item format, URL-to-name extraction rules, anti-Sources instruction - Update README and CHANGELOG for v2.8 - Fix: Instagram/TikTok not running in --search= web-only path - Fix: web stats line showing full URLs instead of domain names - Replace APIFY_API_TOKEN with SCRAPECREATORS_API_KEY throughout Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.4 KiB
6.4 KiB
title, type, status, date
| title | type | status | date |
|---|---|---|---|
| feat: v2.8 Release — Instagram Reels + TikTok ScrapeCreators Migration | enhancement | pending | 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_KEYwith 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— usesSCRAPECREATORS_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/.envBreaking Change
APIFY_API_TOKENis no longer used. Replace withSCRAPECREATORS_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.shto deploy to all 4 skill destinations - Verify Instagram works in a fresh
/last30dayssession
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 |