← Back to Skills Marketplace
antoinedc

Instagram Reels

by antoinedc · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
988
Downloads
2
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install instagram-reels
Description
Download Instagram Reels, transcribe audio, and extract captions. Share a reel URL and get back a full transcript with the original description.
README (SKILL.md)

Instagram Reels Skill

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

Setup

  1. Install required tools:
pip install yt-dlp
apt install ffmpeg    # or: brew install ffmpeg
  1. Get a free Groq API key at https://console.groq.com
  2. Set your environment variable:
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

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:

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

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

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

# 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"
Usage Guidance
This skill appears coherent and does what it says: download public reels (or private ones if you supply cookies), convert audio, and call Groq's transcription API. Before installing/use: 1) Only export and provide browser cookies if you understand the privacy risk — cookies contain session tokens and can grant account access; prefer using public reels when possible. 2) Keep your GROQ_API_KEY secret (set as an env var, rotate if leaked) and confirm Groq billing/limits. 3) Install yt-dlp/ffmpeg from official sources (pip, distro package manager, Homebrew). 4) Clean up temporary files (/tmp/reel.*) after use and consider running this pipeline in an isolated environment if you worry about untrusted media. 5) Verify you have the right to download/transcribe content (terms of service/copyright). If you need the skill to avoid handling cookies or to use a different transcription provider, request a modified version that removes cookie-export guidance and/or supports alternative APIs.
Capability Analysis
Type: OpenClaw Skill Name: instagram-reels Version: 1.0.0 The skill is designed to download and transcribe Instagram Reels, using standard tools like yt-dlp, curl, ffmpeg, and python3. All operations are aligned with its stated purpose. However, the skill passes user-provided input (REEL_URL) directly into shell commands without explicit sanitization, creating a significant shell injection vulnerability (potential RCE) if the OpenClaw agent does not properly sanitize inputs before execution. This is a critical vulnerability, classifying the skill as 'suspicious' rather than 'benign' due to the high risk, even without evidence of intentional malicious behavior within the skill's instructions themselves. No data exfiltration, persistence, or prompt injection attempts were detected.
Capability Assessment
Purpose & Capability
Name/description match the declared binaries and env var. yt-dlp, ffmpeg, python3, and curl are required for downloading, extracting, and converting audio; GROQ_API_KEY is needed to call the Groq transcription API. No unrelated credentials or binaries are requested.
Instruction Scope
Instructions stay focused on downloading public media, extracting audio, and calling the Groq transcription endpoint. One notable scope-sensitive point: the doc advises exporting browser cookies and using a 'Get cookies.txt' extension for private reels — that legitimately enables access to private content but also involves handling session cookies (sensitive tokens). The instructions write temporary files to /tmp and call out cleaning them up; they do not attempt to read other unrelated secrets or system paths.
Install Mechanism
This is instruction-only (no install spec). The setup suggests installing yt-dlp via pip and ffmpeg via package managers — standard for this workflow. No downloads from arbitrary URLs or archive extraction steps are present.
Credentials
Only GROQ_API_KEY is declared and used; that is appropriate for the transcription API. The SKILL.md does not reference additional environment variables beyond the declared key.
Persistence & Privilege
Skill is instruction-only, not always-included, and requests no persistent system-level privileges. It does not modify other skills' configs or require permanent presence.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install instagram-reels
  3. After installation, invoke the skill by name or use /instagram-reels
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release. Download Instagram Reels, transcribe audio with Groq Whisper, extract captions.
Metadata
Slug instagram-reels
Version 1.0.0
License
All-time Installs 3
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is Instagram Reels?

Download Instagram Reels, transcribe audio, and extract captions. Share a reel URL and get back a full transcript with the original description. It is an AI Agent Skill for Claude Code / OpenClaw, with 988 downloads so far.

How do I install Instagram Reels?

Run "/install instagram-reels" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Instagram Reels free?

Yes, Instagram Reels is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Instagram Reels support?

Instagram Reels is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Instagram Reels?

It is built and maintained by antoinedc (@antoinedc); the current version is v1.0.0.

💬 Comments