{"id":16628972,"url":"https://github.com/bobbyesp/spotdl-android","last_synced_at":"2025-05-12T04:30:31.334Z","repository":{"id":65927594,"uuid":"580572810","full_name":"BobbyESP/spotdl-android","owner":"BobbyESP","description":"A SpotDL Android wrapper library built with Kotlin. (Spotify songs downloader for Android!)","archived":false,"fork":false,"pushed_at":"2025-02-16T18:51:03.000Z","size":628947,"stargazers_count":56,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T23:51:11.294Z","etag":null,"topics":["android","android-library","kotlin","spotify","wrapper-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BobbyESP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-20T22:26:58.000Z","updated_at":"2025-01-19T18:11:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"a5d390aa-de60-4d93-9f50-bcb7539cca23","html_url":"https://github.com/BobbyESP/spotdl-android","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobbyESP%2Fspotdl-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobbyESP%2Fspotdl-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobbyESP%2Fspotdl-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobbyESP%2Fspotdl-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BobbyESP","download_url":"https://codeload.github.com/BobbyESP/spotdl-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253675028,"owners_count":21945884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","kotlin","spotify","wrapper-library"],"created_at":"2024-10-12T04:38:29.260Z","updated_at":"2025-05-12T04:30:26.317Z","avatar_url":"https://github.com/BobbyESP.png","language":"Kotlin","readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eSpotDL Android\u003c/h1\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ch4\u003eA SpotDL (python library) Android wrapper built with Kotlin\u003c/h4\u003e\n\u003c/div\u003e\n\n## ⬇️ DOWNLOAD SAMPLE APP\nDownload the sample app from the [releases](https://github.com/BobbyESP/spotdl-android/releases/latest) page.\n\nNote that this app is just an example of the usage of this library. Many people asked me for new features, but I'm making a brand new app that will be fully customizable and with the ability to use custom commands along other things. This app is Spowlo. Currently it is only a Spotify mods downloader, but I'm doing a remake in a secondary branch in the same repo called \"remake\", where I'll be coding the new app that will have as principal functionality download songs (and also the mod downloader inside the app!). I'll keep you updated! \n\n## 📣 DOCS IN PROGRESS!!\n\n## 🎉 ANNOUNCEMENT: FIRST RELEASE\nThe library has came out, go to the releases page and see!\n\n[![](https://jitpack.io/v/BobbyESP/spotdl-android.svg)](https://jitpack.io/#BobbyESP/spotdl-android)\n\n\u003cdiv align=\"center\"\u003e \n\u003ch2\u003e🔨 HOW IT WORKS\u003c/h2\u003e\n\u003c/div\u003e\n\n## Installation\n\n**In Gradle:**\n- **Step 1:** Add the Jitpack repository to your build.gradle file at the project level.\n```gradle\nallprojects {\n    repositories {\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n- **Step 2:** Add the two library dependencies to your build.gradle file at app/module level.\n```gradle\ndependencies {\n  implementation \"com.github.BobbyESP.spotdl-android:spotdl-android-library:$spotdllib_version\"  \n  implementation \"com.github.BobbyESP.spotdl-android:spotdl-android-ffmpeg:$spotdllib_version\"\n}\n```\n\u003e**Note**\nYou can add an `extra` property in Gradle for more organization/readability. In this example, as you can see, the property for putting the version of the library in the dependency declaration is called `spotdllib_version` and it should look like this:\n```gradle\n allprojects{\n    extras{\n      spotdllib_version = '0.1.0'\n    }\n  }\n```\nJitpack sometimes works quite bad, so if the library downloading fails, please, change the version value to `-SNAPSHOT`\n\n**Things that are mandatory:**\n\n- You need to put the property `android:extractNativeLibs=\"true\"` in your app's AndroidManifest.xml because the spotdl binary is already included in the library and Android can't open it without this permission.\n\n## Usage\n\n\u003e**Note**\nPython 3.8 is already bundled in the library\n\n - **Step 1:**\n The first thing you have to do is to initialize the library. It's highly recommended to do it in the `onCreate` function in your MainActivity or Application class.\n \n ```kotlin\n try {\n  SpotDL.getInstance().init(this@App) //Replace @App by the class you're using to initiate the lib.\n } catch (e: Excpetion) {\n  Log.e(\"SpotDLExample\", \"An error ocurreed while trying to initiate the library: $e\")\n }\n ```\n \n \n## FFMpeg\n\nThe library won't work without FFmpeg, so for using it, you have to add the second library that was told at the very top of the README\n\n- You have to add to your dependecies declaration the next library:\n```gradle\ndependencies {\n  implementation \"com.github.BobbyESP.spotdl-android:spotdl-android-ffmpeg:$spotdllib_version\"\n}\n```\n\nNow, you have to add this code to the last try-catch example:\n```kotlin\nFFMpeg.getInstance.init(this@App) //Same as before\n```\n\nGetting a final try-catch like this:\n ```kotlin\n try {\n  SpotDL.getInstance().init(this@App) //Replace @App by the class you're using to initiate the lib.\n  FFMpeg.getInstance().init(this@App)\n } catch (e: Excpetion) {\n  Log.e(\"SpotDLExample\", \"An error ocurreed while trying to initiate the library: $e\")\n }\n ```\n\n## 👷 CREDITS\n- [SpotDL](https://github.com/spotDL) for it's amazing python library for downloading any song/album from Spotify!\n\n- [xnetcat](https://github.com/xnetcat) for helping me understand some parts/commands of Linux (XD), fix some bugs of this wrapper and for giving us all the files and binaries needed for working!\n\n- [JunkFood02](https://github.com/Junkfood02) for helping me fix some bugs and explain me some code and functionality of the youtubedl-android library (in which this library is a little based on) and explaining me the storage framework of Android.\n\n- [youtubedl-android](https://github.com/yausername/youtubedl-android) for some parts of the code of the library aswell as the inspiration for making this library (I really wanted to learn how to do one!)\n\n## ⚖️ LICENSE\nThis project is under the MIT License, the same as SpotDL uses.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobbyesp%2Fspotdl-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbobbyesp%2Fspotdl-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobbyesp%2Fspotdl-android/lists"}