explaingit

open-ani/animeko

17,714KotlinAudience · generalComplexity · 3/5Setup · moderate

TLDR

An open-source anime-watching app for Android, iOS, Windows, macOS, and Linux that combines episode tracking, multiple video sources including BitTorrent, progress sync via Bangumi, and scrolling comment overlays in one place.

Mindmap

mindmap
  root((repo))
    What it does
      Watch anime
      Track progress
      Sync across devices
    Video sources
      BitTorrent
      Jellyfin and Emby
      Custom sources
    Features
      Danmaku comments
      Offline caching
      Adaptive UI
    Platforms
      Android iOS
      Windows macOS Linux
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Watch anime across all your devices with viewing progress synced automatically via a Bangumi account.

USE CASE 2

Play anime episodes from BitTorrent, Jellyfin, or Emby sources through a single unified interface.

USE CASE 3

Browse community ratings, release schedules, and show metadata from Bangumi while watching episodes.

USE CASE 4

Cache anime episodes for offline viewing on mobile or desktop.

Tech stack

KotlinKotlin MultiplatformCompose MultiplatformExoPlayerVLClibtorrent

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a Bangumi account for progress sync and a configured video source such as a torrent indexer or Jellyfin server.

In plain English

Animeko is an anime-watching app that brings together episode browsing, viewing progress sync, multiple video sources, and bullet-comment overlays (danmaku) into one place. It started as a project called Ani and is still informally called that. The idea is to give anime fans a single home for finding what to watch, tracking which episodes they have seen, and playing them with the social commentary layer popular on Chinese and Japanese video sites. The app connects to Bangumi, an anime-tracking community, for show metadata, community ratings, release timetables, and tag-based search. Viewing progress syncs through the same account, so closing the app on one device and opening it on another picks up where the last episode left off. For the actual videos, Animeko aggregates multiple data sources rather than hosting anything itself: BitTorrent, Jellyfin, Emby, and custom user-defined sources are all supported, and the app picks among them automatically. Bullet comments come from public danmaku services as well as Animeko's own danmaku service, and everything can be cached for offline viewing. The interface adapts to phones, tablets, and large screens. Animeko runs on Android, iOS, Windows, macOS, and Linux. It is built with Kotlin Multiplatform and Compose Multiplatform for the shared user interface. The BitTorrent layer is built on libtorrent and tuned for streaming while still downloading, the video player uses ExoPlayer on Android and VLC on desktop. Someone would reach for Animeko if they want one unified anime client across all their devices instead of juggling separate apps and sources.

Copy-paste prompts

Prompt 1
How do I set up Animeko on Android, connect it to my Bangumi account, and sync my watch history? Walk me through the initial setup.
Prompt 2
I have a Jellyfin server with my anime library. How do I add it as a video source in Animeko so it appears alongside BitTorrent sources?
Prompt 3
I want to contribute a new data source plugin to Animeko. How is the Kotlin Multiplatform codebase structured and where should I start?
Prompt 4
How does Animeko handle streaming from BitTorrent while still downloading? What are the performance trade-offs compared to using Jellyfin?
Open on GitHub → Explain another repo

← open-ani on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.