Skip to content

Releases: Aljayz/nexube

v0.2.7

30 May 03:58

Choose a tag to compare

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_UNEXPECTED and "Not allowed to load local resource" errors when playing downloaded videos in packaged builds. The custom local-media:// protocol now serves files directly via fs.createReadStream (bypassing net.fetch which doesn't support file://).
  • 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:///pathlocal-media://path by using new URL() hostname reconstruction.
  • Cookie Handling: Fixed yt-dlp cookie file parameter — raw cookie strings are now written to a temporary Netscape-format cookie file.
  • Downloader Permission: Added chmodSync before 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.yml now mirrors deploy.yml with 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

v0.2.6

27 May 14:28

Choose a tag to compare

0.2.6 — Embedded Player Fullscreen Fix + UX Improvements

Fixed an issue where clicking fullscreen on VidSrc and VidAPI embedded players would fullscreen the entire Electron window instead of just the video area. These sources nest the <video> element inside cross-origin iframes and use the native Fullscreen API, which Electron propagates as an enter-html-full-screen event on the webview.

What's Changed

  • Main process (electron/main.js): Added did-attach-webview handler that forwards enter-html-full-screen and leave-html-full-screen webview events to the renderer via IPC.
  • Preload bridge (electron/preload.js): Exposed onWebviewEnterFullscreen / offWebviewEnterFullscreen / onWebviewLeaveFullscreen / offWebviewLeaveFullscreen under electron.player.*.
  • Player component (src/components/PlayerSection.jsx): Added a useEffect that intercepts the fullscreen request when the active source uses progressMethod: 'frameIteration' (VidSrc, VidAPI). Instead of allowing native fullscreen, it sets a data-player-fullscreen attribute on <html>, hides the header toolbar, and calls document.exitFullscreen() to cancel the native fullscreen.
  • CSS (src/styles/globals.css): Added rules so [data-player-fullscreen-container] becomes a fixed full-viewport overlay when html[data-player-fullscreen] is present, with overflow hidden on <body> to prevent scrolling.

Full Changelog: v0.2.5...v0.2.6

v0.2.5

27 May 10:31

Choose a tag to compare

v0.2.5

Features

  • TMDB setup help carousel — "Need help?" button opens a step-by-step guide with screenshots, zoom, and keyboard navigation
  • External browser links — TMDB link now opens in the system default browser (Chrome, Brave, Firefox, etc.) instead of Electron webview

Improvements

  • Click screenshot to zoom in with backdrop blur
  • Instruction text shown above zoomed image
  • ESC to close, ←/→ arrows to navigate steps
  • Close button positioned near the zoomed image

Full Changelog: v0.2.4...v0.2.5

v0.2.4

27 May 09:02

Choose a tag to compare

v0.2.4 — Bug Fix Release

Fixes

  • Episode switching not working in seriesseason and episode params were not forwarded to source URL builders, so every episode loaded the same URL
  • Avatar buttons submitting the setup form — avatar picker buttons inside <form> defaulted to type="submit", accidentally creating a master account when clicking an avatar
  • Reset All Data not redirecting to TMDB API setup — the in-memory store cache in the main process was not cleared during reset, causing the app to skip setup and go to profile select instead
  • charAt crash opening Settings for the first timeactiveProfile was never set after setup completed, causing profileName.charAt(0) to throw
  • ErrorBoundary "Try Again" button — now does a full page reload to reliably clear error states

Additions

  • Report button in ErrorBoundary — opens a pre-filled GitHub issue with the error message and stack trace
    Full Changelog: v0.2.3...v0.2.4

v0.2.3

27 May 06:20

Choose a tag to compare

Full Changelog: v0.2.2...v0.2.3

v0.2.2

27 May 06:01

Choose a tag to compare

What's Changed

  • Fix pick-folder dialog + dynamic default path + UI consistency by @Aljayz in #17
  • Make updates functional: publish latest*.yml to releases + theme tokens by @Aljayz in #18
  • Add What's New modal with auto-fetched release notes by @Aljayz in #19

