Phase 4: Export to SRT, WebVTT, ASS, plain text, and Markdown

- Implement ExportService using pysubs2 for caption formats (SRT, VTT, ASS)
  and custom formatters for plain text and Markdown
- SRT exports with [Speaker]: prefix, WebVTT with <v Speaker> voice tags,
  ASS with color-coded speaker styles
- Plain text groups by speaker with labels, Markdown adds timestamps
- Add export.start IPC handler and export_transcript Tauri command
- Add export dropdown menu in header (appears after transcription)
- Uses native save dialog for output file selection
- Add pysubs2 dependency
- Tests: 30 Python (6 export tests), 6 Rust, 0 Svelte errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 16:18:54 -08:00
parent 44480906a4
commit 415a648a2b
9 changed files with 557 additions and 9 deletions

View File

@@ -3,6 +3,7 @@ pub mod db;
pub mod sidecar;
pub mod state;
use commands::export::export_transcript;
use commands::project::{create_project, get_project, list_projects};
use commands::transcribe::{run_pipeline, transcribe_file};
@@ -17,6 +18,7 @@ pub fn run() {
list_projects,
transcribe_file,
run_pipeline,
export_transcript,
])
.run(tauri::generate_context!())
.expect("error while running tauri application");