Kotlin SDK for Jellyfin
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
renovate[bot] a6e5b55e01 Update dependency io.swagger.parser.v3:swagger-parser to v2.1.3 12 hours ago
.github/workflows Update actions/setup-java digest to a18c333 16 hours ago
buildSrc Move dependency repository definition to build.gradle.kts (#385) 5 months ago
docs Fix all markdown linter issues 3 weeks ago
gradle Update dependency io.swagger.parser.v3:swagger-parser to v2.1.3 12 hours ago
jellyfin-api Update generated sources to 10.8.5 3 days ago
jellyfin-core Fallback to manufacturer + model when device name is null 1 week ago
jellyfin-model Update generated sources to 10.8.5 3 days ago
openapi-generator Implement DescriptionHook for more advanced description customization 6 days ago
samples Improve RecommendedServerDiscovery speed significantly 3 weeks ago
testutils Migrate unit tests to Kotest 5 months ago
.editorconfig Use Vitepress to build markdown documentation 1 month ago
.gitattributes Add .api files 2 years ago
.gitignore Build and deploy Vitepress documentation to GitHub pages 1 month ago
.markdownlint.yaml Add markdown linting to CI 3 weeks ago
CODEOWNERS Add CODEOWNERS file 2 years ago
LICENSE Update license to LGPL 3.0 2 years ago
README.md Fix all markdown linter issues 3 weeks ago
android-lint.xml Miscellaneous build script changes (#289) 1 year ago
build.gradle.kts Migrate unit tests to Kotest 5 months ago
detekt.yaml Disable wildcard imports (#344) 9 months ago
gradle.properties Use Java 17 as default and move to Adoptium distribution (#321) 12 months ago
gradlew Update Gradle Wrapper from 7.4.2 to 7.5. 2 months ago
gradlew.bat Update Gradle Wrapper from 7.4.2 to 7.5. 2 months ago
openapi.json Update generated sources to 10.8.5 3 days ago
package-lock.json Update dependency vitepress to v1.0.0-alpha.17 16 hours ago
package.json Update dependency vitepress to v1.0.0-alpha.17 16 hours ago
renovate.json Configure Renovate (#384) 5 months ago
settings.gradle.kts Update Gradle Wrapper from 7.3.3 to 7.4 (#355) 8 months ago

README.md

Jellyfin Kotlin SDK

Part of the Jellyfin Project


Logo Banner

LGPL 3.0 license Current Release Maven Central Release
Donate Chat on Matrix Join our Subreddit Release RSS Feed Master Commits RSS Feed


The Kotlin SDK for Jellyfin implements the Jellyfin API to easily access servers. It is currently available for the JVM and Android. Developer documentation is available at kotlin-sdk.jellyfin.org.

Contributing

We welcome contributions to the SDK. Open an issue or ask in our official chats if you plan to make bigger changes.

To validate binary compatibility we use the Binary compatibility validator tool from the Kotlin team. When creating pull requests the api files need to be updated. Use the apiDump Gradle task to generate the api files. Add the changes from this command to a separate commit to make the review process easier.

Testing

The SDK includes two example projects, the kotlin-cli and java-cli, to test various larger functions like server discovery. Besides that we use unit tests to test smaller components, these can be executed with the allTests Gradle task. We recommend adding new tests for changes to the code.

Testing in app

It is also possible to test a new version of the SDK in your own app. Use the publishToMavenLocal Gradle task to publish the SDK to your local system, afterwards you can add mavenLocal() as repository and use the latest-SNAPSHOT version for the SDK. This process is simplified in our official apps by adding an option to the gradle.properties file.