A desktop media streaming application built with Electron, React, and Vite — designed for multi-profile households with advanced playback control.
Latest release (Nexube v0.2.6)
- Multi-Source Streaming Player — Switch seamlessly between Videasy, VidAPI, VidSrc, and AllManga (anime) without leaving the player
- Picture-in-Picture Mode — Native PiP popout with cross-platform window frame configuration
- Pop-up & Redirect Blocking — Webview-level interception with per-session stats tracking
- HLS Download Manager — Stream capture via bundled
vid-dlbinary (PyInstaller), with progress tracking and queue management
- Three Profile Types — Master, Kids, and Standard profiles, each with independent settings
- PIN/Password Protection — Secure adult profiles while keeping Kids Mode accessible
- Age-Based Content Filtering — Automatic content restriction in Kids Mode
- Per-Profile Settings — Custom accent colors, download paths, preferred streaming source, auto-mark-watched threshold, and search history
- Watchlist, History & Progress Tracking — SQLite-persistent per profile, pick up where you left off
- TMDB Integration — Browse trending, popular, and top-rated content with rich metadata
- Smart Search — Search across movies and TV shows with history per profile
- In-App Feedback System — Report issues directly via serverless proxy → GitHub Issues
- Keyboard-Driven Navigation — Full shortcut support for power users
- Cross-Platform — Native installers for Windows (NSIS), Linux (AppImage, deb, pacman(soon)), and macOS (DMG)(soon)
- Mobile Support
- macOS Native Build
- Custom Source Plugins
- Subtitle Support
Nexube relies on The Movie Database (TMDB) to fetch all content metadata. To get started, you'll need to generate a free personal API key. Follow the steps below carefully.
-
Create or Log Into Your Account Head over to themoviedb.org. If you already have an account, simply sign in. Otherwise, fill out the registration form to create one.

-
Activate Your Account After signing up, check the inbox of the email address you used. You'll find an activation link—click it to verify and activate your account.

-
Navigate to Account Settings Once you're logged in and on the main landing page, click on your profile avatar in the top-right corner.
A dropdown menu will appear. Select the "Settings" option.

-
Open the API Section On the Settings page, locate the navigation menu on the left-hand side of your screen. Click on the "API" entry.

-
Generate a New API Key You'll be taken to the API management page. Click the "Create" button to start the process of generating a new key.

-
Choose the Key Type A prompt will appear asking how you intend to use the API key. Select the "Personal Use Only" option. This is the appropriate choice for using Nexube.

-
Accept the Terms of Use Read through the terms, then check the acknowledgment checkbox. Click the "Yes, this is for personal use" button to proceed.

-
Complete the Application Form Fill in the required details. You can devise a name of your own choosing or simply copy the pre-filled one. For the "Application URL", you may use a link to your social media profile or any valid URL you have. A quick tip: the system sometimes requires a more elaborate application summary, so don't hesitate to expand the "Summary" field with a brief, clear description.

-
Reveal Your New Key Once the API key is successfully created, you'll see it listed on the page. Click on the highlighted text representing your new key to view its full details.

-
Copy the API Key Value After clicking the highlighted text, a section with data will expand below. Look for the random string of characters in the "API Key" field. Carefully copy this entire value—this is what you'll paste into Nexube.

Security Note:API keys should always be kept strictly confidential. The key shown in this example has expired and is no longer active.
- Node.js ≥ 18
- pnpm ≥ 9
- Python (for
vid-dldownloader)
# Clone the repository
git clone https://github.com/Aljayz/nexube.git
cd nexube/apps/desktop
# Install dependencies
pnpm install
# Run web-only dev server (hot reload, port 5173)
pnpm dev
# Run full Electron app in dev mode
pnpm electron:dev| Command | Description |
|---|---|
pnpm dev |
Vite dev server (renderer only, browser) |
pnpm build |
Production build of the renderer |
pnpm electron:dev |
Electron app with hot module replacement |
pnpm electron:build |
Full production build + platform packaging |
| Shortcut | Action |
|---|---|
Ctrl/Cmd + K or Ctrl/Cmd + F |
Open search |
Ctrl/Cmd + Z |
Navigate back |
Ctrl/Cmd + R |
Reload app |
Ctrl/Cmd + X |
Logout |
Escape |
Close modal / exit player |
? |
Show help & shortcuts overlay |
Space |
Play / Pause |
F |
Toggle fullscreen |
← / → |
Seek backward / forward 10 seconds |
| Layer | Technology |
|---|---|
| Desktop Shell | Electron 28 |
| UI Framework | React 18 + Tailwind CSS 3 |
| Build System | Vite 5 + vite-plugin-electron |
| State & Database | SQLite via @nexube/store |
| Streaming | System webview (iframe embeds) |
| Packaging | electron-builder 24 |
| Monorepo | pnpm workspaces + Turborepo |
nexube/
├── apps/desktop/
│ ├── electron/ # Main process
│ │ ├── main.js # Window creation, IPC registration
│ │ ├── preload.js # Context bridge → window.electron.*
│ │ ├── popout-preload.js # PiP window preload
│ │ ├── ipc/ # IPC handlers (10 modules)
│ │ └── services/ # Downloader, HLS capture, source resolvers
│ ├── src/ # Renderer (React)
│ │ ├── pages/ # Route-level components (7 pages)
│ │ ├── components/ # Reusable UI (30+ components)
│ │ ├── hooks/ # Custom React hooks (5)
│ │ └── App.jsx # Root component
│ ├── scripts/ # Build & utility scripts
│ ├── resources/ # Bundled binaries (vid-dl per platform)
│ ├── public/ # Static assets (icons, avatars)
│ ├── package.json
│ ├── vite.config.mjs
│ └── tailwind.config.js
├── packages/
│ ├── store/ # @nexube/store — SQLite database layer
│ ├── types/ # @nexube/types — Shared TypeScript definitions
│ ├── player-engine/ # @nexube/player-engine — Player logic
│ └── ui-tokens/ # @nexube/ui-tokens — Design tokens
└── docs/
├── ARCHITECTURE.md
├── DEVELOPMENT.md
└── FEEDBACK_SYSTEM_SETUP.md
# Linux (AppImage + deb + pacman)
pnpm electron:build
# Windows (NSIS installer) — requires Wine on Linux
pnpm electron:build --win
# macOS (DMG) — requires macOS
pnpm electron:build --macOutputs are placed in release/.
- ARCHITECTURE.md — System design, data flow, IPC map
- DEVELOPMENT.md — Setup guide, coding conventions, contributing
- FEEDBACK_SYSTEM_SETUP.md — Deploying the serverless feedback proxy
This project was inspired by Streambert by truelockmc. While Nexube is a completely independent implementation written from scratch, their work heavily influenced the concept and initial architecture.
GNU GPL-3.0 — see LICENSE for full details.
Copyright © 2026 Aljayz














