如何构建一台永不枯竭的 AI 内容创作引擎

@sairahul1
TIẾNG ANH1 tháng trước · 16 thg 6, 2026
376K
268
34
24
884

TL;DR

本指南详细介绍了如何利用 ScrapeCreators、Kie.ai 和 Postiz 构建一套五层自动化系统,实现对病毒式热点的捕捉、核心模式的提取,以及通过持续反馈循环生成原生平台内容。

大多数创作者并不是缺乏灵感。

他们缺乏的是系统。

每天,他们打开一个空白页面。

盯着它。

向 ChatGPT 要创意。

得到一些千篇一律的东西。

重写它。

还是发出去。

查看数据。

毫无感觉。

明天再来一遍。

这不是内容策略。

这是内容跑步机。

这才是真正的内容机器该有的样子。

Rahul - inline image

随机灵感 ↓ 随机帖子 ↓ 随机结果 ↓ 明天再来一遍

对比:

每天抓取爆款内容 ↓ 提取钩子和模式 ↓ 不断积累的创意数据库 ↓ AI 生成平台原生帖子 ↓ Kie 生成视觉和视频 ↓ Postiz 排期发布 ↓ 效果反馈回系统 ↓ 明天更好的创意

一个是苦差事。一个是机器。

下面就是搭建它的具体方法。

创作者真正的问题

不是创造力的问题。

是记忆和反馈循环的问题。

你发了一个内容。表现不错。你却忘了为什么。

你发了另一个。扑街了。你完全不知道区别在哪。

你刷了半天灵感,却没以有用的格式保存任何东西。

你问 AI 要创意,却没给任何关于过去什么奏效的上下文。

所以每次都是从零开始。

真正的内容机器解决了这个问题。

它捕捉什么管用。存储起来。从中学习。自动改进。

实现这一切的工具:

→ ScrapeCreators — 从 35+ 个平台抓取爆款公开数据

Kie.ai — 按需生成图片、视频和音频

→ Postiz — 跨平台排期发布

(顺便说一句,你可以在 nichetraffickit.com 通过一键自动化完成所有这些以及更多操作)

5 个层级。下面是它们如何连接。

第一层 — 用 ScrapeCreators 抓取爆款内容

Rahul - inline image

机器需要燃料。

燃料就是爆款内容——那些在你的领域里、在你受众使用的平台上已经起效的内容。

ScrapeCreators 提供了 REST API,可以从 35+ 个平台拉取公开数据。

无需手动刷屏。无需截图。只有结构化数据,直接输入你的系统。

你可以拉取:

→ TikTok 热门推荐 — 当前正在爆火的内容

→ TikTok 个人主页视频 — 任意账号的热门视频

→ TikTok 评论 — 受众真实的心声

→ Instagram 热门 Reels — 正在流行的格式

→ Instagram 话题标签搜索 — 你领域的精准内容

→ YouTube 热门 Shorts — 60 秒内起效的创意

→ Reddit 子版块帖子 — 受众最原始的痛点

→ Twitter/X 用户推文 — 你领域账号的热门帖子

→ Pinterest 搜索 — 你领域的视觉内容

全部通过一个 x-api-key 请求头进行身份验证。

以下是 Python 中的抓取循环:

