Skip to content

Repository files navigation

JellyCine

JellyCine

A Jetpack Compose based client for Jellyfin and Emby — designed for phone, TV, and beyond.

Google Play GitHub Releases

Buy Me A Coffee Patreon


Features

Playback

  • MPV-based player with HDR10/HDR10+/Dolby Vision support and HDR format badges
  • Audio passthrough (TrueHD, DTS-HD, Atmos) when supported by device/output
  • Spatial audio passthrough on compatible devices
  • Media3 ExoPlayer fallback when MPV cannot render
  • Jellyfin FFmpeg extension integration for broad codec coverage
  • In-player quality selection, audio transcoding controls, and configurable player cache
  • Gesture controls (seek, volume, brightness), lock mode, and start-maximized preference
  • Skip Intro button when IntroDB/TheIntroDB markers are available
  • Subtitle styling controls with improved track handling
  • Google Cast with inline remote playback controls

Discovery

  • In-app Trailers with autoplay in feature carousel (capped to 720p on phones)
  • Trailers & Extras section on detail screens
  • For You personalized recommendations with watched feed
  • Awards category powered by Wikidata
  • Immersive search with suggestions, live results, and categorized output
  • Favorites tab with compact header and view-all navigation

Seerr Integration

  • Discovery, search, recommendations, and detail pages
  • Request badges, request limits, and title requests
  • Trailer support for Seerr detail items

Downloads

  • Offline downloads with queue, pause/resume/cancel, and persistent state recovery
  • Transcoded download support with quality picker
  • Audio track selection in download quality picker
  • Season and series download with storage estimation
  • Offline-aware navigation — falls back to downloaded content when network is unavailable

TV

  • Redesigned TV UI with D-pad navigation and remote control support
  • Cinematic full-bleed detail screen overlay
  • Immersive backdrop for suggestions
  • Keyboard overlay search with carousel results
  • Feature hero card with card expand and backdrop crossfade

Multi-Server & Connections

  • Jellyfin and Emby support with automatic endpoint resolution
  • Merge-version support with local version selection (no server-side changes required)
  • Discord Rich Presence via official Social SDK with connection management
  • Admin Panel with live server info, sessions, and activity log

Platforms

Platform Status
Android Phone Stable
Android TV Stable
iOS In Development

Screenshots

Home Details Search
View All Settings Search Results

Tech Stack

Layer Technology
Language Kotlin 2.3, Coroutines, Flow
UI Jetpack Compose + Material 3
DI Hilt + KSP
Networking Ktor Client + OkHttp 5
Images Coil 3
Player MPV (primary), Media3 ExoPlayer (fallback)
Multiplatform Kotlin Multiplatform (Android + iOS)

Project Structure

phone/   — Phone app module (Compose UI, navigation, player, settings)
tv/      — TV app module (leanback/DPAD, sidebar rail, TV-specific flows)
data/    — APIs, repositories, models; multiplatform networking
core/    — Shared player, preferences, and utilities
shared/  — Shared UI components and image infrastructure

Getting Started

Prerequisites

  • Android Studio (latest stable)
  • JDK 17
  • Android SDK API 36

Build

# Phone
./gradlew :phone:assembleDebug

# TV
./gradlew :tv:assembleDebug

APK naming: jellycine-{debug|release}-<version>.apk


Translating

Translation status

Help translate JellyCine into your language on Weblate.


Contributing

Issues and pull requests are welcome. For large feature work, open an issue first to align on scope.

For community discussions and support, see Discussions.


Privacy

See PRIVACY for the current privacy policy.

License

This project is licensed under the GNU General Public License v3.0.

About

A Jellyfin + Emby Client App with modern UI

Topics

Resources

Stars

100 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages