[2026-01-17T19:46:31.801Z] [INFO] 👥 Audience viewer connected (1 total)
[2026-01-17T19:46:32.036Z] [INFO] 🔍 Received 5 tokens from Soniox
[2026-01-17T19:46:34.873Z] [INFO] 📝 Final original (waiting for translation): ഓഡിയൻസ്, പെർഫെക്റ്റ്.
[2026-01-17T19:46:34.907Z] [INFO] 📝 Final translation caption: Audience, perfect.
[2026-01-17T19:46:38.847Z] [INFO] 🔍 Received 9 tokens from Soniox
[2026-01-17T19:46:39.996Z] [INFO] 📝 Final original (waiting for translation): ഓ, സോളാർ, യാ, യാ, യാ.
[2026-01-17T19:46:40.035Z] [INFO] 📝 Final translation caption: Oh, solar, yeah, yeah, yeah.
[2026-01-17T19:46:45.687Z] [INFO] 📝 Final original (waiting for translation): ഐ ആൾസോ ടെസ്റ്റ് ദി വെൽ,
[2026-01-17T19:46:45.717Z] [INFO] 📝 Final translation caption: I also test the well,
[2026-01-17T19:46:47.942Z] [INFO] 📝 Final original (waiting for translation): അതാണ് സോൺ.
[2026-01-17T19:46:47.960Z] [INFO] 📝 Final translation caption: that is the zone.
[2026-01-17T19:46:48.841Z] [INFO] 🔍 Received 5 tokens from Soniox
[2026-01-17T19:46:49.586Z] [INFO] 📝 Final original (waiting for translation): ഐ ഡോണ്ട് റൺ ഇറ്റ്.
[2026-01-17T19:46:49.617Z] [INFO] 📝 Final translation caption: I don't run it.
[2026-01-17T19:46:51.516Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:46:53.825Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:46:59.714Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:47:02.176Z] [INFO] Caption deleted: "I don't run it." (2026-01-17T19:46:49.617Z)
[2026-01-17T19:47:04.462Z] [INFO] 📝 Final original (waiting for translation): സ്റ്റ് ബാറ്ററി, ടെസ്റ്റ്.
[2026-01-17T19:47:04.496Z] [INFO] 📝 Final translation caption: Yeah, just battery, test.
[2026-01-17T19:47:04.888Z] [INFO] 📝 Final original (waiting for translation): ബാറ്ററി, മോർ, ഇറ്റ്സ് ഫൈൻ.
[2026-01-17T19:47:04.929Z] [INFO] 📝 Final translation caption: Battery, more, it's fine.
[2026-01-17T19:47:05.128Z] [INFO] Caption deleted: "that is the zone." (2026-01-17T19:46:47.960Z)
[2026-01-17T19:47:07.438Z] [INFO] 📝 Final original (waiting for translation): ബാറ്ററി, മോർ, ജസ്റ്റ് ലോക്ക്.
[2026-01-17T19:47:07.478Z] [INFO] 📝 Final translation caption: Battery, more, just lock.
[2026-01-17T19:47:09.720Z] [INFO] 🔍 Received 17 tokens from Soniox
[2026-01-17T19:47:09.976Z] [INFO] 📝 Final original (waiting for translation): വാട്ട് യു എക്സ്ചേഞ്ചസ് ഫോർ ദി സ്ട്രൈപ്പ്?
[2026-01-17T19:47:10.024Z] [INFO] 📝 Final translation caption: What do you exchange for the stripe?
[2026-01-17T19:47:11.675Z] [INFO] 📝 Final original (waiting for translation): യു മേക്ക് ദി ചേഞ്ചസ് ഫോർ ദിസ്.
[2026-01-17T19:47:11.713Z] [INFO] 📝 Final translation caption: You make the changes for this.
[2026-01-17T19:47:12.016Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:47:12.912Z] [INFO] 📝 Final original (waiting for translation): വാട്ട് ഷുഡ് ഐ?
[2026-01-17T19:47:12.941Z] [INFO] 📝 Final translation caption: What should I?
[2026-01-17T19:47:14.586Z] [INFO] 🔍 Received 8 tokens from Soniox
[2026-01-17T19:47:15.345Z] [INFO] 📝 Final original (waiting for translation): ഇറ്റ്സ് എ ക്വിക്ക് ഫിക്സ് ഇൻ ദി മോർണിംഗ്.
[2026-01-17T19:47:15.389Z] [INFO] 📝 Final translation caption: It's a quick fix in the morning.
[2026-01-17T19:47:15.594Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:47:16.868Z] [INFO] 📝 Final original (waiting for translation): അടുത്തത്, മോർണിംഗ് ടൈം ഫിക്സ്.
[2026-01-17T19:47:16.905Z] [INFO] 📝 Final translation caption: Next, morning time fix.
[2026-01-17T19:47:19.188Z] [INFO] 📝 Final original (waiting for translation): ലൈക്, ഇറ്റ്സ് ജസ്റ്റ് റിമൂവിങ് ദാറ്റ് പ്രോംപ്റ്റ്.
[2026-01-17T19:47:19.232Z] [INFO] 📝 Final translation caption: Like, it's just removing that prompt.
[2026-01-17T19:47:20.345Z] [INFO] 📝 Final original (waiting for translation): നോ, ഇറ്റ്സ് ലൈക് റിമൂവിങ്,
[2026-01-17T19:47:20.381Z] [INFO] 📝 Final translation caption: No, it's like removing,
[2026-01-17T19:47:21.740Z] [INFO] 📝 Final original (waiting for translation): ലിറ്റർലി റിമൂവിങ് എ പ്രോംപ്റ്റ്.
[2026-01-17T19:47:21.780Z] [INFO] 📝 Final translation caption: literally removing a prompt.
[2026-01-17T19:47:24.106Z] [INFO] 📝 Final original (waiting for translation): ഓക്കേ, ആൻഡ് യു നോ, നൗ,
[2026-01-17T19:47:24.143Z] [INFO] 📝 Final translation caption: Okay, and you know, now,
[2026-01-17T19:47:25.967Z] [INFO] 📝 Final original (waiting for translation): നോ, ദി പ്രോസസ് ഓഫ് അപ്ഡേറ്റിങ്.
[2026-01-17T19:47:25.996Z] [INFO] 📝 Final translation caption: know the process of updating.
[2026-01-17T19:47:27.006Z] [INFO] 📝 Final original (waiting for translation): ഓൾസോ, ദേർ ഈസ് നത്തിങ് ടു ഡു.
[2026-01-17T19:47:27.047Z] [INFO] 📝 Final translation caption: Also, there is nothing to do.
[2026-01-17T19:47:29.550Z] [INFO] 📝 Final original (waiting for translation): എനിക്ക് റെക്കോർഡ്.
[2026-01-17T19:47:29.579Z] [INFO] 📝 Final translation caption: I need to record.
[2026-01-17T19:47:29.729Z] [INFO] 📝 Final original (waiting for translation): വാട്ട് യു വാണ്ട് ടു ഗെറ്റ്?
[2026-01-17T19:47:29.771Z] [INFO] 📝 Final translation caption: What do you want to get?
[2026-01-17T19:47:31.803Z] [INFO] 📝 Final original (waiting for translation): റെഡി. റെഡി.
[2026-01-17T19:47:31.827Z] [INFO] 📝 Final translation caption: Ready. Ready.
[2026-01-17T19:47:33.804Z] [INFO] 📝 Final original (waiting for translation): വെയിറ്റ്, വെയിറ്റ്, വെയിറ്റ്, വെയിറ്റ്, വെയിറ്റ്.
[2026-01-17T19:47:33.841Z] [INFO] 📝 Final translation caption: Wait, wait, wait, wait, wait.
[2026-01-17T19:47:39.236Z] [INFO] Caption edited: "Wait, wait, wait, wait, wait." → "huh"
[2026-01-17T19:47:40.455Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:47:45.247Z] [INFO] 📝 Final original (waiting for translation): ഗുഡ് സ്റ്റഫ്.
[2026-01-17T19:47:45.268Z] [INFO] 📝 Final translation caption: Good stuff.
[2026-01-17T19:47:47.153Z] [INFO] Caption deleted: "Good stuff." (2026-01-17T19:47:45.268Z)
[2026-01-17T19:47:51.735Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:47:52.637Z] [INFO] 📝 Final original (waiting for translation): ഗുഡ് സ്റ്റഫ്, ഗുഡ് സ്റ്റഫ്.
[2026-01-17T19:47:52.701Z] [INFO] 📝 Final translation caption: Good stuff, good stuff.
[2026-01-17T19:47:59.686Z] [INFO] 📝 Final original (waiting for translation): ഓക്കേ, യു ക്യാൻ ഗോ.
[2026-01-17T19:47:59.719Z] [INFO] 📝 Final translation caption: Okay, you can go.
[2026-01-17T19:48:00.600Z] [INFO] 📝 Final original (waiting for translation): യു ആർ റെഡി.
[2026-01-17T19:48:00.628Z] [INFO] 📝 Final translation caption: You are ready.
[2026-01-17T19:48:04.687Z] [INFO] 📝 Final original (waiting for translation): ഹായ്, ഓഡിയൻസ്.
[2026-01-17T19:48:04.707Z] [INFO] 📝 Final translation caption: Hi, audience.
[2026-01-17T19:48:05.579Z] [INFO] 📝 Final original (waiting for translation): യാ, പെർഫെക്റ്റ്.
[2026-01-17T19:48:05.610Z] [INFO] 📝 Final translation caption: Yeah, perfect.
[2026-01-17T19:48:09.159Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:48:09.409Z] [INFO] 🛑 Client requested to stop Soniox connection
[2026-01-17T19:48:09.409Z] [INFO] 📢 Service status broadcast: ended - Service has ended
[2026-01-17T19:48:09.410Z] [INFO] 🛑 Shutting down Soniox connection gracefully...
[2026-01-17T19:48:09.410Z] [INFO] 📢 Broadcasting Soniox status: disconnected to 1 client(s)
[2026-01-17T19:48:09.411Z] [INFO] ✅ Soniox connection shut down successfully
[2026-01-17T19:48:09.664Z] [INFO] 🔌 Soniox WebSocket closed: 1000 (Session: 2.1 min)
[2026-01-17T19:48:09.664Z] [INFO] 📢 Broadcasting Soniox status: disconnected to 1 client(s)
[2026-01-17T19:48:09.665Z] [INFO] 📢 Service status broadcast: offline - Service has ended
[2026-01-17T19:48:09.665Z] [INFO] ℹ️ Manual disconnect - not reconnecting
[2026-01-17T19:48:19.961Z] [INFO] 👥 Audience viewer connected (2 total)
[2026-01-17T19:48:22.726Z] [INFO] 🎬 Client requested to start Soniox connection: ml → en
[2026-01-17T19:48:22.727Z] [INFO] 📢 Service status broadcast: connecting - Connecting to translation service...
[2026-01-17T19:48:22.727Z] [INFO] 📺 YouTube captions disabled (no URL provided)
[2026-01-17T19:48:22.727Z] [INFO] 🔌 Connecting to Soniox...
[2026-01-17T19:48:22.727Z] [INFO] API Key: dc970a4d48... (64 chars)
[2026-01-17T19:48:22.727Z] [INFO] Source Language: ml
[2026-01-17T19:48:22.727Z] [INFO] Target Language: en
[2026-01-17T19:48:22.727Z] [INFO] 📢 Broadcasting Soniox status: connecting to 1 client(s)
[2026-01-17T19:48:22.858Z] [INFO] 🔄 Reconnecting to Soniox in 2.0s (attempt 1)...
[2026-01-17T19:48:22.859Z] [INFO] 📢 Broadcasting Soniox status: connecting to 1 client(s)
[2026-01-17T19:48:23.487Z] [INFO] ✅ Connected to Soniox WebSocket
[2026-01-17T19:48:23.487Z] [INFO] 🌍 Translation enabled: ml → en
[2026-01-17T19:48:23.488Z] [INFO] 📤 Configuration sent to Soniox
[2026-01-17T19:48:23.488Z] [INFO] 📋 Config: {
"api_key": "dc970a4d48267a0670a87d33052e1010135d25da794e47d66a7aedbe7a5de7ec",
"model": "stt-rt-v3",
"endpoint_detection": true,
"audio_format": "s16le",
"sample_rate": 16000,
"num_channels": 1,
"language_hints": [
"ml"
],
"translation": {
"type": "one_way",
"target_language": "en"
}
}
[2026-01-17T19:48:23.488Z] [INFO] 📢 Broadcasting Soniox status: connected to 1 client(s)
[2026-01-17T19:48:23.488Z] [INFO] ✅ Soniox ready to receive audio
[2026-01-17T19:48:24.065Z] [INFO] 📥 First message from Soniox received
[2026-01-17T19:48:24.065Z] [INFO] ✅ Soniox configuration confirmed - receiving transcriptions
[2026-01-17T19:48:24.065Z] [INFO] 📢 Service status broadcast: ready - Service is live - Translations appearing below
[2026-01-17T19:48:26.597Z] [INFO] 🔍 Received 1 tokens from Soniox
[2026-01-17T19:48:26.598Z] [INFO] Token analysis: {"totalTokens":1,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:48:27.099Z] [INFO] 🔍 Received 3 tokens from Soniox
[2026-01-17T19:48:27.099Z] [INFO] Token analysis: {"totalTokens":3,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:48:27.237Z] [INFO] 🔍 Received 4 tokens from Soniox
[2026-01-17T19:48:27.238Z] [INFO] Token analysis: {"totalTokens":4,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:48:27.374Z] [INFO] 🔍 Received 5 tokens from Soniox
[2026-01-17T19:48:27.374Z] [INFO] Token analysis: {"totalTokens":5,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:48:27.489Z] [INFO] 🔍 Received 7 tokens from Soniox
[2026-01-17T19:48:27.490Z] [INFO] Token analysis: {"totalTokens":7,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:48:27.527Z] [INFO] 🔍 Received 8 tokens from Soniox
[2026-01-17T19:48:27.527Z] [INFO] Token analysis: {"totalTokens":8,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:48:27.596Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:48:27.992Z] [INFO] 📝 Final original (waiting for translation): ആ സോഴ്സ് ലൈവ് സ്പീക്കിങ്,
[2026-01-17T19:48:28.026Z] [INFO] 📝 Final translation caption: That source is live speaking,
[2026-01-17T19:48:29.458Z] [INFO] 📝 Final original (waiting for translation): സ്പീക്കിങ് ഹലോ ഹലോ.
[2026-01-17T19:48:29.497Z] [INFO] 📝 Final translation caption: speaking, hello, hello.
[2026-01-17T19:48:30.050Z] [INFO] 🔍 Received 7 tokens from Soniox
[2026-01-17T19:48:30.158Z] [INFO] 📝 Final original (waiting for translation): ഗോഡ്സ് ഗുഡ്.
[2026-01-17T19:48:30.177Z] [INFO] 📝 Final translation caption: God's good.
[2026-01-17T19:48:33.299Z] [INFO] 📝 Final original (waiting for translation): ദാറ്റ് സോഴ്സ് ലൈവ് സ്പീക്കിങ്.
[2026-01-17T19:48:33.329Z] [INFO] 📝 Final translation caption: That source is live speaking.
[2026-01-17T19:48:33.617Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:48:35.204Z] [INFO] 📝 Final original (waiting for translation): വേർ ദാറ്റ് ഗോ?
[2026-01-17T19:48:35.230Z] [INFO] 📝 Final translation caption: Where did that go?
[2026-01-17T19:48:38.372Z] [INFO] 📝 Final original (waiting for translation): ദാറ്റ് സോഴ്സ് ലൈവ് സ്പീക്കിങ്.
[2026-01-17T19:48:38.407Z] [INFO] 📝 Final translation caption: That source is live speaking.
[2026-01-17T19:48:42.897Z] [INFO] 📝 Final original (waiting for translation): ഓക്കേ, ദാറ്റ് സോഴ്സ് ലൈവ് സ്പീക്കിങ്.
[2026-01-17T19:48:42.935Z] [INFO] 📝 Final translation caption: Okay, that source is live speaking.
[2026-01-17T19:48:44.761Z] [INFO] 📝 Final original (waiting for translation): വേർ ദാറ്റ് കം ഫ്രം?
[2026-01-17T19:48:44.782Z] [INFO] 📝 Final translation caption: Where did that come from?
[2026-01-17T19:48:47.587Z] [INFO] 📝 Final original (waiting for translation): വി മേക്കിംഗ് സം ചേഞ്ചസ്.
[2026-01-17T19:48:47.617Z] [INFO] 📝 Final translation caption: We are making some changes.
[2026-01-17T19:48:49.498Z] [INFO] 📝 Final original (waiting for translation): മേക്കിംഗ് സം ചേഞ്ചസ്.
[2026-01-17T19:48:49.525Z] [INFO] 📝 Final translation caption: Making some changes.
[2026-01-17T19:48:50.658Z] [INFO] 📝 Final original (waiting for translation): വി ആർ മേക്കിംഗ് സം ചേഞ്ചസ്.
[2026-01-17T19:48:50.688Z] [INFO] 📝 Final translation caption: We are making some changes.
[2026-01-17T19:48:52.186Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:48:52.469Z] [INFO] 📝 Final original (waiting for translation): ട്രാൻസ്ക്രിപ്റ്റ്.
[2026-01-17T19:48:52.483Z] [INFO] 📝 Final translation caption: Transcript.
[2026-01-17T19:48:53.751Z] [INFO] 📝 Final original (waiting for translation): എ ലോട്ട് ഓഫ് ചേഞ്ചസ് ആർ ഹാപ്പനിങ്
[2026-01-17T19:48:53.788Z] [INFO] 📝 Final translation caption: A lot of changes are happening
[2026-01-17T19:48:54.634Z] [INFO] 📝 Final original (waiting for translation): ആസ് വി സ്പീക്ക്.
[2026-01-17T19:48:54.648Z] [INFO] 📝 Final translation caption: as we speak.
[2026-01-17T19:49:01.008Z] [INFO] Caption edited: "as we speak." → "mef"
[2026-01-17T19:49:03.993Z] [INFO] 📝 Final original (waiting for translation): സെലക്റ്റിങ് ഓൾസോ എന്റർ.
[2026-01-17T19:49:04.023Z] [INFO] 📝 Final translation caption: Selecting also enter.
[2026-01-17T19:49:07.712Z] [INFO] 📝 Final original (waiting for translation): എന്റർ നീഡ്സ് ടു ബി യാ.
[2026-01-17T19:49:07.742Z] [INFO] 📝 Final translation caption: Enter needs to be yes.
[2026-01-17T19:49:13.215Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:49:13.728Z] [INFO] 📝 Final original (waiting for translation): അത്
[2026-01-17T19:49:14.240Z] [INFO] Caption edited: "Selecting also enter." → "fix"
[2026-01-17T19:49:18.866Z] [INFO] 📝 Final original (waiting for translation): ലേറ്റൻസി ഈസ് വെരി ഫാസ്റ്റ്.
[2026-01-17T19:49:18.899Z] [INFO] 📝 Final translation caption: That latency is very fast.
[2026-01-17T19:49:32.812Z] [INFO] 🔍 Received 9 tokens from Soniox
[2026-01-17T19:49:33.218Z] [INFO] 📝 Final original (waiting for translation): ബട്ട് ദി വേസ് അറ്റ് റൈറ്റ് നൗ,
[2026-01-17T19:49:33.252Z] [INFO] 📝 Final translation caption: But the way at right now,
[2026-01-17T19:49:34.373Z] [INFO] 📝 Final original (waiting for translation): യൂസിങ് കാരി ആൻഡ് ഓൾ,
[2026-01-17T19:49:34.406Z] [INFO] 📝 Final translation caption: using CAR and all,
[2026-01-17T19:49:34.659Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:49:34.660Z] [INFO] 👥 Audience viewer disconnected (1 remaining)
[2026-01-17T19:49:35.288Z] [INFO] 👥 Audience viewer disconnected (0 remaining)
[2026-01-17T19:49:51.101Z] [INFO] 👥 Audience viewer connected (1 total)
[2026-01-17T19:49:54.905Z] [ERROR] ❌ Soniox error: Request timeout.
[2026-01-17T19:49:54.908Z] [INFO] 🔌 Soniox WebSocket closed: 1000 (Session: 1.5 min)
[2026-01-17T19:49:54.908Z] [INFO] 📢 Broadcasting Soniox status: disconnected to 0 client(s)
[2026-01-17T19:49:54.908Z] [INFO] 📢 Service status broadcast: offline - Connection lost - Reconnecting...
[2026-01-17T19:50:06.858Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:08.392Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:08.661Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:09.006Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:09.219Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:09.425Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:09.633Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:09.634Z] [INFO] 📤 Forwarding settings to caption displays: {"maxLines":5,"wordsPerLine":15,"linePersistence":5,"maxWidth":75,"horizontalAlign":"center","verticalAlign":"center","horizontalOffset":0,"verticalOffset":0,"fontSizeMin":24,"fontSizeMax":48,"fontFamily":"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif","lineHeight":1.6,"textColor":"#ffffff","textShadow":8,"fadeInDuration":300,"fadeOutDuration":300,"pauseThreshold":5000,"autoClear":true,"audioBufferSize":3}
[2026-01-17T19:50:09.827Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:09.903Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.089Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.275Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.462Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.646Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.727Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.811Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.894Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:10.990Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.083Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.160Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.226Z] [INFO] 👥 Audience viewer connected (2 total)
[2026-01-17T19:50:11.267Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.342Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.418Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.495Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.573Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.665Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.741Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.820Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.904Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:11.980Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.067Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.141Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.218Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.294Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.376Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.456Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.539Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.620Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.695Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.778Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.865Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:12.942Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.026Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.105Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.188Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.271Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.351Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.435Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.515Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.591Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.684Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.762Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.841Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:13.928Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.004Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.087Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.169Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.244Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.318Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.402Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.484Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.566Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.646Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.724Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.805Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.884Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:14.979Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.064Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.147Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.220Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.295Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.376Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.456Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.531Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.607Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.686Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.773Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.847Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:15.930Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.006Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.086Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.166Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.250Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.326Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.407Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.484Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.562Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.641Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.770Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.859Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:16.934Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.009Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.087Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.168Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.253Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.339Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.417Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.502Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.587Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.667Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.750Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:17.825Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:18.058Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:18.699Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:18.789Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:18.862Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:19.119Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:19.208Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:19.487Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:19.574Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:19.652Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:19.772Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.082Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.168Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.258Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.334Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.417Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.809Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.898Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:20.963Z] [INFO] 🔄 Reconnecting to Soniox in 2.0s (attempt 1)...
[2026-01-17T19:50:20.963Z] [INFO] 📢 Broadcasting Soniox status: connecting to 118 client(s)
[2026-01-17T19:50:20.977Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:21.053Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:21.271Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:21.363Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:21.922Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T19:50:22.975Z] [INFO] 🔌 Connecting to Soniox...
[2026-01-17T19:50:22.975Z] [INFO] API Key: dc970a4d48... (64 chars)
[2026-01-17T19:50:22.975Z] [INFO] Source Language: ml
[2026-01-17T19:50:22.975Z] [INFO] Target Language: en
[2026-01-17T19:50:22.976Z] [INFO] 📢 Broadcasting Soniox status: connecting to 123 client(s)
[2026-01-17T19:50:23.011Z] [INFO] 🔄 Reconnecting to Soniox in 3.0s (attempt 2)...
[2026-01-17T19:50:23.011Z] [INFO] 📢 Broadcasting Soniox status: connecting to 123 client(s)
[2026-01-17T19:50:23.735Z] [INFO] ✅ Connected to Soniox WebSocket
[2026-01-17T19:50:23.735Z] [INFO] 🌍 Translation enabled: ml → en
[2026-01-17T19:50:23.735Z] [INFO] 📤 Configuration sent to Soniox
[2026-01-17T19:50:23.735Z] [INFO] 📋 Config: {
"api_key": "dc970a4d48267a0670a87d33052e1010135d25da794e47d66a7aedbe7a5de7ec",
"model": "stt-rt-v3",
"endpoint_detection": true,
"audio_format": "s16le",
"sample_rate": 16000,
"num_channels": 1,
"language_hints": [
"ml"
],
"translation": {
"type": "one_way",
"target_language": "en"
}
}
[2026-01-17T19:50:23.735Z] [INFO] 📢 Broadcasting Soniox status: connected to 123 client(s)
[2026-01-17T19:50:23.752Z] [INFO] ✅ Soniox ready to receive audio
[2026-01-17T19:50:24.039Z] [INFO] 📥 First message from Soniox received
[2026-01-17T19:50:24.039Z] [INFO] ✅ Soniox configuration confirmed - receiving transcriptions
[2026-01-17T19:50:24.039Z] [INFO] 📢 Service status broadcast: ready - Service is live - Translations appearing below
[2026-01-17T19:50:25.710Z] [INFO] 📤 Sending audio chunk: 4096 bytes (configured: true)
[2026-01-17T19:50:25.728Z] [INFO] 🔍 Received 1 tokens from Soniox
[2026-01-17T19:50:25.728Z] [INFO] Token analysis: {"totalTokens":1,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:25.839Z] [INFO] 🔍 Received 2 tokens from Soniox
[2026-01-17T19:50:25.839Z] [INFO] Token analysis: {"totalTokens":2,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:26.225Z] [INFO] 🔍 Received 3 tokens from Soniox
[2026-01-17T19:50:26.225Z] [INFO] Token analysis: {"totalTokens":3,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:27.248Z] [INFO] 🔍 Received 3 tokens from Soniox
[2026-01-17T19:50:27.248Z] [INFO] Token analysis: {"totalTokens":3,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:27.770Z] [INFO] 🔍 Received 3 tokens from Soniox
[2026-01-17T19:50:27.770Z] [INFO] Token analysis: {"totalTokens":3,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:27.818Z] [INFO] 🔍 Received 7 tokens from Soniox
[2026-01-17T19:50:27.818Z] [INFO] Token analysis: {"totalTokens":7,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:27.888Z] [INFO] 🔍 Received 8 tokens from Soniox
[2026-01-17T19:50:27.888Z] [INFO] Token analysis: {"totalTokens":8,"hasText":true,"hasOriginalTokens":true,"hasTranslatedTokens":false,"sampleTranslationStatus":"original","sampleIsFinal":false}
[2026-01-17T19:50:28.201Z] [INFO] 👥 Audience viewer disconnected (1 remaining)
[2026-01-17T19:50:28.202Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:50:28.911Z] [INFO] 📝 Final original (waiting for translation): എസ്കേപ്പ് സ്റ്റോപ്പ് സ്റ്റോപ്പ് കണക്ഷൻ.
[2026-01-17T19:50:28.946Z] [INFO] 📝 Final translation caption: Escape stop, stop connection.
[2026-01-17T19:50:36.011Z] [INFO] 🛑 Client requested to stop Soniox connection
[2026-01-17T19:50:36.011Z] [INFO] 📢 Service status broadcast: ended - Service has ended
[2026-01-17T19:50:36.011Z] [INFO] 🛑 Shutting down Soniox connection gracefully...
[2026-01-17T19:50:36.011Z] [INFO] 📢 Broadcasting Soniox status: disconnected to 122 client(s)
[2026-01-17T19:50:36.022Z] [INFO] ✅ Soniox connection shut down successfully
[2026-01-17T19:50:36.265Z] [INFO] 🔌 Soniox WebSocket closed: 1000 (Session: 0.2 min)
[2026-01-17T19:50:36.265Z] [INFO] 📢 Broadcasting Soniox status: disconnected to 122 client(s)
[2026-01-17T19:50:36.276Z] [INFO] 📢 Service status broadcast: offline - Service has ended
[2026-01-17T19:50:36.278Z] [INFO] ℹ️ Manual disconnect - not reconnecting
[2026-01-17T19:50:59.810Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:50:59.812Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:50:59.812Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:50:59.812Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.305Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.307Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.309Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.310Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.310Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.310Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.310Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.315Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.316Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.317Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.318Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.330Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.330Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.330Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.331Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.331Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.331Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.332Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.333Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.333Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.333Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.333Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.333Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.333Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.335Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.335Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.335Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.336Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.336Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.337Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.338Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.338Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.338Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.338Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.338Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.338Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.339Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.339Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.349Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.350Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.350Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.350Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.350Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.351Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.352Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.352Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.352Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.353Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.353Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.353Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.353Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.353Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.353Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.354Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.355Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.355Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.355Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.355Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.355Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.356Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.356Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.357Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.358Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.359Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.359Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.359Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.359Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.359Z] [INFO] 👥 Audience viewer disconnected (0 remaining)
[2026-01-17T19:51:06.359Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.360Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.360Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.360Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.360Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.361Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:51:06.361Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T19:55:12.380Z] [INFO] 👥 Audience viewer connected (1 total)
[2026-01-17T19:55:56.425Z] [INFO] 👥 Audience viewer disconnected (0 remaining)
[2026-01-17T22:09:42.419Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T22:09:44.309Z] [INFO] 🔌 Browser client disconnected
[2026-01-17T22:11:01.081Z] [INFO] ✅ Browser client connected (mic input)
[2026-01-17T22:11:07.022Z] [INFO] 🔌 Browser client disconnected