iptv-api

更新日志(Changelog)

v1.7.2

2025/5/26

🚀 新功能


🌟 优化


🐛 修复


🗑️ 移除


English ### 🚀 New Features ### --- - Added support for setting `scheduled update interval`. Both `CLI`, `GUI`, and `Docker` now support scheduled interval updates. You can set the interval for executing update tasks via the `update_interval` configuration. The default is `12 hours`. This does not apply to workflows, which still update daily at `6:00 and 18:00`. ### 🌟 Optimization ### --- - Updated channel alias data. Contributions for more aliases are welcome. See: 💖 [Channel Alias Collection Plan](https://github.com/Guovin/iptv-api/discussions/1082) ### 🐛 Bug Fixes ### --- - Fixed the application of the public streaming APP_HOST configuration (#1094) - Fixed the issue where results were not saved when speed test was not enabled in some scenarios (#1092) - Fixed failure to "unfreeze" channel cache results - Fixed some devices unable to open the `GUI` interface ### 🗑️ Removal ### --- - Removed Docker `UPDATE_CRON` environment variable. Please use the `update_interval` parameter in the `config/config.ini` file to control the update interval.

v1.7.1

2025/5/9

🚀 新功能


🌟 优化


🐛 修复


🗑️ 移除


[!NOTE] 有小伙伴对部署后首次更新时间变长有疑问,其实这是正常的。 因为从v1.7.0开始,为了提升频道测速准确性,默认对接口进行全量测速。 目前首次运行一般30分钟左右,如果是新增的频道比较多首次运行时间会比较长。 但这并不会影响使用,由于默认模板已经内置了部分更新结果(output/cache.pkl.gz),部署后可立即访问使用。 同时测速阶段可根据历史数据跳过无效接口,无需担心,后续更新所需时间会明显减少。 如果你介意,可开启Host共享模式(speed_test_filter_host = True),相同Host的接口会共享测速结果,可以大幅降低测速所需时间,但结果准确性也会下降。

English ### 🚀 New Features ### --- - Added support for obtaining interface `location` and `ISP` (implemented using the `IPIP database`), supports keyword filtering. You can configure `location` and `isp` to generate desired results. It is recommended to prioritize the location and ISP close to the usage environment to improve playback performance (#1058). - Added support for sorting interfaces and outputting result logs without enabling speed testing. ### 🌟 Optimizations ### --- - Optimized caching of `IPv6` results. - Adjusted the `frozen result threshold` by adding `maximum latency` and `minimum speed` limits. - Adjusted the default configuration `ipv_type_prefer = auto`, which automatically prioritizes sorting of IPv4 and IPv6 results based on the network environment. - Renamed the channel result log file to `result.log`. - Updated descriptions of some configuration parameters. ### 🐛 Bug Fixes ### --- - Fixed the issue with matching `IPv6 results with parameters` (#1048). - Fixed the failure to generate whitelist results (#1055). ### 🗑️ Removals ### --- - Removed invalid `IPv6 subscription sources`. > [!NOTE] > Some users have raised concerns about the longer initial update time after deployment. This is actually normal. > Starting from `v1.7.0`, to improve the accuracy of channel speed tests, > full speed testing of interfaces is enabled by default. > The first run usually takes about `30 minutes`. If there are many new channels, the initial run time may be longer. > However, this does not affect usage, as the default template already includes some pre-updated results > (`output/cache.pkl.gz`), allowing immediate access after deployment. > During the speed test phase, invalid interfaces can be skipped based on historical data, so there is no need to worry. > Subsequent updates will take significantly less time. > If you are concerned, you can enable Host sharing mode (`speed_test_filter_host = True`), where interfaces with the > same Host share speed test results. This can greatly reduce the time required for speed testing, > but the accuracy of the results may decrease.

v1.7.0

2025/5/1

🚀 新功能


🌟 优化


🐛 修复


🗑️ 移除


