[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81167":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":13,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},81167,"nexube","Aljayz\u002Fnexube","Aljayz","A desktop media streaming application built with Electron, React, and Vite.","",null,"JavaScript",34,5,29,13,0,1,3,45.33,"GNU General Public License v3.0",false,"master",true,[],"2026-06-12 04:01:32","# Nexube\n\n> A desktop media streaming application built with Electron, React, and Vite — designed for multi-profile households with advanced playback control.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FHome.png\" alt=\"Nexube Home Screen\" width=\"800\"\u002F>\n\u003C\u002Fp>\n\n---\n## Download Link\n[Latest release (Nexube v0.2.6)](https:\u002F\u002Fgithub.com\u002FAljayz\u002Fnexube\u002Freleases\u002Ftag\u002Fv0.2.6)\n\n---\n## Ranking\n\u003Ca href=\"https:\u002F\u002Fviberank.dev\u002Fapps\u002FNexube\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cimg src=\"https:\u002F\u002Fviberank.dev\u002Fbadge?app=Nexube&theme=dark\" alt=\"Nexube on VibeRank\" \u002F>\u003C\u002Fa>\n\n---\n\n## Features\n\n### 🎬 Core Experience\n- **Multi-Source Streaming Player** — Switch seamlessly between Videasy, VidAPI, VidSrc, and AllManga (anime) without leaving the player\n- **Picture-in-Picture Mode** — Native PiP popout with cross-platform window frame configuration\n- **Pop-up & Redirect Blocking** — Webview-level interception with per-session stats tracking\n- **HLS Download Manager** — Stream capture via bundled `vid-dl` binary (PyInstaller), with progress tracking and queue management\n\n### Multi-Profile System\n- **Three Profile Types** — Master, Kids, and Standard profiles, each with independent settings\n- **PIN\u002FPassword Protection** — Secure adult profiles while keeping Kids Mode accessible\n- **Age-Based Content Filtering** — Automatic content restriction in Kids Mode\n- **Per-Profile Settings** — Custom accent colors, download paths, preferred streaming source, auto-mark-watched threshold, and search history\n\n### Content Management\n- **Watchlist, History & Progress Tracking** — SQLite-persistent per profile, pick up where you left off\n- **TMDB Integration** — Browse trending, popular, and top-rated content with rich metadata\n- **Smart Search** — Search across movies and TV shows with history per profile\n\n### Under the Hood\n- **In-App Feedback System** — Report issues directly via serverless proxy → GitHub Issues\n- **Keyboard-Driven Navigation** — Full shortcut support for power users\n- **Cross-Platform** — Native installers for Windows (NSIS), Linux (AppImage, deb, pacman(soon)), and macOS (DMG)(soon)\n\n---\n## Future Support\n- **Mobile Support**\n- **macOS Native Build**\n- **Custom Source Plugins**\n- **Subtitle Support**\n\n---\n\n## Screenshots\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Setup & Onboarding\u003C\u002Fstrong>\u003C\u002Fsummary>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002Fsplash.png\" alt=\"Splash Screen\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FSetup.png\" alt=\"TMDB API Setup\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002Fsetup-profile.png\" alt=\"Profile Setup\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002Fsetup-profile-w-sec.png\" alt=\"Profile with Security\" width=\"400\"\u002F>\n\u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Main Interface\u003C\u002Fstrong>\u003C\u002Fsummary>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FHome.png\" alt=\"Home\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FLibrary.png\" alt=\"Library\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FSearch.png\" alt=\"Search\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FDetail.png\" alt=\"Content Detail\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FPlayer.png\" alt=\"Player\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FNavSwitch.png\" alt=\"Navigation Switch\" width=\"400\"\u002F>\n\u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Utilities & Settings\u003C\u002Fstrong>\u003C\u002Fsummary>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FDownload.png\" alt=\"Download Manager\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FNotif.png\" alt=\"Notifications\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FSettings.png\" alt=\"Settings\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002FHelp.png\" alt=\"Help & Shortcuts\" width=\"400\"\u002F>\n  \u003Cimg src=\"screenshots\u002Fapp-view\u002Fnotice.png\" alt=\"Notice\" width=\"400\"\u002F>\n\u003C\u002Fp>\n\u003C\u002Fdetails>\n\n---\n\n## Obtaining Your TMDB API Key\n\nNexube relies on [The Movie Database (TMDB)](https:\u002F\u002Fwww.themoviedb.org) to fetch all content metadata. To get started, you'll need to generate a free personal API key. Follow the steps below carefully.\n\n1.  **Create or Log Into Your Account**\n    Head over to [themoviedb.org](https:\u002F\u002Fwww.themoviedb.org). If you already have an account, simply sign in. Otherwise, fill out the registration form to create one.\n    ![TMDB Sign Up\u002FLogin](screenshots\u002Fsetup-view\u002Fsetup\u002Ftmdb.png)\n\n2.  **Activate Your Account**\n    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.\n    ![Activation Email](screenshots\u002Fsetup-view\u002Fsetup\u002Facvtivation.png)\n\n3.  **Navigate to Account Settings**\n    Once you're logged in and on the main landing page, click on your profile avatar in the top-right corner.\n    ![Landing Page](screenshots\u002Fsetup-view\u002Fsetup\u002Flanding.png)\n    A dropdown menu will appear. Select the **\"Settings\"** option.\n    ![Settings Dropdown](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-1.png)\n\n4.  **Open the API Section**\n    On the Settings page, locate the navigation menu on the left-hand side of your screen. Click on the **\"API\"** entry.\n    ![API Sidebar Link](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-2.png)\n\n5.  **Generate a New API Key**\n    You'll be taken to the API management page. Click the **\"Create\"** button to start the process of generating a new key.\n    ![Create API Key Button](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-3.png)\n\n6.  **Choose the Key Type**\n    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.\n    ![Personal Use Selection](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-4.png)\n\n7.  **Accept the Terms of Use**\n    Read through the terms, then check the acknowledgment checkbox. Click the **\"Yes, this is for personal use\"** button to proceed.\n    ![Terms of Use Acceptance](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-5.png)\n\n8.  **Complete the Application Form**\n    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.\n    ![Application Details Form](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-6.png)\n\n9.  **Reveal Your New Key**\n    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.\n    ![Reveal API Key](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-7.png)\n\n10. **Copy the API Key Value**\n    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.\n    ![Copy API Key Value](screenshots\u002Fsetup-view\u002Fsetup\u002Fstep-8.png)\n> `Security Note:` API keys should always be kept strictly confidential. The key shown in this example has expired and is no longer active.\n---\n\n## Quick Start\n\n### Prerequisites\n- **Node.js** ≥ 18\n- **pnpm** ≥ 9\n- **Python** (for `vid-dl` downloader)\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002FAljayz\u002Fnexube.git\ncd nexube\u002Fapps\u002Fdesktop\n\n# Install dependencies\npnpm install\n\n# Run web-only dev server (hot reload, port 5173)\npnpm dev\n\n# Run full Electron app in dev mode\npnpm electron:dev\n```\n\n---\n\n## Available Scripts\n\n| Command | Description |\n|---|---|\n| `pnpm dev` | Vite dev server (renderer only, browser) |\n| `pnpm build` | Production build of the renderer |\n| `pnpm electron:dev` | Electron app with hot module replacement |\n| `pnpm electron:build` | Full production build + platform packaging |\n\n---\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|---|---|\n| `Ctrl\u002FCmd + K` or `Ctrl\u002FCmd + F` | Open search |\n| `Ctrl\u002FCmd + Z` | Navigate back |\n| `Ctrl\u002FCmd + R` | Reload app |\n| `Ctrl\u002FCmd + X` | Logout |\n| `Escape` | Close modal \u002F exit player |\n| `?` | Show help & shortcuts overlay |\n| `Space` | Play \u002F Pause |\n| `F` | Toggle fullscreen |\n| `←` \u002F `→` | Seek backward \u002F forward 10 seconds |\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|---|---|\n| Desktop Shell | Electron 28 |\n| UI Framework | React 18 + Tailwind CSS 3 |\n| Build System | Vite 5 + `vite-plugin-electron` |\n| State & Database | SQLite via `@nexube\u002Fstore` |\n| Streaming | System webview (iframe embeds) |\n| Packaging | electron-builder 24 |\n| Monorepo | pnpm workspaces + Turborepo |\n\n---\n\n## Project Structure\n\n```\nnexube\u002F\n├── apps\u002Fdesktop\u002F\n│   ├── electron\u002F                  # Main process\n│   │   ├── main.js                # Window creation, IPC registration\n│   │   ├── preload.js             # Context bridge → window.electron.*\n│   │   ├── popout-preload.js      # PiP window preload\n│   │   ├── ipc\u002F                   # IPC handlers (10 modules)\n│   │   └── services\u002F              # Downloader, HLS capture, source resolvers\n│   ├── src\u002F                       # Renderer (React)\n│   │   ├── pages\u002F                 # Route-level components (7 pages)\n│   │   ├── components\u002F            # Reusable UI (30+ components)\n│   │   ├── hooks\u002F                 # Custom React hooks (5)\n│   │   └── App.jsx                # Root component\n│   ├── scripts\u002F                   # Build & utility scripts\n│   ├── resources\u002F                 # Bundled binaries (vid-dl per platform)\n│   ├── public\u002F                    # Static assets (icons, avatars)\n│   ├── package.json\n│   ├── vite.config.mjs\n│   └── tailwind.config.js\n├── packages\u002F\n│   ├── store\u002F                     # @nexube\u002Fstore — SQLite database layer\n│   ├── types\u002F                     # @nexube\u002Ftypes — Shared TypeScript definitions\n│   ├── player-engine\u002F             # @nexube\u002Fplayer-engine — Player logic\n│   └── ui-tokens\u002F                 # @nexube\u002Fui-tokens — Design tokens\n└── docs\u002F\n    ├── ARCHITECTURE.md\n    ├── DEVELOPMENT.md\n    └── FEEDBACK_SYSTEM_SETUP.md\n```\n\n---\n\n## Building for Distribution\n\n```bash\n# Linux (AppImage + deb + pacman)\npnpm electron:build\n\n# Windows (NSIS installer) — requires Wine on Linux\npnpm electron:build --win\n\n# macOS (DMG) — requires macOS\npnpm electron:build --mac\n```\n\nOutputs are placed in `release\u002F`.\n\n---\n\n## Documentation\n\n- **[ARCHITECTURE.md](.\u002Fdocs\u002FARCHITECTURE.md)** — System design, data flow, IPC map\n- **[DEVELOPMENT.md](.\u002Fdocs\u002FDEVELOPMENT.md)** — Setup guide, coding conventions, contributing\n- **[FEEDBACK_SYSTEM_SETUP.md](.\u002Fdocs\u002FFEEDBACK_SYSTEM_SETUP.md)** — Deploying the serverless feedback proxy\n\n---\n\n## Inspiration\n\nThis project was inspired by [Streambert](https:\u002F\u002Fgithub.com\u002Ftruelockmc\u002Fstreambert) by [truelockmc](https:\u002F\u002Fgithub.com\u002Ftruelockmc). While Nexube is a completely independent implementation written from scratch, their work heavily influenced the concept and initial architecture.\n\n---\n\n## License\n\n**GNU GPL-3.0** — see [LICENSE](.\u002FLICENSE) for full details.\n\nCopyright © 2026 [Aljayz](https:\u002F\u002Fgithub.com\u002FAljayz)\n","Nexube 是一款基于 Electron、React 和 Vite 构建的桌面媒体流应用程序，专为多用户家庭设计，具备高级播放控制功能。其核心功能包括支持多种视频源无缝切换、画中画模式、弹窗及重定向拦截、HLS 下载管理等。此外，该应用还提供了三种类型的用户配置文件（主账户、儿童账户和标准账户），并具有密码保护、年龄分级内容过滤以及个性化设置等功能。Nexube 适用于需要在单一设备上为不同用户提供定制化媒体体验的家庭场景，同时通过集成 TMDB 提供丰富的影视资源浏览与搜索服务。",2,"2026-06-11 04:03:46","CREATED_QUERY"]