Search for music and download tracks as MP3 files — powered by the YouTube Music API and streamed directly to your browser with no server-side storage.
- Search songs via YouTube Music
- Zero-storage streaming pipeline: audio is transcoded on the fly and piped straight to the HTTP response
- Mobile-friendly UI built with Onsen UI
| Layer | Technology |
|---|---|
| Server | Express.js |
| Templating | EJS |
| UI Framework | Onsen UI |
| Music Search | youtube-music-api |
| Audio Download | @distube/ytdl-core |
| Audio Conversion | fluent-ffmpeg |
When a download is triggered, soundsip never writes audio to disk:
- ytdl-core opens an audio stream directly from YouTube
- ffmpeg receives that stream and transcodes it to MP3 on the fly
- The MP3 bytes are piped straight into the HTTP response
The browser receives a standard file download. No temporary files are created, and no persistent storage is needed — including in Docker.
Requires Docker with Compose. FFmpeg is bundled in the image — no additional dependencies needed.
git clone https://github.com/icetimux/soundsip.git
cd soundsip
docker compose up --buildOpen http://localhost (port 80).
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeggit clone https://github.com/icetimux/soundsip.git
cd soundsip
npm install
node app.jsOpen http://localhost:3000.
| Method | Route | Description |
|---|---|---|
GET |
/ |
Home — search bar |
GET |
/results?query=<term> |
Song search results |
GET |
/download?videoId=<id> |
Stream and download a track as MP3 |
ISC