python
1import requests
2import json
3from datetime import datetime
4
5SCRAPE_API_KEY = "your_api_key_here" # 在 app.scrapecreators.com 获取
6
7BASE_URL = "https://api.scrapecreators.com"
8
9HEADERS = {
10 "x-api-key": SCRAPE_API_KEY,
11 "Content-Type": "application/json"
12}
13
14def get_tiktok_trending(count=30):
15 """拉取 TikTok 热门推荐 — 最有效的信号"""
16 response = requests.get(
17 f"{BASE_URL}/v1/tiktok/get-trending-feed",
18 headers=HEADERS,
19 params={"count": count}
20 )
21 return response.json()
22
23def get_tiktok_profile_videos(username, count=20):
24 """拉取任意竞争对手/灵感账号的热门视频"""
25 response = requests.get(
26 f"{BASE_URL}/v3/tiktok/profile/videos",
27 headers=HEADERS,
28 params={"username": username, "count": count}
29 )
30 return response.json()
31
32def get_tiktok_video_comments(video_url, count=50):
33 """拉取评论 — 受众最真实的声音、痛点、反应"""
34 response = requests.get(
35 f"{BASE_URL}/v1/tiktok/video/comments",
36 headers=HEADERS,
37 params={"video_url": video_url, "count": count}
38 )
39 return response.json()
40
41def get_instagram_trending_reels(count=20):
42 """拉取 Instagram 热门 Reels"""
43 response = requests.get(
44 f"{BASE_URL}/v1/instagram/reels/trending",
45 headers=HEADERS,
46 params={"count": count}
47 )
48 return response.json()
49
50def get_reddit_pain_points(subreddit, sort="hot", limit=25):
51 """拉取 Reddit 帖子 — 未经修饰的受众语言"""
52 response = requests.get(
53 f"{BASE_URL}/v1/reddit/subreddit",
54 headers=HEADERS,
55 params={"subreddit": subreddit, "sort": sort, "limit": limit}
56 )
57 return response.json()
58
59def get_youtube_trending_shorts(count=20):
60 """拉取热门 YouTube Shorts,获取短内容创意"""
61 response = requests.get(
62 f"{BASE_URL}/v1/youtube/shorts/trending",
63 headers=HEADERS,
64 params={"count": count}
65 )
66 return response.json()
67
68def run_daily_capture(niche_accounts, subreddits):
69 """每天全平台抓取"""
70 captured = {
71 "date": datetime.now().isoformat(),
72 "tiktok_trending": get_tiktok_trending(30),
73 "instagram_reels": get_instagram_trending_reels(20),
74 "youtube_shorts": get_youtube_trending_shorts(20),
75 "competitor_videos": [],
76 "reddit_posts": []
77 }
78
79 # 从竞争对手/领域账号拉取
80 for account in niche_accounts:
81 videos = get_tiktok_profile_videos(account, count=10)
82 captured["competitor_videos"].extend(
83 videos.get("videos", [])
84 )
85
86 # 拉取 Reddit 痛点
87 for sub in subreddits:
88 posts = get_reddit_pain_points(sub)
89 captured["reddit_posts"].extend(
90 posts.get("posts", [])
91 )
92
93 # 保存到内容数据库
94 with open(f"capture_{datetime.now().strftime('%Y%m%d')}.json", "w") as f:
95 json.dump(captured, f, indent=2)
96
97 print(f"捕获: {len(captured['competitor_videos'])} 个视频, "
98 f"{len(captured['reddit_posts'])} 个 Reddit 帖子")
99 return captured
100
101# 每天运行
102if __name__ == "__main__":
103 run_daily_capture(
104 niche_accounts=["account1", "account2", "account3"],
105 subreddits=["entrepreneurship", "SideProject", "AItools"]
106 )

每天早上运行。

醒来时你手里就有一份新鲜的 JSON 文件,里面装满了昨晚在各大平台上表现最好的内容。

这就是你的原材料。

第二层 — 用 AI 提取模式

Rahul - inline image

原始数据不是创意。

你有 200 个爆款视频。

你需要知道的是:它们为什么火。

把抓取到的数据喂给 Claude。提取模式。

python
1import anthropic
2import json
3
4client = anthropic.Anthropic() # 使用 ANTHROPIC_API_KEY 环境变量
5
6def extract_content_patterns(captured_data):
7 """
8 将爆款内容数据喂给 Claude。
9 提取钩子、格式、情绪、模板。
10 """
11
12 # 格式化数据以便分析
13 video_sample = []
14 for video in captured_data.get("tiktok_trending", {}).get("videos", [])[:20]:
15 video_sample.append({
16 "description": video.get("desc", ""),
17 "views": video.get("stats", {}).get("playCount", 0),
18 "likes": video.get("stats", {}).get("diggCount", 0),
19 "comments": video.get("stats", {}).get("commentCount", 0),
20 "shares": video.get("stats", {}).get("shareCount", 0),
21 })
22
23 reddit_sample = []
24 for post in captured_data.get("reddit_posts", [])[:15]:
25 reddit_sample.append({
26 "title": post.get("title", ""),
27 "upvotes": post.get("score", 0),
28 "comments": post.get("num_comments", 0),
29 })
30
31 prompt = f"""
32你是一名爆款内容策略师,正在分析社交媒体表现数据。
33
34以下是今天捕获的爆款内容数据:
35
36TIKTOK 热门视频:
37{json.dumps(video_sample, indent=2)}
38
39REDDIT 帖子(受众痛点):
40{json.dumps(reddit_sample, indent=2)}
41
42分析这些数据并提取:
43
441. 前 5 个钩子
45 - 开头语或文字覆盖模式
46 - 为什么能触发「停下来」的反应
47 - 触发的情绪:好奇 / 恐惧 / 错失恐惧 / 解脱 / 认同
48
492. 前 5 种内容格式
50 - 内容结构(步骤式 / 故事 / 对比 / 列表)
51 - 这种格式为什么在该平台有效
52
533. 前 5 个受众痛点
54 - 来自 Reddit 和视频评论的真实问题
55 - 受众使用的原话(他们的话,不是营销话术)
56
574. 10 个原创内容创意
58 - 基于什么有效 + 痛点
59 - 每个创意:[钩子] + [格式] + [平台] + [为什么有效]
60
61仅以结构化 JSON 输出,不要前言。
62
63JSON 结构:
64{{
65 "hooks": [
66 {{"hook": "...", "emotion": "...", "why_it_works": "..."}}
67 ],
68 "formats": [
69 {{"format": "...", "structure": "...", "why_it_works": "..."}}
70 ],
71 "pain_points": [
72 {{"pain": "...", "exact_language": "...", "frequency": "..."}}
73 ],
74 "content_ideas": [
75 {{
76 "hook": "...",
77 "format": "...",
78 "platform": "...",
79 "why_it_will_work": "...",
80 "estimated_emotion": "..."
81 }}
82 ]
83}}
84"""
85
86 response = client.messages.create(
87 model="claude-sonnet-4-6",
88 max_tokens=2000,
89 messages=[{"role": "user", "content": prompt}]
90 )
91
92 # 解析 JSON 响应
93 raw = response.content[0].text
94 return json.loads(raw)
95
96# 示例输出:
97# {
98# "hooks": [
99# {
100# "hook": "我用 3 个文件替代了整个内容团队",
101# "emotion": "好奇 + 错失恐惧",
102# "why_it_works": "身份挑战 + 看似不可能的声明"
103# }
104# ],
105# "pain_points": [
106# {
107# "pain": "两周后就没灵感了",
108# "exact_language": "我再也不知道该发什么了",
109# "frequency": "高"
110# }
111# ]
112# }

每天你都会得到一份新鲜的分析。

新的钩子。新的格式。你的受众此刻正在表达的新的痛点。

不是永不过时的猜测。是实时模式。

第三层 — 构建创意记忆

Rahul - inline image

这就是「永远不会枯竭」的部分。

大多数人只问 AI 要一次创意。

拿到一个列表。

用掉一些。

忘掉剩下的。

机器存储一切,并随时间积累。

你的创意记忆有 6 个存储库:

→ 钩子库 — 每个起效的钩子,按情绪和平台标记

→ 获胜格式 — 持续表现良好的结构

→ 受众语言 — 你的受众使用的原话,来自 Reddit 和评论

→ 内容创意 backlog — 已生成但待产出的创意

→ 帖子表现日志 — 你发布了什么,效果如何

→ 你的声音规则 — 什么像你,什么不像你

