musicdl-cli
v3.3.0
Published
A simple cli tool to download your favourite music/album/playlist from Spotify.
Downloads
59
Readme
musicdl-cli
A simple cli spotify music downloader.
It uses freely available music videos as the audio source and Spotify API for playlist/album/track details.
As there are plenty of reverbs and remix and lofi edits in youtube, the tool may not get the correct audio sometimes
Requirements
- Node.js v18+ (uses native fetch internally)
- yt-dlp - Required for reliable YouTube downloads
# macOS (Homebrew) brew install yt-dlp # Windows/Linux (pip) pip install yt-dlp
Installation
Using npm:
$ sudo npm i musicdl-cli -g
Using Git:
$ git clone https://github.com/AbhinavDhakal/musicdl-cli.git
$ cd musicdl-cli
$ npm install
$ sudo npm linkConfiguration
Configuration:
To use this CLI tool, you will need Spotify client id and client secret. Click here if you don't have one
After getting Spotify client id and client secret, Run following command to locate your config file :
$ musicdl-cli -c
Then edit the config file and update the spotify client and secret.
You can also specify your download location in config file.
Usage/Examples
musicdl-cli [options] <song name or spotify URL>
Options:
-h, --help Show this help message
-c Show config file location
-d <number> Set number of parallel downloads (default: 2)
-l Download lyrics (if available)
Search and download **song**: *(one at a time)*
```bash
$ musicdl-cli "lost frank ocean"Download spotify album:
$ musicdl-cli "https://open.spotify.com/album/34GQP3dILpyCN018y2k61L"Download spotify playlist:
$ musicdl-cli "https://open.spotify.com/playlist/any-playlist"Download spotify track:
$ musicdl-cli "https://open.spotify.com/track/any-track"Options
Lyrics
You can also include synced lyrics by using -l flag:
$ musicdl-cli -l "joji i'll see you in 40"No. of parallel downloads. Defaul is 2.
-d <no of parallel downloads you want>For eg.
musicdl-cli -l "https://open.spotify.com/album/34GQP3dILpyCN018y2k61L" -d 3The above command will download 3 tracks at a time.
Debugging
Debug logs are automatically saved to:
- macOS/Linux:
~/.config/musicdl-cli/musicdl-cli.log - Windows:
%APPDATA%/musicdl-cli/musicdl-cli.log
Check the log file if you encounter any issues with downloads or lyrics.
Changelog
v3.3.0
- Fixed: YouTube download reliability - now uses
yt-dlpas primary download method with multiple fallbacks - New: Time-synced lyrics support via multiple APIs (lrclib.net, spotify-lyrics-api)
- New: Help command (
-hor--help) - Improved: Better error handling and logging
- Fixed: Removed deprecated
request-promiseandnode-fetchpackages - Fixed: Temp file cleanup after encoding
I don't have spotify client and secret
Sign up for a Spotify developer account here. If you already have a Spotify account, you'll just have to log in.
Once you're signed up, navigate to https://developer.spotify.com/my-applications/. Follow these steps:

There you go, now add those to the config file.
