"Stop renting your music. Start owning the vibe."
A stunning, self-hosted Python Music Player and Flask Web App that streams High-Fidelity Audio directly from YouTube Music — Ad-Free Streaming. Zero Tracking. Infinite Play.
Get the latest Windows executable directly. No installation required!
Requirements: Windows 10 or 11.
Most open-source music players are command-line only or lack visual polish. SoundWave changes the game. It combines a Next-Gen Glassmorphism UI with robust Python engineering to deliver a Spotify-like experience for free.
- ♾️ Smart Infinite Autoplay
- When your queue ends, our smart algorithm fetches 20+ similar songs automatically based on the last track.
- 🚫 Ad-Free High-Fidelity Streaming
- We stream pure, high-quality audio (m4a) using
yt-dlpwith seamless redirects.
- We stream pure, high-quality audio (m4a) using
- 🖼️ Crystal Clear HD Visuals
- Forced
maxresdefaultthumbnails for crisp, retina-ready album art on every track.
- Forced
- 🎨 Stunning Glass UI
- Desktop-first interface built with TailwindCSS (CDN), smooth animations, and a layout that feels native on Desktop.
- 💾 Persistent Local Playlists
- Create, rename, delete playlists. Your data is saved locally (
playlists.json).
- Create, rename, delete playlists. Your data is saved locally (
- ⚡ Auto-Setup Architecture
- Powered by Flask and Waitress. Automatically downloads/updates
yt-dlp.exeon first run.
- Powered by Flask and Waitress. Automatically downloads/updates
- Backend: Python 3, Flask, Waitress (WSGI)
- Streaming: yt-dlp (FFmpeg pipeline), subprocess
- Frontend: HTML5, Vanilla JavaScript (ES6+), TailwindCSS (CDN)
- Data Source: YTMusicAPI (reverse engineered)
- Design: Glassmorphism, Dark Mode
- Keywords: Python Music Player, Flask Web App, Ad-Free Streaming, YouTube Music, Tailwind CSS, Windows .EXE
Go from zero to streaming in 30 seconds.
- Python 3.8 or higher
git clone https://github.com/Maddy0057/SoundWave.git
cd SoundWaveWe recommend using a virtual environment.
# Windows
python -m venv venv
venv\Scripts\activate
# Mac/Linux
python3 -m venv venv
source venv/bin/activate
# Install requirements
pip install -r requirements.txtNote: You do not need to install
yt-dlpmanually. SoundWave downloads the correct binary automatically on first run.
python main.pyThe Waitress server starts and your browser opens at http://127.0.0.1:5000.
SoundWave/
├── main.py # Flask backend & logic
├── templates/
│ └── index.html # Frontend UI (Tailwind + JS)
├── requirements.txt # Python dependencies
├── playlists.json # Local playlist storage (created at runtime)
├── yt-dlp.exe # Audio engine (auto-managed)
└── README.md # You are here
- Search & Play: Type any song, artist, or album in the top bar. Click a result to play.
- Queue Management: Click the add button to queue songs without stopping playback.
- Autoplay Mode: The infinity icon is ON by default; similar songs auto-append when the queue ends.
- Playlists: Save songs to playlists, and manage them from the sidebar (Create, Rename, Delete).
GET /api/search?query=...– Top song resultsGET /api/recommendations?videoId=...– Similar songs for autoplayGET /stream/<videoId>– Redirects to a direct audio URLGET /api/playlists– List playlistsPOST /api/playlists– Create playlistDELETE /api/playlists/<name>– Delete playlistPOST /api/playlists/<name>/songs– Add songDELETE /api/playlists/<name>/songs/<videoId>– Remove songPUT /api/playlists/<old>– Rename playlist
Create a single-file executable with PyInstaller:
pip install pyinstaller
pyinstaller --noconsole --onefile --add-data "templates;templates" --name SoundWave main.pyThe .exe will appear in the dist folder. Place yt-dlp.exe next to it (or let the app auto-download on first run).
We want to make this the #1 Open Source Music Player on GitHub.
# Fork the project
# Create your feature branch
git checkout -b feature/AmazingFeature
# Commit your changes
git commit -m "Add some AmazingFeature"
# Push to the branch
git push origin feature/AmazingFeature
# Open a Pull RequestDistributed under the MIT License. See LICENSE for more information.
Love the project?
Give it a ⭐ Star on GitHub!
Made with ❤️ and Python.

