记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

开源IPTV源服务程序使用教程

 开源IPTV源服务程序使用教程

 
GitHub:https://github.com/239144498/Streaming-Media-Server-Pro
docker项目地址:https://hub.docker.com/r/239144498/streaming
 

部署教程

极简部署教程:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8252305

完整部署教程:https://www.cnblogs.com/1314h/p/16651157.html

使用教程包括程序部署和每个接口使用说明等,尽量保证每个人都会使用,部署总结概括需要做到以下及几点:

  1. 安装python或者docker(二选一必装)
  2. 安装PostgreSql或者MySQL数据库(二选一推荐安装)
  3. 安装Redis数据库(可选安装)
  4. 一定的耐心(看完下面详细的教程)

先说明我的配置

服务器1:1G内存+10G存储,mysql数据库

服务器2:redis数据库 200M,托管在服务商中

分布式下载5台,托管在服务商中

​ 下载 ts + 上传数据库 ~ 1s时间

以上仅供参考,实际1台服务器即可使程序正常运行。

服务器位置最好在香港、日本等物理距离近的地方,尽量不要选择国内主机。

第一步

安装Mysql(建议选择安装)

要求版本5.1.6及以上

部署教程自行百度,如果不安装将使用不了视频缓冲区功能(online.m3u8接口将失效),不安装就跳到第二步

开启mysql后看下面

执行以下sql命令,不会就百度

创建数据库
CREATE DATABASE media 
创建video表
create table media.video(     vname varchar(30) not null,     CONSTRAINT video_pk PRIMARY KEY (vname),     vcontent  MEDIUMBLOB NOT NULL,     vsize varchar(20) NULL,     ctime  timestamp(0) default now() ); 
设置定时删除事件
SET GLOBAL event_scheduler = ON;	# 开启事件调度器 
use media; 
DROP event IF EXISTS auto_delete; CREATE EVENT auto_delete ON SCHEDULE EVERY 30 minute     # xx分钟根据数据库的存储和查询性能综合决定 DO TRUNCATE video; 

在config.ini配置文件中替换你的ip、port等参数

第二步

安装Redis(可选安装)

部署教程自行百度,该数据库用于缓存参数,以及方便多服务器共享数据,帮助重启服务数据不丢失。

我在程序中专门设置了内存缓存参数,所以也可以不安装,但缺点重启服务数据丢失。

不安装就跳到第三步

开启Redis后看下面

在config.ini配置文件中替换你的ip、port等参数

第三步

config.ini文件配置(重要必选)

config.ini在程序路径.app/assets/config.ini

根据安装数据库实际情况配置参数,例如MySQL,在config.ini更改为你的参数即可,PostgreSql数据库类似填写,不懂就不填。

[default] # defaultdb 选择参数:mysql | postgresql | 留空则不连接数据库 defaultdb =  [mysql] # 将下列5行改为你的参数 host     = 192.168.1.x 	# ip地址 user     = root	# 用户名 password = 123456789	# 密码 port     = 3306	# 端口 database = media	# 数据库名 

设置外网访问:你的ip+端口 或者 域名 + 端口

# 你的外网映射端口号,默认8080 port = 8080 # 修改192.168.1.x为你的ip或域名 localhost = http://192.168.1.x:%(port)s 

视频下载选项,部署了分布式下载选online,否则选local,该前提是已安装数据库

# downchoose参数:local | online downchoose = local 

部署分布式代码下载,你需要点击跳转部署(前提:需要在线托管服务,或者主机)

免费下载code托管:

​ pythonanywhere:https://www.pythonanywhere.com

​ heroku:https://www.heroku.com

免费redis:https://console.upstash.com

设置视频缓冲区,安装了数据库看这里

# 视频缓冲区大小,local推荐2-3,online推荐4-5 # 实际根据网络带宽和计算机性能决定 vbuffer = 3 # 分布式视频下载器 # local示例["https://"+localhost+"/url3?url=", ...] # online示例["https://www.example1.com/url3?url=", ...] # 有多个分布式下载链接使用方法如下,否则参数不要改 downurls = ["%{localhost}s/url3?url=",             "https://www.example1.com/url3?url=",             "https://www.example2.com/url3?url=",...] 

可选项

程序默认使用我提供的EPG节目单(每日会自动更新),如果你需要创建该脚本,需要在config.ini配置文件提供xmlowner、xmlrepo、xmlaccess_token这三个参数。

# 存放节目单厂库 xmlowner = 用户名 xmlrepo = 仓库名 xmlaccess_token = token 

下面是进阶操作,不懂就不改

[advanced] host1 = 4gtvfreepc-cds.cdn.hinet.net host2 = 4gtvfree-cds.cdn.hinet.net # tvglogo可选参数:fsLOGO_MOBILE 台标 | fsHEAD_FRAME 播放预览 tvglogo = fsHEAD_FRAME # 对所有接口启用代理,没有就不用配置 # 代理有验证: http://user:password@10.10.1.10:3128 | 代理无验证: http://10.10.1.10:3128 proxies = 

第四步

安装Python(二选一,必选)

安装教程自行百度,该项是程序的核心支撑服务,一定要安装!

安装Python后看下面

命令终端执行

git clone https://github.com/239144498/Streaming-Media-Server-Pro.git 

安装python环境依赖

pip install -r requirements.txt 

额外功能

该程序支持自定义源,如果你有自己的源,可以添加到该程序中,在app/assets/diychannel.txt文件中添加你的频道,如下图:

image-20220905143823893

让程序跑起来

python main.py 浏览器访问:http://ip:8080/program.m3u 

