Instagram数据分析工具

终端优先的Instagram数据分析、下载和多链处理工具,支持搜索、分析和导出功能。

  • by lupikovoleg
  • Python
  • 本地部署
  • 43 星标
  • 更新于
在 GitHub 查看 lupikovoleg/instagram-cli

使用说明

Instagram命令行界面

终端优先的Instagram分析、下载和MCP工具由HikerAPI、OpenRouter和FastMCP提供支持。

 ___ _   _ ____ _____  _    ____ ____      _    __  __      ____ _     ___
|_ _| \ | / ___|_   _|/ \  / ___|  _ \    / \  |  \/  |    / ___| |   |_ _|
 | ||  \| \___ \ | | / _ \| |  _| |_) |  / _ \ | |\/| |   | |   | |    | |
 | || |\  |___) || |/ ___ \ |_| |  _ <  / ___ \| |  | |   | |___| |___ | |
|___|_| \_|____/ |_/_/   \_\____|_| \_\/_/   \_\_|  |_|    \____|_____|___|
                           INSTAGRAM-CLI by @lupikovoleg

它的作用

  • 通过自适应深度分页按主题搜索Instagram,包括多语言卷轴和媒体发现
  • 按新鲜度筛选搜索结果,包括 today 和 last N days
  • 获取个人资料统计数据、卷轴统计数据、每个媒体最多100条根评论、点赞者、关注者、关注、故事和亮点
  • 分析主网格中的配置文件发布:
    • 卷轴
    • 帖子
    • 旋转木马
  • 检查固定帖子、标记出版物、评论回复、标记用户和媒体洞察指标
  • 通过以下方式发现内容和实体:
    • 话题标签
    • 地点
    • 音乐曲目
    • 建议的相关配置文件
  • 检查HikerAPI余额,并从CLI或MCP请求速率数据
  • 在本地下载Instagram内容:
    • 卷轴和柱子
    • 音轨
    • 活跃的故事
    • 亮点
  • 将收集的结果导出到 csv 或 json
  • 支持CLI中工具调用的自然语言交互
  • 处理链式工作流,例如:
    • 搜索->检查->排名->导出
    • 打开个人资料->分析出版物->下载内容
    • 获取卷轴->查看评论或喜欢者->导出结果
  • 通过本地MCP服务器为Claude和其他MCP客户端公开相同的功能层

需求

  • macOS或Linux
  • python 3.10+
  • HIKERAPI_KEY 或 HIKERAPI_TOKEN
  • OPENROUTER_API_KEY 对于交互式CLI代理

安装

cd /path/to/instagram-cli
./install.sh

这将安装两个命令:

  • instagram 用于交互式CLI
  • instagram-mcp 对于本地MCP服务器

在另一个项目中作为Python依赖项安装:

pip install git+https://github.com/lupikovoleg/instagram-cli.git

首次运行

CLI使用自己的 .env 文件。

  • 默认路径: /path/to/instagram-cli/.env
  • 覆盖路径: INSTAGRAM_CLI_ENV_FILE=/path/to/custom.env

如果缺少所需的密钥,CLI引导程序会请求它们并写入本地 .env.

快速开始

启动CLI:

instagram

典型命令:

instagram> profile lupikovoleg
instagram> search portugal creators
instagram> search reels about dubai attack
instagram> publications lupikovoleg 10 30 all
instagram> comments https://www.instagram.com/reel/XXXXXXXXXXX/ 100
instagram> download media https://www.instagram.com/reel/XXXXXXXXXXX/
instagram> export csv latest-results
instagram> how many followers does @lupikovoleg have?
instagram> find today's reels about an attack on Dubai
instagram> find 100 reels about Dubai real estate

启动MCP服务器:

instagram-mcp

将其用作Python库:

from instagram_cli import InstagramClient

client = InstagramClient.from_env(env_file="/path/to/instagram-cli/.env")
profile = client.get_profile_stats(target="lupikovoleg")

自定义代理示例:

python /path/to/instagram-cli/examples/custom_agent.py \
  --env-file /path/to/instagram-cli/.env \
  "How many followers does @lupikovoleg have?"

MCP设置

克劳德代码:

claude mcp add instagram-cli -- /path/to/instagram-cli/.venv/bin/instagram-mcp

macOS上的Claude Desktop配置文件:

~/Library/Application Support/Claude/claude_desktop_config.json

例子:

{
  "mcpServers": {
    "instagram-cli": {
      "command": "/path/to/instagram-cli/.venv/bin/instagram-mcp",
      "args": [],
      "env": {
        "INSTAGRAM_CLI_ENV_FILE": "/path/to/instagram-cli/.env"
      }
    }
  }
}

文档

项目笔记

  • CLI模式使用OpenRouter进行自然语言工具选择和查询扩展。
  • 默认情况下,搜索是自适应的:如果 limit 如果省略,该工具可以在内部分页多达50个最终结果;明确的一次性搜索请求上限为100。
  • 高级评论收集仅返回根评论,每个媒体最多可以对100条评论进行内部分页。
  • MCP模式在内部不使用OpenRouter进行搜索。MCP客户端可以通过 query_variants 当需要更丰富的多语言检索时。
  • Python库模式使用相同的确定性 InstagramOps 层作为CLI和MCP服务器,通过 InstagramClient.
  • 默认情况下,昂贵的追随者和喜欢者分析被故意限制,以避免烧毁HikerAPI积分。
  • 一些工具是精确的页面读取,而抽样排名工具明确地将自己标记为近似值。