Instagram fetch tools + weekly site-sync routine (draft) - #5
Merged
Conversation
- fetch_instagram_images.py: login-free fetcher for recent posts (Instagram's public logged-out endpoints); ideal for a weekly 'what's new' check. - fetch_instagram_authed.py: deeper backfill via gallery-dl + the local Chrome session, with manifest consolidation. This produced the instagram-images dump. Companion to the existing tools/fetch_site_images.py (old-site crawler). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CLAUDE.md: operating procedure for a weekly agent that detects new @mrqfears posts, classifies them (photoshoot -> work.html, thought piece -> ideas.html, hosting -> speak.html), incorporates high-confidence on-brand ones, and auto-merges to main (which deploys to Pages). Not yet scheduled. - instagram-ledger.json: state ledger (reviewed_through + incorporated/skipped) so the routine is idempotent and only looks at genuinely new posts. - tools/instagram_new_since.py: login-free detector that lists new posts since the ledger. Verified: 7 new posts detected since 2026-06-19. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ile-download-3f57fe # Conflicts: # CLAUDE.md
✅ Deploy Preview for qfearless ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
- Ideas page gains a 'Reels' section: a vertical 9:16 card grid. Each item is either a poster+caption that links to Instagram (default, no bytes stored) or a self-hosted <video> that click-to-loads (curated). Mirrors the existing YouTube click-to-load pattern; no external embed script, so the CSP/offline guarantee holds. - Keystatic: reels.items model on the ideas singleton (poster, caption, permalink, optional videoSrc). Seeded with 2 self-hosted reels + 1 link-only, from @mrqfears. - tools/prepare_reel.py: ffmpeg transcode of a reel .mp4 -> compact ~1-2 MB H.264 + poster, prints the YAML snippet. - CLAUDE.md/ASSETS.md: document the reel video policy (poster+link default, curated self-host via prepare_reel.py). Build passes; validate_site + seo_check pass (0 warnings). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Turn the sync routine into an editorial pass: judge new posts against the site's existing best content, replace at section budgets instead of appending, run a critical review of the whole site every week (stale copy, redundancy, filler) even with zero new posts, and record replacements and trims in the ledger so decisions stay auditable. Content-only auto-merge; structural changes go to a PR. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ile-download-3f57fe
Merge main (responsive-image system from #8) and bring the reel posters into it: generate 400/720 AVIF+WebP variants, register them in img-variants.json, and render through the Picture component instead of a plain img. Satisfies the image-budget and width/height CI checks. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the Instagram tooling and a drafted (not-yet-scheduled) weekly routine to keep quentinfears.com in sync with new @mrqfears content. Code only — the image dump itself lives on the separate
instagram-imagesbranch, not here.What's included
tools/instagram_new_since.py— login-free detector. Fetches recent posts via Instagram's public logged-out endpoint (no cookies, no Keychain), lists posts newer than the ledger. Safe to run unattended. Verified live: found 7 new posts since 2026-06-19.tools/fetch_instagram_images.py— login-free fetcher for recent posts.tools/fetch_instagram_authed.py— deep gallery-dl backfill via the local Chrome session (needs a one-time macOS Keychain approval; manual-only). This produced the 187-photo dump oninstagram-images.instagram-ledger.json— state ledger (reviewed_through+incorporated/skipped) so the routine is idempotent.CLAUDE.md— new "Weekly routine" section appended to the existing doc. Adapted to the current Astro + Keystatic content model: thought pieces →notes.itemsincontent/ideas.yaml; photoshoots →content/galleries.yaml+public/assets/img/gallery/.Notes
main. Guardrails in the doc: ≤2 incorporations/week, high-confidence/on-brand only, skip-when-unsure, honors the existing no-employer/no-confidential rules.🤖 Generated with Claude Code