Skip to content

sureshfizzy/JellyCine

Repository files navigation

JellyCine Logo

JellyCine

Jetpack Compose Android client for Jellyfin and Emby, focuses on a fast, fluid UI and smooth playback.

Buy Me A Coffee Patreon

Google Play

Features

  • Jellyfin and Emby support with automatic endpoint resolution
  • Spatial audio passthrough when supported by the device/output route
  • Compose-first UI with Home, My Media, Search, Favorites, and Settings sections
  • Offline-aware navigation mode that falls back to downloaded content when network is unavailable
  • Immersive search experience with suggestions, live results, and categorized results
  • Offline downloads with queueing, pause/resume/cancel, and persistent state recovery
  • Season and series download actions with storage estimation before enqueueing
  • Media3 ExoPlayer playback with Jellyfin FFmpeg extension integration
  • In-player streaming quality selection, audio transcoding controls, and configurable player cache
  • Subtitle styling controls with improved subtitle and audio track handling
  • Google Cast support with inline remote playback controls
  • Gesture controls in player (seek, volume, brightness), lock mode, and start-maximized preference
  • Skip Intro support: shows a Skip Intro button when IntroDB/TheIntroDB markers are available; configurable in player settings

Screenshots

Home View All Search - immersive
Settings Details Search Screen

For community discussions and support, see Discussions.

Project Structure

  • phone: Phone-specific Android app module (Compose UI, navigation, player, settings)
  • tv: TV-specific Android app module (leanback/DPAD support, sidebar rail, TV-specific UI/flows)
  • data: APIs, repositories, models; multiplatform/shared networking and serialization helpers
  • core: Shared player, preferences, and utility code used by app modules
  • shared: Shared UI components and image infrastructure moved into its own module
  • docs: Screenshots and documentation assets

Tech Stack

  • Kotlin, Coroutines, Flow
  • Jetpack Compose + Material 3 + Navigation Compose
  • Hilt + KSP for DI/code generation
  • Ktor Client + OkHttp 5
  • Coil 3 for image loading
  • Media3 ExoPlayer (exoplayer, ui, session, dash, hls, smoothstreaming, effect)
  • org.jellyfin.media3:media3-ffmpeg-decoder extension

Getting Started

Prerequisites

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

Build and Run

  1. Clone the repository.
  2. Open it in Android Studio.
  3. Let Gradle sync complete.
  4. Select a device/emulator (Android 8.1+).
  5. Run the app module.

CLI build:

./gradlew :phone:assembleDebug

Debug and release APKs are named as:

  • jellycine-debug-<version>.apk
  • jellycine-release-<version>.apk

Privacy

See PRIVACY for the current privacy policy.

Contributing

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

License

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