Community写作与编辑github.com

Charee-Villapong/ig-viral

查找用户所在领域中当前真正有效的Instagram Reels,根据每条Reels超出其账号自身平均表现的程度进行排名,识别其使用的钩子公式,并将其转化为可直接拍摄的参考文件。

ig-viral 是什么?

ig-viral 是一个研究型技能,旨在帮助用户发现其领域内当前真正有效的 Instagram Reels 内容,而不仅仅依赖原始播放量。该技能的核心创新在于使用“异常倍数”(outlier multiple)——即单条 Reels 的播放量除以该账号过去 12 条 Reels 的中位数播放量——来识别那些真正起作用的内容模式,而不是被粉丝数误导。支持 Claude Code、Cursor 等通过浏览器或 YouTube Shorts 作为补充数据源进行操作,严格遵循 Instagram 使用条款(禁止爬虫、绝不代表用户登录或索要密码)。最终输出一个结构化的参考文件(swipe file),包含排名最高的钩子公式、未分类的新模式,并为用户生成三条可直接拍摄的个性化钩子。该技能每月运行一次,而非每日,因为内容公式通常持续一个季度。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Charee-Villapong/skills/tree/HEAD/ig-viral

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

ig-viral 是做什么的?

研究技能。本包中的其他技能负责创作;这个技能负责观察和收集。每月运行一次,而非每日。公式持续一个季度。

此文件夹中包含一个工具,执行方式如下:

python3 swipe.py captured.tsv --out ~/.claude/instagram/swipe.md

这个技能值得做的核心理念

原始播放量不是证据。 拥有两百万粉丝的账号获得 40 万播放量,那只是它平淡的一天。而一个只有四千粉丝的账号获得 40 万播放量,说明它发现了某种可复制的模式。

因此,这里的一切都是基于异常倍数进行排名:播放量除以该账号自己的近期中位数。高于 3 倍即为信号。低于 1.5 倍只是该账号的日常,无论数字看起来多大,都无法教给你任何东西。

收集的账号规模应在用户自身规模的 10 倍以内。一个在 200 万粉丝时有效的公式,往往只是因为它在 200 万粉丝的规模下才有效。

第一步:选择账号

询问用户 6 到 12 个账号,或提出建议并获得批准:

  • 4 个直接竞争对手 - 相同领域,相同产品,稍微领先。
  • 4 个相邻账号 - 不同领域,相同受众。这是行业外格式被借鉴的来源。
  • 2 到 4 个头部账号 - 规模大得多的账号,仅用于格式参考,绝不用于发布节奏或语气。

同时让用户打开他们自己的收藏夹。这是最快、最相关的语料库,并且已经过他们自己的品味筛选。

第二步:查看内容

使用当前会话实际可用的任何浏览工具:应用内浏览器、连接到用户自己 Chrome 的浏览器扩展,或计算机操作工具。没有 API 可供使用,也不需要,因为数据量小到足以人工阅读。

不可妥协的规则:

  • 绝不以用户身份登录 Instagram,绝不索要密码。 如果页面需要登录,用户自己应该已经登录。在他们面前驱动他们的浏览器,或请他们粘贴内容。
  • 这是读取,不是爬取。 十个账号,每个看十几条 Reels,以人类速度进行。大规模自动采集违反 Instagram 使用条款,并会导致账号被操作封禁。不要构建爬虫,不要使用爬取服务,也不要在后台循环执行此操作。
  • 复制公式,绝不复制视频本身。 钩子形状、结构、长度、剪辑模式。不要复制他们的脚本、他们的声音、他们的编辑。参考文件中的每一行都必须注明来源账号。

每条 Reels 需要记录的内容,以创作者自己的话表述:

字段说明
account账号名称
followers粉丝数(来自个人资料页)
median粗略查看最近 12 条 Reels 并取中位数播放量
views本条 Reels 的播放量
hook第一句话(口头或屏幕上的文字),逐字记录,包括语法错误
on-screen第一个文字卡片(如果与口头钩子不同)
length时长(秒)
cta结尾处的要求