python
1import json
2from datetime import datetime
3from pathlib import Path
4
5class ContentBrain:
6 """
7 你内容机器的记忆层。
8 存储和检索模式、创意和表现数据。
9 每周变得更聪明。
10 """
11
12 def __init__(self, db_path="content_brain.json"):
13 self.db_path = Path(db_path)
14 self.brain = self._load()
15
16 def _load(self):
17 if self.db_path.exists():
18 with open(self.db_path) as f:
19 return json.load(f)
20 return {
21 "hooks": [],
22 "formats": [],
23 "pain_points": [],
24 "ideas_backlog": [],
25 "performance_log": [],
26 "voice_rules": {
27 "always": [],
28 "never": [],
29 "examples": []
30 }
31 }
32
33 def _save(self):
34 with open(self.db_path, "w") as f:
35 json.dump(self.brain, f, indent=2)
36
37 def add_patterns(self, extracted_patterns):
38 """添加今天抓取中提取的模式"""
39 today = datetime.now().isoformat()
40
41 for hook in extracted_patterns.get("hooks", []):
42 hook["added"] = today
43 hook["used_count"] = 0
44 self.brain["hooks"].append(hook)
45
46 for pain in extracted_patterns.get("pain_points", []):
47 pain["added"] = today
48 self.brain["pain_points"].append(pain)
49
50 for idea in extracted_patterns.get("content_ideas", []):
51 idea["added"] = today
52 idea["status"] = "pending"
53 self.brain["ideas_backlog"].append(idea)
54
55 self._save()
56 print(f"添加了 {len(extracted_patterns.get('hooks', []))} 个钩子,"
57 f"{len(extracted_patterns.get('content_ideas', []))} 个创意")
58
59 def get_next_ideas(self, platform=None, count=5):
60 """从 backlog 中拉取下一个未使用的创意"""
61 pending = [i for i in self.brain["ideas_backlog"]
62 if i["status"] == "pending"]
63
64 if platform:
65 pending = [i for i in pending if i.get("platform") == platform]
66
67 return pending[:count]
68
69 def mark_used(self, idea_hook, performance=None):
70 """标记创意为已使用,并可选记录表现"""
71 for idea in self.brain["ideas_backlog"]:
72 if idea["hook"] == idea_hook:
73 idea["status"] = "used"
74 idea["used_date"] = datetime.now().isoformat()
75 if performance:
76 idea["performance"] = performance
77 break
78
79 if performance:
80 self.brain["performance_log"].append({
81 "hook": idea_hook,
82 "performance": performance,
83 "date": datetime.now().isoformat()
84 })
85
86 self._save()
87
88 def get_top_hooks(self, emotion=None, limit=10):
89 """从库中获取最佳钩子"""
90 hooks = self.brain["hooks"]
91 if emotion:
92 hooks = [h for h in hooks if h.get("emotion") == emotion]
93 return hooks[:limit]
94
95 def get_backlog_size(self):
96 pending = [i for i in self.brain["ideas_backlog"]
97 if i["status"] == "pending"]
98 return len(pending)
99
100 def weekly_summary(self):
101 """大脑的总结"""
102 return {
103 "total_hooks": len(self.brain["hooks"]),
104 "ideas_pending": self.get_backlog_size(),
105 "ideas_used": len([i for i in self.brain["ideas_backlog"]
106 if i["status"] == "used"]),
107 "pain_points_tracked": len(self.brain["pain_points"]),
108 "posts_logged": len(self.brain["performance_log"])
109 }
110
111# 使用
112brain = ContentBrain()
113print(brain.weekly_summary())
114# 30 天后:
115# {
116# "total_hooks": 147,
117# "ideas_pending": 83,
118# "ideas_used": 64,
119# "pain_points_tracked": 210,
120# "posts_logged": 64
121# }

30 天后你有 150+ 个钩子。

90 天后你有 400+ 个创意在 backlog 中。

机器永远不会归零。

第四层 — 用 AI + Kie.ai 生成内容

Rahul - inline image

大脑有了创意。

现在你需要产出实际的内容。

文字帖子:Claude 原生生成。视觉、图片、视频:由 Kie.ai 处理。

以下是完整的生成流程:

python
1import anthropic
2import requests
3import json
4
5client = anthropic.Anthropic()
6
7KIE_API_KEY = "your_kie_api_key" # kie.ai
8KIE_BASE_URL = "https://api.kie.ai"
9
10# ── 文字生成 ───────────────────────────────────
11
12def generate_platform_post(idea, platform, voice_rules):
13 """
14 根据创意生成平台原生帖子。
15 使用 Content Brain 中的声音规则。
16 """
17
18 platform_guides = {
19 "twitter": "短小精悍,小写,无标签,每句话之间换行。不超过 280 字符或使用线程格式。",
20 "linkedin": "专业但人性化,个人叙事,第一人称故事加感悟,1300-2000 字符。",
21 "instagram": "视觉优先,轮播格式,第一张幻灯片用粗体钩子,每张不超过 30 字,末尾放保存行动号召。",
22 "tiktok": "45-60 秒视频脚本,前 2 秒出现钩子,展示而非讲述,自然口语。",
23 "reddit": "乐于助人,不推销,真正有用的内容,社区口吻,值得被点赞。"
24 }
25
26 prompt = f"""
27你是一名 {platform} 的爆款内容写手。
28
29创意:
30钩子:{idea['hook']}
31格式:{idea['format']}
32痛点:{idea.get('pain_point', '未指定')}
33要触发的情绪:{idea.get('emotion', '好奇')}
34
35{platform} 的平台规则:
36{platform_guides.get(platform, '请自然地为该平台写作。')}
37
38声音规则(必须遵守):
39始终:{', '.join(voice_rules.get('always', []))}
40绝不:{', '.join(voice_rules.get('never', []))}
41
42现在写完整的帖子。可直接发布。不要前言。
43"""
44
45 response = client.messages.create(
46 model="claude-sonnet-4-6",
47 max_tokens=1000,
48 messages=[{"role": "user", "content": prompt}]
49 )
50
51 return response.content[0].text
52
53# ── 视觉生成 (KIE.AI) ────────────────────────
54
55def generate_image_kie(prompt_text, style="photorealistic"):
56 """
57 使用 Kie.ai 生成图片。
58 返回图片 URL。
59 """
60 response = requests.post(
61 f"{KIE_BASE_URL}/v1/images/generate",
62 headers={
63 "Authorization": f"Bearer {KIE_API_KEY}",
64 "Content-Type": "application/json"
65 },
66 json={
67 "prompt": prompt_text,
68 "style": style,
69 "width": 1080,
70 "height": 1920, # 竖屏适合社交媒体
71 "quality": "high"
72 }
73 )
74 data = response.json()
75 return data.get("image_url")
76
77def generate_video_kie(script, voice="natural", duration=60):
78 """
79 使用 Kie.ai 根据脚本生成短视频。
80 返回视频 URL。
81 """
82 response = requests.post(
83 f"{KIE_BASE_URL}/v1/videos/generate",
84 headers={
85 "Authorization": f"Bearer {KIE_API_KEY}",
86 "Content-Type": "application/json"
87 },
88 json={
89 "script": script,
90 "voice": voice,
91 "duration_seconds": duration,
92 "format": "mp4",
93 "aspect_ratio": "9:16"
94 }
95 )
96 data = response.json()
97 return data.get("video_url")
98
99def generate_carousel_visuals(slides, brand_colors=None):
100 """
101 为 Instagram/LinkedIn 生成轮播幻灯片图片。
102 每张幻灯片一张图片。
103 """
104 image_urls = []
105
106 for i, slide in enumerate(slides):
107 visual_prompt = f"""
108创建一张干净、大胆的社交媒体轮播幻灯片。
109
110文字叠层:"{slide['text']}"
111幻灯片编号:{i + 1}/{len(slides)}
112风格:简约、高对比度、专业
113背景:深色配浅色文字 或 浅色配深色文字,交替
114字体风格:粗体、无衬线、手机尺寸下易读
115{"品牌色:" + str(brand_colors) if brand_colors else ""}
116
117不要有图库照片感。要有编辑感、现代、让人忍不住想看。
118"""
119 url = generate_image_kie(visual_prompt, style="graphic design")
120 image_urls.append(url)
121 print(f"生成幻灯片 {i+1}: {url}")
122
123 return image_urls
124
125# ── 完整生产流程 ──────────────────────────
126
127def produce_content_batch(brain, platforms=None, ideas_per_platform=2):
128 """
129 从大脑中拉取创意,为每个平台生成内容。
130 返回准备排期的批次。
131 """
132 if platforms is None:
133 platforms = ["twitter", "linkedin", "instagram", "tiktok"]
134
135 voice_rules = brain.brain["voice_rules"]
136 batch = []
137
138 for platform in platforms:
139 ideas = brain.get_next_ideas(platform=platform, count=ideas_per_platform)
140
141 for idea in ideas:
142 print(f"\n生成 {platform} 帖子: {idea['hook'][:50]}...")
143
144 post_text = generate_platform_post(idea, platform, voice_rules)
145
146 produced = {
147 "platform": platform,
148 "idea": idea,
149 "text": post_text,
150 "media": None
151 }
152
153 # 为 Instagram 轮播生成视觉
154 if platform == "instagram" and "carousel" in idea.get("format", "").lower():
155 slides = [
156 {"text": idea["hook"]},
157 {"text": "这是为什么它很重要"},
158 {"text": "步骤 1:从这里开始"},
159 {"text": "步骤 2:然后做这个"},
160 {"text": "步骤 3:最后这样"},
161 {"text": "收藏它。关注获取更多。"}
162 ]
163 produced["media"] = generate_carousel_visuals(slides)
164
165 # 为 TikTok 生成视频
166 elif platform == "tiktok":
167 produced["media"] = generate_video_kie(
168 script=post_text,
169 duration=60
170 )
171
172 batch.append(produced)
173 brain.mark_used(idea["hook"])
174
175 return batch
176
177# 运行
178brain = ContentBrain()
179batch = produce_content_batch(brain, platforms=["twitter", "linkedin", "instagram"])
180print(f"\n生成了 {len(batch)} 条内容")

