SpotiFlyer/README.md

130 lines
8.4 KiB
Markdown

![Web Cover](art/cover-web.jpg)
![Android Cover](art/cover-android.jpg)
![Desktop Cover](art/cover-desktop.jpg)
<a href="https://github.com/Shabinder/SpotiFlyer"><img src="https://github.com/Shabinder/SpotiFlyer/blob/Compose/art/SpotiFlyer.svg" align="left" height="80" width="80" ></a>
# SpotiFlyer
- **Kotlin Multiplatform** Music Downloader ,supports **Spotify, Youtube, Gaana, Jio-Saavn and SoundCloud**.
Supports- Playlist, Albums, Artists(currently only on spotify), Tracks. _(If You know Any Source for Episodes/Podcasts create an Issue sharing It.)_
**Currently running on:**
- [Android (Jetpack Compose)](https://github.com/Shabinder/SpotiFlyer#-install)
- [Desktop (Compose for Desktop) <sup>β</sup>](https://github.com/Shabinder/SpotiFlyer#-install)
- [Web (Kotlin/JS + React Wrapper) <sup>β</sup>](https://spotiflyer.ml/web/)
- [_(WIP)_ IOS SOON (SWIFTUI)](https://github.com/Shabinder/spotiflyer-ios)
<!--[![Build Status](https://github.com/Shabinder/SpotiFlyer/blob/master/app/build_passing.svg)](https://github.com/Shabinder/SpotiFlyer/releases)
![API](https://img.shields.io/badge/API-26%2B-brightgreen.svg)
</br>-->
[![GitHub stars](https://img.shields.io/github/stars/Shabinder/SpotiFlyer?style=social)](https://github.com/Shabinder/SpotiFlyer/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/Shabinder/SpotiFlyer?style=social)](https://github.com/Shabinder/SpotiFlyer/network/members)
[![GitHub watchers](https://img.shields.io/github/watchers/Shabinder/SpotiFlyer?style=social)](https://github.com/Shabinder/SpotiFlyer/watchers)
***Encourage this repo by giving it a Star⭐ .***
SpotiFlyer is an **App**(Written in **Kotlin**), which **aims** to work as:
- **Downloads**: Albums, Artists(currently only on spotify), 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).
### Supported Platforms:
- Spotify
- Gaana
- Youtube
- Youtube Music
- Jio-Saavn
- SoundCloud
- _(more coming soon)_
<!--START_SECTION:DCI
<a href="https://github.com/Shabinder/SpotiFlyer/releases/latest"><img src="https://hcti.io/v1/image/53d51dc7-91c7-4b9d-b923-2ea32e6b17ad" height="125" width="280" alt="Total Downloads"></a>
<!--END_SECTION:DCI-->
## 💻 Install
| Platform | Download | Status |
|----------|----------|--------|
| Android |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=7885FF&label=Android-Apk&logo=android&style=for-the-badge)](https://github.com/Shabinder/SpotiFlyer/releases/download/v3.6.1/SpotiFlyer-3.6.1.apk)| ✅ Stable |
| Windows |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=00A8E8&label=Windows-msi&logo=windows&style=for-the-badge)](https://github.com/Shabinder/SpotiFlyer/releases/download/v3.6.1/SpotiFlyer-3.6.1.msi)| ✅ Stable |
| Windows-JAR |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=00719c&label=Windows-jar&logo=windows&style=for-the-badge)](https://github.com/Shabinder/SpotiFlyer/releases/download/v3.6.1/SpotiFlyer-windows-x64-3.6.1.jar)| ✅ Stable |
| MacOS-JAR |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=5F85CE&label=MacOS-jar&logo=apple&style=for-the-badge)](https://github.com/Shabinder/SpotiFlyer/releases/download/v3.6.1/SpotiFlyer-macos-x64-3.6.1.jar) | ✅ Stable |
| Linux-DEB |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=D0074E&label=Linux-deb&logo=debian&style=for-the-badge)](https://github.com/Shabinder/SpotiFlyer/releases/download/v3.6.1/spotiflyer_3.6.1-1_amd64.deb)| ✅ Stable |
| Linux-JAR |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=EBA201&label=Linux-jar&logo=linux&style=for-the-badge)](https://github.com/Shabinder/SpotiFlyer/releases/download/v3.6.1/SpotiFlyer-linux-x64-3.6.1.jar)| ✅ Stable |
| Web |[![Download Button](https://img.shields.io/github/v/release/Shabinder/SpotiFlyer?color=FF7139&label=SpotiFlyer&logo=firefox&style=for-the-badge)](https://shabinder.github.io/SpotiFlyer/) | ⚠️ Beta |
- To run the `jar` version, you need JAVA installed.
- MacOs DMG is not notarized and signed using a certificate , so Use jar in mac for now.
<!-- [![Latest Download](https://img.shields.io/github/downloads/Shabinder/SpotiFlyer/total?style=for-the-badge&color=17B2E7)](https://github.com/Shabinder/SpotiFlyer/releases/latest) -->
<a href="https://f-droid.org/packages/com.shabinder.spotiflyer">
<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="110">
</a>
### 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](https://github.com/Shabinder/SpotiFlyer/blob/main/CONTRIBUTING.md)
- For **Building for other tests**, you can use github actions with the workflow files, or manually do them with the commands and inferred setups in .github/workflows/ and gradlew.bat/.bash (windows/linux)
**Please Donate to support me and my work!**
</br>
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/R6R84CS1D)
</br>
<a href="https://opencollective.com/spotiflyer/donate">
<img src="https://opencollective.com/spotiflyer/tiers/donate.svg?avatarHeight=52">
</a>
[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://paypal.me/shabinder)
### Want to discuss? 💬
Have any questions, doubts or want to present your opinions, views? You're always welcome. You can [start discussions](https://github.com/Shabinder/SpotiFlyer/discussions).
### Todos 📄
- Write **Tests**.
- Support for Podcasts/Episodes and Shows.
- Build a Media Player into this app. [#113](https://github.com/Shabinder/SpotiFlyer/issues/113)
### Note
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](https://music.youtube.com).
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.
### Permissions Info:
- **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**.
License
![GPL-License](https://img.shields.io/github/license/Shabinder/SpotiFlyer?style=flat-square)
----
**GPL-3.0 License**
This 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!***
Credits
----
- Some Logos are Based on Logos by [Freepik](https://www.freepik.com/).
Disclaimer
----
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.