# 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: "glm-5.1" 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 # 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", "开源", "热榜"] douyin-long: github-trending: category: "科技" tags: ["GitHub", "开源"] douyin-short: github-trending: 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" collect: github-trending: url: "https://github.crawler.corp.shuidi.tech/api/trending" 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 # 定时生成(容器内进程内调度)。Next.js 服务启动时(instrumentation 钩子)注册 # 一个进程内调度器,到点 spawn CLI 渲染——复用与 WebUI/HTTP 完全相同的链路, # 任务同样进 jobs 列表、走 OSS/飞书发布。改配置后需重启容器生效。 # cron — 5 字段 cron(分 时 日 月 周),按 TZ(默认 Asia/Shanghai=北京时间) # template — 渲染模板(news|knowledge|opinion|marketing|github-trending) # platform — 平台规格(bilibili|douyin-long|douyin-short|...),默认 bilibili # source — 采集源(如 github-trending);定时场景一般用 source 自动取数 # 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