npm.io
3.3.0 • Published 9 months agoCLI

musicdl-cli

Licence
ISC
Version
3.3.0
Deps
15
Size
112 kB
Vulns
0
Weekly
0

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 link

Configuration

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

config

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 3

The 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-dlp as primary download method with multiple fallbacks
  • New: Time-synced lyrics support via multiple APIs (lrclib.net, spotify-lyrics-api)
  • New: Help command (-h or --help)
  • Improved: Better error handling and logging
  • Fixed: Removed deprecated request-promise and node-fetch packages
  • 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:

First Step Second Step Third Step

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

License

ISC