Myiptv
A simple IPTV player
Install / Use
/learn @cgang/MyiptvREADME
MyIPTV - A Simple IPTV Player
A lightweight IPTV player for Android TV built with Android Media3 ExoPlayer and FFmpeg library.
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.
-
Clone the AndroidX Media repository:
git clone https://github.com/androidx/media.git -
Follow the instructions in
libraries/decoder_ffmpeg/README.md -
Select the required audio encoders for your IPTV source (e.g.,
mp3,aac,ac-3) -
Build FFmpeg and generate the AAR:
./gradlew extension-ffmpeg:assembleRelease -
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 streamingrtp:///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-urlin the M3U file to specify the EPG source - Use
tvg-idto 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
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
