/spotify_downloader

App with which you can download tracks from Spotify using YouTube

Primary LanguageDartMIT LicenseMIT

Spotify Downloader

App that allows you to download your favorite playlists at the touch of just one button!

Screenshots

About App

  • πŸ“± 🍎 Supported platforms: Android, IOS
  • πŸ‡ΊπŸ‡Έ πŸ‡·πŸ‡Ί Languages: English, Russian
  • πŸŽ₯ Download audio from YouTube using SpotifyAPI

Features

  • πŸ“₯ Download the entire playlist with one click
  • ❀️ Download favorite tracks
  • πŸ”„ Change the download source if you didn't like the automatic choice
  • πŸ”” Track downloads in notifications or on the main page
  • πŸ’€ Background download (Android only)

How to download

Android

You can download this apk if you don't know what kind of architecture you have.

If you know what architecture you have, then download one of the apk listed below.

IOS

You can download ipa there.

How to use

After you have downloaded the app, you must grant it the permissions it will ask for.
Then you can use the app. Just paste the link to the playlist and click the search button.

If you want to download your favorite tracks, and also download playlists "only for you", you must create Spotify Service App

How create Spotify Service App and use it

  1. Follow this link and login - https://developer.spotify.com/
  2. Follow this link and create your own app - https://developer.spotify.com/dashboard/create
    • App name - whatever you want
    • App description - whatever you want
    • Website - unessentially
    • Redirect URI - com.cdev.spotifydownloader://callback
  3. Go to the application settings and copy the clientId and clientSecret
  4. Open the settings in Spotify Downloader and paste the clientId and clientSecret into the fields specified for them (first delete the default values)
  5. Click on the log in button

After logging in, you can download your favorite tracks, as well as playlists "only for you"

Additional information

  • ⭐ I would appreciate it if you star this repository!

For developers

  1. Developed on Flutter
  2. When developing the application, I used a "Clean Architecture". I don't think this application is an ideal representative of this approach. But if you want, you can use it as an example project.

Version 2.0

If you're interested in contributing to this project, there are some key tasks I'd like to get done:

  • Implement logging (probably using talker)
  • Implement caching for the most recently loaded pages
  • Remake the system for getting tracks from SpotifyAPI (make it so that the collection is fetched in parts, prioritizing loading parts that are visible)
  • Implement various sources of tracks/audio
  • Implement tracks mp3s creation time ordering (for ordered view in mp3 players (like in Spotify)). For example first track in playlist created at 00:01, second track in playlist created at 00:02
  • Improve perfomance in big playlists, when downloading all
  • Use drift instead of sqflite

^_^