Skip to content

icetimux/soundsip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

soundsip

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.

Features

  • 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

Tech Stack

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

How It Works

When a download is triggered, soundsip never writes audio to disk:

  1. ytdl-core opens an audio stream directly from YouTube
  2. ffmpeg receives that stream and transcodes it to MP3 on the fly
  3. 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.

Running the App

Docker (recommended)

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 --build

Open http://localhost (port 80).

Local

Requires Node.js v14+ and FFmpeg on your PATH.

# macOS
brew install ffmpeg

# Ubuntu / Debian
sudo apt install ffmpeg
git clone https://github.com/icetimux/soundsip.git
cd soundsip
npm install
node app.js

Open http://localhost:3000.

API Routes

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

License

ISC

About

Self-hosted YouTube Music search and MP3 downloader with zero server-side storage.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors