Android Client for Jellyfin

Overview

Jellyfin Android

Part of the Jellyfin Project


Logo Banner

GPL 2.0 License Current Release Translation Status
Donate Feature Requests Chat on Matrix Join our Subreddit
Jellyfin on Google Play Jellyfin on Amazon Appstore Jellyfin on F-Droid
Download archive

Jellyfin Mobile is an Android app that connects to Jellyfin instances and integrates with the official web client. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start. Even though the client is only a web wrapper there are still lots of improvements and bug fixes that can be accomplished with Android and Kotlin knowledge.

Most of the translations can be found in the web client since it's the base for the Android client as well. Translations for the app can also be improved very easily from our Weblate instance. Look through the following graphic to see if your native language could use some work!

Detailed Translation Status

This client was rewritten from scratch with a fresh git history in July to August 2020, and replaces the old Cordova-based client, which can still be found in the archives.

Build Process

Dependencies

  • Android SDK

Build

  1. Clone or download this repository

    git clone https://github.com/jellyfin/jellyfin-android.git
    cd jellyfin-android
  2. Open the project in Android Studio and run it from there or build an APK directly through Gradle:

    ./gradlew assembleDebug

Deploy to device/emulator

./gradlew installDebug

You can also replace the "Debug" with "Release" to get an optimized release binary.

