From 3368f5def9d3a1b325c0e2fc0b2d1c94c22019d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Sat, 29 Aug 2026 01:09:28 +0100 Subject: [PATCH] temporary: log each stream request range, chasing the iOS 28-requests-per-song storm --- sidecar/stream-audio.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sidecar/stream-audio.ts b/sidecar/stream-audio.ts index 7ae4034..a5cbe6a 100644 --- a/sidecar/stream-audio.ts +++ b/sidecar/stream-audio.ts @@ -54,6 +54,13 @@ export async function streamAudioFile( } if (!s.isFile()) return new Response('Not a file', { status: 404 }); + // TEMPORARY diagnostic (2026-08-29): iOS first-play issues ~28 range requests in 2 s where Android + // issues one. This prints each request range so we can see WHICH bytes AVPlayer asks for — small + // sequential chunks would mean a transport problem, scattered offsets a VBR duration scan. + console.log( + `[stream] ${new Date().toISOString().slice(11, 23)} ${rangeHeader ?? "FULL"} · ${relPath.slice(relPath.lastIndexOf("/") + 1)}`, + ); + const total = s.size; const ext = absPath.slice(absPath.lastIndexOf('.') + 1).toLowerCase(); const contentType = CONTENT_TYPES[ext] ?? 'application/octet-stream';