From 51bde05bff2bd4790ceef741784e18999bcb8127 Mon Sep 17 00:00:00 2001 From: Mateus Nobre Date: Tue, 6 Jan 2026 22:51:16 -0300 Subject: [PATCH] feat: register Eleven Labs as transcription provider --- internal/transcriber/transcriber.go | 6 +++++ internal/transcriber/transcriber_test.go | 30 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/internal/transcriber/transcriber.go b/internal/transcriber/transcriber.go index 70a69b7..1dcfecb 100644 --- a/internal/transcriber/transcriber.go +++ b/internal/transcriber/transcriber.go @@ -57,6 +57,12 @@ func NewTranscriber(config Config) (Transcriber, error) { } adapter = NewMistralAdapter(config) + case "elevenlabs": + if config.APIKey == "" { + return nil, fmt.Errorf("ElevenLabs API key required") + } + adapter = NewElevenLabsAdapter(config) + default: return nil, fmt.Errorf("unsupported provider: %s", config.Provider) } diff --git a/internal/transcriber/transcriber_test.go b/internal/transcriber/transcriber_test.go index 700fd3c..fa552a6 100644 --- a/internal/transcriber/transcriber_test.go +++ b/internal/transcriber/transcriber_test.go @@ -95,6 +95,36 @@ func TestNewTranscriber(t *testing.T) { }, wantErr: true, }, + { + name: "valid elevenlabs config with scribe_v1", + config: Config{ + Provider: "elevenlabs", + APIKey: "test-key", + Language: "en", + Model: "scribe_v1", + }, + wantErr: false, + }, + { + name: "valid elevenlabs config with scribe_v2", + config: Config{ + Provider: "elevenlabs", + APIKey: "test-key", + Language: "pt", + Model: "scribe_v2", + }, + wantErr: false, + }, + { + name: "elevenlabs config without api key", + config: Config{ + Provider: "elevenlabs", + APIKey: "", + Language: "en", + Model: "scribe_v1", + }, + wantErr: true, + }, { name: "unsupported provider", config: Config{