Full Changelog: v0.2.0...v0.2.2

v0.2.1

27 May 05:38

Choose a tag to compare

What's Changed

  • Fix pick-folder dialog + dynamic default path + UI consistency by @Aljayz in #17

Full Changelog: v0.2.0...v0.2.1

v0.2.0

27 May 02:33
7f9e2fc

Choose a tag to compare

Download System Rewrite

  • New Rust-based download backend — Replaced the Python vid-dl CLI (~150MB) with a native Rust binary (desk-downloader). Smaller, faster, and no Python dependency at runtime.
  • Rewrite download IPC layer — New desk-downloads.js / desk-downloader.js replacing the old downloads.js / downloader.js with a cleaner subprocess management and progress event architecture.

Bug Fixes

  • Downloads freezing near completion — Root cause: main window reference was captured as null at registration time, silently dropping all sendProgress IPC calls. Fixed by passing getMainWindow function reference instead.
  • Stop button not updating UIstop/kill used 'stopped'/'killed' status values rejected by the DB CHECK constraint. Now maps to 'cancelled' for persistence.
  • Progress bar stuck at 0% — Added mapping from pct (subprocess field) to progress (UI field) so the bar updates in real time.
  • Download size fluctuating mid-download — First total_bytes value is now frozen; subsequent progress events no longer overwrite it.
  • Stray "0" rendering beside speed — Fixed ternary rendering for speed display in DownloadsPage.jsx.
  • Safety-net polling — Full fetchDownloads() refresh every 3 seconds catches any terminal state missed by live progress events.

UI Enhancements

  • Download rows now show raw downloaded_bytes (comma-formatted) alongside formatted total_bytes.
  • formatBytes precision changed from 1 to 2 decimal places.
  • VidSrc downloads: visible browser window with play-button banner (no auto-clicking).
  • Quick-download blocked for VidSrc (info message in DownloadModal).
  • AllManga downloads blocked for non-anime content (info message in DownloadModal).
  • PlayerSection download button requires video to be played first.

Chores

  • Removed vid-dl-cli source repo and all prebuilt binaries (Linux + Windows) from tree.
  • Added apps/desk-vid-dl/ Python package for on-the-fly PyInstaller builds.
  • Updated README, ARCHITECTURE.md, sources config, and settings UI.

v0.1.8

23 May 17:16

Choose a tag to compare

Nexube v0.1.8

Bug Fixes

  • Fixed Missing Assets in Linux Builds Resolved an issue where root-relative asset paths (e.g., /Logo.png, /Name.png) resolved incorrectly to the filesystem root (file:///) when loaded via Electron's loadFile(). Paths have been updated to be relative to dist/index.html.

  • Fixes: Missing sidebar logo, titlebar name, splash/loading screen logo, and broken avatar images in the packaged application.

  • Fixed Production Avatar Loading Updated getAvatarSrc() across AvatarPicker.jsx, ProfileSelectScreen.jsx, and ProfilesSettings.jsx to prevent prepending a forward slash (/) to avatar filenames. Built-in avatars (avatar1.png through avatar6.png) now render correctly in production environments.

  • Resolved Windows Packaging Error (Cannot find module 'conf') Fixed a build failure caused by stale dist-electron/ artifacts referencing the deprecated electron-store dependency. Cleaned up the legacy compiled output to ensure the build properly utilizes the new custom Store implementation.


NEW USERS: TMDB API Setup Required

Don't have a TMDB account or need help setting up your media keys? Check out our quick guide:


For Non-Tech User

Windows Installer

  • Nexube-0.1.8-x64.exe

Linux Installer

  • Nexube-0.1.8-amd64.deb
  • Nexube-0.1.8-x86_64.AppImage

Full Changelog: v0.1.7...v0.1.8

v0.1.7

23 May 16:47

Choose a tag to compare

Full Changelog: v0.1.6...v0.1.7