StreamVault is a lightweight web application that allows users to download YouTube videos and audio in multiple quality options through a simple and responsive interface.
The application uses Flask as the backend and yt-dlp for video extraction. Downloads are processed on the server and delivered directly to the user's browser using native browser downloads.
- ๐ฌ Download YouTube videos in multiple resolutions
- ๐ต Download audio-only format
- ๐ฅ Native browser download support
- ๐ฑ Responsive user interface
- โก Fast Flask backend
- ๐งน Automatic cleanup of temporary files
- ๐ก Graceful error handling
- โ Hosted on Render
- ๐ Uses yt-dlp Android client for improved compatibility
| Technology | Purpose |
|---|---|
| Python | Backend |
| Flask | Web Framework |
| HTML5 | Structure |
| CSS3 | Styling |
| JavaScript | Client-side functionality |
| yt-dlp | Video extraction |
| FFmpeg | Audio/Video merging |
| Render | Deployment |
StreamVault/
โ
โโโ backend/
โ โโโ app.py
โ โโโ templates/
โ โ โโโ index.html
โ โโโ static/
โ โ โโโ css/
โ โ โโโ js/
โ โโโ downloads/
โ
โโโ requirements.txt
โโโ Procfile
โโโ README.md
git clone <repository-url>
cd yt-dnlReplace <repository-url> with your fork or the repository URL.
Example:
git clone https://github.com/username/yt-dnl.git
cd yt-dnlpython -m venv venvActivate it:
venv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtDownload FFmpeg from:
https://www.gyan.dev/ffmpeg/builds/
Add the bin folder to your system PATH.
python backend/app.pyOpen:
http://127.0.0.1:5000
This project is deployed using Render.
Deployment includes:
- Flask backend
- Static frontend
- yt-dlp
- FFmpeg support
- Native browser downloads
User
โ
โผ
Paste YouTube URL
โ
โผ
Choose Quality
โ
โผ
Flask Backend
โ
โผ
yt-dlp extracts video
โ
โผ
FFmpeg merges streams (if needed)
โ
โผ
Temporary file created
โ
โผ
Browser downloads file
โ
โผ
Temporary file deleted
Downloaded files are stored temporarily on the server.
After the browser receives the file, the server automatically deletes it to prevent unnecessary storage usage.
- Some YouTube videos may trigger bot verification.
- Age-restricted or private videos require authentication.
- Very large videos may exceed free hosting limitations.
- Availability depends on YouTube's current restrictions.
- Thumbnail preview
- Video title preview
- File size estimation
- Download progress indicator
- Playlist support
- Better error pages
- Dark mode
- Search functionality
- Download history
Contributions are welcome!
- Fork the repository
- Create a new branch
git checkout -b feature-name- Commit your changes
git commit -m "Add feature"- Push the branch
git push origin feature-name- Open a Pull Request
This project is intended for educational and personal learning purposes.
Users are responsible for complying with YouTube's Terms of Service and applicable copyright laws when downloading content.
If you found this project useful, consider giving it a โญ on GitHub!
Built with โค๏ธ using Flask, yt-dlp and Python
Made by Midhun Manesh