-
Notifications
You must be signed in to change notification settings - Fork 1
A Kotlin Multiplatform library to interface with Bandcamp's API
License
har-nick/BandKit
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Description
-----------
BandKit is a Kotlin Multiplatform library that models individual API requests with type-safe(ish) data.
Since Bandcamp has no public-facing API (anymore), BandKit was created out of necessity to support development of third-party projects.
Platforms
---------
BandKit is written in pure Kotlin and so it should support any platform supported by JetBrains.
This includes, but is not limited to:
- JVM
- Android
- Native (Desktop)
> Windows (via MinGW)
> MacOS
> Linux
- Native (Mobile)
> Android NDK
> iOS / tvOS / watchOS
- Web
> npm
> WASM
Capabilities
------------
BandKit is currently capable of:
- Fetching user-related data, including profile information, and followed/following accounts
- Fetching library data, and exposing stream URLs (MP3 128kb/s)
- Listing download links for purchased albums in all available codecs
- Searching functionality, with filters for Albums, Bands, and Tracks
Upcoming features include:
- Getting artist data, such as discography and location
Potential upcoming features include:
- Bandcamp Radio support
- Pagination handling
- Optional local/persistant caching of aggregated data
- Recommendations based on genre and location
Downloading
-----------
Maven Central support is upcoming once the library is more complete.
For now, please clone this repository and build manually.
Building KMP libraries via JitPack isn't supported, so publishing there is unplanned for now:
jitpack/jitpack.io#3853
Usage
------
For detailed usage instructions, see this repository's wiki:
https://github.com/har-nick/BandKit/wiki
For further pointers, search for comments with "NOTE".
Documentation
-------------
BandKit uses Dokka for documentation. Documentation itself is a work-in-progress.
Contribution
------------
This repository requires much more information before I can consider it stable.
To contribute type-data, search for values typed as `JsonElement`. These are deserialized as strings for now.
To contribute contextual information, search for comments with "MORE INFO NEEDED".
About
A Kotlin Multiplatform library to interface with Bandcamp's API
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published