🎬 影片自動化儀表板
管理 YouTube / 抖音下載與 AI Studio 專案文本
快速操作
⬇️ 下載工具
YouTube / 抖音下載管理
YouTube 下載
下載記錄
抖音下載
解析結果
下載記錄
一鍵流程
來源 URL 進入資料庫支援的一鍵流程,Runner 依佇列推進下載、Gemini、主題、影片與發布。
啟動前檢查
目前選項的資料庫、Runner、平台帳號與公開媒體 URL 狀態。
{{ check.message }}
{{ preflightDetailSummary(check) }}
一鍵流程紀錄
{{ pipeline.runs.length }} 筆流程📝 AI Studio 專案
AI 生成主題與文本管理
{{ p.project_name }}
{{ p.source_video_title || '--' }}
{{ projectsMod.currentProject.value.project_name }}
⚙️ 顯示進階工具
最近工作流日誌
🧩 主題列表
依照專案分群瀏覽所有主題,快速找到要編輯或查看的內容
{{ group.project.project_name }}
{{ group.project.source_video_title }}
{{ topic.title }}
核心圖 {{ getStatusLabel(topic.core_status) }} 分鏡圖 {{ getStatusLabel(topic.storyboard_status) }}{{ getTopicDetailState().topic.title }}
開場句
腳本
核心畫面
影片生成提示詞
核心圖狀態
分鏡圖狀態
分鏡文字分派
TikTok 標題
標籤
主題最終影片
分鏡預覽
{{ scene.title || ('分鏡 ' + scene.scene_index) }}
{{ scene.prompt || '--' }}
📘 功能說明
給 PM、營運與內容負責人使用:用產品語言說明目前已實作的流程、狀態與操作入口
把一支來源影片,整理成多支可發布的知識型短影音素材
目前系統已能從 YouTube / 抖音來源進入,建立專案、讓 Gemini 產出分析與主題, 再推進核心圖、分鏡圖、單段影片、主題成片、發布素材、旁白、字幕與最終可發布影片。 最後可在 YouTube、TikTok、Instagram 的發布中心排程或取得平台匯出包。
從素材到發布的 6 個產品階段
取得來源影片
可從「下載工具」先下載 YouTube / 抖音,也可在「一鍵流程」直接貼來源 URL。系統會建立來源紀錄與專案。
產出主題與腳本素材
Gemini 會分析來源影片並產出原始文字。PM 可在專案頁檢查、保存、整理成主題,也可用自訂格式先做文字預覽。
每個主題生成視覺素材
每個主題會先產生核心圖,再延伸成分鏡總覽、單張分鏡圖與單段影片。主題資料越完整,後面越容易自動推進。
合成可交付影片
分鏡影片完成後會合成主題影片,再建立發布素材、旁白、字幕與 final-ready 影片。這是交付給發布流程的核心成品。
排程或匯出到平台
平台發布頁會列出 final-ready 主題,可排入 YouTube、TikTok、Instagram,或使用平台匯出包做人工上架備援。
用 Runner 狀態看卡點
所有背景任務都會出現在 Runner 狀態頁。等待、執行、失敗、停止重試與平台限流都應從這裡判斷。
PM 常用頁面對照
首頁
總覽與快速入口
下載工具
素材入口
一鍵流程
URL 到發布流程
專案文本
主控制台
主題列表
跨專案瀏覽主題
系統設定
Prompt、Provider、API key
YouTube 頻道設定
OAuth 授權
YouTube 發布
影片上傳
平台發布
多平台上架中心
Runner 狀態
背景任務監控
腳本清單
Runner / 工作流對照表
日常流程
日常操作順序
展開 / 收合
日常操作順序
狀態判讀
PM 如何判斷目前進度
展開 / 收合
PM 如何判斷目前進度
設定與成本
設定、成本與風險控管
展開 / 收合
設定、成本與風險控管
發布交付
發布與交付方式
展開 / 收合
發布與交付方式
排查清單
卡住時先看這裡
展開 / 收合
卡住時先看這裡
目前已接入的背景工作類型
📺 YouTube 頻道設定
OAuth 連線與頻道授權狀態
⤴️ YouTube 上傳
優先從主題最終影片選擇一支影片並送出 YouTube API 上傳
主題影片
{{ topicPublishVideos.length }} 支已就緒來源下載影片
{{ sourcePublishVideos.length }} 個檔案🌐 平台發布
管理最終就緒主題、平台匯出包與發布狀態
{{ platformLabel(account.platform) }}
⚙️ 系統設定
管理全域 AI 提示詞、自動化實作與文字整理 API key
全域提示詞
這些提示詞將作為預設值,影響 AI 如何分析內容、生成主題、產生核心圖與延伸分鏡圖。圖像提示詞可使用 {{title}}、{{video_prompt}}、{{image_prompts}} 與 {{core_frame_image_path}} 佔位符。
內容分析提示詞
此提示詞會引導 AI 在分析來源影片或文本時的行為。例如關注重點、提取資訊類型或分析語氣。
內容生成提示詞
此提示詞會指示 AI 如何基於分析結果生成新的內容,例如腳本、標題或描述。
核心圖 Prompt
此提示詞會用在核心圖 Gem。若沒有放入佔位符,系統會自動把主題的 video prompt 接在提示詞後方。
分鏡圖 Prompt
此提示詞會用在分鏡圖 Gem。若沒有放入佔位符,系統會自動把 9 個 image prompts 接在提示詞後方。
文字整理 / OpenAI API 設定
設定 Gemini 原始輸出整理、自訂輸出格式與 OpenAI API key。API key 已保存時不會回填明文。
自動化實作設定
設定未來新建立 jobs 使用的自動化 provider;已排入或執行中的 job 不會被改寫。
🤖 Runner 狀態監控
總覽 DB-backed jobs、runner claim 與 webhook 回寫狀態
佇列管理控制
Fleet 管理 Runner
| 心跳 | 設定檔 | Runner | PID / 工作 | 日誌尾端 |
|---|---|---|---|---|
|
{{ fleetRunner.heartbeat_online ? '在線' : '無心跳' }}
{{ formatSecondsAgo(fleetRunner.seconds_since_seen) }}
|
{{ fleetRunner.runner_profile || '--' }} |
{{ fleetRunner.runner_id }}
{{ fleetRunner.state_file }}
|
{{ fleetRunner.pid || '--' }}
{{ fleetRunner.current_job_id ? ('工作 #' + fleetRunner.current_job_id) : getStatusLabel(fleetRunner.heartbeat_status) }}
|
{{ fleetRunner.mounted_log_file || '--' }}
{{ fleetRunner.log_tail.join('\n') }}
|
| 沒有 Fleet 管理的 Runner 狀態檔。 | ||||
佇列警示
集中列出最需要處理的佇列風險與操作建議
保護限制
Provider 使用量與平台限流狀態
Runner 狀態清單
依 heartbeat 判斷 host runner 是否還在線;預設超過 30 秒未上報會顯示離線。
| 連線 | Runner | 活動 | 佇列類型 | 最近心跳 |
|---|---|---|---|---|
| {{ r.online ? '在線' : '離線' }} |
{{ r.runner_id }}
{{ r.metadata?.hostname || '主機' }} / pid {{ r.metadata.pid }}
|
{{ getStatusLabel(r.online ? r.status : 'stopped') }}
工作 #{{ r.current_job_id }}
|
{{ queueType }}
|
{{ formatDate(r.last_seen_at) }}
{{ formatSecondsAgo(r.seconds_since_seen) }} / {{ r.stale_after_seconds }} 秒門檻
|
| 還沒有任何 runner heartbeat。請重啟 unified host runner,或確認 runner 已更新到支援 heartbeat 的版本。 | ||||
佇列健康狀態
完整工作資料表彙總;更新時間 {{ formatDate(runner.queueGeneratedAt.value) || '--' }}
| 佇列 | 等待中 / 執行中 | 失敗 / 停止重試 | 最久等待 | Runner 覆蓋 | 健康狀態 | 控制 |
|---|---|---|---|---|---|---|
|
{{ getQueueTypeIcon(queue.queue_type) }}
{{ queue.queue_type }}
{{ getQueueTypeLabel(queue.queue_type) }}
|
{{ queue.pending }} / {{ queue.running }}
上限 {{ queue.pending_limit }}
|
{{ queue.failed }} / {{ queue.dead }}
已完成 {{ queue.done }}
|
{{ formatQueueAge(queue.oldest_pending_age_seconds) }}
工作 #{{ queue.oldest_pending_job_id }}
|
{{ queue.online_runner_count }} 在線
建議 {{ queue.recommended_runner_count }} · {{ queue.runner_gap > 0 ? ('需新增 +' + queue.runner_gap) : getScaleReasonLabel(queue.scale_reason) }}
{{ runnerId }}
|
{{ getQueueHealthLabel(queue) }}
{{ queue.pause_reason }}
|
|
| Queue summary 尚未載入。 | ||||||
專案壓力
| 專案 | 等待中 | 執行中 | 活動 / 上限 | 狀態 | 控制 |
|---|---|---|---|---|---|
| 專案 {{ project.project_id }} | {{ project.pending }} | {{ project.running }} | {{ project.active }} / {{ project.active_limit }} |
{{ getProjectPressureLabel(project) }}
{{ project.pause_reason }}
|
|
工作隊列紀錄
| 狀態 | 執行腳本 | 專案 / 主題 | 時間 | 最新日誌 / 訊息 | 操作 |
|---|---|---|---|---|---|
|
{{ getStatusLabel(job.state) }}
|
{{ getQueueTypeIcon(job.queue_type) }}
{{ job.payload?.script_filename || job.queue_type }}
{{ getQueueTypeLabel(job.queue_type) }}
|
專案 {{ job.project_id }}
主題 {{ job.topic_id }}
{{ getJobSceneBinding(job) }}
|
{{ formatDate(job.updated_at || job.created_at) }} |
{{ job.message || '無訊息' }}
Runner={{ job.runner_id }}
|
|
| 目前沒有被記錄的背景任務 排程 ... | |||||
🗂 腳本清單
同步 script_catalog.json:根目錄相容入口、工作流、Runner、Provider、共用 helper 與舊版封存腳本
- • {{ p }}
- • {{ p }}
{{ group.label }} ({{ group.items.length }})
{{ group.description }}