Download your Spotify playlists and songs along with album art and metadata

Overview
spotDL

spotDL

Download your Spotify playlists and songs along with album art and metadata

MIT License pypi version GitHub commits since latest release (by date) pypi downloads Contributors Discord

The fastest, easiest, and most accurate command-line music downloader

asciicast

What spotDL does

  1. Downloads music from YouTube as an MP3 file
  2. Applies basic metadata gathered from Spotify such as:
    • Track Name
    • Track Number
    • Album
    • Album Cover
    • Genre
    • and more!

Redesigned

spotDL is being redesigned! This means we are currently not accepting new feature requests. You can talk to us on our Discord if there is anything further.

Prerequisites

  • Python 3.6.1 or above (added to PATH)
  • FFmpeg 4.2 or above (added to PATH)

YouTube Music must be available in your country for spotDL to work. This is because we use YouTube Music to filter search results. You can check if YouTube Music is available in your country, by visiting YouTube Music.

Installation

Installing FFmpeg

Installing spotDL

  • Recommended Stable Version:

    pip install spotdl
  • Dev Version: (NOT STABLE)

    pip install https://codeload.github.com/spotDL/spotify-downloader/zip/dev

If you have trouble installing spotdl take a look at the extended installation guide here or ask for help in our discord server

On Termux

curl -L https://raw.githubusercontent.com/spotDL/spotify-downloader/master/termux/setup_spotdl.sh | sh

Arch

There is an Arch User Repository (AUR) package for spotDL.

Usage

  • To download a song, run

    spotdl [trackUrl]

    example:

    spotdl https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b
  • To download an album, run

    spotdl [albumUrl]

    example:

    spotdl https://open.spotify.com/album/4yP0hdKOZPNshxUOjY0cZj
  • To download a playlist, run

    spotdl [playlistUrl]

    example:

    spotdl https://open.spotify.com/playlist/37i9dQZF1E8UXBoz02kGID
  • To download all songs from an artist run

    spotdl [artistUrl]

    example:

    spotdl https://open.spotify.com/artist/1fZAAHNWdSM5gqbi9o5iEA
  • To search for and download a song, run, with quotation marks

    spotdl '[songQuery]'

    example:

    spotdl 'The Weeknd - Blinding Lights'

    Note: This is not accurate and often causes errors.

  • To resume a failed/incomplete download, run

    spotdl [pathToTrackingFile]

    example:

    spotdl 'The Weeknd - Blinding Lights.spotdlTrackingFile'

    Note: .spotdlTrackingFiles are automatically created when a download starts and deleted on completion

  • You can queue up multiple download tasks by separating the arguments with spaces

    spotdl [songQuery1] [albumUrl] [songQuery2] ... (order does not matter)

    example:

    spotdl 'The Weeknd - Blinding Lights' https://open.spotify.com/playlist/37i9dQZF1E8UXBoz02kGID ...

    Note: spotDL downloads up to 4 songs in parallel, so for a faster experience, download albums and playlist, rather than tracks.

  • To download youtube video with metadata from spotify, run

    spotdl "YouTubeURL|SpotifyURL"

    example:

    spotdl "https://www.youtube.com/watch?v=EO7XnC1YpVo|https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3"

    Note: Urls have to be separated with | and quoted properly ex. "YouTubeURL|SpotifyUrl"

  • To download songs with different output format run

    spotdl [songUrl] --output-format mp3/m4a/flac/opus/ogg/wav

    example:

    spotdl [songUrl] --output-format opus
  • To use ffmpeg binary that is not on PATH run

    spotdl [songUrl] --ffmpeg path/to/your/ffmpeg.exe

    example:

    spotdl [songUrl] --ffmpeg C:\ffmpeg\bin\ffmpeg.exe
  • To generate .m3u file for each playlist run

    spotdl [playlistUrl] --m3u

    example:

      spotdl https://open.spotify.com/playlist/37i9dQZF1E8UXBoz02kGID --m3u
  • To use youtube instead of youtube music run

    spotdl [songUrl] --use-youtube

    example:

      spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --use-youtube
  • To manually choose a lyrics provider, run

      spotdl [songUrl] --lyrics-provider lyrics_provider

    available lyrics providers:

    • genius
    • musixmatch

    example:

      spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --lyrics-provider genius
  • To change number of threads used when downloading songs run

    spotdl [songUrl] --dt [number]

    example:

    spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --dt 8
  • To change number of threads used when searching for songs run

    spotdl [songUrl] --st [number]

    example:

    spotdl https://open.spotify.com/track/4fzsfWzRhPawzqhX8Qt9F3 --st 8
  • To ignore your ffmpeg version run

    spotdl [songUrl] --ignore-ffmpeg-version
  • To use path template

    spotdl [songUrl] --path-template 'template'

    example:

    spotdl https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b --path-template '{artist}/{album}/{title} - {artist}.{ext}'

    possible values:

    • {artist}
    • {artists}
    • {title}
    • {album}
    • {ext}
    • {playlist}

pipx Isolated Environment Alternative

For users who are not familiar with pipx, it can be used to run scripts without installing the spotDL package and all the dependencies globally with pip. (Effectively skipping over the spotDL Installation step)

First, you will need to install pipx by running:

python3 -m pip install --user pipx
python3 -m pipx ensurepath

Next, you can jump directly to running spotDL with:

pipx run spotdl ...

Contributor Guide

Interested in contributing? Check out our CONTRIBUTING.md to find resources around contributing along with a guide on how to set up a development environment.

Contributors

contributors

Authors

  1. @ritiek for creating and maintaining spotDL for 4 years
  2. @rocketinventor for figuring out YouTube Music querying
  3. @MikhailZex for, never mind...

License

MIT

