Welcome to Streamyfin, a simple and user-friendly Jellyfin client built with Expo. If you're looking for an alternative to other Jellyfin clients, we hope you'll find Streamyfin to be a useful addition to your media streaming toolbox.
Streamyfin includes some exciting experimental features like media downloading and Chromecast support. These are still in development, and we appreciate your patience and feedback as we work to improve them.
Downloading works by using ffmpeg to convert an HLS stream into a video file on the device. This means that you can download and view any file you can stream! The file is converted by Jellyfin on the server in real time as it is downloaded. This means a bit longer download times but supports any file that your server can transcode.
Chromecast support is still in development, and we're working on improving it. Currently, it supports casting videos and audio, but we're working on adding support for subtitles and other features.
In Streamyfin we have built-in support for a few plugins. These plugins are not required to use Streamyfin, but they add some extra functionality.
Jellyfin collections can be shown as rows or carousel on the home screen. The following tags can be added to a collection to provide this functionality.
Available tags:
A plugin exists to create collections based on external sources like mdblist. This make the automatic process of managing collections such as trending, most watched, etc. See Collection Import Plugin for more info.
Jellysearch now works with Streamyfin! ?
A fast full-text search proxy for Jellyfin. Integrates seamlessly with most Jellyfin clients.
Check out our Roadmap to see what we're working on next. We are always open for feedback and suggestions, so please let us know if you have any ideas or feature requests.
Or download the APKs here on GitHub for Android.
Get the latest updates by using the TestFlight version of the app.
We welcome any help to make Streamyfin better. If you'd like to contribute, please fork the repository and submit a pull request. For major changes, it's best to open an issue first to discuss your ideas.
20
bun i
npx expo run:ios
or npx expo run:android
.Add this to AppDelegate.mm:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// @generated begin react-native-google-cast-didFinishLaunchingWithOptions - expo prebuild (DO NOT MODIFY) sync-8901be60b982d2ae9c658b1e8c50634d61bb5091
#if __has_include()
...
[GCKCastContext sharedInstance].useDefaultExpandedMediaControls = true;`
#endif
Add this to Info.plist:
NSBonjourServices
_googlecast._tcp
_CC1AD845._googlecast._tcp
NSLocalNetworkUsageDescription
${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi network.
Streamyfin is licensed under the Mozilla Public License 2.0 (MPL-2.0). This means you are free to use, modify, and distribute this software. The MPL-2.0 is a copyleft license that allows for more flexibility in combining the software with proprietary code. Key points of the MPL-2.0:
Join our Discord: https://discord.gg/BuGG9ZNhaE
If you have questions or need support, feel free to reach out:
Streamyfin is developed by Fredrik Burmester and is not affiliated with Jellyfin. The app is built with Expo, React Native, and other open-source libraries.
I'd like to thank the following people and projects for their contributions to Streamyfin: