Skip to content

reetkumar/reet-live-tv

Repository files navigation

REET IPTV - IPTV Player

A modern Android IPTV streaming application built with Jetpack Compose and Kotlin.

Features

Core Functionality

  • Live TV Streaming: Watch live IPTV channels from M3U playlists
  • Channel Categories: Browse and filter channels by category (News, Sports, Entertainment, etc.)
  • Favorites: Save your favorite channels for quick access
  • Trending: Track trending and popular channels
  • Search: Voice-enabled and text search for channels

User Interface

  • Day/Night Mode: Automatic theme switching based on system settings
  • Colorful Categories: Each channel category has unique colors
  • Responsive Design: Adapts to different screen orientations
  • Modern Cards: Beautiful card-based UI with smooth animations

Video Playback

  • ExoPlayer Integration: High-quality video streaming with HLS support
  • Fullscreen Mode: Auto-rotate to landscape for immersive viewing
  • Auto-hide Controls: Video controls auto-hide after 3 seconds
  • Playback Controls: Play, pause, and fullscreen toggle

Settings

  • Dark Mode Toggle: Switch between light and dark themes
  • Auto-play: Automatically play channel when selected
  • Live Badge: Show/hide LIVE indicator on channels
  • Playlist Management: Load and refresh IPTV playlists

Screenshots

The app features:

  • Home screen with channel list and voice search
  • Category filtering with colorful chips
  • Trending channels section
  • Favorites management
  • Channel details with playback controls
  • Fullscreen video player with auto-hiding controls
  • Settings with theme and playback options

Technical Stack

Framework & Language

  • Kotlin: Modern Android development
  • Jetpack Compose: Declarative UI framework
  • Material Design 3: Modern Android design system

Key Libraries

  • ExoPlayer (Media3): Video playback engine
  • Coil: Image loading and caching
  • Navigation Compose: Screen navigation

Architecture

  • MVVM Pattern: Clean separation of concerns
  • ViewModel: Lifecycle-aware state management
  • State Management: Compose State with remember/mutableStateOf

Project Structure

app/src/main/java/com/reet/iptv/
├── MainActivity.kt          # Main entry point
├── ui/
│   ├── screens/
│   │   ├── BrowseScreen.kt      # Browse all channels
│   │   ├── ChannelDetailScreen.kt # Channel player
│   │   ├── FavoritesScreen.kt    # Saved favorites
│   │   ├── SettingsScreen.kt     # App settings
│   │   └── TrendingScreen.kt     # Trending channels
│   └── theme/
│       ├── Color.kt         # Color definitions
│       ├── Theme.kt          # Theme configuration
│       └── Type.kt           # Typography styles
└── ui/screens/
    └── getCategoryColor.kt   # Category color helper

Getting Started

Prerequisites

  • Android Studio Hedgehog or newer
  • Kotlin 1.9+
  • Android SDK 24+ (Android 7.0)
  • Gradle 8.0+

Building the Project

  1. Clone the repository
  2. Open in Android Studio
  3. Sync Gradle files
  4. Build and run on device/emulator
./gradlew assembleDebug

Adding IPTV Playlists

The app loads channels from M3U playlists. Default playlist:

https://iptv-org.github.io/iptv/countries/in.m3u

To use a custom playlist:

  1. Go to Settings
  2. Tap "Default Playlist"
  3. Enter your M3U URL

Default Channels

The app includes demo channels for testing:

  • DD National (News)
  • Star Sports 1 (Sports)
  • Sony SET (Entertainment)
  • Zee TV (Entertainment)
  • MTV India (Music)
  • Discovery Channel (Documentary)
  • Nickelodeon India (Kids)
  • Aaj Tak (News)

Developer

Reet Kumar Bind
Software Engineer

Building scalable backend systems & Android applications using Java and Kotlin.

Contact

License

This project is open source and available for educational purposes.

Acknowledgments

  • IPTV-org for providing free IPTV playlists
  • Jetpack Compose team for the amazing UI toolkit
  • ExoPlayer team for video playback solutions

About

Live IPTV using ExoPlayer and Kotlin Ui design by JetPack Compose Activity

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages