v3: native bandcamp playback and a queue in the global player
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 43s

The player now holds a queue instead of a single item, so albums play
through and single tracks share the same code path. Adds a "stream" item
kind for expiring, remotely-hosted sources: Bandcamp signs its mp3 URLs
for ~24h, so an item carries the page it came from and re-resolves itself
on error or on a stale restored session, falling back to the iframe embed
if that fails too.

Gated behind GERBEUR_BANDCAMP_PLAYER (default "embed"), injected into a
meta tag the same way as site-name/site-emoji.

Also: player header gains artwork and a subtitle, volume persists across
queue advances and reloads, and cross-origin streams get a plain seek bar
rather than a waveform that can never decode.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SbtjNsT5wvuABnfqhegZEJ
This commit is contained in:
khannurien
2026-08-22 12:14:28 +00:00
parent eb323a8ba8
commit 2606ef4ccc
30 changed files with 1531 additions and 225 deletions

View File

@@ -169,6 +169,9 @@
[data-style="nyt"] .global-player,
[data-style="nyt"] .global-player-media-wrap,
[data-style="nyt"] .global-player-iframe-wrap,
[data-style="nyt"] .global-player-artwork,
[data-style="nyt"] .audio-player-track--stream::before,
[data-style="nyt"] .audio-player-track--stream .audio-player-fill,
[data-style="nyt"] .fdz,
[data-style="nyt"] .visibility-toggle,
[data-style="nyt"] .feed-tab,