How guovin/iptv-api works
IPTV-API collects local and subscribed channel sources, normalizes and aggregates candidates, measures playback quality, then persists and publishes curated playlists/API results. Users can run updates through the desktop application, legacy Tk UI, or service/command entry points. The README also documents EPG, RTMP restreaming, playback screenshots, advanced filtering, and result management. Core orchestration and selected integrations are represented; unsampled implementation details are omitted, so some capability links are intentionally not inferred.
Main entry points: main.py Update workflow · app.py HTTP service · main_window.py Desktop UI · probe.py Media probing
Components 21
User entry points
- Desktop UI
desktop_ui/main_window.py - Update controller
desktop_ui/controller.py - Tk UI
tkinter_ui/tkinter_ui.py - Update workflow
main.py - HTTP service
service/app.py - Channel operations
utils/channel_operations.py
Collection and enrichment
- Subscription fetch
updates/subscribe/request.py - EPG processing
updates/epg/request.py - Channel matching
utils/channel.py - Source aggregation
utils/aggregator.py
Validation and persistence
- Quality testing
utils/speed.py - Media probing
utils/ffmpeg/probe.py - Result repository
utils/channel_repository.py
Playback and delivery
- Playlist artifacts
utils/artifacts.py - RTMP streaming
service/rtmp.py - Playback tools
desktop_ui/playback.py
Operations and state
- Configuration
utils/config.py
Other components
- Operator
- Source and EPG hosts
- FFmpeg tools
- IPTV player
Connections 24
- Operator → Desktop UI: configures / starts
- Operator → Tk UI: configures / starts
- Desktop UI → Update controller: queues updates
- Update controller → Channel operations: dispatches operations
- Tk UI → Configuration: changes settings
- Update workflow → Subscription fetch: fetches sources
- Subscription fetch → Source and EPG hosts: requests playlists
- Update workflow → EPG processing: fetches EPG
- EPG processing → Source and EPG hosts: requests listings
- Update workflow → Channel matching: matches channels
- Update workflow → Source aggregation: aggregates candidates
- Update workflow → Quality testing: tests candidates
- Quality testing → Media probing: probes streams
- Media probing → FFmpeg tools: runs probe
- Update workflow → Result repository: persists results
- Update workflow → Playlist artifacts: writes playlists
- HTTP service → Update workflow: starts update
- HTTP service → Result repository: reads result data
- HTTP service → RTMP streaming: serves RTMP routes
- RTMP streaming → IPTV player: streams media
- Desktop UI → Playback tools: opens playback tools
- Playback tools → Media probing: captures / probes
- Playlist artifacts → IPTV player: supplies playlists
- Update workflow → Configuration: reads settings