v0.2.7 — Offline Playback & Downloads Overhaul
New Features
- Grouped Downloads: Completed downloads are now organized into Movies and TV Series sections on the Downloads page with poster card grid layout.
- Offline Detail View: Click a download card to open a full detail view (like the online DetailView but powered by local data). Browse episodes by season, play any episode, and navigate between episodes with prev/next buttons.
- Auto-Advance: When an episode finishes, the next episode plays automatically.
- Movie Play Button: Compact play button placed beside the poster instead of a giant full-width button.
Bug Fixes
- Production Download Playback: Fixed
net::ERR_UNEXPECTEDand "Not allowed to load local resource" errors when playing downloaded videos in packaged builds. The customlocal-media://protocol now serves files directly viafs.createReadStream(bypassingnet.fetchwhich doesn't supportfile://). - Video Seeking: Added proper HTTP Range request handling (206 Partial Content) so video seeking/buffering works past the first 3 seconds.
- URL Normalization: Fixed Chromium stripping empty authority from
local-media:///path→local-media://pathby usingnew URL()hostname reconstruction. - Cookie Handling: Fixed
yt-dlpcookie file parameter — raw cookie strings are now written to a temporary Netscape-format cookie file. - Downloader Permission: Added
chmodSyncbefore spawning downloader binary in AppImage/deb builds. - React Hooks Violation: Fixed "Rendered more hooks than during previous render" crash caused by early returns before hook declarations.
Infrastructure
- Separated Downloader Build:
release.ymlnow mirrorsdeploy.ymlwith dedicated downloader build jobs. The Electron build downloads the pre-built artifact, making failures visible earlier. - Downloader Binary Detection: Both workflows verify binary existence after build and after artifact download.
Full Changelog: v0.2.6...v0.2.7