How sw1ftin/yummyanime-aniyomi works
Purpose and module boundary
This is a single Android/Kotlin Aniyomi-compatible extension for browsing YummyAnime content and resolving playable video links. The deployable module is yummyanime; it integrates with Aniyomi/Animiru’s extension runtime rather than providing its own application UI.
• settings.gradle.kts
• yummyanime/build.gradle.kts
• yummyanime/src/main/AndroidManifest.xml
Primary entry point: source implementation
YummyAnime is the central source adapter. It implements the host extension contract and translates host requests—popular, latest, search, detail, episodes, and video resolution—into YummyAnime/Kodik network operations and host-domain models.
• yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt
Catalog discovery and search flow
The extension obtains popular titles from GET /anime, latest releases from GET /anime/schedule, and search/filter results through GET /anime. Host-side pagination, filter selections, and query parameters are converted into API requests by the source implementation, then API results are mapped into Aniyomi anime listing objects.
• yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt
Title details and episode flow
Opening a title fetches GET /anime/{url}?need_videos=true. The resulting title metadata supplies the detail screen, while YummyAnime’s video/episode data is transformed into the episode list expected by the host. This forms the boundary between YummyAnime’s catalog schema and Aniyomi’s title/episode models.
• yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt
Video-resolution boundary
Episode playback is a separate resolution stage: YummyAnime supplies episode/video references, and the extension extracts stream URLs through Kodik. The final output is a host-compatible list of video alternatives, rather than a direct player implementation.
• yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt
Authentication, preferences, and diagnostics
Requests require a public token in X-Application; an optional private token is sent as Authorization: Yummy <token>. The extension automatically uses a public token after installation but exposes source preferences for overriding credentials. It also provides an in-app debug log and an upload path to temp.sh, avoiding dependency on device logcat.
• yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt
Runtime, packaging, and delivery
The project uses Gradle Kotlin DSL to build an Android extension artifact. Runtime dependencies are primarily the Aniyomi extension API, YummyAnime HTTP API, Kodik video service, and optional temp.sh diagnostic upload. GitHub Actions builds and releases the extension.
• build.gradle.kts
• yummyanime/build.gradle.kts
• .github/workflows/build.yml
• .github/workflows/release.yml
Main entry points: YummyAnime.kt YummyAnime source · yummyanime/build.gradle.kts yummyanime module build · build.gradle.kts Root Gradle build · settings.gradle.kts Gradle settings
Components 16
Extension runtime
Aniyomi-compatible source module and external services.
- Aniyomi / Animiru · Invokes source APIs and consumes host-domain models.
- YummyAnime source · Central adapter for catalog, details, episodes, streams, preferences, and diagnostics.
yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt - YummyAnime catalog API · Provides /anime and /anime/schedule discovery data.
- YummyAnime title API · Provides title metadata and video references via /anime/{url}.
- Kodik · Resolves episode references into playable stream URLs.
- Source preferences · Stores optional private-token override.
yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt - Request authentication · Adds public X-Application and optional Yummy authorization tokens.
yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt - Host anime models · Listing, detail, episode, and video-alternative outputs.
yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt - In-app debug log · Captures diagnostics without device logcat.
yummyanime/src/main/kotlin/eu/kanade/tachiyomi/animeextension/ru/yummyanime/YummyAnime.kt - temp.sh · Receives uploaded debug logs.
Build & delivery
Android extension packaging and release automation.
- Root Gradle build · Defines repository-level build configuration.
build.gradle.kts - Gradle settings · Includes the deployable extension module.
settings.gradle.kts - yummyanime module build · Builds the extension artifact and declares runtime dependencies.
yummyanime/build.gradle.kts - Android manifest · Declares extension package metadata.
yummyanime/src/main/AndroidManifest.xml - Build workflow · Builds the Android extension artifact.
.github/workflows/build.yml - Release workflow · Publishes extension releases.
.github/workflows/release.yml
Connections 19
- Aniyomi / Animiru → YummyAnime source: host requests · Popular, latest, search, detail, episodes, and video resolution.
- YummyAnime source → Request authentication: prepares headers
- Source preferences → Request authentication: private token override
- Request authentication → YummyAnime catalog API: authenticated requests · GET /anime and /anime/schedule.
- Request authentication → YummyAnime title API: authenticated request · GET /anime/{url}?need_videos=true.
- YummyAnime catalog API → YummyAnime source: catalog results
- YummyAnime title API → YummyAnime source: metadata and video refs
- YummyAnime source → Kodik: resolves episode refs
- Kodik → YummyAnime source: stream URLs
- YummyAnime source → Host anime models: maps API data
- Host anime models → Aniyomi / Animiru: host-compatible results
- YummyAnime source → In-app debug log: writes diagnostics
- In-app debug log → temp.sh: uploads on request
- Gradle settings → yummyanime module build: includes module
- Root Gradle build → yummyanime module build: configures build
- Android manifest → yummyanime module build: packages metadata
- yummyanime module build → YummyAnime source: compiles
- Build workflow → yummyanime module build: builds
- Release workflow → yummyanime module build: releases artifact