Star Tracker - 明星动态追踪与素材管理
概述
本技能适用于追踪所有明星、偶像、公众人物的动态,提供三大核心能力:
- 动态追踪 — 按名字检查微博、抖音、小红书、Instagram 等平台的新动态,只收录本人发布的内容,发现更新后推送直达链接
- 素材归类 — 将用户上传的照片/视频按来源/活动类型自动整理到结构化文件夹
- 看板生成 — 将追踪到的动态数据汇总,生成看板式 HTML 面板(档案 + 多平台动态列 + 热搜趋势 + 作品/荣誉/商务)
能力一:动态追踪
追踪流程
Step 1: 读取追踪名单
读取 references/celebrities.json 获取当前追踪的明星列表。如果文件不存在或为空,询问用户想追踪哪位明星,并调用 scripts/state_manager.py init 初始化状态文件。
python scripts/state_manager.py read
输出当前所有明星的各平台上次检查时间和最后帖子标识。
Step 2: 逐平台检查新动态
对每位明星,按以下优先级检查各平台。核心原则:只收录本人发布的内容,排除粉丝搬运、八卦新闻、后援会转发。
微博(优先级最高,成功率最高):
- 方式一:通过 RSSHub 获取 RSS Feed(参考
references/platforms.md中的 RSSHub URL 格式)- 使用 WebFetch 抓取
https://rsshub.app/weibo/user/<uid>或https://rsshub.app/weibo/search/hot/<keyword>
- 使用 WebFetch 抓取
- 方式二:直接抓取微博用户主页
- 使用 WebFetch 抓取
https://weibo.com/u/<uid>或https://sina.cn/media/<uid>
- 使用 WebFetch 抓取
- 方式三(兜底):WebSearch 搜索
"<明星名> 微博 最新动态"
抖音:
- 反爬严格,优先使用 WebSearch 搜索
"<明星名> 抖音 最新视频" - 可尝试 WebFetch 抓取
https://www.douyin.com/user/<sec_uid>但不保证成功
小红书:
- 反爬严格,优先使用 WebSearch 搜索
"<明星名> 小红书 最新笔记" - 可尝试 WebFetch 抓取公开主页但不保证成功
Instagram:
- 反爬最严,通常需要登录态
- 可尝试 WebFetch 抓取
https://www.instagram.com/<username>/但成功率极低 - 兜底:WebSearch 搜索
"<明星名> Instagram latest post"
通用兜底方案(适用于所有平台):
- WebSearch 搜索
"<明星名> 最新动态"或"<明星名> 新闻" - 从搜索结果中提取各平台的最新内容链接
Step 3: 增量检测
对每个平台获取到的内容列表,与 scripts/state_manager.py read 返回的 last_post_id 或 last_checked 对比:
- 只报告上次检查之后的新内容
- 如果无法获取精确帖子 ID,则按时间戳对比
# 更新状态
python scripts/state_manager.py update --celebrity "明星名" --platform "weibo" --last-post-id "帖子ID" --last-checked "ISO时间"
Step 4: 推送结果
将检测到的新动态格式化为以下结构推送给用户:
## <明星名> 动态更新
### 微博
- [新微博标题/摘要](直达链接) — 2小时前
- [新微博标题/摘要](直达链接) — 5小时前
### 抖音
- [视频标题](直达链接) — 3天前
### 小红书
- 暂未检测到新内容
每条动态必须包含可点击的直达链接。如果某平台本次无新内容,显示"暂未检测到新内容"。
添加/移除追踪明星
当用户说"追踪 XXX"或"添加 XXX"时:
- 询问用户是否知道该明星各平台的账号 ID(可选)
- 更新
references/celebrities.json - 调用
scripts/state_manager.py init-celebrity "明星名"初始化该明星的状态
当用户说"不再追踪 XXX"时:
- 从
references/celebrities.json移除 - 调用
scripts/state_manager.py remove-celebrity "明星名"清除状态
能力二:素材归类
归类流程
当用户上传照片/视频或提供素材目录时:
Step 1: 确认信息
确认以下信息(有缺失时询问用户):
- 明星名字(必须)
- 素材来源目录路径(必须)
- 活动类型(可选,如果不提供则自动推断)
Step 2: 执行归类
python scripts/organize_media.py --input "<素材目录>" --celebrity "<明星名>" [--activity "<活动类型>"] [--output "<输出根目录>"]
活动类型分类规则
脚本支持以下活动类型,用户可指定或由脚本根据文件名自动推断:
| 活动类型 | 文件名关键词 | 文件夹名 |
|---------|------------|---------|
| 线下活动/见面会 | 活动, 见面会, 签售, fanmeeting, event | 活动图 |
| 舞台表演/演唱会 | 演唱会, 舞台, 打歌, concert, stage, performance | 舞台表演 |
| 机场/日常 | 机场, 路演, 日常, airport, daily, street | 日常图 |
| 杂志/大片 | 杂志, 大片, 画报, 封面, magazine, editorial, cover | 杂志大片 |
| 剧照/花絮 | 剧照, 花絮, 幕后, stills, behind, bts | 剧照花絮 |
| 广告/代言 | 广告, 代言, CF, commercial, ad, campaign | 广告代言 |
| 直播截图 | 直播, live, 截图 | 直播截图 |
| 其他 | 无法匹配以上类型 | 其他 |
Step 3: 输出目录结构
归类后的目录结构如下:
追星素材/
└── <明星名>/
├── 活动图/
│ └── 2026-07-25/
│ ├── IMG_001.jpg
│ └── IMG_002.jpg
├── 杂志大片/
│ └── 2026-07-20/
│ └── cover_01.jpg
└── 其他/
└── 2026-07-25/
└── random.jpg
日期子文件夹根据照片的 EXIF 拍摄日期或文件修改日期自动创建。
Step 4: 归类报告
脚本执行后输出归类报告,展示各分类的文件数量统计。
能力三:看板生成
将追踪到的动态数据汇总为看板式 HTML 面板,包含:顶部档案栏(头像 + 简介 + 所属公司 + 全平台粉丝合计)、官方账号直达、多平台动态列(每条带直达链接)、右侧热搜趋势 Top 5、底部作品/荣誉/商务三大板块。
生成流程
Step 1: 收集数据
按 references/dashboard_data_template.json 的结构收集以下数据(通过 WebSearch + WebFetch):
| 板块 | 数据内容 | 获取方式 |
|------|---------|---------|
| 档案 | 头像URL、姓名、生日、星座、籍贯、学历、所属公司、组合、全平台粉丝合计 | WebSearch 搜百科/微博资料卡 |
| 账号 | 各平台官方账号链接 | WebSearch 搜 "<明星名> 微博/抖音/小红书 官方账号" |
| 动态 | 各平台本人最新发布的内容(排除粉丝搬运和八卦新闻) | 见"能力一:动态追踪" |
| 热搜 | 全网相关话题,按热度选前 5 | WebSearch 搜 "<明星名> 热搜 话题 趋势" |
| 作品 | 影视剧 + 音乐作品,取热度最高前 3 标注 | WebSearch 搜 "<明星名> 作品 影视剧" |
| 荣誉 | 重要成就和里程碑 | WebSearch 搜 "<明星名> 荣誉 成就" |
| 商务 | 品牌代言、合作品牌、线下应援 | WebSearch 搜 "<明星名> 代言 品牌 商务" |
Step 2: 填写 JSON 数据
参考 references/dashboard_data_template.json 的字段说明,将收集到的数据组织为 JSON 文件。关键字段:
celebrity: 档案信息(name, avatar_url, avatar_fallback, meta[], total_followers, support_color, support_color_hex, support_color_hex_light)support_color_hex:应援色十六进制值,用于头像背景/边框/粉丝数文字颜色support_color_hex_light:应援色浅色值(留空则自动计算),用于头像渐变
accounts[]: 官方账号链接(platform, label, url)platforms[]: 平台动态列(id, name, posts[]),数组顺序决定看板列顺序。代码自动过滤为当月+最新一条trends[]: 热搜趋势(rank, topic, heat, link)works: 作品(top3[], all[], music{})- 影视作品:
top3默认展示(带 heat_label 热度标签),all可展开 - 音乐作品:
music.top3默认展示,music.all可展开(同样模板,独立展开按钮)
- 影视作品:
honors[]: 荣誉(icon, title, desc)business: 商务(ambassador{}, brands[], offline[])
内置平台 logo 和颜色主题:weibo douyin xiaohongshu instagram bilibili twitter youtube,未匹配则用通用蓝色主题。
Step 3: 生成看板
python scripts/generate_dashboard.py --data "<数据文件.json>" --output "<看板.html>"
生成后使用 present_files 展示给用户预览。
看板布局
┌─────────────────────────────────────────────┐
│ 头像 姓名 · 档案标签 · 全平台粉丝合计 [实时追踪中] │
├─────────────────────────────────────────────┤
│ 官方账号直达:[微博] [抖音] [小红书] ... │
├──────────────────────┬──────────────────────┤
│ │ │
│ [微博动态列] [抖音] │ 🔥 热搜趋势 Top 5 │
│ 卡片1 · 卡片2 ... │ ① #话题# 91.2万 │
│ [小红书动态列] │ ② #话题# 15.2万 │
│ 卡片1 · 卡片2 ... │ ... │
│ │ │
├──────────────────────┴──────────────────────┤
│ 🎬 代表作品 │ 🏆 荣誉 │ 💼 商务 │
│ Top3 + 展开 │ 成就列表 │ 品牌+应援 │
└─────────────────────────────────────────────┘
脚本说明
scripts/state_manager.py
明星追踪状态管理工具,负责记录和读取每位明星各平台的最后检查状态。
# 查看所有明星状态
python scripts/state_manager.py read
# 初始化状态文件
python scripts/state_manager.py init
# 添加新明星
python scripts/state_manager.py init-celebrity "明星名"
# 更新某明星某平台的状态
python scripts/state_manager.py update --celebrity "明星名" --platform "weibo" --last-post-id "post123" --last-checked "2026-07-25T10:00:00"
# 移除明星
python scripts/state_manager.py remove-celebrity "明星名"
# 列出所有追踪明星
python scripts/state_manager.py list
状态文件路径: scripts/state.json
scripts/organize_media.py
照片视频自动归类工具,按活动类型和日期整理素材文件。
# 基本用法
python scripts/organize_media.py --input "D:/照片" --celebrity "张三"
# 指定活动类型
python scripts/organize_media.py --input "D:/照片" --celebrity "张三" --activity "杂志大片"
# 指定输出目录
python scripts/organize_media.py --input "D:/照片" --celebrity "张三" --output "D:/追星素材"
支持文件格式:
- 图片: .jpg .jpeg .png .gif .bmp .webp .heic
- 视频: .mp4 .mov .avi .mkv .flv .webm
scripts/generate_dashboard.py
看板生成引擎,输入 JSON 数据文件,输出完整 HTML 看板。
# 生成看板到指定文件
python scripts/generate_dashboard.py --data "data.json" --output "dashboard.html"
# 输出到 stdout(方便管道操作)
python scripts/generate_dashboard.py --data "data.json"
数据文件格式参考 references/dashboard_data_template.json。所有字段均可选,但 celebrity.name 和 platforms 至少需要填写。
内置功能:
- 多平台动态列(列数自动适配,顺序由 platforms 数组决定)
- 动态自动过滤:各平台只展示当月动态 + 最新一条(上月最新),避免看板过长
- 热搜趋势侧栏(留空 trends 数组则不显示)
- 头像应援色:根据
support_color_hex自动生成头像背景/边框/粉丝数文字颜色 - 代表作品可展开(影视 top3 默认展示 + all 折叠;音乐 top3 默认展示 + all 折叠,独立展开按钮)
- 头像加载失败自动回退显示文字
- 响应式布局(窄屏自动转单列)
参考文档
references/platforms.md— 各平台追踪方式详细说明,包括 URL 格式、RSSHub 配置、反爬注意事项references/celebrities.json— 追踪明星名单模板,用户可编辑添加明星及其各平台账号references/dashboard_data_template.json— 看板数据模板,包含所有字段说明和完整示例
注意事项
- 只追踪本人动态:所有动态必须来自明星本人官方账号发布的内容,排除粉丝搬运、八卦新闻、后援会转发
- 反爬限制:抖音、小红书反爬严格,公开页面可能无法直接抓取,优先使用 WebSearch 兜底;Instagram 反爬最严
- 登录态:部分平台完整内容需要登录,本技能只能获取公开可见内容
- 频率控制:定时检查建议每天一次,过于频繁可能触发平台风控
- 素材安全:归类脚本采用复制而非移动,原始文件不会被删除
- 适用范围:本技能适用于所有明星、偶像、公众人物,不限国籍和领域
微信扫一扫