From 8ad2f1c8004809a8d25340ca3ad677e49a409bb6 Mon Sep 17 00:00:00 2001 From: cottongin Date: Tue, 22 Sep 2026 10:48:16 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20stage=20all=20pending=20work=20?= =?UTF-8?q?=E2=80=94=20caption=20styling,=20media=20server,=20processing?= =?UTF-8?q?=20modal,=20docs,=20summaries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Includes: - Extended caption styling (font, shadow, dimmed color, bg toggle) - Media server, subtitle downloader, VTT parser, processing modal - Waveform tiers, thumbnail/timeline improvements, transport controls - Hybrid download model, dependency management, clip export enhancements - 21 chat summaries, 2 implementation plans, 2 design specs Co-authored-by: Cursor --- ...ix-playback-waveform-thumbnails-summary.md | 48 + ...fix-playback-codec-timeline-pan-summary.md | 54 ++ ...7-hybrid-download-defocus-input-summary.md | 60 ++ ...3-45-fix-audio-dynamic-waveform-summary.md | 72 ++ ...9-fix-multiclip-caption-support-summary.md | 116 +++ ...1_14-39-perf-captions-resize-ux-summary.md | 69 ++ ...4-51-fix-fundamental-perf-audio-summary.md | 51 ++ ...15-10-preprocess-waveform-tiers-summary.md | 47 + ...s-resize-captions-audio-upgrade-summary.md | 82 ++ ...-21_20-01-fix-hq-waveform-audio-summary.md | 50 + ...6-09-21_20-25-fix-captions-cors-summary.md | 20 + ...21-20-fix-caption-export-burnin-summary.md | 47 + ...1_21-36-fix-caption-export-bugs-summary.md | 41 + ...2-06-fix-burnin-karaoke-preview-summary.md | 74 ++ ...0-styled-burnin-export-progress-summary.md | 64 ++ ...-21_23-11-karaoke-burnin-export-summary.md | 60 ++ ..._23-22-fix-karaoke-and-progress-summary.md | 62 ++ ..._23-37-fix-burnin-caption-style-summary.md | 27 + ...00-21-rolling-karaoke-subtitles-summary.md | 65 ++ ...10-paged-teleprompter-subtitles-summary.md | 62 ++ ..._10-37-extended-caption-styling-summary.md | 66 ++ .../2026-09-22-extended-caption-styling.md | 858 ++++++++++++++++++ ...2026-09-22-paged-teleprompter-subtitles.md | 604 ++++++++++++ ...6-09-22-extended-caption-styling-design.md | 95 ++ ...-22-paged-teleprompter-subtitles-design.md | 112 +++ src-tauri/Cargo.lock | 129 +++ src-tauri/Cargo.toml | 2 + src-tauri/src/commands/dependencies.rs | 5 + src-tauri/src/commands/export.rs | 98 +- src-tauri/src/commands/video.rs | 130 ++- src-tauri/src/services/dependency_manager.rs | 52 ++ src-tauri/src/services/download_manager.rs | 13 +- src-tauri/src/services/keyframe_index.rs | 3 +- src-tauri/src/services/media_server.rs | 44 + src-tauri/src/services/mod.rs | 2 + src-tauri/src/services/subtitle_downloader.rs | 76 ++ src-tauri/src/services/thumbnail_extractor.rs | 3 +- src-tauri/src/services/video_resolver.rs | 84 ++ src-tauri/src/services/waveform_generator.rs | 143 ++- src-tauri/tauri.conf.json | 9 +- src/App.svelte | 86 +- src/lib/bindings/dependencies.ts | 4 + src/lib/bindings/video.ts | 28 + src/lib/components/ClipList.svelte | 40 +- src/lib/components/ProcessingModal.svelte | 183 ++++ src/lib/components/StatusBar.svelte | 63 +- src/lib/components/Timeline.svelte | 308 ++++++- src/lib/components/TransportControls.svelte | 78 ++ src/lib/components/UrlInput.svelte | 7 + src/lib/stores/clips.svelte.ts | 31 +- src/lib/stores/videoSession.svelte.ts | 310 +++++-- src/lib/timeline/interactions.ts | 22 + src/lib/timeline/renderer.ts | 8 +- src/lib/timeline/thumbnailRenderer.ts | 21 +- src/lib/timeline/waveformRenderer.ts | 66 +- src/lib/transport/playback.ts | 43 +- src/lib/utils/vttParser.ts | 142 +++ 57 files changed, 4929 insertions(+), 210 deletions(-) create mode 100644 chat-summaries/2026-09-21_12-21-fix-playback-waveform-thumbnails-summary.md create mode 100644 chat-summaries/2026-09-21_12-56-fix-playback-codec-timeline-pan-summary.md create mode 100644 chat-summaries/2026-09-21_13-27-hybrid-download-defocus-input-summary.md create mode 100644 chat-summaries/2026-09-21_13-45-fix-audio-dynamic-waveform-summary.md create mode 100644 chat-summaries/2026-09-21_14-09-fix-multiclip-caption-support-summary.md create mode 100644 chat-summaries/2026-09-21_14-39-perf-captions-resize-ux-summary.md create mode 100644 chat-summaries/2026-09-21_14-51-fix-fundamental-perf-audio-summary.md create mode 100644 chat-summaries/2026-09-21_15-10-preprocess-waveform-tiers-summary.md create mode 100644 chat-summaries/2026-09-21_19-31-progress-resize-captions-audio-upgrade-summary.md create mode 100644 chat-summaries/2026-09-21_20-01-fix-hq-waveform-audio-summary.md create mode 100644 chat-summaries/2026-09-21_20-25-fix-captions-cors-summary.md create mode 100644 chat-summaries/2026-09-21_21-20-fix-caption-export-burnin-summary.md create mode 100644 chat-summaries/2026-09-21_21-36-fix-caption-export-bugs-summary.md create mode 100644 chat-summaries/2026-09-21_22-06-fix-burnin-karaoke-preview-summary.md create mode 100644 chat-summaries/2026-09-21_23-00-styled-burnin-export-progress-summary.md create mode 100644 chat-summaries/2026-09-21_23-11-karaoke-burnin-export-summary.md create mode 100644 chat-summaries/2026-09-21_23-22-fix-karaoke-and-progress-summary.md create mode 100644 chat-summaries/2026-09-21_23-37-fix-burnin-caption-style-summary.md create mode 100644 chat-summaries/2026-09-22_00-21-rolling-karaoke-subtitles-summary.md create mode 100644 chat-summaries/2026-09-22_07-10-paged-teleprompter-subtitles-summary.md create mode 100644 chat-summaries/2026-09-22_10-37-extended-caption-styling-summary.md create mode 100644 docs/superpowers/plans/2026-09-22-extended-caption-styling.md create mode 100644 docs/superpowers/plans/2026-09-22-paged-teleprompter-subtitles.md create mode 100644 docs/superpowers/specs/2026-09-22-extended-caption-styling-design.md create mode 100644 docs/superpowers/specs/2026-09-22-paged-teleprompter-subtitles-design.md create mode 100644 src-tauri/src/services/media_server.rs create mode 100644 src-tauri/src/services/subtitle_downloader.rs create mode 100644 src/lib/components/ProcessingModal.svelte create mode 100644 src/lib/utils/vttParser.ts diff --git a/chat-summaries/2026-09-21_12-21-fix-playback-waveform-thumbnails-summary.md b/chat-summaries/2026-09-21_12-21-fix-playback-waveform-thumbnails-summary.md new file mode 100644 index 0000000..947bfa7 --- /dev/null +++ b/chat-summaries/2026-09-21_12-21-fix-playback-waveform-thumbnails-summary.md @@ -0,0 +1,48 @@ +# Fix: Video Playback, Waveform, and Thumbnails Not Working + +**Date:** 2026-09-21 12:21 +**Task:** Diagnose and fix three user-reported issues after downloading a video: no playback, waveform/thumbnails stuck at "Generating...", scrubbing doesn't update the player frame. + +## Root Causes + +### 1. `[Merger]` line path not parsed (Primary Bug) +When `yt-dlp` downloads video+audio separately and merges them, it outputs: +``` +[download] Destination: /path/to/file.f399.mp4 ← intermediate +[download] Destination: /path/to/file.f251.webm ← intermediate +[Merger] Merging formats into "/path/to/file.webm" ← final merged file +``` +The old parsing used `line.split(": ").nth(1)` for all three cases. This works for `[download] Destination:` lines (which have `: ` delimiter) but **fails for `[Merger]`** lines (which use `into "path"` format — no `: `). As a result, `last_file_path` pointed to a deleted intermediate file. Both `triggerPostDownloadProcessing(path)` and `session.localFilePath` received the wrong path, causing: +- All ffmpeg post-processing (waveform, thumbnails, keyframes) to fail with file-not-found +- The video player to reference a non-existent file + +### 2. Stream URL doesn't work in Tauri webview +The `yt-dlp -g` stream URL (googlevideo.com) has anti-hotlinking protections (referer/IP checks) that block playback in a Tauri/WKWebView context. The `