How hirotomasato/msplayiptv works
MSPlay IPTV collects channel records from remote M3U sources, categorizes and deduplicates them, checks stream availability, then publishes a main playlist, category playlists, and statistics. IPTV players consume the published M3U files. The sampled source confirms the manual runtime flow and file generation; README documents automated GitHub Actions updates, but the workflow source was not sampled, so its wiring is not drawn.
Main entry points: main.py Pipeline entry · scraper.py Source scraper · generator.py Playlist generator · validator.py Channel validator
Components 16
Channel ingestion
- Pipeline entry
main.py - Runtime config
src/config.py - Source scraper
src/scraper.py - M3U parser
src/utils.py - Channel models
src/models.py
Validation
- Channel validator
src/validator.py - Stream checks
src/utils.py
Playlist publishing
- Playlist generator
src/generator.py - Output formatting
src/models.py
Published files
- Main playlist
static/msplay.m3u - Category playlists
static - Channel statistics
static/stats.json
Other components
- Operator
- IPTV players
- M3U sources
- Stream endpoints
Connections 19
- Operator → Pipeline entry: runs
- Pipeline entry → Runtime config: reads settings
- Pipeline entry → Source scraper: calls scrape
- Source scraper → Runtime config: reads sources
- Source scraper → M3U sources: fetches playlists
- Source scraper → M3U parser: parses content
- M3U parser → Channel models: creates channels
- Source scraper → Pipeline entry: returns channels
- Pipeline entry → Channel validator: calls validate
- Channel validator → Stream checks: checks streams
- Stream checks → Stream endpoints: probes URLs
- Channel validator → Pipeline entry: returns valid channels
- Pipeline entry → Playlist generator: calls generate
- Playlist generator → Output formatting: formats entries
- Playlist generator → Main playlist: writes playlist
- Playlist generator → Category playlists: writes categories
- Playlist generator → Channel statistics: writes statistics
- IPTV players → Main playlist: loads playlist
- IPTV players → Category playlists: loads playlist