reels-scripting
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseReels Scripting
Reel脚本创作
CRITICAL: Auto-start on load
重要提示:加载后自动启动
When this skill triggers, go straight to Step 1. Do not summarise.
触发此技能后,直接进入步骤1,无需进行总结。
Prerequisites
前置条件
This skill needs:
- environment variable (Instagram scraping)
APIFY_API_TOKEN - environment variable (Gemini 2.5 Flash video analysis)
GOOGLE_AI_API_KEY - Node.js 18+ and the and
apify-clientpackages@google/generative-ai
If either env var is missing, tell the user to run:
! export APIFY_API_TOKEN=your_token
! export GOOGLE_AI_API_KEY=your_keyThen stop until both are set.
此技能需要:
- 环境变量(用于Instagram爬取)
APIFY_API_TOKEN - 环境变量(用于Gemini 2.5 Flash视频分析)
GOOGLE_AI_API_KEY - Node.js 18及以上版本,以及和
apify-client包@google/generative-ai
如果任一环境变量缺失,请告知用户运行以下命令:
! export APIFY_API_TOKEN=your_token
! export GOOGLE_AI_API_KEY=your_key之后暂停操作,直到两个变量都配置完成。
Step 1. Get the reference
步骤1:获取参考资源
Ask:
Paste the reference Reel URL or Notion link. This is the outlier Reel you want to reverse-engineer the format from.
Wait for the URL.
If the user pastes a Notion link, follow it via WebFetch, locate the Instagram Reel URL on the page, and extract it. If no Reel URL is found on the Notion page, ask the user to paste the Reel URL directly.
询问用户:
请粘贴参考Reel的URL或Notion链接。这是你想要逆向解析格式的优质Reel。
等待用户提供URL。
如果用户粘贴的是Notion链接,通过WebFetch访问该页面,定位并提取页面中的Instagram Reel URL。如果在Notion页面中未找到Reel URL,请让用户直接粘贴Reel URL。
Step 2. Get the newsletter topic
步骤2:获取时事通讯主题
Ask:
What's the topic from your newsletter you want to repurpose into this Reel? Paste the relevant newsletter section, or type the core idea in a sentence.
Wait for the topic. Read newsletter-voice.md, voice.md, and about-me.md from the project if they exist, so the script matches the user's voice.
询问用户:
你想要将时事通讯中的哪个主题复用为这个Reel的内容?请粘贴相关的时事通讯段落,或用一句话描述核心观点。
等待用户提供主题。如果项目中存在newsletter-voice.md、voice.md和about-me.md文件,请读取这些文件,确保脚本符合用户的个人风格。
Step 3. Scrape and download the Reel
步骤3:爬取并下载Reel
Create if it does not exist. Write a Node.js script at that:
~/Desktop/Reels/~/Desktop/Reels/analyse-reel.js- Uses to call
apify-clientwithapify/instagram-reel-scraper. If that returns no items, fall back to{ directUrls: [reelUrl], resultsLimit: 1 }, then{ urls: [reelUrl], resultsLimit: 1 }withapify/instagram-scraper.{ directUrls: [reelUrl], resultsType: 'posts', resultsLimit: 1 } - Extracts from the returned item.
videoUrl - Downloads the video to .
~/Desktop/Reels/downloads/{username}_{shortCode}.mp4 - Saves raw scrape data to .
~/Desktop/Reels/reel_data_{shortCode}.json
Run the script. Confirm file size and metadata (views, likes, comments, caption first 200 chars) before continuing.
如果目录不存在则创建它。在路径下编写Node.js脚本,实现以下功能:
~/Desktop/Reels/~/Desktop/Reels/analyse-reel.js- 使用调用
apify-client,参数为apify/instagram-reel-scraper。如果未返回任何结果,则 fallback 到参数{ directUrls: [reelUrl], resultsLimit: 1 },再尝试使用{ urls: [reelUrl], resultsLimit: 1 },参数为apify/instagram-scraper。{ directUrls: [reelUrl], resultsType: 'posts', resultsLimit: 1 } - 从返回结果中提取。
videoUrl - 将视频下载到路径。
~/Desktop/Reels/downloads/{username}_{shortCode}.mp4 - 将原始爬取数据保存到文件。
~/Desktop/Reels/reel_data_{shortCode}.json
运行该脚本。在继续下一步前,确认文件大小和元数据(浏览量、点赞数、评论数、前200字符的标题)。
Step 4. Analyse with Gemini 2.5 Flash
步骤4:使用Gemini 2.5 Flash进行分析
Extend the Node script (or run a second pass) that:
- Reads the downloaded as base64.
.mp4 - Calls .
genAI.getGenerativeModel({ model: 'gemini-2.5-flash' }) - Sends the video with this exact prompt:
I'm studying this Reel to write my own script in a similar style for my audience of [AUDIENCE FROM about-me.md].扩展上述Node脚本(或运行第二遍脚本),实现以下功能:
- 将下载的文件读取为base64格式。
.mp4 - 调用。
genAI.getGenerativeModel({ model: 'gemini-2.5-flash' }) - 将视频与以下精确提示词一起发送:
I'm studying this Reel to write my own script in a similar style for my audience of [AUDIENCE FROM about-me.md].Full Transcript
Full Transcript
- Transcribe EVERY word with timestamps
- Transcribe EVERY word with timestamps
Hook
Hook
- Exact first words spoken
- Word count of the hook
- What makes it stop the scroll?
- Exact first words spoken
- Word count of the hook
- What makes it stop the scroll?
Language Patterns
Language Patterns
- Average sentence length
- You/your vs I/me ratio
- Transitions between points
- Where are the 'just' minimisers?
- Average sentence length
- You/your vs I/me ratio
- Transitions between points
- Where are the 'just' minimisers?
Structure
Structure
- Total duration
- Section breakdown with timings
- What's the before/after moment?
- What's the CTA?
- Total duration
- Section breakdown with timings
- What's the before/after moment?
- What's the CTA?
One key insight
One key insight
- The single most important technique to learn from this Reel
Save the analysis to `~/Desktop/Reels/analysis_reference_{shortCode}.md`.- The single most important technique to learn from this Reel
将分析结果保存到`~/Desktop/Reels/analysis_reference_{shortCode}.md`文件。Step 5. Write the new Reel script
步骤5:编写新的Reel脚本
Using the analysis from Step 4, the newsletter topic from Step 2, and the user's voice files, write a new Reel script to .
~/Desktop/Reels/reel-[slug].mdApply these rules (non-negotiable):
利用步骤4的分析结果、步骤2的时事通讯主题以及用户的风格文件,编写新的Reel脚本并保存到。
~/Desktop/Reels/reel-[slug].md必须遵循以下规则:
Hook
钩子部分
- Never open with "I". Use "this", "you", a fact, or a name drop.
- Proven formats: "This changed... forever" / negative flip ("X is useless unless...") / capability statement.
- Hook creates curiosity or pattern interrupt within 3 seconds.
- Mirror the hook's word count and structure from the reference analysis.
- 开头绝不能用“我”。使用“这”“你”、一个事实或提及某个名称。
- 经验证的格式:“这永远改变了……” / 反向表述(“除非……否则X毫无用处”) / 能力声明。
- 钩子需在3秒内引发好奇心或打破常规模式。
- 匹配参考分析中钩子的字数和结构。
Body
主体部分
- British English. Short sentences. No em dashes, no semicolons.
- Use "you" and "just" conversationally ("you just drop in...").
- Never merge three or more staccato fragments. Combine into one flowing sentence.
- Never state the conclusion. Let the facts do the work.
- No "link in bio". Use comment automation.
- 使用英式英语。句子简短。不要使用破折号和分号。
- 口语化使用“你”和“只需”(例如“你只需加入……”)。
- 绝不能合并三个或更多零散短句。要整合成一个流畅的句子。
- 绝不能直接给出结论。让事实自行说明问题。
- 不要使用“简介中的链接”。使用评论自动化功能。
Comment trigger
评论触发词
- Single caps word only (SCRIPT, WIKI, PROMPTS, VIDEO).
- Must directly relate to what is being promised.
- No quotes, no "below", no trailing punctuation.
- 仅使用单个大写单词(如SCRIPT、WIKI、PROMPTS、VIDEO)。
- 必须与承诺的内容直接相关。
- 不要使用引号、“下方”或末尾标点。
CTA
行动号召(CTA)
- "Comment [WORD] and I'll send you [specific thing]"
- Short. No "the link to my full" padding.
- 格式为“评论[单词],我会发给你[具体内容]”
- 简短。不要添加“我的完整……链接”这类冗余内容。
Duration and structure
时长与结构
- Target 30 to 45 seconds total.
- 2 key points maximum, not 3.
- Caption mirrors the script. Update both together.
- 总时长目标为30至45秒。
- 最多包含2个核心观点,而非3个。
- 标题与脚本内容一致。需同步更新两者。
Script file structure
脚本文件结构
undefinedundefinedReel: [title]
Reel: [title]
Reference analysis
Reference analysis
- URL: [reel url]
- Views: [number]
- Key technique: [from Gemini analysis]
- URL: [reel url]
- Views: [number]
- Key technique: [from Gemini analysis]
Duration target
Duration target
30-45 seconds
30-45 seconds
Hook (0-3s)
Hook (0-3s)
[Exact words]
[Exact words]
Point 1 ([start]-[end]s)
Point 1 ([start]-[end]s)
[Exact words]
[Exact words]
Point 2 ([start]-[end]s)
Point 2 ([start]-[end]s)
[Exact words]
[Exact words]
CTA ([start]-[end]s)
CTA ([start]-[end]s)
[Exact words including "Comment [WORD]"]
[Exact words including "Comment [WORD]"]
Caption
Caption
[Mirror the script, formatted for Instagram]
[Mirror the script, formatted for Instagram]
Comment trigger
Comment trigger
[WORD]
[WORD]
Deliverable
Deliverable
[What the comment trigger unlocks]
[What the comment trigger unlocks]
Visual notes
Visual notes
[Cuts, B-roll ideas, text overlays]
undefined[Cuts, B-roll ideas, text overlays]
undefinedStep 6. QA loop
步骤6:QA循环
Score the script against the rules in Step 5. Every violation must be fixed. Re-score until the script hits 95/100. Never show the user anything below 95.
Common violations to check:
- Opens with "I"
- Staccato fragments of three or more
- States the conclusion
- Multi-word or stylised comment trigger
- Duration over 45 seconds when read aloud
- 3 points instead of 2
- Caption does not mirror script
根据步骤5的规则对脚本进行评分。所有违规项必须修正。重新评分直到脚本达到95/100分。绝不能向用户展示低于95分的脚本。
需检查的常见违规项:
- 开头使用“我”
- 三个或更多零散短句
- 直接给出结论
- 多词或风格化的评论触发词
- 朗读时长超过45秒
- 包含3个观点而非2个
- 标题与脚本内容不一致
Step 7. Offer the pipeline
步骤7:提供后续流程选项
After the script is approved, offer:
Two paths from here:
- Record it yourself.
- Auto-generate with ElevenLabs (voice) + HeyGen (avatar) + Remotion (motion graphics). If you have the my-video project configured, run
with this script config.npm run pipeline:claude-routines
脚本通过审核后,向用户提供以下选项:
从这里开始有两种选择:
- 自行录制。
- 使用ElevenLabs(语音)+ HeyGen(虚拟形象)+ Remotion(动态图形)自动生成。如果你已配置my-video项目,请使用此脚本配置运行
。npm run pipeline:claude-routines
Rules
规则
- Never skip the 95/100 QA gate.
- Always read voice.md and about-me.md before writing. Voice match is non-negotiable.
- Never invent metrics from the reference Reel. Use only what Apify returns.
- British English. No em dashes. No semicolons.
- Every script deliverable includes the exact caption and comment trigger alongside the script. Never deliver just the script.
- If the reference Reel scrape fails across all three actor variants, report the failure and stop. Do not fabricate analysis.
- Gemini 2.5 Flash is the model. Do not substitute without the user's approval.
- 绝不能跳过95/100分的QA门槛。
- 编写脚本前必须读取voice.md和about-me.md文件。风格匹配是硬性要求。
- 绝不能编造参考Reel的指标。仅使用Apify返回的数据。
- 使用英式英语。不要使用破折号和分号。
- 每个交付的脚本必须包含对应的精确标题和评论触发词。绝不能只交付脚本本身。
- 如果三种爬虫工具都无法爬取参考Reel,请报告失败并停止操作。绝不能编造分析结果。
- 必须使用Gemini 2.5 Flash模型。未经用户批准不得替换。