OmniIPTV is a Flutter-based IPTV application designed for TV streaming on Linux desktop and Android TV devices. It provides a full-screen TV interface with keyboard/remote controls, multi-protocol streaming support, and an intuitive overlay system for channel management.
- Home Dashboard: Dedicated landing page to choose between watching TV or managing settings
- Standalone Settings Page: Full-screen management interface outside of the player
- M3U Export/Import: Export your curated channel list to M3U or import external playlists
- Resource Optimized Playback: Capped HD streams at 720p and SD at 480p to ensure smooth playback on lower-end devices
- CPU Efficient: Disabled heavy post-processing (interpolation, deinterlacing) to minimize CPU usage and lag
- Long-Press Reordering: Vertical reordering of channels via long-press in settings
- Overlay System:
- Side navigation column for quick access to overlays
- Top channel switch notifications with large logos and channel numbers
- Focused channel list for easy D-pad browsing
- Premium Volume overlay with high-visibility progress bar
- Logos & Metadata: Integrated channel logos with fallback icon system
- State Persistence: Saves channel order, active states, and volume locally
- Maintenance Tools: Python script for automated migration to modern Flutter syntax
(Add screenshots here when available)
- Flutter SDK (version 3.13.0 or higher)
- Dart SDK
- For Linux:
libmpv(required by media_kit) - Android Studio for Android TV development
-
Clone the repository:
git clone https://github.com/your-repo/omniiptv.git cd omniiptv -
Install dependencies:
flutter pub get
-
Generate JSON serialization files:
flutter pub run build_runner build
-
Run the app:
flutter run -d linux # For Linux desktop flutter run -d android # For Android TV
- Enter/OK: Toggle Side Menu or Select focused item
- Backspace: Go Back, Hide Overlay, or Return to Home Dashboard
- Arrows (Up/Down): Switch channels or navigate menus
- Arrows (Left/Right): Adjust volume
- F11 (Linux): Fullscreen toggle
- Press Enter to show the side navigation column
- Select icons to open respective overlays:
- Settings: Manage channels, reorder, and import playlists
- Channel List: Browse and select channels with D-pad
- Info: View current channel details
- Volume: Adjust volume with high-visibility bar
- Enable/disable individual channels
- Reorder channels using Long-Press on the OK/Enter button
- Import custom M3U playlists from URL
Location: tool/refactor_opacity.py
Automates the migration from .withOpacity(x) to the modern .withValues(alpha: x) syntax.
Usage: python3 tool/refactor_opacity.py
- Geo-blocking: Moroccan TV streams are restricted outside Morocco
- VPN Recommended: Use a VPN set to Moroccan location for stream access
- Network: Stable internet connection required
- Performance: Configured for hardware acceleration with fallback to software rendering
- Fork the repository
- Create a feature branch
- Submit a pull request
- iptv-org for channel data
- Flutter community for the amazing framework
- Tabler Icons for UI icons
MIT License
Keep us going
© 2026 Omniversify. All rights reserved.
Made by Moroccans, for the Omniverse