How akiralereal/iptv works
iPTV is a self-hosted IPTV source-management and distribution server. Users configure sources and channel lineups, the server refreshes and combines provider channels, then serves playlists, EPG data, and playable streams to client players. The graph also shows management, user access, and logo capabilities documented in the README. The sampled code establishes the HTTP entry point, extractor registry and manager, and selected adapter relationships; other product branches are included where documented, with edges limited to visible code or README statements.
Main entry points: app.js HTTP Server · extractorManager.js Refresh Manager · extractors Source Adapters · channelMerger.js Channel Merge
Components 20
Server and Access
- HTTP Server
app.js - System Config
config.js - User Tokens
utils/userManager.js - Admin APIs
utils/adminAPI.js - Extractor APIs
utils/extractorsAPI.js
Source Ingestion
- Module Registry
extractors/registry.js - Refresh Manager
utils/extractorManager.js - Source Adapters
extractors - Custom Sources
utils/externalSources.js
Channels and Guide
- Channel Merge
utils/channelMerger.js - Channel Profiles
utils/playlistConfig.js - EPG Services
utils/epgAggregator.js - Logo Library
utils/logoLibrary.js
Playback Delivery
- Playback Resolver
utils/appUtils.js - Stream Proxies
utils/hlsProxy.js - FLV Proxy
utils/flvProxy.js
Other components
- Viewer
- Administrator
- TV Platforms
- IPTV Player
Connections 23
- Administrator → HTTP Server: manages
- Viewer → HTTP Server: requests
- HTTP Server → System Config: reads
app.js - HTTP Server → User Tokens: authorizes
app.js - HTTP Server → Admin APIs: routes source edits
app.js - HTTP Server → Extractor APIs: routes module login
app.js - HTTP Server → Refresh Manager: refreshes sources
app.js - Refresh Manager → Module Registry: loads modules
utils/extractorManager.js - Module Registry → Source Adapters: registers adapters
extractors/registry.js - Source Adapters → TV Platforms: fetches channels
- Custom Sources → TV Platforms: imports subscriptions
- Refresh Manager → Channel Merge: provides cached channels
utils/extractorManager.js - Custom Sources → Channel Merge: supplies sources
- Channel Merge → Channel Profiles: combines with profiles
- HTTP Server → Channel Profiles: reads playlist config
app.js - HTTP Server → EPG Services: serves program guides
- HTTP Server → Logo Library: serves logo packs
app.js - IPTV Player → HTTP Server: loads playlists and EPG
- IPTV Player → HTTP Server: requests playback
- HTTP Server → Playback Resolver: resolves channel
app.js - Playback Resolver → Source Adapters: resolves provider stream
- HTTP Server → Stream Proxies: relays HLS
app.js - HTTP Server → FLV Proxy: relays FLV
app.js