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 对每个钩子进行评分,并输出排名前三分之一与排名后三分之一之间的差异。
第四步:谨慎地解读结果
报告以下三项内容,不多也不少:
- 哪些公式在排名前三分之一中占比过高,并附上出现次数。两个公式在六个账号中各出现四次,这是一个发现。一个公式出现两次则不是。
- 排名前三分之一的 Reels 在结构上有什么共同点而排名后三分之一没有:钩子长度、回报是否通过视觉呈现、第一帧是否动态、要求放在哪里。
- 未分类的行。 分类器无法命名的每个钩子要么是噪声,要么是一个尚未收录到
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 都会读取它,这正是关键所在:此技能运行一次后,包中的其余技能将基于用户自己的证据而非默认值来工作。
此技能不会发布、关注、点赞或发送任何消息。它只读取。