How guovin/iptv works
IPTV-API collects local and subscription-based channel sources, normalizes and aggregates candidates, tests stream availability and quality, then generates playlists and API-accessible results. Its desktop and legacy Tk interfaces expose configuration and operational controls; the desktop controller dispatches channel operations and manages service interactions. The README also documents EPG, RTMP streaming, playback screenshots, and result management. The excerpts show selected orchestration and storage behavior, so links for unsampled feature wiring are omitted where uncertain.
Main entry points: main.py Source collection · channel_operations.py Channel operations · main_window.py Desktop UI · app.py HTTP service
Components 20
User interfaces
- Desktop UI
desktop_ui/main_window.py - Update controller
desktop_ui/controller.py - Tk interface
tkinter_ui/tkinter_ui.py - Configuration
utils/config.py
Collection and enrichment
- Source collection
main.py - Subscription fetch
updates/subscribe/request.py - EPG enrichment
updates/epg/request.py
Validation and results
- Channel aggregation
utils/aggregator.py - Channel operations
utils/channel_operations.py - Stream testing
utils/channel_quality.py - Media probing
utils/ffmpeg/probe.py - Result repository
utils/channel_repository.py - Playlist artifacts
utils/artifacts.py
Serving and playback
- Application entry
main.py - HTTP service
service/app.py - RTMP streaming
service/rtmp.py
Other components
- User
- Source services
- Playlist players
- Browser client
Connections 21
- User → Desktop UI: operates
- User → Tk interface: configures
- Desktop UI → Update controller: dispatches
- Desktop UI → Configuration: configures
- Tk interface → Configuration: updates
- Update controller → Channel operations: invokes
- Application entry → Source collection: runs
- Source collection → Subscription fetch: fetches
- Subscription fetch → Source services: requests
- Source collection → Channel aggregation: aggregates
- Source collection → EPG enrichment: fetches EPG
- EPG enrichment → Source services: requests
- Channel operations → Stream testing: tests streams
- Stream testing → Media probing: probes media
- Channel operations → Result repository: persists results
- Channel operations → Playlist artifacts: writes outputs
- Result repository → HTTP service: serves results
- User → HTTP service: requests
- HTTP service → RTMP streaming: routes streaming
- RTMP streaming → Browser client: streams media
- Playlist artifacts → Playlist players: imports playlists