360 Secure SkillHub
360 安全技能中心

Instagram Reels

该 Skill 使用 yt-dlp 获取 Reel 元数据与音频,经 ffmpeg 转换后调用 Groq Whisper 转录,输出完整文字稿、时间戳片段和原始文案;也支持 TikTok、YouTube Shorts 等 yt-dlp 可处理的平台。

antoinedc
antoinedc
热度 88.32
最近更新 2026-05-17 11:58:49
分类:效率依赖:代码执行 / 读写文件 / 第三方 API应用场景:社交媒体 / 数据处理 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add instagram-reels
Metadata
name
instagram-reels
version
1.0.0
description
Download Instagram Reels, transcribe audio, and extract captions. Share a reel URL and get back a full transcript with the original description.
metadata
{"openclaw":{"requires":{"env":["GROQ_API_KEY"],"bins":["curl","yt-dlp","ffmpeg","python3"]},"primaryEnv":"GROQ_API_KEY","homepage":"https://groq.com"}}

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"