English ### 🚀 New Features ### --- - Added `Channel Alias` feature (`config/alias.txt`) to improve channel name matching. - Added `EPG` feature (subscription file configuration `config/epg.txt`) to display channel program information. - Support for `Playback Interface` retrieval and generation. - Added `historical results` freezing and unfreezing. `Freezing`: Invalid results are excluded from speed testing. `Unfreezing`: Automatically unfreezes and retests when no results are available. - Added `Maximum Resolution` limit `max_resolution`. - Support for speed testing and generation of interfaces with `Request Headers`. Requires player support for playback and can be controlled via `open_headers`. - Added configuration for speed test concurrency `speed_test_limit` to control speed test load pressure. - Added `Host Data Sharing` configuration `speed_test_filter_host` to allow interfaces with the same Host address to share speed test results. - Added Stream Statistics GUI button. ### 🌟 Optimizations ### --- - Refactored `Speed Test and Sorting` logic to adapt to more types of interfaces (#1009). - Provided `Built-in Results` to address the issue of no results during the first run (may be unstable, recommended to use updated results). - Optimized interface speed testing to default to `Full Interface Speed Test`, resolving inaccuracies in speed tests for some interfaces with shared Host results. - Adjusted speed test results to sort by `Rate`, with `Resolution` no longer included, resolving the issue of low-rate interfaces appearing at the top. - Defaulted to enabling `Streaming`, adjusted `HLS` fragment configuration, and recommended using `HLS` interfaces to alleviate stuttering. - Refactored the handling logic for interface `Additional Information`. - Renamed speed test-related configuration items to `speed_test_*` and updated output log text. - Adjusted the default minimum interface rate to `0.5M/s`. - Updated the blacklist to include invalid interfaces and `audio` interfaces. ### 🐛 Bug Fixes ### --- - Fixed workflow execution issues by switching to the latest `Ubuntu` version (#1032). - Fixed the issue where the `M3U` subscription source whitelist was not working (#1019). - Fixed speed test issues for some `Multicast Sources` (#1026). - Fixed the failure to generate results for interface protocol classification. ### 🗑️ Removals ### --- - Removed some invalid subscription sources. - Removed proxy update feature `open_proxy`. - Removed retention mode `open_keep_all`. - Removed duplicate execution `sort_duplicate_limit`.

v1.6.3

2025/4/3

English - ✨ Added support for RTMP streaming (not supported by workflows), supporting `Live/HLS` streaming. Subscription results can be converted to the corresponding mode for streaming output, and local video sources can be defined by creating `live` or `hls` directories in the `config` directory. - ✨ Merged Docker images into `guovern/iptv-api`, with the same size as the slim version. No longer distinguish between full and slim versions. `latest` is the latest version, and historical versions can be obtained, such as `1.6.2`. - ✨ Added support for minimizing the GUI to the system tray. - ✨ Added support for dual-stack `IPv4/IPv6` access, supporting `txt` and `m3u` to distinguish between IPv protocol types. - ✨ Added build version number, supporting the retention of historical versions. - 🐛 Optimized the issue of non-URL keyword matching in the blacklist. - 🐛 Fixed the `no crontab for root` prompt when starting the Docker container. - 🐛 Fixed the issue of filtering IPv6 results.

v1.6.2

2025/3/4

