instagram-replicate について
公開 Instagram の動画投稿または reel 1件を、再レンダリング可能なローカル版にするスキルです。投稿データとメディアを固定して保存し、MP4 と24 MB以下のGIFを出力します。
主な機能
- 01公開投稿のスナップショット取得
- 02アバター、ポスター、動画の保存
- 03ローカル HTML/CSS で投稿画面を再構成
- 04Playwright による画面録画
- 05MP4 と GIF の出力
活用シーン
- 01再生可能な reel の複製作成
- 02投稿のキャプションと数値の保存
- 03固定した投稿の後日再レンダリング
- 04ローカル HTML を使ったレイアウト調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jpcaparas/ skills --skill instagram-replicateインストール後、Claude Code で/instagram-replicateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonREADME.mdskill-card.prompt.mdagents/openai.yamlassets/.gitkeepevals/evals.jsonreferences/gotchas.mdlayout.mdworkflow.mdscripts/fetch_instagram_snapshot.pyprobe_instagram_replica.pyrecord_instagram_replica.pyrender_instagram_replica.pytest_skill.pyvalidate.pytemplates/instagram_replica.html詳細
Instagram の再現
公開されている Instagram の動画投稿またはリールを、再レンダリング可能なローカルビルドに固定します。このビルドは常に instagram-replica.mp4 と instagram-replica.gif の両方を出力し、GIF のサイズは 24 MB 未満に保たれます。
2026 年 4 月 12 日時点で、Instagram の公開ページで動作を確認しています。
まず、できないことを伝える
ブラウザー上の Instagram と同一、または永続的に安定したクローンであるとは約束しないでください。Instagram のレイアウトは変更されることがあり、カウンターの数値は変動し、ログインを促す画面が表示されることもあります。また、メディア URL は期限切れになります。このローカルレンダラーは、Instagram の非公開レンダラーを再現するのではなく、意図的に決定論的な動作をします。
このスキルが得意とすること:
- 公開されている Instagram の投稿 1 件を取得し、固定された
snapshot.jsonに保存する - プロフィールのアバター、ポスターフレーム、メインの動画をローカルにダウンロードする
- ログアウト状態のデスクトップ版投稿画面を、決定論的なローカル HTML/CSS で再構築する
- Playwright でそのローカルページを録画する
- 同じディレクトリに、安定した MP4 と付随する GIF を書き出す
判断フロー
- ユーザーが公開されている Instagram の動画投稿またはリール 1 件をローカル動画アセットとして再構築したい場合は、
scripts/render_instagram_replica.pyを実行します。 - キャプションのテキスト、件数、コメント、またはメディア URL だけが必要な場合は、このスキルではなく、テキスト/メディア抽出ワークフローを使用します。
- 元のメディアファイルだけが必要な場合は、このスキルではなく、メディアダウンローダーを使用します。
- Instagram 自体をブラウザーでライブキャプチャしたい場合は、処理を中止し、このスキルは実際の Instagram UI を録画するものではなく、決定論的なローカル再現を行うものだと説明します。
- カルーセル、プロフィールグリッド、ストーリーズ、DM、または認証済み状態が必要な場合は、このバージョンではメインのメディアが 1 つの、公開投稿ページの再現 1 件のみをサポートすると説明します。
デフォルトの保存先ルール
ユーザーが保存先を指定していない場合は、まず ./pieces/ を提案します。ユーザーが同意するか、保存先を気にしない場合は、--save-root ./pieces を付けて実行するか、スクリプトのデフォルトに従い、現在の作業ディレクトリにある pieces/ フォルダーを使用します。
生成されるビルドのレイアウトは変わりません:
<save-root>/instagram-replicate-post-<shortcode>-<timestamp>/
assets/
snapshot.json
instagram-replica.html
capture.webm
instagram-replica.mp4
instagram-replica.gif
クイックリファレンス
| タスク | コマンド | 理由 |
|---|---|---|
| 公開 Instagram 投稿から、デフォルトで指定された保存先にレンダリングする | python3 scripts/render_instagram_replica.py 'https://www.instagram.com/p/...' --save-root ./pieces | ./pieces/ の下に再レンダリング可能なビルドフォルダーを作成します |
| 同じ投稿を後から再レンダリングする | python3 scripts/render_instagram_replica.py ./instagram-build/snapshot.json | スナップショットと同じ場所に保存し、件数の変動を防ぎます |
| すべてを名前付きのビルドフォルダー 1 つにまとめる | python3 scripts/render_instagram_replica.py '<url>' --workdir ./instagram-build | スナップショット、ローカルアセット、HTML、WebM、MP4、GIF をすべて同じ場所に保存します |
| 抽出したスナップショットだけを確認する | python3 scripts/fetch_instagram_snapshot.py '<url>' --output ./instagram-build/snapshot.json --asset-dir ./instagram-build/assets | レイアウトの調整前に確認する場合に便利です |
| 準備済みの HTML 再現だけを録画する | python3 scripts/record_instagram_replica.py ./instagram-build/instagram-replica.html ./instagram-build/capture.webm | 再取得せずに CSS を調整する場合に便利です |
| Instagram のライブ URL に対して実際のパイプラインチェックを実行する | python3 scripts/probe_instagram_replica.py 'https://www.instagram.com/p/...' --save-root ./tmp-tests --cleanup | MP4、GIF、長さ、GIF のサイズ上限を検証します |
対象範囲
対応する依頼
- 「この Instagram の投稿を再現して」
- 「このリールを再現して」
- 「この Instagram の動画を mp4 と gif にして」
- 「この Instagram の投稿を動画に固定して」
- 「この投稿を Instagram らしい見た目にして」
- 「再生できる Instagram のスクリーンショット」
- 「キャプション、件数、コメントのプレビュー、再生、再レンダリング可能なビルドを保持して」
対象外の依頼
- Instagram のキャプションを読む、または抽出するだけの依頼
- 元のメディアをダウンロードするだけの依頼
- ライブ埋め込みのデバッグ
- プロフィールグリッド、フィード、ストーリーズ、DM
- カルーセルの再構築
- 出力がブラウザー上の Instagram と完全に同一のクローンであるという主張
作業ルール
ライブの Instagram ページではなく、スナップショットを正とします。一度取得してデータを固定したら、以降は snapshot.json を使ってローカルで繰り返し調整します。
読み方ガイド
| 必要な情報 | 参照先 |
|---|---|
| エンドツーエンドのワークフロー、保存先ルートの動作、成果物のレイアウト | references/workflow.md |
| レイアウトのヒューリスティック、サイズ設定のルール、調整項目 | references/layout.md |
| 失敗しやすいケース、GIF のサイズ設定、ずれ、未対応のケース | references/gotchas.md |
注意点
- 数値はすぐに変わります。特定の時点での「いいね!」やコメントが重要な場合は、
snapshot.jsonから再レンダリングしてください。 - GIF はプレビュー用のアセットであり、2つ目のマスター動画ではありません。24 MB 未満に収めるため、レンダラーは必要に応じて GIF の解像度、フレームレート、パレットの色数を下げます。
- このレンダラーは、デスクトップ投稿の UI をローカルで再構築します。Instagram 独自のレンダラーとバイト単位またはピクセル単位で一致することを保証するものではありません。
- 公開されている Instagram のメディア URL は有効期限が切れる場合があります。後から出力を再現する必要がある場合は、ダウンロードしたメディアを作業ディレクトリ内に保管してください。
- Playwright のビューポート録画は映像のみです。ローカル動画ファイルに音声トラックがある場合、最終的な MP4 では元のメディアの音声を再度多重化します。GIF に音声は含まれません。
- ログインポップアップ、関連投稿のグリッド、一部のアカウントメタデータは、地域や時期によって異なります。このスキルでは、ライブ中に表示されるすべての中間画面を再現するのではなく、シンプルな投稿ページの外枠をレンダリングします。