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:
@@ -47,6 +47,27 @@ export interface PipelineResult extends TranscriptionResult {
|
||||
num_speakers: number;
|
||||
}
|
||||
|
||||
export interface ExportResult {
|
||||
output_path: string;
|
||||
format: string;
|
||||
}
|
||||
|
||||
export async function exportTranscript(
|
||||
segments: Array<{ text: string; start_ms: number; end_ms: number; speaker: string | null }>,
|
||||
speakers: Record<string, string>,
|
||||
format: string,
|
||||
outputPath: string,
|
||||
title?: string,
|
||||
): Promise<ExportResult> {
|
||||
return invoke('export_transcript', {
|
||||
segments,
|
||||
speakers,
|
||||
format,
|
||||
outputPath,
|
||||
title,
|
||||
});
|
||||
}
|
||||
|
||||
export async function runPipeline(
|
||||
filePath: string,
|
||||
options?: {
|
||||
|
||||
Reference in New Issue
Block a user