Skip to content

feat(pptx): 補圖簡報一鍵轉講解影片#92

Merged
dofliu merged 2 commits into
mainfrom
claude/pptx-to-video
Jun 26, 2026
Merged

feat(pptx): 補圖簡報一鍵轉講解影片#92
dofliu merged 2 commits into
mainfrom
claude/pptx-to-video

Conversation

@dofliu

@dofliu dofliu commented Jun 26, 2026

Copy link
Copy Markdown
Owner

這個 PR 做什麼

串起整條需求的最後一哩——「上傳簡報 → 補圖 → 變成影片」。PR #91 產出的「補圖簡報(可編輯 .pptx)」現在可以一鍵轉成有旁白的講解影片,且完全複用既有的 slides_pdf 影片流程。

作法

補圖後的 .pptx → PDF(LibreOffice)→ 建一個 slides_pdf job → 既有 pipeline(Gemini 逐頁旁白 + render → MP4 + SRT)。影片裡的投影片就是補完圖的版本

變更

  • server/routes/jobs.pyPOST /jobs/{id}/to-video:取 pptx job 的補圖 .pptx artifact → render_pptx_to_pdf → 建 slides_pdf job(沿用 mockproject_id)→ schedule_job。回傳新 job 的 CreateJobResponse。LibreOffice 未裝回 501;非 pptx job / 無補圖 artifact 回 400。
  • web/JobEditor 對 pptx job 在「⬇ 下載補圖簡報」旁加「🎬 製作講解影片」按鈕:呼叫後導向新影片 job;api.pptxToVideo

使用流程(端到端)

/apppptx 上傳 .pptx →(補圖)→ Job 頁:

  • 「⬇ 下載補圖簡報」拿可編輯 pptx,或
  • 「🎬 製作講解影片」→ 自動建影片 job → 完成後 /library 預覽 + YouTube 上傳。

測試

  • to-video:建出 slides_pdf job(monkeypatch 轉檔與 schedule_job,免 LibreOffice 與重流程);非 pptx / 無 artifact → 400。
  • pptx happy-path 輪詢加長(LibreOffice 併發時較慢)。
  • 全 pptx 套件 11 passed;前端 tsc 0 error、vite build 通過。

備註

  • 同樣需 LibreOfficepptx → pdf
  • 影片旁白走 Gemini(無 key 時 mock 佔位);render 需字型(部署環境需備 CJK 字型)。

🤖 Generated with Claude Code


Generated by Claude Code

串起「上傳簡報 → 補圖 → 影片」最後一哩: pptx 補圖 job 產出的補圖簡報, 一鍵
轉成有旁白的講解影片 (複用既有 slides_pdf 流程)。

- server/routes/jobs.py: POST /jobs/{id}/to-video — 補圖 .pptx → PDF (LibreOffice)
  → 建 slides_pdf job (沿用 mock / project) → schedule_job 走 Gemini 旁白 + render
  → MP4。LibreOffice 未裝回 501。
- web: JobEditor 對 pptx job 加「🎬 製作講解影片」按鈕 → 建影片 job 並導向;
  api.pptxToVideo。
- 測試: 建 slides_pdf job (monkeypatch 轉檔/schedule 免 LO 與重流程) + 非 pptx /
  無 artifact 的 400; happy-path 輪詢加長防 LO 併發慢。

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MGT1mi2KPYyD76U1BKEhMo
@dofliu
dofliu marked this pull request as ready for review June 26, 2026 17:41
@dofliu
dofliu merged commit 0a57618 into main Jun 26, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants