diff --git a/discord.js-selfbot-v13 b/discord.js-selfbot-v13 index c1d0b98..d8e4393 160000 --- a/discord.js-selfbot-v13 +++ b/discord.js-selfbot-v13 @@ -1 +1 @@ -Subproject commit c1d0b98a487eda0557d29135024d1eb3c72b968d +Subproject commit d8e4393ff525f1fd5ccf3bd6c9407b0596e3d9a4 diff --git a/entry.sh b/entry.sh index 41d8f52..e88f673 100755 --- a/entry.sh +++ b/entry.sh @@ -13,12 +13,12 @@ openbox & x11vnc -display :99 -shared -forever -nopw -rfbport 5901 -bg & # Launch discord in the background. THIS IS THE FIX. -discord \ - --no-sandbox \ - --disable-dev-shm-usage \ - --disable-gpu \ - --disable-background-timer-throttling \ - --disable-renderer-backgrounding & +# discord \ +# --no-sandbox \ +# --disable-dev-shm-usage \ +# --disable-gpu \ +# --disable-background-timer-throttling \ +# --disable-renderer-backgrounding & # Give Discord a moment to start before launching the controller script sleep 10 diff --git a/src/services/webcamRecording.js b/src/services/webcamRecording.js index 110de59..a70c211 100644 --- a/src/services/webcamRecording.js +++ b/src/services/webcamRecording.js @@ -55,7 +55,26 @@ class WebcamRecordingService { ); // Wait longer for connection and SSRC mapping to be fully established - await new Promise((resolve) => setTimeout(resolve, 5000)); + await new Promise((resolve) => setTimeout(resolve, 8000)); + + // Wait for SSRC mapping to be populated + let ssrcRetries = 0; + const maxSSRCRetries = 15; + while (ssrcRetries < maxSSRCRetries) { + if (connection.ssrcMap && connection.ssrcMap.size > 0) { + console.log( + `[Docker] SSRC mapping ready with ${connection.ssrcMap.size} entries after ${ssrcRetries} retries` + ); + break; + } + console.log( + `[Docker] Waiting for SSRC mapping... (${ + ssrcRetries + 1 + }/${maxSSRCRetries})` + ); + await new Promise((resolve) => setTimeout(resolve, 1000)); + ssrcRetries++; + } // Wait for user's camera to be detected in voice state let retries = 0; @@ -73,7 +92,7 @@ class WebcamRecordingService { retries + 1 }/${maxRetries})` ); - await new Promise((resolve) => setTimeout(resolve, 1000)); + await new Promise((resolve) => setTimeout(resolve, 2000)); retries++; } @@ -83,6 +102,17 @@ class WebcamRecordingService { ); } + // Log final SSRC state before starting recording + console.log( + `[Docker] Starting webcam recording with SSRC map:`, + Array.from(connection.ssrcMap.entries()).map(([ssrc, data]) => ({ + ssrc, + userId: data.userId?.slice(-4), + streamType: data.streamType, + hasVideo: data.hasVideo, + })) + ); + console.log(`[Docker] Creating webcam stream for user ${user.id}`); // Create webcam stream with retry logic