StreamHub is a bleeding-edge, high-performance native Android media streaming application built with Kotlin 2.0, Jetpack Compose (Material 3), and AndroidX Media3 ExoPlayer.
Engineered from the ground up for low latency, zero-login instant playback, aggressive byte-range disk caching, real-time AniList GraphQL & TMDB metadata auto-fetching, and a multi-season Story Arc Creator Studio with 1-click batch ingestion.
| π Feature | π‘ Description |
|---|---|
| π¨ Material 3 Expressive UI | Native 5-level dark tonal elevation (surfaceContainer), split-button navigation dock, borderless tactile pills (CircleShape), and clean vector iconography. |
| β‘ Turbo HTTP Progressive Engine | Sub-second playback initialization with byte-range requests, 2 MB TCP window scaling, and dynamic bitrate-proportional disk caching (SimpleCache). |
| πΈ AniList GraphQL Engine | Zero-auth, sub-200ms anime metadata queries (graphql.anilist.co) fetching synopses, voice actors, high-res posters, banners, and trailers. |
| π¦ Collapsible Downloads & Batch Deletion | Accordion series grouping, multi-select batch deletion, instant offline search, sequential auto-advance, and TTL auto-delete expiration policies. |
| π Live Online Subtitle Search | OpenSubtitles & Cinemeta CDN integration with 1-tap player injection, live language filters, and real-time millisecond offset sync. |
| π¬ Multi-Arc Story Hub | Dedicated Arc-Level episode manager with automatic missing episode gap detection, 1-click batch importer, and snippet insertion. |
| π§ Dual-Audio & Vocal Enhancement | Embedded MKV multi-audio track switcher, hardware dialogue boost, night cinema mode, subtitle track selector with delay sync, and ASS/SSA styling. |
| πΊ XPlayer-Grade Immersion HUD | Pure containerless corner countdown time, horizontal battery gauge, and live system clock that auto-hides during active full-screen video. |
| Starts playback with signature vertical cyan indicator bar and stacked maturity category/severity rows. | |
| π¨ Nuvio-Grade Theming & Display | 7 Classic solid themes, 6 Enhanced dual-tonal gradients, AMOLED black switch, customizable catalog grid density, and poster aspect ratios. |
| π Air-Tight Security & Admin Studio | Cryptographic SHA-256 password protection, hardware-bound 30-day VIP vouchers, and verified server-side write gating. |
graph TD
A[UI Presentation Layer: Jetpack Compose] --> B[ViewModel State Flows]
B --> C[Player Engine: Media3 ExoPlayer + StreamCacheManager]
B --> D[Data Layer: FirebaseRepository & Managers]
D --> E[Cloud Firestore & TMDB v3 / AniList GraphQL APIs]
C --> F[Direct HTTP Byte-Range Caching Engine]
- Language: Kotlin 2.0+ (Coroutine-first, Dispatchers.IO isolation)
- UI Framework: Pure Jetpack Compose with Material 3 Design Tokens
- Video Engine: AndroidX Media3 ExoPlayer (
media3-exoplayer,media3-ui,media3-datasource) - Metadata Database: Firebase Cloud Firestore (
firebase-firestore-ktx) - Networking: Retrofit 2 + OkHttp3 + Gson + AniList GraphQL
- Metadata Resolvers: TMDB API v3 (Movies/Series) + Official AniList GraphQL API (Anime)
- Image Pipeline: Coil Compose with disk and memory cache
- Security: AndroidX Security Crypto (
EncryptedSharedPreferences) + SHA-256 Verification
StreamHub includes a built-in Creator Studio for catalog owners:
- 1-Click Batch Importer: Ingest 300+ episodes across all arcs in seconds from direct server streams or batch dumps.
- Smart Link & ID Resolver: Paste direct AniList (
https://anilist.co/anime/...) or TMDB (https://www.themoviedb.org/tv/...) URLs to auto-fetch high-res posters, banners, studios, cast, and trailers with 100% accuracy. - 1-Tap Batch Catalog Migrator: Bulk-update older anime catalogs to official AniList specs, Japanese voice actors, and high-res art with zero downtime.
- Story Arc Episode Manager: Inspect, edit JSON, detect missing episode gaps, and re-order episodes dynamically.
StreamHub includes a private community access gate on first launch. If you need an access invite or want to connect with the maintainer:
If you enjoy StreamHub and want to support high-speed streaming nodes, server hosting costs, and ongoing development:
If you would like to contribute or sponsor high-speed streaming nodes and server hosting costs:
- Reach out directly on Telegram: @Londe_Lapate for donation wallet addresses (USDT/USDC - BEP20, TRC20) or alternative contribution methods.
StreamHub is designed so anyone can fork the repository and launch their own customized media streaming app. Follow these steps to configure your fork:
- Create a free project on the Firebase Console.
- Add an Android app with your package name (e.g.
com.streamhub.app). - Enable Cloud Firestore in test or production mode.
- Download
google-services.jsonand place it inside theapp/folder:StreamHub/app/google-services.json
Create or edit local.properties in the root directory:
# Free API key from https://www.themoviedb.org/settings/api (For movies & TV series metadata & posters)
streamhub.tmdb_api_key=YOUR_TMDB_API_KEY
# Master Admin Password (For Creator Studio unlock)
streamhub.admin_master_password=YOUR_ADMIN_PASSWORD
# VIP Access Code (For permanent Community App Gate unlock)
streamhub.app_access_code=YOUR_VIP_ACCESS_CODE(Anime metadata is powered by AniList GraphQL which is 100% free and requires zero API keys).
StreamHub uses cryptographic one-way SHA-256 hashing in code so that plaintext passwords are never stored in GitHub Secrets or exposed in the compiled APK binary.
-
Generate the SHA-256 hash for your desired password or PIN:
- Linux / macOS:
echo -n "YourSecretPassword" | sha256sum
- Windows PowerShell:
[BitConverter]::ToString([System.Security.Cryptography.SHA256]::Create().ComputeHash([System.Text.Encoding]::UTF8.GetBytes("YourSecretPassword"))).Replace("-","").ToLower()
- Linux / macOS:
-
Update the code hashes:
- Creator Studio Admin Password (
app/src/main/java/com/streamhub/app/data/AdminManager.kt):const val MASTER_PASSWORD_SHA256 = "your_generated_sha256_hash_here"
- Community / Friends VIP Access Code (
app/src/main/java/com/streamhub/app/data/AccessGateManager.kt):private const val VIP_PERMANENT_CODE_SHA256 = "your_generated_sha256_hash_here"
- Creator Studio Admin Password (
- App Name: Change
<string name="app_name">inapp/src/main/res/values/strings.xml. - Package ID: Change
applicationIdinapp/build.gradle.kts. - App Icons: Replace launcher icons in
app/src/main/res/mipmap-*/.
If you want your fork to automatically build signed release APKs on push:
- In your fork, navigate to Settings > Secrets and variables > Actions.
- Add the following repository secrets:
FIREBASE_GOOGLE_SERVICES_JSON: Base64 encoded string or raw content ofgoogle-services.jsonRELEASE_KEYSTORE_BASE64: Base64 encoded.jksor.keystorefileRELEASE_KEYSTORE_PASSWORD,RELEASE_KEY_ALIAS,RELEASE_KEY_PASSWORD: Keystore signing credentialsSTREAMHUB_TMDB_API_KEY: Your TMDB API key
- JDK 17 or 21
- Android SDK 34/35 (Min SDK 24, Target SDK 35)
git clone https://github.com/WorkerOfArea51/StreamHub.git
cd StreamHub./gradlew assembleDebug./gradlew assembleReleaseadb install -r app/build/outputs/apk/debug/StreamHub-arm64-debug.apk
adb shell am start -n com.streamhub.app.debug/com.streamhub.app.MainActivityThis project is licensed under the MIT License.
Crafted with β€οΈ by WorkerOfArea51 and the StreamHub Community.