Skip to content

Repository files navigation

OpenStream app icon

OpenStream

Movies, series and anime in one native Android app.

Browse what's trending, pick up where you left off, and watch with a real player: quality switching, subtitles, dubs, downloads and picture-in-picture.

Latest release License: MIT Android 8.0+ Kotlin

Download the latest APK

Screenshots

Home
Home
Curated shelves
Curated shelves
Title page
Title page
Cast, trailers and more like this
Cast, trailers and more like this
Player
Player
Playback settings
Playback settings
Search
Search
Search results
Search results
History
History
Saved
Saved
Downloads
Downloads

Features

Discover

  • A Home screen with a trending carousel, a top 10, new episodes this week, and popular movies, series and anime
  • Search that runs as you type, with filters, genres, trending picks and recent searches
  • Title pages with seasons and episodes, cast, trailers and similar titles

Watch

  • Continue watching: resume from the exact spot, and the next episode is lined up for you
  • Auto-play the next episode, and watched marks on episodes you've finished
  • Switch quality in the player (up to 4K where the source has it)
  • Subtitles in many languages, from the stream or from OpenSubtitles
  • Pick the audio: original, dub, or another language when a source carries it
  • A mini player keeps the video going while you browse, and picture-in-picture works outside the app

Keep

  • Download a single episode or a whole season, with pause, resume and retry, and play it offline
  • Saved and History, each with its own search, filters and sorting
  • In-app updates: check GitHub for a new release, then download and install it without leaving the app

Feel

  • Material 3 Expressive design with dynamic color on Android 12 and up
  • A themed app icon that follows your wallpaper colors
  • Layouts built for phones, tablets and landscape

How streams work

OpenStream doesn't host any video. Titles and artwork come from TMDB. Streams come from source extensions listed in a JSON catalog. The app checks every installed source in parallel, ranks the results, and plays the best one. If a source fails, it moves on to the next.

Not every title is available yet, and coverage grows as sources are added. Want to add one? See the extension contributor guide and the catalog format.

Build from source

You need Android Studio (or JDK 17 and the Android SDK) and a free TMDB API key.

git clone https://github.com/Ivorisnoob/OpenStream.git
cd OpenStream
echo "TMDB_API_KEY=your_key_here" >> local.properties
./gradlew installDebug

Without a key the app falls back to TMDB's DEMO_KEY, which is heavily rate-limited.

Tech stack

Area What's used
UI Jetpack Compose, Material 3 Expressive (1.5.0-alpha29)
Language and build Kotlin 2.3, AGP 9 with built-in Kotlin, Gradle version catalog
Architecture Single activity, Navigation Compose, MVVM with StateFlow, Hilt
Data Retrofit, OkHttp, kotlinx-serialization, Room, Coil 3
Playback Media3 ExoPlayer (HLS and MP4), a Media3 download service, and a hidden WebView fallback for web sources

Architecture notes and conventions are in CLAUDE.md.

Contributing

Bug reports, fixes and new sources are all welcome. Start with CONTRIBUTING.md.

License

MIT

Acknowledgments

About

Movies, series and anime in one native Android app. TMDB metadata, extension-based sources, quality switching, subtitles, dubs, downloads and picture-in-picture. Built with Kotlin, Jetpack Compose and Material 3 Expressive.

Topics

Resources

Contributing

Stars

24 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages