{"slug":"ig-reel-extract","title":"IG Reel Extract — Download & Analyze Social Reels","tags":["instagram","reel","extract","competitor-research","transcript"],"agent_summary":"Extract Instagram Reels (and other social videos): downloads video, captures key frames, pulls transcript for competitor research and script analysis. Requires Oxylabs proxy — no home IP scraping.","trigger_phrases":["extract reel","grab this reel","instagram reel download","reel extract","ig reel","download instagram reel","reel transcript","analyze reel"],"runnable":true,"markdown":"\n# IG Reel Extract — Download & Analyze Social Reels\n\nDownload, frame-capture, and transcribe Instagram Reels for competitor research, script analysis, and content repurposing.\n\n## When to Use\n\n- Competitor research: pull scripts from top-performing competitor videos\n- Hook analysis: study what hooks work in your niche\n- Content repurposing: extract and adapt transcripts\n- Voice profiling: feed to toneprint or voice-style-extractor skill\n\n## Proxy Rule — Mandatory\n\nInstagram downloads MUST use Oxylabs proxy. No home IP scraping.\n\nRead proxy from `D:\\Ecosystem\\secrets\\MASTER_API_KEYS.env` (grep for PROXY_1).\nFormat: `host:port:user:pass` → yt-dlp proxy format: `http://user:pass@host:port`\n\n## Execution Steps\n\n### Step 1: Create output directory\n\n```bash\nmkdir D:/ClaudeDev/reel-extracts/<slug>\n```\n\nUse reel ID or timestamp as slug (e.g., `reel-2026-05-12-1830`).\n\n### Step 2: Run extractor with proxy\n\n```bash\npython \"C:\\Users\\mikem\\.claude\\skills\\ig-reel-extract\\scripts\\extract_reel.py\" \\\n  \"<URL>\" \\\n  --out \"D:/ClaudeDev/reel-extracts/<slug>\" \\\n  --proxy \"http://user:pass@host:port\"\n```\n\n### Step 3: Read results\n\nOutput files:\n- `metadata.json` — title, author, duration, view count, like count\n- `transcript.txt` — full transcript if captions available\n- `frame_*.jpg` — key frames captured at intervals\n\n### Step 4: Analyze\n\nPresent:\n- Video downloaded: yes/no + file size\n- Frames captured: list with timestamps\n- Transcript: full text\n- Hook analysis: first 3 seconds script\n- CTA: what the video asks viewers to do\n\n## Output Folder Structure\n\n```\nD:/ClaudeDev/reel-extracts/\n  reel-2026-05-12-1830/\n    metadata.json\n    transcript.txt\n    video.mp4\n    frame_0s.jpg\n    frame_5s.jpg\n    frame_10s.jpg\n```\n\n## Python Pattern (Direct)\n\n```python\nimport subprocess, json, os\n\ndef extract_reel(url, out_dir, proxy):\n    result = subprocess.run([\n        \"python\",\n        r\"C:\\Users\\mikem\\.claude\\skills\\ig-reel-extract\\scripts\\extract_reel.py\",\n        url,\n        \"--out\", out_dir,\n        \"--proxy\", proxy\n    ], capture_output=True, text=True)\n    \n    metadata_path = os.path.join(out_dir, \"metadata.json\")\n    with open(metadata_path) as f:\n        return json.load(f)\n```\n\n## Hook Analysis Framework\n\nAfter extraction, analyze the transcript's first 3 seconds:\n\n| Element | Question |\n|---------|---------|\n| Pattern interrupt | Does it break expected format? |\n| Identity call-out | Does it name a specific audience? |\n| Curiosity gap | Does it create immediate question? |\n| Bold claim | Is there a specific, surprising claim? |\n| Visual hook | What happens on screen in second 1? |\n\n## Related Topics\n\n- [[social-transcript-extractor]] — extract transcripts without downloading (API method)\n- [[ytdlp-agent]] — YouTube-specific download and transcript CLI\n- [[scriptwriter]] — use extracted hooks as reference for new scripts\n- [[ai-video-pipeline]] — produce competitor-informed videos\n\n#video-sop #instagram #reel #extract #competitor-research #transcript\n","html":"<h1>IG Reel Extract — Download &#x26; Analyze Social Reels</h1>\n<p>Download, frame-capture, and transcribe Instagram Reels for competitor research, script analysis, and content repurposing.</p>\n<h2>When to Use</h2>\n<ul>\n<li>Competitor research: pull scripts from top-performing competitor videos</li>\n<li>Hook analysis: study what hooks work in your niche</li>\n<li>Content repurposing: extract and adapt transcripts</li>\n<li>Voice profiling: feed to toneprint or voice-style-extractor skill</li>\n</ul>\n<h2>Proxy Rule — Mandatory</h2>\n<p>Instagram downloads MUST use Oxylabs proxy. No home IP scraping.</p>\n<p>Read proxy from <code>D:\\Ecosystem\\secrets\\MASTER_API_KEYS.env</code> (grep for PROXY_1).\nFormat: <code>host:port:user:pass</code> → yt-dlp proxy format: <code>http://user:pass@host:port</code></p>\n<h2>Execution Steps</h2>\n<h3>Step 1: Create output directory</h3>\n<pre><code class=\"language-bash\">mkdir D:/ClaudeDev/reel-extracts/&#x3C;slug>\n</code></pre>\n<p>Use reel ID or timestamp as slug (e.g., <code>reel-2026-05-12-1830</code>).</p>\n<h3>Step 2: Run extractor with proxy</h3>\n<pre><code class=\"language-bash\">python \"C:\\Users\\mikem\\.claude\\skills\\ig-reel-extract\\scripts\\extract_reel.py\" \\\n  \"&#x3C;URL>\" \\\n  --out \"D:/ClaudeDev/reel-extracts/&#x3C;slug>\" \\\n  --proxy \"http://user:pass@host:port\"\n</code></pre>\n<h3>Step 3: Read results</h3>\n<p>Output files:</p>\n<ul>\n<li><code>metadata.json</code> — title, author, duration, view count, like count</li>\n<li><code>transcript.txt</code> — full transcript if captions available</li>\n<li><code>frame_*.jpg</code> — key frames captured at intervals</li>\n</ul>\n<h3>Step 4: Analyze</h3>\n<p>Present:</p>\n<ul>\n<li>Video downloaded: yes/no + file size</li>\n<li>Frames captured: list with timestamps</li>\n<li>Transcript: full text</li>\n<li>Hook analysis: first 3 seconds script</li>\n<li>CTA: what the video asks viewers to do</li>\n</ul>\n<h2>Output Folder Structure</h2>\n<pre><code>D:/ClaudeDev/reel-extracts/\n  reel-2026-05-12-1830/\n    metadata.json\n    transcript.txt\n    video.mp4\n    frame_0s.jpg\n    frame_5s.jpg\n    frame_10s.jpg\n</code></pre>\n<h2>Python Pattern (Direct)</h2>\n<pre><code class=\"language-python\">import subprocess, json, os\n\ndef extract_reel(url, out_dir, proxy):\n    result = subprocess.run([\n        \"python\",\n        r\"C:\\Users\\mikem\\.claude\\skills\\ig-reel-extract\\scripts\\extract_reel.py\",\n        url,\n        \"--out\", out_dir,\n        \"--proxy\", proxy\n    ], capture_output=True, text=True)\n    \n    metadata_path = os.path.join(out_dir, \"metadata.json\")\n    with open(metadata_path) as f:\n        return json.load(f)\n</code></pre>\n<h2>Hook Analysis Framework</h2>\n<p>After extraction, analyze the transcript's first 3 seconds:</p>\n<p>| Element | Question |\n|---------|---------|\n| Pattern interrupt | Does it break expected format? |\n| Identity call-out | Does it name a specific audience? |\n| Curiosity gap | Does it create immediate question? |\n| Bold claim | Is there a specific, surprising claim? |\n| Visual hook | What happens on screen in second 1? |</p>\n<h2>Related Topics</h2>\n<ul>\n<li>[[social-transcript-extractor]] — extract transcripts without downloading (API method)</li>\n<li>[[ytdlp-agent]] — YouTube-specific download and transcript CLI</li>\n<li>[[scriptwriter]] — use extracted hooks as reference for new scripts</li>\n<li>[[ai-video-pipeline]] — produce competitor-informed videos</li>\n</ul>\n<p>#video-sop #instagram #reel #extract #competitor-research #transcript</p>\n"}