核心用法
gram 是一款基于 Node.js 开发的 Instagram 命令行工具,通过逆向工程调用 Instagram 的 REST/GraphQL 私有 API,实现无需官方 API 凭据即可访问平台数据。核心功能覆盖三大板块:
数据浏览:支持查看首页动态(feed)、发现页(explore)、指定帖子详情(post)、评论区(comments)及点赞用户列表(likers)。用户资料查询可获取关注/粉丝列表、历史发帖等完整信息。
搜索发现:内置多维度搜索,支持用户(users)、话题标签(hashtags)、地理位置(places)三类实体检索。
互动操作:提供完整的社交动作链,包括点赞/取消点赞、收藏/取消收藏、发表评论、关注/取消关注用户。
身份认证采用浏览器 Cookie 注入机制,支持从 Safari、Chrome、Firefox、Arc、Brave 等主流浏览器自动提取会话凭证,也可手动指定 sessionid、csrftoken、ds_user_id 三个关键参数。
显著优点
- 零官方 API 依赖:突破 Instagram Basic Display API 的权限限制,可访问官方 API 未开放的数据(如完整粉丝列表、点赞详情)
- 浏览器会话复用:直接利用现有网页登录状态,省去复杂的 OAuth 流程和开发者账号申请
- 输出格式友好:原生支持 JSON/JSON-Full 结构化输出,便于与
jq、pandas等工具链集成;--plain模式适配 CI/CD 环境 - 配置灵活:支持 JSON5 格式的全局/项目级配置文件,配合环境变量实现多环境管理
潜在局限与风险
账号安全层面:工具要求用户提供完整的会话 Cookie,本质上等同于共享登录凭证。虽然作者声称仅本地读取浏览器存储,但任意第三方 CLI 工具均存在密钥泄露或滥用的理论可能。Instagram 对非官方客户端有严格的反爬机制,异常 API 调用模式极易触发风控。
合规与稳定性:依赖私有 GraphQL 接口意味着功能随时可能因官方 API 变更而失效(如文档提及的 Query ID 过期需手动刷新)。长期使用存在账号被限制或封禁的实质风险,不适合企业级生产依赖。
功能边界:不支持媒体文件直接下载、Story/Reels 内容访问、私信功能等高频需求。
适合人群
数据研究者、社交媒体分析师、自动化测试开发者,以及需要批量获取公开 Instagram 数据的脚本编写者。不适合普通用户日常浏览或商业机构的正式运营场景。
常规风险
- 账号封禁:高频请求、异常 User-Agent、IP 地理位置突变均可能触发 Instagram 的安全验证或永久限制
- 隐私泄露:Cookie 文件包含敏感身份凭证,存储或传输不当可能导致账号被盗
- 法律合规:大规模自动化数据抓取可能违反平台 ToS 及当地数据保护法规(如 GDPR)