Skip to content

Extending with ProtocolsΒΆ

Every stage of the pipeline is defined as a Python Protocol β€” swap in your own implementation without touching core code.

ArchitectureΒΆ

classDiagram
    class Prober {
        +probe(path: str) ProbeResult
    }
    class Converter {
        +convert(input, output, bitrate) str
    }
    class Transcriber {
        +transcribe(audio_path, language) TranscriptResult
    }
    class Editor {
        +create_plan(transcript, duration ...) EditPlan
    }
    class Renderer {
        +render(input, output, plan, copy_codec) str
    }

    class FFmpegProber { implements Prober }
    class FFmpegConverter { implements Converter }
    class OpenAITranscriber { implements Transcriber }
    class LocalTranscriber { implements Transcriber }
    class HeuristicEditor { implements Editor }
    class FFmpegAudioRenderer { implements Renderer }
    class FFmpegVideoRenderer { implements Renderer }

Custom implementationsΒΆ

Pick the protocol you want to replace: