Instagram Replicate
SkillWeb & browsingRebuild one public Instagram video post or reel into a deterministic local replica with frozen assets, HTML/CSS, Playwright capture, MP4, and GIF. Trigger on replicate Instagram, reel to MP4, or freeze video locally. Do NOT use for captions, private/auth pages, carousels, Stories, or DMs.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Instagram Replicate skill
What this skill tells your AI
The instructions your AI receives, as published by jpcaparas/skills in skills/creative/instagram-replicate/SKILL.md and read by ahel’s review.
Freeze one public Instagram video post or reel into a rerenderable local build that always emits both instagram-replica.mp4 and instagram-replica.gif, with the GIF kept under 24 MB.
Verified against public Instagram pages on April 12, 2026.
Call-Bluff First
Do not promise a browser-level or forever-stable clone of Instagram. Instagram can change layout, counters drift, login interstitials appear, and media URLs expire. The local renderer is intentionally deterministic rather than a replay of Instagram's private renderer.
What this skill does well:
- capture one public Instagram post into a frozen
snapshot.json - download the profile avatar, poster frame, and primary video locally
- rebuild the desktop logged-out post chrome in deterministic local HTML/CSS
- record that local page with Playwright
- export a stable MP4 and a companion GIF in the same directory
Decision Tree
- If the user wants one public Instagram video post or reel rebuilt as local video assets, run
scripts/render_instagram_replica.py. - If they only need caption text, counts, comments, or media URLs, use a text/media extraction workflow instead of this skill.
- If they only need the raw media file, use a media downloader instead of this skill.
- If they want a live browser capture of Instagram itself, stop and explain that this skill is for deterministic local replicas, not recordings of the real Instagram UI.
- If they need carousels, profile grids, Stories, DMs, or authenticated states, explain that this version supports one public post page replica with one primary media item.
Default Save Path Rule
When the user does not give a destination, propose ./pieces/ first. If they agree or do not care, run with --save-root ./pieces or let the script default to the current working directory's pieces/ folder.
The generated build layout stays the same:
<save-root>/instagram-replicate-post-<shortcode>-<timestamp>/
assets/
snapshot.json
instagram-replica.html
capture.webm
instagram-replica.mp4
instagram-replica.gif
Quick Reference
| Task | Command | Why |
|---|---|---|
| Render from a public Instagram post into the default designated save root | python3 scripts/render_instagram_replica.py 'https://www.instagram.com/p/...' --save-root ./pieces | Creates a rerenderable build folder under ./pieces/ |
| Re-render the same frozen post later | python3 scripts/render_instagram_replica.py ./instagram-build/snapshot.json | Saves beside the snapshot and avoids count drift |
| Keep everything in one named build folder | python3 scripts/render_instagram_replica.py '<url>' --workdir ./instagram-build | Leaves snapshot, local assets, HTML, WebM, MP4, and GIF together |
| Inspect the extracted snapshot only | python3 scripts/fetch_instagram_snapshot.py '<url>' --output ./instagram-build/snapshot.json --asset-dir ./instagram-build/assets | Useful before layout tuning |
| Record a prepared HTML replica only | python3 scripts/record_instagram_replica.py ./instagram-build/instagram-replica.html ./instagram-build/capture.webm | Useful when tuning CSS without refetching |
| Run real pipeline checks against live Instagram URLs | python3 scripts/probe_instagram_replica.py 'https://www.instagram.com/p/...' --save-root ./tmp-tests --cleanup | Verifies MP4, GIF, durations, and GIF size cap |
Scope
Positive triggers
- "replicate this Instagram post"
- "replicate this reel"
- "turn this Instagram video into mp4 and gif"
- "freeze this Instagram post into video"
- "make this post look like Instagram"
- "Instagram screenshot but playable"
- "preserve caption, counts, comment preview, playback, and a rerenderable build"
Negative triggers
- simple Instagram caption reading or extraction
- raw media download only
- live embed debugging
- profile grids, feeds, Stories, DMs
- carousel reconstruction
- claims that the output is an exact browser-level clone of Instagram
Working Rule
Treat the snapshot as the truth, not the live Instagram page. Fetch once, freeze the data, then iterate locally from snapshot.json.
Reading Guide
| Need | Read |
|---|---|
| End-to-end workflow, save-root behavior, and artefact layout | references/workflow.md |
| Layout heuristics, sizing rules, and tuning knobs | references/layout.md |
| Failure modes, GIF sizing, drift, and unsupported cases | references/gotchas.md |
Gotchas
- Counts drift quickly. Re-render from
snapshot.jsonwhen the user cares about likes or comments from a specific moment. - The GIF is a preview asset, not a second master video. The renderer will lower GIF resolution, frame rate, and palette depth as needed to stay under 24 MB.
- This renderer rebuilds the desktop post chrome locally. It does not claim byte-for-byte or pixel-for-pixel parity with Instagram's own renderer.
- Public Instagram media URLs can expire. Keep the downloaded local media inside the workdir if the output may need to be reproduced later.
- Playwright's viewport recording is visual-only. The final MP4 muxes original media audio back in when the local video file has an audio stream. The GIF never carries audio.
- Login popups, related-post grids, and some account metadata vary by region and time. This skill intentionally renders the clean post page shell instead of replaying every live interstitial.
Signals
- GitHub stars
- 48
- Forks
- 3
- Last commit
- Sep 2026
ahel review
K6low
bundled executables the agent is told to run
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
instagram-replicate- Source
- github.com/jpcaparas/skills