8000 GitHub - dominhduy09/Downloader: πŸ“₯ Downloader Β· GitHub
[go: up one dir, main page]

Skip to content

Latest commit

Β 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Downloader - The instant, one-click media companion for Chrome | Product Hunt

23868

πŸ“₯ Downloader

A premium, high-performance video & audio extractor featuring a WebGL 3D particle network and a companion Chrome Extension

Version License Vercel Deployment PRs Welcome

Features β€’ Installation β€’ How It Works β€’ Tech Stack β€’ Contributing


πŸ“‹ Table of Contents


🎯 Overview

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.


✨ Features

Web Application UI & UX

  • 🌌 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.

Companion Browser Extension

  • ⚑ 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.

πŸ”§ How It Works

Extension Redirection Dispatcher

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]
Loading
  • 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 HEAD request to http://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.

πŸ“‚ Project Structure

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

πŸ“₯ Installation

1. Run the Web Application locally

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 dev

Open http://localhost:5173/ to view your local web application.

2. Install the Browser Extension

  1. Open Google Chrome or Microsoft Edge and navigate to the extension settings page:
    • Chrome: chrome://extensions/
    • Edge: edge://extensions/
  2. Enable Developer Mode (toggle switch in the dashboard corner).
  3. Click the Load unpacked button.
  4. Select the extension/ directory in this repository.
  5. Pin the extension to your browser toolbar.

πŸš€ Vercel Deployment

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.


πŸ› οΈ Tech Stack

Web Application

  • 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.

Companion Extension

  • Manifest V3 β€” Modern browser extensions framework.
  • Chrome Extensions API β€” Tab manipulation, scripting, context menus, and storage.

🀝 Contributing

Contributions are welcome! Please read the CONTRIBUTING.md for details on our code of conduct, development setup, and process for submitting pull requests.


πŸ’– Support

If you find this downloader useful, consider supporting the project:

  • ⭐ Star this repository on GitHub
  • β˜• Buy me a coffee via PayPal

πŸ‘€ Author

Minh Duy Do


πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“œ Privacy Policy

We respect your data privacy. Please read our Privacy.md file to understand how we process planner inputs and cookies.

0