MCPcopy
hub / github.com/Guovin/iptv-api

github.com/Guovin/iptv-api @2.0.7 sqlite

repository ↗ · DeepWiki ↗ · release 2.0.7 ↗
474 symbols 1,595 edges 42 files 145 documented · 31%
README

IPTV-API logo

⚡️ 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.

Support me on Ko-fi

<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 Govin WeChat public account and reply with cdn to 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.

Core Features

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

Config

[!NOTE]\ The following configuration items are located in config/config.ini and 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

Core symbols most depended-on inside this repo

get
called by 312
utils/alias.py
t
called by 189
utils/i18n.py
set
called by 47
utils/alias.py
resource_path
called by 29
utils/tools.py
get_result_file_content
called by 21
utils/tools.py
resource_path
called by 16
utils/config.py
format_channel_name
called by 10
utils/channel.py
c
called by 10
utils/nginx-rtmp-win32/html/swfobject.js

Shape

Function 225
Method 202
Route 29
Class 18

Languages

Python95%
TypeScript5%

Modules by API surface

utils/config.py76 symbols
utils/tools.py59 symbols
service/app.py59 symbols
tkinter_ui/default.py32 symbols
utils/channel.py27 symbols
utils/nginx-rtmp-win32/html/swfobject.js22 symbols
service/rtmp.py19 symbols
main.py19 symbols
tkinter_ui/tkinter_ui.py16 symbols
utils/speed.py15 symbols
tkinter_ui/prefer.py13 symbols
tkinter_ui/speed.py12 symbols

For agents

$ claude mcp add iptv-api \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact