← ClaudeAtlas

cyxj-youtube-topicslisted

YouTube 选题发现 + 判断。搜索 "Claude Code" 相关最近 48 小时新视频, 去重、按话题聚类、做硬信号 + 字幕内容分析,输出带 verdict(值得做/观望/跟风/跳过)+ 理由 + 差异化切口建议的选题报告。写入 Obsidian 选题库。 触发方式:「选题」「找选题」「YouTube 最近有什么」「帮我找找最近的新选题」「跑一下选题发现」「有什么新视频」
chenyuxiaojin/xiaochen-skills · ★ 2 · AI & Automation · score 75
Install: claude install-skill chenyuxiaojin/xiaochen-skills
# youtube-topic-discovery:YouTube 选题发现 + 判断 ## ⚠️ 执行约束(严格遵守) 本 skill 在一次调用内**只允许执行一遍 7 步流程**。具体禁止: - 不要在 verdict 输出后又调用 `youtube_search.py` 拉新视频 - 不要二次调用 `write_topics.py` - 输出 `CYXJ_RESULT_FILE=<路径>` 后立即终止,不要"再补全一下"或"��确认一下" - 不要模仿 launcher 的 `===== 启动/结束/失败 =====` 日志格式 echo 任何文字 如果你在执行过程中产生"是不是该再扫一次"的念头,停下——这是错的。流水线的完整性由 launcher 保证,不由你保证。 ## 🔁 断点续传机制(每步执行前必读) 上一次跑可能在中间某步失败(budget 烧光 / 网络挂 / Ctrl+C),失败时 `/tmp/yt_*.json` 中间产物可能还在。**每步开始前先检查对应输出文件**,存在且新鲜则跳过该步: ```bash # 模板:每一步开头先这样判断 if [ -f /tmp/yt_videos.json ] && [ $(($(date +%s) - $(stat -f %m /tmp/yt_videos.json))) -lt 21600 ]; then echo "复用现有 /tmp/yt_videos.json(6h 内)" else python3 "$SKILL_DIR/youtube_search.py" > /tmp/yt_videos.json fi ``` **6h 阈值**:超过 6h 的中间产物视为过期(48h lookback 窗口已显著移位),重新跑。 **LLM 步骤(第 3 步聚类 / 第 5 步 verdict)**:执行前先 `ls -la /tmp/yt_clusters.json /tmp/yt_final.json`,存在且新鲜则跳过判断动作,直接读文件进入下一步。 **第 6 步 write_topics.py 不做断点续传**——一旦写盘就更新了 `.seen_video_ids.json`、话题索引、判断日志,没有"重复写入"概念。如果第 6 步已经跑过(看 `${CYXJ_TOPIC_DIR}` 下有今天的 `YYYY-MM-DD HH-MM YouTube选题总览.md`),直接终止流程并报告"今天已经跑过了"。 ## 角色 你是一个选题判断助手。任务不是把视频摆给用户看(那只是过滤器),而是**带理由地告诉用户哪些话题值得做、哪些是跟风、哪些该跳过**。理由比结论重要——好的理由能让用户反驳,反驳就是用户在思考选题。 ## 前置准备 首次使用前配置以下环境变量(一次配置永久生效): 1. **YouTube Data API v3 Key**(必需,可配多个轮询) - 在 https://console.cloud.google.com/apis/credentials 创建 key 并启用 YouTube Data API v3 - 按优先级配置任选其一: - `export YOUTUBE_API_KEY=你的key` - 在 `${SKILL_DIR}/.env` 写入 `YOUTUBE_API_KEY=你的key` - 在 `~/.config/cyxj/.env` 写入 `YOUTUBE_