instagram-reels

Download Instagram Reels, transcribe audio, and extract captions. Share a reel URL and get back a full transcript with the original description.

3,891 stars

Best use case

instagram-reels is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Download Instagram Reels, transcribe audio, and extract captions. Share a reel URL and get back a full transcript with the original description.

Teams using instagram-reels should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/instagram-reels/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/antoinedc/instagram-reels/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/instagram-reels/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How instagram-reels Compares

Feature / Agentinstagram-reelsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Download Instagram Reels, transcribe audio, and extract captions. Share a reel URL and get back a full transcript with the original description.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Instagram Reels Skill

Download Instagram Reels, transcribe the audio, and extract the caption/description.

## Setup

1. Install required tools:

```bash
pip install yt-dlp
apt install ffmpeg    # or: brew install ffmpeg
```

2. Get a free Groq API key at [https://console.groq.com](https://console.groq.com)
3. Set your environment variable:

```bash
export GROQ_API_KEY="your-groq-api-key"
```

## Usage

Process a reel in three steps: extract metadata, download audio, transcribe.

### Step 1: Extract metadata and audio URL

```bash
yt-dlp --write-info-json --skip-download -o "/tmp/reel" "REEL_URL"
```

This writes `/tmp/reel.info.json` with the caption, uploader, CDN URLs, and other metadata. No login required for public reels.

### Step 2: Download audio and convert to mp3

Extract the audio CDN URL from metadata and download it directly:

```bash
AUDIO_URL=$(python3 -c "
import json
d = json.load(open('/tmp/reel.info.json'))
for f in d.get('formats', []):
    if f.get('ext') == 'm4a':
        print(f['url'])
        break
")
curl -sL "$AUDIO_URL" -o /tmp/reel-audio.m4a
ffmpeg -y -i /tmp/reel-audio.m4a -acodec libmp3lame -q:a 4 /tmp/reel-audio.mp3
```

### Step 3: Transcribe with Groq Whisper

```bash
curl -s https://api.groq.com/openai/v1/audio/transcriptions \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -F "file=@/tmp/reel-audio.mp3" \
  -F "model=whisper-large-v3-turbo" \
  -F "response_format=verbose_json"
```

Returns JSON with `text` (full transcript) and `segments` (with timestamps). Language is auto-detected.

### Extract caption from metadata

```bash
python3 -c "
import json
d = json.load(open('/tmp/reel.info.json'))
print('Caption:', d.get('description', 'No caption'))
print('Author:', d.get('uploader', 'Unknown'))
print('Duration:', round(d.get('duration', 0)), 'seconds')
"
```

## Notes

- Metadata extraction works on public reels without authentication
- For private reels, pass cookies: `yt-dlp --cookies /path/to/cookies.txt --write-info-json --skip-download -o "/tmp/reel" "REEL_URL"`
- Export cookies with a browser extension like "Get cookies.txt LOCALLY"
- Groq Whisper is free (rate-limited) and returns results in ~1-2 seconds
- Max audio length: 25 minutes per request
- Clean up temp files after: `rm -f /tmp/reel.info.json /tmp/reel-audio.*`
- Also works with TikTok, YouTube Shorts, and other platforms supported by yt-dlp

## Examples

```bash
# Full transcription pipeline
yt-dlp --write-info-json --skip-download -o "/tmp/reel" "https://www.instagram.com/reel/ABC123/" && \
AUDIO_URL=$(python3 -c "import json; [print(f['url']) for f in json.load(open('/tmp/reel.info.json')).get('formats',[]) if f.get('ext')=='m4a'][:1]") && \
curl -sL "$AUDIO_URL" -o /tmp/reel-audio.m4a && \
ffmpeg -y -i /tmp/reel-audio.m4a -acodec libmp3lame -q:a 4 /tmp/reel-audio.mp3 2>/dev/null && \
curl -s https://api.groq.com/openai/v1/audio/transcriptions \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -F "file=@/tmp/reel-audio.mp3" \
  -F "model=whisper-large-v3-turbo" \
  -F "response_format=verbose_json"

# Just get the caption (no transcription)
yt-dlp --write-info-json --skip-download -o "/tmp/reel" "https://www.instagram.com/reel/ABC123/" && \
python3 -c "import json; d=json.load(open('/tmp/reel.info.json')); print(d.get('description',''))"

# Transcribe a TikTok video (same pipeline)
yt-dlp --write-info-json --skip-download -o "/tmp/reel" "https://www.tiktok.com/@user/video/123" && \
AUDIO_URL=$(python3 -c "import json; [print(f['url']) for f in json.load(open('/tmp/reel.info.json')).get('formats',[]) if f.get('ext')=='m4a'][:1]") && \
curl -sL "$AUDIO_URL" -o /tmp/reel-audio.m4a && \
ffmpeg -y -i /tmp/reel-audio.m4a -acodec libmp3lame -q:a 4 /tmp/reel-audio.mp3 2>/dev/null && \
curl -s https://api.groq.com/openai/v1/audio/transcriptions \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -F "file=@/tmp/reel-audio.mp3" \
  -F "model=whisper-large-v3-turbo" \
  -F "response_format=verbose_json"
```

Related Skills

clinstagram

3891
from openclaw/skills

Full Instagram CLI — posting, DMs, stories, analytics, followers, hashtags, likes, comments. Supports Meta Graph API (official, safe) and private API (full features). Three compliance modes: official-only, hybrid-safe, private-enabled.

Social Media

myreels-storyboard

3891
from openclaw/skills

Professional storyboard design tool for short drama/video production. Activates when user mentions: script, storyboard, story board, shot design, video production planning, short drama. Workflow: story → character design → storyboard design → CSV/table confirmation → guide user to myreels-api for image/video generation. This skill focuses on storyboard design and content planning; actual image/video generation requires myreels-api skill.

instagram-reel-downloader-whatsapp

3891
from openclaw/skills

Download an Instagram Reel via sssinstagram.com and return it as a WhatsApp-ready video file. Use when a reel URL is provided and yt-dlp is blocked or not preferred.

myreels-api

3891
from openclaw/skills

Use this skill when the user wants to generate images, videos, speech, or music with MyReels, inspect the live model schema, submit a generation task, list the authenticated user's tasks, or poll task status. Prefer the bundled shell scripts before hand-writing curl/fetch requests. Use this whenever the user mentions MyReels generation, model selection, task history, task polling, result URLs, or MyReels API integration.

instagram-search

3891
from openclaw/skills

Instagram Search — Search 400M+ Instagram posts, reels, and profiles. Find influencers, track hashtags, analyze engagement, and export data. No Instagram API or Meta developer account needed — works through Xpoz MCP.

Instagram Profile Scraper

3891
from openclaw/skills

A browser-based Instagram profile discovery and scraping tool.

instagram-poster

3891
from openclaw/skills

Post images to Instagram automatically via Telegram. Generates images with WaveSpeed or uses your own. Bypasses Instagram bot detection using residential proxy. Use when: user wants to post to Instagram, auto-post image, share photo on Instagram, instagram autoposter, schedule instagram post, publish to instagram, post reel image. Requires IG_USERNAME + IG_PASSWORD env vars or a saved session. Needs human-browser skill for residential proxy.

Instagram

3891
from openclaw/skills

A local-first Instagram content system for hooks, captions, content structure, and draft storage. Acts as The Attention Sculptor to optimize stop-rate and retention. No API connection, no auto-posting, no automation.

Instagram Collector Skill

3891
from openclaw/skills

## Purpose

---

3891
from openclaw/skills

name: article-factory-wechat

Content & Documentation

humanizer

3891
from openclaw/skills

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.

Content & Documentation

find-skills

3891
from openclaw/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

General Utilities