Fix for enhancement issue #194
Added option to use custom OpenAI API base URL.
If not configured the default OpenAI API base URL (https://api.openai.com/v1) will be used.
Does not change current behavior of apiKey, i.e if apiKey is already configured it will not have to be re-entered when modifying base URL.
Instead of sending transcript (raw transcript json) we send cleanTranscript (formated and uses MUCH less tokens) to LLM.
Before we sent transcript:
"{"text":" Testar lite, ett, två, tre.","language":"sv","segments":[{"start":1.347,"end":4.253,"text":" Testar lite, ett, två, tre.","speaker":"SPEAKER_00"}],"word_segments":[{"start":1.347,"end":2.013,"word":"Testar","score":0.887,"speaker":"SPEAKER_00"},{"start":2.094,"end":2.74,"word":"lite,","score":0.936,"speaker":"SPEAKER_00"},{"start":2.76,"end":3.002,"word":"ett,","score":0.984,"speaker":"SPEAKER_00"},{"start":3.103,"end":3.668,"word":"två,","score":0.859,"speaker":"SPEAKER_00"},{"start":3.688,"end":4.253,"word":"tre.","score":0.88,"speaker":"SPEAKER_00"}],"confidence":0,"processing_tim... ..."
Now we send cleanTranscript:
"[SPEAKER_00] [00:00:01 - 00:00:04] Testar lite, ett, två, tre."
YouTube downloads were failing with "exit status 1" error. Root cause:
YouTube now requires yt-dlp to use a JavaScript runtime for video cipher
decryption.
Changes:
- Install Deno runtime in both Dockerfiles (standard and CUDA)
- Upgrade from yt-dlp to yt-dlp[default] to include all optional dependencies
- Add stderr capture to YouTube download handler for better error diagnostics
- Add performance logging for YouTube downloads (timing and file size)
Fixes#224
See: https://github.com/yt-dlp/yt-dlp/issues/14404