Comments
  • V2.0.x Connection Failure

    V2.0.x Connection Failure

    Describe the bug Hi, I have not been able to login to the app after the latest v2.0.0 auto updated from the Play Store. It has been working fine with the cordova version till this upgrade. Now both the local LAN IP and reverse proxy is not working on the v2.0.0. I've confirmed that the WebUI, Tizen, Android TV and iPhone client still works. For WebUI and Android TV I tested on the same device as the v2.0.0. I've tried reinstalling and clearing the cache/data no luck. Previously I remember signing up for the beta and it works but I opted out then reinstalled the cordova version due to subtitles issue in the beta. Think it's been only less than two days v2.0.0 released in the Play Store and I noticed there's no such reported issue so I appreciate if someone could give me some advise on this. Thank you.

    To Reproduce

    1. Launch the app.
    2. Fill up the server details or from choose server.
    3. Log in with a working account.
    4. Kept seeing this "Connection Failure" error screenshot attached.

    Expected behavior App works normally after login.

    Logs No logged activity from Jellyfin Server.

    Screenshots Screenshot_20201007-234509_Jellyfin

    System (please complete the following information):

    • App version: 2.0.0
    • Android version: Android 10
    • Device manufacturer and model: Samsung S9+
    • Jellyfin server version: 10.6.4
    bug 
    opened by Nazar78 86
  • Can't Chromecast video from Pixel 3a running Android 11 (Jellyfin 10.6.4 & 10.7)

    Can't Chromecast video from Pixel 3a running Android 11 (Jellyfin 10.6.4 & 10.7)

    Describe the bug The bug is as particular as the title is - from a Pixel 3a running Android 11, Chromecast video will not work (to a Vizio smart tv). That very same device is able to cast to an audio-only device (Google Home) just fine. Other devices can cast to the smart tv using the Jellyfin app just fine.

    To Reproduce

    1. Launch app on Pixel 3a running Android 11
    2. Press cast button
    3. Choose Google Cast
    4. Select a video target
    5. Loading spinner is displayed, but Jellyfin does not connect on televison.
    6. Eventually the spinner will disappear.

    Logs There are no system logs in the Jellyfin dashboard for the above events, nor any from the Jellyfin container.

    I could not find how to access logs on Android - happy to grab them if they are available somewhere.

    System (please complete the following information):

    • App version: 2.2.3
    • Android version: Android 11 (security update 2021-01-05, google play update 2020-12-01)
    • Device manufacturer and model: Google Pixel 3a
    • Jellyfin server version: 10.6.4 and 10.7 (tested both)
    • The type of video player implementation used: web player AND integrated player (ExoPlayer) (tried both - although I'm guessing player doesn't impact Chromecast)

    Additional context

    • Other sources CAN use Chromecast with the server: the web player in desktop Chrome works, as well as casting from a Nokia 6.1 running Android 10
    • All Jellyfin instances are running in Docker behind an Nginx reverse-proxy. They have a valid SSL certificate from LetsEncrypt
    • The video device is a Vizio television. The Pixel in question is able to cast to it using other apps.
    • I'm not sure if this is particular to Android 11, the Pixel 3a, or both. I don't have any other devices running Android 11 to check.
    bug stale 
    opened by dpraul 39
  • Jellyfin for Android 2.0.0 release plan

    Jellyfin for Android 2.0.0 release plan

    Release plan

    1. Tag release candidate 2
      • Only available via GitHub, should be tested by people that can report issues
      • When any issues arise start work on a new release candidate before proceeding
    2. Create a new (public) beta channel on Google Play
    3. Push the release candidate to the beta channel
      • When any issues arise start work on a new release candidate and push it to the beta channel
    4. Wait at least 1 week to catch issues from late users
    5. Release 2.0.0
      • Tag 2.0.0
      • Promote the beta channel to stable
      • Update app on the Amazon Appstore
    6. Re-apply for F-Droid (our previous request is based on the old Cordova app which does not exist anymore)
    needs discussion 
    opened by nielsvanvelzen 24
  • Error when trying to enter the server in the beta of Jellyfin for Android

    Error when trying to enter the server in the beta of Jellyfin for Android

    Describe the bug When putting the address of the server an error appears saying that I update to a more updated version of my server. But I have version 10.7.5, the last one released. And the exact same thing happens to many users. I hope they can fix it as quickly as possible

    Screenshots photo4945336013492955494

    System (please complete the following information):

    • App version: [2.3.0-beta1]
    • Android version: [Android 10]
    • Device manufacturer and model: [LG k50S]
    • Jellyfin server version: [10.7.5]
    bug 
    opened by JulioNahum 21
  • F-Droid reproducible build failed

    F-Droid reproducible build failed

    Describe the bug

    DOES NOT VERIFY
    ERROR: APK Signature Scheme v2 signer #1: APK integrity check failed. CHUNKED_SHA256 digest mismatch. Expected: <a4192e5d7a62b86c4c02a19860b9984102da180d9a6e0ad9707029beb10e91c0>, actual: <11e234eb288257ac5c47e1090a760391291155ea0d4b59e8e82398a8908e0c47>
    

    Colud you please take a look? Thanks!

    bug 
    opened by linsui 20
  • Can't connect to jellyfin

    Can't connect to jellyfin

    Describe the bug

    I can't connect to my jellyfin server.

    To Reproduce

    1. Start app
      Screenshot_20210327-130624
    2. Click choose server
      Screenshot_20210327-130632
    3. Click the server
    4. See error
      Screenshot_20210327-130640

    Expected behavior

    To be asked for my credentials

    Logs

    Nothing shows up in the server logs

    Screenshots

    System (please complete the following information):

    • App version: 2.2.3
    • Android version: Android 11
    • Device manufacturer and model: Google Pixel 2XL
    • Jellyfin server version: 10.7.1-1
    • The type of video player implementation used: ???

    Additional context

    Connecting via the browser from my computer and my phone both work fine.

    bug 
    opened by kabo 20
  • the books are not downloaded

    the books are not downloaded

    Describe the bug Does not download books when pressing the download icon

    Expected behavior The book must be downloaded if downloads are authorized in the configuration

    System (please complete the following information):

    • App version: 2.2.3
    • Android version: Android 10
    • Device manufacturer and model: Several
    • Jellyfin server version: all
    bug 
    opened by Bandid0 20
  • Unable to access server running Jellyfin 10.8.0

    Unable to access server running Jellyfin 10.8.0

    Describe the bug The app is unable to access a server runnng jellyfin 10.8.0 Goes between 2 different errors

    1. giving an error Tried X candidates for input, without success where X changes depending on how the url is specified
    2. giving a black screen and staying there indefinitely

    To Reproduce To reproduce no. 1:

    1. Open app
    2. Input url to server running 10.7.6
    3. Close app and clear cache
    4. Upgrade server to Jellyfin 10.8.0
    5. Get error

    To reproduce no. 2:

    1. Clear all cache and userdata (if not wiped already)
    2. Open app
    3. Input url to server running 10.8.0
    4. Black screen

    Expected behavior To be able to get to log in screen

    Logs logcat.txt

    System (please complete the following information):

    • App version: 2.3.0
    • Android version: Android 9
    • Device manufacturer and model: Nubia Z20 (NX627J)
    • Jellyfin server version: 10.8.0
    • The type of video player implementation used: default player as all userdata is blank

    Additional context Everything worked fine in ~~version 2.3.0-beta.6 and~~ version 2.2.3

    bug upstream 
    opened by Norakthes 19
  • Webview is too old, but I just installed ROM and GApps (2.3.0-beta1)

    Webview is too old, but I just installed ROM and GApps (2.3.0-beta1)

    The Webview version Jellyfin-Android requires is 88. My system only provides com.android.webview 83.

    The "check for updates" button redirects to the Play store, but the store doesn't seem to find the app.

    Also I tried installing the webview I could find on the Play store, it's com.google.android.webview 90, but it does not help the issue.

    FYI, the rom is POSP and the gapps package is NikGApps. My android knowledge isn't great, IDK if the webview you're expecting is provided by the system, the default browser, or the gapps.

    bug 
    opened by Salamandar 19
  • Reverse proxy black screen with 2.3.x on JF 10.7.x

    Reverse proxy black screen with 2.3.x on JF 10.7.x

    Describe the bug

    Hi all,

    Referring to the reverse proxy for "Nginx from a subdomain" as stated in the documentation https://jellyfin.org/docs/general/networking/nginx.html, 2.3.0 on JF 10.7.6 can only launched the first time after login. Close the app then reopen will result in a black screen permanently unless reinstalled or data cleared.

    Things that has been tested:

    1. Reverse proxy works correctly on previous version before 2.3.0.
    2. Reverse proxy works correctly from webUI and Tizen with no errors in developer tools.
    3. Tested with the exact snippet copied from the JF reverse proxy documentation except for these changes, "set $jellyfin 127.0.0.1;" and commented out the resolver.
    4. Reverse proxy tested on both port 80 and 443 (Let's Encrypt).
    5. Reverse proxy tested on Note 20 Ultra Android 11 and Android Studio API 29/30 clean image.
    6. I'm not attaching any logcat or debug logs because there's no specific errors comparing to connecting directly to port 8096 which works correctly. Just a black screen when using the reverse proxy. I could see the websocket activities though in the logcat, server and Android Studio debug log that's just it. Hope someone could help to replicate the reverse proxy and point out where is the issue.
    7. Last edit: Not sure if it matters but the subdomain is on IPV6 fallback to IPV4.

    Thank you.

    All running on debian 11 (bullseye) JF 10.7.6 Nginx 1.18.0

    Logs

    No response

    Application version

    2.3.0

    Where did you install the app from?

    Google Store

    Device information

    Samsung Note 20 Ultra

    Android version

    Android 11

    Jellyfin server version

    10.7.6

    Which video player implementations does this bug apply to?

    • [ ] Web player (default)
    • [ ] Integrated player (ExoPlayer)
    • [ ] External player (VLC, mpv, MX Player)
    bug 
    opened by Nazar78 18
  • Don't try connecting to the server automaticaly on app startup

    Don't try connecting to the server automaticaly on app startup

    Hello! I think it would be useful, that before trying to connect to the server on app startup, the user can change the server route, meaning a user has to click the connect button. That is useful in cases where the server route has changed or the server isnt there at all, because now, when you start the app, there is just a black screen and you have to turn off the wifi in order to change the server route. Also maybe add a cancel button for connecting to the server if you misspelled the server location.

    enhancement 
    opened by CodeCubeNeo 17
  • Update appleboy/ssh-action action to v0.1.7

    Update appleboy/ssh-action action to v0.1.7

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | appleboy/ssh-action | action | patch | v0.1.6 -> v0.1.7 |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the logs for more information.


    Release Notes

    appleboy/ssh-action

    v0.1.7

    Compare Source

    Bug fix

    • Fix(envs): set environment variable instead of bash variable (#​209)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    ci github-actions dependencies 
    opened by renovate[bot] 0
  • App doesn't work with my subdomain that is produced through a URL redirect record (via Namecheap)

    App doesn't work with my subdomain that is produced through a URL redirect record (via Namecheap)

    Describe the bug

    The app doesn't connect to jellyfin.styromaniac.com. It's a mask over styromaniac.com:8096. Jellyfin.styromaniac.com works in browsers, however.

    (You won't be able to load the site without Yggdrasil Network: https://yggdrasil-network.github.io/)

    Logs

    No response

    Application version

    2.4.4

    Where did you install the app from?

    Google Play

    Device information

    Samsung Galaxy S21 Ultra 5G

    Android version

    13

    Jellyfin server version

    10.8.8

    Which video player implementations does this bug apply to?

    • [X] Web player (default)
    • [X] Integrated player (ExoPlayer)
    • [X] External player (VLC, mpv, MX Player)
    bug 
    opened by styromaniac 0
  • It bothers me when a music player requires the app window to be open to play music

    It bothers me when a music player requires the app window to be open to play music

    Describe the bug

    1. Open Jellyfin
    2. Play a song
    3. Go into Android's app list view
    4. Close Jellyfin's app window

    I expect music to keep playing, but it doesn't. This is a feature of the Emby app to keep playing regardless of the app window being closed.

    Logs

    No response

    Application version

    2.4.4

    Where did you install the app from?

    Google Play

    Device information

    Samsung Galaxy S21 Ultra 5G

    Android version

    13

    Jellyfin server version

    10.8.8

    Which video player implementations does this bug apply to?

    • [x] Web player (default)
    • [X] Integrated player (ExoPlayer)
    • [X] External player (VLC, mpv, MX Player)
    bug 
    opened by styromaniac 0
  • Update dependency androidx.test:runner to v1.5.2

    Update dependency androidx.test:runner to v1.5.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | androidx.test:runner | 1.5.1 -> 1.5.2 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the logs for more information.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies gradle 
    opened by renovate[bot] 0
  • Update dependency androidx.test.espresso:espresso-core to v3.5.1

    Update dependency androidx.test.espresso:espresso-core to v3.5.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | androidx.test.espresso:espresso-core | 3.5.0 -> 3.5.1 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the logs for more information.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies gradle 
    opened by renovate[bot] 0
  • Cannot upload user profile picture

    Cannot upload user profile picture

    Describe the bug

    1. Connect to a server and login
    2. Go to your user profile (also works when editing others' profiles from the dashboard)
    3. Tap on the profile picture to upload a new one
    4. Nothing happens

    Instead, I expect the OS picture chooser to appear, like the web version does.

    Logs

    https://gist.github.com/GeoffreyCoulaud/1305c08723922cc9c97f6b50670c0999

    Application version

    2.4.4

    Where did you install the app from?

    Google Play Store

    Device information

    Oppo A94 5G

    Android version

    Android 12

    Jellyfin server version

    10.8.5

    Which video player implementations does this bug apply to?

    (Not applicable)

    bug 
    opened by GeoffreyCoulaud 0
Releases(v2.5.0-beta.1)
Owner
Jellyfin
The Free Software Media System
Jellyfin
A simple android Twitter client written in Kotlin

Blum Blum is an unofficial, simple, fast Twitter client written in Kotlin. This project is a complete rewrite of the Java version. Screenshot Build To

Andrea Pivetta 77 Nov 29, 2022
Playground server-client Android app using gRPC and protocol buffers

gRPC Playground The goal of this app is to connect to a server, exchange information using the gRPC protocol and lastly retrieve some mocked credentia

Thanos Psaridis 8 Sep 14, 2022
TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer

KataTODOApiClient for Kotlin We are here to practice integration testsing using HTTP stubbing. We are going to use MockWebServer to simulate a HTTP se

Karumi 61 Nov 20, 2022
Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock

This kata is a Kotlin multiplatform version of the kata KataTODOApiClientKotlin of Karumi. We are here to practice integration testing using HTTP stub

Jorge Sánchez Fernández 29 Oct 3, 2022
Mobile client for official Nextcloud News App written as Kotlin Multiplatform Project

Newsout Android and iOS mobile client for Nextcloud news App. The Android client is already available to download in the Play Store. F-Droid and Apple

Simon Schubert 118 Oct 3, 2022
Kotlin & Java class for gRPC client

jvm-minter-grpc-class Kotlin & Java class for gRPC client Use @TODO Разное Добавление git subtree add --prefix node-grpc-gateway https://github.com/Mi

Aleksey Kukhnovets 2 May 26, 2022
High performance and fully asynchronous pulsar client with Kotlin and Vert.x

pulsarkt High performance pulsar client with Kotlin and Vert.x Features Basic Producer/Consumer API Partitioned topics Batching Chunking Compression T

null 1 Nov 5, 2021
Firestore Kotlin Client with strict (and relaxed) type-system.

Firestore Kotlin Client with strict (and relaxed) type-system.

Vihang Patil 2 Mar 4, 2022
🧶 Full-fledged Kotlin client for MikaBot/cluster-operator as a separate package

?? Eri Full-fledged Kotlin client for MikaBot/cluster-operator as a separate package Usage Connecting to operator fun main(args: Array<String>) {

Nino 3 Nov 17, 2021
Client App to show the information of the searched Pokemon

PokemonSearch Client App to show the information of the searched Pokemon. It uses Pokemon SDK to show all the information. How to use it. Set up Take

kunalsale 0 Nov 21, 2021
A server which delivers client configuration settings to an end-user over http.

RuneTopic HTTP Server A server which delivers client configuration settings to an end-user over http. Setup Guide You can host a http server with Dock

Runetopic 2 Dec 1, 2021
GRPC client for the Provenance Blockchain

GRPC client for the Provenance Blockchain Tip: Refer to the Cosmos Proto Docs and Provenance Blockchain Proto Docs for client interface definitions. M

Provenance Blockchain, Inc. 5 Dec 6, 2022
OO Boot Camp reference implementation for Jordanian client in Kotlin in January 2022

oo_boot_camp_2022-01-24_kotlin Copyright (c) 2022 by Fred George May be used fre

Fred George 0 Mar 6, 2022
Webclient-kotlin-sample - An example of using the http web client to promote synchronous and asynchronous https calls

Web Client Consumer Kotlin Sample The project is an example of using the http we

null 1 May 1, 2022
Common - Packet Definition between Client and Server

CheaTank common A simple game aimed at developing a cheat client and suppressing

CheaTank 0 Jan 27, 2022
InstaKiller - InstaKiller is a CLI client for Instagram

InstaKiller InstaKiller is a CLI wrapper around instagram4j library. Icon Item ?

null 10 Apr 5, 2022
A simple, lightweight, non-bloated redis client for kotlin and other JVM languages

rekt is a lightweight, non-bloated redis client, primarily written for the kotlin programming language, while also supporting other JVM-based languages, such as Java, Scala, and obviously way more.

Patrick 8 Nov 2, 2022
A complex of libraries and starters for organizing long-polling-based interaction between the client and the server.

A complex of libraries and starters for organizing long-polling-based interaction between the client and the server.

Mikhail Titov 2 Jun 25, 2022
Andoroid Ktor Client

Andoroid Ktor Client A brief description of what this project does and who it's for Dependencies for ktor and kotlinx-serialization dependencies

Md Sabit Islam Bhuiya 1 Mar 17, 2022