Download any song as a properly named MP3. One command. Single binary.
anysong download "Lil Wayne Lollipop"
# β ~/music/lollipop_by_lil_wayne.mp3- Search Deezer (free API) for clean metadata β title, artist, album
- Download from YouTube using yt-dlp (falls back to SoundCloud if YouTube blocks)
- Clean filename β
title_by_artist.mp3, no garbage characters
git clone https://github.com/damoahdominic/anysong.git
cd anysong
go build -o anysong .
sudo mv anysong /usr/local/bin/- yt-dlp β
pip install yt-dlporbrew install yt-dlp - ffmpeg β
apt install ffmpegorbrew install ffmpeg
docker build -t anysong .
docker run --rm -v ~/music:/music anysong download "Lil Wayne Lollipop" --dir /music# Download a song
anysong download "Lil Wayne Lollipop"
# Download to specific directory
anysong download "Wild Thoughts Rihanna" --dir ~/Music
# Browse results before downloading
anysong download "Bohemian Rhapsody" --pick
# Search without downloading
anysong search "Drake" --limit 10
# Batch download from a text file
anysong batch playlist.txt --dir ~/Music# playlist.txt β one song per line
Lil Wayne Lollipop
Rihanna Wild Thoughts
Drake Hotline Bling
Queen Bohemian Rhapsody
If YouTube blocks downloads, export your browser cookies once:
mkdir -p ~/.anysong
yt-dlp --cookies-from-browser chrome --cookies ~/.anysong/cookies.txt "https://youtube.com"anysong will pick them up automatically and also checks ytc.mba.sh for shared cookies. Without cookies, it falls back to SoundCloud.
Songs are saved to ~/music/ by default with clean filenames:
~/music/
βββ lollipop_by_lil_wayne.mp3
βββ wild_thoughts_by_rihanna.mp3
βββ hotline_bling_by_drake.mp3
βββ bohemian_rhapsody_by_queen.mp3
- Go β Single static binary, ~8MB, runs everywhere
- Deezer API β Free, no auth. Provides accurate metadata (title, artist, album, duration)
- yt-dlp β Downloads audio from YouTube and SoundCloud
- Cobra β CLI framework
MIT