Skip to content

har-nick/BandKit

Repository files navigation

BandKit is a Kotlin Multiplatform API wrapper around basic Bandcamp functions to help you create your own 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)

Capabilities
------------
BandKit is currently capable of:
    - Fetching user-related data, including profile information, followers, and following
    - Fetching library data, and exposing stream URLs in MP3-V0 format 
    - Listing download links for albums in all available codecs

Upcoming features include:
    - Getting artist data, such as discography and location
    - Bandcamp Radio support
    - Recommendations based on genre and location
    - Proper pagination support where applicable
    - Optional local/persistant caching of aggregate data

Downloading
-----------
Maven Central support is upcoming once the library is more complete.
For now, please clone this repository and build manually.

Support for KMP libraries is unavailable in JitPack, so support isn't planned for now:
    jitpack/jitpack.io#3853

Usage
------
For detailed usage instructions, see this repository's wiki:
    https://github.com/har-nick/BandKit/wiki/Usage

For further pointers, search for comments with "NOTE".

Documentation
-------------
Dokka integration is planned and upcoming.

Contribution
------------
This repository requires much more information before I can consider it stable.

To contribute type-data, search for values typed as `UnknownType`. These are deserialized as strings for now.
To contribute contextual information, search for comments with "MORE INFO NEEDED".

I am also considering adding further "helper" functions, which would mean implementing concrete models of data.
This is unplanned, pending thoughts from other contributors, along with better type specification for endpoint data.

About

A Kotlin Multiplatform library to interface with Bandcamp's API

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages