A modern YouTube video downloader built with Svelte and FastAPI. Features a clean UI, real-time video preview, download history, and seamless YouTube integration via userscript.
- Real-time URL validation and video preview
- Persistent download history
- Browser integration through userscript
- Clean and responsive interface
- Progress tracking with visual feedback
- Node.js (v16 or higher)
- Python (v3.8 or higher)
- Make
- Installation
make installThis will install all dependencies for both frontend and backend.
- Run the application
make runThe application will be available at:
- Frontend: http://localhost:5270
- Backend: http://localhost:5173
- Install Tampermonkey extension in your browser
- Import the userscript from
userscript/youtube-downloader.user.js - Visit any YouTube video and you'll see a "DOWNLOAD" button next to the video
frontend/ # Svelte frontend application
backend/ # Python FastAPI backend
userscript/ # YouTube integration script
- Start frontend development server:
For development, you can run the frontend separately:
cd frontend && npm run devThis will run the frontend on http://localhost:5270
Run the backend server:
cd backend && python main.pyThis will run the API on http://localhost:5173
For production, just use make run which will serve the frontend through the backend.
MIT
Developed by Santiago Jimenez with the assistance of Claude AI (Anthropic).
This project was created as a learning experience combining modern web technologies and demonstrating the integration between frontend, backend, and browser extensions.