Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ChrisKruegerDev/trakt-kotlin
📺 Modern powerful Trakt API to track, discover and share your movies & TV shows.
https://github.com/ChrisKruegerDev/trakt-kotlin
android java kotlin kotlin-js kotlin-library kotlin-multiplatform kotlin-native ktor ktor-android ktor-client movies movies-api poster shows tmdb trakt
Last synced: 20 days ago
JSON representation
📺 Modern powerful Trakt API to track, discover and share your movies & TV shows.
- Host: GitHub
- URL: https://github.com/ChrisKruegerDev/trakt-kotlin
- Owner: ChrisKruegerDev
- License: apache-2.0
- Created: 2021-09-25T12:45:50.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-18T19:00:44.000Z (24 days ago)
- Last Synced: 2024-11-18T19:18:11.084Z (24 days ago)
- Topics: android, java, kotlin, kotlin-js, kotlin-library, kotlin-multiplatform, kotlin-native, ktor, ktor-android, ktor-client, movies, movies-api, poster, shows, tmdb, trakt
- Language: Kotlin
- Homepage: https://www.moviebase.app
- Size: 406 KB
- Stars: 45
- Watchers: 0
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-kotlin-multiplatform - trakt-api
- awesome-list - ChrisKruegerDev/trakt-kotlin - 📺 Modern powerful Trakt API to track, discover and share your movies & TV shows. (Kotlin)
README
[Website](https://www.trakt.tv) |
[Support](https://support.trakt.tv/support/home) |
[Documentation](https://trakt.docs.apiary.io/)***Track and discover your TV shows and movies with Trakt.***
[![Maven Central](https://img.shields.io/maven-central/v/app.moviebase/trakt-api?label=Maven%20Central)](https://central.sonatype.com/artifact/app.moviebase/trakt-api/)
![Github Actions](https://github.com/ChrisKruegerDev/trakt-kotlin/actions/workflows/build.yml/badge.svg)
[![Issues](https://img.shields.io/github/issues/ChrisKruegerDev/trakt-kotlin)](https://github.com/ChrisKruegerDev/tmdb-api/issues)
[![Kotlin](https://img.shields.io/badge/kotlin-2.0.21-blue.svg?logo=kotlin)](http://kotlinlang.org)
[![Gradle](https://img.shields.io/badge/Gradle-8-green?style=flat)](https://gradle.org)
[![GitHub License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0)
[![GitHub Account](https://img.shields.io/static/v1?label=GitHub&message=chrisnkrueger&color=C51162)](https://github.com/ChrisKruegerDev)
# Trakt Kotlin
Trakt Kotlin is a **Kotlin Multiplatform** library for tracking your series and movies.
* Written in Kotlin native with ktor from the ground up.
* Support for Android, iOS, desktop, and web applications.
* High customizable HttpClient configurationSample projects:
* [Moviebase](https://play.google.com/store/apps/details?id=com.moviebase)
* [tivi](https://github.com/chrisbanes/tivi)## Setup
The library is available on Maven Central.
### Gradle
Add the Maven Central repository if it is not already there.
```kotlin
repositories {
mavenCentral()
}
```To use the library in a single-platform project, add a dependency.
```kotlin
dependencies {
implementation("app.moviebase:trakt-api:0.7.0")
}
```In Kotlin Multiplatform projects, add the dependency to your commonMain source-set dependencies.
```kotlin
commonMain {
dependencies {
implementation("app.moviebase:trakt-api:0.7.0")
}
}
```## Usage
Most of the library follows the possibilities and naming at the official [Trakt documentation](https://trakt.docs.apiary.io/).### Configuration
Build up your Trakt instance to access the APIs. You can configure the entire HttpClient of ktor.```kotlin
val trakt = Trakt {
traktApiKey = "clientId"expectSuccess = false // if you want to disable exceptions
useCache = true
useTimeout = true
maxRetriesOnException = 3 // retries when network calls throw an exception// add your own client
httpClient(OkHttp) {
engine {}
}httpClient {
// for custom HttpClient configuration
}
}
```### Get information
For getting basic information about a shows or other media content.```kotlin
val trakt = Trakt("clientId")
val traktShow = trakt.shows.getSummary(traktSlug = "vikings")
```### Search
Search for TV shows by a query.```kotlin
val trakt = Trakt("clientId")
val showPageResult = trakt.search.search(
searchType = TraktSearchType.TMDB,
id = "63639",
mediaType = TraktMediaType.SHOW
)
```## Contributing 🤝
Please feel free to [open an issue](https://github.com/ChrisKruegerDev/trakt-kotlin/issues/new/choose) if you have any questions or suggestions. Or participate in the [discussion](https://github.com/ChrisKruegerDev/trakt-kotlin/discussions). If you want to contribute, please read the [contribution guidelines](https://github.com/ChrisKruegerDev/trakt-api/blob/main/CONTRIBUTING.md) for more information.
*This library uses the Trakt but is not endorsed or certified by Trakt.*