A simple Media Hub
Find a file
Stéphane af43edcf04 i18n(fr): extract remaining hardcoded strings to stringResource
- NetworkStatusRepository: titleForEmptyState/messageForEmptyState now @Composable, using existing keys (network_cannot_reach_servers, network_no_internet_connection, details_servers_unreachable, details_check_connection) + 2 new (network_connection_issue, network_please_check_connection)
- LibraryRepository: LOCAL_LIBRARY_LIST_TITLE moved to library_local_tab_title resource; toLibraryDisplayTitle() "Other" fallback uses library_other
- EpisodeReleaseNotificationsRepository: permission-disabled message uses settings_notifications_permission_disabled
- StreamsRepository.fallbackRepositoryLabel: uses streams_plugin_repository_fallback
- PluginRuntime: title fallback "Unknown" uses generic_unknown

4 new keys added (EN + FR with tutoiement, NBSP, apostrophes courbes).
Parity preserved: 1353 keys EN ↔ FR.
2026-05-13 19:38:47 +02:00
.github adding CONTRIBUTING.md 2026-04-19 18:59:45 +05:30
composeApp i18n(fr): extract remaining hardcoded strings to stringResource 2026-05-13 19:38:47 +02:00
Docs/Stremio addons refer kmp init 2026-03-04 09:00:00 +05:30
gradle chore: update coil version 2026-05-12 18:34:00 +05:30
iosApp bump version 2026-05-13 14:00:38 +05:30
libass-android@c10b71ab8b fix: update addon fetch timeout 2026-04-10 20:09:45 +05:30
MPVKit@97923266e4 feat: update WatchingActions to mark watched items 2026-04-22 15:32:54 +05:30
scripts feat: add manual play option and update stream loading logic 2026-04-07 14:56:05 +05:30
vendor fix: ios downloads 2026-04-30 17:13:19 +05:30
.gitignore update deps 2026-04-23 00:59:28 +05:30
.gitmodules update deps 2026-04-23 00:59:28 +05:30
build.gradle.kts kmp init 2026-03-04 09:00:00 +05:30
CONTRIBUTING.md adding CONTRIBUTING.md 2026-04-19 18:59:45 +05:30
gradle.properties fix: adjust behaviour logic of streamlink caching 2026-05-12 12:22:58 +05:30
gradlew kmp init 2026-03-04 09:00:00 +05:30
gradlew.bat kmp init 2026-03-04 09:00:00 +05:30
LICENSE update readme 2026-04-19 00:35:34 +05:30
README.md update readme 2026-04-19 00:37:20 +05:30
settings.gradle.kts kmp init 2026-03-04 09:00:00 +05:30

Nuvio

Contributors Forks Stargazers Issues License

A modern media hub for Android and iOS built with Kotlin Multiplatform and Compose Multiplatform.
Stremio addon ecosystem • Cross-platform

About

Nuvio is the current Kotlin Multiplatform rewrite of the original React Native app. It delivers a shared Compose UI for Android and iOS while keeping the playback-focused experience, collection tools, watch progress flows, downloads, and Stremio addon ecosystem integration that shaped the earlier app.

The mobile app is built from a single shared codebase in composeApp, with native platform entry points for Android and iOS.

Installation

Android

Download the latest Android build from GitHub Releases.

iOS

Development

git clone https://github.com/NuvioMedia/NuvioMobile.git
cd NuvioMobile
./scripts/run-mobile.sh android
# or
./scripts/run-mobile.sh ios

Project Structure

  • composeApp/ contains the shared Kotlin Multiplatform and Compose Multiplatform app code.
  • composeApp/src/commonMain/ contains shared UI, features, repositories, and platform-agnostic logic.
  • composeApp/src/androidMain/ contains Android-specific integrations.
  • composeApp/src/iosMain/ contains iOS-specific integrations.
  • iosApp/ contains the native Xcode project and iOS entry point.

Useful commands:

./gradlew :composeApp:assembleDebug
./gradlew :composeApp:compileKotlinIosSimulatorArm64
./scripts/build-distribution.sh

Versioning is driven from iosApp/Configuration/Version.xcconfig, which is used as the shared source of truth for both iOS and Android builds.

Nuvio functions solely as a client-side interface for browsing metadata and playing media provided by user-installed extensions and/or user-provided sources. It is intended for content the user owns or is otherwise authorized to access.

Nuvio is not affiliated with any third-party extensions, catalogs, sources, or content providers. It does not host, store, or distribute any media content.

For comprehensive legal information, including our full disclaimer, third-party extension policy, and DMCA/Copyright information, please visit our Legal & Disclaimer Page.

Built With

  • Kotlin Multiplatform
  • Compose Multiplatform
  • Kotlin
  • AndroidX Media3
  • AVFoundation and native iOS integrations

Star History

Star History Chart