- Kotlin Multiplatform Music Downloader ,supports Spotify, Youtube, Gaana, Jio-Saavn and SoundCloud.
Supports- Playlist, Albums, Tracks. (If You know Any Source for Episodes/Podcasts create an Issue sharing It.)
Currently running on:
- Android (Jetpack Compose)
- Desktop (Compose for Desktop) β
- Web (Kotlin/JS + React Wrapper) β
- (WIP) IOS SOON (SWIFTUI)
Encourage this repo by giving it a Star⭐ .
SpotiFlyer is an App(Written in Kotlin), which aims to work as:
- Downloads: Albums, Tracks and Playlists,etc
- Save your Data ,by not Streaming your Fav Songs Online again & again(Just Download Them!)
- No ADS!
- Works straight out of the box and does not require you to generate or mess with your API keys (already included).
- Youtube Music
- (more coming soon)
- To run the
jarversion, you need JAVA installed.
- MacOs DMG is not notarized and signed using a certificate , so Use jar in mac for now.
Want to Contribute 🙋♂️?
Want to contribute? Great!All contributions are welcome, from code to documentation to graphics to design suggestions to bug reports. Please use GitHub to its fullest– contribute Pull Requests, contribute tutorials or other wiki content– whatever you have to offer, we can use it!
- For Translations , read Contributing.md
Want to discuss? 💬
Have any questions, doubts or want to present your opinions, views? You’re always welcome. You can start discussions.
- Write Tests.
- Support for Podcasts/Episodes and Shows.
- Build a Media Player into this app. #113
The availability of YouTube Music / JioSaavn in your country is important for this app to work. The reason behind this is, we use YouTube Music / JioSaavn to filter out our search results and get the desired song downloaded from Youtube Music OR other providers we may use(like Jio Saavn).To check if YouTube Music is available in your country, visit YouTube Music.
I am hosting a server for WEB APP on my own personal device , so expect some downtimes, If you have a server available and would like to share , open an issue or ping me wherever you can get a hold of me.
- NETWORK– (INTERNET, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE): to access the online streaming services, and Confirm Network Connectivity.
- STORAGE– READ_STORAGE_PERMISSION, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, MANAGE_EXTERNAL_STORAGE): to save Downloaded Media Files.
- QUERY_ALL_PACKAGES– in order to check if Youtube Music, Spotify, Gaana, JioSaavn, etc apps are installed and if they are, user can directly open them.
- REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: User Allows App to Run in Background at runtime in Permission Dialog.
- Wake Lock: Don’t let Wifi/Internet Sleep in screen off / dozing state when Songs are being downloaded.
- Foreground Service: Service responsible to download and save songs to storage even after app is exited/background.
- NOTE: Analytics and Crashlytics are OPT-IN (Disabled by Default) and are Self-Hosted.
GPL-3.0 LicenseThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Free Software, Hell Yeah!
- Some Logos are Based on Logos by Freepik.
Downloading copyright songs may be illegal in your country. This tool is for educational purposes only and was created only to show how Music Platform’s Apis like Spotify’s API can be exploited to download music. Please support the artists by buying their music.