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

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

开源IPTV源服务程序使用教程
部署教程
使用教程包括程序部署和每个接口使用说明等,尽量保证每个人都会使用,部署总结概括需要做到以下及几点:
安装python或者docker(二选一必装)
安装PostgreSql或者MySQL数据库(二选一推荐安装)
安装Redis数据库(可选安装)
一定的耐心(看完下面详细的教程)
先说明我的配置
服务器1:1G内存+10G存储,mysql数据库
服务器2:redis数据库 200M,托管在服务商中
分布式下载5台,托管在服务商中
下载 ts + 上传数据库 ~ 1s时间
以上仅供参考,实际1台服务器即可使程序正常运行。
服务器位置最好在香港、日本等物理距离近的地方,尽量不要选择国内主机。
第一步
安装Mysql(建议选择安装)
要求版本5.1.6及以上
部署教程自行百度,如果不安装将使用不了视频缓冲区功能(online.m3u8接口将失效),不安装就跳到第二步
开启mysql后看下面
执行以下sql命令,不会就百度
创建数据库
XML/HTML代码
  1. CREATE DATABASE media
创建video表
XML/HTML代码
  1. create table media.video(
  2.     vname varchar(30) not null,
  3.     CONSTRAINT video_pk PRIMARY KEY (vname),
  4.     vcontent  MEDIUMBLOB NOT NULL,
  5.     vsize varchar(20) NULL,
  6.     ctime  timestamp(0) default now()
  7. );
设置定时删除事件
XML/HTML代码
  1. SET GLOBAL event_scheduler = ON;    # 开启事件调度器
XML/HTML代码
  1. use media;
XML/HTML代码
  1. DROP event IF EXISTS auto_delete;
  2. CREATE EVENT auto_delete
  3. ON SCHEDULE EVERY 30 minute     # xx分钟根据数据库的存储和查询性能综合决定  
  4. DO  
  5. TRUNCATE video;  
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数据库类似填写,不懂就不填。
XML/HTML代码
  1. [default]
  2. # defaultdb 选择参数:mysql | postgresql | 留空则不连接数据库
  3. defaultdb =
  4.  
  5. [mysql]
  6. # 将下列5行改为你的参数
  7. host     = 192.168.1.x   # ip地址
  8. user     = root          # 用户名
  9. password = 123456789     # 密码
  10. port     = 3306          # 端口
  11. database = media         # 数据库名
设置外网访问:你的ip+端口 或者 域名 + 端口
XML/HTML代码
  1. # 你的外网映射端口号,默认8080
  2. port = 8080
  3. # 修改192.168.1.x为你的ip或域名
  4. localhost = http://192.168.1.x:%(port)s
视频下载选项,部署了分布式下载选online,否则选local,该前提是已安装数据库
XML/HTML代码
  1. # downchoose参数:local | online
  2. downchoose = local
部署分布式代码下载,你需要点击跳转部署(前提:需要在线托管服务,或者主机)
免费下载code托管:
设置视频缓冲区,安装了数据库看这里
XML/HTML代码
  1. # 视频缓冲区大小,local推荐2-3,online推荐4-5
  2. # 实际根据网络带宽和计算机性能决定
  3. vbuffer = 3
  4. # 分布式视频下载器
  5. # local示例["https://"+localhost+"/url3?url=", ...]
  6. # online示例["https://www.example1.com/url3?url=", ...]
  7. # 有多个分布式下载链接使用方法如下,否则参数不要改
  8. downurls = ["%{localhost}s/url3?url=",
  9.             "https://www.example1.com/url3?url=",
  10.             "https://www.example2.com/url3?url=",...]
可选项
程序默认使用我提供的EPG节目单(每日会自动更新),如果你需要创建该脚本,需要在config.ini配置文件提供xmlowner、xmlrepo、xmlaccess_token这三个参数。
XML/HTML代码
  1. # 存放节目单仓库
  2. xmlowner = 用户名
  3. xmlrepo = 仓库名
  4. xmlaccess_token = token
下面是进阶操作,不懂就不改
XML/HTML代码
  1. [advanced]
  2. host1 = 4gtvfreepc-cds.cdn.hinet.net
  3. host2 = 4gtvfree-cds.cdn.hinet.net
  4. # tvglogo可选参数:fsLOGO_MOBILE 台标 | fsHEAD_FRAME 播放预览
  5. tvglogo = fsHEAD_FRAME
  6. # 对所有接口启用代理,没有就不用配置
  7. # 代理有身份验证: http://user:password@10.10.1.10:3128
  8. # 代理无身份验证: http://10.10.1.10:3128
  9. # 支持协议 http | https | socks5
  10. proxies =
第四步
安装Python(二选一,必选)
安装教程自行百度,该项是程序的核心支撑服务,一定要安装!
安装Python后看下面
命令终端执行
XML/HTML代码
  1. git clone https://github.com/239144498/Streaming-Media-Server-Pro.git
安装python环境依赖
XML/HTML代码
  1. pip install -r requirements.txt
额外功能
该程序支持自定义源,如果你有自己的源,可以添加到该程序中,在app/assets/diychannel.txt文件中添加你的频道,如下图:

让程序跑起来
python main.py 浏览器访问:http://ip:8080/program.m3u 
用Docker怎么运行(二选一,必选)?
默认各位已经安装好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 
完整配置信息
XML/HTML代码
  1. # 先看教程,不懂就不要乱改参数,后果将导致程序运行出错!
  2. [default]
  3. # defaultdb 可选参数:mysql | postgresql | 不连接数据库则留空
  4. defaultdb =
  5. # downchoose 可选参数:local | online
  6. downchoose = local
  7. # 你的外网映射端口号,默认8080
  8. port = 8080
  9. # 修改192.168.1.x为你的ip或域名
  10. localhost = 
  11. # vbuffer视频缓冲区大小,downchoose:local推荐2-3,online推荐4-5,实际根据通信带宽和计算机性能决定
  12. vbuffer = 3
  13. # 以下3个参数不懂就不要动  
  14. downurls = ["%(localhost)s/url3?url="]
  15.  
  16. # 进阶操作,默认不用改
  17. [advanced]
  18. host1 = https://4gtvfreepc-cds.cdn.hinet.net
  19. host2 = https://4gtvfree-cds.cdn.hinet.net
  20. # tvglogo可选参数:fsLOGO_MOBILE 台标 | fsHEAD_FRAME 播放预览
  21. tvglogo = fsHEAD_FRAME
  22. # 对所有接口启用代理,没有就不用配置
  23. # 代理有验证: http://user:password@10.10.1.10:3128 | 代理无验证: http://10.10.1.10:3128
  24. proxies = 
  25. debug = False
  26.  
  27. [mysql]
  28. host     = 192.x.91.34
  29. user     = root
  30. password = 123456789
  31. port     = 3306
  32. database = media
  33.  
  34. [postgresql]
  35. host     = 192.x.91.34
  36. user     = root
  37. password = 123456789
  38. port     = 5432
  39. database = media
  40.  
  41. [redis]
  42. host     = 192.x.91.34
  43. port     = 6379
  44. password = 123456789
  45.  
  46. [other]
  47. # 存放节目单厂库
  48. xmlowner = 
  49. xmlrepo = 
  50. xmlaccess_token = 
  51. # 接口限制指定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
 

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):