# daily-content-curation > 每日内容策展系统 - 自动抓取 YouTube/Bilibili/小宇宙内容,AI 改写生成结构化摘要,归档到本地并同步飞书 - Author: uohigher - Repository: uohigher50/z-club - Version: 20251220210037 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/uohigher50/z-club - Web: https://mule.run/skillshub/@@uohigher50/z-club~daily-content-curation:20251220210037 --- --- name: daily-content-curation description: 每日内容策展系统 - 自动抓取 YouTube/Bilibili/小宇宙内容,AI 改写生成结构化摘要,归档到本地并同步飞书 license: MIT triggers: - curate - 策展 - 抓取视频 - 处理视频 - 转录并总结 - 内容归档 --- # Daily Content Curation Skill > **静默执行协议 (Quiet Mode Protocol)** > > 执行此 Skill 时必须遵守以下规则: > - **DO NOT** ask for confirmation to proceed. 不要请求确认以继续。 > - **DO NOT** ask "是否继续?"、"需要我处理吗?" 等中断性问题。 > - **DO** generate the full output in one go. 一次性生成完整输出。 > - **DO** use defined defaults when data is missing. 数据缺失时使用默认值。 > - **DO** log errors silently and continue. 静默记录错误并继续处理。 --- ## 📋 Skill Overview 这是一个 **生产级、零中断** 的内容策展工作流。当用户提供视频/播客 URL 时,自动完成: 1. 调用 BibiGPT API 获取转录文本 2. 提取元数据(标题、作者、发布时间、封面) 3. 调用 AI 生成结构化中文摘要 4. 创建本地归档文件夹 5. (可选)同步到飞书多维表格 --- ## 🎯 Trigger Conditions 当用户消息包含以下意图时激活此 Skill: | 触发词 | 示例 | |--------|------| | `curate` | "Curate this video" | | `策展` | "帮我策展这个视频" | | `抓取` | "抓取这个 YouTube 视频" | | `处理` | "处理这个播客" | | `转录` | "转录并总结这个视频" | | `总结` | "总结一下这个视频内容" | **必须**同时包含有效的 URL: - YouTube: `youtube.com/watch?v=xxx` 或 `youtu.be/xxx` - Bilibili: `bilibili.com/video/BVxxx` - 小宇宙: `xiaoyuzhoufm.com/episode/xxx` --- ## ⚡️ Execution Protocol ### Input Contract ``` 用户输入格式: 1. 单个 URL: "策展这个视频 https://youtube.com/watch?v=xxx" 2. 多个 URL: "处理这些 url1, url2, url3" (支持逗号/空格/换行分隔) ``` ### Output Contract ``` 输出格式: 执行结果报告(Markdown) ✅ 处理完成: {标题} 📁 输出目录: curation-cli/output/{date}_{title}/ - metadata.md (元数据) - transcript.md (原始转录) - rewritten.md (AI 摘要) - cover.jpg (封面图) ``` ### Automation Logic | 场景 | 处理方式 | |------|----------| | API 调用失败 | 记录日志,跳过该项,继续处理下一个 | | 转录 < 100 字 | 跳过,记录到 `skipped.log` | | AI 输出过长 | 自动截断到 ~2000 字 | | 封面下载失败 | 使用默认占位图 `default-cover.png` | | 嘉宾信息缺失 | AI 从内容推断,无法推断则标记"未知" | | 发布时间缺失 | 标记为 "unknown" | | 金句不足 3 条 | 提取多少写多少 | --- ## 🔧 Workflow Steps 执行顺序(**不可更改,不可中断**): ```mermaid graph TD A[接收 URL] --> B[检测平台类型] B --> C[调用 BibiGPT 获取转录] C --> D{转录长度 >= 100?} D -->|Yes| E[创建输出文件夹] D -->|No| F[记录到 skipped.log, 跳过] E --> G[保存 transcript.md] G --> H[下载封面图] H --> I[调用 AI 改写] I --> J[保存 rewritten.md] J --> K[更新 metadata.md] K --> L[标记为已处理] L --> M[输出结果报告] ``` ### Step 1: 运行 CLI 命令 ```bash cd /Users/uohigher/Documents/AI/Gemini\ CLI/z-club/curation-cli python cli.py --url "{用户提供的URL}" ``` ### Step 2: 检查输出 查看 `output/` 目录下最新生成的文件夹。 ### Step 3: 报告结果 使用以下格式报告: ```markdown ## ✅ 内容策展完成 | 字段 | 值 | |------|-----| | **标题** | {AI 生成的标题} | | **来源** | {平台名称} | | **作者** | {作者/频道名} | | **发布日期** | {YYYY-MM-DD} | ### 📁 输出文件 - `metadata.md` - 元数据信息 - `transcript.md` - 原始转录 - `rewritten.md` - AI 深度摘要 - `cover.jpg` - 封面图片 ### ✨ 金句预览 > "{提取的金句1}" > "{提取的金句2}" ``` --- ## 📝 Few-Shot Examples ### ✅ Good Case(正确示例) **用户输入:** ``` 帮我策展这个视频 https://www.youtube.com/watch?v=dQw4w9WgXcQ ``` **正确响应:** ``` 正在处理视频... [执行 CLI 命令] cd /Users/uohigher/Documents/AI/Gemini\ CLI/z-club/curation-cli python cli.py --url "https://www.youtube.com/watch?v=dQw4w9WgXcQ" ## ✅ 内容策展完成 | 字段 | 值 | |------|-----| | **标题** | 永不放弃:一首改变互联网的神曲 | | **来源** | YouTube | | **作者** | Rick Astley | | **发布日期** | 2009-10-25 | ### 📁 输出文件 位置: `curation-cli/output/2009-10-25_永不放弃/` - ✅ metadata.md - ✅ transcript.md - ✅ rewritten.md - ✅ cover.jpg ### ✨ 金句预览 > "Never gonna give you up, never gonna let you down" ``` ### ❌ Anti-Pattern(错误示例 - 严禁此类行为) **用户输入:** ``` 处理这个视频 https://www.youtube.com/watch?v=xxx ``` **❌ 错误响应(严禁):** ``` 好的,我看到你想处理这个视频。 请问: 1. 你希望我使用哪种 AI 模型进行改写? 2. 需要同步到飞书吗? 3. 是否需要我先展示转录内容? 请确认后我再继续处理。 ``` **为什么这是错误的:** - ❌ 打断了工作流 - ❌ 询问了不必要的问题(应使用配置文件中的默认值) - ❌ 等待用户确认 --- ## 🛠️ Prerequisites 确保以下环境已配置: 1. **API 密钥**(至少配置一个): ```bash export BIBIGPT_API_KEY="your-key" export OPENAI_API_KEY="your-key" # 或 GEMINI_API_KEY ``` 2. **依赖安装**: ```bash cd curation-cli pip install -r requirements.txt # Python 依赖 npm install # Node.js 依赖 ``` --- ## 🔍 Troubleshooting | 错误 | 原因 | 解决方案 | |------|------|----------| | API key not configured | 未设置环境变量 | 设置 `BIBIGPT_API_KEY` 等 | | Transcript too short | 视频太短或无字幕 | 自动跳过,查看 `skipped.log` | | AI rewrite failed | AI API 调用失败 | 检查 `error.log`,确认 API 配额 | | Cover download failed | 网络问题 | 自动使用默认封面 | --- ## 📂 Project Structure ``` z-club/ ├── curation-cli/ │ ├── cli.py # 主入口 │ ├── config/ │ │ ├── sources.yaml # 订阅源配置 │ │ ├── state.yaml # 处理状态 │ │ └── rewrite-prompt.md │ ├── src/ │ │ ├── python/ # 抓取模块 │ │ └── node/ # AI 处理模块 │ ├── output/ # 归档输出 │ └── logs/ # 日志 └── SKILL.md # 本文件 ```