A professional, high-performance web application for downloading YouTube videos and playlists. Inspired by advanced download managers, this tool offers a seamless experience with real-time progress tracking, multiple format support, and cloud-based processing.
- Single Video Downloader: Paste any YouTube video URL to analyze and download in seconds.
- Playlist Downloader: Supports full YouTube playlists. Automatically fetches all items and allows for batch downloading.
- High-Quality Output: Support for 1080p, 720p, 480p, and 360p video resolutions.
- Precision Audio Extraction: Extract audio in MP3, M4A, FLAC, and WAV formats.
- Real-Time Progress Tracking: Watch your downloads prepare and progress in real-time with an interactive UI.
- Download History: A persistence-based history panel to keep track of your downloads and re-trigger them easily.
- Cloud Proxy Processing: Uses specialized cloud processors to bypass bot detection and ensure high-speed downloads.
- React 19: State-of-the-art UI library for a reactive experience.
- Vite: Next-generation frontend tooling for blazing-fast development and builds.
- Tailwind CSS: Modern utility-first CSS framework for a sleek, dark-themed UI.
- Motion (Framer Motion): Industry-standard animation library for fluid transitions and interactions.
- Lucide React: Beautiful, consistent icon set.
- Node.js & Express: Robust server-side environment.
- youtube-dl-exec: Native wrapper for
yt-dlpto fetch rich metadata without triggering bot protections. - Vite Integration: Seamlessly integrated Vite middleware for development mode.
The application uses a hybrid approach for metadata. For single videos, it leverages YouTube's oembed for instant previews, while using a robust yt-dlp backend for comprehensive playlist parsing. This ensures the best balance between speed and data richness.
Unlike traditional direct-stream downloaders that might stall your browser, this app uses an Asynchronous Preparation Workflow:
- Request: The user selects a format and queues a download.
- Initialize: The backend proxies the request to a high-speed preparation server.
- Poll: The frontend periodically polls the preparation state.
- Finalize: Once the cloud processor finishes transcoding, the user receives a direct download link.
The application uses localStorage to manage a "History" of downloads. This state is synchronized with the browser, ensuring that users can return later and see what they've previously downloaded without requiring a complex database setup.
- Clone or Download the project files.
- Install dependencies:
npm install
-
Development Mode: Starts the Express server with Vite middleware and HMR enabled.
npm run dev
Open http://localhost:3000 in your browser.
-
Production Build:
npm run build npm start
src/App.tsx: The primary frontend component containing all UI and download logic.server.ts: The Express backend handling API requests and proxying downloads.src/index.css: Global styles using Tailwind CSS.vite.config.ts: Configuration for React and Tailwind plugins.
- Referrer Isolation: All external thumbnails are loaded with
referrerPolicy="no-referrer"to ensure visibility across different hosting environments. - Input Sanitization: Playlist and Video IDs are validated to prevent resource poisoning attacks.
- Lazy Polling: Progress polling logic efficiently stops when no active tasks are present to save system resources.
- License: Distributed under the Apache License 2.0.
- Contributing: Check out our Contributing Guidelines.
- Conduct: We follow the Contributor Covenant Code of Conduct.
- Security: Please report vulnerabilities according to our Security Policy.
- Changelog: See the latest updates in our Changelog.
Built with β€οΈ for a better media experience.