SkillAgentSearch skills...

Myiptv

A simple IPTV player

Install / Use

/learn @cgang/Myiptv
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MyIPTV - A Simple IPTV Player

A lightweight IPTV player for Android TV built with Android Media3 ExoPlayer and FFmpeg library.

License Platform

Features

  • 📺 M3U playlist support with EPG integration
  • 🎬 Support for MP2/MP3 audio streams via FFmpeg
  • 🌐 RTP/UDP multicast streaming
  • 🔧 Easy configuration via settings menu
  • 📱 Optimized for Android TV remote control

Prerequisites

  • Required: RTP/UDP multicast streams provider
  • Optional: HTTP streaming server (e.g., udpxy) for HTTP-based IPTV
  • Optional: EPG provider for program guide data

Build Instructions

FFmpeg AAR Setup

Since some IPTV sources use MP2/MP3 audio (not natively supported by Android), FFmpeg extensions are required.

  1. Clone the AndroidX Media repository:

    git clone https://github.com/androidx/media.git
    
  2. Follow the instructions in libraries/decoder_ffmpeg/README.md

  3. Select the required audio encoders for your IPTV source (e.g., mp3, aac, ac-3)

  4. Build FFmpeg and generate the AAR:

    ./gradlew extension-ffmpeg:assembleRelease
    
  5. Copy the generated AAR file to app/libs/

Building the App

This is a standard Android application. No special build steps are required beyond the FFmpeg setup.

Usage

Remote Control Navigation

| Button | Action | |--------|--------| | OK | Open playlist | | Left/Right | Switch channel groups | | Up/Down | Navigate channels | | ☰ MENU | Open settings |

M3U Playlist Format

Configure an M3U URL as your streaming source. The playlist should follow this format:

#EXTM3U
#EXTM3U x-tvg-url="http://192.168.1.1/epg.xml"
#EXTINF:-1 tvg-id="1" group-title="Group",Channel Name
http://192.168.1.1:4022/udp/239.9.9.9:9999
#EXTINF:-1 tvg-id="1" group-title="Group",Channel Name
rtp://239.9.9.9:9999
#EXTINF:-1 tvg-id="1" group-title="Group",Channel Name
udp://239.9.9.9:9999

Default URL: http://openwrt.lan/iptv.m3u

Supported Protocols

  • http:// - HTTP streaming
  • rtp:// / udp:// - RTP/UDP multicast (experimental)
    • Configure multicast interface in settings
  • rtsp:// - RTSP streaming (SMIL file support)

SMIL File Support

Channels can reference SMIL files for dynamic stream URLs:

#EXTINF:-1 tvg-id="1" group-title="Group",Channel Name
rtsp://server.example.com/stream.smil

When a channel URL ends with .smil or .smi, the player automatically downloads and parses the SMIL file to extract the actual video URL.

EPG (Electronic Program Guide)

Configure an optional EPG URL pointing to an XMLTV file:

  • Use x-tvg-url in the M3U file to specify the EPG source
  • Use tvg-id to match channels with EPG entries (no name matching yet)

Known Limitations

  • ❌ No channel selection by number input
  • ⚠️ Multicast support is experimental
  • 📱 Limited handheld device support - optimized primarily for Android TV

Configuration

Access the settings page via the ☰ MENU button to configure:

  • Custom M3U playlist URL
  • Multicast interface selection
  • EPG source URL
  • Other playback preferences

AI Agent Documentation

For AI agents working on this project, refer to AGENTS.md which contains links to detailed context documentation in the context/ directory.

License

This project is released under the MIT License.


📖 中文版本

Related Skills

View on GitHub
GitHub Stars36
CategoryDevelopment
Updated5d ago
Forks17

Languages

Kotlin

Security Score

90/100

Audited on Mar 25, 2026

No findings