中位数是关键。没有它,你就回到了按粉丝数排名的老路,而这正是本技能存在要解决的问题。

当 Instagram 无法显示足够内容时: 相同的钩子语法也存在于 YouTube Shorts 上,那里的播放量和字幕都是公开的,无需登录。这是一个合法的第二语料库,并且口头钩子更容易获取:

# 获取某个频道所有 Shorts 的播放量
python3 -m yt_dlp --flat-playlist --playlist-end 40 -J \
  "https://www.youtube.com/@HANDLE/shorts" > channel.json

# 获取某个 Shorts 的第一句口头钩子(来自自动字幕)
python3 -m yt_dlp --skip-download --write-auto-subs --sub-langs "en.*" \
  --sub-format json3 -o hook "https://www.youtube.com/watch?v=VIDEO_ID"

取所有时间戳在 3.0 秒内的字幕文字。那就是口头说出的钩子,而非书面写作的钩子。

第三步:排名

创建一个制表符分隔的文件,包含表头行,然后运行脚本:

account	followers	median	views	hook
@someone	48000	11000	412000	nobody tells you your first 30 reels are supposed to flop
python3 swipe.py captured.tsv --out ~/.claude/instagram/swipe.md

它会计算异常倍数,使用 /ig-reel 所使用的同一套 26 个钩子公式来命名钩子公式,用 hookscore.py 对每个钩子进行评分,并输出排名前三分之一与排名后三分之一之间的差异。

第四步:谨慎地解读结果

报告以下三项内容,不多也不少:

  1. 哪些公式在排名前三分之一中占比过高,并附上出现次数。两个公式在六个账号中各出现四次,这是一个发现。一个公式出现两次则不是。
  2. 排名前三分之一的 Reels 在结构上有什么共同点而排名后三分之一没有:钩子长度、回报是否通过视觉呈现、第一帧是否动态、要求放在哪里。
  3. 未分类的行。 分类器无法命名的每个钩子要么是噪声,要么是一个尚未收录到 hooks.json 中的新公式。人工阅读它们。这是输出中最有价值的列,也是脚本会打印数量的原因。

然后,用通俗的语言说明样本量和可信度。四十条 Reels 横跨六个账号可以支撑一个论断。十二条则不能,明确这一点是研究结果与星座运势之间的区别。

第五步:将其转化为可拍摄的内容

对于排名前三的公式,写出用户自己的版本:他们自己的故事,他们自己的数字,采用当前有效的结构。将每一个结果交给 /ig-reel,并已选择好公式 ID。

绝不输出“做一个像这样的 Reels”。而是提供一个他们明天就能说出的钩子。

输出格式

SWIPE  ·  38 条 Reels  ·  7 个账号  ·  基准线:账号中位数

异常值(高于 3 倍)
  38.4x  hook 86  #3  Nobody Tells You   @acct_a    412,000  (中位数 10,700)
  11.2x  hook 79  #9  The Steal          @acct_c    180,000  (中位数 16,100)
  ...

占比过高的模式
  #3 Nobody Tells You   在前三分之一中出现 5 次,后三分之一中 0 次
  #2 Negative Command   出现 4 次
  中位数钩子长度        前三分之一 8 个词,后三分之一 19 个词

未分类(6 个)
  其中两个是相同的结构,且 hooks.json 中未收录:一种以朗读他人评论开头的钩子。值得添加。

你的版本
  #3  "没人告诉你前 20 个提案都注定失败。"
  ...

将参考文件写入 ~/.claude/instagram/swipe.md。/ig-reel 和 /ig-plan 都会读取它,这正是关键所在:此技能运行一次后,包中的其余技能将基于用户自己的证据而非默认值来工作。

此技能不会发布、关注、点赞或发送任何消息。它只读取。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能