4.5 KiB
Executable File
4.5 KiB
Executable File
YT Player — Improvement Backlog
The /loop works through this top-to-bottom, one item per iteration. Tick an item
([x]) only after it builds, verifies, and is committed + pushed. Add new ideas to the
bottom as they come up.
Build & verify protocol (every iteration)
- Edit the canonical source in WSL (
~/development/personal/ytplayer). - Sync changed files individually into
C:\ytbuild\ytplayer— neverCopy-Item -Recurseonto an existing dir (it nests asfrontend\frontend). npx tauri buildinC:\ytbuild\ytplayer.- Launch with
--remote-debugging-port=922xand verify via CDP/screenshot (retry the launch a few times — Smart App Control is intermittent). - Only if it builds and verifies: refresh
releases/, commit (no AI attribution),git push origin main, then tick the item here.
UX / polish
- Empty-state designs for empty playlists and empty history (match the new hero).
- Loading skeletons for search results instead of a bare "Searching…".
- Keyboard-shortcut help overlay (press
?), listing space / arrows / f / m. - Download/preload progress indicator on cards (percent or a bar, not just a pulse).
- Remember and restore the last playback position per video.
- Toast queue (stack multiple toasts instead of replacing).
Features
- Drag-to-reorder videos within a playlist.
- "Up next" queue panel showing the autoplay queue.
- Persistent mini now-playing bar when browsing other views.
- Cache size cap in Settings (auto-evict oldest past a limit).
- Export / import playlists as JSON.
- More / trending quick-search chips on the hero, rotated.
- Share a single playlist by link, imported additively (never replaces).
- Bulk-import a YouTube playlist URL into a new playlist.
- Per-playlist "available offline" status + a keep-offline pin.
- Service mode: set-list view with a screen wake lock.
- Per-song notes (key / capo / arrangement cues) on playlist entries.
Robustness
- Cookies jar for the YouTube bot gate (deferred 2026-08-27 — not being tackled yet).
runYtdlpResilient()already recovers from "Sign in to confirm you're not a bot" by retrying againstYTDLP_FALLBACK_CLIENTS, so saves no longer fail. The residual cost: while the gate is active,tv_simply/android_vr/mwebtypically expose only progressive itag 18, so those saves land at 360p instead of 720p (web_embeddedkeeps the full adaptive ladder when it works). Fix would be to supply a Netscape cookies jar so the default client stays available: the server already honoursYTDLP_COOKIES=<path>when the file exists — what's missing is mounting the jar into the container (compose volume + env) and a refresh story for when the cookies expire. Only worth doing if 360p saves become noticeable in practice. - Sanitize
video_idincache_download(reject path separators). - Gate the embedded yt-dlp behind a build flag so debug builds compile faster.
- Surface yt-dlp extraction failures with a retry button.
Done
- Empty-state designs for empty playlists and empty history (match the new hero).
460aaae - Loading skeletons for search results instead of a bare "Searching…".
da2ad27 - Keyboard-shortcut help overlay (press
?), listing space / arrows / f / m.c676786 - Download/preload progress indicator on cards (percent or a bar, not just a pulse).
81aced9 - Remember and restore the last playback position per video.
ddfa149 - Toast queue (stack multiple toasts instead of replacing).
a4d6b82 - Drag-to-reorder videos within a playlist.
0ba0f56 - "Up next" queue panel showing the autoplay queue.
4376cd9 - Persistent mini now-playing bar when browsing other views.
c1855a1 - Cache size cap in Settings (auto-evict oldest past a limit).
d15d902 - Export / import playlists as JSON.
d15d902 - More / trending quick-search chips on the hero, rotated.
c6b8dfc - Sanitize
video_idincache_download(reject path separators).c6b8dfc - Gate the embedded yt-dlp behind a build flag so debug builds compile faster.
d15d902 - Surface yt-dlp extraction failures with a retry button.
c6b8dfc - Share a single playlist by link, imported additively.
27b28f7 - Bulk-import a YouTube playlist URL.
b868dab - Per-playlist offline status + keep-offline pin.
c5f4751 - Service mode set-list view with screen wake lock.
14e1d8e - Per-song notes on playlist entries.
8ef16a8