一次运行就能生成一整周跨平台的内容。

文字来自 Claude。视觉和视频来自 Kie.ai。一切就绪,直接排期。

第五层 — 用 Postiz 排期 + 反馈表现回系统

批次已生成。

现在需要在合适的时间、发到合适的平台,自动完成。

然后结果需要反馈回大脑。

正是这个反馈循环让整个系统持续积累。

python
1import requests
2from datetime import datetime, timedelta
3import json
4
5POSTIZ_API_KEY = "your_postiz_api_key" # app.postiz.com
6POSTIZ_BASE = "https://api.postiz.com"
7
8POSTING_SCHEDULE = {
9 "twitter": {"times": ["08:00", "12:00", "17:00"], "days": "daily"},
10 "linkedin": {"times": ["07:30", "12:00"], "days": "weekdays"},
11 "instagram": {"times": ["11:00", "19:00"], "days": "daily"},
12 "tiktok": {"times": ["08:00", "13:00", "20:00"], "days": "daily"},
13}
14
15def get_next_slot(platform):
16 """计算平台的下一个可用发布时间"""
17 schedule = POSTING_SCHEDULE.get(platform, {})
18 times = schedule.get("times", ["09:00"])
19 now = datetime.now()
20
21 for time_str in times:
22 hour, minute = map(int, time_str.split(":"))
23 slot = now.replace(hour=hour, minute=minute, second=0)
24 if slot > now:
25 return slot.isoformat()
26
27 # 第二天第一个时段
28 tomorrow = now + timedelta(days=1)
29 first_time = times[0]
30 hour, minute = map(int, first_time.split(":"))
31 return tomorrow.replace(hour=hour, minute=minute, second=0).isoformat()
32
33def schedule_post_postiz(content_item, integration_id):
34 """
35 通过 Postiz API 安排单条帖子。
36 处理文本 + 媒体上传。
37 """
38 headers = {
39 "Authorization": f"Bearer {POSTIZ_API_KEY}",
40 "Content-Type": "application/json"
41 }
42
43 scheduled_at = get_next_slot(content_item["platform"])
44
45 payload = {
46 "content": content_item["text"],
47 "scheduledAt": scheduled_at,
48 "integrationId": integration_id,
49 "status": "schedule"
50 }
51
52 # 如果生成了媒体则附加
53 if content_item.get("media"):
54 if isinstance(content_item["media"], list):
55 # 多张图片(轮播)
56 payload["media"] = [{"url": url} for url in content_item["media"]]
57 else:
58 # 单个视频或图片
59 payload["media"] = [{"url": content_item["media"]}]
60
61 response = requests.post(
62 f"{POSTIZ_BASE}/posts",
63 headers=headers,
64 json=payload
65 )
66
67 result = response.json()
68 print(f"已安排 {content_item['platform']} 帖子,发布时间:{scheduled_at}")
69 print(f"帖子 ID:{result.get('id')}")
70 return result
71
72def schedule_full_batch(content_batch, platform_integrations):
73 """
74 通过 Postiz 安排整周的内容批次。
75 platform_integrations:将平台名称映射到 Postiz 集成 ID 的字典
76 """
77 scheduled = []
78
79 for item in content_batch:
80 platform = item["platform"]
81 integration_id = platform_integrations.get(platform)
82
83 if not integration_id:
84 print(f"未找到 {platform} 的集成 ID — 跳过")
85 continue
86
87 result = schedule_post_postiz(item, integration_id)
88 scheduled.append({
89 "platform": platform,
90 "hook": item["idea"]["hook"],
91 "scheduled_at": result.get("scheduledAt"),
92 "post_id": result.get("id")
93 })
94
95 print(f"\n已安排 {len(scheduled)} 条帖子,跨 {len(set(s['platform'] for s in scheduled))} 个平台")
96 return scheduled
97
98# ── 反馈循环 ─────────────────────────────────────
99
100def fetch_post_performance(post_id):
101 """帖子发布后获取表现指标"""
102 response = requests.get(
103 f"{POSTIZ_BASE}/posts/{post_id}/analytics",
104 headers={"Authorization": f"Bearer {POSTIZ_API_KEY}"}
105 )
106 return response.json()
107
108def update_brain_with_performance(brain, scheduled_posts, days_old=3):
109 """
110 帖子运行 3 天后,将表现数据拉回大脑。
111 这是系统学习的关键。
112 """
113 cutoff = datetime.now() - timedelta(days=days_old)
114 updated = 0
115
116 for post in scheduled_posts:
117 scheduled_time = datetime.fromisoformat(post.get("scheduled_at", ""))
118
119 if scheduled_time < cutoff:
120 perf = fetch_post_performance(post["post_id"])
121
122 brain.mark_used(
123 idea_hook=post["hook"],
124 performance={
125 "views": perf.get("impressions", 0),
126 "likes": perf.get("likes", 0),
127 "shares": perf.get("shares", 0),
128 "comments": perf.get("comments", 0),
129 "platform": post["platform"]
130 }
131 )
132 updated += 1
133
134 print(f"已将 {updated} 条帖子的表现数据更新到大脑")
135
136# ── 每周报告 ─────────────────────────────────────
137
138def weekly_report(brain):
139 """本周机器学到了什么"""
140 summary = brain.weekly_summary()
141
142 print("\n━━━━━━━━━━━━━━━━━━")
143 print("每周机器报告")
144 print("━━━━━━━━━━━━━━━━━━")
145 print(f"总存储的钩子: {summary['total_hooks']}")
146 print(f"待办创意数: {summary['ideas_pending']}")
147 print(f"本周使用的创意: {summary['ideas_used']}")
148 print(f"跟踪的痛点: {summary['pain_points_tracked']}")
149 print(f"有数据的帖子: {summary['posts_logged']}")
150 print("━━━━━━━━━━━━━━━━━━\n")

