guovern/iptv-api

By guovern

Updated 7 days ago

📺IPTV直播源自动更新平台『🤖全自动采集、筛选、测速、生成🚀』

Image
Networking
API management
Web servers
58

500K+

guovern/iptv-api repository overview

快速上手

1. 拉取镜像
docker pull guovern/iptv-api:latest
2. 运行容器
docker run -d -p 80:8080 guovern/iptv-api
环境变量:
变量描述默认值
PUBLIC_DOMAIN公网域名或IP地址,决定外部访问或推流结果的Host地址127.0.0.1
PUBLIC_PORT公网端口,设置为映射后的端口,决定外部访问地址和推流结果地址的端口80
NGINX_HTTP_PORTHTTP服务端口,外部访问需要映射该端口8080
挂载:

实现宿主机文件与容器文件同步,修改模板、配置、获取更新结果文件可直接在宿主机文件夹下操作,在上述运行命令后添加以下参数

挂载配置目录:

-v /iptv-api/config:/iptv-api/config

挂载结果目录:

-v /iptv-api/output:/iptv-api/output
目录说明:
目录路径说明
config配置文件目录,包含配置文件、模板文件等
config/config.ini配置参数文件
config/rtp各地区运营商组播源ip
config/demo.txt频道模板
config/alias.txt频道别名
config/blacklist.txt接口黑名单
config/whitelist.txt接口白名单
config/subscribe.txt频道订阅源列表
config/local.txt本地源文件
config/epg.txtEPG订阅源列表
output结果文件目录,包含生成的结果文件等
output/data结果数据缓存目录
output/epgEPG结果目录
output/ipv4IPv4结果目录
output/ipv6IPv6结果目录
output/result(.m3u/txt)m3u/txt结果
output/hls(.m3u/txt)RTMP推流hls结果
output/log日志文件目录
output/log/result.log有效结果日志
output/log/speed_test.log测速日志
output/log/statistic.log统计结果日志
output/log/nomatch.log未匹配频道记录
source.json点播源配置文件
配置:

以下配置项位于config/config.ini文件中,支持通过配置文件或环境变量(配置项同名)实现修改,修改保存后重启即可生效

