在互联网快速发展的今天,有成千上万个用户都有观看电视的需求,而我, 想打造一个让每个人都拥有自己的电视频道的目标,每个人都可以根据自己的喜欢去筛选喜欢的节目, 并且拥有免费且流畅的观看体验。
项目树形图
.
|-- Dockerfile
|-- LICENSE
|-- Procfile
|-- README.md
|-- app
| |-- __init__.py
| |-- assets
| | |-- EPG.xml
| | |-- config.ini
| | `-- diyepg.txt
| |-- common
| | |-- __init__.py
| | |-- diyEpg.py
| | |-- endecrypt.py
| | |-- generateEpg.py
| | |-- gitrepo.py
| | `-- tools.py
| |-- main.py
| |-- modules
| | |-- DBtools.py
| | |-- __init__.py
| | |-- dbMysql.py
| | `-- dbPostgresql.py
| |-- routers.py
| |-- settings.py
| `-- utile.py
|-- main.py
`-- requirements.txt
- 生成m3u文件
- 生成m3u8文件
- 视频中转(具有缓冲区)
- 异步下载视频
- 流媒体转发
- 生成EPG节目单 每日实时更新
- 分布式处理ts片段
- Redis缓存参数
- MySql或PostgreSql缓存视频
- 正向代理请求
- 自定义增加节目频道
- 自定义电视台标
- 清晰度可自定义
- 反向代理或套CDN请求(负载均衡)
我发现有恶意人员对体验接口进行24h不间断恶意攻击,这是体验接口1天内所使用的外出流量,平台发出了警告,为了长期发展即刻起开启接口限流,感谢理解。
图中多台服务器是一种理想情况下实现,实际python程序、redis和mysql都可以在同一台服务器中实现
- ① 客户端请求m3u8文件
- 1-> 查看内存是否缓存,否则服务器执行图流程2
- 2-> BackgroundTasks任务:执行图流程3,分布式下载数量根据设置的缓冲区大小决定
- 3<- 返回m3u8文件
- ② 客户端请求ts片
- 1-> 查看本地是否缓存,否则服务器执行图流程2
- 2-> BackgroundTasks任务:执行图流程3
- 3-> 查看内存是否已下载完成状态,下载完执行图流程4,否则循环判断等待
- 4<- 返回ts文件
- ③ 还有很多技术细节就不一一展开,只列出以上部分
该项目根据分析4gtv网站的接口,通过算法得到生成ts视频的一些关键参数,省去请求网站从而得到m3u8文件的通信时长等开销,针对海外视频网站被墙隔离,支持以下几种观看方式:
- 通过具有缓冲区的中转服务观看(调用api接口 /online.m3u8)
- 通过CDN或反向代理观看(调用api接口 /channel.m3u8?&host=xxx)
- 使用科学上网软件观看(调用api接口 /channel2.m3u8)
CREATE DATABASE media
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 video;
DROP event IF EXISTS auto_delete;
CREATE EVENT auto_delete
ON SCHEDULE EVERY 30 minute # xx分钟根据数据库的存储和查询性能综合决定
DO
TRUNCATE video;
git clone https://github.com/239144498/Streaming-Media-Server-Pro.git
pip install -r requirements.txt
python3 main.py
更多教程详情 https://www.cnblogs.com/1314h/p/16651157.html
- 民视第一台
- 民视台湾台
- 民视
- 大爱电视
- 中视
- 中视经典台
- 华视
- 三立综合台
- 客家电视台
- 八大综艺台
- 中视菁采台
- TVBS精采台
- 爱尔达娱乐台
- 靖天综合台
- 靖天日本台
- 新唐人亚太台
- 中天综合台
- ARIRANG阿里郎频道
- LiveABC互动英语频道
- 达文西频道
- ELTV生活英语台
- Nick Jr. 儿童频道
- 尼克儿童频道
- 靖天卡通台
- 靖洋卡通Nice Bingo
- i-Fun动漫台
- MOMO亲子台
- CN卡通
- 东森购物一台
- 镜电视新闻台
- 东森新闻台
- 华视新闻
- 民视新闻台
- 三立财经新闻iNEWS
- TVBS新闻
- 东森财经新闻台
- 中视新闻
- 中天新闻台
- 寰宇新闻台
- SBN全球财经台
- TVBS
- 东森购物二台
- 民视综艺台
- 猪哥亮歌厅秀
- 靖天育乐台
- KLT-靖天国际台
- Nice TV 靖天欢乐台
- 靖天资讯台
- 中天全民最大党
- TVBS欢乐台
- 韩国娱乐台 KMTV
- Lifetime 娱乐频道
- 电影原声台CMusic
- TRACE Urban
- MTV Live HD 音乐频道
- Mezzo Live HD
- CLASSICA 古典乐
- 博斯高球台
- 博斯运动一台
- 博斯无限台
- 博斯网球台
- TRACE Sport Stars
- 智林体育台
- 时尚运动X
- 车迷TV
- GINX Esports TV
- TechStorm
- Pet Club TV
- 民视旅游台
- 滚动力rollor
- 亚洲旅游台
- 幸福空间居家台
- Love Nature
- History 历史频道
- HISTORY 2 频道
- Smithsonian Channel
- 爱尔达生活旅游台
- LUXE TV Channel
- TV5MONDE STYLE HD 生活时尚
- 中天美食旅游
- 公视戏剧
- 民视影剧台
- 龙华戏剧台
- HITS频道
- 龙华日韩台
- 八大精彩台
- 靖天戏剧台
- 靖洋戏剧台
- CI 罪案侦查频道
- 视纳华仁纪实频道
- 影迷数位纪实台
- 金光布袋戏
- ROCK Extreme
- 采昌影剧台
- 靖天映画
- 靖天电影台
- 龙华电影台
- 影迷数位电影台
- amc最爱电影
- CinemaWorld
- CATCHPLAY Beyond
- CATCHPLAY电影台
- My Cinema Europe HD 我的欧洲电影
- 好消息2台
- 好消息
- 大爱二台
- 人间卫视
- 半岛国际新闻台
- VOA美国之音
- CNBC Asia 财经台
- DW德国之声
- CNN头条新闻台
- CNN国际新闻台
- 国会频道1
- 国会频道2
- 经典电影台
- 经典卡通台
- 精选动漫台
- 华语戏剧台
- 华语综艺台
- 在diychannel.txt文件添加更多频道
如果你觉得本项目对你有帮助,请考虑打赏本项目,以激励我投入更多的时间进行维护与开发。 If you find this project helpful, please consider supporting the project going forward. Your support is greatly appreciated.
你在GitHub给的star
或者赞助
是我长期维护此项目的动力所在,由衷感谢每一位支持者,“每一次你花的钱都是在为你想要的世界投票”。 另外,将本项目推荐给更多的人,也是一种支持的方式,用的人越多更新的动力越足。