Skip to content

An automation script to download Spotify exported songs using yt-dlp / youtube-dl and FFMPEG.

License

Notifications You must be signed in to change notification settings

Daenges/Spotify-Downloader-Bash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

TitleImage

An automation script to download Spotify exported songs using yt-dlp / youtube-dl and FFMPEG.


✏️ Key Features

✔️ Customizable
✔️ Parallel downloads
✔️ Full metadata handling
✔️ No additional overhead
✔️ No need to deal with the Spotify API

📃 Legal Notice

Be aware, that this script is only an automation of yt-dlp / youtuble-dl.
All laws regarding the download of copyrighted content also apply here.

📋 Script Setup

  1. Visit   Exportify, sign in with your Spotify credentials and export your desired playlists as a .csv file.
  2. Install a downloader (yt-dlp or youtube-dlCheck for a recent version! ) and FFMPEG with your prefered package manager.
  3. Get the script and make it executable:
wget https://raw.githubusercontent.com/Daenges/Spotify-Downloader-Bash/main/Downloader.sh &&\
chmod +x Downloader.sh
  1. Check the script one last time with your favourite editor before execution.

▶️ Script Execution

↪️ ./Downloader.sh "Path/To/YourPlaylist.csv" starts the script with default parameters.


These parameters are:

csvFile=""
downloader=""
processNumber=5
musicPath="./"
additionalKeywords=""

💡 Execution with Parameters: ./Downloader.sh "Path/To/YourPlaylist.csv" --additionalKeywords clean --processNumber 10

Parameter Usage
csvFile Must be entered as first parameter on execution and sets the path of your playlist file.
downloader Sets the download command.
There is an automatic detection (prefering yt-dlp), that can be overwritten with: --downloader youtube-dl
processNumber Number of parallel started Downloadprocesses.
Can be altered with: --processNumber 10
musicPath Sets the path where the music is saved, default is the execution path of the script.
Can be changed with: --musicPath /Your/New/Path/
additionalKeywords Since we are performing Youtube searches with Title and Author, some additional keywords
(e.g. clean, lyrics, ...) might improve the results.
Can be set with: --additionalKeywords clean

❌ Errors

If you got any error, check the version of your downloader against their latest release (yt-dlp or youtube-dl). Most errors arise through Youtube updating their page which needs to be implemented into the downloaders. If you have a recent downloader version and still get errors, feel free to create an issue here.

🔎 What is the script doing in the background?

  1. Reading all parameters
  2. Getting the column number for the according data fields (Artist Name, Track Name, ...)
  3. Creating an array containing all lines of data
  4. Starting parallel jobs that handle the download process
    • download picture and .mp3 into /temp/
    • merge them with FFMPEG while also applying metadata

📜 License

Copyright 2023 Daenges

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

An automation script to download Spotify exported songs using yt-dlp / youtube-dl and FFMPEG.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages