⚡️ IPTV live-source automatic update platform — 🤖 fully automated collection, filtering, speed-testing, and generation 🚀. Supports extensive personalized configuration; paste the resulting address into a player to watch.
<a href="https://trendshift.io/repositories/12327" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12327" alt="Guovin%2Fiptv-api | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
中文 | English
[!IMPORTANT] 1. Go to the
GovinWeChat public account and reply withcdnto get an acceleration address to improve access speed for subscription sources and channel logos. 2. This project does not provide data sources. Please add your own before generating results. (How to add data sources?) 3. The quality of generated results depends on the data sources and network conditions; please adjust the configuration accordingly to obtain results that better meet your needs.
| Feature | Support | Description |
|---|---|---|
| Custom templates | ✅ | Generate custom channel playlists |
| Channel aliases | ✅ | Improve channel matching and accuracy, supports regular expressions |
| Multi-source aggregation | ✅ | Local sources and subscription sources (supports UA configuration, detects invalid addresses and automatically disables them) |
| Stream relay | ✅ | Improve playback on weak networks, supports direct browser playback, and automatic transcoding/adaptation |
| Replay/VOD interfaces | ✅ | Fetching and generating replay/VOD interfaces |
| EPG | ✅ | Fetch and display channel program guides |
| Channel logos | ✅ | Custom channel logos, supports local additions or a remote library |
| Speed test & validation | ✅ | Obtain latency, bitrate, resolution, fps; filter invalid interfaces; supports real-time output |
| Advanced preferences | ✅ | Rate, resolution, blacklist/whitelist, location and ISP custom filters |
| Results management | ✅ | Categorized storage and access of results, log recording, unmatched channel records, statistical analysis, freeze filtering/unfreeze rollback, data caching |
| Scheduled tasks | ✅ | Scheduled or interval updates |
| Multi-platform deployment | ✅ | Workflows, CLI, GUI, Docker (amd64/arm64/arm v7) |
| More features | ✨ | See Configuration section for details |
[!NOTE]\ The following configuration items are located in
config/config.iniand can be modified via the configuration file or environment variables. Save changes and restart to apply.
Click to expand configuration parameters
| Configuration Item | Description | Default Value |
|---|---|---|
| open_update | Enable updates, used to control whether to update interfaces. If disabled, all working modes (getting interfaces and speed tests) stop. | True |
| open_unmatch_category | Enable unmatched channel category. Channels not matched by source_file will be written directly into this category and will not participate in speed testing |
False |
| open_empty_category | Enable empty category, channels without results will automatically be classified to the bottom. | False |
| open_update_time | Enable display of update time. | True |
| open_url_info | Enable to display interface description information, used to control whether to display interface source, resolution, protocol type and other information (content after $). The player uses this information to describe the interface. If some players (such as PotPlayer) do not support parsing and cannot play, you can turn it off. |
False |
| open_epg | Enable EPG function, support channel display preview content. | True |
| open_m3u_result | Enable converting and generating m3u file type result links, supporting the display of channel icons. | True |
| urls_limit | Number of interfaces per channel. | 5 |
| update_time_position | Update time display position, takes effect only when open_update_time is enabled. Optional values: top, bottom. top: display at the top of the result, bottom: display at the bottom. |
top |
| language | Application language setting; Optional values: zh_CN, en | zh_CN |
| update_mode | Scheduled execution update mode, does not apply to workflow; Optional values: interval, time; interval: execute by interval time, time: execute at specified time point | interval |
| update_interval | Scheduled execution update interval, only takes effect when update_mode = interval, unit hours, set to 0 or empty to run only once | 12 |
| update_times | Scheduled execution update time point, only takes effect when update_mode = time, format HH:MM, supports multiple time points separated by commas | |
| update_startup | Execute update at startup, used to control whether to execute an update immediately after the program starts | True |
| time_zone | Time zone, can be used to control the time zone for scheduled execution or display update time; Optional values: Asia/Shanghai or other time zone codes | Asia/Shanghai |
| source_file | Template file path. | config/demo.txt |
| final_file | Generated result file path. | output/result.txt |
| open_realtime_write | Enable real-time writing of result files, you can access and use the updated results during the speed measurement proce |
$ claude mcp add iptv-api \
-- python -m otcore.mcp_server <graph>