内容
<div align="center">
<img src="https://raw.githubusercontent.com/4nw3rprod/ReelRecon/main/assets/hero.png" alt="ReelRecon — Reel reconnaissance for AI agents. Works with Claude, ChatGPT, Gemini, Hermes, OpenClaw, and any MCP-capable agent." width="820"/>
**转录和解码任何公共Instagram个人资料 — 钩子、CTA和脚本模式 — 本地且免费**
[](https://www.npmjs.com/package/reelrecon)
[](https://www.python.org/)
[](https://github.com/openai/whisper)
[](https://modelcontextprotocol.io/)
[](LICENSE)
[](#)
```bash
npx -y reelrecon
```
*您的代理已经可以编写脚本。现在,它可以首先研究竞争对手:*
*"转录@competitor的最新10个Reels并分解他们的钩子公式" — 只需一个工具调用。*
[🤖 代理设置](#-drop-it-into-your-agent-stack) · [🚀 快速开始](#-quick-start) · [🔍 用例](#-what-your-agent-can-do-with-it) · [🧰 工具参考](#-mcp-tool-reference) · [🖥️ 网页界面](#️-the-dashboard-for-humans)
<img src="https://raw.githubusercontent.com/4nw3rprod/ReelRecon/main/screen.png" alt="ReelRecon dashboard" width="850"/>
</div>
---
## 🎯 为什么存在
今天,分析竞争对手的Reels意味着要么支付每分钟的转录SaaS费用,要么将视频逐一上传到多模态模型并烧掉令牌,同时观看视频。**ReelRecon是第三个选项:免费、开源、本地** — 一个为内容策略中实际重要的部分(口语)而构建的MCP原生管道:
1. 您的代理调用一个工具,带有**公共Instagram个人资料网址**。
2. 服务器获取**最新的10个视频**,提取音频并使用**OpenAI Whisper**转录每个字 — 本地。无需订阅,无需按分钟计费,无需在视频帧上花费令牌。
3. 代理返回**结构化JSON**:完整的转录文本加上挖掘的钩子、CTA、情感、关键词集群、标题创意和跨视频策略概述。
ReelRecon不分析视觉效果 — 脚本、钩子和CTA存在于音频中,这就是它为模式和内容创意挖掘的内容。它与视频功能模型完美配对:免费对十个Reels进行分类,几分钟内,然后仅将一个或两个有价值的视频发送到多模态模型进行完整的视觉分解。
构建代理级别:结构化错误而不是异常,进度通知,作业队列和硬超时,上下文窗口友好型响应修剪,以及`check_health`工具,以便您的代理可以自我诊断损坏的安装,而不是围绕它产生幻觉。
## 🤖 集成到您的代理栈中
服务器使用**stdio和可流式HTTP MCP**,因此任何MCP功能都可以使用它。没有MCP?有一个JSON模式CLI,任何框架都可以外壳执行:
### ⚡ 一条命令,无需克隆:`npx`
安装Node 18+、Python 3.10+(推荐3.11)和`ffmpeg`:
```bash
npx -y reelrecon
```
该命令在stdio上启动MCP服务器。第一次运行会在`~/.reelrecon`中提供一个私有Python环境(Whisper + 朋友 — 几分钟和几个GB,一次);之后的每次启动都是即时的。一次性CLI运行也可以:
```bash
npx -y reelrecon transcribe "https://www.instagram.com/<username>/" --json
```
> 如果您已经拥有Python +依赖项?请设置`REELRECON_PYTHON=/path/to/python`以跳过配置并使用您自己的环境。
>
> 软件包在您的地区/注册表中尚未上线?直接从GitHub运行它 — 使用相同的启动器:`npx -y github:4nw3rprod/ReelRecon`
### 🔄 升级
- **npx用户:** 在您的配置中固定`reelrecon@latest`(如下面的代码片段),并且每个服务器启动都会运行最新的发布版本。如果普通的`npx -y reelrecon`一直为您提供过时的缓存副本,请运行`npx -y reelrecon@latest`一次或使用`npm cache clean --force`清除缓存。
- **直接从GitHub:** `npx -y github:4nw3rprod/ReelRecon`始终运行最新的`main` — 无需npm发布。
- **本地克隆:** `git pull`。就是这样 — 私有Python环境在`~/.reelrecon`中自动重用,仅在`requirements.txt`更改时重新安装。
如果Instagram登录墙使您无法访问公共视频,请升级到**v1.2.1+**并(可选)将服务器自己的会话交给它在MCP配置中:
```json
{
"mcpServers": {
"reelrecon": {
"command": "npx",
"args": ["-y", "reelrecon@latest"],
"env": { "REELRECON_COOKIES_FILE": "/absolute/path/to/cookies.txt" }
}
}
}
```
| 代理/框架 | 集成 |
|---|---|
| **Claude Code** (CLI) | `claude mcp add reelrecon -- npx -y reelrecon` |
| **Claude Desktop** | `mcpServers` 配置文件条目 |
| **ChatGPT / Codex CLI** | `mcp_servers` 配置文件条目在 `~/.codex/config.toml` |
| **Gemini CLI** | `mcpServers` 配置文件条目在 `~/.gemini/settings.json` |
| **Cursor / Windsurf / Cline** | 标准MCP服务器配置(stdio) |
| **OpenClaw, Hermes & other open agent frameworks** | 将框架的MCP客户端指向 `npx -y reelrecon` (stdio)或HTTP端点 |
| **LangChain / CrewAI / custom loops** | 使用MCP适配器或外壳执行CLI并使用 `--json` |
<details>
<summary><b>Claude Code</b></summary>
```bash
claude mcp add reelrecon -- npx -y reelrecon
```
</details>
<details>
<summary><b>Claude Desktop / Cursor / most MCP clients</b></summary>
```json
{
"mcpServers": {
"reelrecon": {
"command": "npx",
"args": ["-y", "reelrecon"]
}
}
}
```
</details>
<details>
<summary><b>ChatGPT — Codex CLI</b> (<code>~/.codex/config.toml</code>)</summary>
```toml
[mcp_servers.reelrecon]
command = "npx"
args = ["-y", "reelrecon"]
```
</details>
<details>
<summary><b>Gemini CLI</b> (<code>~/.gemini/settings.json</code>)</summary>
```json
{
"mcpServers": {
"reelrecon": {
"command": "npx",
"args": ["-y", "reelrecon"]
}
}
}
```
</details>
<details>
<summary><b>Running from a local clone instead of npx</b></summary>
克隆仓库,安装Python依赖项([快速开始](#-quick-start)),然后将您的MCP客户端指向启动器脚本:
```json
{
"mcpServers": {
"reelrecon": {
"command": "/absolute/path/to/ReelRecon/run_mcp_server.sh"
}
}
}
```
</details>
<details>
<summary><b>HTTP transport</b> (for frameworks that prefer a URL — OpenClaw, Hermes, remote setups)</summary>
```bash
./run_mcp_server.sh --transport streamable-http --host 127.0.0.1 --port 8001
```
然后将客户端指向 `http://127.0.0.1:8001/mcp`。
</details>
<details>
<summary><b>No MCP? Shell out to the JSON CLI</b> (LangChain, CrewAI, cron jobs, anything)</summary>
```bash
./run_latest_reel_transcription.sh "https://www.instagram.com/<username>/" --json
```
stdout是一个成功的单个JSON对象;非零退出 + `{"status":"error","error":"..."}`失败。来自任何语言的微不足道的可解析性。
</details>
**然后只需提示您的代理:**
> *"使用reelrecon转录@competitor的最新Reels。比较他们的钩子与我最后5个脚本,并告诉我我缺少的模式。"*
## 🔍 您的代理可以做什么
将任何LLM指向结构化输出,竞争内容研究变成对话:
- **🪝 钩子挖掘** — 竞争对手的最后10个视频的开头一行,放在一起。您的代理提取公式。
- **📣 CTA模式** — 检测和统计每个批次的“关注/评论/链接在生物中/给我发DM”。
- **🧬 脚本结构** — 完整的转录文本暴露节奏:钩子→上下文→回报→CTA。偷走骨架,而不是词语。
- **🔑 主题集群** — 最近视频中反复出现的关键词=创作者的实际内容支柱。
- **📈 趋势三角测量** — 运行3-5个竞争对手,让LLM区分他们突然在谈论什么。
- **♻️ 再利用引擎** — 每个视频都带有现成的角度和标题建议,用于您自己的旋转。
- **🕵️ 调度观看** — 与代理的cron/循环功能配对:“每天检查这3个配置文件并简报我。”
> **公平使用,请注意:** 仅限公共配置文件(检测并拒绝私有帐户),用于研究和灵感 — 研究模式,不要抄袭脚本。Instagram可能会限制匿名请求;做一个好公民。
## ⚙️ 工作原理
```mermaid
flowchart LR
A["🤖 Agent / LLM<br/>MCP tool calls"] --> B["📱 Public IG profile<br/>latest 10 videos"]
A --> C["🔗 Single video URL"]
A --> D["🎙️ Local audio file"]
B --> E["⬇️ yt-dlp<br/>audio extraction"]
C --> E
D --> F
E --> F["📝 Whisper<br/>local transcription"]
F --> G["🧠 AI insights<br/>hooks · CTAs · keywords"]
G --> H["📦 Structured JSON<br/>back to the agent"]
```
## 🚀 快速开始
**最快的路径(无需克隆):** `npx -y reelrecon` — 请参阅上面的[代理设置](#-drop-it-into-your-agent-stack)。
**手动设置 — 要求:** Python 3.11+,`ffmpeg`在您的PATH上,网络访问。
```bash
git clone https://github.com/4nw3rprod/ReelRecon.git
cd ReelRecon
python3.11 -m venv .venv
.venv/bin/pip install -r requirements.txt
```
可选(Groq支持的洞察力而不是内置的启发式算法):
```bash
cp .env.example .env.local # then set GROQ_API_KEY
```
连接您的代理([参见配置](#-drop-it-into-your-agent-stack)),或手动运行:
```bash
# 竞争对手的最新10个视频
./run_latest_reel_transcription.sh "https://www.instagram.com/nike/" --json
# 单个Reel,带有模型和语言提示
./run_latest_reel_transcription.sh "https://www.instagram.com/reel/<id>/" --json --model small --language en
```
## 🧰 MCP工具参考
| 工具 | 功能 |
|---|---|
| `transcribe_input` | 配置文件URL → 最新10个视频,或任何单个视频URL yt-dlp支持 |
| `transcribe_local_audio` | 转录本地音频文件 + 生成洞察力 |
| `list_recent_batches` | 浏览已保存的运行 |
| `read_batch_manifest` | 加载完整的批处理结果 |
| `read_video_output` | 加载单个视频的转录文本 + 元数据 |
| `check_health` | 自我诊断ffmpeg/Whisper/yt-dlp、磁盘和作业状态 |
资源:`reelrecon://server` · `reelrecon://recent-batches` · `reelrecon://manifest/{group}/{label}` · `reelrecon://transcript/{group}/{label}/{video_id}`
**您的代理可以依赖的合约:
- 工具**永远不会**因为预期失败而引发异常 — 每个调用都返回`status: "ok"`或结构化错误:`error_type`(`invalid_input`, `not_found`, `pipeline_error`, `dependency_error`, `server_busy`, `timeout`, …),一条消息和一个提示,代理可以采取行动。
- **进度流** 作为MCP通知在长时间的批次期间。
- **上下文窗口友好:** `include_transcript_text=false` 或 `max_transcript_chars=N` 修剪响应;完整的转录文本始终保留在磁盘和资源后面。
- **部分成功:** 在10个视频的批次中,一个损坏的视频被记录(`failed_videos`)而不是沉没其他九个。
- 作业被**排队并带有硬超时**;限制是环境可调(如下)。
## 📦 输出
```text
outputs/
└── instagram_profiles/
└── nike/
├── manifest.json ← 批处理结果 + AI概述
└── <video_id>/
├── audio.mp3
├── transcript.txt ← 金矿
└── metadata.json ← 标题,时间戳,洞察力
```
```jsonc
{
"status": "ok",
"input_kind": "instagram_profile",
"total_videos": 10,
"completed_videos": 10,
"videos": [
{
"title": "You don't need motivation…",
"transcript_text": "...",
"ai_insights": {
"hook": "You don't need motivation, you need a system.",
"cta": "follow",
"sentiment": "positive",
"keywords": ["system", "habits", "training"],
"title_suggestions": ["..."],
"content_angles": ["..."]
}
}
},
"ai_overview": {
"recurring_keywords": ["..."],
"top_hooks": ["..."],
"cta_patterns": [["follow", 6], ["link in bio", 3]]
},
"manifest_file": "outputs/instagram_profiles/nike/manifest.json"
}
```
## 🖥️ 面板(适用于人类)
代理获取MCP;您获取实时仪表板:
```bash
./run_ui.sh
```
构建前端,选择一个开放的localhost端口,打开您的浏览器。粘贴配置文件/Reel URL **或上传音频** (`mp3`, `wav`, `m4a`, `aac`, `flac`, `ogg`, `webm`),选择Whisper模型,通过每个管道阶段观看实时进度,并浏览转录文本 + 历史洞察力。
## 🎛️ 调整
所有可选,通过环境变量:
| 变量 | 默认值 | 目的 |
|---|---|---|
| `GROQ_API_KEY` | — | 启用GroqCloud AI洞察(否则使用启发式算法) |
| `REELRECON_OUTPUT_DIR` | `<repo>/outputs` | 结果写入的位置 |
| `REELRECON_JOB_TIMEOUT_SECONDS` | `3600` | 硬每作业超时(MCP) |
| `REELRECON_QUEUE_TIMEOUT_SECONDS` | `900` | 最大等待作业槽(MCP) |
| `REELRECON_MAX_CONCURRENT_JOBS` | `1` | 并行转录作业(MCP) |
| `REELRECON_MAX_UPLOAD_BYTES` | 2 GiB | 最大本地音频文件大小(MCP) |
| `REELRECON_EXTRA_MODELS` | — | 允许的额外Whisper模型名称列表 |
| `REELRECON_COOKIES_FILE` | — | `cookies.txt`导出您的Instagram会话(匿名访问失败时的后备) |
| `REELRECON_COOKIES_FROM_BROWSER` | — | 直接从浏览器读取您的会话,例如 `chrome` 或 `firefox:ProfileName` |
| `REELRECON_HTTP_TIMEOUT_SECONDS` | `30` | Instagram/Groq/yt-dlp socket超时 |
| `REELRECON_FETCH_RETRIES` | `3` | Instagram 配置文件尝试次数(带回流) |
> 旧的 `IG_TRANSCRIBER_*` 变量名称仍然被尊重,因此现有设置继续有效。
**Whisper模型速查表:`tiny` = 最快,`base` = 默认甜点,`small`/`medium` = 更好的准确性,`large-v3` = 最佳(需要RAM/时间)。## ✅ 测试
MCP服务器和管道助手附带一个轻量级套件(不需要下载Whisper/torch):```bash
.venv/bin/pip install pytest
.venv/bin/python -m pytest tests/ -q```
## 📝 注意事项
- **仅限公共配置文件** - 私有帐户被检测并拒绝。
- Instagram可能会限制匿名请求;工具会重试并带有回流,但如果被阻止,请等待并重新运行。
- **遇到Instagram的登录墙?** 公共视频通常匿名工作(与浏览器中的登录弹窗后)。
**Whisper 模型速记:** `tiny` = 最快,`base` = 默认甜点,`small`/`medium` = 更准确,`large-v3` = 最佳(需要RAM/时间)。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器