# Pipeline default configuration # # Priority: CLI flags > this file > .env (for secrets/endpoints) branding: channelName: "知势·科技洞察" llm: # baseURL: set via OPENAI_BASE_URL in .env # apiKey: set via OPENAI_API_KEY in .env model: "model-stable" tts: provider: "openai-tts" speed: 1.0 format: "mp3" # alignment: # provider: "whisper" # whisperModel: "base" # language: "zh" openai-tts: # apiKey: set via OPENAI_TTS_API_KEY in .env # baseURL: set via OPENAI_TTS_BASE_URL in .env model: "seed-tts-1.1" defaultVoice: "zh_female_vv_uranus_bigtts" fish-audio: # apiKey: set via FISH_AUDIO_API_KEY in .env model: "s2-pro" defaultVoice: "" minimax: # apiKey: set via MINIMAX_API_KEY in .env # groupId: set via MINIMAX_GROUP_ID in .env model: "speech-02-hd" defaultVoice: "" elevenlabs: # apiKey: set via ELEVENLABS_API_KEY in .env model: "eleven_multilingual_v2" defaultVoice: "21m00Tcm4TlvDq8ikWAM" render: fps: 30 codec: "h264" output: dir: "./output" format: "mp4" # Auto-clean cached outputs older than this many days (0 disables). Default 30. # Override with the OUTPUT_RETENTION_DAYS env var. retentionDays: 30 # 每日推荐的"已讲历史"去重状态(covered store,@pipeline/shared/node)。 # coveredWindowDays — 滚动去重窗口(天):窗口内讲过的项目不再讲,过期释放。 # 文件位置由 PIPELINE_COVERED_DIR 指定(默认系统临时目录,重启即丢——部署时 # 必须指向持久卷,推荐 jobs 卷的 covered/ 子目录,见 docs/DEPLOYMENT.md)。 state: coveredWindowDays: 90 # Alibaba Cloud OSS — rendered videos are uploaded here and a resource URL is # returned. Non-sensitive values may live in this file; secrets (access keys) # belong in .env. Every field can be overridden by an OSS_* env var. oss: region: "oss-cn-hangzhou" # OSS_REGION bucket: "" # OSS_BUCKET accessKeyId: "" # OSS_ACCESS_KEY_ID (use .env) accessKeySecret: "" # OSS_ACCESS_KEY_SECRET (use .env) # endpoint: "" # custom endpoint, e.g. https://oss-cn-hangzhou.aliyuncs.com — OSS_ENDPOINT # path: "videos/" # object key prefix — OSS_PATH # publicDomain: "" # base URL for resource links (e.g. a CDN) — OSS_PUBLIC_DOMAIN # secure: true # use HTTPS — OSS_SECURE # Feishu (Lark) custom-bot webhook — push results / failures after each job. feishu: webhook: "" # FEISHU_WEBHOOK_URL (use .env) # secret: "" # signing secret — FEISHU_WEBHOOK_SECRET # Publish manifest — written as {video}.yaml next to each rendered MP4 with the # title/description/tags (LLM-produced for github-trending) plus the # platform-specific 分区/category defined here. Lookup: publishMeta[platform][template]. # Only fill the combos you publish; missing combos just omit those keys. publishMeta: bilibili: github-trending: tid: 122 # 分区 id (122 = 科技→科普). Adjust to your target board. tags: ["GitHub", "开源", "热榜"] github-weekly: tid: 122 tags: ["GitHub", "开源", "周榜"] github-daily-pick: tid: 122 tags: ["GitHub", "开源", "推荐"] github-weekly-recap: tid: 122 tags: ["GitHub", "开源", "周报"] douyin-long: github-trending: category: "科技" tags: ["GitHub", "开源"] github-weekly: category: "科技" tags: ["GitHub", "开源", "周榜"] github-daily-pick: category: "科技" tags: ["GitHub", "开源", "推荐"] github-weekly-recap: category: "科技" tags: ["GitHub", "开源", "周报"] douyin-short: github-trending: category: "科技" tags: ["GitHub", "开源"] github-weekly: category: "科技" tags: ["GitHub", "开源", "周榜"] github-daily-pick: category: "科技" tags: ["GitHub", "开源", "推荐"] github-weekly-recap: category: "科技" tags: ["GitHub", "开源", "周报"] templates: news: primaryColor: "#1a56db" accentColor: "#dc2626" knowledge: primaryColor: "#0d9488" accentColor: "#6b7280" opinion: primaryColor: "#ea580c" accentColor: "#374151" marketing: primaryColor: "#9333ea" accentColor: "#ec4899" github-trending: primaryColor: "#22c55e" accentColor: "#3b82f6" github-weekly: primaryColor: "#d97706" accentColor: "#1e3a5f" github-daily-pick: primaryColor: "#8b5cf6" accentColor: "#22d3ee" github-weekly-recap: primaryColor: "#0284c7" accentColor: "#b45309" collect: github-trending: url: "https://github.crawler.corp.shuidi.tech/api/trending" # Repo-detail endpoint used to fetch each top repo's README (per-repo # description grounding). Optional — without it, only trending metadata is used. repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo" # Weekly board — same endpoints; the collector appends ?since=weekly. github-weekly: url: "https://github.crawler.corp.shuidi.tech/api/trending" repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo" github-repo: url: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo" github-daily: trendingUrl: "https://github.crawler.corp.shuidi.tech/api/trending" repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo" maxRepos: 5 # 每日推荐选题:日/周/月三榜并集,筛掉窗口内已讲项目后按综合热度取第一 # 周榜。windowDays 与 state.coveredWindowDays 保持一致;readmeLimit 是深度 # 版的 README 截断(比榜单类的 2000/3000 更长)。 github-daily-pick: url: "https://github.crawler.corp.shuidi.tech/api/trending" repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo" windowDays: 90 readmeLimit: 4000 # 每周推荐回顾:纯读 covered store,无网络依赖(留空对象占位注册)。 github-weekly-recap: {} # 定时生成(容器内进程内调度)。Next.js 服务启动时(instrumentation 钩子)注册 # 一个进程内调度器,到点 spawn CLI 渲染——复用与 WebUI/HTTP 完全相同的链路, # 任务同样进 jobs 列表、走 OSS/飞书发布。改配置后需重启容器生效。 # cron — 5 字段 cron(分 时 日 月 周),按 TZ(默认 Asia/Shanghai=北京时间) # template — 渲染模板(news|knowledge|opinion|marketing|github-trending|github-weekly) # platform — 平台规格(bilibili|douyin-long|douyin-short|...),默认 bilibili # source — 采集源(如 github-trending);定时场景一般用 source 自动取数 # sourceArgs — 采集器附加参数(如 github-repo 的 owner/repo),可选 # publish — 是否上传 OSS + 推送飞书,默认 true # enabled — 是否启用该条,默认 true # 环境变量 SCHEDULES(JSON 数组,同结构)可整体覆盖(部署期改无需重建镜像); # SCHEDULER_ENABLED=false 关闭整个调度器。 schedules: - cron: "50 7 * * *" # 北京时间每天 07:50 template: "github-trending" platform: "bilibili" source: "github-trending" # 先采集当日 trending,再解析→渲染→发布 publish: true enabled: true - cron: "50 8 * * 6" # 北京时间每周六 08:50 template: "github-weekly" platform: "bilibili" source: "github-weekly" # 采集本周 trending(since=weekly),再解析→渲染→发布 publish: true enabled: true - cron: "20 9 * * *" # 北京时间每天 09:20(错开 07:50 榜单与周六 08:50 周榜) template: "github-daily-pick" platform: "bilibili" source: "github-daily-pick" # 三榜并集选题,六幕叙事推荐一个开源项目 publish: true enabled: true - cron: "20 18 * * 0" # 北京时间每周日 18:20(覆盖当天上午的推荐,回顾完整一周) template: "github-weekly-recap" platform: "bilibili" source: "github-weekly-recap" # 读本周已讲记录生成回顾,不重新爬榜 publish: true enabled: true