Skip to content

Transcribe a file: drop audio/video, get transcript + SRT/VTT export #30

Description

@ElbertePlinio

Turn PickScribe into a transcript source for existing media: drop or pick an audio/video file, get a transcript using the whisper.cpp engine that's already shipped — no new STT dependency.

Why

  • The engine, model management, and history storage all exist; only the input path is new.
  • Common ask for dictation apps, and it makes PickScribe the entry point for video-editing workflows (captions/subtitles from recorded footage).

Scope

  • File input: drag-and-drop onto the app + file picker (audio and video formats)
  • FFmpeg pre-step: extract/convert audio to 16 kHz mono WAV (whisper.cpp's expected input); clear error if ffmpeg is missing
  • Transcribe via existing stt.rs path (transcribe_with_cancel), with progress + cancel in UI (files are much longer than dictations)
  • Result lands in History like a normal session, marked as file-sourced (original filename)
  • Export: plain text, SRT, VTT (whisper.cpp --output-srt / --output-vtt); word-level timestamps where the engine supports it
  • Local-only mode respected: file transcription is fully local; cleanup step optional and off by default for files

Out of scope

  • Speaker diarization
  • Editing/cutting media
  • Batch/folder transcription (follow-up if wanted)

Validation

  • Transcribe a short WAV, an MP3, and an MP4 (audio extracted); verify History entry + all three export formats
  • Kill/cancel mid-transcription leaves no orphan temp files
  • Local-only mode: no network calls during file transcription
  • cargo test / existing suite stays green

Current status: Planned
Next action: not scheduled — created from the ai-video-editing research session (agents need transcripts of recorded footage; PickScribe already has the engine)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions