Skip to content
This repository has been archived by the owner on Sep 29, 2023. It is now read-only.

Download Spotify playlists with albumart and meta-tags

License

Notifications You must be signed in to change notification settings

alvsanand/spotify-downloader

 
 

Repository files navigation

Spotify-Downloader

release License

This is a more user friendly version of the fantastic Spotify Downloader of ritiek.

This is a list of some of its features:

  • Downloads songs from YouTube in an MP3 format by using Spotify metadata.
  • Functional UI based on ReactJS and MATERIAL-UI.
  • Search for songs, albums and playlist or simply copy the Spotify's HTTP link.
  • Pre-visualize the songs before downloading them in YouTube.
  • Fetch info from Spotify and play the songs using its web player.
  • Automatically applies metadata to the downloaded song
  • Works straight out of the box and does not require to generate or mess with your API keys (already included).

That's how it will look like!

snapshot_1 snapshot_2 snapshot_3

Usage

  • Run docker container:

    • Unix:

      docker pull ghcr.io/alvsanand/spotify-downloader:latest
      
      MUSIC_FOLDER={YOUR_MUSIC_DIRECTORY}
      docker run --restart=always --name spotify-downloader -p 5000:5000 -u `stat -c "%u:%g" "$MUSIC_FOLDER"` -d -v "$MUSIC_FOLDER:/music" ghcr.io/alvsanand/spotify-downloader:latest
    • Windows:

      % First, you must have configured shared folders in Docker Desktop
      
      docker pull ghcr.io/alvsanand/spotify-downloader:latest
      
      set MUSIC_FOLDER={YOUR_MUSIC_DIRECTORY}
      docker run --restart=always --name spotify-downloader -p 5000:5000 -d -v "%MUSIC_FOLDER%:/music" ghcr.io/alvsanand/spotify-downloader:latest
  • For accessing the UI, go to http://localhost:5000.

  • In order to see the logs:

    docker logs -f $(docker ps -aq --filter name=spotify-downloader)
  • Sometimes "youtube_dl" python library is outdated and downloads do not work. So just, we must remove the current execution and launch it again.

    docker rm -f $(docker ps -aq --filter name=spotify-downloader)
    
    ## See "Run docker container"

Configuration

In order to be usable, you should use your own Youtube API key:

  • Create you own Youtube API key. See this guide.

  • Go to "Settings" in Spotify Downloader, replace the Youtube API key and click "Save".

  • Now, the app will use the new key.

It is obligatory to set the Youtube API Keys in the configuration section in order to use the app.

Besides, due to the free quota of Youtube API, the app may fail after several successful downloads. Therefore, it is recommended to create and set multiple keys.

You will have to wait until next day to restart the download.

Development

Un order to run in development mode:

  • Start Flask server:

    sudo apt-get update && sudo apt-get install build-essential python3-venv python3-dev
    
    python3 -m venv venv
    source venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
    export LOCAL_MODE=True
    
    python app.py
  • Start react server:

    cd react-ui
    npm install
    npm run start

Disclaimer

Downloading copyright songs may be illegal in your country. This tool is for educational purposes only and was created only to show how Spotify's API can be exploited to download music from YouTube. Please support the artists by buying their music.

About

Download Spotify playlists with albumart and meta-tags

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Python 94.4%
  • HTML 3.0%
  • Dockerfile 2.4%
  • Shell 0.2%