Claude
25e7a28b6a
Merge shuffle, repeat list and loop one into one playback mode button
2026-10-01 21:03:48 +00:00
Claude
f9cb7edeb2
Replace transport emoji with centred SVG icons and distinguish loop-one from repeat-list
2026-10-01 21:02:23 +00:00
Claude
9f313f61af
Move secondary player controls into a More controls sheet
2026-10-01 20:58:15 +00:00
Claude
88f878b8eb
Move rarely used video actions into a More actions sheet
2026-10-01 20:55:04 +00:00
Claude
9eb5e98048
Add Gallery action beside Save and an icon-only refresh beside Play all
2026-10-01 20:39:17 +00:00
Claude
02b337fcbc
Add save-to-device export, server export route and an On other devices P2P list
2026-10-01 18:53:00 +00:00
Claude
9d74769029
Add deck tabs, uniform action buttons, lyric reports in the player panel and a song list in the lyrics studio
2026-09-30 15:57:11 +00:00
Claude
e64880c163
Redesign playlist header, player deck, now-playing actions and lyrics panel layout
2026-09-30 15:29:44 +00:00
Claude
04a74ab45d
Redesign service-mode controls and add per-profile wrong-lyric-line reports
2026-09-30 15:15:07 +00:00
Claude
c8837befed
Download a verified file from another device over WebRTC
2026-09-30 07:54:34 +00:00
Claude
8d57a654c1
Let a device hand a file to the server for hashing and validation
2026-09-30 07:50:38 +00:00
Claude
61d0274896
Show peer availability with stale markers and add Sharing settings
2026-09-30 07:45:13 +00:00
Claude
c629ff5836
Register devices and report verified holdings to the server
2026-09-30 07:38:47 +00:00
Claude
6af96622dd
Add the on-device IndexedDB file registry and hash saves while downloading
2026-09-30 07:31:18 +00:00
Claude
b24366d6c0
Warm the stream cache for likely next plays
2026-09-30 06:53:48 +00:00
Claude
7781e0a116
Add startup, search and play timing marks plus yt-dlp duration logs
2026-09-30 06:41:50 +00:00
Jonathan Sykes
56d0838391
support shareable search links via a ?q= URL parameter
2026-09-30 00:19:20 +08:00
Jonathan Sykes
74777ef87f
show a lightning icon on recent searches that will load instantly
2026-09-30 00:18:22 +08:00
Jonathan Sykes
4f0ee45980
cache recent search results locally so re-running one is instant
2026-09-30 00:16:35 +08:00
Jonathan Sykes
6480b314d5
remember recent searches on-device and show them under the search box
2026-09-29 22:08:16 +08:00
Jonathan Sykes
ba697e5d11
floor service-mode lyric font size and space out verses
2026-09-26 02:11:07 +08:00
Jonathan Sykes
05e85a0a3f
Give untimed lyrics one uniform line size in service mode
2026-09-24 08:34:09 +08:00
Jonathan Sykes
d64c5f2613
Lift the section rail clear of the floating mini player
2026-09-22 14:58:31 +08:00
Jonathan Sykes
aa92fb1f05
Count a bottom bar that stops above the home indicator when placing the rail
2026-09-22 14:33:31 +08:00
Jonathan Sykes
c9e021a045
Keep the watch party panel above the bottom bars so its leave button is reachable
2026-09-22 14:23:39 +08:00
Jonathan Sykes
6c4571cb33
Measure the bottom bars so the section rail is never hidden behind the mini player
2026-09-22 14:09:03 +08:00
Jonathan Sykes
530d07d920
Add a mobile section rail that follows the scroll, jumps between cards and folds the one you are on
2026-09-22 13:47:26 +08:00
Jonathan Sykes
987697e759
Paint saved playlists before the launch sync and swap a background-downloaded update instantly
2026-09-22 13:27:12 +08:00
Jonathan Sykes
2a4526578f
Show lyrics in place of the video for watch parties and sing-alongs
2026-09-21 21:03:46 +08:00
Jonathan Sykes
b983c6ca3c
Fetch lyrics from LRCLIB (synced when available) and serve an admin media library of uploaded video and audio with cover art and embedded lyrics
2026-09-20 05:59:50 +08:00
Jonathan Sykes
9c1ec4ac51
Add presenter view, stats, lyrics worker, watch party with voice chat, timestamp sharing, soundbites, notes, transcript search, PiP, EQ, sleep fade, gestures and external players; fix the crossfade end-of-song race
2026-09-20 00:07:12 +08:00
Jonathan Sykes
ca07e1fdf1
Add gapless and crossfade playlist transitions with a mode toggle, and a waveform seek bar for audio-only playback
2026-09-19 16:12:33 +08:00
Jonathan Sykes
71fc51fb50
Add a lyrics-only service mode view with the sung line centred and auto-sized, and a free local faster-whisper script to transcribe saved songs
2026-09-19 08:33:00 +08:00
Jonathan Sykes
b82f17cd46
Add phone remote control: pair a phone with a 6-digit code or QR to drive a desktop instance's playback, queue, volume, sleep timer and service mode
2026-09-18 20:19:00 +08:00
Jonathan Sykes
524db986d2
Add shared synced lyrics, chapters and personal bookmarks with revision history, API tokens and an admin page
2026-09-18 18:10:10 +08:00
Jonathan Sykes
a20dd0a3a6
Replace saved copies that fail to play, reject truncated saves, and re-check the device cache when the app returns to the foreground
2026-09-18 10:11:20 +08:00
Jonathan Sykes
64f45a102d
Check the playlist inbox when the app returns to the foreground and every two minutes while open
...
Sent playlists were only picked up on a cold start, so an installed PWA
resumed from the background never showed them.
2026-09-18 09:28:01 +08:00
Jonathan Sykes
8b0060d42a
Re-encode cached videos to HEVC when it saves at least 15 percent and serve them only to devices that can decode HEVC
2026-09-13 21:09:15 +08:00
Jonathan Sykes
91dab289c3
Show the update banner only when the running build differs from the server and make Refresh UI land the new shell on flaky links
2026-09-13 17:42:50 +08:00
Jonathan Sykes
5fb863ba25
Cache every played or saved video on the server via background jobs with a validation gate and a Broken re-download button
2026-09-13 09:45:01 +08:00
Jonathan Sykes
292a0c7e29
Show the video inline in service mode and keep audio alive in the background
2026-09-08 17:36:55 +08:00
Jonathan Sykes
a3089dde74
Add a service mode shortcut to the now-playing bar and a video panel toggle
2026-09-08 16:59:43 +08:00
Jonathan Sykes
3e1b56610f
Let a shared playlist be sent to another user by name
2026-09-08 15:52:46 +08:00
Jonathan Sykes
9366b1749c
Keep service mode full-bleed on iOS and hide the player chrome behind it
2026-09-08 11:55:15 +08:00
Jonathan Sykes
e91fe83cc7
Fill the phone screen in service mode and open it on the playing song
2026-09-08 06:51:03 +08:00
Jonathan Sykes
defc8a7f1a
Proxy YouTube playback through server to fix intermittent 403s
...
Direct googlevideo URLs are bound to the extractor's IP and expire, so the
browser fetching them from a different IP got intermittent 403s on playback.
Route playback through a same-origin /api/play proxy that fetches the stream
server-side (matching the extractor IP) with yt-dlp's own http_headers and
forwards Range headers for seeking; fall back to piping yt-dlp for SABR/itag-18
formats a plain GET can't fetch. Prefer adaptive streams over progressive in
the playback fallback order.
2026-08-23 15:04:18 +08:00
Jonathan Sykes
eb6ed215fe
Add 6 selectable layout themes to Settings (Appearance)
2026-08-16 16:33:26 +00:00
Jonathan Sykes
8ef16a8b38
Add per-song notes on playlist entries
2026-08-16 13:58:22 +00:00
Jonathan Sykes
14e1d8e3dd
Add service mode set-list view with screen wake lock
2026-08-16 13:51:27 +00:00
Jonathan Sykes
c5f47514ad
Show per-playlist offline status and add a keep-offline pin
2026-08-16 13:45:19 +00:00