SuperAPI AI 工具集

social-fetch

通用与其它

查看项目

更新于 10-16 09:13

技能介绍

social-fetch 是一个按 URL 抓取社交帖子的技能,目标是把不同平台的内容统一成同一种 JSON 输出。它改编自 Corey Haines 的 Maker Skills social-fetch(https://github.com/coreyhaines31/makerskills),许可说明见 references/attribution.md。

用途 当用户提供一个社交帖子 URL 需要读取,或其他任务需要该帖子的内容时使用。它只负责从 URL 抓取结构化数据,不负责在 Reddit 上执行收件箱、投票、评论等操作——那些应使用 reddit machine 技能。它也不适用于 YouTube、Loom、Vimeo 或其他视频托管站点,这些需要转录或观看工作流,而不是社交帖子抓取。

主要能力

  1. 平台识别:根据 URL 模式判断平台。x.com//status/ 或 twitter.com//status/ 对应 x;linkedin.com/posts/* 或 linkedin.com/feed/update/urn:li:activity:* 对应 linkedin;linkedin.com/in/(个人资料、近期动态)对应 linkedin-profile;instagram.com/p/ 或 instagram.com/reel/* 对应 instagram;tiktok.com/@/video/ 对应 tiktok;bsky.app/profile//post/ 对应 bluesky;reddit.com/r//comments/ 对应 reddit;https://<instance>/@<user>/<id>(Mastodon)对应 mastodon;threads.net/@/post/ 对应 threads;news.ycombinator.com/item?id= 对应 hn。若 URL 不匹配以上任何模式,则检查其公开目标以识别平台;只有在目标仍不明确或无法访问时才询问。
  2. 策略链:读取 references/strategies.md,每个平台都有一条“免费优先”的策略链。Bluesky、Mastodon、HN、Reddit 有公开 API,直接使用。X、LinkedIn、Instagram、TikTok、Threads 需要预览、存档或付费回退才能获得完整数据。付费策略(ScrapeCreators、Apify)仅在环境密钥已设置且用户已为该任务授权该付费服务时运行;未经批准的付费回退需先询问,已获批准的不重复询问,详见 references/auth-keys.md。优先直接抓取而非有头浏览器;当登录墙需要渲染预览时,使用 Codex 内置的 computer use 和浏览器工具。
  3. 执行流程:按顺序尝试每个策略;成功则解析、规范化并返回;失败(404、402、认证墙、空响应体)则记录原因并尝试下一个。策略链耗尽后,说明运行了哪些策略、各自为何失败,以及什么能解锁下一步(通常是 $SCRAPECREATORS_API_KEY 或 $APIFY_API_TOKEN)。
  4. 规范化输出:所有平台返回同一结构,无对应值的字段为 null 而非 0,缺失不等于零。结构包含 platform、url、fetched_at、raw_source、author(handle、name、verified)、posted_at、text、media、engagement(likes、reposts、replies、bookmarks、views)、is_thread、thread、replies。

使用方式 可选参数:--with-replies 抓取一层顶层回复(付费路径会额外消耗配额);--thread 抓取同作者线程(平台暴露时);--raw 包含原始 API 或抓取负载;--media 将图片/视频下载到 ~/Documents/social-fetches/<platform>-<id>/;--save 将 JSON 写入 ~/Documents/social-fetches/<platform>-<id>.json;--no-cache 跳过 24 小时缓存。默认只抓帖子本身,不抓回复,不下载媒体(仅保留 URL)。 缓存:若 ~/Documents/social-fetches/_cache/ 存在,成功结果会以 <platform>-<id>.json 缓存 24 小时;在 --no-cache、--with-replies 和 --thread 时跳过缓存。 返回内容:一行摘要 <platform> · <handle> · <posted_at> · "<short text>",以及 JSON,或在设置 --save 时返回保存路径。若结果不完整,需说明并指出能填补缺口的密钥。

适用场景 需要读取或引用某个社交帖子内容的任务,例如汇总、分析、存档或作为其他工作流的输入。

限制 X:免费策略通常只返回文本、作者和基础互动数据,完整线程和回复需要付费密钥。LinkedIn:浏览器在关闭注册弹窗后可查看个人资料的近期动态,但具体的 linkedin.com/posts/... URL 通常需要付费回退。Instagram / TikTok / Threads:反机器人机制较强,付费回退是可靠路径。Bluesky / Mastodon / HN / Reddit:免费且可靠。私密或已删除:停止;对于已删除的公开帖子,Wayback 是唯一额外尝试。若同一付费受限平台在一次会话中失败三次,只询问一次是否设置密钥,不要反复催促。