BrowseIO is a modern, lightweight, static web-based media aggregator and streaming client. Built with Next.js 16, React 19, and a custom Glassmorphism CSS Design System, BrowseIO offers a seamless, fast, and customizable entertainment center interface right in your web browser.
- 🎨 Modern Glassmorphism UI: High-end visual aesthetics with responsive layouts, fluid micro-animations, dynamic backdrop effects, and dark mode.
- 🔌 Extensible Plugin Engine: Flexible client-side plugin framework supporting standard community manifests (Stremio Addons & Nuvio Scrapers / Plugins).
- 🚀 100% Client-Side & Static Export: Designed to be compiled into static HTML/JS assets (
npm run build:pages) ready to host directly on GitHub Pages, Cloudflare Pages, or any static CDN without requiring a backend server. - ☁️ Cloud Debrid & Stream Resolution: Integrated support for cloud media management (such as TorBox API) with instant cache status checking, direct streaming, manual caching, and file downloading.
- 📺 Advanced Artplayer Web Player:
- Full support for direct HTTP/HLS (
.m3u8) streaming with adaptive bitrate switching. - In-player subtitle management with automatic subtitle detection, custom
.srt/.vttfile upload, font size adjustments (16px–40px), vertical height positioning (30px–160px), and time delay synchronization. - Audio track selection and pure TypeScript container probing (EBML/MKV header analysis for audio codecs and multi-audio tracks).
- Dedicated in-player stream switcher drawer for quick quality and provider switching without leaving playback.
- Full support for direct HTTP/HLS (
- 🍿 Desktop Player Integration: One-click external protocol launcher for desktop media players (PotPlayer, VLC, MPV, Infuse).
- 🌐 Multilingual & Localization (i18n): Full internationalization supporting Czech and English, plus user-defined custom translation overrides via JSON.
- ⚙️ Universal CORS Proxying: Smart client-side fetch router with automatic proxy fallbacks (includes a deployable Cloudflare Worker in
cors-proxy/) for seamless browser network requests.
- Framework: Next.js 16 (App Router, Turbopack)
- UI & Logic: React 19, TypeScript
- Styling: Modern Vanilla CSS (Design Tokens, Glassmorphism, CSS Variables, Responsive Layouts)
- Video Player: Artplayer & Hls.js
- Deployment: Static Site Generation (SSG / GitHub Pages export)
- Node.js v18.0.0 or higher
npmorpnpm
-
Clone the repository:
git clone https://github.com/ryslavy/browseio.git cd browseio -
Install dependencies:
npm install
-
Run the development server:
npm run dev
Open http://localhost:3000 in your browser.
BrowseIO includes a built-in end-to-end and unit test suite verifying plugin normalization, stream deduplication, subtitle conversion, container probing, and translation maps:
# Run the test suite
npm test
# Run ESLint
npm run lint
# Run TypeScript type check
npx tsc --noEmitBrowseIO supports both a hybrid Next.js build and a static export for static web hosting:
To compile the static bundle for GitHub Pages (exported into the out/ folder):
npm run build:pagesThe output in out/ is ready to be deployed to the gh-pages branch.
For Node.js / Vercel server environments:
npm run build
npm startBrowseIO allows users to connect custom media source providers dynamically:
- Navigate to Nastavení (Settings) in the web application.
- Enter a valid Manifest URL (Stremio Addon or Nuvio Plugin manifest).
- BrowseIO automatically resolves stream capabilities (Direct Web Streams, Debrid Cached Streams, and P2P Torrents) and presents optimal playback options for each source.
This project is licensed under the MIT License - see the LICENSE file for details.