A streaming music downloader. https://github.com/d-fi/releases/releases

Sayem Chowdhury 36bb3dcf25 v2.1.0 23 hours ago
__tests__ efb3cb151c Update core to v1.3.0 1 day ago
assets fc3b34cd1f Update assets 1 year ago
docs 0fa11d7057 update docs 3 months ago
src 18ed0a675a fix progress 23 hours ago
.eslintrc.js d232ee0b28 use es8 parser 5 months ago
.gitignore 9ddf76bd7a update gitignore 5 months ago
.prettierrc.js 66d80a580e prettier 5 months ago
LICENSE 3f25986943 MIT 1 year ago
README.md 8de3d7ff9c update readme 3 months ago
build.sh 36d2c142fd use node16 23 hours ago
package.json 36bb3dcf25 v2.1.0 23 hours ago
setup-termux.js 485a90d502 setup script for termux 5 months ago
tsconfig.json 8b0434a571 include src and package.json 4 months ago
yarn.lock 7c53d99459 update dependencies 23 hours ago



A streaming music downloader.


d-fi is a program for downloading music from streaming music services. Remember that the artists and studios put a lot of work into making music - purchase the original music to support them.

v2 Migration Guide

Please read here


  • Supports downloading tracks, albums, artists, and playlists
  • Allows music quality selection (128 kbps, 320 kbps and FLAC)
  • Auto tagging MP3 & FLAC (including album cover and lyrics)
  • Support downloading from both links and via searching

Supported Sites

Deezer, Spotify and Tidal

  • Tracks
  • Albums
  • Audiobook
  • Playlists
  • Artists

Note that Spotify and Tidal tracks will be sourced from Deezer using ISRC matching and UPC for albums. Also Spotify artist tracks are limited upto 10 items.


Method 1

First install nodejs following this tutorial

Once nodejs installation is complete run this command.

sudo npm i -g d-fi

or if you are using yarn

yarn global add d-fi

Now you can run using command d-fi to start.

Method 2

Download pre-built binary from here and then double click on Windows to run. For Linux and macOS user, first open your choice of terminal and the execute with ./d-fi

CLI Parameters

All options are optional. You can suppress prompts via providing quality and url if you are using scripts. You can also use config file. Read the docs here

Parameter Short Supported values Description
--quality -q 128/320/flac The quality of the files to download
--output -o Output file format according to saveLayout. See more here The path to download the files to
--url -u or nothing album/artist/playlist/track url Downloads from url
--input-file -i Downloads all urls listed in text file. Example: d-fi -i links.txt Downloads from url
--concurrency -c 1 to 50 Downloads X songs at a time
--set-arl -a arl string Set arl cookies
--headless -d Nothing Run in headless mode. You must provide both --url and --quality if you run in headless mode. This mode is meant for scripting automation.
--resolve-full-path -rfp Nothing Create playlist file with absolute path location
--create-playlist -cp Nothing Create playlist for albums and artists
--config-file -conf Config location. Example: d-fi -conf my-d-fi.config.json Specify custom location to config file
--update -U Nothing Download new update (binary only)
--help -h Nothing Shows the CLI help


If you want to show your appreciation, you can donate me on here. Thanks!

Telegram community group: @dFiCommunity


d-fi was not developed for pirating music but educational and private usage.

It may be illegal to use this in your country,

I am not responsible in any way for the usage of others.

Made with :heart: & :coffee: by Sayem

Based on SMLoadr and Deezloader Remix