- MediaTranscriber: if whisper_url set, POSTs to own server with Basic auth (audio_file field); falls back to OpenAI cloud Whisper - Admin AI tab: new section for whisper_url / whisper_user / whisper_pass - save-ai endpoint: saves the three whisper fields to config_json Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>