crabidy/soundclouddy/src
Test User 739c5a805a soundcloud: prefer the progressive mp3 stream (HLS exchange 404s anonymously)
Live testing showed SoundCloud only serves the progressive+audio/mpeg
transcoding to anonymous clients: its media exchange returns 200 with a direct,
range-streamable mp3 URL (cf-media.sndcdn.com, 206, audio/mpeg), while the plain
hls+audio/mpeg exchange 404s for every track (streamable or not). The provider
picked HLS, so every queued track failed to resolve a URL and was skipped.

pick_stream_url now prefers progressive, falling back to hls. A progressive URL
is a plain mp3 the player streams on its normal windowed-HTTP path (no .m3u8, so
HlsStream is bypassed); HlsStream stays the fallback for HLS-only tracks. A
genuinely restricted track (Go+/label preview, geo-blocked) still 404s the
exchange and is skipped, not crashed. Note: SoundCloud login does not help here
- public streaming is client_id-only.

Verified live: search a streamable track -> resolve -> 206 range GET returns
audio/mpeg with an mp3 frame-sync header. 19 unit tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 02:47:13 +02:00
..
api.rs soundcloud: prefer the progressive mp3 stream (HLS exchange 404s anonymously) 2026-07-24 02:47:13 +02:00
lib.rs Add the SoundCloud provider (`/soundcloud`) with HLS playback 2026-07-24 02:27:10 +02:00
tests.rs Add the SoundCloud provider (`/soundcloud`) with HLS playback 2026-07-24 02:27:10 +02:00