Comments
  • BUG: Mutagen ID3 No header error

    BUG: Mutagen ID3 No header error

    When running the program i get an error from mutagen. I have looked around but could not find any related issues:

    > $ spotdl https://open.spotify.com/track/398P1VKJo9gJQFZpY3vt8T?si=e_T_AWLySpGDWMMfV-zSBQ Fetching Song... 95%|███████████████████████████████████████████████▍ |ETA: 00:00, 0.09min/songTraceback (most recent call last): File "/home/sjoerdhilhorst/.local/bin/spotdl", line 8, in <module> sys.exit(console_entry_point()) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/spotdl/__main__.py", line 100, in console_entry_point downloader.download_single_song(song) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/spotdl/download/downloader.py", line 274, in download_single_song download_song(songObj, self.displayManager, self.downloadTracker) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/spotdl/download/downloader.py", line 170, in download_song audioFile = EasyID3(convertedFilePath) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/mutagen/easyid3.py", line 169, in __init__ self.load(filename) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/mutagen/_util.py", line 185, in wrapper return func(*args, **kwargs) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/mutagen/_util.py", line 156, in wrapper return func(self, h, *args, **kwargs) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/mutagen/id3/_file.py", line 152, in load self._header = ID3Header(fileobj) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/mutagen/_util.py", line 185, in wrapper return func(*args, **kwargs) File "/home/sjoerdhilhorst/.local/lib/python3.6/site-packages/mutagen/id3/_tags.py", line 59, in __init__ raise ID3NoHeaderError("%s: too small" % fn) mutagen.id3._util.ID3NoHeaderError: ./Yotto - Marisa.mp3: too small

    Any ideas? i can't find much documentation on what the cause of this exception is

    bug 
    opened by SjoerdHilhorst 70
  • Perfecting the search

    Perfecting the search

    Spot-dl goes haywire for non-mainstream music. It should be possible to implement a search on music.youtube.com with pyselenium instead of using the YouTube search api. This will ensure the correct song is found. To the best of my knowledge the music.youtube-url's can be downloaded just like normal url's.

    opened by ghost 62
  • Use asyncio instead of multiprocessing

    Use asyncio instead of multiprocessing

    This PR aims to remove multiprocessing in favor of asyncio. It could still use some refactoring, but seem to work fine.
    I've left the prints for now, to show that the code is executed in parallel and the poolSize is respected.

    The change seems to not affect performance, and the code should be much easier to test and debug.

    Asyncio code:

    real    2m52.298s
    user    7m43.636s
    sys     1m1.016s
    

    Original code:

    real    2m52.413s
    user    7m24.404s
    sys     1m0.423s
    
    opened by aklajnert 47
  • Download Error

    Download Error "as no match could be found on youtube"

    I'm having a problem when I download a song or playlist from spotify but I never had a problem with spotdl, I always use it and it works great for me (thanks to the developers for that). I use the "spotdl" command with the playlist or song link. The following error appears on the console: "as no match could be found on youtube". I hope you can solve it, maybe it is temporary or maybe because of the Google servers crash a few days ago that affected YouTube, however I download from Spotify. Thank you very much to all!

    **daredevil@Mateo-Fumis-PC:**/mnt/c/Users/Mateo/Documents/HACKING/Linux/spotify-downloader$ spotdl https://open.spotify.com/track/2rc7BkzO8qepMFAxHtOrXc
    Fetching Song...
    Skipping Blanco (https://open.spotify.com/track/2rc7BkzO8qepMFAxHtOrXc) as no match could be found on youtube
      0%|                                                 |ETA: ?, ~min/song
    
    bug 
    opened by cybermatthewhacking 45
  • New Feature Requests

    New Feature Requests

    What follows is a lit of features already ready for addition or requested by the community. Drop a 👍 if you'd use, and a 👎 if you wouldn't use it.

    UPDATE

    1. Features that the spotDL team think are worth adding will be moved to #912. Please vote over there.
    2. As to the features requested before 23/10/2020, they will be considered purely on the basis of votes received.
    3. Feel free to start conversations in this Issue/thread.
    opened by ghost 40
  • Switch to rich

    Switch to rich

    Drop TQDM in favor of willmcgugan/rich This was #1037 before branch convention changes. #1037 was part of #895 but I created a new PR after asyncio switch.

    Before: image

    After: image

    See #1037 for more info.

    enhancement 
    opened by phcreery 35
  • Song Download Mismatch (Wrong Download/No Downloaded)

    Song Download Mismatch (Wrong Download/No Downloaded)

    Environment

    • System OS: Windows 10

    • Python Version: Python 3.9.4

    • Install Source: CMD, pip

    • Version OR Commit hash:
    Version: 3.5.2
    Summary: Download your Spotify playlists and songs along with album art and metadata
    Home-page: https://github.com/spotDL/spotify-downloader
    Author: spotDL Team
    Author-email: [email protected]
    License: MIT
    Location: c:\pl\python39\lib\site-packages
    Requires: pytube, beautifulsoup4, mutagen, tqdm, spotipy, ytmusicapi, rapidfuzz, requests, rich
    Required-by:
    

    Expected Behaviour

    1. I'm trying to download The Longest Johns' Oak & Ash & Thorn, and expect that it downloads this video: https://music.youtube.com/watch?v=4GT59EqPlUQ&list=RDAMVM4GT59EqPlUQ.
    • The program will convert the whole hour, which isn't really a good thing to see since it's really just a small song, therefore the system to search the song has a wrong download
    1. I'm trying to download chumachechaya vesna/Чумачечая Весна and it doesn't detect the Youtube Music link: https://music.youtube.com/watch?v=A-PjXUzhFDk&list=RDAMVMA-PjXUzhFDk
    • The program will instead error out, and this is possibly actually due to its foreign characters being recognized. Translating it to English creates a "song not found" error on Spotify, and manually typing it creates a "song not found" on Youtube instead.

    Actual Behaviour

    For Oak & Ash & Thorn, it downloads this 1 hour video: https://www.youtube.com/watch?v=zIHmPlI4JEs For Chumachechaya Vesna, the song can't be found.

    Steps to Reproduce

    1. Run "spotdl https://open.spotify.com/track/38FCXf9CTcH9MJKn3WsJ7x"
    2. Run "spotdl https://open.spotify.com/track/2eaSMmKfigsm96aTUJMoIk"

    Traceback

    For Oak & Ash & Thorn:

    D:\Downloads\Audio\Music\Spotdl>spotdl https://open.spotify.com/track/38FCXf9CTcH9MJKn3WsJ7x
    Fetching Song...
    Searching for: The Longest Johns - Oak & Ash & Thorn
    The Longest Johns - Oak & Ash & Thorn              Converting         ------------------------------------------------------------         90% 0:00:02
    

    For Chumachechaya Vesna:

    D:\Downloads\Audio\Music\Spotdl>spotdl https://open.spotify.com/track/2eaSMmKfigsm96aTUJMoIk
    Fetching Song...
    Searching for: Potap & Nastya - Чумачечая весна
    Skipping Чумачечая весна (https://open.spotify.com/track/2eaSMmKfigsm96aTUJMoIk) as no match could be found on youtube
    
    D:\Downloads\Audio\Music\Spotdl>spotdl "Potap & Nastya - chumachechaya vesna"
    Searching for song "Potap & Nastya - chumachechaya vesna"...
    No song matches found on Spotify
    
    D:\Downloads\Audio\Music\Spotdl>spotdl "Potap & Nastya - Чумачечая весна"
    Searching for song "Potap & Nastya - Чумачечая весна"...
    Searching for: Potap & Nastya - Чумачечая весна
    Searching for: Potap & Nastya - Чумачечая весна - Live
    Searching for: Potap & Nastya - Чумачечая весна
    Could not match any of the results on YouTube
    
    D:\Downloads\Audio\Music\Spotdl>spotdl "Потап и Настя - Чумачечая Весна
    Searching for song "Потап и Настя - Чумачечая Весна"...
    Searching for: Potap & Nastya - Чумачечая весна
    Searching for: Potap & Nastya - Чумачечая весна - Live
    Searching for: Potap & Nastya - Чумачечая весна
    Could not match any of the results on YouTube
    

    Any other information:

    Related to other previous issues I've given, specifically #970 and #1089.

    bug 
    opened by RowanSkie 34
  • FFmpeg behaviour on wrong version

    FFmpeg behaviour on wrong version

    Reviewing the code in download.py also reveals a failure to check returns codes from the spawned ffmpeg process, and that's the root cause of the problem I've encountered. If ffmpeg fails for any reason, the spotDL code will keep on working. If the output file isn't written, it ends up hanging with 100% CPU usage due the loop I quoted above.

    For me, the issue is that I've got ffmpeg version 7:4.1.6-1 installed. This is the newest official version for the Raspberry Pi:

    $ sudo apt install ffmpeg
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    ffmpeg is already the newest version (7:4.1.6-1~deb10u1+rpt1).
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    

    However, that version doesn't support the pad_dur option for the apad filter. spotDL passes this filter in the chian (as apad=pad_dur=2). ffmpeg fails, that failure isn't detected; ffmpeg writes a zero-byte output file, spotDL doesn't care to check, and crashes.

    Getting a newer version of ffmpeg from snap exchanges this problem for another issue:

    $ sudo snap install ffmpeg --classic
    2021-01-25T15:54:27-08:00 INFO Waiting for restart...
    ffmpeg N-76538-gb83c849 from Snapcrafters installed
    Channel latest/stable for ffmpeg is closed; temporarily forwarding to stable.
    

    because that version doesn't support the -abr option. I'll hve to find a way to get a version compatible with spotDL.

    Until then, a raw Python stack dump is pretty harrowing for most users. Maybe the spotDL developers will consider any of these suggestions to improve matters for their users:

    • Document the required version of ffmpeg as 4.2 or newer (when pad_dur support was added)
    • Check the ffmpeg version at startup; if older, omit the pad_dur parameter; perhaps with a warning message
    • add code that checks the process.returncode in download.py to see if the spawned process failed or worked; if it fails, do something sensible instead of trying to process a broken output file
    • catch the piped output from the process to develop a clear error message. ffmpeg shows the user an actionable error message
    • add a --debug option to the script to share more output

    Reinstalling Python, as recommended above, won't fix this issue.

    Originally posted by @mikeblas in https://github.com/spotDL/spotify-downloader/issues/934#issuecomment-767195102

    enhancement 
    opened by ghost 33
  • Download music with length closest to one on Spotify

    Download music with length closest to one on Spotify

    First, sorry for using old version :(

    • added .python-version This file is used in pyenv to select good python version.

    Changes in core/misc.py:

    • added function get_sec to convert HH:mm:ss to seconds

    Changes in spotdl.py:

    • in function generate_songname change function to receive generate_metadata, this is optymalization, becouse in oldest version metadata from spotify api is downlaoded 2 times
    • in function generate_youtube_url song variable use changed function generate_songname function now looking for songs in while, and save data to dict. Dictionary is used in manual and auto mode. In dictionary keep is youtube link, title, videotime (in format HH:mm:ss) and videotime converted to seconds. For now in automatic downloading is selected video with least difference betwen youtube video time and time from spotify. This is important, becouse in youtube a lot of movies has scenes before/after without musics.
    opened by WMP 33
  • restructured project; various bugfixes and improvements

    restructured project; various bugfixes and improvements

    Title

    restructured project; various bugfixes and improvements

    Description

    • Changed project structure
    • Added yt as fallback provider
    • Follow pep8 guidelines in the whole project
    • create .m3u file
    • fixed tests
    • renamed .cache to .spotdl-cache
    • download audio with youtube-dl
    • improved audio quality and conversion time for m4a and opus
    • bugfixes
    • more...

    Related Issue

    Motivation and Context

    I don't like current project structure. It's quite hard to navigate in the project.

    How Has This Been Tested?

    pytest, mypy, flake8

    Screenshots (if appropriate)

    Types of Changes

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [x] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist

    • [x] My code follows the code style of this project
    • [x] My change requires a change to the documentation
    • [x] I have updated the documentation accordingly
    • [x] I have read the CONTRIBUTING document
    • [x] I have read the CORE VALUES document
    • [x] I have added tests to cover my changes
    • [x] All new and existing tests passed
    enhancement High Priority bugfix 
    opened by xnetcat 30
  • Can't download playlist

    Can't download playlist

    Hello,

    I'm having a problem while downloading playlist. It suddenly stops at 4%. I've tryed multiple times with different playlists. Version I'm running is 3.1.4. I got python and ffmpeg installed, as well as pytube which I was troubleshooting while I searching for solution on google (uninstalling and installing it). Am I missing someting ? Can anyone help me please ?

    C:\Users\darko>spotdl https://open.spotify.com/playlist/7JAdfJue28XcbNFaAM7xKf
    Fetching Playlist...
      4%|███▍                                                                                     |ETA: 03:55, 0.03min/songmultiprocessing.pool.RemoteTraceback:
    """
    Traceback (most recent call last):
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\download\downloader.py", line 114, in download_song
        downloadedFilePath = trackAudioStream.download(
    AttributeError: 'NoneType' object has no attribute 'download'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\multiprocessing\pool.py", line 125, in worker
        result = (True, func(*args, **kwds))
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\multiprocessing\pool.py", line 51, in starmapstar
        return list(itertools.starmap(args[0], args[1]))
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\download\downloader.py", line 124, in download_song
        remove(join(tempFolder, convertedFileName) + '.mp4')
    FileNotFoundError: [WinError 2] The system cannot find the file specified: '.\\Temp\\Regard, RAYE - Secrets - Tom Field Remix.mp4'
    """
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\runpy.py", line 194, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "C:\Users\darko\AppData\Local\Programs\Python\Python38-32\Scripts\spotdl.exe\__main__.py", line 7, in <module>
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\__main__.py", line 116, in console_entry_point
        downloader.download_multiple_songs(songObjList)
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\download\downloader.py", line 293, in download_multiple_songs
        self.workerPool.starmap(
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\multiprocessing\pool.py", line 372, in starmap
        return self._map_async(func, iterable, starmapstar, chunksize).get()
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\multiprocessing\pool.py", line 771, in get
        raise self._value
    FileNotFoundError: [Errno 2] The system cannot find the file specified: '.\\Temp\\Regard, RAYE - Secrets - Tom Field Remix.mp4'
    

    Edit : Just tryed to download a song

    C:\Users\darko>spotdl https://open.spotify.com/track/5HFPK8mcO6BGPZNeZPZI5L
    Fetching Song...
      0%|                                                                                                                                  |ETA: ?, ~min/songTraceback (most recent call last):
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\download\downloader.py", line 114, in download_song
        downloadedFilePath = trackAudioStream.download(
    AttributeError: 'NoneType' object has no attribute 'download'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\runpy.py", line 194, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "C:\Users\darko\AppData\Local\Programs\Python\Python38-32\Scripts\spotdl.exe\__main__.py", line 7, in <module>
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\__main__.py", line 100, in console_entry_point
        downloader.download_single_song(song)
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\download\downloader.py", line 274, in download_single_song
        download_song(songObj, self.displayManager, self.downloadTracker)
      File "c:\users\darko\appdata\local\programs\python\python38-32\lib\site-packages\spotdl\download\downloader.py", line 124, in download_song
        remove(join(tempFolder, convertedFileName) + '.mp4')
    FileNotFoundError: [WinError 2] The system cannot find the file specified: '.\\Temp\\Ytram, Martin Garrix - Fire (with Elderbrook).mp4'
      0%|                                                                                                                                  |ETA: ?, ~min/song
    
    C:\Users\darko>
    
    opened by fr0sty98 30
  • libfdk_aac

    libfdk_aac

    Requested Feature

    It's not really a request but rather a question. If i pass --ffmpeg-args "-c:a libfdk_aac" will it do after song has been downloaded or first will do -c:a aac (which is default i presume) and then ffmpeg-args?

    Possible implementation

    No response

    feature-request 
    opened by M05QU170 1
  • 1 hour long version found instead of actual song

    1 hour long version found instead of actual song

    System OS

    Windows

    Python Version

    3.10 (CPython)

    Install Source

    pip / PyPi

    Install version / commit hash

    4.0.6

    Expected Behavior vs Actual Behavior

    Downloading "STAY - The Kid LAROI" outputs a one hour long video from youtube instead of the normal version

    Expected

    Expected Behavior: spotdl will find this: https://music.youtube.com/watch?v=XfEMj-z3TtA (2:38 duration)

    Actual

    Actual Behavior- spotdl finds a 1 hour long duration audio: https://www.youtube.com/watch?v=aM3owjYjQKk (1:00:01)

    spotdl download https://open.spotify.com/track/5PjdY0CKGZdEuoNab3yDmX
    Downloaded "The Kid LAROI - STAY (with Justin Bieber)": https://www.youtube.com/watch?v=aM3owjYjQKk
    

    Steps to reproduce - Ensure to include actual links!

    spotdl download https://open.spotify.com/track/5PjdY0CKGZdEuoNab3yDmX

    Traceback

    spotdl download https://open.spotify.com/track/5PjdY0CKGZdEuoNab3yDmX
    Downloaded "The Kid LAROI - STAY (with Justin Bieber)": https://www.youtube.com/watch?v=aM3owjYjQKk
    
    
    
    ### Other details
    
    _No response_
    bug 
    opened by Nadav42 1
  • Multiple Youtube link with Spotify metadata

    Multiple Youtube link with Spotify metadata

    Requested Feature

    Hello! Please add the ability to download multiple tracks from YouTube Music with metadata from Spotify. I just have an album with Russian metadata, and which is uploaded to YouTube music with English metadata. Everything works fine for one track, but you can kill yourself by downloading 14 tracks one at a time. Please add this feature if possible.

    Possible implementation

    No response

    feature-request 
    opened by asmol82 0
  • Option to store the given Spotify URL in the properties of the downloaded music

    Option to store the given Spotify URL in the properties of the downloaded music

    Requested Feature

    Ability to store the Spotify URL that was provided initially inside the details properties of the downloaded music, either by replacing the YouTube Music URL or by appending/prepending it.

    This link will be useful for sharing and record-keeping purposes.

    Possible implementation

    No response

    feature-request 
    opened by sepsol 3
  • Release v4.1.0

    Release v4.1.0

    Bugfixes/improvements:

    • Match existing songs by spotify URL instead of name by @Domi250 in https://github.com/spotDL/spotify-downloader/pull/1641
    • Improved matching for japanese songs by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/513cefa16742a4d602245e345b32a06181965f13 https://github.com/spotDL/spotify-downloader/commit/57482fcae5ecb62485dc8925312337ca2a5befa1
    • Improved song matching for results with merged artists by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/ffda0afcc57b3a19a0dacb3d296f5309a0a11651
    • Fixed some errors related to unicode encoding by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/4380cea538308cd0535497e7c2b45533ead934f7

    API changes:

    • Unified matching algorithm for all audio providers by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/396c588dd335f3359a1faa205a06
    • Rewritten metadata module, added function to get song metadata from files by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/7d01556643eb7bf3c447ec8305b87d0516b45ec0
    • Don't raise error on empty results list by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/35be8b3a84d9f3d9e6493cccbab7ca899846a4dd

    TODO:

    • Add synced lyrics

    A lot more changes to come...

    opened by xnetcat 0
Releases(v4.0.6)
  • v4.0.6(Dec 10, 2022)

    What's Changed

    • Fix metadata when playlist has no images by @koeberlue in #1685
    • added ability to use xdg directory by @xnetcat in 3929caed5a2e8c2858a1dc3898ad75be263fdb96
    • fixed some errors related to unicode encoding by @xnetcat in aacde50f082693e93d9aa6b087608d715ab7252b
    • fixed incorrect list length when using {list-length} for --output by @xnetcat in 52c730e74a7e3bb46c9835d51e0d112ec8f8e140
    • added option to preserve original audio by @xnetcat in 06a84e0400b7f7f847a7a7d06eedba766cdbced3
    • fixed artist match calculation for some edge cases by @xnetcat in 22be0a8723e902ed06d4c3eb76d918ec5910b677
    • fixed docs by @xnetcat in c0f8e30b4fc9e9435f4676392c3a0a289e27212f 8f7cb2a7ab13f1244d1b9abc6635ccaa14b01ba7 74fad7c50490e58c970b217d3f18f778d559afb2

    New Contributors

    • @koeberlue made their first contribution in #1685

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.5...v4.0.6

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.6-darwin(22.44 MB)
    spotdl-4.0.6-linux(44.69 MB)
    spotdl-4.0.6-win32.exe(21.33 MB)
  • v4.0.5(Nov 12, 2022)

    What's Changed

    • Fixed wrong file location when downloading file from web session by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/ebcd0e45c1df4ef6a019e2f8bcf7bec8ff2a3637
    • Turns Spotify playlists into albums when downloaded by @EvieUwU in #1664
    • Fixed m3u file creation when using sync file by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/64f0fdbbc08f90782467e1118ca54fb3dc141b70
    • Search album by string enhancement by @bfelch in #1663

    New Contributors

    • @EvieUwU made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1664
    • @bfelch made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1663

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.4...v4.0.5

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.5-darwin(21.61 MB)
    spotdl-4.0.5-linux(44.79 MB)
    spotdl-4.0.5-linux-aarch64(22.00 MB)
    spotdl-4.0.5-win32.exe(20.71 MB)
  • v4.0.4(Nov 9, 2022)

  • v4.0.3(Nov 8, 2022)

    What's Changed

    • More youtube music matching improvements by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/8fcdf0f5772201a3f92d1b7bfa392e9be91ba2e2 , https://github.com/spotDL/spotify-downloader/commit/23f42b803c675ef882150dc60803f1cbdf650e09 , https://github.com/spotDL/spotify-downloader/commit/77e966342530aeba3fa8a323296b4ab4dfb9db15 , https://github.com/spotDL/spotify-downloader/commit/c09ba7d28e87547fa57ab282477c950343dc076e , https://github.com/spotDL/spotify-downloader/commit/35e6fc48e46525bf8fe0fd29c547e124947432b8 , https://github.com/spotDL/spotify-downloader/commit/d02e244423c207f86584add8141eca84aaef2286 , https://github.com/spotDL/spotify-downloader/commit/259f6f5d9dddf911746926782873de554a95b97a
    • Improved youtube's matching by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/259f6f5d9dddf911746926782873de554a95b97a , https://github.com/spotDL/spotify-downloader/commit/4f08b092f15c8700044f604be5af68b167552731 , https://github.com/spotDL/spotify-downloader/commit/182a4ce7c8510bca2d8c1ae6ad47160fd6428911 , https://github.com/spotDL/spotify-downloader/commit/259f6f5d9dddf911746926782873de554a95b97a
    • Updated: docker build for arm by @MarcOrfilaCarreras in #1659
    • Use download as default operation by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/31e7b727a0ba81bef87933854184bbf8968fd22a (now you don't have to include download in your commands, like in v3)
    • Fixed m3u file creation for normal file names by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/8472887f5772195165cddde3cc9709e4d92a1be6
    • Fixed a bug causing artist type to return incorrect number of songs by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/45b1acf9b08e5ec2c6042d08559822243a89ca88

    New Contributors

    • @MarcOrfilaCarreras made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1659

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.2...v4.0.3

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.2-darwin(21.61 MB)
    spotdl-4.0.2-linux(44.79 MB)
    spotdl-4.0.2-linux-aarch64(22.00 MB)
    spotdl-4.0.2-win32.exe(20.71 MB)
  • v4.0.2(Nov 6, 2022)

    What's Changed

    • chore(link): update link in command --help by @asandikci in https://github.com/spotDL/spotify-downloader/pull/1650
    • fixed python compatibility for song.from_dict func by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/fb26ec7eecbc4081543c9d479f2bbd0b8aad57bf
    • fixed m3u/sync files not upading after running sync command by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/f67d70143c9f65e35c149d51f2eec5a7e908b98f
    • added ability to selfhost web interface by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/017e94e954f1c6b011d3f54e038ae7d80df88942
    • fixed a lot of bugs/improved stability in web interface by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/017e94e954f1c6b011d3f54e038ae7d80df88942
    • added option to use variable bitrate for song conversion by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/e989f9814718d6dd73621a56bd64ac51ba3442d8
    • fixed incorrect link being shown when downloading by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/e989f9814718d6dd73621a56bd64ac51ba3442d8
    • use bitrate from youtube for conversion by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/0037efd5e44603bbf9d3620e6314a127265f2c95
    • added ability to automatically name m3u files by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/23a82108b9fb097bac604d1f0b79712c689a2df0
    • a lot of improvements to yt music matching by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/ea63f3481a2807f9d9ebd967fbe83486ec9948d3 https://github.com/spotDL/spotify-downloader/commit/090c9484638d82bcb43163937d3db345a81090d6 https://github.com/spotDL/spotify-downloader/commit/6dd759f0871406080bcfe85ca162da090637ec4b https://github.com/spotDL/spotify-downloader/commit/40db115348a3bd82b0e2273daf0ce208aaac46c7 https://github.com/spotDL/spotify-downloader/commit/6d8f27d0a64d9a16afdb10f1ded9c6bbfde7434b

    This update is better at detecting incorrect songs, so you might see more LookupErrors, you can add youtube as a secondary audio provider to prevent this from happening.

    If wrong versions of the songs are getting downloaded please report them here or in the spotDL discord server

    New Contributors

    • @asandikci made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1650

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.1...v4.0.2

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.2-darwin(21.61 MB)
    spotdl-4.0.2-linux(44.78 MB)
    spotdl-4.0.2-linux-aarch64(21.96 MB)
    spotdl-4.0.2-win32.exe(20.71 MB)
  • v4.0.1(Oct 25, 2022)

  • v4.0.0(Oct 22, 2022)

    Why?

    We recognized that while v3 was simplified and easy to use, some users wanted further functionality to use spotDL the way they want. v4 has been designed from the ground up to retain the simple and easy to use interface, but also provide these advanced options for customizability.

    Key Features

    You've asked and we've provided! Some of the most asked for features:

    • Sync Mode Keep your local files up to date with your Spotify playlists. Use a sync file to track changes (deletions or additions)
    • Configuration File Annoyed about typing your desired output path every time you run spotDL? v4 brings back the config file - Look at \.spotdl\config.json in your user Folder
    • Audio and Lyric Providers Customize where audio and lyrics come from. AZLyrics, musixmatch or Genius
    • FFmpeg Download We know lots of people had issues downloading FFmpeg, so now spotDL can do it for you!
    • API It is now easier than ever to use spotDL in your own code!
    • Documentation & Tests Code is 100% documented and tests over 70% coverage!
    • More options

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v3.9.6...v4.0.0

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.0-darwin(19.73 MB)
    spotdl-4.0.0-linux(42.68 MB)
    spotdl-4.0.0-win32.exe(19.70 MB)
  • v4.0.0-rc.5(Oct 10, 2022)

    What's Changed

    • Updated docker image in compose to be all lowercase by @SethAngell in https://github.com/spotDL/spotify-downloader/pull/1617
    • Update supported python version by @georgewoodall82 in https://github.com/spotDL/spotify-downloader/pull/1621
    • Improve docker container rebuild speed by @peleccom in #1623
    • Fixed arguments parsing by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/725ba764774d430cd3947ee300dcde8baa0671e2
    • Fixed Can't get metadata for songs with no lyrics by @ManuelEibl in #1620

    New Contributors

    • @SethAngell made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1617
    • @georgewoodall82 made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1621

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.0-rc.4...v4.0.0-rc.5

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.0-rc.5-darwin(19.73 MB)
    spotdl-4.0.0-rc.5-linux(42.69 MB)
    spotdl-4.0.0-rc.5-linux-aarch64(20.53 MB)
    spotdl-4.0.0-rc.5-win32.exe(19.70 MB)
  • v4.0.0-rc.4(Oct 2, 2022)

    What's Changed

    • Use all relevant data in cache key. by @AkaTenshi in https://github.com/spotDL/spotify-downloader/pull/1600
    • Add archive to skip downloaded songs by @AkaTenshi in https://github.com/spotDL/spotify-downloader/pull/1602
    • Add lyrics sync as a console operation by @MrFellox in https://github.com/spotDL/spotify-downloader/pull/1594
    • added option to overwrite metadata by @xnetcat in https://github.com/spotDL/spotify-downloader/pull/1608
    • improve artist matching for song results by @xnetcat in https://github.com/spotDL/spotify-downloader/pull/1610
    • update cassettes by @xnetcat in https://github.com/spotDL/spotify-downloader/pull/1613
    • Release v4.0.0.rc.4 by @xnetcat in https://github.com/spotDL/spotify-downloader/pull/1614
    • Fixed AZLyrics and Genius lyrics providers by @xnetcat in c87fd6d and cdaf376

    New Contributors

    • @AkaTenshi made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1600
    • @MrFellox made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1594

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.0-rc.3...v4.0.0-rc.4

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.0-rc.4-darwin(19.73 MB)
    spotdl-4.0.0-rc.4-linux(42.69 MB)
    spotdl-4.0.0-rc.4-linux-aarch64(20.53 MB)
    spotdl-4.0.0-rc.4-win32.exe(19.70 MB)
  • v4.0.0-rc.3(Aug 23, 2022)

    We are ironing through bugs at the moment - thanks for being patient!

    Keep in touch & up to date on our Discord server. https://discord.gg/xCa23pwJWY

    What's Changed

    • Spelling Errors in Readme by @Lyn-xX in https://github.com/spotDL/spotify-downloader/pull/1575
    • Fixes #1553, #1564 and #1573 by @rokonio in https://github.com/spotDL/spotify-downloader/pull/1574
    • Add authorisation token authentication method by @pjones123 in https://github.com/spotDL/spotify-downloader/pull/1580
    • Publish v4.0.0rc-3 by @Silverarmor in https://github.com/spotDL/spotify-downloader/pull/1582

    New Contributors

    • @Lyn-xX made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1575
    • @rokonio made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1574
    • @pjones123 made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1580

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.0-rc.2...v4.0.0-rc.3

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.0-rc.3-darwin(21.33 MB)
    spotdl-4.0.0-rc.3-linux(43.67 MB)
    spotdl-4.0.0-rc.3-linux-aarch64(22.00 MB)
    spotdl-4.0.0-rc.3-win32.exe(20.52 MB)
  • v4.0.0-rc.2(Jun 27, 2022)

    What's Changed

    • Major Bugfix for artist matching
    • upgrade rapidfuzz to 2.0.15 by @maxbachmann in https://github.com/spotDL/spotify-downloader/pull/1543
    • Update Termux installation script path on docs by @dyegoaurelio in https://github.com/spotDL/spotify-downloader/pull/1545
    • Web UI fixes
    • GitHub API Rate Limiting messages

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.0.0rc1...v4.0.0-rc.2

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.0-rc.2-darwin(20.84 MB)
    spotdl-4.0.0-rc.2-linux(22.00 MB)
    spotdl-4.0.0-rc.2-linux-aarch64(22.00 MB)
    spotdl-4.0.0-rc.2-win32.exe(20.42 MB)
  • v4.0.0rc1(Jun 24, 2022)

    Why?

    We recognised that while v3 was simplified and easy to use, some users wanted further functionality to use spotDL the way they want. v4 has been designed from the ground up to retain the simple and easy to use interface, but also provide these advanced options for customisability.

    Key Features

    You've asked and we've provided! Some of the most asked for features:

    • Sync Mode Keep your local files up to date with your Spotify playlists. Use a sync file to track changes (deletions or additions)
    • Configuration File Annoyed about typing your desired output path every time you run spotDL? v4 brings back the config file - Look at \.spotdl\config.json in your user Folder
    • Audio and Lyric Providers Customise where audio and lyrics come from. AZLyrics, musixmatch or Genius
    • FFmpeg Download We know lots of people had issues downloading FFmpeg, so now spotDL can do it for you!
    • API It is now easier than ever to use spotDL in your own code!
    • Documentation & Tests Code is 100% documented and tests over 70% coverage!

    Want to see the full changelog? https://github.com/spotDL/spotify-downloader/pull/1533

    Source code(tar.gz)
    Source code(zip)
    spotdl-4.0.0-darwin(20.62 MB)
    spotdl-4.0.0-linux(40.05 MB)
    spotdl-4.0.0-linux-aarch64(21.94 MB)
    spotdl-4.0.0-win32.exe(20.38 MB)
  • v3.9.6(May 11, 2022)

    What's Changed

    • Install git in order to be able to build without errors (issue #1508) by @jpenninkhof in https://github.com/spotDL/spotify-downloader/pull/1516
    • add setuptools to install_requires by @dotlambda in https://github.com/spotDL/spotify-downloader/pull/1505
    • Update Dockerfile by @zekroTJA in https://github.com/spotDL/spotify-downloader/pull/1509
    • Update the song name matching rules in YouTube music by @opleonnn in https://github.com/spotDL/spotify-downloader/pull/1518

    New Contributors

    • @zekroTJA made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1509
    • @opleonnn made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1518

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v3.9.5...v3.9.6

    Source code(tar.gz)
    Source code(zip)
  • v3.9.5(Apr 15, 2022)

    What's Changed

    • improve youtube search by @WisconsinBadger414 in https://github.com/spotDL/spotify-downloader/pull/1501
    • retry on 404 by @xnetcat in https://github.com/spotDL/spotify-downloader/commit/b25e8792f787523d0a3238e663c9790b1894aa5f

    New Contributors

    • @WisconsinBadger414 made their first contribution in https://github.com/spotDL/spotify-downloader/pull/1501

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v3.9.4...v3.9.5

    Source code(tar.gz)
    Source code(zip)
  • v3.9.4(Apr 3, 2022)

  • v3.9.3(Feb 8, 2022)

    What's Changed

    • Small QoL change to easy see failed tracks by @othyn in (https://github.com/spotDL/spotify-downloader/pull/1454)
    • Add encoding parameter to youtubedl by @jpenninkhof (https://github.com/spotDL/spotify-downloader/pull/1468)
    • Fix issue with file naming scheme by @Ashrit-Yarava (https://github.com/spotDL/spotify-downloader/pull/1458)

    New Contributors

    • @othyn made their first contribution in (https://github.com/spotDL/spotify-downloader/pull/1454)
    • @jpenninkhof made their first contribution in (https://github.com/spotDL/spotify-downloader/pull/1468)
    • @Ashrit-Yarava made their first contribution in (https://github.com/spotDL/spotify-downloader/pull/1458)

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v3.9.2...v3.9.3

    Source code(tar.gz)
    Source code(zip)
  • v3.9.2(Jan 3, 2022)

    Bug Fixes

    • fixed m3u again @xnetcat (#1444)
    • use path_template to generate m3u paths only if path template is present @xnetcat (#1442)

    Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v3.9.1...v3.9.2

    Source code(tar.gz)
    Source code(zip)
  • v3.9.1(Dec 14, 2021)

    Changes

    • fix #1414 @xnetcat (#1435)
    • close #1406 @xnetcat (#1436)
    • bugfix: fallback to other file formats @xnetcat (#1426)
    • add Dockerfile @FarmVivi (#1430)
    • Feature/song names @FarmVivi (#1429)
    • bugfix: artist matching improvements @xnetcat (#1417)
    • Fix custom youtube url parsing @s1as3r (#1411)
    • misc: refactor @s1as3r (#1410)

    Bug Fixes

    • Fix #1433 @s1as3r (#1434)
    • Fix bug caused by fienames starting with - @s1as3r (#1413)
    Source code(tar.gz)
    Source code(zip)
  • v3.9.0(Oct 24, 2021)

    Changes

    • feat: added path template @xnetcat (#1401) You can now use -p/--path-template {artist}/{album}/{artist} - {title}.{ext} to put files in specific directories or change the filename structure
    • Multiple Lyrics Providers @s1as3r (#1397) --lyrics-provider genius/musixmatch Added the option to select between genius or musixmatch, where musixmatch is the default
    • misc improvements @xnetcat (#1392)
    • 🪶: Refactor Code Expression @yezz123 (#1390)
    • Remove unnecessary dependency and add demo to readme @phcreery (#1382)
    • misc: readme improvements @xnetcat (#1380)

    Bug Fixes

    • ci: cleanup @Silverarmor (#1402)
    • revert bea748b: revert to rapidfuzz @Silverarmor (#1403)
    • misc: fix warnings @xnetcat (#1400)
    • gitignore update and update tests for multithread search @Silverarmor (#1398)
    • bugfix: replace rapidfuzz with thefuzz @xnetcat (#1391)
    • bugfix: don't add cover if spotify does not provide album cover @xnetcat (#1384)

    See all changes at https://github.com/spotDL/spotify-downloader/compare/v3.8.0...v3.9.0

    Source code(tar.gz)
    Source code(zip)
  • v3.8.0(Sep 6, 2021)

  • v3.7.2(Jul 30, 2021)

    Bug Fixes

    • bugfix: fixed m3u issues @xnetcat (#1357)
    • bugfix: fixed ytdl error reporting @xnetcat (#1360)
    • bugfix: remove duplicate songs from songs_list @xnetcat (#1356)
    Source code(tar.gz)
    Source code(zip)
  • v3.7.1(Jul 29, 2021)

  • v3.7.0(Jul 28, 2021)

    Changes

    • Publish v3.7.0 @Silverarmor (#1345)
    • Bring new v4 issue templates to v3 repository @Silverarmor (#1347)
    • added ability to override youtube url @xnetcat (#1338)
    • Handle YouTube results without links @xnetcat (#1340)

    Bug Fixes

    • restructured project; various bugfixes and improvements @xnetcat (#1339)

    Source code(tar.gz)
    Source code(zip)
  • v3.6.3(Jun 26, 2021)

    Changes

    • Close feature requests @Silverarmor (#1321)

    Bug Fixes

    • Fixed some bugs @xnetcat (#1326)
    • update packages list before installing ffmpeg @xnetcat (#1327)
    Source code(tar.gz)
    Source code(zip)
  • v3.6.2(Jun 22, 2021)

    Changes

    • Update test_download_single_song.yaml @xnetcat (#1312)
    • search for song using isrc @xnetcat (#1299)

    Bug Fixes

    • Shorter filenames when path is too long @AZMCode (#1233)
    • Song gathering improvements @xnetcat (#1315)
    • regenerate cassettes @xnetcat (#1310)
    • Quality of life improvements @xnetcat (#1303)
    Source code(tar.gz)
    Source code(zip)
  • v3.6.1(May 27, 2021)

  • v3.6.0(May 25, 2021)

    Changes

    • docs update @xnetcat (#1293)
    • More output formats @xnetcat (#1244)
    • Skip already downloaded songs before doing youtube search @xnetcat (#1287)
    • Saved Songs Download and User Authentication @AZMCode (#1240)
    • Remove FFmpeg normalization causing "quiet" songs. @phcreery (#1276)

    Bug Fixes

    • Artist songs fixes @xnetcat (#1284)
    • Song matching improvements @xnetcat (#1279)
    • Fix security risk @xnetcat (#1285)
    • Use ffmpeg_path to check for version @aiden2480 (#1289)
    • regenerate cassettes @xnetcat (#1290)
    • Bump minimal required python version to 3.6.1 @xnetcat (#1278)
    • ignore .cache and other hidden files @xnetcat (#1274)
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2(Apr 23, 2021)

    Changes

    • use flat-square style for py versions badge @xnetcat (#1264)
    • Improved ffmpeg installation for ci @xnetcat (#1263)
    • Readme and documentation improvements @xnetcat (#1257)
    • Update pull request template @xnetcat (#1262)
    • Song matching imprvovements @xnetcat (#1250)
    • Remove dev utils @xnetcat (#1261)
    • subprocess: don't use shell @dotlambda (#1254)
    • Hide KeyboardInterrupt error when process is terminated. @bee395 (#1142)
    • ffmpeg executable path @xnetcat (#1252)

    Bug Fixes

    • fixed version detection on linux @xnetcat (#1253)
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1(Apr 8, 2021)

    Changes

    • Fix ffmpeg @Silverarmor (#1245)
    • check errors from ffmpeg sub process @xnetcat (#1224)
    • fixed ffmpeg installation for tests @xnetcat (#1235)
    • Update Spotify dev app Client ID & secret. @Silverarmor
    Source code(tar.gz)
    Source code(zip)
  • v3.5.0(Mar 26, 2021)

Owner
null
This Program helps you download songs from the Spotify track's link you give in.

Spotify-Downloader-GUI This Program helps you download songs from the Spotify track's link you give in. It uses yt-dlp to download songs from Youtube.

Harish 12 Jun 14, 2022
YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Created using Python, PyTube and PySimpleGUI.

YouTube Downloader YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Disclaimer It's

Simeon Tsvetanov 3 Dec 14, 2022
Download any video from YouTube playlists

youtube-dl Download any videos from YouTube playlists. Requirements Python 3 BeautifulSoup4 PyQt PyQtWebEngine pytube pyyoutube python-decouple Usage

Antonio Fortin 1 Oct 26, 2021
Let's you download entire YT-playlists.

Youtube MP3 Playlist Downloader Let's you download entire youtube playlists as mp3 files. This application is basically a script that makes it easier

null 11 Dec 18, 2022
Music, Album and Playlist downloader for JioSaavn

jiosaavn-dl Music, Album and Playlist downloader for JioSaavn Features Downloads tracks, albums and playlists in maximum available quality (320kbps AA

bunny 19 Dec 12, 2022
⚙️ A CLI tool that can download songs from youtube.

⚙️ Music Downloader Music Downloader is a tool that can download songs from Youtube. Installation Base requirements: Python 3.7+ If you have Python 3.

matjs 4 Nov 3, 2021
🔥 A Bot To Telegram For Download High Qulity Videos & Songs From Youtube

?? A Bot To Telegram For Download High Qulity Videos & Songs From Youtube ?? Fast And Free Bot No Need To Pay ✅ By SL-Alpha-X-Team ⚡

Official Alpha-X-Team Account 7 Aug 31, 2022
VD Song Bot - A telegram bot that can download songs

VD Song Bot A telegram bot that can download songs Reach me on Telegram @MusicVNDbot Deploy to Heroku The easiest way to deploy this Song Bot Mandator

Venuja Thilakarathna 2 Feb 19, 2022
A bot to download songs from YouTube to telegram.

Song-Downloader-Bot A BOT TO DOWNLOAD SONGS FROM YOUTUBE. Mandatory variables API_ID - Get It From my.telegram.org API_HASH - Get It From my.telegram.

Ashik Muhammed 38 Dec 11, 2022
This simple Python script allows you to download songs on Telegram🌸❤️😁

SongsDownloaderTgBot ?? YouTube Song Downloader Bot For Telegram ?? 3X Fast Telethon Based Bot ⚜ Open Source Bot ????‍?? Demo : ?????????? - ?????????

Sehath Perera 23 Dec 3, 2022
ASF Sentinel-1 Metadata Download tool

ASF Sentinel-1 Metadata Download tool Copyright: 2021-2022 Antonio Valentino Small Python tool (asfsmd) that allows to download XML files containing S

Antonio Valentino 9 Dec 4, 2022
Youtube Downloader by PyTube é uma ferramenta simples com interface gráfica e escrito em python para baixar vídeos e playlists do youtube...

YouTube Downloader by PyTube O que é o YouTube Downloader by PyTube? YouTube Downloader by PyTube é um software simples para baixar vídeos no YouTube

Elizeu Barbosa Abreu 5 Jul 30, 2022
Python script for downloading audio from YouTube songs/videos.

Python script for downloading audio from YouTube songs/videos. All you have to do is specify the path to your folder and then type song's/video's name and the sound will be downloaded into your folder.

Mateusz Polis 0 Oct 5, 2022
Fetch papers and metadata.

Fetch PubMed Central for open-access papers as well as Sci-Hub

null 4 Oct 31, 2022
Spotify Playlist Downloader With Python

Spotify Playlist Downloader This will let you download Spotify playlists for free without Premium. It gets all the songs from the API and downloads th

Yasho 16 Sep 28, 2022
Tool to get Canvas cover videos from Spotify tracks.

Spotify Canvas Downloader Tool to get Canvas cover videos from Spotify tracks. ✨ Try it out Building Clone the repository git clone https://github.com

Gabriel 35 Dec 28, 2022
Youtube playlist downloader with full metadata support

ytrake GUI tool to embed metadata for albums on Youtube with youtube-dl. Requires youtube-dl v2021.06.06. Post-processing Album metadata: Usage ytrake

null 28 Jul 12, 2022
Download all your URI Online Judge source codes and upload to GitHub with simple steps.

URI-Code-Downloader Download all your URI Online Judge source codes and upload to GitHub with simple steps. Prerequisites Python 3.x Installing Downlo

Luan Simões 9 Mar 23, 2022
📼Command line tool based on youtube-dl to easily download selected channels from your subscriptions.

youtube-cdl Command line tool based on youtube-dl to easily download selected channels from your subscriptions. This tool is very handy if you want to

Anatoly 64 Dec 25, 2022