配置项描述默认值
open_update开启更新,用于控制是否更新接口,若关闭则所有工作模式(获取接口和测速)均停止True
open_empty_category开启无结果频道分类,自动归类至底部False
open_update_time开启显示更新时间True
open_url_info开启显示接口说明信息,用于控制是否显示接口来源、分辨率、协议类型等信息,为 $ 符号后的内容,播放软件使用该信息对接口进行描述,若部分播放器(如 PotPlayer)不支持解析导致无法播放可关闭False
open_epg开启 EPG 功能,支持频道显示预告内容True
open_m3u_result开启转换生成 m3u 文件类型结果链接,支持显示频道图标True
urls_limit单个频道接口数量10
update_time_position更新时间显示位置,需要开启 open_update_time 才能生效,可选值: top、bottom;top: 显示于结果顶部,bottom: 显示于结果底部top
update_mode定时执行更新时间模式,不作用于工作流;可选值: interval、time; interval: 按间隔时间执行,time: 按指定时间点执行interval
update_interval定时执行更新时间间隔,仅在update_mode = interval时生效,单位小时,设置 0 或空则只运行一次12
update_times定时执行更新时间点,仅在update_mode = time时生效,格式 HH:MM,支持多个时间点逗号分隔
update_startup启动时执行更新,用于控制程序启动后是否立即执行一次更新True
time_zone时区,可用于控制定时执行时区或显示更新时间的时区;可选值: Asia/Shanghai 或其它时区编码Asia/Shanghai
source_file模板文件路径config/demo.txt
final_file生成结果文件路径output/result.txt
open_service开启页面服务,用于控制是否启动结果页面服务;如果使用青龙等平台部署,有专门设定的定时任务,需要更新完成后停止运行,可以关闭该功能True
app_port页面服务端口,用于控制页面服务的端口号5180
public_scheme公网协议;可选值: http、httpshttp
public_domain公网 Host 地址,用于生成结果中的访问地址,默认使用本机 IP127.0.0.1
cdn_urlCDN 代理加速地址,用于订阅源、频道图标等资源的加速访问
open_driver开启浏览器运行,若更新无数据可开启此模式,较消耗性能False
open_hotel开启酒店源功能,关闭后所有酒店源工作模式都将关闭False
open_multicast开启组播源功能,关闭后所有组播源工作模式都将关闭False
open_local开启本地源功能,将使用模板文件与本地源文件(local.txt)中的数据True
open_subscribe开启订阅源功能True
open_online_search开启关键字搜索源功能False
open_hotel_foodie开启 Foodie 酒店源工作模式True
open_hotel_fofa开启 FOFA、ZoomEye 酒店源工作模式False
open_multicast_foodie开启 Foodie 组播源工作模式True
open_multicast_fofa开启 FOFA 组播源工作模式False
open_request开启查询请求,数据来源于网络(仅针对酒店源与组播源)False
open_use_cache开启使用本地缓存数据,适用于查询请求失败场景(仅针对酒店源与组播源)True
open_history开启使用历史更新结果(包含模板与结果文件的接口),合并至本次更新中True
open_headers开启使用 M3U 内含的请求头验证信息,用于测速等操作,注意:只有个别播放器支持播放这类含验证信息的接口,默认为关闭False
open_speed_test开启测速功能,获取响应时间、速率、分辨率True
open_filter_resolution开启分辨率过滤,低于最小分辨率(min_resolution)的接口将会被过滤,GUI 用户需要手动安装 FFmpeg,程序会自动调用 FFmpeg 获取接口分辨率,推荐开启,虽然会增加测速阶段耗时,但能更有效地区分是否可播放的接口True
open_filter_speed开启速率过滤,低于最小速率(min_speed)的接口将会被过滤True
open_supply开启补偿机制模式,用于控制当频道接口数量不足时,自动将不满足条件(例如低于最小速率)但可能可用的接口添加至结果中,从而避免结果为空的情况True
min_resolution接口最小分辨率,需要开启 open_filter_resolution 才能生效1920x1080
max_resolution接口最大分辨率,需要开启 open_filter_resolution 才能生效1920x1080
min_speed接口最小速率(单位 M/s),需要开启 open_filter_speed 才能生效0.5
speed_test_limit同时执行测速的接口数量,用于控制测速阶段的并发数量,数值越大测速所需时间越短,负载较高,结果可能不准确;数值越小测速所需时间越长,低负载,结果较准确;调整此值能优化更新时间10
speed_test_timeout单个接口测速超时时长,单位秒(s);数值越大测速所需时间越长,能提高获取接口数量,但质量会有所下降;数值越小测速所需时间越短,能获取低延时的接口,质量较好;调整此值能优化更新时间10
speed_test_filter_host测速阶段使用 Host 地址进行过滤,相同 Host 地址的频道将共用测速数据,开启后可大幅减少测速所需时间,但可能会导致测速结果不准确False
request_timeout查询请求超时时长,单位秒(s),用于控制查询接口文本链接的超时时长以及重试时长,调整此值能优化更新时间10
recent_days获取最近时间范围内更新的接口(单位天),适当减小可避免出现匹配问题30
ipv4_num结果中偏好的 IPv4 接口数量
ipv6_num结果中偏好的 IPv6 接口数量
ipv6_support强制认为当前网络支持 IPv6,跳过检测False
ipv_type生成结果中接口的协议类型;可选值: ipv4、ipv6、全部、all全部
ipv_type_prefer接口协议类型偏好,优先将该类型的接口排在结果前面;可选值: ipv4、ipv6、自动、autoauto
location接口归属地,用于控制结果只包含填写的归属地类型,支持关键字过滤,英文逗号分隔,不填写表示不指定归属地,建议使用靠近使用者的归属地,能提升播放体验
isp接口运营商,用于控制结果中只包含填写的运营商类型,支持关键字过滤,英文逗号分隔,不填写表示不指定运营商
origin_type_prefer结果偏好的接口来源,结果优先按该顺序进行排序,逗号分隔,例如: local,hotel,multicast,subscribe,online_search;local: 本地源,hotel: 酒店源,multicast: 组播源,subscribe: 订阅源,online_search: 关键字搜索;不填写则表示不指定来源,按照接口速率排序
local_file本地源文件路径config/local.txt
local_num结果中偏好的本地源接口数量10
subscribe_num结果中偏好的订阅源接口数量10
hotel_num结果中偏好的酒店源接口数量10
hotel_page_num酒店地区获取分页数量1
hotel_region_list酒店源地区列表,“全部”表示所有地区全部
multicast_num结果中偏好的组播源接口数量10
multicast_page_num组播地区获取分页数量1
multicast_region_list组播源地区列表,“全部”表示所有地区全部
online_search_num结果中偏好的关键字搜索接口数量0
online_search_page_num关键字搜索频道获取分页数量1
logo_url频道台标库地址
logo_type频道台标文件类型png
open_rtmp开启 RTMP 推流功能,需要安装 FFmpeg,利用本地带宽提升接口播放体验True
nginx_http_portNginx HTTP 服务端口,用于 RTMP 推流转发的 HTTP 服务端口8080
nginx_rtmp_portNginx RTMP 服务端口,用于 RTMP 推流转发的 RTMP 服务端口1935
rtmp_idle_timeoutRTMP 频道接口空闲停止推流超时时长,单位秒(s),用于控制接口无人观看时超过该时长后停止推流,调整此值能优化服务器资源占用300
rtmp_max_streamsRTMP 推流最大并发数量,用于控制同时推流的频道数量,数值越大服务器压力越大,调整此值能优化服务器资源占用10
3. 更新结果
接口描述
/默认接口
/m3um3u 格式接口
/txttxt 格式接口
/ipv4ipv4 默认接口
/ipv6ipv6 默认接口
/ipv4/txtipv4 txt接口
/ipv6/txtipv6 txt接口
/ipv4/m3uipv4 m3u接口
/ipv6/m3uipv6 m3u接口
/content接口文本内容
/log/result有效结果的日志
/log/speed-test所有参与测速接口的日志
/log/statistic统计结果的日志
/log/nomatch未匹配频道的日志
RTMP 推流:
  1. 如果是服务器部署,请务必配置PUBLIC_DOMAIN环境变量为服务器域名或IP地址,PUBLIC_PORT环境变量为公网端口,否则推流地址无法访问
  2. 开启推流后,默认会将获取到的接口(如订阅源)进行推流
  3. 如果需要对本地视频源进行推流,可在config目录下新建hls文件夹,将以频道名称命名的视频文件放入其中,程序会自动推流到对应的频道中
推流接口描述
/hls推流接口
/hls/txt推流txt接口
/hls/m3u推流m3u接口
/hls/ipv4/txt推流ipv4 txt接口
/hls/ipv4/m3u推流ipv4 m3u接口
/hls/ipv6/txt推流ipv6 txt接口
/hls/ipv6/m3u推流ipv6 m3u接口
/stat推流状态统计接口

Tag summary

Content type

Image

Digest

sha256:6cebd138c

Size

98.9 MB

Last updated

7 days ago

docker pull guovern/iptv-api:2.0.8