用Docker怎么运行(二选一,必选)?

docker项目地址:https://hub.docker.com/r/239144498/streaming

默认各位已经安装好docker环境

替代第四步,执行以下命令

拉取镜像

docker pull 239144498/streaming 

创建存放配置文件的文件夹

mkdir /home/assets 

进入文件夹

cd /home/assets 

创建并编辑config.ini文件

vim config.ini	 

按i再输入你的配置文件内容,完成后ESC 输入”:wq!“回车

查看镜像

docker images 获取 IMAGE_ID 

运行容器

docker run -itd -v /home/assets:/code/app/assets -p 8080:8080 --restart=always --name server 上一步的IMAGE_ID   浏览器访问:http://ip:8080/program.m3u 

扩展操作

查看容器运行状态
docker ps -a 
进入容器命令终端
docker ps -a 找到 containerID docker exec -it containerID /bin/bash 
查看端口开放状态
netstat -anp | grep 8080 
重启容器
docker restart IMAGE_ID 

完整配置信息

# 先看教程,不懂就不要乱改参数,后果将导致程序运行出错! [default] # defaultdb 可选参数:mysql | postgresql | 不连接数据库则留空 defaultdb = # downchoose 可选参数:local | online downchoose = local # 你的外网映射端口号,默认8080 port = 8080 # 修改192.168.1.x为你的ip或域名 localhost = http://192.168.1.xxx:%(port)s # vbuffer视频缓冲区大小,downchoose:local推荐2-3,online推荐4-5,实际根据通信带宽和计算机性能决定 vbuffer = 3 # 以下3个参数不懂就不要动 downurls = ["%(localhost)s/url3?url="]  # 进阶操作,默认不用改 [advanced] host1 = 4gtvfreepc-cds.cdn.hinet.net host2 = 4gtvfree-cds.cdn.hinet.net # tvglogo可选参数:fsLOGO_MOBILE 台标 | fsHEAD_FRAME 播放预览 tvglogo = fsHEAD_FRAME # 对所有接口启用代理,没有就不用配置 # 代理有验证: http://user:password@10.10.1.10:3128 | 代理无验证: http://10.10.1.10:3128 proxies =  [mysql] host     = 192.x.91.34 user     = root password = 123456789 port     = 3306 database = media  [postgresql] host     = 192.x.91.34 user     = root password = 123456789 port     = 5432 database = media  [redis] host     = 192.x.91.34 port     = 6379 password = 123456789  [other] # 存放节目单厂库 xmlowner = xmlrepo = xmlaccess_token = # 接口限制指定ip,默认使用我提供的接口  

接口使用教程

GET /online.m3u8

请求参数

参数名 位置 类型 必填 说明
host query string 反向代理域名,例http://www.example.com
fid query string 频道参数,例4gtv-4gtv018
hd query string 视频清晰度,可选360、480、720、1080

实例请求:http://127.0.0.1:8080/online.m3u8?fid=4gtv-4gtv018&hd=720&host=http://www.example.com

host参数用于反向代理,解决本地部署且未挂梯子工具问题,怎么部署反代自行百度

介绍:客户端请求后将多个ts下载到数据库作为缓冲区,下次客户端请求call.ts就从数据库读取。

GET /call.ts

请求参数

参数名 位置 类型 必填 说明
fid query string 频道参数,例4gtv-4gtv018
seq query string 60466177,由/online.m3u8自动产生
hd query string 视频清晰度,可选360、480、720、1080

实例请求:http://127.0.0.1:8080/call.ts?fid=litv-longturn11&seq=60466177&hd=1080

介绍:从数据库读取视频返回给客户端。

GET /channel.m3u8

请求参数

参数名 位置 类型 必填 说明
host query string 反向代理域名,例http://www.example.com
fid query string 频道参数,例4gtv-4gtv018
hd query string 视频清晰度,可选360、480、720、1080

实例请求:http://127.0.0.1:8080/channel.m3u8?fid=4gtv-4gtv018&hd=720&host=http://www.example.com

介绍:客户端请求后生成视频链接参数,下次客户端请求/live/{file_path}接口默认本机反代,或者使用host参数作为反代,同时起到分流作用,减轻服务器压力。

GET /channel2.m3u8

请求参数

参数名 位置 类型 必填 说明
fid query string 频道参数,例4gtv-4gtv018
hd query string 视频清晰度,可选360、480、720、1080

实例请求:http://127.0.0.1:8080/channel2.m3u8?fid=4gtv-4gtv018&hd=720

介绍:重定向视频链接给客户端。

GET /program.m3u

请求参数

参数名 位置 类型 必填 说明
host query string 反向代理域名,例http://www.example.com
hd query string 视频清晰度,可选360、480、720、1080
name query string 频道参数,例4gtv-4gtv018

实例请求:http://127.0.0.1:8080/program.m3u?&hd=720&host=http://www.example.com

介绍:返回4gtv全部频道表,兼容手机平板电脑全平台,例如用potplayer播放器使用。

GET /EPG.xml

请求参数

实例请求:http://127.0.0.1:8080/EPG.xml

介绍:返回所有频道未来3天将播放哪些节目

GET /live/{file_path}

请求参数

参数名 位置 类型 必填 说明
file_path path string 视频url路径
token1 query string token,例FzwRIP1td0zsoDAfEz9
expires1 query integer expires,例1661951225

实例请求:http://127.0.0.1:8080/live/pool/4gtv-live012/4gtv-live-mid/7201661716300.ts?token1=FzwRIP1td0zsoDAfEz9-bg&expires1=1661951225

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):