ZenStream has one Orchestrator backend and two clients:
Movies, episodes, and music can be saved in the Android app for playback without a server connection. See the offline downloads guide for download choices, offline mode, account access, and synchronization behavior.
Enter the Orchestrator URL when the app starts.
version.propertiescontains the semantic version used for builds.ANDROID_RELEASE_STORE_FILE,ANDROID_RELEASE_STORE_PASSWORD,ANDROID_RELEASE_KEY_ALIAS, andANDROID_RELEASE_KEY_PASSWORDconfigure signed release builds.
Do not commit keystore files or signing credentials.
Requires Android Studio, JDK 21, and Android SDK 37. Open the project in Android Studio or build the debug APK with:
./gradlew assembleDebugInstall a local debug build on a connected device or emulator with:
./gradlew installDebugSigned release APKs are published through GitHub Releases.
./gradlew spotlessCheck lint test assembleDebug- For an Android emulator connecting to an Orchestrator running on the host, use
http://10.0.2.2:<port>and ensure the server is bound to an address the emulator can reach. - For a physical device, use the host computer's LAN address instead of
127.0.0.1, and allow the port through the firewall. - If a release build fails, verify the four
ANDROID_RELEASE_*signing settings and the keystore path.
The latest signed APK is available from GitHub Releases. Download the asset named zenstream-mobile-vX.Y.Z.apk.
AGPL-3.0-or-later. See LICENSE.