h-lab/src/main/java/com/hlab/yanalyst
hehihoho3@gmail.com b9aa04d4a3 feat(rework): synced subtitle extraction via file upload + Whisper, SRT export
Phase 1 of subtitle timeline studio. Upload a video in the rework editor →
proxy to Python /transcribe (faster-whisper) → store segments → render a
playback-synced segment list and export CapCut-importable SRT.

- ScriptSegment + SrtFormatter (pure, unit-tested) with speed rescaling
- ChannelVideoScript.segmentsJson column (ddl-auto adds it)
- ChannelService.transcribeFromFile + getSegments/parseSegments
- POST /{id}/transcribe (multipart), GET /{id}/script.srt?speed=, /script now returns segments
- rework.html: upload button, local <video>, segment list, SRT export + speed
- multipart 200MB limit; python.base-url config (PYTHON_BASE_URL)
- repo: findFirstByVideoIdOrderByIdDesc/findAllByVideoId (dedup-safe lookups)

Spec: docs/superpowers/specs/2026-06-12-subtitle-timeline-studio-design.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 16:23:55 +09:00
..
domain feat(rework): synced subtitle extraction via file upload + Whisper, SRT export 2026-06-12 16:23:55 +09:00
global Baseline before video model consolidation 2026-05-30 18:56:21 +09:00
service feat(dashboard): add full-set pipeline summary with single endpoint 2026-05-30 22:31:21 +09:00
web feat(dashboard): add full-set pipeline summary with single endpoint 2026-05-30 22:31:21 +09:00
HLabApplication.java Baseline before video model consolidation 2026-05-30 18:56:21 +09:00