A premium, high-performance video & audio extractor featuring a WebGL 3D particle network and a companion Chrome Extension
Features β’ Installation β’ How It Works β’ Tech Stack β’ Contributing
- Overview
- Features
- How It Works
- Project Structure
- Installation
- Vercel Deployment
- Tech Stack
- Contributing
- Support
- Author
- License
- Privacy Policy
Downloader is a unified media extraction workspace combining a modern, interactive React web application and a companion Google Chrome / Microsoft Edge extension (Manifest V3).
The web client offers single video downloading, channel/playlist browsing, and bulk ZIP exports wrapped inside a premium, glassmorphic layout backed by a 3D WebGL particle constellation. The helper browser extension allows users to pipe current tab links straight into their extraction form with a single click.
- π WebGL Particle Network β Interactive 3D particle constellation powered by Three.js with responsive mouse-move parallax sway animation.
- π Liquid Glass Theme β Premium custom frosted glassmorphic cards, navigations, and buttons with rich backdrop-blur parameters.
- π i18n Localization β Comprehensive language translation system supporting English (EN), Spanish (ES), Vietnamese (VI), French (FR), and Japanese (JA).
- π Changelog Updates Popover β A dewy drop-down card triggered by the header bell icon displaying translated v1.2.0 upgrade logs.
- β±οΈ Live Connectivity Pinger β Dynamic status checker in the footer copyright bar displaying translated connection statuses (
Operational,Checking,Offline) along with network pings in milliseconds.
- β‘ Single-Click Extraction β Send active tabs straight into your web downloader dashboard instantly.
- π¨ Visual Consistency β Styled matching the website's brand colors, Inter typography scale, button shadows, and flat logo containers.
- π Dynamic Host Routing β Queries if your local Vite server (
localhost:5173) is active; if online, it redirects to local, otherwise it falls back to the Vercel production deployment automatically. - π MV3 Persistence β Prevents Service Worker wake-up dropouts and popup closing race conditions by utilizing message acknowledgments.
graph TD
A[Click 'Open in Downloader Web'] --> B{Check Existing Web Tabs}
B -- Yes --> C[Focus Tab & Inject Script Message]
B -- No --> D[Probe Local Server http://localhost:5173]
D -- Online --> E[Open Local Dev Tab & Pipe Data]
D -- Offline --> F[Open Production Vercel Tab & Pipe Data]
- When you click the Open in Downloader Web button, the popup sends a message to the service worker worker thread and waits for confirmation before shutting.
- The service worker checks your open tabs. If a web app instance is open (local or production), it brings it into focus.
- If no tabs exist, the service worker sends a fast
HEADrequest tohttp://localhost:5173/.- If active, it opens the local site.
- If closed, it redirects to
https://downloader-topaz-eta.vercel.app/.
- Once loaded, the extension injects a script post-message (
DOWNLOAD_URL) which the React application processes to begin automatic metadata extraction.
Downloader/
βββ web/ # Vite + React + Tailwind CSS Web Application
β βββ index.html # HTML entry point (title & font parameters)
β βββ vercel.json # Routing rewrites for Single Page App fallbacks
β βββ src/
β β βββ components/
β β β βββ ThreeBg.jsx # Three.js 3D Interactive Particle network canvas
β β βββ context/
β β β βββ LanguageContext.jsx # i18n context state and t() helper functions
β β βββ translations.js # Translations dictionary for the 5 active languages
β β βββ App.jsx # Extractor logic views, topbars, and live footers
β β βββ index.css # Styling system overlays and dewy filters
β β βββ main.jsx # Entry point loading context providers
β
βββ extension/ # Chrome / Edge Extension (Manifest V3)
βββ manifest.json # Extension manifest with vercel host permissions
βββ popup.html # Inter-styled layout popup
βββ popup.js # Dispatches links and listens for confirmation
βββ background.js # service worker checking localhost connectivity
βββ icon.png # Solid violet brand logo asset
Make sure you have Node.js installed, then execute:
# Navigate to web folder
cd web
# Install dependencies
npm install
# Run Vite dev server
npm run devOpen http://localhost:5173/ to view your local web application.
- Open Google Chrome or Microsoft Edge and navigate to the extension settings page:
- Chrome:
chrome://extensions/ - Edge:
edge://extensions/
- Chrome:
- Enable Developer Mode (toggle switch in the dashboard corner).
- Click the Load unpacked button.
- Select the
extension/directory in this repository. - Pin the extension to your browser toolbar.
This project is optimized for Vercel deployment. Since it is a Single Page Application (SPA), Vercel must rewrite manual routing updates back to index.html to prevent 404 errors. This is configured automatically inside web/vercel.json:
{
"rewrites": [
{
"source": "/(.*)",
"destination": "/index.html"
}
]
}To deploy to Vercel, push the repository to GitHub, link it on your Vercel Dashboard, set the Root Directory to web, and deploy.
- Vite β Fast, modern frontend build tool.
- React 19 β Single-page application rendering.
- Tailwind CSS β Utility-first styling framework.
- Three.js β GPU-accelerated WebGL graphics.
- Lucide React β Premium SVG icons.
- Manifest V3 β Modern browser extensions framework.
- Chrome Extensions API β Tab manipulation, scripting, context menus, and storage.
Contributions are welcome! Please read the CONTRIBUTING.md for details on our code of conduct, development setup, and process for submitting pull requests.
If you find this downloader useful, consider supporting the project:
- β Star this repository on GitHub
- β Buy me a coffee via PayPal
Minh Duy Do
- GitHub: dominhduy09
- Email: dominhduy09@gmail.com
This project is licensed under the MIT License - see the LICENSE file for details.
We respect your data privacy. Please read our Privacy.md file to understand how we process planner inputs and cookies.