Semo is an open-source Flutter application designed to offer a seamless movie and TV show streaming experience. With support for multiple streaming servers, synced watch progress, and fully customizable subtitles, Semo aims to be your go-to streaming app for enjoying your favorite content.
🗂 Comprehensive Library
- Access almost all movies and TV shows.
- Explore a vast library to find something for everyone.
🎥 Stream Playback
- Play movies and TV shows directly using high-quality HLS streams.
- Multiple streaming servers to ensure uninterrupted viewing.
⏳ Synced Watch Progress
- Automatically syncs playback progress for movies and episodes.
- Never lose your spot, even if you switch devices or revisit content later.
🔠 Customizable Subtitles
- Support for .srt subtitle files.
- Fully customizable options
Client: Flutter
Server: Firebase
Prerequisites:
- Flutter SDK (latest stable version).
- A code editor (e.g., VSCode, Android Studio).
- A Firebase account
Instructions:
- Clone the repository
git clone https://github.com/moses-mbaga/semo.git
cd semo
- Install the dependencies:
flutter pub get
- Under libs/utils folder, create a dart file named api_keys.dart and add the following code:
class APIKeys {
static const String tmdbAccessTokenAuth = 'Your TMDB access token auth';
static const String subdl = 'Your SUBDL API Key';
}
-
Add Firebase to the app using FlutterFire CLI. You can follow insructions from the official documentation
-
Run the app:
flutter run
If you encounter any issues or have suggestions, please open an issue in the GitHub Issues section.
Enjoy streaming with Semo! 🌟