diff --git a/src/main.ts b/src/main.ts index 9d2ecc5..35d3a4d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3293,7 +3293,8 @@ function downloadVODPart( args.push('--hls-duration', endTime); } - console.log('Starting download:', streamlinkCmd.command, args); + // download-part-start in the debug log captures the same info + // for support / forensics — no need to flood stdout too. appendDebugLog('download-part-start', { itemId, command: streamlinkCmd.command, filename, args }); const proc = spawn(streamlinkCmd.command, args, { windowsHide: true }); @@ -3360,7 +3361,11 @@ function downloadVODPart( proc.stdout?.on('data', (data: Buffer) => { const line = data.toString(); - console.log('Streamlink:', line); + // No per-line stdout — streamlink emits 10-100 lines/sec during + // an active download, which floods the terminal in dev and the + // electron-launched console in prod. Progress + tag parsing + // below extracts everything we need; failures get logged via + // appendDebugLog from the consumer side. // Parse progress const match = line.match(/(\d+\.\d+)%/); @@ -6440,7 +6445,9 @@ function setupAutoUpdater() { }); autoUpdater.on('download-progress', (progress) => { - console.log(`Download progress: ${progress.percent.toFixed(1)}%`); + // No per-tick stdout — the autoUpdater fires this ~10x/sec during + // an in-flight download. The renderer banner is the user-visible + // surface; appendDebugLog already captures phase transitions. if (mainWindow) { mainWindow.webContents.send('update-download-progress', { percent: progress.percent,