English - ✨ Added support for CDN proxy acceleration, configuration item: `cdn_url`, for accelerating access to subscription sources and channel icon resources. You can follow the public account and send a private message to `get the proxy address` - ✨ Added support for `rtsp` protocol interface - ✨ Added support for fuzzy matching of local source channel names - ✨ Added subscription source `Guovin/iptv-database`, from the new repository [IPTV-Database](https://github.com/Guovin/iptv-database) - 🐛 Fixed support for matching interfaces with verification information (#946) - 🐛 Fixed the issue with the output result file where the interface URL was incomplete and some information was missing (#925) - 🪄 Optimized the running process and adjusted the default configuration: disabled multicast source and hotel source retrieval

v1.6.1

2025/2/21

English - 🎉 Preview: 💻[IPTV-Web](https://github.com/Guovin/iptv-web): IPTV live stream management platform, supports online playback and other features, under development... - ⚠️ Note: If upgrading from an older version, you need to manually delete the old version's result cache file `output/cache.pkl` - ✨ Added support for `IPv6 domain name resolution`, improving IPv6 interface recognition capability (#910) - ✨ Simplified Docker update time environment variable to `UPDATE_CRON`, supporting multiple time settings (#920) - ✨ Updated offline data for multicast sources and hotel sources - 🪄 Removed default proxy due to high access pressure causing failures, it is recommended to define your own proxy address for subscription sources and results, or follow the public account to get the proxy address - 🪄 Refactored channel data format from `tuple` to `dict`, added type definitions, optimized data processing, and adjusted directory structure - 🪄 Precompiled regex matching to improve efficiency - 🐛 Adjusted Docker `FFmpeg` build version to resolve issues with some domain names not being able to get resolution ( #864) - 🐛 Fixed issue of creating duplicate scheduled tasks when Docker restarts (#916) - 🐛 Merged default and user configurations, users only need to fill in the changes (#892, @wongsyrone) - 🐛 Fixed issue of result generation failure (#863, #870, #875)

v1.6.0

2025/1/22

English - ✨ Added support for `local sources` - ✨ Using new proxy address `https://ghproxy.cc` - ✨ Added support for modifying Docker scheduled task time, environment variables: `UPDATE_CRON1`, `UPDATE_CRON2` (#440) - ✨ Added configuration for the number of speed tests for the same domain `sort_duplicate_limit` - ✨ Added `Guangdong Unicom` RTP - 🐛 Fixed compensation mode result output issue (#813) - 🐛 Fixed issue with interface matching without domain suffix and spaces (#832, #837) - 🐛 Fixed error writing to file in no result state (#841) - 🐛 Fixed GUI unable to save speed test delay settings - 🐛 Fixed Docker version file loss issue (#800) - 🪄 `open_use_old_result` renamed to `open_history` - 🪄 Optimized escaping of `%` symbol in interfaces (#853) - 🪄 Optimized deduplication by interface host (#846) - 🪄 Supported setting `ipv_type_prefer` to empty, allowing all types to be sorted by speed for output results

v1.5.9

2025/1/8

English - ❤️ First update of 2025, wishing everyone a Happy New Year and all the best - ✨ Detailed tutorial articles have been published on the `Govin` public account, welcome to follow for more information - ✨ Added support for `rtmp` protocol interface (#780) - ✨ Added support for modifying update time position (`update_time_position`) (#755) - ✨ Added support for modifying time zone (`time_zone`) (#759) - ✨ Updated offline data for multicast sources and hotel sources, added `Guangdong Mobile Multicast RTP` (#773) - ✨ Updated GitHub CDN proxy address (#796) - ✨ GUI is automatically built and released based on the source code using GitHub workflows, the only download method is [Release](https://github.com/Guovin/iptv-api/releases). If there are false positives from security software, please add it to the trust list - ✨ Added version information print output - ✨ Updated some tutorial document images - 🐛 Fixed m3u update time logo display issue (#794) - 🐛 Fixed `cookie illegal key` issue during speed test phase (#728, #787) - 🐛 Fixed whitelist interface sorting and interface information naming issue (#765) - 🐛 Fixed abnormal results issue for multicast source updates - 🐛 Fixed empty result directory issue - 🪄 Adjusted interface status code judgment to only process `200` status code (#779) - 🪄 Adjusted to hide interface information by default, compatible with more players

v1.5.8

2024/12/30

English - ✨ Recommended update, tested to achieve instant playback experience, significantly reducing playback failures - ✨ Support for obtaining resolution, GUI users need to manually install `FFmpeg` (#608) - ✨ Support for `text/plain` result output, solving display issues in some players (#736) - ✨ Added default subscription sources - 🐛 Fixed abnormal speed results for IPv6 interface speed tests (#739) - 🐛 Fixed error output in GUI (#743) - 🐛 Fixed abnormal resolution value comparison (#744) - 🐛 Fixed logo display issue (#762) - 🪄 Optimized interface speed test method, compatible with various `m3u8` interface types - 🪄 Adjusted GitHub workflow execution result IPv type to automatic, selecting IPv4 or IPv6 based on network environment, with manual setting option for `ipv_type_prefer` - 🪄 Updated some configuration parameter descriptions

v1.5.7

2024/12/23

English - ❤️ Recommended to follow the WeChat public account (Govin) to subscribe to update notifications and articles on usage tips, as well as for Q&A and discussion. - ⚠️ This update involves configuration changes. Refer to the latest `config/config.ini`. Workflow users need to copy the latest configuration to `user_config.ini`, and Docker users need to clear the old configuration mounted on the host. - ✨ Added compensation mechanism mode (`open_supply`) to control whether to enable the compensation mechanism. When the number of results meeting the conditions is insufficient, potentially available interfaces will be supplemented into the results. - ✨ Added support for modifying the server port through configuration (`app_port`). - ✨ Added ghgo.xyz CDN proxy acceleration. - ✨ Added comments to the config.ini configuration file (#704). - ✨ Updated offline data for hotel sources and multicast sources. - 🐛 Fixed the issue of abnormally low speed rates for IPv6 interface speed tests (#697, #713). - 🐛 Fixed the issue of possible timeout waiting in the Sort interface (#705, #719). - 🐛 Fixed the issue where historical whitelist results caused the removal of the whitelist to be ineffective (#713). - 🐛 Fixed the issue where the subscription source whitelist was ineffective (#724). - 🪄 Optimized the update time URL to use the first channel interface address. - 🪄 Optimized the interface source preference to be set to empty, allowing all sources to be sorted by speed for output results.

v1.5.6

2024/12/17

English - ❤️ Recommend following the WeChat public account (Govin) to subscribe to update notifications and articles on usage tips, as well as for Q&A and discussion. - ⚠️ This update involves configuration changes. Refer to the latest `config/config.ini`. Workflow users need to copy the latest configuration to `user_config.ini`. - ✨ Added whitelist feature, supporting custom interface and subscription source keyword whitelists. The file is located at `config/whitelist.txt`. To avoid conflict, workflow users are advised to rename the file with a `user_` prefix ( #584, #599). - ✨ Added blacklist feature, supporting interface keyword blacklists. The file is located at `config/blacklist.txt`. To avoid conflict, workflow users are advised to rename the file with a `user_` prefix. - ✨ Added subscription source list feature. The file is located at `config/subscribe.txt`. To avoid conflict, workflow users are advised to rename the file with a `user_` prefix. - ✨ Added support for fetching interface speed and minimum speed filtering (`open_filter_speed`, `min_speed`). - ✨ Added support for modifying Docker server port environment variable (`APP_PORT`) (#619). - ✨ Added jsdelivr proxy address, supporting TLSv1.1 and TLSv1.2 protocols (#639). - ✨ Added switches for offline data and network data queries (`open_use_cache`, `open_request`). - ✨ Added control for whether to use offline data and network data queries (`open_use_cache`, `open_request`). - ✨ Added support for skipping the check for IPv6 support (`ipv6_support`). - ✨ Adjusted GUI layout, added speed test settings page, and links to edit whitelist/blacklist and subscription source list text files. - 🐛 Fixed issue where some m3u8 interface speed tests caused task timeouts (#621). - 🐛 Fixed GUI log thread occupation issue (#655). - 🐛 Added display of update time in configuration documentation (#622). - 🪄 Optimized interface speed test method, removed `yt-dlp` (#621). - 🗑️ Removed configurations: `open_ffmpeg`, `subscribe_urls`, `resolution_weight`, `response_time_weight`, `url_keywords_blacklist`.

v1.5.5

2024/12/2

English - ✨ Added some subscription sources, removed invalid sources - 🐛 Adjusted GitHub proxy address to fix access failure (#603) - 🐛 Fixed repeated pop-up window issue during GUI speed test phase (#600) - 🐛 Corrected Ningxia/Qinghai template channels (#594) - 🐛 Fixed issue with empty IPv6 results - 🪄 Optimized Docker speed test CPU usage (#606) - 🛠 Adjusted some default configurations

v1.5.4

2024/11/29

English - ⚠️ Python has been upgraded to version 3.13, which no longer supports Win7. If needed, please use version v1.5.3. - ⚠️ The GitHub repository has been renamed to iptv-api. If you are using the old API address, please update it to the new one promptly. - ⚠️ New Docker image repository is now active: guovern/iptv-api (the old tv-driver is now guovern/iptv-api:latest, and tv-requests is now guovern/iptv-api:lite). iptv-api:latest is the full version, and iptv-api:lite is the lightweight version. Please use the new names to pull the images, as the old repository will no longer be maintained. - ❤️ A new way to follow the WeChat official account (search for: Govin) has been added. It is recommended to follow the official account to subscribe to update notifications, usage tips, and engage in discussions. - ✨ The speed measurement method has been changed to yt-dlp, and the speed measurement logic has been refactored to improve accuracy, stability, and efficiency, reducing interface switching delay (#563). - ✨ Support for ARM v7 has been added (#562). - ✨ Dual result API access (ip/m3u, ip/txt) has been added (#581). - ✨ A command to start the API service (pipenv run service) has been added. - 🪄 The size of the Docker image has been optimized (Full version: -25%, Lite version: -66%). - 🐛 Fixed the information delimiter issue for some players that do not support it (#581).

v1.5.3

2024/11/19

⚠️ 这将是支持 Win7 的最后一个版本

English ⚠️ This will be the last version supporting Win7 - 🐛 Fixed the issue where the GUI setting for "Display No Results Category" failed to save (#564). - 🐛 Fixed the error when starting from the command line (#567).

v1.5.2

2024/11/15

English - ✨ Added local channels for each province. - ✨ Added configuration to control the display of the No Results Channel Category (open_empty_category) (#551). - ✨ Adjusted interface sources (#526). - 🪄 Optimized the speed of channel data insertion. - 🪄 Optimized IPv6 speed test logic to resolve no results issues. - 🪄 Optimized page service startup and Docker scheduled task log output. - 🪄 Adjusted default configurations: number of interfaces urls_limit=10, etc., and added subscription sources. - 🐛 Fixed the issue of the program stopping (#527). - 🐛 Fixed the issue of Win7 GUI startup (#536). - 🗑️ Removed some invalid subscription sources. - 🗑️ Removed the domain blacklist configuration (domain_blacklist). Please use the interface keyword blacklist ( url_keywords_blacklist) instead.

v1.5.1

2024/11/5

English - ✨ Added channel interface whitelist: Not participating in speed testing, always kept at the very front of the results. (#470) Usage: 1. Add $! after the template channel interface address (e.g., Guangdong Pearl River, http://xxx.m3u$!). 2. Additional information can be appended (e.g., Guangdong Pearl River, http://xxx.m3u$! Additional Information) ( #470). For more interface whitelists, please discuss at https://github.com/Guovin/iptv-api/issues/514. - ✨ Added 🈳 No Results Channel Category: Channels without results are categorized under this bottom category by default (#473). - ✨ Interface addresses now include source type descriptions. - ✨ Default templates now include Guangdong People's Livelihood (#481) and Guangzhou Comprehensive (#504). - 🪄 Optimized preferred result output. - 🪄 Refactored configuration reading and added global constants. - 🐛 Fixed issues with partial interface matching failures. - 🐛 Fixed problems with empty update results, etc. (#464, #467). - 🐛 Fixed the issue of spaces being copied with the interface address (#472 by:@haohaitao). - 🐛 Fixed the unpack error in result logs. - 🐛 Fixed the issue of empty interface information in results (#505). - 🗑️ Removed txt result files from the repository root directory. Please check the result files in the output directory.

v1.5.0

2024/10/25

English - ✨🛠 Added result preference settings: 1. Source priority (origin_type_prefer) and quantity settings (hotel_num, multicast_num, subscribe_num, online_search_num) 2. IPv type priority (ipv_type_prefer) and quantity settings (ipv4_num, ipv6_num) - ✨🛠 Added control for API speed test timeout (sort_timeout) (#388) - ✨🛠 Added control to enable or disable page service (open_service) (this configuration can be used on platforms like QingLong to stop running after task completion) - ✨🛠 Added control to show or hide API related information (open_url_info) (#431) - ✨ Added support for m3u address subscription sources (#389) - ✨ Added 🏛 Classic Theater - 🪄 Optimized Docker ARM64 FFmpeg support (it is recommended to use the requests image for some ARM devices that cannot run the driver image) - 🪄 Optimized obtaining non-numeric domain IP addresses for multicast (#410) - 🪄 Optimize the issue of non-existent new parameters when using old configuration files, use default values - 🐛 Fixed issues with converting non-standard txt files to m3u format (#422) - 🐛 Fixed issues with failing to obtain IPv6 interface information (#452)

v1.4.9

2024/10/11

v1.4.8

2024/09/27

v1.4.7

2024/09/26

v1.4.6

2024/9/20

v1.4.5

2024/9/19

v1.4.4

2024/9/14

v1.4.3

2024/9/11

v1.4.2

2024/9/10

v1.4.1

2024/9/9

v1.4.0

2024/9/5

v1.3.9

2024/8/30

v1.3.8

2024/8/29

v1.3.7

2024/8/27

v1.3.6

2024/8/22

v1.3.5

2024/8/14

v1.3.4

2024/7/31

v1.3.3

2024/7/19

v1.3.2

2024/7/10

v1.3.1

2024/7/9

v1.3.0

2024/7/1

v1.2.4

2024/6/21

v1.2.3

2024/6/17

v1.2.2

2024/6/16

v1.2.1

2024/6/15

v1.2.0

2024/6/9

v1.1.6

2024/5/17

v1.1.5

2024/5/17

v1.1.4

2024/5/15

v1.1.3

2024/5/8

v1.1.2

2024/5/7

v1.1.1

2024/4/29

v1.1.0

2024/4/26

v1.0.9

2024/4/25

v1.0.8

2024/4/24

v1.0.7

2024/4/19

v1.0.6

2024/4/12

v1.0.5

2024/4/10

v1.0.4

2024/4/8

v1.0.3

2024/4/7

v1.0.2

2024/4/5

v1.0.1

2024/4/1


v1.0.0

2024/3/30


2024/3/29


2024/3/26


2024/3/25


2024/3/21


2024/3/18


2024/3/15


2024/3/13


2024/3/6


2024/3/4