每周运行的循环:

Rahul - inline image
  1. ScrapeCreators 过夜捕获新的爆款内容
  2. Claude 从数据中提取新鲜模式
  3. 新的钩子和创意进入内容大脑
  4. Claude 根据待办列表生成平台原生帖子
  5. Kie.ai 生成视觉素材和视频
  6. Postiz 安排所有内容
  7. 3 天后,表现数据流回大脑
  8. 系统学习有效的内容,下周生成更好的创意

Agent 工作流

Rahul - inline image

你不需要手动运行这个流程。

你只需要设置 6 个轻量级 Agent 或 Claude Schedules,让它们自动处理每一层。

趋势侦察兵 - 每天早上 6 点运行 ScrapeCreators,覆盖你所在领域的平台。将结果转储到你的内容数据库。完成后触发模式分析师。

模式分析师 - 接收新鲜数据。将其发送给 Claude 进行提取。向内容大脑添加新的钩子、格式、痛点。将摘要发送到你的 Slack 或邮箱。

创意生成器 - 检查待办列表大小。如果待办创意少于 20 个,自动运行生成。保持队列充足,无需你动手。

创作 Agent - 接受已批准的创意。调用 Claude 生成文本。调用 Kie.ai 生成视觉素材和视频。组装完整的内容包。

调度 Agent - 接收已生成的内容包。推送到 Postiz,并根据平台设置正确的时间。记录已安排帖子的 ID,用于反馈循环。

反馈 Agent - 每 3 天运行一次。从 Postiz 分析拉取表现数据。用有效的内容更新内容大脑。展示本周表现最好的钩子。

唯一需要人工介入的:

每周 10 分钟的回顾。

批准待办列表中的创意。如果某些声音规则听起来不对劲,调整一下。检查每周报告。

其他一切都在你睡觉时运行。

之前与之后

之前:每天早上你醒来面对空白页面。

之后:你醒来时收到简报——昨天什么有效,这周有 20 个创意。

之前:你不得不手动刷 5 个平台来找流行趋势。

之后:ScrapeCreators 在早上 6 点以结构化 JSON 形式把趋势带到你面前。

之前:你问 AI 要创意,却没有任何上下文。

之后:Claude 在生成一个字之前,先从 200 条真实爆款帖子中提取模式。

之前:你忘记了 3 条帖子前什么有效。

之后:内容大脑追踪每一个钩子、每一种格式、每一个表现数据——并且每周都变得更聪明。

之前:视觉素材是瓶颈。你要么花钱买,要么跳过。

之后:Kie.ai 按需自动生成轮播图、视频和缩略图。

之前:发布不规律。你想起来才发。

之后:Postiz 自动在最佳时间、跨每个平台安排所有内容。

内容的未来不是 AI 随机写帖子。

而是 AI 记住什么有效,发现新模式,每周不断累积你的品味。

大多数创作者每天早上从零开始。

这个系统不会。

从这里开始

你不需要在一个周末内搭建整个系统。

分层搭建。

第 1 天:设置捕获

→ 在 app.scrapecreators.com 获取 ScrapeCreators API 密钥

→ 在你的领域内,对 3-5 个竞争对手账号和 2-3 个子版块运行每日捕获脚本

→ 看看返回了什么

第 2 天:运行模式提取

→ 将捕获的数据输入 Claude

→ 查看它提取出的钩子和痛点

→ 先将它们手动添加到你的内容大脑 JSON 中

第 3 天:生成第一批内容

→ 从大脑中取 5 个创意

→ 为每个创意生成平台原生文本

→ 审查它们——如果某些声音规则听起来不对劲,调整一下

第 4 天:安排发布

→ 在 app.postiz.com 连接 Postiz

→ 安排这批内容

→ 这周就完成了

到第 4 周,系统基本可以自主运行。

到第 3 个月,内容大脑已经积累了足够的表现数据,能生成比你开始时明显更好的创意。

这就是复利效应。

机器在你睡觉时学习。

工具:

→ ScrapeCreators:docs.scrapecreators.com(35+ 个平台,x-api-key 认证)

Kie.aikie.ai(图像、视频、音频生成)→ Postiz:postiz.com(调度 + 分析)

→ Claude:claude.ai(模式提取 + 内容生成)

如果这有帮助:

→ 转发分享给你认识的每一位创作者

→ 关注 @sairahul1 获取更多类似系统

→ 收藏本文——代码可运行,这周末就试试

我写 AI、产品构建以及在你睡觉时工作的系统。

Viết lại trong YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral