Files
ytplayer/BACKLOG.md
Jonathan Sykes c1855a1a91 Add persistent mini now-playing bar
Fixed bar at bottom of window when video is playing. Shows title,
channel, progress, play/pause toggle. Click to restore player view.

Files:
- frontend/index.html: mini-bar markup
- frontend/app.js: showMiniBar/hideMiniBar/updateMiniBar, wiring
- frontend/styles.css: .mini-bar, .mini-bar-inner, .mini-progress styles
2026-06-14 15:18:57 +08:00

1.9 KiB

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)

  1. Edit the canonical source in WSL (~/development/personal/ytplayer).
  2. Sync changed files individually into C:\ytbuild\ytplayer — never Copy-Item -Recurse onto an existing dir (it nests as frontend\frontend).
  3. npx tauri build in C:\ytbuild\ytplayer.
  4. Launch with --remote-debugging-port=922x and verify via CDP/screenshot (retry the launch a few times — Smart App Control is intermittent).
  5. 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.

Robustness

  • Sanitize video_id in cache_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