Jellyfin apps
Sign in to your configuration from Swiftfin, Findroid, Infuse, Kodi and other Jellyfin apps, on your phone, TV or computer.
Your configuration's media server speaks the same API as Jellyfin, so Jellyfin apps can sign in to it like any other Jellyfin server. You don't need Jellyfin itself: the server runs on your AIOStreams instance.
Swiftfin, Findroid, Streamyfin, Jellyfin for Android TV, Jellyfin for Kodi and Infuse all work. Where the AIOStreams app runs, in a browser, on Windows, Mac and Linux, on Android phones, tablets and TVs, and on LG and Samsung TVs, it is the better fit: it is built for this server. On Apple devices, a Jellyfin app is the way to watch outside a browser.
Streams are played directly, never transcoded. Your app has to be able to play the file as it is, so a device that struggles with a format in other apps will struggle here too. Picking another version usually helps. Only streams with a link play, so P2P torrents are left out; use debrid or Usenet.
Connecting an app
Everything an app needs is on the configure page, under Save & Install → Jellyfin apps → Connect. There are three ways in:
| Way | Use it for | What you enter |
|---|---|---|
| Address with a sign-in picker (best) | Your own devices and your household's | Pick a user, then the password |
| Quick Connect | TVs and anything you type on with a remote | Nothing; you approve a code on the configure page |
| A user's own address | Someone outside your household | Their PIN, or Quick Connect |
| Server address | A device you'd rather not give the picker link | Your UUID or alias, then the password |
The sign-in picker is the easiest: the app lists your configuration's users on its sign-in screen, the way a normal Jellyfin server does, so nobody types a UUID.
Add the server
In your app, add a server and paste the Address with a sign-in picker from the Connect tab.
If your configuration has a share alias in its profile, the address is short, https://your-instance/jellyfin/u/<alias>, so you can type it on a TV. Without one it holds your UUID and an encrypted password, and is easier to paste than to type.
Pick a user
The app lists the users of your configuration: the primary user, which is your configuration itself, and any household users you added. Pick one.
Enter the password
Enter your configuration password. If that user has a PIN, add it after the password with a /, for example yourpassword/1234.
If the instance allows it, a user with a PIN of 6 or more digits can enter just their PIN instead.
The picker address contains the same secret as your Stremio install links. Treat it like one of them and only put it on devices in your household.
A user left off the picker can still sign in: choose the app's option to sign in manually and type their name, just the name. A user kept separate from the others has an address of their own instead.
On a TV: Quick Connect
Typing with a remote is painful, so use Quick Connect instead:
- Add the server to the TV app as above, then choose Quick Connect on its sign-in screen. It shows a six-digit code.
- Type the code into the Quick Connect box on the Connect tab. The device waiting on it appears.
- If you have household users, choose who to sign in as, and enter their PIN if they have one. Then press Approve.
An app that is already signed in may also offer a Quick Connect screen of its own. Approving a code there signs the new device in as the same user.
Using the plain server address
The Server address on the Connect tab has no secret in it. It is your instance's address followed by /jellyfin, for example https://aiostreams.example.com/jellyfin. Apps show no user list on it, so you type who you are:
- Username: the one shown on the Connect tab. That is your configuration UUID, or its alias if you gave it one through a profile. To sign in as a household user, add
/and their name, for example<uuid>/Sam. - Password: your configuration password, with
/PINadded for a user with a PIN, as above.
What to type, at a glance
| Signing in as | On the sign-in picker address | On the server address |
|---|---|---|
| The primary user | Pick it; your password | <uuid> or alias; your password |
| A household user | Pick them; your password | <uuid>/<name>; your password |
| Either, with a PIN | yourpassword/PIN | yourpassword/PIN |
| A household user, PIN alone | The PIN, if the instance allows it | Not possible |
App differences
Jellyfin apps each use a different part of the server, so a few things vary:
- Collections. Some apps, such as Plezy and Jellyfin for Kodi, only show the first Collections library. Put the one you use most first in your catalog order. Plezy also shows collections in a library's Collections tab rather than as a library of their own, and draws every collection as a portrait poster, cropping wide artwork.
- Version picker. Every app shows versions differently. Some list them on the item page, some only when you press play, and some only in the player.
Apps that load the AIOStreams app
Some Jellyfin apps don't have screens of their own. They load whatever web page the server provides and add a real video player to it. Pointed at AIOStreams, they load the AIOStreams app, and it hands playback to their player, so files a browser can't decode play there too. On Windows, Mac, Linux and Android, the AIOStreams desktop and Android apps do this job and need none of the workarounds below.
It has been tested with Jellyfin Desktop and Jellyfin for Android. Other apps that work the same way may run it, but haven't been tried.
- Audio and subtitle tracks may not match the file. These apps don't tell the AIOStreams app which tracks a file really has, so the track menus list what AIOStreams knows about it from your addons. When that is incomplete, a track can be missing from the menu or not switch when picked.
- Jellyfin Desktop is the successor to Jellyfin Media Player, and for now only has development builds. Jellyfin Media Player itself can't run the AIOStreams app. Desktop draws the page at no more than 60 frames per second, even on a faster screen, and the mouse wheel scrolls in jumps rather than smoothly. If the player's controls end up squeezed into a corner after you switch away from fullscreen and back, press F11 twice.
- Jellyfin for Android won't follow a redirect from
http://tohttps://. If your AIOStreams address starts withhttp://, turn on the built-in proxy under Proxy on the configure page, or streams fromhttps://sources won't play.
Jellium Desktop
Jellium Desktop is a community desktop app built the same way. It feels smoother than Jellyfin Desktop and isn't held to 60 frames per second, but it comes with problems of its own:
- Its latest build crashes on start on Windows (issue #694). An older build linked in that issue works.
- Seeking can leave a long black screen on Windows. A bug in the video engine it ships makes a seek in some streams download the rest of the file before playing again. Streams that go through AIOStreams' proxy (Proxy on the configure page) avoid it; others can still hit it.
- Your preferred audio track isn't picked for you. Choose it from the player's track menu instead.

