mirror of
https://github.com/cuiocean/ZY-Player.git
synced 2026-02-14 16:06:48 +08:00
Compare commits
104 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a5800df93 | ||
|
|
8cd2b920c8 | ||
|
|
5b4cb43aa5 | ||
|
|
de1472e668 | ||
|
|
0f846b996b | ||
|
|
2bd5e31a28 | ||
|
|
9d8dc9ecb1 | ||
|
|
2a073e4092 | ||
|
|
b1daa73afe | ||
|
|
18940ff9f7 | ||
|
|
76d4d68401 | ||
|
|
f91200e609 | ||
|
|
b64f500710 | ||
|
|
cf1cfe9f77 | ||
|
|
da4fe162f6 | ||
|
|
d949c52020 | ||
|
|
1ce9e0525b | ||
|
|
4ebf82eae0 | ||
|
|
e0b1a5332d | ||
|
|
3ecb4302ba | ||
|
|
5c39db8ca6 | ||
|
|
4f45045d18 | ||
|
|
b7733179f2 | ||
|
|
e1f7044ae0 | ||
|
|
93e76db444 | ||
|
|
6eaa281e4a | ||
|
|
490d34e1fb | ||
|
|
0d0d6bd90f | ||
|
|
ecdc96d2f3 | ||
|
|
234f6dd069 | ||
|
|
f80fe7ecf1 | ||
|
|
6876721567 | ||
|
|
bedd1339df | ||
|
|
0a3a7a4d57 | ||
|
|
786e23f5a2 | ||
|
|
418f14bcc1 | ||
|
|
a9e4a34e4f | ||
|
|
fede7e4ef2 | ||
|
|
956ebbf8b8 | ||
|
|
014dac0b64 | ||
|
|
5fc1020e79 | ||
|
|
aca487f796 | ||
|
|
429eb4aac0 | ||
|
|
e032f86d3d | ||
|
|
f92af48a4e | ||
|
|
eff69db063 | ||
|
|
a5c8d20635 | ||
|
|
da22abd25d | ||
|
|
2dd91f78c9 | ||
|
|
a8b0e7e6a8 | ||
|
|
39edb9ce35 | ||
|
|
3323a56671 | ||
|
|
4dc88469e8 | ||
|
|
b04201f803 | ||
|
|
f34da7ff85 | ||
|
|
b8f010c4f5 | ||
|
|
f876b863e7 | ||
|
|
384ae10475 | ||
|
|
647c540f0b | ||
|
|
87d01da241 | ||
|
|
641bdf00d3 | ||
|
|
31510624c1 | ||
|
|
d5c4e296c3 | ||
|
|
f55065472d | ||
|
|
525da05c5f | ||
|
|
de8c51918f | ||
|
|
17229eb6b4 | ||
|
|
d4530eef89 | ||
|
|
cb68da5a22 | ||
|
|
c21f6538f3 | ||
|
|
729dab765c | ||
|
|
8521de2844 | ||
|
|
6ec7dffd59 | ||
|
|
51fccb699a | ||
|
|
525d6af888 | ||
|
|
5a17d1b991 | ||
|
|
edef20d171 | ||
|
|
e912804fcc | ||
|
|
3165345839 | ||
|
|
7133c8982a | ||
|
|
26c1ba1e62 | ||
|
|
4e83e365a6 | ||
|
|
03775b091d | ||
|
|
9147a8e1fb | ||
|
|
0d84e20326 | ||
|
|
d421a5cfe4 | ||
|
|
46fc5a0942 | ||
|
|
60aac3944e | ||
|
|
4683223a68 | ||
|
|
86856397f6 | ||
|
|
09e6af6f18 | ||
|
|
18db5a1eb0 | ||
|
|
d116f08550 | ||
|
|
7441341658 | ||
|
|
9b71355803 | ||
|
|
aba07ea20b | ||
|
|
790ea92180 | ||
|
|
1dc683e332 | ||
|
|
82df96e4d0 | ||
|
|
bb1e31a270 | ||
|
|
1d8d9ae72f | ||
|
|
6dfe3bea95 | ||
|
|
6fcb6ad16c | ||
|
|
c692ed2100 |
28
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
28
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: 报告Bug(请先查看常见问题及搜索issue列表中有无你要提的问题)
|
||||
about: 创建报告以帮助我们改进
|
||||
title: '(未回答的问题请删除)'
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
||||
**描述错误**
|
||||
清楚简洁地说明错误是什么。
|
||||
|
||||
**重现**
|
||||
重现行为的步骤
|
||||
|
||||
**预期行为**
|
||||
对您期望发生的事情的简洁明了的描述。
|
||||
|
||||
**截图**
|
||||
如果适用,请添加屏幕截图以帮助解释您的问题(直接把图片拖到编辑框即可添加图片)。
|
||||
|
||||
**环境:**
|
||||
-操作系统及版本:[例如:Windows 10 64位 18362.156]
|
||||
-软件安装包及版本:[例如:Windows 64位绿色版 1.0.0]
|
||||
|
||||
**其他内容**
|
||||
在此处添加有关该问题的任何其他上下文。
|
||||
17
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: 功能请求(请先查看常见问题及搜索issue列表中有无你要提的问题)
|
||||
about: 为这个项目提出一个想法
|
||||
title: 例如:添加xxx功能、优化xxx功能(未回答的问题请删除)
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**描述您想要的解决方案**
|
||||
简洁明了地描述您要发生的事情。
|
||||
|
||||
**描述您考虑过的替代方案**
|
||||
对您考虑过的所有替代解决方案或功能的简洁明了的描述。
|
||||
|
||||
**其他内容**
|
||||
在此处添加有关功能请求的任何其他上下文或屏幕截图(直接把图片拖到编辑框即可添加图片)。
|
||||
19
.github/ISSUE_TEMPLATE/help.md
vendored
Normal file
19
.github/ISSUE_TEMPLATE/help.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: 需要帮助
|
||||
about: "其它问题"
|
||||
labels: help wanted
|
||||
|
||||
---
|
||||
|
||||
### 版本、安装方式、系统
|
||||
|
||||
1. 你在使用什么版本的
|
||||
|
||||
2. 你通过什么方式安装
|
||||
|
||||
3. 你所使用的操作系统
|
||||
|
||||
|
||||
### 描述问题:
|
||||
|
||||
<!-- 在下方描述问题 -->
|
||||
@@ -1,571 +0,0 @@
|
||||
#EXTM3U
|
||||
#EXTINF:-1,CCTV1-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/cctv1hd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,CCTV-1HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/cctv1hd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225924/1.m3u8
|
||||
#EXTINF:-1,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226154/1.m3u8
|
||||
#EXTINF:-1,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226155/1.m3u8
|
||||
#EXTINF:-1,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226226/1.m3u8
|
||||
#EXTINF:-1,CCTV1 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226346/1.m3u8
|
||||
#EXTINF:-1,CCTV1 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226431/1.m3u8
|
||||
#EXTINF:-1,CCTV2 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226230/1.m3u8
|
||||
#EXTINF:-1,CCTV2 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226371/1.m3u8
|
||||
#EXTINF:-1,CCTV2 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226472/1.m3u8
|
||||
#EXTINF:-1,CCTV3 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226471/1.m3u8
|
||||
#EXTINF:-1,CCTV4 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226314/1.m3u8
|
||||
#EXTINF:-1,CCTV4 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8
|
||||
#EXTINF:-1,CCTV4 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226470/1.m3u8
|
||||
#EXTINF:-1,CCTV5 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226469/1.m3u8
|
||||
#EXTINF:-1,CCTV5+ HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226225/1.m3u8
|
||||
#EXTINF:-1,CCTV5+ CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226349/1.m3u8
|
||||
#EXTINF:-1,CCTV5+ CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226458/1.m3u8
|
||||
#EXTINF:-1,CCTV6 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226468/1.m3u8
|
||||
#EXTINF:-1,CCTV7 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8
|
||||
#EXTINF:-1,CCTV7 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226467/1.m3u8
|
||||
#EXTINF:-1,CCTV8 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226485/1.m3u8
|
||||
#EXTINF:-1,CCTV9 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226236/1.m3u8
|
||||
#EXTINF:-1,CCTV9 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226465/1.m3u8
|
||||
#EXTINF:-1,CCTV10 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226227/1.m3u8
|
||||
#EXTINF:-1,CCTV10 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226464/1.m3u8
|
||||
#EXTINF:-1,CCTV11 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8
|
||||
#EXTINF:-1,CCTV11 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226315/1.m3u8
|
||||
#EXTINF:-1,CCTV11 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226463/1.m3u8
|
||||
#EXTINF:-1,CCTV12 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8
|
||||
#EXTINF:-1,CCTV12 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226462/1.m3u8
|
||||
#EXTINF:-1,CCTV13 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226316/1.m3u8
|
||||
#EXTINF:-1,CCTV14 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226229/1.m3u8
|
||||
#EXTINF:-1,CCTV14 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226461/1.m3u8
|
||||
#EXTINF:-1,CCTV15 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226460/1.m3u8
|
||||
#EXTINF:-1,CCTV15 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226317/1.m3u8
|
||||
#EXTINF:-1,CCTV15 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8
|
||||
#EXTINF:-1,CCTV17 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8
|
||||
#EXTINF:-1,CCTV17 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226459/1.m3u8
|
||||
#EXTINF:-1,CCTV-4K
|
||||
http://112.17.40.12/PLTV/88888888/224/3221226758/1.m3u8
|
||||
#EXTINF:-1,CCTV-4K
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226758/index.m3u8
|
||||
#EXTINF:-1,CCTV-4K
|
||||
http://39.134.176.148/PLTV/88888888/224/3221226758/index.m3u8
|
||||
#EXTINF:-1,CCTV-4K
|
||||
http://117.148.187.83/PLTV/88888888/224/3221226758/index.m3u8
|
||||
#EXTINF:-1,北京卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/bjwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,江苏卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jswshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,浙江卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/zjwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,深圳卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/szwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,山东卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/sdwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,湖北卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hbwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,广东卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/gdwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,东方卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hddfws/4000000/mnf.m3u8
|
||||
#EXTINF:-1,黑龙江卫视1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hljwshd/4000000/mnf.m3u8
|
||||
#EXTINF:-1,五星体育1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ssty/4000000/mnf.m3u8
|
||||
#EXTINF:-1,北京卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/bjwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,东方卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hddfws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,浙江卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/zjwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,湖北卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hbwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,湖南卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hnwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,山东卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/sdwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,江苏卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jswshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,深圳卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/szwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,广东卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/gdwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,黑龙江卫视高清
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hljwshd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,湖南卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hnwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,北京卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/bjwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,江苏卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jswshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,浙江卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/zjwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,深圳卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/szwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,山东卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/sdwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,湖北卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hbwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,广东卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/gdwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,黑龙江卫视HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hljwshd/2300000/mnf.m3u8
|
||||
#EXTINF:-1,五星体育HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ssty/2300000/mnf.m3u8
|
||||
#EXTINF:-1,中国教育1 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226494/1.m3u8
|
||||
#EXTINF:-1,东南卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226406/1.m3u8
|
||||
#EXTINF:-1,东南卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226496/1.m3u8
|
||||
#EXTINF:-1,东方卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226237/1.m3u8
|
||||
#EXTINF:-1,东方卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226364/1.m3u8
|
||||
#EXTINF:-1,东方卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226505/1.m3u8
|
||||
#EXTINF:-1,北京卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226224/1.m3u8
|
||||
#EXTINF:-1,北京卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226367/1.m3u8
|
||||
#EXTINF:-1,北京卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226441/1.m3u8
|
||||
#EXTINF:-1,天津卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226246/1.m3u8
|
||||
#EXTINF:-1,天津卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226502/1.m3u8
|
||||
#EXTINF:-1,安徽卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226223/1.m3u8
|
||||
#EXTINF:-1,安徽卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226499/1.m3u8
|
||||
#EXTINF:-1,山东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225894/1.m3u8
|
||||
#EXTINF:-1,山东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226244/1.m3u8
|
||||
#EXTINF:-1,山东卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226308/1.m3u8
|
||||
#EXTINF:-1,山东卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226501/1.m3u8
|
||||
#EXTINF:-1,广东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225878/1.m3u8
|
||||
#EXTINF:-1,广东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226238/1.m3u8
|
||||
#EXTINF:-1,广东卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226508/1.m3u8
|
||||
#EXTINF:-1,江苏卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226242/1.m3u8
|
||||
#EXTINF:-1,江苏卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226366/1.m3u8
|
||||
#EXTINF:-1,江苏卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226506/1.m3u8
|
||||
#EXTINF:-1,江西卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226243/1.m3u8
|
||||
#EXTINF:-1,河北卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226507/1.m3u8
|
||||
#EXTINF:-1,浙江卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226247/1.m3u8
|
||||
#EXTINF:-1,浙江卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226365/1.m3u8
|
||||
#EXTINF:-1,浙江卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226504/1.m3u8
|
||||
#EXTINF:-1,深圳卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225897/1.m3u8
|
||||
#EXTINF:-1,深圳卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226245/1.m3u8
|
||||
#EXTINF:-1,深圳卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226495/1.m3u8
|
||||
#EXTINF:-1,湖北卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226240/1.m3u8
|
||||
#EXTINF:-1,湖北卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226310/1.m3u8
|
||||
#EXTINF:-1,湖北卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226503/1.m3u8
|
||||
#EXTINF:-1,湖南卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226241/1.m3u8
|
||||
#EXTINF:-1,湖南卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226509/1.m3u8
|
||||
#EXTINF:-1,贵州卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226497/1.m3u8
|
||||
#EXTINF:-1,辽宁卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226500/1.m3u8
|
||||
#EXTINF:-1,黑龙江卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226239/1.m3u8
|
||||
#EXTINF:-1,黑龙江卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226498/1.m3u8
|
||||
#EXTINF:-1,北京冬奥纪实 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226438/1.m3u8
|
||||
#EXTINF:-1,北京影视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226486/1.m3u8
|
||||
#EXTINF:-1,北京文艺 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226440/1.m3u8
|
||||
#EXTINF:-1,北京新闻 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226437/1.m3u8
|
||||
#EXTINF:-1,安徽卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ahws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,兵团卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/btws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,甘肃卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/gsws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,陕西卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/sxws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,山西卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/shanxiws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,吉林卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jlws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,河北卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hbws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,四川卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/scws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,贵州卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/gzws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,云南卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ynws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,辽宁卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/lnws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,旅游卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/lyws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,东南卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/dnws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,重庆卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/cqws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,广西卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/gxws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,青海卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/qhws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,江西卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jxws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,内蒙古卫视
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/nmgws/1300000/mnf.m3u8
|
||||
#EXTINF:-1,天津卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226412/index.m3u8
|
||||
#EXTINF:-1,河北卫视超清1
|
||||
http://223.110.245.149/ott.js.chinamobile.com/PLTV/3/224/3221225840/index.m3u8
|
||||
#EXTINF:-1,湖南卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226553/index.m3u8
|
||||
#EXTINF:-1,浙江卫视
|
||||
http://223.110.243.173/PLTV/3/224/3221227215/index.m3u8
|
||||
#EXTINF:-1,江苏卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226414/index.m3u8
|
||||
#EXTINF:-1,东南卫视
|
||||
http://117.169.124.37:6610/ysten-businessmobile/live/dongnanstv/yst.m3u8
|
||||
#EXTINF:-1,湖北卫视
|
||||
http://223.110.243.171/PLTV/3/224/3221227211/index.m3u8
|
||||
#EXTINF:-1,广东卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226225/index.m3u8
|
||||
#EXTINF:-1,深圳卫视
|
||||
http://223.110.243.171/PLTV/3/224/3221227217/index.m3u8
|
||||
#EXTINF:-1,辽宁卫视
|
||||
http://223.110.245.145/ott.js.chinamobile.com/PLTV/3/224/3221227410/index.m3u8
|
||||
#EXTINF:-1,龙江卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226555/index.m3u8
|
||||
#EXTINF:-1,江西卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226557/index.m3u8
|
||||
#EXTINF:-1,四川卫视
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221227006/1.m3u8
|
||||
#EXTINF:-1,重庆卫视
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221225949/1.m3u8
|
||||
#EXTINF:-1,重庆卫视
|
||||
http://ivi.bupt.edu.cn/hls/cqhd.m3u8
|
||||
#EXTINF:-1,河南卫视超清2
|
||||
http://223.110.245.157/ott.js.chinamobile.com/PLTV/3/224/3221225815/index.m3u8
|
||||
#EXTINF:-1,贵州卫视超清2
|
||||
http://223.110.245.149/ott.js.chinamobile.com/PLTV/3/224/3221225787/index.m3u8
|
||||
#EXTINF:-1,海南卫视
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225855/1.m3u8
|
||||
#EXTINF:-1,云南卫视超清1
|
||||
http://223.110.245.159/ott.js.chinamobile.com/PLTV/3/224/3221225838/index.m3u8
|
||||
#EXTINF:-1,宁夏卫视超清1
|
||||
http://223.110.245.151/ott.js.chinamobile.com/PLTV/3/224/3221225842/index.m3u8
|
||||
#EXTINF:-1,内蒙卫视超清1
|
||||
http://223.110.245.161/ott.js.chinamobile.com/PLTV/3/224/3221225836/index.m3u8
|
||||
#EXTINF:-1,广西卫视
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225836/1.m3u8
|
||||
#EXTINF:-1,五星体育HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ssty/1300000/mnf.m3u8
|
||||
#EXTINF:-1,北京卡酷少儿 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226558/1.m3u8
|
||||
#EXTINF:-1,法治天地HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/fztd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,欢笑剧场HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hxjc/1300000/mnf.m3u8
|
||||
#EXTINF:-1,都市剧场HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/dsjc/1300000/mnf.m3u8
|
||||
#EXTINF:-1,七彩戏剧HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/qcxj/1300000/mnf.m3u8
|
||||
#EXTINF:-1,动漫秀场HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/dmxc/1300000/mnf.m3u8
|
||||
#EXTINF:-1,劲爆体育HD
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jbty/1300000/mnf.m3u8
|
||||
#EXTINF:-1,极速汽车
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jsqc/1300000/mnf.m3u8
|
||||
#EXTINF:-1,游戏风云
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/yxfy/1300000/mnf.m3u8
|
||||
#EXTINF:-1,金鹰卡通
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jykt/1300000/mnf.m3u8
|
||||
#EXTINF:-1,炫动卡通
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/xdkt/1300000/mnf.m3u8
|
||||
#EXTINF:-1,嘉佳卡通
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jjkt/1300000/mnf.m3u8
|
||||
#EXTINF:-1,星尚
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/shss/1300000/mnf.m3u8
|
||||
#EXTINF:-1,上海纪实
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/jspd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,上海新闻
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/xwzh/1300000/mnf.m3u8
|
||||
#EXTINF:-1,上海娱乐
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ylpd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,上海电视剧
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/dsjpd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,上海ICS外语频道
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/wypd/1300000/mnf.m3u8
|
||||
#EXTINF:-1,上海艺术人文
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/ysrw/1300000/mnf.m3u8
|
||||
#EXTINF:-1,东方财经浦东
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/dfcj/1300000/mnf.m3u8
|
||||
#EXTINF:-1,第一财经
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/dycj/1300000/mnf.m3u8
|
||||
#EXTINF:-1,直播1-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba1/4000000/mnf.m3u8
|
||||
#EXTINF:-1,直播2-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba2/4000000/mnf.m3u8
|
||||
#EXTINF:-1,直播3-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba3/4000000/mnf.m3u8
|
||||
#EXTINF:-1,直播4-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba4/4000000/mnf.m3u8
|
||||
#EXTINF:-1,直播5-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba5/4000000/mnf.m3u8
|
||||
#EXTINF:-1,直播6-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba6/4000000/mnf.m3u8
|
||||
#EXTINF:-1,直播7-1080P
|
||||
http://keonline.shanghai.liveplay.qq.com/live/program/live/hdnba7/4000000/mnf.m3u8
|
||||
#EXTINF:-1,纯享4K源码1
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226825/1.m3u8
|
||||
#EXTINF:-1,百事4K频道
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226718/index.m3u8
|
||||
#EXTINF:-1,凤凰资讯
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226491/index.m3u8
|
||||
#EXTINF:-1,凤凰资讯
|
||||
http://117.169.124.37:6610/ysten-businessmobile/live/fhzixun/1.m3u8
|
||||
#EXTINF:-1,凤凰中文
|
||||
http://117.169.124.37:6610/ysten-businessmobile/live/fhchinese/1.m3u8
|
||||
#EXTINF:-1,凤凰中文
|
||||
http://117.169.120.138:8080/live/fhchinese/index.m3u8
|
||||
#EXTINF:-1,高清影视1台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226736/1.m3u8
|
||||
#EXTINF:-1,高清影视2台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225881/1.m3u8
|
||||
#EXTINF:-1,高清影视3台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226708/1.m3u8
|
||||
#EXTINF:-1,高清影视4台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226712/1.m3u8
|
||||
#EXTINF:-1,高清影视5台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225893/1.m3u8
|
||||
#EXTINF:-1,高清影视6台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226692/1.m3u8
|
||||
#EXTINF:-1,高清影视7台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226754/1.m3u8
|
||||
#EXTINF:-1,高清影视8台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226608/index.m3u8
|
||||
#EXTINF:-1,高清影视9台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226606/index.m3u8
|
||||
#EXTINF:-1,高清影视10台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226360/index.m3u8
|
||||
#EXTINF:-1,高清动画11台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226732/1.m3u8
|
||||
#EXTINF:-1,高清动画12台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226741/1.m3u8
|
||||
#EXTINF:-1,高清动漫13台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226743/1.m3u8
|
||||
#EXTINF:-1,高清影视14台
|
||||
http://ivi.bupt.edu.cn/hls/chchd.m3u8
|
||||
#EXTINF:-1,北京纪实高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225944/1.m3u8
|
||||
#EXTINF:-1,峨眉电影高清
|
||||
http://scgctvshow.sctv.com/hdlive/emei/1.m3u8
|
||||
#EXTINF:-1,欢笑剧场高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226729/1.m3u8
|
||||
#EXTINF:-1,纪实频道高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225946/1.m3u8
|
||||
#EXTINF:-1,极速汽车高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226140/1.m3u8
|
||||
#EXTINF:-1,动漫秀场高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226141/1.m3u8
|
||||
#EXTINF:-1,求索纪录
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226610/index.m3u8
|
||||
#EXTINF:-1,求索科学
|
||||
http://125.210.152.18:9090/live/QSKX_1200.m3u8
|
||||
#EXTINF:-1,求索动物
|
||||
http://125.210.152.18:9090/live/QSDW_1200.m3u8
|
||||
#EXTINF:-1,求索生活
|
||||
http://125.210.152.18:9090/live/QSSH_1200.m3u8
|
||||
#EXTINF:-1,日本天気预报
|
||||
http://movie.mcas.jp/mcas/wn1_2/master.m3u8
|
||||
#EXTINF:-1,奥林匹克高清
|
||||
http://ott-live.olympicchannel.com/out/u/OC1_2.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1,奥铃匹克高清
|
||||
http://ott-live.olympicchannel.com/out/u/OC1_1.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1,爱青春
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230130/index.m3u8
|
||||
#EXTINF:-1,爱家庭
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230118/index.m3u8
|
||||
#EXTINF:-1,爱探索
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230112/index.m3u8
|
||||
#EXTINF:-1,爱科学
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230106/index.m3u8
|
||||
#EXTINF:-1,爱猎奇
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230097/index.m3u8
|
||||
#EXTINF:-1,爱谍战
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230092/index.m3u8
|
||||
#EXTINF:-1,爱娱乐
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230077/index.m3u8
|
||||
#EXTINF:-1,爱旅行
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230052/index.m3u8
|
||||
#EXTINF:-1,爱怀旧
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230049/index.m3u8
|
||||
#EXTINF:-1,爱体育
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230034/index.m3u8
|
||||
#EXTINF:-1,爱赛车
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230032/index.m3u8
|
||||
#EXTINF:-1,北京少儿
|
||||
http://ivi.bupt.edu.cn/hls/btv10.m3u8
|
||||
#EXTINF:-1,动漫电影
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226178/index.m3u8
|
||||
#EXTINF:-1,重庆少儿
|
||||
http://219.153.252.50/PLTV/88888888/224/3221225646/1.m3u8
|
||||
#EXTINF:-1,嘉佳卡通
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226461/index.m3u8
|
||||
#EXTINF:-1,耀才财经
|
||||
http://202.69.67.66:443/webcast/bshdlive-mobile/playlist.m3u8
|
||||
#EXTINF:-1,亚旅卫视
|
||||
http://hls.jingchangkan.tv/jingchangkan/156722438_0HaM/index.m3u8
|
||||
#EXTINF:-1,信吉电视
|
||||
http://220.130.241.203:1935/sjtv/livestream_360p/playlist.m3u8
|
||||
#EXTINF:-1,唯心電視
|
||||
http://mobile.ccdntech.com/transcoder/_definst_/vod164_Live/live/chunklist_w1177047531.m3u8
|
||||
#EXTINF:-1,百事通台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226596/index.m3u8
|
||||
#EXTINF:-1,HBO2台
|
||||
http://161.0.157.5/PLTV/88888888/224/3221227026/03.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1,点掌财经
|
||||
http://cclive2.aniu.tv/live/anzb.m3u8
|
||||
#EXTINF:-1,日本NHK华语
|
||||
https://nhkw-zh-hlscomp.akamaized.net/ixxemlzk1vqvy44o/playlist.m3u8
|
||||
#EXTINF:-1,日本NHK英语
|
||||
https://nhkwlive-ojp.akamaized.net/hls/live/2003459/nhkwlive-ojp/index_1M.m3u8
|
||||
#EXTINF:-1,日本Japan News 24
|
||||
http://www.news24.jp/livestream/index.m3u8
|
||||
#EXTINF:-1,日本JapanetChannelDX
|
||||
http://bcsecurelivehls-i.akamaihd.net/hls/live/265320/5043843989001/140130JTDX/index_1200.m3u8
|
||||
#EXTINF:-1,日本QVC
|
||||
http://cdn-live1.qvc.jp/iPhone/800/800.m3u8
|
||||
#EXTINF:-1,韩国EBS 第一频道
|
||||
http://ebsonairios.ebs.co.kr/groundwavetablet500k/tablet500k/playlist.m3u8
|
||||
#EXTINF:-1,韩国EBS 少儿频道
|
||||
http://ebsonairios.ebs.co.kr/ebsutablet500k/tablet500k/playlist.m3u8
|
||||
#EXTINF:-1,韩国KCTV
|
||||
http://119.77.96.184:1935/chn21/chn21/chunklist_w252131137.m3u8
|
||||
#EXTINF:-1,朝鲜中央台
|
||||
http://119.77.96.184:1935/chn05/chn05/chunklist_w644291506.m3u8
|
||||
#EXTINF:-1,韩国KTV 韩国电视
|
||||
http://218.38.152.31:1935/klive/klive.stream/playlist.m3u8
|
||||
#EXTINF:-1,韩国EBS 儿童频道
|
||||
http://ebsonairios.ebs.co.kr/ebsutablet500k/_definst_/tablet500k/chunklist_w1965791004.m3u8
|
||||
#EXTINF:-1,韩国阿里郎WORLDworld
|
||||
http://amdlive.ctnd.com.edgesuite.net/arirang_1ch/smil:arirang_1ch.smil/playlist.m3u8
|
||||
#EXTINF:-1,韩国阿里郎WORLD
|
||||
http://amdlive.ctnd.com.edgesuite.net/arirang_1ch/smil:arirang_1ch/master.m3u8
|
||||
#EXTINF:-1,KOREA YTN Science
|
||||
http://slive.sciencetv.kr:1935/science/yslive_20140419_1/playlist.m3u8
|
||||
#EXTINF:-1,Luxury World
|
||||
http://nano.teleservice.su:8080/hls/luxury.m3u8
|
||||
#EXTINF:-1,韩国BBS佛教广播
|
||||
http://bbstv.clouducs.com:1935/bbstv-live/livestream/chunklist_w1403706733.m3u8
|
||||
#EXTINF:-1,CPAC
|
||||
http://bcoveliveios-i.akamaihd.net/hls/live/248519/1242843915001_1/master.m3u8
|
||||
#EXTINF:-1,中国环球
|
||||
http://live.cgtn.com/1000/prog_index.m3u8
|
||||
#EXTINF:-1,狗狗宠物
|
||||
http://video.blivenyc.com/broadcast/prod/2061/22/file-3192k.m3u8
|
||||
#EXTINF:-1,法国时尚
|
||||
http://lb.streaming.sk/fashiontv/stream/chunklist_w1702070444.m3u8
|
||||
#EXTINF:-1,亚洲新闻
|
||||
http://d2e1asnsl7br7b.cloudfront.net/7782e205e72f43aeb4a48ec97f66ebbe/index_4.m3u8
|
||||
#EXTINF:-1,越南人民报
|
||||
http://vietcago.net/vstv/thnd.m3u8
|
||||
#EXTINF:-1,印度音乐电视
|
||||
http://104.237.60.234/live/gabruutv.m3u8?dsjtv.m3u8
|
||||
#EXTINF:-1,法国第五世界台
|
||||
http://v3plusinfo247hls-i.akamaihd.net/hls/live/218877-b/v3plusinfo247hls/v3plusinfo247hls_1_1.m3u8
|
||||
#EXTINF:-1,俄罗斯HD时尚频道
|
||||
http://95.67.47.115/hls/hdfashion_ua_hi/index.m3u8
|
||||
#EXTINF:-1,乌克兰M2 音乐频道
|
||||
http://live.m2.tv/hls3/stream.m3u8
|
||||
#EXTINF:-1,西班牙中国环球
|
||||
http://livees.cgtn.com/1000e/prog_index.m3u8
|
||||
#EXTINF:-1,意大利意大利电台
|
||||
http://radioitaliatv-lh.akamaihd.net/i/radioitaliatv_1@329645/index_720x480_av-p.m3u8
|
||||
#EXTINF:-1,意大利V2 音乐频道
|
||||
http://de1se01.v2beat.live/playlist.m3u8
|
||||
#EXTINF:-1,墨西哥墨西哥电视
|
||||
http://bcoveliveios-i.akamaihd.net/hls/live/201661/57828478001/milenio_center_512k@51752.m3u8
|
||||
#EXTINF:-1,音乐20TV
|
||||
http://m2otv-lh.akamaihd.net/i/m2oTv_1@186074/index_600_av-p.m3u8
|
||||
#EXTINF:-1,当红MTV
|
||||
http://unilivemtveu-lh.akamaihd.net/i/mtvno_1@346424/index_3500_av-b.m3u8
|
||||
#EXTINF:-1,酷酷频道
|
||||
http://edge1.tikilive.com:1935/unrestricted_tikilive/25947/amlst:NWKlw6jwyXpz/chunklist_w981409619_b1105254.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1,红牛电视
|
||||
http://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master_1660.m3u8
|
||||
#EXTINF:-1,NBC电视
|
||||
http://161.0.157.51/PLTV/88888888/224/3221227040/index.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1,Jewelry电视
|
||||
http://wowzaprod134-i.akamaihd.net/hls/live/577814/ccddaf02/playlist.m3u8
|
||||
#EXTINF:-1,Darcizzle电视
|
||||
http://30a-tv.com/darcizzle.m3u8
|
||||
#EXTINF:-1,CBS新闻
|
||||
http://cbsnewshd-lh.akamaihd.net/i/CBSNHD_7@199302/master.m3u8
|
||||
#EXTINF:-1,美国Deutsche Welle
|
||||
http://dwstream4-lh.akamaihd.net/i/dwstream4_live@131329/master.m3u8
|
||||
#EXTINF:-1,美国360 North
|
||||
http://wowzaprod3-i.akamaihd.net/hls/live/252236/2147483647_360north_247/playlist.m3u8
|
||||
#EXTINF:-1,美国Fox News Talk Radio
|
||||
http://fnurtmp-f.akamaihd.net/i/FNRADIO_1@92141/master.m3u8
|
||||
#EXTINF:-1,日本cgntv
|
||||
http://cgntv-glive.ofsdelivery.net/live/_definst_/cgntv_jp/playlist.m3u8
|
||||
#EXTINF:-1,日本Japanet Channel DX
|
||||
http://bcsecurelivehls-i.akamaihd.net/hls/live/265320/5043843989001/140130JTDX/index_600.m3u8
|
||||
@@ -1,723 +0,0 @@
|
||||
#EXTM3U
|
||||
#EXTINF:-1 ,====== =北京移动= ======
|
||||
http://0/0.m3u8
|
||||
#EXTINF:-1 ,咪咕4K
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226399/1.m3u8
|
||||
#EXTINF:-1 ,咪咕4K
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226400/1.m3u8
|
||||
#EXTINF:-1 ,北京IPTV4K超清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226550/1.m3u8
|
||||
#EXTINF:-1 ,北京IPTV淘BABY CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226554/1.m3u8
|
||||
#EXTINF:-1 ,北京IPTV淘剧场 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226553/1.m3u8
|
||||
#EXTINF:-1 ,北京IPTV淘娱乐 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226551/1.m3u8
|
||||
#EXTINF:-1 ,北京IPTV淘电影 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226552/1.m3u8
|
||||
#EXTINF:-1 ,北京IPTV萌宠TV CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226555/1.m3u8
|
||||
#EXTINF:-1 ,老伙计-laoguy.com
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226555/1.m3u8
|
||||
#EXTINF:-1 ,大健康 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226556/1.m3u8
|
||||
#EXTINF:-1 ,凤凰中文 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225942/1.m3u8
|
||||
#EXTINF:-1 ,凤凰中文 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225948/1.m3u8
|
||||
#EXTINF:-1 ,凤凰资讯 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225949/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225924/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226154/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226155/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226226/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226346/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226431/1.m3u8
|
||||
#EXTINF:-1 ,CCTV2 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226230/1.m3u8
|
||||
#EXTINF:-1 ,CCTV2 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226371/1.m3u8
|
||||
#EXTINF:-1 ,CCTV2 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226472/1.m3u8
|
||||
#EXTINF:-1 ,CCTV3 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226471/1.m3u8
|
||||
#EXTINF:-1 ,CCTV4 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226314/1.m3u8
|
||||
#EXTINF:-1 ,CCTV4 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8
|
||||
#EXTINF:-1 ,CCTV4 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226470/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226469/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5+ HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226225/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5+ CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226349/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5+ CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226458/1.m3u8
|
||||
#EXTINF:-1 ,CCTV6 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226468/1.m3u8
|
||||
#EXTINF:-1 ,CCTV7 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8
|
||||
#EXTINF:-1 ,CCTV7 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226467/1.m3u8
|
||||
#EXTINF:-1 ,CCTV8 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226485/1.m3u8
|
||||
#EXTINF:-1 ,CCTV9 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226236/1.m3u8
|
||||
#EXTINF:-1 ,CCTV9 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226465/1.m3u8
|
||||
#EXTINF:-1 ,CCTV10 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226227/1.m3u8
|
||||
#EXTINF:-1 ,CCTV10 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226464/1.m3u8
|
||||
#EXTINF:-1 ,CCTV11 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8
|
||||
#EXTINF:-1 ,CCTV11 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226315/1.m3u8
|
||||
#EXTINF:-1 ,CCTV11 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226463/1.m3u8
|
||||
#EXTINF:-1 ,CCTV12 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8
|
||||
#EXTINF:-1 ,CCTV12 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226462/1.m3u8
|
||||
#EXTINF:-1 ,CCTV13 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226316/1.m3u8
|
||||
#EXTINF:-1 ,CCTV14 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226229/1.m3u8
|
||||
#EXTINF:-1 ,CCTV14 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226461/1.m3u8
|
||||
#EXTINF:-1 ,CCTV15 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226460/1.m3u8
|
||||
#EXTINF:-1 ,CCTV15 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226317/1.m3u8
|
||||
#EXTINF:-1 ,CCTV15 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8
|
||||
#EXTINF:-1 ,CCTV17 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8
|
||||
#EXTINF:-1 ,CCTV17 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226459/1.m3u8
|
||||
#EXTINF:-1 ,中国教育1 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226494/1.m3u8
|
||||
#EXTINF:-1 ,东南卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226406/1.m3u8
|
||||
#EXTINF:-1 ,东南卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226496/1.m3u8
|
||||
#EXTINF:-1 ,东方卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226237/1.m3u8
|
||||
#EXTINF:-1 ,东方卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226364/1.m3u8
|
||||
#EXTINF:-1 ,东方卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226505/1.m3u8
|
||||
#EXTINF:-1 ,北京卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226224/1.m3u8
|
||||
#EXTINF:-1 ,北京卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226367/1.m3u8
|
||||
#EXTINF:-1 ,北京卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226441/1.m3u8
|
||||
#EXTINF:-1 ,天津卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226246/1.m3u8
|
||||
#EXTINF:-1 ,天津卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226502/1.m3u8
|
||||
#EXTINF:-1 ,安徽卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226223/1.m3u8
|
||||
#EXTINF:-1 ,安徽卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226499/1.m3u8
|
||||
#EXTINF:-1 ,山东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225894/1.m3u8
|
||||
#EXTINF:-1 ,山东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226244/1.m3u8
|
||||
#EXTINF:-1 ,山东卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226308/1.m3u8
|
||||
#EXTINF:-1 ,山东卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226501/1.m3u8
|
||||
#EXTINF:-1 ,广东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225878/1.m3u8
|
||||
#EXTINF:-1 ,广东卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226238/1.m3u8
|
||||
#EXTINF:-1 ,广东卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226508/1.m3u8
|
||||
#EXTINF:-1 ,江苏卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226242/1.m3u8
|
||||
#EXTINF:-1 ,江苏卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226366/1.m3u8
|
||||
#EXTINF:-1 ,江苏卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226506/1.m3u8
|
||||
#EXTINF:-1 ,江西卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226243/1.m3u8
|
||||
#EXTINF:-1 ,河北卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226507/1.m3u8
|
||||
#EXTINF:-1 ,浙江卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226247/1.m3u8
|
||||
#EXTINF:-1 ,浙江卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226365/1.m3u8
|
||||
#EXTINF:-1 ,浙江卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226504/1.m3u8
|
||||
#EXTINF:-1 ,深圳卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225897/1.m3u8
|
||||
#EXTINF:-1 ,深圳卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226245/1.m3u8
|
||||
#EXTINF:-1 ,深圳卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226495/1.m3u8
|
||||
#EXTINF:-1 ,湖北卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226240/1.m3u8
|
||||
#EXTINF:-1 ,湖北卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226310/1.m3u8
|
||||
#EXTINF:-1 ,湖北卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226503/1.m3u8
|
||||
#EXTINF:-1 ,湖南卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226241/1.m3u8
|
||||
#EXTINF:-1 ,湖南卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226509/1.m3u8
|
||||
#EXTINF:-1 ,贵州卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226497/1.m3u8
|
||||
#EXTINF:-1 ,辽宁卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226500/1.m3u8
|
||||
#EXTINF:-1 ,黑龙江卫视 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226239/1.m3u8
|
||||
#EXTINF:-1 ,黑龙江卫视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226498/1.m3u8
|
||||
#EXTINF:-1 ,北京冬奥纪实 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226438/1.m3u8
|
||||
#EXTINF:-1 ,北京影视 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226486/1.m3u8
|
||||
#EXTINF:-1 ,北京文艺 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226440/1.m3u8
|
||||
#EXTINF:-1 ,北京新闻 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226437/1.m3u8
|
||||
#EXTINF:-1 ,北京卡酷少儿 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226558/1.m3u8
|
||||
#EXTINF:-1 ,湖南快乐垂钓 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226549/1.m3u8
|
||||
#EXTINF:-1 ,湖南茶频道 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226548/1.m3u8
|
||||
#EXTINF:-1 ,黑莓动画 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225914/1.m3u8
|
||||
#EXTINF:-1 ,黑莓动画 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226289/1.m3u8
|
||||
#EXTINF:-1 ,黑莓电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225927/1.m3u8
|
||||
#EXTINF:-1 ,黑莓电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226292/1.m3u8
|
||||
#EXTINF:-1 ,黑莓电竞 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225931/1.m3u8
|
||||
#EXTINF:-1 ,黑莓电竞 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226250/1.m3u8
|
||||
#EXTINF:-1 ,黑莓电竞 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226262/1.m3u8
|
||||
#EXTINF:-1 ,黑莓电竞 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226307/1.m3u8
|
||||
#EXTINF:-1 ,NewTV中国功夫 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225951/1.m3u8
|
||||
#EXTINF:-1 ,NewTV中国功夫 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226298/1.m3u8
|
||||
#EXTINF:-1 ,NewTV中国功夫 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226321/1.m3u8
|
||||
#EXTINF:-1 ,NewTV怡伴健康 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225919/1.m3u8
|
||||
#EXTINF:-1 ,NewTV怡伴健康 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226306/1.m3u8
|
||||
#EXTINF:-1 ,NewTV怡伴健康 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226327/1.m3u8
|
||||
#EXTINF:-1 ,NewTV军事评论 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225926/1.m3u8
|
||||
#EXTINF:-1 ,NewTV军事评论 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226303/1.m3u8
|
||||
#EXTINF:-1 ,NewTV军事评论 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226326/1.m3u8
|
||||
#EXTINF:-1 ,NewTV军旅剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225923/1.m3u8
|
||||
#EXTINF:-1 ,NewTV军旅剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226301/1.m3u8
|
||||
#EXTINF:-1 ,NewTV军旅剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226324/1.m3u8
|
||||
#EXTINF:-1 ,NewTV农业致富 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225930/1.m3u8
|
||||
#EXTINF:-1 ,NewTV农业致富 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226304/1.m3u8
|
||||
#EXTINF:-1 ,NewTV动作电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225915/1.m3u8
|
||||
#EXTINF:-1 ,NewTV动作电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226288/1.m3u8
|
||||
#EXTINF:-1 ,NewTV动作电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226329/1.m3u8
|
||||
#EXTINF:-1 ,NewTV古装剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225916/1.m3u8
|
||||
#EXTINF:-1 ,NewTV古装剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226300/1.m3u8
|
||||
#EXTINF:-1 ,NewTV古装剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226323/1.m3u8
|
||||
#EXTINF:-1 ,NewTV家庭剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225918/1.m3u8
|
||||
#EXTINF:-1 ,NewTV家庭剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226290/1.m3u8
|
||||
#EXTINF:-1 ,NewTV家庭剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226330/1.m3u8
|
||||
#EXTINF:-1 ,NewTV惊悚悬疑 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225921/1.m3u8
|
||||
#EXTINF:-1 ,NewTV惊悚悬疑 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226294/1.m3u8
|
||||
#EXTINF:-1 ,NewTV惊悚悬疑 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226423/1.m3u8
|
||||
#EXTINF:-1 ,NewTV明星大片 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225929/1.m3u8
|
||||
#EXTINF:-1 ,NewTV明星大片 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226295/1.m3u8
|
||||
#EXTINF:-1 ,NewTV明星大片 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226425/1.m3u8
|
||||
#EXTINF:-1 ,NewTV武搏世界 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226171/1.m3u8
|
||||
#EXTINF:-1 ,NewTV武搏世界 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226297/1.m3u8
|
||||
#EXTINF:-1 ,NewTV武搏世界 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226320/1.m3u8
|
||||
#EXTINF:-1 ,NewTV海外剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225917/1.m3u8
|
||||
#EXTINF:-1 ,NewTV海外剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226302/1.m3u8
|
||||
#EXTINF:-1 ,NewTV海外剧场 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226325/1.m3u8
|
||||
#EXTINF:-1 ,NewTV潮妈辣婆 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225957/1.m3u8
|
||||
#EXTINF:-1 ,NewTV潮妈辣婆 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226286/1.m3u8
|
||||
#EXTINF:-1 ,NewTV炫舞未来 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226248/1.m3u8
|
||||
#EXTINF:-1 ,NewTV爱情喜剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225913/1.m3u8
|
||||
#EXTINF:-1 ,NewTV爱情喜剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226299/1.m3u8
|
||||
#EXTINF:-1 ,NewTV爱情喜剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226322/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品体育 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226287/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品体育 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226328/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品体育 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225922/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品大剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225925/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品大剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226291/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品大剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226331/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品纪录 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226293/1.m3u8
|
||||
#EXTINF:-1 ,NewTV精品纪录 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226332/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级体育 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226157/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级体育 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226158/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级体育 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226232/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级体育 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226348/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226133/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级电影 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226233/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级电影 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226369/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级电视剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225864/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级电视剧 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226253/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级电视剧 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226368/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级综艺 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226127/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级综艺 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226231/1.m3u8
|
||||
#EXTINF:-1 ,NewTV超级综艺 CQ
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226370/1.m3u8
|
||||
#EXTINF:-1 ,NewTV金牌综艺 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225920/1.m3u8
|
||||
#EXTINF:-1 ,NewTV金牌综艺 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226296/1.m3u8
|
||||
#EXTINF:-1 ,NewTV金牌综艺 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226347/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226374/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226375/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226377/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226378/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226379/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226380/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226381/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226382/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226394/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226395/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226396/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226397/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226398/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226393/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226392/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226391/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226390/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226372/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226373/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226376/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226383/1.m3u8
|
||||
#EXTINF:-1 ,咪咕视频 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226384/1.m3u8
|
||||
#EXTINF:-1 ,北京家有购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226429/1.m3u8
|
||||
#EXTINF:-1 ,山西优购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226386/1.m3u8
|
||||
#EXTINF:-1 ,中视购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226547/1.m3u8
|
||||
#EXTINF:-1 ,央广购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226319/1.m3u8
|
||||
#EXTINF:-1 ,央广购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226363/1.m3u8
|
||||
#EXTINF:-1 ,江苏好享购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226312/1.m3u8
|
||||
#EXTINF:-1 ,江苏好享购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226344/1.m3u8
|
||||
#EXTINF:-1 ,湖南快乐购 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226341/1.m3u8
|
||||
#EXTINF:-1 ,江西风尚购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225911/1.m3u8
|
||||
#EXTINF:-1 ,江西风尚购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226305/1.m3u8
|
||||
#EXTINF:-1 ,江西风尚购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226342/1.m3u8
|
||||
#EXTINF:-1 ,江苏好享购物 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226313/1.m3u8
|
||||
#EXTINF:-1 ,5GO美妆个护 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226387/1.m3u8
|
||||
#EXTINF:-1 ,5GO美妆个护 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226389/1.m3u8
|
||||
#EXTINF:-1 ,5GO服饰内衣 HD
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226388/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226432/1.m3u8
|
||||
#EXTINF:-1 ,CCTV1 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226338/1.m3u8
|
||||
#EXTINF:-1 ,CCTV2 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225934/1.m3u8
|
||||
#EXTINF:-1 ,CCTV2 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226457/1.m3u8
|
||||
#EXTINF:-1 ,CCTV3 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226456/1.m3u8
|
||||
#EXTINF:-1 ,CCTV4 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226156/1.m3u8
|
||||
#EXTINF:-1 ,CCTV4 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226455/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226454/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226256/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226257/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226258/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226259/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226260/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226261/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226340/1.m3u8
|
||||
#EXTINF:-1 ,CCTV5+ 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225938/1.m3u8
|
||||
#EXTINF:-1 ,CCTV6 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226453/1.m3u8
|
||||
#EXTINF:-1 ,CCTV7 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225863/1.m3u8
|
||||
#EXTINF:-1 ,CCTV7 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226452/1.m3u8
|
||||
#EXTINF:-1 ,CCTV8 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226451/1.m3u8
|
||||
#EXTINF:-1 ,CCTV9 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226450/1.m3u8
|
||||
#EXTINF:-1 ,CCTV9 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225865/1.m3u8
|
||||
#EXTINF:-1 ,CCTV10 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225868/1.m3u8
|
||||
#EXTINF:-1 ,CCTV10 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226449/1.m3u8
|
||||
#EXTINF:-1 ,CCTV11 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225869/1.m3u8
|
||||
#EXTINF:-1 ,CCTV11 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226448/1.m3u8
|
||||
#EXTINF:-1 ,CCTV12 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225870/1.m3u8
|
||||
#EXTINF:-1 ,CCTV12 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226447/1.m3u8
|
||||
#EXTINF:-1 ,CCTV13 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226446/1.m3u8
|
||||
#EXTINF:-1 ,CCTV13 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226159/1.m3u8
|
||||
#EXTINF:-1 ,CCTV13 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226339/1.m3u8
|
||||
#EXTINF:-1 ,CCTV14 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225872/1.m3u8
|
||||
#EXTINF:-1 ,CCTV14 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226445/1.m3u8
|
||||
#EXTINF:-1 ,CCTV14 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225928/1.m3u8
|
||||
#EXTINF:-1 ,CCTV15 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225940/1.m3u8
|
||||
#EXTINF:-1 ,CCTV15 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226444/1.m3u8
|
||||
#EXTINF:-1 ,CCTV17 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226442/1.m3u8
|
||||
#EXTINF:-1 ,CGTN 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226404/1.m3u8
|
||||
#EXTINF:-1 ,CGTN 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225867/1.m3u8
|
||||
#EXTINF:-1 ,CGTN 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226443/1.m3u8
|
||||
#EXTINF:-1 ,CGTN纪录 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226403/1.m3u8
|
||||
#EXTINF:-1 ,CGTN纪录 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225866/1.m3u8
|
||||
#EXTINF:-1 ,中国教育1 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226417/1.m3u8
|
||||
#EXTINF:-1 ,中国教育1 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226538/1.m3u8
|
||||
#EXTINF:-1 ,中国教育1 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225905/1.m3u8
|
||||
#EXTINF:-1 ,中国教育2 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226537/1.m3u8
|
||||
#EXTINF:-1 ,中国教育4 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226362/1.m3u8
|
||||
#EXTINF:-1 ,中国教育4 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226557/1.m3u8
|
||||
#EXTINF:-1 ,东南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226517/1.m3u8
|
||||
#EXTINF:-1 ,东南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225876/1.m3u8
|
||||
#EXTINF:-1 ,东方卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226519/1.m3u8
|
||||
#EXTINF:-1 ,东方卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226161/1.m3u8
|
||||
#EXTINF:-1 ,云南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226424/1.m3u8
|
||||
#EXTINF:-1 ,云南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225902/1.m3u8
|
||||
#EXTINF:-1 ,云南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226543/1.m3u8
|
||||
#EXTINF:-1 ,内蒙古卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226415/1.m3u8
|
||||
#EXTINF:-1 ,内蒙古卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226530/1.m3u8
|
||||
#EXTINF:-1 ,内蒙古卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225891/1.m3u8
|
||||
#EXTINF:-1 ,北京卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226436/1.m3u8
|
||||
#EXTINF:-1 ,北京卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226160/1.m3u8
|
||||
#EXTINF:-1 ,厦门卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226542/1.m3u8
|
||||
#EXTINF:-1 ,吉林卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226426/1.m3u8
|
||||
#EXTINF:-1 ,吉林卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226533/1.m3u8
|
||||
#EXTINF:-1 ,吉林卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225886/1.m3u8
|
||||
#EXTINF:-1 ,四川卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226407/1.m3u8
|
||||
#EXTINF:-1 ,四川卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225898/1.m3u8
|
||||
#EXTINF:-1 ,四川卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226523/1.m3u8
|
||||
#EXTINF:-1 ,天津卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226489/1.m3u8
|
||||
#EXTINF:-1 ,天津卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225899/1.m3u8
|
||||
#EXTINF:-1 ,宁夏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226413/1.m3u8
|
||||
#EXTINF:-1 ,宁夏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226528/1.m3u8
|
||||
#EXTINF:-1 ,宁夏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225892/1.m3u8
|
||||
#EXTINF:-1 ,安徽卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225873/1.m3u8
|
||||
#EXTINF:-1 ,安徽卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226490/1.m3u8
|
||||
#EXTINF:-1 ,山东卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226487/1.m3u8
|
||||
#EXTINF:-1 ,山西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226410/1.m3u8
|
||||
#EXTINF:-1 ,山西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225895/1.m3u8
|
||||
#EXTINF:-1 ,山西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226531/1.m3u8
|
||||
#EXTINF:-1 ,广东卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226535/1.m3u8
|
||||
#EXTINF:-1 ,广西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226408/1.m3u8
|
||||
#EXTINF:-1 ,广西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225879/1.m3u8
|
||||
#EXTINF:-1 ,广西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226534/1.m3u8
|
||||
#EXTINF:-1 ,新疆卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226422/1.m3u8
|
||||
#EXTINF:-1 ,新疆卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225901/1.m3u8
|
||||
#EXTINF:-1 ,新疆卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226546/1.m3u8
|
||||
#EXTINF:-1 ,江苏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226491/1.m3u8
|
||||
#EXTINF:-1 ,江苏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225887/1.m3u8
|
||||
#EXTINF:-1 ,江西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226522/1.m3u8
|
||||
#EXTINF:-1 ,江西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225888/1.m3u8
|
||||
#EXTINF:-1 ,河北卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226409/1.m3u8
|
||||
#EXTINF:-1 ,河北卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225881/1.m3u8
|
||||
#EXTINF:-1 ,河北卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226536/1.m3u8
|
||||
#EXTINF:-1 ,河南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225882/1.m3u8
|
||||
#EXTINF:-1 ,河南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226525/1.m3u8
|
||||
#EXTINF:-1 ,浙江卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226492/1.m3u8
|
||||
#EXTINF:-1 ,浙江卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225903/1.m3u8
|
||||
#EXTINF:-1 ,海南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226427/1.m3u8
|
||||
#EXTINF:-1 ,海南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225890/1.m3u8
|
||||
#EXTINF:-1 ,湖北卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226520/1.m3u8
|
||||
#EXTINF:-1 ,湖北卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225884/1.m3u8
|
||||
#EXTINF:-1 ,湖南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226493/1.m3u8
|
||||
#EXTINF:-1 ,湖南卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226162/1.m3u8
|
||||
#EXTINF:-1 ,甘肃卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226414/1.m3u8
|
||||
#EXTINF:-1 ,甘肃卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225877/1.m3u8
|
||||
#EXTINF:-1 ,甘肃卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226545/1.m3u8
|
||||
#EXTINF:-1 ,西藏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226428/1.m3u8
|
||||
#EXTINF:-1 ,西藏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225900/1.m3u8
|
||||
#EXTINF:-1 ,西藏卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226527/1.m3u8
|
||||
#EXTINF:-1 ,贵州卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226405/1.m3u8
|
||||
#EXTINF:-1 ,贵州卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225880/1.m3u8
|
||||
#EXTINF:-1 ,贵州卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226521/1.m3u8
|
||||
#EXTINF:-1 ,辽宁卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226488/1.m3u8
|
||||
#EXTINF:-1 ,辽宁卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226336/1.m3u8
|
||||
#EXTINF:-1 ,辽宁卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225889/1.m3u8
|
||||
#EXTINF:-1 ,重庆卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225904/1.m3u8
|
||||
#EXTINF:-1 ,重庆卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226337/1.m3u8
|
||||
#EXTINF:-1 ,重庆卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226518/1.m3u8
|
||||
#EXTINF:-1 ,陕西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226411/1.m3u8
|
||||
#EXTINF:-1 ,陕西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225896/1.m3u8
|
||||
#EXTINF:-1 ,陕西卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226532/1.m3u8
|
||||
#EXTINF:-1 ,青海卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226412/1.m3u8
|
||||
#EXTINF:-1 ,青海卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225893/1.m3u8
|
||||
#EXTINF:-1 ,青海卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226529/1.m3u8
|
||||
#EXTINF:-1 ,黑龙江卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226524/1.m3u8
|
||||
#EXTINF:-1 ,黑龙江卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225883/1.m3u8
|
||||
#EXTINF:-1 ,山东教育卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226419/1.m3u8
|
||||
#EXTINF:-1 ,山东教育卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225908/1.m3u8
|
||||
#EXTINF:-1 ,山东教育卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226526/1.m3u8
|
||||
#EXTINF:-1 ,广东南方卫视地面 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226540/1.m3u8
|
||||
#EXTINF:-1 ,新疆兵团卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226541/1.m3u8
|
||||
#EXTINF:-1 ,海南三沙卫视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226544/1.m3u8
|
||||
#EXTINF:-1 ,北京卡酷少儿 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225907/1.m3u8
|
||||
#EXTINF:-1 ,北京卡酷少儿 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226511/1.m3u8
|
||||
#EXTINF:-1 ,北京国际 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226510/1.m3u8
|
||||
#EXTINF:-1 ,北京影视 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226433/1.m3u8
|
||||
#EXTINF:-1 ,北京文艺 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226435/1.m3u8
|
||||
#EXTINF:-1 ,北京新闻 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226512/1.m3u8
|
||||
#EXTINF:-1 ,北京生活 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226514/1.m3u8
|
||||
#EXTINF:-1 ,北京科教 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226434/1.m3u8
|
||||
#EXTINF:-1 ,北京财经 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226516/1.m3u8
|
||||
#EXTINF:-1 ,北京青年 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226513/1.m3u8
|
||||
#EXTINF:-1 ,上海哈哈炫动 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226421/1.m3u8
|
||||
#EXTINF:-1 ,上海哈哈炫动 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225909/1.m3u8
|
||||
#EXTINF:-1 ,广东嘉佳卡通 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226539/1.m3u8
|
||||
#EXTINF:-1 ,江苏优漫卡通 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226420/1.m3u8
|
||||
#EXTINF:-1 ,江苏优漫卡通 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225910/1.m3u8
|
||||
#EXTINF:-1 ,湖南金鹰卡通 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225906/1.m3u8
|
||||
#EXTINF:-1 ,CCTV中视购物 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226385/1.m3u8
|
||||
#EXTINF:-1 ,北京家有购物 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225912/1.m3u8
|
||||
#EXTINF:-1 ,北京家有购物 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226343/1.m3u8
|
||||
#EXTINF:-1 ,聚鲨环球精选 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226311/1.m3u8
|
||||
#EXTINF:-1 ,聚鲨环球精选 标清
|
||||
http://221.179.217.9/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226345/1.m3u8
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,816 +0,0 @@
|
||||
#EXTM3U
|
||||
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-1
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226226/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-1
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225922/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-1
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/8380729188125675257/1.m3u8?stbId=005301FF001589101611549359B92C46&channel-id=shvoolive&Contentid=8380729188125675257&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=8380729188125675257&owchid=shvoolive&owsid=9810361579531242552&AuthInfo=2TOfGIahP4HrGWrHbpJXVOhAZZf%2B%2BRvFCOimr7PCGr9K%2B8TGA2jGwhx%2FP%2B9zbDc6lyCFd7nUPkjV5yhX4M591q%2Bjz%2FVPZBSXzMBonFGRPep2MwYhKpmBifYKbDBIkjbE
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-2
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226230/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-2
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225923/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-2
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/9059700522149664924/1.m3u8?stbId=005301FF00158910000000212621A0DD&channel-id=shvoolive&Contentid=9059700522149664924&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=9059700522149664924&owchid=shvoolive&owsid=9176631579531299298&AuthInfo=2TOfGIahP4HrGWrHbpJXVOJq5SVvpOdgyIf7tzyuJqdYhL2umVWk4VA%2BiWro6vS%2FGYbJQ4PkF2oGSeOSrHR8kErWftutbDOGxkGeSWuC8HvRlxrsJs3srD2VEDgCtlA%2B
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-3
|
||||
http://117.169.124.36:6610/ysten-businessmobile/live/cctv-3/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-3
|
||||
http://223.110.241.130:6610/gitv/live1/G_CCTV-3-HQ/.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-3
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/7583927553614607925/1.m3u8?stbId=005301FF001589101611549359B9531C&channel-id=shvoolive&Contentid=7583927553614607925&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=7583927553614607925&owchid=shvoolive&owsid=4975061579531175360&AuthInfo=2TOfGIahP4HrGWrHbpJXVMtGfw%2Bi1RmSk6DRVWhSYHpPQhuPB3gB9HD2kYmj6h2ghYJH%2BZemKqNLOjvtazNyyelvyYAlIu0Li8OHrMDUf9T6xYM6NbVkTDG8Dli2hoZV
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226314/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225802/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000002000031664/1.m3u8?channel-id=ystenlive&Contentid=1000000002000031664&livemode=1&stbId=00000250001B50800001B401420BC069&userToken=&usergroup=&version=1.0&owaccmark=1000000002000031664&owchid=ystenlive&owsid=4493204828580187354&AuthInfo=zmDeINsczUw%2bXOm6icTIplPJYM0PdJZ7nyJeCqAhmgD4h2W12vkSCe%2bw8qoQi5%2fj1BMuqFcEHMRAJlgQD47XRVqqHN3O4Si9Wv7MjAX%2b8AK0eHLMDmPByGK0oSB43DB7
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-5
|
||||
http://223.110.241.130:6610/gitv/live1/G_CCTV-5-HQ/G_CCTV-5-HQ/
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-5
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226687/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-5
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/8134369599538150431/1.m3u8?stbId=005301FF001589101611549359B91F12&channel-id=shvoolive&Contentid=8134369599538150431&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=8134369599538150431&owchid=shvoolive&owsid=9856681579531396965&AuthInfo=2TOfGIahP4HrGWrHbpJXVHgbCHVZZF5UUv019%2FSsh88KJM1EuxjKGjHOptOCA%2B9qy7SUSUSlFcfpzdjGKbaNwXQPpC5RWUW%2BWPXxlyqlAmmp3eZqD0kAJRbC1HQjeP48
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-5+
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226225/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-5+
|
||||
http://117.169.124.46:6410/ysten-businessmobile/live/hdcctv05plus/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-5+
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000001000020505/1.m3u8?stbId=005301FF001589101611549359B92F26&channel-id=ystenlive&Contentid=1000000001000020505&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000001000020505&owchid=ystenlive&owsid=3007521579531929012&AuthInfo=2TOfGIahP4HrGWrHbpJXVPo6e%2BHF%2BrVo6xQQtyKDSuqu3lLj0NrV6tPDBIsVEpn3e3h8FJNoRfXgk2fJ%2B8A%2BC9FKxw7DogGmhnFazyXoBZJZPx01aV9Q%2Bs%2B%2FVnd4tZOQ
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-6
|
||||
http://223.110.243.139/PLTV/3/224/3221225548/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-6
|
||||
http://117.169.124.36:6610/ysten-businessmobile/live/cctv-6/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-6
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/6705015643145867202/1.m3u8?stbId=005301FF00158910000000212621A501&channel-id=shvoolive&Contentid=6705015643145867202&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=6705015643145867202&owchid=shvoolive&owsid=7641431579531463387&AuthInfo=2TOfGIahP4HrGWrHbpJXVGtyhHJPIcRRegoBYBxkr5gU2nvM3aYRu9pk6g1cfGsxitbm7ri6Y%2BkjLjny72IEdjBnss%2Faslq1wPHTyGHeHFYaAuxUDnXfdynLgAo%2FAhgd
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-7
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-7
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225927/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-7
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/9021776916726275968/1.m3u8?stbId=005303FF00010060000100E400EDD522&channel-id=shvoolive&Contentid=9021776916726275968&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=9021776916726275968&owchid=shvoolive&owsid=1117721579531499433&AuthInfo=dIshjDc3shv8ei%2BWF5V%2F4V6lf0HKCsUdpGR8CeY5ZvwycVHGQkBt0T4Mgr0s8ldsXtd9fDrW5osGZSl1tYFcN4xKXGPanSFGs4GR6kXBOyjKyNYEmAQ7njzvrMpDpEoy
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-8
|
||||
http://117.169.124.36:6610/ysten-businessmobile/live/cctv-8/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-8
|
||||
http://223.110.247.161:6610/cntv/live1/HD-2500k-1080P-cctv8/HD-2500k-1080P-cctv8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-8
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/6718199708332952607/1.m3u8?stbId=005303FF00010060000100E400EDD522&channel-id=shvoolive&Contentid=6718199708332952607&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=6718199708332952607&owchid=shvoolive&owsid=5415971579531545952&AuthInfo=dIshjDc3shv8ei%2BWF5V%2F4V6lf0HKCsUdpGR8CeY5ZvwhPD49%2ByoYvwp35mAdL%2Fiv3IhMa6%2BWOwlWxbCOH9ParUjWZpISKyxZZPoQtekRP1dMl%2BCp9T%2BIEdj1ckDKKfLV
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-9
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226236/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-9
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225820/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-9
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000001000014583/1.m3u8?stbId=005303FF00010060000100E400EDD522&channel-id=ystenlive&Contentid=1000000001000014583&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000001000014583&owchid=ystenlive&owsid=7167961579531601678&AuthInfo=dIshjDc3shv8ei%2BWF5V%2F4V6lf0HKCsUdpGR8CeY5Zvyu3lLj0NrV6tPDBIsVEpn34sImpRHeOmdxmKUDLs1%2BcZ4JMWbvuFdY7IsuWCFdW392C%2BvFQjyH4LwQq4yRWFvT
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-10
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226227/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-10
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221225814/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-10
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5505774374187257095/1.m3u8?stbId=005301FF001589101611549359B928C9&channel-id=shvoolive&Contentid=5505774374187257095&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=5505774374187257095&owchid=shvoolive&owsid=1848841579531638041&AuthInfo=2TOfGIahP4HrGWrHbpJXVO9dhnpYCD6yZADsu%2BE3e1z0TmJ04Et2oauQoqLXutIbfy6yerDX1KNDnX4OGB2ZvZf3QlZMt7Oj%2B5HhHlpl0nNoTgXky6K2iYWb1eX3xCek
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-11
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226315/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-11
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221225815/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-11
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000002000019789/1.m3u8?stbId=005301FF001589101611549359B96031&channel-id=ystenlive&Contentid=1000000002000019789&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000002000019789&owchid=ystenlive&owsid=5070431579531812673&AuthInfo=2TOfGIahP4HrGWrHbpJXVDOD3a2KOxiKxQ3OD0iK1ACjKNizoRlMOkuvsTe1URoeoCCSRcfgLDg%2FiG7BT3%2BNlEIMer5%2BuzAqyByddFhoQVMoMRKerLoSM5qM9Az%2Bea7u
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-12
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-12
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225816/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-12
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/6417486185316863297/1.m3u8?stbId=005301FF001589101611549359B92F26&channel-id=shvoolive&Contentid=6417486185316863297&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=6417486185316863297&owchid=shvoolive&owsid=9153671579531878340&AuthInfo=2TOfGIahP4HrGWrHbpJXVPo6e%2BHF%2BrVo6xQQtyKDSurAX3PB%2FnVIr3xix20cl8xPdgGi1rpRM1DYWZnyEDgQSmvEeryqwyIWUPNfICRzKqmuU3YFsCIaBI4jHMacn12g
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-13
|
||||
http://223.110.241.130:6610/gitv/live1/G_CCTV-13-HQ/.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-13
|
||||
http://223.110.247.161:6610/gitv/live1/G_CCTV-13-HQ/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-14
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226229/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-14
|
||||
http://117.148.187.37/PLTV/88888888/224/3221226126/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-14
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5554452538079056392/1.m3u8?stbId=005301FF001589101611549359B92F26&channel-id=shvoolive&Contentid=5554452538079056392&mos=jbjhhzstsl&livemode=1&proto=7&version=1.0&owaccmark=5554452538079056392&owchid=shvoolive&owsid=1386521579531934459&AuthInfo=2TOfGIahP4HrGWrHbpJXVPo6e%2BHF%2BrVo6xQQtyKDSuraKH2KM768ZNQcj3PAdtOdSSlj5RtbM3onnzvUC8Txgj%2BRYROAJoRcjfZ4YOPHclFuVVM2CqA1FqqLFpU5t7y%2B
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-15
|
||||
http://111.13.111.167/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-15
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221225818/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-15
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000002000008163/1.m3u8?stbId=005301FF00158910000000212621B0EF&channel-id=ystenlive&Contentid=1000000002000008163&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000002000008163&owchid=ystenlive&owsid=8159411579531758075&AuthInfo=2TOfGIahP4HrGWrHbpJXVCfBjPWQNL5VnKaoeN%2FnWIWjKNizoRlMOkuvsTe1URoev67GfI1oIH4w2vVjbaVRzv3Enx1RBixVDhCnZtdnlMixFs9te0%2Bpvr2OpfN5d0VT
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-17
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-17
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221226990/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-17
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000005000056836/1.m3u8?stbId=005301FF001589101611549359B9325E&channel-id=ystenlive&Contentid=1000000005000056836&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000005000056836&owchid=ystenlive&owsid=9164551579532003738&AuthInfo=2TOfGIahP4HrGWrHbpJXVGO0L8hMYc%2BQSE26r5BPa9COQyZOTKfJypXfULnzEX8ov4wHfTVtjr5%2BH1gBPIHFdZVbPTqDjqKmcARryOXhfL7mPOk1Na7QiYpdWHg0hz19
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4K
|
||||
http://112.17.40.12/PLTV/88888888/224/3221226758/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4K
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226758/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4K
|
||||
http://39.134.176.148/PLTV/88888888/224/3221226758/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CCTV-4K
|
||||
http://117.148.187.83/PLTV/88888888/224/3221226758/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,纯享4K源码1
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226825/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,纯享4K源码2
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn/000000001000/1000000004000011651/index.m3u8?channel-id=ystenlive&Contentid=1000000004000011651&livemode=1&authCode=3a&stbId=8A3603DD004735200000049573C4E39B&version=1.0&owaccmark=1000000004000011651&owchid=ystenlive&owsid=6721581571186720581&AuthInfo=QejU%2ByFkapDLEHjn7Vi7Bsh98cz5RjIeOqbMi0Qqlame2O8Id%2BgCUUdS4cJUD1ieqKIx8wFJ0pPdF5P8MGRzRrjFLuuRCIZ2D2ha%2Fr9iiM%2BAnSOfyc4s5zWrjzUdrEbf
|
||||
#EXTINF:-1 logo="" group-title="" ,百事4K频道
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226718/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,凤凰资讯
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226491/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,凤凰资讯
|
||||
http://117.169.124.37:6610/ysten-businessmobile/live/fhzixun/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,凤凰中文
|
||||
http://117.169.124.37:6610/ysten-businessmobile/live/fhchinese/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,凤凰中文
|
||||
http://117.169.120.138:8080/live/fhchinese/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,北京卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226224/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,北京卫视
|
||||
http://111.40.205.87/PLTV/88888888/224/3221225728/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,天津卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226246/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,天津卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226412/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,河北卫视超清1
|
||||
http://223.110.245.149/ott.js.chinamobile.com/PLTV/3/224/3221225840/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,河北卫视超清2
|
||||
http://223.110.247.161:6610/gitv/live1/G_HEBEI/G_HEBEI
|
||||
#EXTINF:-1 logo="" group-title="" ,东方卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226237/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,东方卫视
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000001000005866/1.m3u8?stbId=005301FF001589101611549359B9656A&channel-id=ystenlive&Contentid=1000000001000005866&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000001000005866&owchid=ystenlive&owsid=6312751579529792174&AuthInfo=2TOfGIahP4HrGWrHbpJXVB51rvh1oS437liFJd26gOOu3lLj0NrV6tPDBIsVEpn3OZnoLrZwa8b70lofXkPptSAmb4xhM2tKBJ0VUyBQsWCEzNrIVXcTeS%2F12UFJevdi
|
||||
#EXTINF:-1 logo="" group-title="" ,湖南卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226241/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,湖南卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226553/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,浙江卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226247/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,浙江卫视
|
||||
http://223.110.243.173/PLTV/3/224/3221227215/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,江苏卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226242/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,江苏卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226414/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,东南卫视
|
||||
http://117.169.124.37:6610/ysten-businessmobile/live/dongnanstv/yst.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,东南卫视
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000002000009263/1.m3u8?channel-id=ystenlive&Contentid=1000000002000009263&livemode=1&stbId=005203FF000360100001001A34C0CD33&userToken=bd8bb70bdb2b54bd84b587dffa024f7621vv&usergroup=g21077200000&version=1.0&owaccmark=1000000002000009263&owchid=ystenlive&owsid=1106497909461310172&AuthInfo=yOLXJswzZFfV3FvB8MhHuElKGJKLbU5H0jB3qAhfSE5oj7lZFbEKIj3xJcvQPkjhM1XYZKCRYYY%2ff447%2bzETLijqfFgMTSA9x9T2lf3pyhagZIF%2fdE1lc49i65lODYA%2f
|
||||
#EXTINF:-1 logo="" group-title="" ,山东卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226308/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,山东卫视
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000001000012807/1.m3u8?channel-id=ystenlive&Contentid=1000000001000012807&livemode=1&stbId=005203FF000360100001001A34C0CD33&userToken=bd8bb70bdb2b54bd84b587dffa024f7621vv&usergroup=g21077200000&version=1.0&owaccmark=1000000001000012807&owchid=ystenlive&owsid=1106497909461291586&AuthInfo=yOLXJswzZFfV3FvB8MhHuElKGJKLbU5H0jB3qAhfSE7AORAoVDZDWbFnJ0sXJEaR3cBsIsjm7UHdGO3a4NjD1C4TiYtYt%2by66pvMI%2bkz57DAkgjzetftIzpJRR8RWa0K
|
||||
#EXTINF:-1 logo="" group-title="" ,湖北卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226310/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,湖北卫视
|
||||
http://223.110.243.171/PLTV/3/224/3221227211/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,安徽卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226223/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,安徽卫视
|
||||
http://223.110.247.161:6610/gitv/live1/G_ANHUI-CQ/G_ANHUI-CQ
|
||||
#EXTINF:-1 logo="" group-title="" ,广东卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226238/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,广东卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226225/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,深圳卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226245/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,深圳卫视
|
||||
http://223.110.243.171/PLTV/3/224/3221227217/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,辽宁卫视
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221225947/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,辽宁卫视
|
||||
http://223.110.245.145/ott.js.chinamobile.com/PLTV/3/224/3221227410/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,龙江卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226239/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,龙江卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226555/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,吉林卫视
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=25&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,吉林卫视
|
||||
http://223.110.247.161:6610/gitv/live1/G_JILIN/G_JILIN
|
||||
#EXTINF:-1 logo="" group-title="" ,江西卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226243/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,江西卫视
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226557/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,四川卫视
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221227006/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,四川卫视
|
||||
http://223.110.247.161:6610/gitv/live1/SCWS/SCWS
|
||||
#EXTINF:-1 logo="" group-title="" ,重庆卫视
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221225949/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,重庆卫视
|
||||
http://ivi.bupt.edu.cn/hls/cqhd.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,厦门卫视
|
||||
http://ott.fj.chinamobile.com/PLTV/88888888/224/3221226781/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,厦门卫视
|
||||
http://223.110.247.161:6610/gitv/live1/G_XIAMEN/G_XIAMEN
|
||||
#EXTINF:-1 logo="" group-title="" ,河南卫视
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=19&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,河南卫视超清2
|
||||
http://223.110.245.157/ott.js.chinamobile.com/PLTV/3/224/3221225815/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,贵州卫视
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=41&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,贵州卫视超清2
|
||||
http://223.110.245.149/ott.js.chinamobile.com/PLTV/3/224/3221225787/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,海南卫视超清1
|
||||
http://hnhbxww.com/live.php?http://mlive1.91kds.cn/b9/hitv.m3u8?id=lywshd
|
||||
#EXTINF:-1 logo="" group-title="" ,海南卫视
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225855/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,甘肃卫视超清1
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=142&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,甘肃卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225877/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,青海卫视超清1
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=206&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,青海卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225893/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,云南卫视超清1
|
||||
http://223.110.245.159/ott.js.chinamobile.com/PLTV/3/224/3221225838/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,云南卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225902/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,陕西卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225896/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,陕西卫视
|
||||
http://223.110.247.161:6610/gitv/live1/G_SHANXI/G_SHANXI
|
||||
#EXTINF:-1 logo="" group-title="" ,宁夏卫视超清1
|
||||
http://223.110.245.151/ott.js.chinamobile.com/PLTV/3/224/3221225842/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,宁夏卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225892/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,内蒙卫视超清1
|
||||
http://223.110.245.161/ott.js.chinamobile.com/PLTV/3/224/3221225836/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,内蒙卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225891/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,西藏卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225900/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,西藏卫视
|
||||
http://223.110.247.161:6610/gitv/live1/G_XIZANG/G_XIZANG
|
||||
#EXTINF:-1 logo="" group-title="" ,山西卫视
|
||||
http://223.110.247.161:6610/gitv/live1/SXWS/SXWS
|
||||
#EXTINF:-1 logo="" group-title="" ,山西卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225895/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,广西卫视
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225836/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,广西卫视
|
||||
http://223.110.247.161:6610/gitv/live1/GXWS/GXWS
|
||||
#EXTINF:-1 logo="" group-title="" ,新疆卫视
|
||||
http://223.110.247.161:6610/gitv/live1/G_XINJIANG/G_XINJIANG
|
||||
#EXTINF:-1 logo="" group-title="" ,新疆卫视
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225901/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,南方卫视高清
|
||||
http://223.110.247.161:6610/gitv/live1/G_NANFANG/G_NANFANG
|
||||
#EXTINF:-1 logo="" group-title="" ,兵团卫视高清
|
||||
http://223.110.247.161:6610/gitv/live1/G_BINGTUAN/G_BINGTUAN
|
||||
#EXTINF:-1 logo="" group-title="" ,延边卫视高清
|
||||
http://223.110.247.161:6610/gitv/live1/G_YANBIAN/G_YANBIAN
|
||||
#EXTINF:-1 logo="" group-title="" ,农林卫视高清
|
||||
http://223.110.247.161:6610/gitv/live1/G_NONGLIN/G_NONGLIN
|
||||
#EXTINF:-1 logo="" group-title="" ,康巴卫视高清
|
||||
http://223.110.247.161:6610/gitv/live1/G_KANGBA/G_KANGBA
|
||||
#EXTINF:-1 logo="" group-title="" ,安多卫视高清
|
||||
http://223.110.247.161:6610/gitv/live1/G_ANDUO/G_ANDUO
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视1台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226736/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视2台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225881/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视3台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226708/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视4台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226712/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视5台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225893/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视6台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226692/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视7台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226754/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视8台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226608/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视9台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226606/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视10台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226360/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清动画11台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226732/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清动画12台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226741/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清动漫13台
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226743/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,高清影视14台
|
||||
http://ivi.bupt.edu.cn/hls/chchd.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,东方影视高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5000000010000032212/index.m3u8?channel-id=bestzb&Contentid=5000000010000032212&livemode=1&authCode=3a&stbId=005301FF00158910000000212621B1F2&version=1.0&owaccmark=5000000010000032212&owchid=bestzb&owsid=2093431579530013084&AuthInfo=2TOfGIahP4HrGWrHbpJXVC70y2PVjmhUubUspsIcpqbPt3njBIzWc%2Fam35vTsnvWPWGkzpZH3A16MnnNHKq3GxKdDnIii87ggbdt%2FwooaevY4cuAtO0vMGGwXuHO%2Biok
|
||||
#EXTINF:-1 logo="" group-title="" ,纪实人文高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000001000010606/1.m3u8?stbId=005301FF001589101611549359B92C46&channel-id=ystenlive&Contentid=1000000001000010606&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000001000010606&owchid=ystenlive&owsid=5474771579530255373&AuthInfo=2TOfGIahP4HrGWrHbpJXVOhAZZf%2B%2BRvFCOimr7PCGr%2Bu3lLj0NrV6tPDBIsVEpn3QZdNn969VxaznG4qedKIxPvWqo6nkyvxK0SnJLSEP%2FF4Wxm5gCchMH9VO%2BhWyofF
|
||||
#EXTINF:-1 logo="" group-title="" ,上海外语高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5000000010000030951/index.m3u8?channel-id=bestzb&Contentid=5000000010000030951&livemode=1&authCode=3a&stbId=005303FF0002189018212C1875540E0E&version=1.0&owaccmark=5000000010000030951&owchid=bestzb&owsid=5275181579530295306&AuthInfo=%2FcylGCbqLdFJuk2wbal8%2B%2FwyUq8npJ58oVaJUzBhF9PPt3njBIzWc%2Fam35vTsnvW6JhDYuiodydLTeMKHTm0L2zYfQnHdO1Iw0VU34c0CqRBZ788c%2Fr%2FVjoxJ5D0QVcG
|
||||
#EXTINF:-1 logo="" group-title="" ,第一财经高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5000000010000027146/index.m3u8?channel-id=bestzb&Contentid=5000000010000027146&livemode=1&authCode=3a&stbId=005301FF00158910000000212621B272&version=1.0&owaccmark=5000000010000027146&owchid=bestzb&owsid=2047321579530436324&AuthInfo=2TOfGIahP4HrGWrHbpJXVGQxu5HMK%2BIheH%2BppAJUFQfPt3njBIzWc%2Fam35vTsnvW%2Bh72VHwN1p1HFLVpAXsbYI0I2J%2FhJvUENkmrKWvJBWHflOM1WROOndOSHiRR8ilK
|
||||
#EXTINF:-1 logo="" group-title="" ,冬奥纪实高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/1000000001000001910/1.m3u8?stbId=005301FF001589101611549359B93B82&channel-id=ystenlive&Contentid=1000000001000001910&mos=jbjhhzstsl&livemode=1&version=1.0&owaccmark=1000000001000001910&owchid=ystenlive&owsid=6204131579532167784&AuthInfo=2TOfGIahP4HrGWrHbpJXVB3TJIR2vriLvDYSdNB63hOu3lLj0NrV6tPDBIsVEpn3tQTMvk8FXaCJplQYdE%2FaRS95e%2BAlAk4PMAmwzVuVNoUAyrBQjkJ2X3eTsBSYe8ta
|
||||
#EXTINF:-1 logo="" group-title="" ,北京纪实高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225944/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,五星体育高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5000000010000017540/index.m3u8?channel-id=bestzb&Contentid=5000000010000017540&livemode=1&stbId=004003FF0017301364008422F151297C&userToken=22da83031e59d012e61af366ad30871e02vv&usergroup=g02020000000&version=1.0&owaccmark=5000000010000017540&owchid=bestzb&owsid=4493204831455228383&AuthInfo=N%2biD7%2bHgi9LcszGFRGa51uAqiHNpkS5d0%2fEIXqMyy8J6GNpZ%2bE47AWi696WsOzmj7u8gynrDaeemmd3KgHvW7jm8s%2fkPykV1GmMdpMkc7doBK82U9CVAXx34x1%2fYjl4A
|
||||
#EXTINF:-1 logo="" group-title="" ,生活时尚高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/8538616372715313491/index.m3u8?channel-id=bestzb&Contentid=8538616372715313491&livemode=1&authCode=3a&stbId=005301FF001589101611549359B95001&version=1.0&owaccmark=8538616372715313491&owchid=bestzb&owsid=9384351579529030195&AuthInfo=2TOfGIahP4HrGWrHbpJXVMf9GKsKSOxo3z9oMCSFNzfvIfeh1IeRuYy1UKStuEqgLEq69vAaIVm8yJ1Bv9Ubfc12nlc%2FSga%2FjQ8%2F3mwUrQxWfqFwePA0JQWqj9IZCH10
|
||||
#EXTINF:-1 logo="" group-title="" ,五星体育高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/4612233678249154892/index.m3u8?channel-id=bestzb&Contentid=4612233678249154892&livemode=1&authCode=3a&stbId=005301FF001589101611549359B95001&version=1.0&owaccmark=4612233678249154892&owchid=bestzb&owsid=1779721579529023740&AuthInfo=2TOfGIahP4HrGWrHbpJXVMf9GKsKSOxo3z9oMCSFNzd9hkuYOs2VB84It64D80NJi4eXOKW3GuNNz9Fm%2FKg8xywLT7mM729fPyVIkI9Esx1ZNxN%2F6BsKFZl0vwsL8fqK
|
||||
#EXTINF:-1 logo="" group-title="" ,上海都市高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/6789517052815334336/index.m3u8?channel-id=bestzb&Contentid=6789517052815334336&livemode=1&authCode=3a&stbId=005301FF001589101611549359B94488&version=1.0&owaccmark=6789517052815334336&owchid=bestzb&owsid=3529791579529328057&AuthInfo=2TOfGIahP4HrGWrHbpJXVG%2BEERpEQIU%2FdtpJfuYgRAZD6434P427oxBuLbFRCJn4JFqerLYeYbaWyhUzdTsyRsJkPPbC14Prjj67uIG3APHUBp7pkUo1m6jlajTP1QwT
|
||||
#EXTINF:-1 logo="" group-title="" ,风尚音乐高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5529729098703832176/z.m3u8?authCode=07110409322147352675&stbId=005301FF001589101611549359B92801&Contentid=5529729098703832176&mos=jbjhhzstsl&livemode=1&channel-id=wasusyt&version=1.0&owaccmark=5529729098703832176&owchid=wasusyt&owsid=3246571579530794909&AuthInfo=2TOfGIahP4HrGWrHbpJXVM8tIjUabzvkQw3IFgi64wePjBmkxCliyfsNixolB3vk0fJDbsUHwM4ZMkLD2%2FuFtJVT%2FBKMSil0ujuXkiQNzBbZ5U6pNSIVxD4YjUWtTd0X
|
||||
#EXTINF:-1 logo="" group-title="" ,精品剧场高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/8230197131234717902/z.m3u8?authCode=07110409322147352675&stbId=005303FF000218901813C88F26C4CD9A&Contentid=8230197131234717902&mos=jbjhhzstsl&livemode=1&channel-id=wasusyt&version=1.0&owaccmark=8230197131234717902&owchid=wasusyt&owsid=7188071579532237669&AuthInfo=%2FcylGCbqLdFJuk2wbal8%2B0%2FXYYDGLpWdBEstTIR1PqI%2FOctjqHm7uarF9hdI%2FegylabK%2B2Kjwr6YmfYB%2B0U4%2FVMlD9%2BUH6H5BTAiFyR%2BGJWsoX2Ruwovu0ZMFHxX6702
|
||||
#EXTINF:-1 logo="" group-title="" ,亚洲影院高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/5841816227539527643/z.m3u8?authCode=07110409322147352675&stbId=005301FF001589101611549359B93B82&Contentid=5841816227539527643&mos=jbjhhzstsl&livemode=1&channel-id=wasusyt&version=1.0&owaccmark=5841816227539527643&owchid=wasusyt&owsid=1431411579532174401&AuthInfo=2TOfGIahP4HrGWrHbpJXVB3TJIR2vriLvDYSdNB63hPyA9qk2%2BTKLoJATlqPnb0MXm7l%2FiHeo2whk7VLomWH7w5GNiHxzOX6JECr7x0TLTmTY895HMYgWz4jiaElB1nN
|
||||
#EXTINF:-1 logo="" group-title="" ,上海都市高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/6789517052815334336/index.m3u8?channel-id=bestzb&Contentid=6789517052815334336&livemode=1&stbId=004003FF0041848666008422F155939C&userToken=22da83031e59d012e61af366ad30871e02vv&usergroup=g02020000000&version=1.0&owaccmark=6789517052815334336&owchid=bestzb&owsid=4493204831455331826&AuthInfo=zI7Ouajzmvoo0pGb64%2fbgLE2RFvrprmD90MrWZVi%2bL3HPQnDcXoFLI6SzbzVwjU3sNLudmh14A4CtBNHjWANkrrgGz1D3dYfcKudsIt%2bpr%2fjXiUqpuQHmAckVE8okPuA
|
||||
#EXTINF:-1 logo="" group-title="" ,上海ICS高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/6032059665143203976/index.m3u8?channel-id=bestzb&Contentid=6032059665143203976&livemode=1&authCode=3a&stbId=8A3603DD004735200000049573C4E39B&version=1.0&owaccmark=6032059665143203976&owchid=bestzb&owsid=8862091567733940095&AuthInfo=QejU%2ByFkapDLEHjn7Vi7Bsh98cz5RjIeOqbMi0QqlalAzdP65EW1KAjwws9eqr8onRppCkq5lhXK46o%2BFK3dV%2BCK3fxe9S11%2B88%2FynrqkhlXX%2BzVbd%2F5J%2FreUEsqODX5
|
||||
#EXTINF:-1 logo="" group-title="" ,生活时尚高清
|
||||
http://121.18.168.149/cache.ott.ystenlive.itv.cmvideo.cn:80/000000001000/8538616372715313491/index.m3u8?channel-id=bestzb&Contentid=8538616372715313491&livemode=1&authCode=3a&stbId=8A3603DD004735200000049573C4E39B&version=1.0&owaccmark=8538616372715313491&owchid=bestzb&owsid=5457861567734659356&AuthInfo=QejU%2ByFkapDLEHjn7Vi7Bsh98cz5RjIeOqbMi0QqlakS%2FOYtRGR5wcGJDIS9OeTlipH2OO8alDz%2F1TUrW3QAaMFdRScr5Z2333r7naICD73KmBnoU9%2B3A5Ot%2BJeysO4p
|
||||
#EXTINF:-1 logo="" group-title="" ,峨眉电影高清
|
||||
http://scgctvshow.sctv.com/hdlive/emei/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,欢笑剧场高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226729/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,纪实频道高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221225946/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,极速汽车高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226140/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,动漫秀场高清
|
||||
http://112.50.243.8/PLTV/88888888/224/3221226141/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,黑莓动画高清
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225914/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,黑莓电竞高清
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225931/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,黑莓电影高清
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225927/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,求索纪录
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226610/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,求索科学
|
||||
http://125.210.152.18:9090/live/QSKX_1200.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,求索动物
|
||||
http://125.210.152.18:9090/live/QSDW_1200.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,求索生活
|
||||
http://125.210.152.18:9090/live/QSSH_1200.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本天気预报
|
||||
http://movie.mcas.jp/mcas/wn1_2/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中国教育1台
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225905/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中国教育2台
|
||||
http://cctvalih5ca.v.myalicdn.com/cstv/cetv2_2/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中国教育3台
|
||||
http://cctvalih5ca.v.myalicdn.com/cstv/cetv3_2/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中国教育4台
|
||||
http://cctvalih5ca.v.myalicdn.com/cstv/cetv4_2/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,山东教育
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225908/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,奥林匹克高清
|
||||
http://ott-live.olympicchannel.com/out/u/OC1_2.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,奥铃匹克高清
|
||||
http://ott-live.olympicchannel.com/out/u/OC1_1.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,超级电影
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226233/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,超级综艺
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226231/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,超级体育
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226232/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,超级剧集
|
||||
http://111.13.111.167/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225864/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中国功夫
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226298/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,金牌综艺
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226296/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,农业致富
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226304/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,潮妈辣婆
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226286/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,炫舞未来
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226248/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,明星大片
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226295/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,自由搏击
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226297/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,海外综合
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226302/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,惊梀悬疑
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226294/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱情喜剧
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226299/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,精品记录
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226293/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,精品体育
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226328/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,精品大剧
|
||||
http://111.13.111.167/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226331/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,古装剧场
|
||||
http://111.13.111.167/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226323/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,军旅剧场
|
||||
http://111.13.111.167/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226324/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,军事评论
|
||||
http://111.13.111.167/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226326/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,健康有约
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225919/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,家庭剧场
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225918/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,动作电影
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226288/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱电竞
|
||||
http://101.71.255.229:6610/zjhs/2/10110/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱动漫
|
||||
http://101.71.255.229:6610/zjhs/2/10107/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱都市
|
||||
http://101.71.255.229:6610/zjhs/2/10111/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱江湖
|
||||
http://101.71.255.229:6610/zjhs/2/10114/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱解密
|
||||
http://101.71.255.229:6610/zjhs/2/10109/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱经典
|
||||
http://101.71.255.229:6610/zjhs/2/10106/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱军武
|
||||
http://101.71.255.229:6610/zjhs/2/10119/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱科幻
|
||||
http://101.71.255.229:6610/zjhs/2/10113/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱历史
|
||||
http://101.71.255.229:6610/zjhs/2/10120/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱美食
|
||||
http://101.71.255.229:6610/zjhs/2/10108/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱奇谈
|
||||
http://101.71.255.229:6610/zjhs/2/10103/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱时尚
|
||||
http://101.71.255.229:6610/zjhs/2/10118/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱世界
|
||||
http://101.71.255.229:6610/zjhs/2/10121/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱玩具
|
||||
http://101.71.255.229:6610/zjhs/2/10117/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱喜剧
|
||||
http://101.71.255.229:6610/zjhs/2/10105/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱悬疑
|
||||
http://101.71.255.229:6610/zjhs/2/10104/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱幼教
|
||||
http://101.71.255.229:6610/zjhs/2/10112/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱院线
|
||||
http://101.71.255.229:6610/zjhs/2/10116/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
|
||||
#EXTINF:-1 logo="" group-title="" ,爱青春
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230130/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱家庭
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230118/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱探索
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230112/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱科学
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230106/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱猎奇
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230097/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱谍战
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230092/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱娱乐
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230077/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱旅行
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230052/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱怀旧
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230049/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱体育
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230034/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱赛车
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230032/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,爱浪漫
|
||||
http://112.17.40.140/hwltc.tv.cdn.zj.chinamobile.com/PLTV/88888888/224/3221230005/index.m3u8?fmt=ts2hls
|
||||
#EXTINF:-1 logo="" group-title="" ,票房大片
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_heibangdianying_1080p_t10/c16_lb_heibangdianying_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,惊悚午夜
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_jingnawuyechang_1080p_t10/c16_lb_jingnawuyechang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,动画电影
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_donghuadianying_1080p_t10/c16_lb_donghuadianying_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,怀旧剧场
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_huaijiujuchang_1080p_t10/c16_lb_huaijiujuchang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,温情影院
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c15_lb_chenglong_1080p_t10/c15_lb_chenglong_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,周末影院
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_fengxiaogang_1080p_t10/c16_lb_fengxiaogang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,经典重温
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_jingdianjuchang_1080p_t10/c16_lb_jingdianjuchang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,谍战剧场
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_diezhanjuchang_1080p_t10/c16_lb_diezhanjuchang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,军旅剧场
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_junlvjuchang_1080p_t10/c16_lb_junlvjuchang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,青春剧场
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c15_lb_weizhangzhe_1080p_t10/c15_lb_weizhangzhe_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,抗战剧场
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c15_lb_kangzhanjuchang_1080p_t10/c15_lb_kangzhanjuchang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,侦探柯南
|
||||
http://jvc.flashapp.cn/baiducdnct.inter.iqiyi.com/tslive/c20_lb_mingzhentankenan_720p_t10/c20_lb_mingzhentankenan_720p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,喜羊灰狼
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c15_lb_xiyangyang_1080p_t10/c15_lb_xiyangyang_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,儿子爸爸
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c16_lb_datouerzi_1080p_t10/c16_lb_datouerzi_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,儿歌大全
|
||||
http://101.72.196.41/r/baiducdnct.inter.iqiyi.com/tslive/c15_lb_ergedaquan_1080p_t10/c15_lb_ergedaquan_1080p_t10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,北京少儿
|
||||
http://ivi.bupt.edu.cn/hls/btv10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,动漫电影
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226178/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,云南少儿
|
||||
http://edge2.yntv.cn/channels/yntv/ynse/flv:sd/live
|
||||
#EXTINF:-1 logo="" group-title="" ,重庆少儿
|
||||
http://219.153.252.50/PLTV/88888888/224/3221225646/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,嘉佳卡通
|
||||
http://112.17.40.140/PLTV/88888888/224/3221226461/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,金鹰卡通
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225906/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,哈哈卡通
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225909/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,优漫卡通
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225910/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,卡酷少儿
|
||||
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221225907/1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导一年级
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导二年级
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv2.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导三年级
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv3.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导四年级
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv4.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导五年级
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv5.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导六年级
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv6.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导初一
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv7.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导初二
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv8.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导初三
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv9.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,企鹅辅导高一
|
||||
http://live-edu.wasu.tv/live/QiEFuDao-lv10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,八大精彩台
|
||||
http://hdtv.ub1818.com/ublive/index_1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,民视第一台
|
||||
http://hdtv.ub1818.com/ublive/index_2.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,民视台湾台
|
||||
http://hdtv.ub1818.com/ublive/index_3.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,民视HD
|
||||
http://hdtv.ub1818.com/ublive/index_4.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,TvbsHD
|
||||
http://hdtv.ub1818.com/ublive/index_5.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,非凡新闻HD
|
||||
http://hdtv.ub1818.com/ublive/index_8.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中视新闻HD
|
||||
http://hdtv.ub1818.com/ublive/index_9.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,华视新闻资讯HD
|
||||
http://hdtv.ub1818.com/ublive/index_10.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,FTV综艺
|
||||
http://hdtv.ub1818.com/ublive/index_11.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,八大综合台
|
||||
http://hdtv.ub1818.com/ublive/index_12.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,ELTA娱乐
|
||||
http://hdtv.ub1818.com/ublive/index_13.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,亮社
|
||||
http://hdtv.ub1818.com/ublive/index_14.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,华视CTS
|
||||
http://hdtv.ub1818.com/ublive/index_15.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,公视戏剧
|
||||
http://hdtv.ub1818.com/ublive/index_16.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,动漫
|
||||
http://hdtv.ub1818.com/ublive/index_17.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖洋卡通台
|
||||
http://hdtv.ub1818.com/ublive/index_18.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天综合台
|
||||
http://hdtv.ub1818.com/ublive/index_19.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天日本台
|
||||
http://hdtv.ub1818.com/ublive/index_20.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天卡通台
|
||||
http://hdtv.ub1818.com/ublive/index_21.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天戏剧台
|
||||
http://hdtv.ub1818.com/ublive/index_22.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天电影台
|
||||
http://hdtv.ub1818.com/ublive/index_23.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天音乐台
|
||||
http://hdtv.ub1818.com/ublive/index_24.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天国际台
|
||||
http://hdtv.ub1818.com/ublive/index_25.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天映画
|
||||
http://hdtv.ub1818.com/ublive/index_26.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,台湾采昌
|
||||
http://hdtv.ub1818.com/ublive/index_27.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,台湾影迷电影
|
||||
http://hdtv.ub1818.com/ublive/index_28.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,台湾CNEX
|
||||
http://hdtv.ub1818.com/ublive/index_29.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,台湾AMC电影
|
||||
http://hdtv.ub1818.com/ublive/index_30.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天资讯台
|
||||
http://hdtv.ub1818.com/ublive/index_31.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖天欢乐台
|
||||
http://hdtv.ub1818.com/ublive/index_32.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,靖洋戏剧台
|
||||
http://hdtv.ub1818.com/ublive/index_33.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,台湾音乐
|
||||
http://hdtv.ub1818.com/ublive/index_34.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国娱乐台
|
||||
http://hdtv.ub1818.com/ublive/index_35.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,旅游频道
|
||||
http://hdtv.ub1818.com/ublive/index_36.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,户外频道
|
||||
http://hdtv.ub1818.com/ublive/index_37.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,台视财经HD
|
||||
http://hdtv.ub1818.com/ublive/index_38.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,TRACE体育
|
||||
http://hdtv.ub1818.com/ublive/index_39.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,TVB明珠
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Pcontent_id=&Provider_id=&Fsv_chan_hls_se_idx=12
|
||||
#EXTINF:-1 logo="" group-title="" ,香港卫视
|
||||
http://zhibo.hkstv.tv/livestream/mutfysrq.flv
|
||||
#EXTINF:-1 logo="" group-title="" ,翡翠明珠
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=12&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,翡翠综合
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=188&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv&_res_tag_=video
|
||||
#EXTINF:-1 logo="" group-title="" ,耀才财经
|
||||
http://202.69.67.66:443/webcast/bshdlive-mobile/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,亚旅卫视
|
||||
http://hls.jingchangkan.tv/jingchangkan/156722438_0HaM/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,赛马频道
|
||||
http://tvbilive11-i.akamaihd.net/hls/live/494672/CH88/CH88-01.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,東森新聞
|
||||
http://104.250.154.42:8080/ZZ_dongsenxinwen/ZZ_dongsenxinwen.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,東森電影
|
||||
http://104.250.154.42:8080/ZZ_dongsendianying/ZZ_dongsendianying.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,東森洋片
|
||||
http://192.154.103.75:8080/ZZ_dongsenyangpian/ZZ_dongsenyangpian.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,東森洋片
|
||||
http://104.250.154.42:8080/ZZ_dongsenyangpian/ZZ_dongsenyangpian.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中天新闻
|
||||
http://104.250.154.42:8080/ZZ_zhongtiannews/ZZ_zhongtiannews.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中天综合
|
||||
http://104.250.154.42:8080/ZZ_zhongtianzonghe/ZZ_zhongtianzonghe.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中天綜合
|
||||
http://192.154.103.75:8080//ZZ_zhongtianzonghe/ZZ_zhongtianzonghe.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中天娱乐
|
||||
http://192.154.103.75:8080//ZZ_zhongtianyule/ZZ_zhongtianyule.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中天娱乐
|
||||
http://104.250.154.42:8080/ZZ_zhongtianyule/ZZ_zhongtianyule.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中視综合
|
||||
http://192.154.103.75:8080//ZZ_zhongshi/ZZ_zhongshi.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中视综合
|
||||
http://104.250.154.42:8080/ZZ_zhongshi/ZZ_zhongshi.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,华视综合
|
||||
http://104.250.154.42:8080/ZZ_huashi/ZZ_huashi.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,华视综合
|
||||
http://192.154.103.75:8080//ZZ_huashi/ZZ_huashi.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,年代新聞
|
||||
http://192.154.103.75:8080/ZZ_niandaixinwen/ZZ_niandianxinwen.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,年代新闻
|
||||
http://104.250.154.42:8080/ZZ_niandaixinwen/ZZ_niandianxinwen.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,八大綜合
|
||||
http://192.154.103.75:8080//ZZ_zhongtianyazhou/ZZ_zhongtianyazhou.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,八大综合
|
||||
http://104.250.154.42:8080/ZZ_zhongtianyazhou/ZZ_zhongtianyazhou.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,信吉电视
|
||||
http://220.130.241.203:1935/sjtv/livestream_360p/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,人間衛視
|
||||
http://54.64.23.79:1935/live/vod/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,唯心電視
|
||||
http://mobile.ccdntech.com/transcoder/_definst_/vod164_Live/live/chunklist_w1177047531.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,卫视卡视
|
||||
http://iliketot.dyndns.tv/c8233976dbba4a06a101780907447375.m3u8?&wmsAuthSign=c2VydmVyX3RpbWU9MTAvMjIvMjAxNyAxOjM2OjExIEFNJmhhc2hfdmFsdWU9T1lvZDZ5TjFaWk53M3J4OWZOTWtFUT09JnZhbGlkbWludXRlcz0yJmlkPW1jZ2x5bWFyfDc2MXxpcHR2aGVyb3wxNTA4NjM2MTcxfDIyMy4yMDUuMTIyLjE2Nw
|
||||
#EXTINF:-1 logo="" group-title="" ,国家地理
|
||||
http://104.250.154.42:8080/ZZ_hbo/ZZ_hbo.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,百事通台
|
||||
http://112.17.40.145/PLTV/88888888/224/3221226596/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,MTV音乐
|
||||
http://116.199.5.52:8114/00000000/index.m3u8?&Fsv_ctype=LIVES&Fsv_otype=1&FvSeid=5abd1660af1babb4&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=0&Fsv_chan_hls_se_idx=202&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=0&Fsv_ShiftTsp=0&Provider_id=&Pcontent_id=&Fsv_CMSID=&Fsv_otype=1
|
||||
#EXTINF:-1 logo="" group-title="" ,HBO2台
|
||||
http://161.0.157.5/PLTV/88888888/224/3221227026/03.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,动物星球
|
||||
http://104.250.154.42:8080/ZZ_dongwuxingqiu/ZZ_dongwuxingqiu.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,歐美影院
|
||||
http://101.71.255.229:6610/zjhs/2/10037/z.m3u8?ZTEUPSTREAM=1&IASHttpSessionId=SLB4328320190321203540013412&m3u8_level=2&ztecid=10037&virtualDomain=zjhs.live_hls.zte.com&ispcode=3&tid=Q894B3E8EEZ3T19UG09L8B03GSWB&ts=1553493266
|
||||
#EXTINF:-1 logo="" group-title="" ,亞洲影院
|
||||
http://101.71.255.229:6610/zjhs/2/10052/z.m3u8?ZTEUPSTREAM=1&IASHttpSessionId=SLB4328320190321203540013412&m3u8_level=2&ztecid=10052&virtualDomain=zjhs.live_hls.zte.com&ispcode=3&tid=C3V7K4ET1VFDUJY6C1IASRV55G66&ts=1553493153
|
||||
#EXTINF:-1 logo="" group-title="" ,华纳电视
|
||||
http://104.250.154.42:8080/ZZ_huanadianying/ZZ_huanadianying.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,福克斯动作
|
||||
http://104.250.154.42:8080/ZZ_foxaction/ZZ_foxaction.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,福克斯动作
|
||||
http://192.154.103.75:8080/ZZ_foxaction/ZZ_foxaction.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,大众影视
|
||||
http://39.134.52.206/wh7f454c46tw2522585283_-1736190513/hwottcdn.ln.chinamobile.com/PLTV/88888890/224/3221226752/index.m3u8?icpid=88888890&RTS=1575014274&from=1&ocs=2_39.134.52.206_80&hms_devid=835&vqe=3
|
||||
#EXTINF:-1 logo="" group-title="" ,点掌财经
|
||||
http://cclive2.aniu.tv/live/anzb.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,澳门卫视
|
||||
http://stream.mastvnet.com/MSTV/SD/live.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,澳亚卫视
|
||||
http://stream.mastvnet.com/MSTV/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本NHK华语
|
||||
https://nhkw-zh-hlscomp.akamaized.net/ixxemlzk1vqvy44o/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本NHK英语
|
||||
https://nhkwlive-ojp.akamaized.net/hls/live/2003459/nhkwlive-ojp/index_1M.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本Japan News 24
|
||||
http://www.news24.jp/livestream/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本JapanetChannelDX
|
||||
http://bcsecurelivehls-i.akamaihd.net/hls/live/265320/5043843989001/140130JTDX/index_1200.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本QVC
|
||||
http://cdn-live1.qvc.jp/iPhone/800/800.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国EBS 第一频道
|
||||
http://ebsonairios.ebs.co.kr/groundwavetablet500k/tablet500k/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国EBS 少儿频道
|
||||
http://ebsonairios.ebs.co.kr/ebsutablet500k/tablet500k/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国KCTV
|
||||
http://119.77.96.184:1935/chn21/chn21/chunklist_w252131137.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国UBC SBS
|
||||
http://59.25.202.81:1935/live/UBCstream/chunklist_w1495115977.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,朝鲜中央台
|
||||
http://119.77.96.184:1935/chn05/chn05/chunklist_w644291506.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国KTV 韩国电视
|
||||
http://218.38.152.31:1935/klive/klive.stream/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国EBS 儿童频道
|
||||
http://ebsonairios.ebs.co.kr/ebsutablet500k/_definst_/tablet500k/chunklist_w1965791004.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国YTN 联合新闻
|
||||
http://ytnmmd.mmdlive.lldns.net/ytnmmd/9484b70302db4786886ae40308bf45a1/chunklist_b2592000.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国阿里郎WORLDworld
|
||||
http://amdlive.ctnd.com.edgesuite.net/arirang_1ch/smil:arirang_1ch.smil/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国阿里郎WORLD
|
||||
http://amdlive.ctnd.com.edgesuite.net/arirang_1ch/smil:arirang_1ch/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国MBC MAX
|
||||
http://63.237.48.3/ios/MBC_MAX/MBC_MAX.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,KOREA YTN Science
|
||||
http://slive.sciencetv.kr:1935/science/yslive_20140419_1/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,Luxury World
|
||||
http://nano.teleservice.su:8080/hls/luxury.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,韩国BBS佛教广播
|
||||
http://bbstv.clouducs.com:1935/bbstv-live/livestream/chunklist_w1403706733.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CPAC
|
||||
http://bcoveliveios-i.akamaihd.net/hls/live/248519/1242843915001_1/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CGTN 记录频道
|
||||
http://live.cgtn.com/1000d/prog_index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,中国环球
|
||||
http://live.cgtn.com/1000/prog_index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,狗狗宠物
|
||||
http://video.blivenyc.com/broadcast/prod/2061/22/file-3192k.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,法国时尚
|
||||
http://lb.streaming.sk/fashiontv/stream/chunklist_w1702070444.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,亚洲新闻
|
||||
http://d2e1asnsl7br7b.cloudfront.net/7782e205e72f43aeb4a48ec97f66ebbe/index_4.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,朝阳频道
|
||||
http://d11h6a6nhl9kj9.cloudfront.net/hls/suriactv/master02.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,越南人民报
|
||||
http://27.118.16.98:1935/live/truyenhinhnhandan720/chunklist_w2006762604.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,越南人民报
|
||||
http://vietcago.net/vstv/thnd.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,印度音乐电视
|
||||
http://104.237.60.234/live/gabruutv.m3u8?dsjtv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,法国中国环球
|
||||
http://live.cgtn.com/1000f/prog_index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,法国第五世界台
|
||||
http://v3plusinfo247hls-i.akamaihd.net/hls/live/218877-b/v3plusinfo247hls/v3plusinfo247hls_1_1.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,阿拉伯中国环球
|
||||
http://live.cgtn.com/1000a/prog_index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,俄罗斯中国环球
|
||||
http://live.cgtn.com/1000r/prog_index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,俄罗斯HD时尚频道
|
||||
http://95.67.47.115/hls/hdfashion_ua_hi/index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,乌克兰M2 音乐频道
|
||||
http://live.m2.tv/hls3/stream.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,西班牙中国环球
|
||||
http://livees.cgtn.com/1000e/prog_index.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,意大利Rai高清
|
||||
http://b2everyrai-lh.akamaihd.net/i/raigulp_1@66350/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,意大利Rai 少儿
|
||||
http://b2everyrai-lh.akamaihd.net/i/raiyoyo_1@191405/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,意大利Rai 电影
|
||||
http://b2everyrai-lh.akamaihd.net/i/raimovie_1@67348/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,意大利意大利电台
|
||||
http://radioitaliatv-lh.akamaihd.net/i/radioitaliatv_1@329645/index_720x480_av-p.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,意大利V2 音乐频道
|
||||
http://de1se01.v2beat.live/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,墨西哥墨西哥电视
|
||||
http://bcoveliveios-i.akamaihd.net/hls/live/201661/57828478001/milenio_center_512k@51752.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,音乐20TV
|
||||
http://m2otv-lh.akamaihd.net/i/m2oTv_1@186074/index_600_av-p.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,当红MTV
|
||||
http://unilivemtveu-lh.akamaihd.net/i/mtvno_1@346424/index_3500_av-b.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,WSVI-TV
|
||||
http://dcunilive30-lh.akamaihd.net/i/dclive_1@534251/master.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,酷酷频道
|
||||
http://edge1.tikilive.com:1935/unrestricted_tikilive/25947/amlst:NWKlw6jwyXpz/chunklist_w981409619_b1105254.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,红牛电视
|
||||
http://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master_1660.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,NBC电视
|
||||
http://161.0.157.51/PLTV/88888888/224/3221227040/index.m3u8?fluxustv.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,Jewelry电视
|
||||
http://wowzaprod134-i.akamaihd.net/hls/live/577814/ccddaf02/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,Darcizzle电视
|
||||
http://30a-tv.com/darcizzle.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,CBS新闻
|
||||
http://cbsnewshd-lh.akamaihd.net/i/CBSNHD_7@199302/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,美国Deutsche Welle
|
||||
http://dwstream4-lh.akamaihd.net/i/dwstream4_live@131329/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,美国360 North
|
||||
http://wowzaprod3-i.akamaihd.net/hls/live/252236/2147483647_360north_247/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,美国Fox News Talk Radio
|
||||
http://fnurtmp-f.akamaihd.net/i/FNRADIO_1@92141/master.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本NHK台
|
||||
http://nhkwtvglobal-i.akamaihd.net/hls/live/263941/nhkwtvglobal/index_600.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本cgntv
|
||||
http://cgntv-glive.ofsdelivery.net/live/_definst_/cgntv_jp/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本映画
|
||||
http://192.240.127.34:1935/live/cs19.stream/playlist.m3u8
|
||||
#EXTINF:-1 logo="" group-title="" ,日本Japanet Channel DX
|
||||
http://bcsecurelivehls-i.akamaihd.net/hls/live/265320/5043843989001/140130JTDX/index_600.m3u8
|
||||
36
package.json
36
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zy",
|
||||
"version": "2.6.5",
|
||||
"version": "2.6.8",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
@@ -19,13 +19,13 @@
|
||||
"dependencies": {
|
||||
"axios": "^0.21.0",
|
||||
"cheerio": "^1.0.0-rc.3",
|
||||
"core-js": "^3.7.0",
|
||||
"core-js": "^3.8.0",
|
||||
"cors": "^2.8.5",
|
||||
"dexie": "^3.0.2",
|
||||
"dexie": "^3.0.3",
|
||||
"electron-localshortcut": "^3.2.1",
|
||||
"electron-proxy-agent": "^1.2.0",
|
||||
"electron-updater": "^4.3.5",
|
||||
"element-ui": "^2.14.0",
|
||||
"element-ui": "^2.14.1",
|
||||
"express": "^4.17.1",
|
||||
"fast-xml-parser": "^3.17.4",
|
||||
"html2canvas": "^1.0.0-rc.7",
|
||||
@@ -35,38 +35,40 @@
|
||||
"memcached": "^2.2.2",
|
||||
"modern-normalize": "^1.0.0",
|
||||
"mousetrap": "^1.6.5",
|
||||
"pinyin-match": "^1.1.1",
|
||||
"qrcode.vue": "^1.7.0",
|
||||
"randomstring": "^1.1.5",
|
||||
"session": "^0.1.0",
|
||||
"sortablejs": "^1.12.0",
|
||||
"v-fit-columns": "^0.2.0",
|
||||
"vue": "^2.6.12",
|
||||
"vue-clickaway": "^2.2.2",
|
||||
"vue-infinite-loading": "^2.4.5",
|
||||
"vue-waterfall-plugin": "^1.1.0",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuex": "^3.5.1",
|
||||
"xgplayer": "^2.13.0",
|
||||
"vuex": "^3.6.0",
|
||||
"xgplayer": "^2.13.1",
|
||||
"xgplayer-hls.js": "^2.2.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "~4.4.0",
|
||||
"@vue/cli-plugin-eslint": "~4.4.0",
|
||||
"@vue/cli-plugin-vuex": "~4.4.0",
|
||||
"@vue/cli-service": "~4.4.0",
|
||||
"@vue/cli-plugin-babel": "~4.5.9",
|
||||
"@vue/cli-plugin-eslint": "~4.5.9",
|
||||
"@vue/cli-plugin-vuex": "~4.5.9",
|
||||
"@vue/cli-service": "~4.5.9",
|
||||
"@vue/eslint-config-standard": "^5.1.2",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-plugin-component": "^1.1.1",
|
||||
"electron": "^10.1.5",
|
||||
"electron-devtools-installer": "^3.1.0",
|
||||
"eslint": "^6.7.2",
|
||||
"electron": "^11.0.3",
|
||||
"electron-devtools-installer": "^3.1.1",
|
||||
"eslint": "^7.14.0",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^4.2.1",
|
||||
"eslint-plugin-standard": "^4.0.2",
|
||||
"eslint-plugin-vue": "^6.2.2",
|
||||
"eslint-plugin-standard": "^4.1.0",
|
||||
"eslint-plugin-vue": "^7.1.0",
|
||||
"sass": "^1.29.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"vue-cli-plugin-electron-builder": "2.0.0-rc.4",
|
||||
"sass-loader": "^10.1.0",
|
||||
"vue-cli-plugin-electron-builder": "2.0.0-rc.5",
|
||||
"vue-template-compiler": "^2.6.12"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
<Frame />
|
||||
<Film v-show="view === 'Film'" />
|
||||
<Play v-show="view === 'Play'" />
|
||||
<IPTV v-show="view === 'IPTV'" />
|
||||
<Star v-show="view === 'Star'" />
|
||||
<History v-show="view === 'History'" />
|
||||
<Setting v-show="view === 'Setting'" />
|
||||
<IPTV v-show="view === 'IPTV'" />
|
||||
<EditSites v-if="view === 'EditSites'"/>
|
||||
<Recommendation v-show="view === 'Recommendation'" />
|
||||
</div>
|
||||
|
||||
@@ -95,9 +95,6 @@
|
||||
text-indent: 10px;
|
||||
}
|
||||
}
|
||||
.zy-highlighted{
|
||||
color: var(--highlight-color);
|
||||
}
|
||||
// scroll
|
||||
.zy-scroll{
|
||||
&::-webkit-scrollbar{
|
||||
@@ -225,6 +222,9 @@
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
.disableExpand div.el-table__expand-icon{
|
||||
display: none;
|
||||
}
|
||||
.el-input{
|
||||
width: 200px;
|
||||
}
|
||||
@@ -235,7 +235,7 @@
|
||||
transform: scale(1.02);
|
||||
}
|
||||
.el-table .highlight{
|
||||
background-color: var(--highlight-color) !important; // 改为背景色,原来某些主题下看不清字
|
||||
color: var(--highlight-color) !important;
|
||||
}
|
||||
.el-button{
|
||||
font-size: 1rem;
|
||||
@@ -276,6 +276,19 @@
|
||||
text-align: center;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.site{
|
||||
position: absolute;
|
||||
top: 0%;
|
||||
left: 0%;
|
||||
width: 100%;
|
||||
background-color: #111111aa;
|
||||
color:#2f90b9;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
font-weight: bolder;
|
||||
text-align: center;
|
||||
}
|
||||
.progress{
|
||||
position: absolute;
|
||||
bottom: 10%;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
:root{
|
||||
// general
|
||||
--highlight-color: #38dd77;
|
||||
--highlight-color:#1677b3;
|
||||
// light
|
||||
--l-c-0: #823aa0;
|
||||
--l-c-1: #823aa011;
|
||||
|
||||
@@ -139,6 +139,13 @@
|
||||
.play{
|
||||
background-color: var(--d-bgc-1);
|
||||
box-shadow: var(--d-bsc);
|
||||
.el-input{
|
||||
input{
|
||||
background-color: var(--d-bgc-1);
|
||||
border: 1px solid var(--d-bgc-1);
|
||||
color: var(--d-fc-2);
|
||||
}
|
||||
}
|
||||
.title{
|
||||
color: var(--d-fc-1);
|
||||
.right {
|
||||
@@ -207,6 +214,14 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-channels{
|
||||
.btn{
|
||||
color: var(--d-fc-1);
|
||||
&:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-history{
|
||||
li{
|
||||
.title{
|
||||
|
||||
@@ -139,6 +139,13 @@
|
||||
.play{
|
||||
background-color: var(--g-bgc-1);
|
||||
box-shadow: var(--g-bsc);
|
||||
.el-input{
|
||||
input{
|
||||
background-color: var(--g-bgc-1);
|
||||
border: 1px solid var(--g-bgc-1);
|
||||
color: var(--g-fc-2);
|
||||
}
|
||||
}
|
||||
.title{
|
||||
color: var(--g-fc-1);
|
||||
.right {
|
||||
@@ -207,6 +214,14 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-channels{
|
||||
.btn{
|
||||
color: var(--g-fc-1);
|
||||
&:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-history{
|
||||
li{
|
||||
.title{
|
||||
|
||||
@@ -139,6 +139,13 @@
|
||||
.play{
|
||||
background-color: var(--l-bgc-1);
|
||||
box-shadow: var(--l-bsc);
|
||||
.el-input{
|
||||
input{
|
||||
background-color: var(--l-bgc-1);
|
||||
border: 1px solid var(--l-bgc-1);
|
||||
color: var(--l-fc-2);
|
||||
}
|
||||
}
|
||||
.title{
|
||||
color: var(--l-fc-1);
|
||||
.right {
|
||||
@@ -207,6 +214,14 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-channels{
|
||||
.btn{
|
||||
color: var(--l-fc-1);
|
||||
&:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-history{
|
||||
li{
|
||||
.title{
|
||||
|
||||
@@ -139,6 +139,13 @@
|
||||
.play{
|
||||
background-color: var(--p-bgc-1);
|
||||
box-shadow: var(--p-bsc);
|
||||
.el-input{
|
||||
input{
|
||||
background-color: var(--p-bgc-1);
|
||||
border: 1px solid var(--p-bgc-1);
|
||||
color: var(--p-fc-2);
|
||||
}
|
||||
}
|
||||
.title{
|
||||
color: var(--p-fc-1);
|
||||
.right {
|
||||
@@ -207,6 +214,14 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-channels{
|
||||
.btn{
|
||||
color: var(--p-fc-1);
|
||||
&:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-history{
|
||||
li{
|
||||
.title{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict'
|
||||
|
||||
import './lib/site/server'
|
||||
import { app, protocol, BrowserWindow, globalShortcut, ipcMain } from 'electron'
|
||||
import { app, protocol, BrowserWindow, globalShortcut } from 'electron'
|
||||
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
|
||||
import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
|
||||
import { initUpdater } from './lib/update/update'
|
||||
@@ -11,7 +11,6 @@ app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') // 允许跨
|
||||
// app.commandLine.appendSwitch('--ignore-certificate-errors', 'true') // 忽略证书相关错误
|
||||
|
||||
let win
|
||||
let mini
|
||||
|
||||
protocol.registerSchemesAsPrivileged([{ scheme: 'app', privileges: { secure: true, standard: true } }])
|
||||
|
||||
@@ -43,35 +42,6 @@ function createWindow () {
|
||||
})
|
||||
}
|
||||
|
||||
function createMini () {
|
||||
mini = new BrowserWindow({
|
||||
width: 550,
|
||||
miniWidth: 860,
|
||||
height: 340,
|
||||
miniHeight: 180,
|
||||
frame: false,
|
||||
resizable: true,
|
||||
webPreferences: {
|
||||
sandbox: false,
|
||||
webSecurity: false,
|
||||
enableRemoteModule: true,
|
||||
nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
|
||||
}
|
||||
})
|
||||
|
||||
if (process.env.WEBPACK_DEV_SERVER_URL) {
|
||||
mini.loadURL(process.env.WEBPACK_DEV_SERVER_URL + 'mini')
|
||||
if (!process.env.IS_TEST) mini.webContents.openDevTools()
|
||||
} else {
|
||||
createProtocol('app')
|
||||
mini.loadURL('app://./mini.html')
|
||||
}
|
||||
|
||||
mini.on('closed', () => {
|
||||
mini = null
|
||||
})
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
app.dock.show()
|
||||
}
|
||||
@@ -91,17 +61,6 @@ app.on('activate', () => {
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.on('mini', () => {
|
||||
createMini()
|
||||
win.hide()
|
||||
})
|
||||
|
||||
ipcMain.on('win', () => {
|
||||
mini.destroy()
|
||||
win.show()
|
||||
win.webContents.send('miniClosed')
|
||||
})
|
||||
|
||||
const gotTheLock = app.requestSingleInstanceLock()
|
||||
if (!gotTheLock) {
|
||||
app.quit()
|
||||
@@ -125,9 +84,6 @@ if (!gotTheLock) {
|
||||
if (win) {
|
||||
win.isFocused() ? win.blur() : win.focus()
|
||||
}
|
||||
if (mini) {
|
||||
mini.isFocused() ? mini.blur() : mini.focus()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -21,13 +21,6 @@
|
||||
<path d="M4,18 L4,9"/>
|
||||
</svg>
|
||||
</span>
|
||||
<span :class="[view === 'IPTV' ? 'active ': ''] + 'zy-svg'" @click="changeView('IPTV')">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="tvIconTitle">
|
||||
<title id="tvIconTitle">电视直播</title>
|
||||
<polygon points="20 8 20 20 4 20 4 8"></polygon>
|
||||
<polyline stroke-linejoin="round" points="8 4 12 7.917 16 4"></polyline>
|
||||
</svg>
|
||||
</span>
|
||||
<span :class="[view === 'Play' ? 'active ': ''] + 'zy-svg'" @click="changeView('Play')">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="playIconTitle">
|
||||
<title id="playIconTitle">播放</title>
|
||||
|
||||
@@ -130,7 +130,6 @@ export default {
|
||||
},
|
||||
async playEvent (n) {
|
||||
if (!this.playOnline) {
|
||||
console.log(this.detail)
|
||||
const db = await history.find({ site: this.detail.key, ids: this.detail.info.id })
|
||||
if (db) {
|
||||
this.video = { key: db.site, info: { id: db.ids, name: db.name, index: n, site: this.detail.site } }
|
||||
|
||||
@@ -199,9 +199,9 @@ export default {
|
||||
selectionCellClick (selection, row) {
|
||||
if (this.shiftDown && this.selectionBegin !== '' && selection.includes(row)) {
|
||||
this.selectionEnd = row.id
|
||||
const start = Math.min(this.selectionBegin, this.selectionEnd) - 1
|
||||
const end = Math.max(this.selectionBegin, this.selectionEnd)
|
||||
const selections = this.sites.slice(start, end)
|
||||
const start = this.sites.findIndex(e => e.id === Math.min(this.selectionBegin, this.selectionEnd))
|
||||
const end = this.sites.findIndex(e => e.id === Math.max(this.selectionBegin, this.selectionEnd))
|
||||
const selections = this.sites.slice(start, end + 1)
|
||||
this.$nextTick(() => {
|
||||
selections.forEach(e => this.$refs.editSitesTable.toggleRowSelection(e, true))
|
||||
})
|
||||
@@ -314,7 +314,7 @@ export default {
|
||||
var randomstring = require('randomstring')
|
||||
var doc = {
|
||||
key: this.dialogType === 'edit' ? this.siteInfo.key : this.siteInfo.key ? this.siteInfo.key : randomstring.generate(6),
|
||||
id: this.dialogType === 'edit' ? this.siteInfo.id : this.sites[this.sites.length - 1].id + 1,
|
||||
id: this.dialogType === 'edit' ? this.siteInfo.id : this.sites.length ? this.sites[this.sites.length - 1].id + 1 : 1,
|
||||
name: this.siteInfo.name,
|
||||
api: this.siteInfo.api,
|
||||
download: this.siteInfo.download,
|
||||
@@ -412,7 +412,7 @@ export default {
|
||||
this.updateDatabase()
|
||||
},
|
||||
syncTableData () {
|
||||
if (this.$refs.editSitesTable.tableData) {
|
||||
if (this.$refs.editSitesTable.tableData && this.$refs.editSitesTable.tableData.length === this.sites.length) {
|
||||
this.sites = this.$refs.editSitesTable.tableData
|
||||
}
|
||||
},
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
:value="item.name">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-switch v-model="searchViewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="table" @change="updateSearchViewMode"
|
||||
v-if="show.find"></el-switch>
|
||||
<el-select v-model="selectedClassName" size="small" placeholder="类型" :popper-append-to-body="false" popper-class="popper" @change="classClick" v-show="show.class">
|
||||
<el-option
|
||||
v-for="item in classList"
|
||||
@@ -150,7 +152,7 @@
|
||||
</infinite-loading>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="show-table" v-show="show.find">
|
||||
<div class="show-table" v-show="searchViewMode=== 'table' && show.find">
|
||||
<el-table size="mini"
|
||||
ref="searchResultTable"
|
||||
:data="searchContents.filter(res => !setting.excludeR18Films || (res.type !== undefined && !containsR18Keywords(res.type)))"
|
||||
@@ -224,6 +226,47 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="show-picture" v-show="searchViewMode === 'picture' && show.find">
|
||||
<Waterfall ref="filmSearchWaterfall" :list="searchContents.filter(res => !setting.excludeR18Films || (res.type !== undefined && !containsR18Keywords(res.type)))" :gutter="20" :width="240"
|
||||
:breakpoints="{
|
||||
1200: { //当屏幕宽度小于等于1200
|
||||
rowPerView: 4,
|
||||
},
|
||||
800: { //当屏幕宽度小于等于800
|
||||
rowPerView: 3,
|
||||
},
|
||||
500: { //当屏幕宽度小于等于500
|
||||
rowPerView: 2,
|
||||
}
|
||||
}"
|
||||
animationEffect="fadeIn"
|
||||
backgroundColor="rgba(0, 0, 0, 0)">
|
||||
<template slot="item" slot-scope="props">
|
||||
<div class="card" v-show="!setting.excludeR18Films || !containsR18Keywords(props.data.type)">
|
||||
<div class="img">
|
||||
<div class="site">
|
||||
<span>{{props.data.site.name}}</span>
|
||||
</div>
|
||||
<img style="width: 100%" :src="props.data.pic" alt="" @load="$refs.filmSearchWaterfall.refresh()" @click="detailEvent(props.data.site, props.data)">
|
||||
<div class="operate">
|
||||
<div class="operate-wrap">
|
||||
<span class="o-play" @click="playEvent(props.data.site, props.data)">播放</span>
|
||||
<span class="o-star" @click="starEvent(props.data.site, props.data)">收藏</span>
|
||||
<span class="o-share" @click="shareEvent(props.data.site, props.data)">分享</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="name" @click="detailEvent(props.data.site, props.data)">{{props.data.name}}</div>
|
||||
<div class="info">
|
||||
<span>{{props.data.area}}</span>
|
||||
<span>{{props.data.year}}</span>
|
||||
<span>{{props.data.note}}</span>
|
||||
<span>{{props.data.type}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</Waterfall>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -263,7 +306,8 @@ export default {
|
||||
searchGroup: '',
|
||||
searchGroups: [],
|
||||
// 福利片关键词
|
||||
r18KeyWords: ['伦理', '论理', '倫理', '福利', '激情', '理论', '写真', '情色', '美女', '街拍', '赤足', '性感', '里番']
|
||||
r18KeyWords: ['伦理', '论理', '倫理', '福利', '激情', '理论', '写真', '情色', '美女', '街拍', '赤足', '性感', '里番'],
|
||||
searchViewMode: 'picture'
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -338,6 +382,12 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['SET_VIEW', 'SET_DETAIL', 'SET_VIDEO', 'SET_SHARE', 'SET_SETTING']),
|
||||
updateSearchViewMode () {
|
||||
setting.find().then(res => {
|
||||
res.searchViewMode = this.searchViewMode
|
||||
setting.update(res)
|
||||
})
|
||||
},
|
||||
sortByLocaleCompare (a, b) {
|
||||
return a.localeCompare(b, 'zh')
|
||||
},
|
||||
@@ -375,7 +425,6 @@ export default {
|
||||
this.classList = []
|
||||
this.type = {}
|
||||
this.getClass().then(res => {
|
||||
this.infiniteId += 1
|
||||
this.classClick(this.classList[0].name)
|
||||
})
|
||||
}
|
||||
@@ -444,7 +493,7 @@ export default {
|
||||
const type = this.type.tid
|
||||
const page = this.pagecount
|
||||
this.statusText = ' '
|
||||
if (key && page < 1) { // OK资源前几类硬是去不掉
|
||||
if (key === undefined || page < 1 || type === undefined) { // OK资源前几类硬是去不掉
|
||||
$state.complete()
|
||||
this.statusText = '暂无数据'
|
||||
return false
|
||||
@@ -464,6 +513,10 @@ export default {
|
||||
this.list.push(res)
|
||||
}
|
||||
$state.loaded()
|
||||
// 数据更新后,刷新页面
|
||||
if (this.$refs.filmWaterfall) {
|
||||
this.$refs.filmWaterfall.refresh()
|
||||
}
|
||||
} else {
|
||||
$state.complete()
|
||||
this.statusText = '暂无数据'
|
||||
@@ -519,7 +572,7 @@ export default {
|
||||
downloadEvent (site, row) {
|
||||
zy.download(site.key, row.id).then(res => {
|
||||
if (res && res.length > 0) {
|
||||
const text = res.dl.dd._t
|
||||
const text = res.m3u8List
|
||||
if (text) {
|
||||
const list = text.split('#')
|
||||
let downloadUrl = res.name + '\n'
|
||||
@@ -562,14 +615,10 @@ export default {
|
||||
if (this.$refs.filmWaterfall) {
|
||||
this.$refs.filmWaterfall.refresh()
|
||||
}
|
||||
this.getPage().then(() => {
|
||||
this.infiniteId += 1
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
querySearch (queryString, cb) {
|
||||
if (this.searchList.length === 0) return
|
||||
var searchList = this.searchList.slice(0, -1)
|
||||
var results = queryString ? searchList.filter(this.createFilter(queryString)) : this.searchList
|
||||
// 调用 callback 返回建议列表的数据
|
||||
@@ -697,11 +746,17 @@ export default {
|
||||
this.searchGroup = this.setting.searchGroup
|
||||
if (this.searchGroup === undefined) setting.find().then(res => { this.searchGroup = res.searchGroup })
|
||||
})
|
||||
},
|
||||
getSearchViewMode () {
|
||||
setting.find().then(res => {
|
||||
this.searchViewMode = res.searchViewMode === undefined ? 'picture' : res.searchViewMode
|
||||
})
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getAllSites()
|
||||
this.getSearchHistory()
|
||||
this.getSearchViewMode()
|
||||
},
|
||||
mounted () {
|
||||
window.addEventListener('resize', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="frame">
|
||||
<span class="top" @click="frameClickEvent('top')" title="置顶">
|
||||
<svg t="1595919317571" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1188" style="width:10px;height:14px"><path d="M43.072 974.72l380.864-301.952 151.936 161.6c0 0 63.424 17.28 67.328-30.72l-3.904-163.584 225.088-259.648 98.048-5.696c0 0 76.928-15.488 21.184-82.752l-275.072-276.928c0 0-74.944-9.6-69.248 59.584l0 75.008L383.552 367.104 225.856 376.64c0 0-57.728 19.2-36.608 69.248l148.16 146.176L43.072 974.72 43.072 974.72z" p-id="1189" :fill="isAlwaysOnTop ? '#555555' : '#ffffff'"></path></svg>
|
||||
<svg t="1595919317571" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1188" style="width:10px;height:14px"><path d="M43.072 974.72l380.864-301.952 151.936 161.6c0 0 63.424 17.28 67.328-30.72l-3.904-163.584 225.088-259.648 98.048-5.696c0 0 76.928-15.488 21.184-82.752l-275.072-276.928c0 0-74.944-9.6-69.248 59.584l0 75.008L383.552 367.104 225.856 376.64c0 0-57.728 19.2-36.608 69.248l148.16 146.176L43.072 974.72 43.072 974.72z" p-id="1189" :fill="appState.windowIsOnTop ? '#555555' : '#ffffff'"></path></svg>
|
||||
</span>
|
||||
<span class="min" @click="frameClickEvent('min')" title="最小化">
|
||||
<svg t="1595917239849" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1155" style="width:8px;height:14px"><path d="M0 479.936C0 444.64 28.448 416 64.064 416L959.936 416C995.328 416 1024 444.736 1024 479.936L1024 544.064C1024 579.392 995.552 608 959.936 608L64.064 608C28.672 608 0 579.264 0 544.064L0 479.936Z" p-id="1156" fill="#ffffff"></path></svg>
|
||||
@@ -18,10 +18,14 @@
|
||||
const { remote } = require('electron')
|
||||
export default {
|
||||
name: 'frame',
|
||||
data () {
|
||||
const win = remote.getCurrentWindow()
|
||||
return {
|
||||
isAlwaysOnTop: win.isAlwaysOnTop()
|
||||
computed: {
|
||||
appState: {
|
||||
get () {
|
||||
return this.$store.getters.getAppState
|
||||
},
|
||||
set (val) {
|
||||
this.SET_APPSTATE(val)
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -37,8 +41,8 @@ export default {
|
||||
win.destroy()
|
||||
}
|
||||
if (e === 'top') {
|
||||
this.isAlwaysOnTop = !this.isAlwaysOnTop
|
||||
win.setAlwaysOnTop(this.isAlwaysOnTop)
|
||||
this.appState.windowIsOnTop = !this.appState.windowIsOnTop
|
||||
win.setAlwaysOnTop(this.appState.windowIsOnTop)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="listpage" id="history">
|
||||
<div class="listpage-header" id="history-header">
|
||||
<el-switch v-model="viewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="list" @change="updateViewMode"></el-switch>
|
||||
<el-switch v-model="viewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="table" @change="updateViewMode"></el-switch>
|
||||
<el-button @click.stop="exportHistory" icon="el-icon-upload2">导出</el-button>
|
||||
<el-button @click.stop="importHistory" icon="el-icon-download">导入</el-button>
|
||||
<el-button @click.stop="clearAllHistory" icon="el-icon-delete-solid">清空</el-button>
|
||||
</div>
|
||||
<div class="listpage-body" id="history-body">
|
||||
<div class="show-table" id="history-table" v-show="viewMode === 'list'">
|
||||
<div class="show-table" id="history-table" v-show="viewMode === 'table'">
|
||||
<el-table size="mini" fit height="100%" :data="history" row-key="id" @row-click="detailEvent">
|
||||
<el-table-column
|
||||
prop="name"
|
||||
@@ -197,35 +197,18 @@ export default {
|
||||
},
|
||||
downloadEvent (e) {
|
||||
zy.download(e.site, e.ids).then(res => {
|
||||
if (res && res.dl && res.dl.dd) {
|
||||
const text = res.dl.dd._t
|
||||
if (text) {
|
||||
const list = text.split('#')
|
||||
let downloadUrl = ''
|
||||
for (const i of list) {
|
||||
const url = encodeURI(i.split('$')[1])
|
||||
downloadUrl += (url + '\n')
|
||||
}
|
||||
clipboard.writeText(downloadUrl)
|
||||
this.$message.success('『MP4』格式的链接已复制, 快去下载吧!')
|
||||
} else {
|
||||
this.$message.warning('没有查询到下载链接.')
|
||||
if (res && res.m3u8List) {
|
||||
const list = res.m3u8List.split('#')
|
||||
let downloadUrl = ''
|
||||
for (const i of list) {
|
||||
const url = encodeURI(i.split('$')[1])
|
||||
downloadUrl += (url + '\n')
|
||||
}
|
||||
clipboard.writeText(downloadUrl)
|
||||
this.$message.success('『MP4』格式的链接已复制, 快去下载吧!')
|
||||
} else {
|
||||
var m3u8List = {}
|
||||
zy.detail(e.site, e.ids).then(res => {
|
||||
const dd = res.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._flag.indexOf('m3u8') >= 0) {
|
||||
m3u8List = i._t.split('#')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8List = dd._t.split('#')
|
||||
}
|
||||
const list = [...m3u8List]
|
||||
const list = [...res.m3u8List]
|
||||
let downloadUrl = ''
|
||||
for (const i of list) {
|
||||
const url = encodeURI(i.split('$')[1])
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
<template>
|
||||
<div class="listpage" id="iptv">
|
||||
<div class="listpage-header" id="iptv-header" v-show="!enableBatchEdit">
|
||||
<el-switch v-model="enableBatchEdit" active-text="批处理分组"></el-switch>
|
||||
<el-switch v-model="enableBatchEdit" active-text="批处理及频道调整"></el-switch>
|
||||
<el-button @click.stop="exportChannels" icon="el-icon-upload2" >导出</el-button>
|
||||
<el-button @click.stop="importChannels" icon="el-icon-download">导入</el-button>
|
||||
<el-button @click="checkAllChannels" icon="el-icon-refresh" :loading="checkAllChannelsLoading">检测{{ this.checkAllChannelsLoading ? this.checkProgress + '/' + this.iptvList.length : '' }}</el-button>
|
||||
<el-button @click.stop="resetChannelsEvent" icon="el-icon-refresh-left">重置</el-button>
|
||||
</div>
|
||||
<div class="listpage-header" id="iptv-header" v-show="enableBatchEdit">
|
||||
<el-switch v-model="enableBatchEdit" active-text="批处理分组"></el-switch>
|
||||
<el-input placeholder="新组名" v-model="batchGroupName"></el-input>
|
||||
<el-switch v-model="enableBatchEdit" active-text="批处理及频道调整"></el-switch>
|
||||
<el-input placeholder="新组名/新频道名" v-model="inputContent"></el-input>
|
||||
<el-switch v-model="batchIsActive" active-text="启用"></el-switch>
|
||||
<el-button type="primary" icon="el-icon-edit" @click.stop="saveBatchEdit">保存</el-button>
|
||||
<el-button type="primary" icon="el-icon-edit" @click.stop="saveBatchEdit">保存分组与开关状态</el-button>
|
||||
<el-button type="primary" icon="el-icon-film" @click.stop="mergeChannel">{{ this.multipleSelection.length === 1 ? '频道重命名' : '频道合并' }}</el-button>
|
||||
<el-button @click.stop="removeSelectedChannels" icon="el-icon-delete-solid">删除</el-button>
|
||||
</div>
|
||||
<div class="listpage-body" id="iptv-table">
|
||||
@@ -20,10 +21,13 @@
|
||||
ref="iptvTable"
|
||||
size="mini" fit height="100%" row-key="id"
|
||||
:data="filteredTableData"
|
||||
@row-click="playEvent"
|
||||
lazy
|
||||
:load="(row, treeNode, resolve) => resolve(row.channels)"
|
||||
:tree-props="{hasChildren: 'hasChildren'}"
|
||||
@expand-change="expandChange"
|
||||
@select="selectionCellClick"
|
||||
@selection-change="handleSelectionChange"
|
||||
@sort-change="handleSortChange">>
|
||||
@sort-change="handleSortChange">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
v-if="enableBatchEdit">
|
||||
@@ -31,6 +35,7 @@
|
||||
<el-table-column
|
||||
default-sort="ascending"
|
||||
prop="name"
|
||||
:class-name="enableBatchEdit ? 'disableExpand' : ''"
|
||||
label="频道名">
|
||||
<template #header>
|
||||
<el-input
|
||||
@@ -85,12 +90,13 @@
|
||||
align="right"
|
||||
:width="200">
|
||||
<template #header>
|
||||
<span>总频道数:{{ iptvList.length }}</span>
|
||||
<span>{{ enableBatchEdit ? `频道总数:${channelList.length}` : `资源总数:${iptvList.length}` }}</span>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button @click.stop="moveToTopEvent(scope.row)" type="text">置顶</el-button>
|
||||
<el-button @click.stop="moveToTopEvent(scope.row)" type="text" v-if="scope.row.channels">置顶</el-button>
|
||||
<el-button @click.stop="playEvent(scope.row)" type="text">播放</el-button>
|
||||
<!-- 检测时先强制批量检测一遍,如果不强制直接单个检测时第一次不会显示“检测中”-->
|
||||
<el-button size="mini" v-if="iptvList.every(channel => channel.status)" v-show="!checkAllChannelsLoading" @click.stop="checkSingleChannel(scope.row)" type="text">检测</el-button>
|
||||
<el-button size="mini" v-if="iptvList.every(channel => channel.status)" v-show="!checkAllChannelsLoading" @click.stop="checkChannel(scope.row)" type="text">检测</el-button>
|
||||
<el-button @click.stop="removeEvent(scope.row)" type="text">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -101,7 +107,7 @@
|
||||
</template>
|
||||
<script>
|
||||
import { mapMutations } from 'vuex'
|
||||
import { iptv, iptvSearch } from '../lib/dexie'
|
||||
import { iptv, channelList } from '../lib/dexie'
|
||||
import { iptv as defaultChannels } from '../lib/dexie/initData'
|
||||
import zy from '../lib/site/tools'
|
||||
import { remote } from 'electron'
|
||||
@@ -112,21 +118,20 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
iptvList: [],
|
||||
channelList: [],
|
||||
searchTxt: '',
|
||||
searchRecordList: [],
|
||||
enableBatchEdit: false,
|
||||
batchGroupName: '',
|
||||
inputContent: '',
|
||||
batchIsActive: true,
|
||||
shiftDown: false,
|
||||
selectionBegin: '',
|
||||
selectionEnd: '',
|
||||
multipleSelection: [],
|
||||
expandedRows: [],
|
||||
checkAllChannelsLoading: false,
|
||||
checkProgress: 0,
|
||||
stopFlag: false,
|
||||
show: {
|
||||
search: false
|
||||
}
|
||||
sortableTable: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -151,13 +156,13 @@ export default {
|
||||
},
|
||||
filteredTableData () {
|
||||
if (this.searchTxt) {
|
||||
return this.iptvList.filter(x => x.name.toLowerCase().includes(this.searchTxt.toLowerCase()))
|
||||
return this.channelList.filter(x => x.name.toLowerCase().includes(this.searchTxt.toLowerCase()))
|
||||
} else {
|
||||
return this.iptvList
|
||||
return this.channelList
|
||||
}
|
||||
},
|
||||
getFilters () {
|
||||
const groups = [...new Set(this.iptvList.map(iptv => iptv.group))]
|
||||
const groups = [...new Set(this.channelList.map(iptv => iptv.group))]
|
||||
var filters = []
|
||||
groups.forEach(g => {
|
||||
var doc = {
|
||||
@@ -171,14 +176,23 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
view () {
|
||||
if (this.view === 'IPTV') {
|
||||
this.getChannels()
|
||||
if (this.view === 'IPTV' && !this.checkAllChannelsLoading) {
|
||||
this.getChannelList()
|
||||
}
|
||||
},
|
||||
enableBatchEdit () {
|
||||
if (this.checkAllChannelsLoading) {
|
||||
this.$message.info('正在检测, 请勿操作.')
|
||||
this.enableBatchEdit = false
|
||||
return
|
||||
}
|
||||
if (this.enableBatchEdit) {
|
||||
this.$nextTick(() => {
|
||||
this.expandedRows.forEach(e => this.$refs.iptvTable.toggleRowExpansion(e, false))
|
||||
})
|
||||
this.rowDrop()
|
||||
} else {
|
||||
this.sortableTable.destroy()
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -190,9 +204,9 @@ export default {
|
||||
selectionCellClick (selection, row) {
|
||||
if (this.shiftDown && this.selectionBegin !== '' && selection.includes(row)) {
|
||||
this.selectionEnd = row.id
|
||||
const start = Math.min(this.selectionBegin, this.selectionEnd) - 1
|
||||
const end = Math.max(this.selectionBegin, this.selectionEnd)
|
||||
const selections = this.iptvList.slice(start, end)
|
||||
const start = this.channelList.findIndex(e => e.id === Math.min(this.selectionBegin, this.selectionEnd))
|
||||
const end = this.channelList.findIndex(e => e.id === Math.max(this.selectionBegin, this.selectionEnd))
|
||||
const selections = this.channelList.slice(start, end + 1) // 多选时强制不让展开
|
||||
this.$nextTick(() => {
|
||||
selections.forEach(e => this.$refs.iptvTable.toggleRowSelection(e, true))
|
||||
})
|
||||
@@ -205,27 +219,56 @@ export default {
|
||||
this.selectionBegin = ''
|
||||
}
|
||||
},
|
||||
expandChange (row, expanded) {
|
||||
const index = this.expandedRows.indexOf(row)
|
||||
if (expanded && index === -1) {
|
||||
this.expandedRows.push(row)
|
||||
} else if (!expanded && index !== -1) {
|
||||
this.expandedRows.splice(index, 1)
|
||||
}
|
||||
},
|
||||
handleSelectionChange (rows) {
|
||||
this.multipleSelection = rows
|
||||
},
|
||||
handleSortChange (column, prop, order) {
|
||||
if (this.checkAllChannelsLoading) {
|
||||
this.$message.info('正在检测, 请勿操作.')
|
||||
this.enableBatchEdit = false
|
||||
return
|
||||
}
|
||||
this.updateDatabase()
|
||||
},
|
||||
saveBatchEdit () {
|
||||
this.multipleSelection.forEach(ele => {
|
||||
if (this.batchGroupName) {
|
||||
ele.group = this.batchGroupName
|
||||
if (this.inputContent) {
|
||||
ele.group = this.inputContent
|
||||
}
|
||||
ele.isActive = this.batchIsActive
|
||||
})
|
||||
this.updateDatabase()
|
||||
},
|
||||
mergeChannel () {
|
||||
if (this.inputContent && this.multipleSelection.length) {
|
||||
var channels = []
|
||||
const id = this.multipleSelection[0].id
|
||||
this.multipleSelection.forEach(ele => {
|
||||
channels = channels.concat(ele.channels)
|
||||
channels.forEach(e => { e.channelID = id })
|
||||
channelList.remove(ele.id)
|
||||
})
|
||||
const mergeChannel = { id: id, name: this.inputContent, isActive: channels.some(c => c.isActive), group: this.determineGroup(this.inputContent), hasChildren: channels.length > 1, channels: channels }
|
||||
channelList.add(mergeChannel)
|
||||
this.getChannelList()
|
||||
this.updateDatabase()
|
||||
}
|
||||
},
|
||||
playEvent (e) {
|
||||
this.video = { iptv: { name: e.name, url: e.url, id: e.id } }
|
||||
if (e.url) {
|
||||
this.video = { iptv: e }
|
||||
} else {
|
||||
const prefer = e.prefer ? e.channels.find(c => c.id === e.prefer) : e.channels.filter(c => c.isActive)[0]
|
||||
if (!prefer) return
|
||||
this.video = { iptv: prefer }
|
||||
}
|
||||
this.view = 'Play'
|
||||
},
|
||||
containsearchTxt (i) {
|
||||
@@ -235,18 +278,30 @@ export default {
|
||||
return true
|
||||
}
|
||||
},
|
||||
removeEvent (e) {
|
||||
removeEvent (row) {
|
||||
if (this.checkAllChannelsLoading) {
|
||||
this.$message.info('正在检测, 请勿操作.')
|
||||
return false
|
||||
}
|
||||
iptv.remove(e.id).then(res => {
|
||||
this.getChannels()
|
||||
}).catch(err => {
|
||||
try {
|
||||
if (row.url) { // tree树形控件节点一旦展开,就不再重新加载节点数据
|
||||
const ele = this.channelList.find(e => e.id === row.channelID)
|
||||
ele.channels.splice(ele.channels.findIndex(e => e.id === row.id), 1)
|
||||
channelList.remove(row.channelID)
|
||||
if (ele.channels.length) {
|
||||
if (ele.channels.length === 1) ele.hasChildren = false
|
||||
channelList.add(ele)
|
||||
this.$set(this.$refs.iptvTable.store.states.lazyTreeNodeMap, ele.id, ele.channels)
|
||||
}
|
||||
} else {
|
||||
channelList.remove(row.id)
|
||||
}
|
||||
this.getChannelList()
|
||||
} catch (err) {
|
||||
this.$message.warning('删除频道失败, 错误信息: ' + err)
|
||||
})
|
||||
}
|
||||
},
|
||||
exportChannels () {
|
||||
exportChannels () { // 导出导入m3u为iptvList,json为channelList
|
||||
const options = {
|
||||
filters: [
|
||||
{ name: 'm3u file', extensions: ['m3u'] },
|
||||
@@ -263,7 +318,7 @@ export default {
|
||||
fs.writeFileSync(result.filePath, writer.toString())
|
||||
this.$message.success('已保存成功')
|
||||
} else {
|
||||
const arr = [...this.iptvList]
|
||||
const arr = [...this.channelList] // 要保存channelList必须选json
|
||||
const str = JSON.stringify(arr, null, 2)
|
||||
fs.writeFileSync(result.filePath, str)
|
||||
this.$message.success('已保存成功')
|
||||
@@ -287,53 +342,54 @@ export default {
|
||||
}
|
||||
remote.dialog.showOpenDialog(options).then(result => {
|
||||
if (!result.canceled) {
|
||||
var docs = this.iptvList
|
||||
var id = docs.length + 1
|
||||
result.filePaths.forEach(file => {
|
||||
if (file.endsWith('m3u') || file.endsWith('m3u8')) {
|
||||
const docs = []
|
||||
const URL = require('url')
|
||||
let id = this.channelList.length ? this.channelList.slice(-1)[0].id + 1 : 1
|
||||
const parser = require('iptv-playlist-parser')
|
||||
const playlist = fs.readFileSync(file, { encoding: 'utf-8' })
|
||||
const result = parser.parse(playlist)
|
||||
result.items.forEach(ele => {
|
||||
if (ele.name && ele.url && ele.url.endsWith('.m3u8')) {
|
||||
var doc = {
|
||||
id: id,
|
||||
name: ele.name,
|
||||
url: ele.url,
|
||||
isActive: true,
|
||||
group: this.determineGroup(ele.name)
|
||||
const urls = ele.url.split('#').filter(e => e.startsWith('http')) // 网址带#时自动分割
|
||||
urls.forEach(url => {
|
||||
if (ele.name && url && new URL.URL(url).pathname.endsWith('.m3u8')) { // 网址可能带参数
|
||||
var doc = {
|
||||
id: id,
|
||||
name: ele.name,
|
||||
url: url,
|
||||
isActive: true
|
||||
}
|
||||
id += 1
|
||||
docs.push(doc)
|
||||
}
|
||||
id += 1
|
||||
docs.push(doc)
|
||||
}
|
||||
})
|
||||
})
|
||||
// 获取url不重复的列表
|
||||
const uniqueList = [...new Map(docs.map(item => [item.url, item])).values()]
|
||||
iptv.clear().then(res => {
|
||||
iptv.bulkAdd(uniqueList).then(e => { // 支持导入同名频道,群里反馈
|
||||
this.updateChannelList()
|
||||
})
|
||||
})
|
||||
} else {
|
||||
// Import Json file
|
||||
var str = fs.readFileSync(file)
|
||||
const json = JSON.parse(str)
|
||||
json.forEach(ele => {
|
||||
if (ele.name && ele.url && ele.url.endsWith('.m3u8')) {
|
||||
var doc = {
|
||||
id: id,
|
||||
name: ele.name,
|
||||
url: ele.url,
|
||||
isActive: ele.isActive === undefined ? true : ele.isActive,
|
||||
group: this.determineGroup(ele.name)
|
||||
}
|
||||
id += 1
|
||||
docs.push(doc)
|
||||
const importedList = JSON.parse(fs.readFileSync(file))
|
||||
importedList.forEach(ele => {
|
||||
const commonEle = this.channelList.find(e => e.name === ele.name)
|
||||
if (commonEle) {
|
||||
const urls = commonEle.channels.map(c => c.url)
|
||||
const channels = ele.channels.filter(e => !urls.includes(e.url))
|
||||
commonEle.channels = commonEle.channels.concat(channels)
|
||||
} else {
|
||||
ele.id = this.channelList.length ? this.channelList.slice(-1)[0].id + 1 : 1
|
||||
this.channelList.push(ele)
|
||||
}
|
||||
})
|
||||
this.updateDatabase()
|
||||
}
|
||||
})
|
||||
// 获取name不重复的列表
|
||||
// const uniqueList = [...new Map(docs.map(item => [item.name, item])).values()]
|
||||
iptv.clear().then(res => {
|
||||
iptv.bulkAdd(docs).then(e => { // 支持导入同名频道,群里反馈
|
||||
this.getChannels()
|
||||
this.$message.success('导入成功')
|
||||
})
|
||||
})
|
||||
this.$message.success('导入成功')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -358,72 +414,113 @@ export default {
|
||||
this.$message.info('部分检测还未完全终止, 请稍等...')
|
||||
return
|
||||
}
|
||||
iptv.clear().then(iptv.bulkAdd(defaultChannels).then(this.getChannels()))
|
||||
this.channelList = []
|
||||
this.iptvList = []
|
||||
iptv.clear().then(iptv.bulkAdd(defaultChannels).then(this.updateChannelList()))
|
||||
},
|
||||
removeSelectedChannels () {
|
||||
this.multipleSelection.forEach(e => iptv.remove(e.id))
|
||||
this.multipleSelection.forEach(e => channelList.remove(e.id))
|
||||
this.$refs.iptvTable.clearFilter()
|
||||
this.getChannels()
|
||||
this.getChannelList()
|
||||
this.updateDatabase()
|
||||
this.enableBatchEdit = false
|
||||
},
|
||||
getChannels () {
|
||||
updateChannelList () {
|
||||
iptv.all().then(res => {
|
||||
res = res.filter(o => !this.iptvList.find(e => o.url === e.url))
|
||||
const resClone = JSON.parse(JSON.stringify(res))
|
||||
const uniqueChannelName = {}
|
||||
for (var i = 0; i < resClone.length; i++) {
|
||||
var channelName = resClone[i].name.trim().replace(/[- ]?(1080p|蓝光|超清|高清|标清|hd|cq|4k)(\d{1,2})?$/i, '')
|
||||
if (channelName.match(/cctv/i)) channelName = channelName.replace('-', '')
|
||||
if (Object.keys(uniqueChannelName).some(name => channelName.match(new RegExp(`${name}(1080p|4k|(?!\\d))`, 'i')))) continue // 避免重复
|
||||
const matchRule = new RegExp(`${channelName}(1080p|4k|(?!\\d))`, 'i')
|
||||
for (var j = i; j < resClone.length; j++) {
|
||||
if (resClone[j].name.match(/cctv/i)) {
|
||||
resClone[j].name = resClone[j].name.replace('-', '')
|
||||
}
|
||||
if (matchRule.test(resClone[j].name)) {
|
||||
if (uniqueChannelName[channelName]) {
|
||||
!uniqueChannelName[channelName].includes(res[j]) && uniqueChannelName[channelName].push(res[j])
|
||||
} else {
|
||||
uniqueChannelName[channelName] = [res[j]]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
res.forEach(ele => {
|
||||
if (ele.isActive === undefined) {
|
||||
ele.isActive = true
|
||||
}
|
||||
})
|
||||
this.iptvList = res
|
||||
})
|
||||
},
|
||||
getSearchRecordList () {
|
||||
iptvSearch.all().then(res => {
|
||||
this.searchRecordList = res.reverse()
|
||||
})
|
||||
},
|
||||
clearSearch () {
|
||||
iptvSearch.clear().then(res => {
|
||||
this.getSearchRecordList()
|
||||
})
|
||||
},
|
||||
searchEvent (wd) {
|
||||
this.searchTxt = wd
|
||||
this.show.search = false
|
||||
if (wd) {
|
||||
iptvSearch.find({ keywords: wd }).then(res => {
|
||||
if (!res) {
|
||||
iptvSearch.add({ keywords: wd })
|
||||
Object.keys(uniqueChannelName).forEach(k => {
|
||||
const ele = this.channelList.find(e => e.name === k)
|
||||
if (ele) {
|
||||
ele.channels = ele.channels.concat(uniqueChannelName[k])
|
||||
delete uniqueChannelName[k]
|
||||
}
|
||||
this.getSearchRecordList()
|
||||
})
|
||||
}
|
||||
if (Object.keys(uniqueChannelName).length) {
|
||||
let id = this.channelList.length ? this.channelList.slice(-1)[0].id + 1 : 1
|
||||
const channelList = Object.keys(uniqueChannelName).map(e => { return { id: id++, name: e, isActive: uniqueChannelName[e].some(c => c.isActive), group: this.determineGroup(e), hasChildren: uniqueChannelName[e].length > 1, channels: uniqueChannelName[e] } })
|
||||
this.channelList = this.channelList.concat(channelList)
|
||||
}
|
||||
this.updateDatabase()
|
||||
iptv.clear() // iptv默认清空状态
|
||||
})
|
||||
},
|
||||
moveToTopEvent (i) {
|
||||
async getChannelList () {
|
||||
await channelList.all().then(res => {
|
||||
this.channelList = res
|
||||
this.getIptvList()
|
||||
})
|
||||
},
|
||||
getIptvList () {
|
||||
this.iptvList = this.channelList.reduce((result, item) => { item.channels.forEach(e => { e.channelID = item.id }); return result.concat(item.channels) }, [])
|
||||
},
|
||||
moveToTopEvent (row) {
|
||||
if (this.checkAllChannelsLoading) {
|
||||
this.$message.info('正在检测, 请勿操作.')
|
||||
return false
|
||||
}
|
||||
this.iptvList.sort(function (x, y) { return (x.name === i.name && x.url === i.url) ? -1 : (y.name === i.name && y.url === i.url) ? 1 : 0 })
|
||||
this.updateDatabase()
|
||||
// this.channelList.sort(function (x, y) { return (x.name === i.name && x.url === i.url) ? -1 : (y.name === i.name && y.url === i.url) ? 1 : 0 })
|
||||
if (row.channels) {
|
||||
this.channelList.splice(this.channelList.findIndex(e => e.id === row.id), 1)
|
||||
this.channelList.unshift(row)
|
||||
this.updateDatabase()
|
||||
}
|
||||
},
|
||||
syncTableData () {
|
||||
if (this.$refs.iptvTable.tableData) {
|
||||
this.iptvList = this.$refs.iptvTable.tableData
|
||||
if (this.$refs.iptvTable.tableData && this.$refs.iptvTable.tableData.length === this.channelList.length) {
|
||||
this.channelList = this.$refs.iptvTable.tableData
|
||||
}
|
||||
},
|
||||
updateDatabase () {
|
||||
this.syncTableData()
|
||||
iptv.clear().then(res => {
|
||||
this.resetId(this.iptvList)
|
||||
iptv.bulkAdd(this.iptvList)
|
||||
Object.values(this.$refs.iptvTable.store.states.treeData).forEach(e => { e.loaded = false })
|
||||
channelList.clear().then(res => {
|
||||
this.resetId(this.channelList)
|
||||
channelList.bulkAdd(this.channelList)
|
||||
this.getChannelList()
|
||||
})
|
||||
},
|
||||
resetId (inArray) {
|
||||
resetId (channelList) {
|
||||
var id = 1
|
||||
inArray.forEach(ele => {
|
||||
channelList.forEach(ele => {
|
||||
ele.id = id
|
||||
id += 1
|
||||
ele.channels.forEach(e => {
|
||||
e.channelID = ele.id
|
||||
const embedChannelID = ele.id + '_'
|
||||
const prefer = ele.prefer ? ele.channels.find(e => e.id === ele.prefer) : ''
|
||||
ele.channels.forEach((e, index) => { e.id = embedChannelID + index }) // 为避免混杂,给内置iptv重起id
|
||||
if (prefer) ele.prefer = prefer.id
|
||||
})
|
||||
if (ele.channels.length === 1) {
|
||||
ele.hasChildren = false
|
||||
} else {
|
||||
ele.hasChildren = true
|
||||
}
|
||||
})
|
||||
},
|
||||
rowDrop () {
|
||||
@@ -433,33 +530,43 @@ export default {
|
||||
}
|
||||
const tbody = document.getElementById('iptv-table').querySelector('.el-table__body-wrapper tbody')
|
||||
const _this = this
|
||||
Sortable.create(tbody, {
|
||||
this.sortableTable = new Sortable(tbody, {
|
||||
filter: '.el-table__row--level-1', // 禁止children拖动
|
||||
onEnd ({ newIndex, oldIndex }) {
|
||||
const currRow = _this.iptvList.splice(oldIndex, 1)[0]
|
||||
_this.iptvList.splice(newIndex, 0, currRow)
|
||||
const currRow = _this.channelList.splice(oldIndex, 1)[0]
|
||||
_this.channelList.splice(newIndex, 0, currRow)
|
||||
_this.updateDatabase()
|
||||
}
|
||||
})
|
||||
},
|
||||
isActiveChangeEvent (row) {
|
||||
iptv.remove(row.id)
|
||||
iptv.add(row)
|
||||
if (row.url) {
|
||||
const ele = this.channelList.find(e => e.id === row.channelID)
|
||||
ele.isActive = ele.channels.some(e => e.isActive)
|
||||
channelList.remove(row.channelID)
|
||||
channelList.add(ele)
|
||||
} else {
|
||||
if (row.channels.length === 1) row.channels[0].isActive = row.isActive
|
||||
channelList.remove(row.id)
|
||||
channelList.add(row)
|
||||
}
|
||||
},
|
||||
async checkAllChannels () {
|
||||
this.checkAllChannelsLoading = true
|
||||
this.stopFlag = false
|
||||
this.checkProgress = 0
|
||||
this.channelList.filter(e => e.channels.length).forEach(e => { e.status = ' '; e.hasCheckedNum = 0 })
|
||||
const uncheckedList = this.iptvList.filter(e => e.status === undefined || e.status === ' ') // 未检测过的优先
|
||||
const other = this.iptvList.filter(e => !uncheckedList.includes(e))
|
||||
await this.checkChannelList(uncheckedList)
|
||||
await this.checkChannelList(other).then(res => {
|
||||
await this.checkChannelsBySite(uncheckedList)
|
||||
await this.checkChannelsBySite(other).then(res => {
|
||||
this.checkAllChannelsLoading = false
|
||||
this.getChannels()
|
||||
this.getChannelList()
|
||||
})
|
||||
},
|
||||
async checkChannelList (channelList) {
|
||||
async checkChannelsBySite (channels) {
|
||||
var siteList = {}
|
||||
channelList.forEach(channel => {
|
||||
channels.forEach(channel => {
|
||||
const site = channel.url.split('/')[2]
|
||||
if (siteList[site]) {
|
||||
siteList[site].push(channel)
|
||||
@@ -475,33 +582,56 @@ export default {
|
||||
await this.checkSingleChannel(c)
|
||||
}
|
||||
},
|
||||
async checkSingleChannel (row) {
|
||||
row.status = ' '
|
||||
async checkSingleChannel (channel) {
|
||||
if (this.setting.allowPassWhenIptvCheck && !channel.isActive) {
|
||||
this.checkProgress += 1
|
||||
return
|
||||
}
|
||||
channel.status = ' '
|
||||
const ele = this.channelList.find(e => e.id === channel.channelID)
|
||||
if (this.stopFlag) {
|
||||
this.checkProgress += 1
|
||||
return row.status
|
||||
return channel.status
|
||||
}
|
||||
const flag = await zy.checkChannel(row.url)
|
||||
const flag = await zy.checkChannel(channel.url)
|
||||
this.checkProgress += 1
|
||||
ele.hasCheckedNum++
|
||||
if (flag) {
|
||||
row.status = '可用'
|
||||
channel.status = '可用'
|
||||
} else {
|
||||
row.status = '失效'
|
||||
row.isActive = false
|
||||
channel.status = '失效'
|
||||
channel.isActive = false
|
||||
if (this.setting.autocleanWhenIptvCheck) {
|
||||
ele.channels.splice(ele.channels.findIndex(e => e.id === channel.id), 1)
|
||||
ele.hasCheckedNum--
|
||||
}
|
||||
}
|
||||
if (ele.hasCheckedNum === ele.channels.length) {
|
||||
ele.status = ele.channels.some(channel => channel.status === '可用') ? '可用' : '失效'
|
||||
if (ele.status === '失效') ele.isActive = false
|
||||
channelList.remove(channel.channelID)
|
||||
if (ele.channels.length === 1) ele.hasChildren = false
|
||||
if (ele.channels.length) channelList.add(ele)
|
||||
}
|
||||
return channel.status
|
||||
},
|
||||
async checkChannel (row) {
|
||||
if (row.channels) {
|
||||
row.status = ' '
|
||||
row.hasCheckedNum = 0
|
||||
row.channels.forEach(e => this.checkSingleChannel(e))
|
||||
} else {
|
||||
this.checkSingleChannel(row)
|
||||
}
|
||||
iptv.remove(row.id)
|
||||
iptv.add(row)
|
||||
return row.status
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
this.rowDrop()
|
||||
addEventListener('keydown', code => { if (code.keyCode === 16) this.shiftDown = true })
|
||||
addEventListener('keyup', code => { if (code.keyCode === 16) this.shiftDown = false })
|
||||
},
|
||||
created () {
|
||||
this.getChannels()
|
||||
this.getSearchRecordList()
|
||||
async created () {
|
||||
await this.getChannelList()
|
||||
if (!this.channelList.length) this.resetChannelsEvent()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -101,7 +101,17 @@
|
||||
<span class="last-tip" v-if="!video.key && right.history.length > 0" @click="historyItemEvent(right.history[0])">上次播放到【{{right.history[0].site}}】{{right.history[0].name}} 第{{right.history[0].index+1}}集</span>
|
||||
</div>
|
||||
<div class="more" v-if="video.iptv" :key="Boolean(video.iptv)">
|
||||
<span class="zy-svg" @click="otherEvent" v-if="right.otherChannels.length">
|
||||
<span class="zy-svg" @click="channelListShow = !channelListShow">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="dashboardIconTitle">
|
||||
<title id="dashboardIconTitle">频道列表</title>
|
||||
<rect width="20" height="20" x="2" y="2"></rect>
|
||||
<path d="M11 7L17 7M11 12L17 12M11 17L17 17"></path>
|
||||
<line x1="7" y1="7" x2="7" y2="7"></line>
|
||||
<line x1="7" y1="12" x2="7" y2="12"></line>
|
||||
<line x1="7" y1="17" x2="7" y2="17"></line>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="zy-svg" @click="otherEvent">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="coloursIconTitle">
|
||||
<title id="coloursIconTitle">换源</title>
|
||||
<circle cx="12" cy="9" r="5"></circle>
|
||||
@@ -137,7 +147,7 @@
|
||||
<span class="list-top-title" v-if="right.type === 'history'">历史记录</span>
|
||||
<span class="list-top-title" v-if="right.type === 'shortcut'">快捷键指南{{ this.video.iptv ? '(直播时部分功能不可用)' : '' }}</span>
|
||||
<span class="list-top-title" v-if="right.type === 'other'">同组其他源的视频</span>
|
||||
<span class="list-top-title" v-if="right.type === 'otherChannels'">该频道其它源</span>
|
||||
<span class="list-top-title" v-if="right.type === 'sources'">该频道可用源</span>
|
||||
<span class="list-top-close zy-svg" @click="closeListEvent">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="closeIconTitle">
|
||||
<title id="closeIconTitle">关闭</title>
|
||||
@@ -163,26 +173,60 @@
|
||||
<li v-if="right.other.length === 0">无数据</li>
|
||||
<li @click="otherItemEvent(m)" v-for="(m, n) in right.other" :key="n"><span class="title">{{m.name}} - [{{m.site.name}}]</span></li>
|
||||
</ul>
|
||||
<ul v-if="right.type === 'otherChannels'" class="list-other" v-on-clickaway="closeListEvent">
|
||||
<li v-if="right.otherChannels.length === 0">无数据</li>
|
||||
<li @click="playChannel(channel)" v-for="(channel, index) in right.otherChannels" :key="index"><span class="title">{{channel.name}}</span></li>
|
||||
<ul v-if="right.type === 'sources'" class="list-channels" v-on-clickaway="closeListEvent">
|
||||
<li v-if="right.sources.length === 0">当前频道已关闭</li>
|
||||
<li v-for="(channel, index) in right.sources" :key="index">
|
||||
<span @click="playChannel(channel)" class="title">{{ channel.id === video.iptv.id ? channel.name + '[当前]' : channel.name }}</span>
|
||||
<span @click="disableChannel(channel)" class="btn" title="关闭频道">隐藏</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
<transition name="slideX">
|
||||
<div v-if="channelListShow" class="list">
|
||||
<div class="list-top">
|
||||
<span class="list-top-title">频道列表</span>
|
||||
<span class="list-top-close zy-svg" @click="channelListShow = false">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="closeIconTitle">
|
||||
<title id="closeIconTitle">关闭</title>
|
||||
<path d="M6.34314575 6.34314575L17.6568542 17.6568542M6.34314575 17.6568542L17.6568542 6.34314575"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="list-body zy-scroll" :style="{overflowY:scroll? 'auto' : 'hidden',paddingRight: scroll ? '0': '5px' }" @mouseenter="scroll = true" @mouseleave="scroll = false">
|
||||
<el-input
|
||||
clearable
|
||||
size="small"
|
||||
v-model.trim="searchTxt"
|
||||
placeholder="搜索">
|
||||
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
||||
</el-input>
|
||||
<el-tree ref="channelTree"
|
||||
:data="channelListForShow"
|
||||
:props="defaultProps"
|
||||
accordion
|
||||
:filter-node-method="filterNode"
|
||||
@node-click="handleNodeClick">
|
||||
</el-tree>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapMutations } from 'vuex'
|
||||
import { star, history, setting, shortcut, mini, iptv, sites } from '../lib/dexie'
|
||||
import { star, history, setting, shortcut, mini, channelList, sites } from '../lib/dexie'
|
||||
import zy from '../lib/site/tools'
|
||||
import Player from 'xgplayer'
|
||||
import Hls from 'xgplayer-hls.js'
|
||||
import HlsJsPlayer from 'xgplayer-hls.js'
|
||||
import mt from 'mousetrap'
|
||||
import { directive as onClickaway } from 'vue-clickaway'
|
||||
import { exec, execFile } from 'child_process'
|
||||
|
||||
const { remote, ipcRenderer, clipboard } = require('electron')
|
||||
const { remote, clipboard } = require('electron')
|
||||
const win = remote.getCurrentWindow()
|
||||
const PinyinMatch = require('pinyin-match')
|
||||
|
||||
const VIDEO_DETAIL_CACHE = {}
|
||||
|
||||
@@ -238,7 +282,7 @@ export default {
|
||||
history: [],
|
||||
shortcut: [],
|
||||
other: [],
|
||||
otherChannels: [],
|
||||
sources: [],
|
||||
currentTime: 0
|
||||
},
|
||||
config: {
|
||||
@@ -260,8 +304,12 @@ export default {
|
||||
videoStop: true,
|
||||
showList: true,
|
||||
showHistory: true,
|
||||
quitMiniMode: true,
|
||||
videoTitle: true,
|
||||
airplay: true
|
||||
airplay: true,
|
||||
closeVideoTouch: true,
|
||||
ignores: ['cssFullscreen'],
|
||||
preloadTime: 300
|
||||
},
|
||||
state: {
|
||||
showList: false,
|
||||
@@ -273,8 +321,16 @@ export default {
|
||||
scroll: false,
|
||||
isStar: false,
|
||||
isTop: false,
|
||||
mini: {},
|
||||
iptvList: []
|
||||
miniMode: false,
|
||||
mainWindowBounds: {},
|
||||
searchTxt: '',
|
||||
channelList: [],
|
||||
channelListForShow: [],
|
||||
channelListShow: false,
|
||||
defaultProps: {
|
||||
label: 'label',
|
||||
children: 'children'
|
||||
}
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
@@ -323,6 +379,14 @@ export default {
|
||||
this.SET_SHARE(val)
|
||||
}
|
||||
},
|
||||
appState: {
|
||||
get () {
|
||||
return this.$store.getters.getAppState
|
||||
},
|
||||
set (val) {
|
||||
this.SET_APPSTATE(val)
|
||||
}
|
||||
},
|
||||
setting () {
|
||||
return this.$store.getters.getSetting
|
||||
}
|
||||
@@ -331,6 +395,12 @@ export default {
|
||||
view () {
|
||||
this.right.show = false
|
||||
this.right.type = ''
|
||||
if (this.view === 'Play') {
|
||||
this.getChannelList()
|
||||
if (this.video.key === '' && !this.video.iptv) {
|
||||
this.channelListShow = true
|
||||
}
|
||||
}
|
||||
},
|
||||
video: {
|
||||
handler () {
|
||||
@@ -354,12 +424,25 @@ export default {
|
||||
} else {
|
||||
span.innerText = `${this.name}`
|
||||
}
|
||||
},
|
||||
searchTxt () {
|
||||
this.$refs.channelTree.filter(this.searchTxt)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['SET_VIEW', 'SET_DETAIL', 'SET_VIDEO', 'SET_SHARE']),
|
||||
...mapMutations(['SET_VIEW', 'SET_DETAIL', 'SET_VIDEO', 'SET_SHARE', 'SET_APPSTATE']),
|
||||
handleNodeClick (node) {
|
||||
if (node.channel) {
|
||||
this.playChannel(node.channel)
|
||||
}
|
||||
},
|
||||
filterNode (value, data) {
|
||||
if (!value) return true
|
||||
return PinyinMatch.match(data.label, value)
|
||||
},
|
||||
async getUrls () {
|
||||
if (this.video.key === '') {
|
||||
if (!this.video.iptv) this.channelListShow = true
|
||||
return false
|
||||
}
|
||||
this.name = ''
|
||||
@@ -375,6 +458,7 @@ export default {
|
||||
// 是直播源,直接播放
|
||||
this.playChannel(this.video.iptv)
|
||||
} else {
|
||||
this.channelListShow = false
|
||||
const index = this.video.info.index | 0
|
||||
var time = this.video.info.time
|
||||
if (!time) {
|
||||
@@ -389,34 +473,64 @@ export default {
|
||||
this.playVideo(index, time)
|
||||
}
|
||||
},
|
||||
disableChannel (channel) {
|
||||
const index = this.right.sources.indexOf(channel)
|
||||
this.right.sources.splice(index, 1)
|
||||
const ele = this.channelList.find(e => e.id === channel.channelID)
|
||||
const origin = ele.channels.find(e => e.id === channel.id)
|
||||
origin.isActive = false
|
||||
ele.isActive = ele.channels.some(e => e.isActive)
|
||||
channelList.remove(ele.id)
|
||||
channelList.add(ele)
|
||||
},
|
||||
playChannel (channel) {
|
||||
this.getIptvList()
|
||||
if (channel.channels) {
|
||||
this.right.sources = channel.channels.filter(e => e.isActive)
|
||||
channel = channel.prefer ? channel.channels.find(e => e.id === channel.prefer) : channel.channels.filter(e => e.isActive)[0]
|
||||
} else {
|
||||
const ele = this.channelList.find(e => e.id === channel.channelID)
|
||||
ele.prefer = channel.id
|
||||
channelList.remove(ele.id)
|
||||
channelList.add(ele)
|
||||
this.right.sources = ele.channels.filter(e => e.isActive)
|
||||
}
|
||||
this.video.iptv = channel
|
||||
this.name = channel.name
|
||||
this.xg.src = channel.url
|
||||
this.xg.play()
|
||||
document.querySelector('xg-btn-quitMiniMode').style.display = 'none'
|
||||
document.querySelector('xg-btn-showhistory').style.display = 'none'
|
||||
document.querySelector('.xgplayer-playbackrate').style.display = 'none'
|
||||
},
|
||||
playVideo (index = 0, time = 0) {
|
||||
document.querySelector('xg-btn-quitMiniMode').style.display = 'none'
|
||||
document.querySelector('xg-btn-showhistory').style.display = 'block'
|
||||
document.querySelector('.xgplayer-playbackrate').style.display = 'inline-block'
|
||||
this.fetchM3u8List().then(m3u8Arr => {
|
||||
this.xg.src = m3u8Arr[index]
|
||||
|
||||
if (time !== 0) {
|
||||
this.xg.play()
|
||||
this.xg.once('playing', () => {
|
||||
this.xg.currentTime = time
|
||||
})
|
||||
const url = m3u8Arr[index]
|
||||
if (!m3u8Arr[index].endsWith('.m3u8')) {
|
||||
const onlineUrl = 'https://www.1717yun.com/jiexi/?url=' + url
|
||||
const open = require('open')
|
||||
open(onlineUrl)
|
||||
} else {
|
||||
this.xg.play()
|
||||
}
|
||||
|
||||
this.videoPlaying()
|
||||
this.xg.once('ended', () => {
|
||||
if (m3u8Arr.length > 1 && (m3u8Arr.length - 1 > index)) {
|
||||
this.video.info.time = 0
|
||||
this.video.info.index++
|
||||
this.xg.src = m3u8Arr[index]
|
||||
if (time !== 0) {
|
||||
this.xg.play()
|
||||
this.xg.once('playing', () => {
|
||||
this.xg.currentTime = time
|
||||
})
|
||||
} else {
|
||||
this.xg.play()
|
||||
}
|
||||
this.xg.off('ended')
|
||||
})
|
||||
this.videoPlaying()
|
||||
this.xg.once('ended', () => {
|
||||
if (m3u8Arr.length > 1 && (m3u8Arr.length - 1 > index)) {
|
||||
this.video.info.time = 0
|
||||
this.video.info.index++
|
||||
}
|
||||
this.xg.off('ended')
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
fetchM3u8List () {
|
||||
@@ -428,25 +542,14 @@ export default {
|
||||
}
|
||||
zy.detail(this.video.key, this.video.info.id).then(res => {
|
||||
this.name = res.name
|
||||
const dd = res.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
let m3u8Txt = []
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._t.indexOf('m3u8') >= 0) {
|
||||
m3u8Txt = i._t.split('#')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8Txt = dd._t.split('#')
|
||||
}
|
||||
const m3u8Txt = res.m3u8List
|
||||
this.right.list = m3u8Txt
|
||||
const m3u8Arr = []
|
||||
for (const i of m3u8Txt) {
|
||||
const j = i.split('$')
|
||||
if (j.length > 1) {
|
||||
for (let m = 0; m < j.length; m++) {
|
||||
if (j[m].indexOf('.m3u8') >= 0 && j[m].startsWith('http')) {
|
||||
if (j[m].startsWith('http')) {
|
||||
m3u8Arr.push(j[m])
|
||||
break
|
||||
}
|
||||
@@ -496,7 +599,6 @@ export default {
|
||||
this.timerEvent()
|
||||
},
|
||||
changeVideo () {
|
||||
const win = remote.getCurrentWindow()
|
||||
win.setProgressBar(-1)
|
||||
this.checkStar()
|
||||
this.checkTop()
|
||||
@@ -506,7 +608,6 @@ export default {
|
||||
const endTime = this.xg.duration
|
||||
const currentTime = this.xg.currentTime
|
||||
const progress = parseFloat((currentTime / endTime).toFixed(2))
|
||||
const win = remote.getCurrentWindow()
|
||||
win.setProgressBar(progress)
|
||||
const db = await history.find({ site: this.video.key, ids: this.video.info.id })
|
||||
if (db) {
|
||||
@@ -520,9 +621,9 @@ export default {
|
||||
},
|
||||
prevEvent () {
|
||||
if (this.video.iptv) {
|
||||
var index = this.iptvList.findIndex(obj => obj.name === this.video.iptv.name && obj.url === this.video.iptv.url)
|
||||
var index = this.channelList.findIndex(obj => obj.id === this.video.iptv.channelID)
|
||||
if (index >= 1) {
|
||||
var channel = this.iptvList[index - 1]
|
||||
var channel = this.channelList[index - 1]
|
||||
this.playChannel(channel)
|
||||
} else {
|
||||
this.$message.warning('这已经是第一个频道了。')
|
||||
@@ -538,9 +639,9 @@ export default {
|
||||
},
|
||||
nextEvent () {
|
||||
if (this.video.iptv) {
|
||||
var index = this.iptvList.findIndex(obj => obj.name === this.video.iptv.name && obj.url === this.video.iptv.url)
|
||||
if (index < (this.iptvList.length - 1)) {
|
||||
var channel = this.iptvList[index + 1]
|
||||
var index = this.channelList.findIndex(obj => obj.id === this.video.iptv.channelID)
|
||||
if (index < (this.channelList.length - 1)) {
|
||||
var channel = this.channelList[index + 1]
|
||||
this.playChannel(channel)
|
||||
} else {
|
||||
this.$message.warning('这已经是最后一个频道了。')
|
||||
@@ -621,40 +722,33 @@ export default {
|
||||
info: this.video.info
|
||||
}
|
||||
},
|
||||
miniEvent () {
|
||||
if (this.xg) {
|
||||
this.xg.pause()
|
||||
}
|
||||
mini.find().then(res => {
|
||||
var doc = {}
|
||||
if (!this.video.iptv) {
|
||||
doc = {
|
||||
id: 0,
|
||||
mode: 'video',
|
||||
site: this.video.key,
|
||||
ids: this.video.info.id,
|
||||
name: this.video.info.name,
|
||||
index: this.video.info.index,
|
||||
time: this.xg.currentTime
|
||||
}
|
||||
} else {
|
||||
doc = {
|
||||
id: 0,
|
||||
mode: 'iptv',
|
||||
url: this.video.iptv.url
|
||||
}
|
||||
async miniEvent () {
|
||||
this.mainWindowBounds = JSON.parse(JSON.stringify(win.getBounds()))
|
||||
let miniWindowBounds
|
||||
await mini.find().then(res => { if (res) miniWindowBounds = res.bounds })
|
||||
if (!miniWindowBounds) miniWindowBounds = { x: win.getPosition()[0], y: win.getPosition()[1], width: 550, height: 340 }
|
||||
win.setBounds(miniWindowBounds)
|
||||
this.xg.getCssFullscreen()
|
||||
document.querySelector('xg-btn-quitMiniMode').style.display = 'block'
|
||||
this.miniMode = true
|
||||
},
|
||||
async exitMiniEvent () {
|
||||
await mini.find().then(res => {
|
||||
let doc = {}
|
||||
doc = {
|
||||
id: 0,
|
||||
bounds: win.getBounds()
|
||||
}
|
||||
if (res) {
|
||||
mini.update(doc)
|
||||
} else {
|
||||
mini.add(doc)
|
||||
}
|
||||
this.mini = doc
|
||||
clearInterval(this.timer)
|
||||
const win = remote.getCurrentWindow()
|
||||
win.hide()
|
||||
ipcRenderer.send('mini')
|
||||
})
|
||||
win.setBounds(this.mainWindowBounds)
|
||||
this.xg.exitCssFullscreen()
|
||||
document.querySelector('xg-btn-quitMiniMode').style.display = 'none'
|
||||
this.miniMode = false
|
||||
},
|
||||
shareEvent () {
|
||||
this.share = {
|
||||
@@ -734,8 +828,7 @@ export default {
|
||||
}
|
||||
},
|
||||
checkTop () {
|
||||
const win = remote.getCurrentWindow()
|
||||
this.isTop = win.isAlwaysOnTop()
|
||||
this.isTop = this.appState.windowIsOnTop
|
||||
},
|
||||
closeListEvent () {
|
||||
this.right.show = false
|
||||
@@ -784,7 +877,7 @@ export default {
|
||||
},
|
||||
listItemEvent (n) {
|
||||
if (this.video.iptv) {
|
||||
var channel = this.iptvList[n]
|
||||
var channel = this.channelList[n]
|
||||
// 是直播源,直接播放
|
||||
this.playChannel(channel)
|
||||
} else {
|
||||
@@ -811,7 +904,6 @@ export default {
|
||||
},
|
||||
removeHistoryItem (e) {
|
||||
history.remove(e.id).then(res => {
|
||||
this.$message.success('删除历史记录成功~')
|
||||
this.getAllhistory()
|
||||
}).catch(err => {
|
||||
this.$message.warning('删除历史记录失败, 错误信息: ' + err)
|
||||
@@ -849,7 +941,8 @@ export default {
|
||||
this.getOtherSites()
|
||||
this.right.currentTime = this.xg.currentTime
|
||||
} else {
|
||||
this.right.type = 'otherChannels'
|
||||
this.channelListShow = false
|
||||
this.right.type = 'sources'
|
||||
}
|
||||
this.right.show = true
|
||||
},
|
||||
@@ -884,7 +977,7 @@ export default {
|
||||
if (this.xg.paused) {
|
||||
this.xg.play()
|
||||
// 继续播放时,隐藏进度条
|
||||
remote.getCurrentWindow().setProgressBar(-1)
|
||||
win.setProgressBar(-1)
|
||||
} else {
|
||||
this.xg.pause()
|
||||
}
|
||||
@@ -922,11 +1015,12 @@ export default {
|
||||
return false
|
||||
}
|
||||
if (e === 'top') {
|
||||
const win = remote.getCurrentWindow()
|
||||
if (win.isAlwaysOnTop()) {
|
||||
if (this.appState.windowIsOnTop) {
|
||||
win.setAlwaysOnTop(false)
|
||||
this.appState.windowIsOnTop = false
|
||||
} else {
|
||||
win.setAlwaysOnTop(true)
|
||||
this.appState.windowIsOnTop = true
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -939,6 +1033,9 @@ export default {
|
||||
return false
|
||||
}
|
||||
if (e === 'escape') {
|
||||
if (this.miniMode) {
|
||||
this.exitMiniEvent()
|
||||
}
|
||||
if (this.xg.fullscreen) {
|
||||
this.xg.exitFullscreen()
|
||||
this.xg.exitCssFullscreen()
|
||||
@@ -967,7 +1064,6 @@ export default {
|
||||
return false
|
||||
}
|
||||
if (e === 'opacityUp') {
|
||||
const win = remote.getCurrentWindow()
|
||||
const num = win.getOpacity()
|
||||
if (num > 0.1) {
|
||||
win.setOpacity(num - 0.1)
|
||||
@@ -975,7 +1071,6 @@ export default {
|
||||
return false
|
||||
}
|
||||
if (e === 'opacityDown') {
|
||||
const win = remote.getCurrentWindow()
|
||||
const num = win.getOpacity()
|
||||
if (num < 1) {
|
||||
win.setOpacity(num + 0.1)
|
||||
@@ -1001,7 +1096,18 @@ export default {
|
||||
return false
|
||||
}
|
||||
if (e === 'mini') {
|
||||
this.miniEvent()
|
||||
if (!this.miniMode) {
|
||||
this.miniEvent()
|
||||
} else {
|
||||
this.exitMiniEvent()
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'resetMini') {
|
||||
if (this.miniMode) {
|
||||
const miniWindowBounds = { x: this.mainWindowBounds.x, y: this.mainWindowBounds.y, width: 550, height: 340 }
|
||||
win.setBounds(miniWindowBounds)
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
@@ -1035,10 +1141,9 @@ export default {
|
||||
let li = ''
|
||||
if (this.video.iptv) {
|
||||
// 直播频道列表
|
||||
this.getIptvList()
|
||||
let index = 0
|
||||
this.iptvList.forEach(e => {
|
||||
if (e.name === this.video.iptv.name && e.url === this.video.iptv.url) {
|
||||
this.channelList.forEach(e => {
|
||||
if (e.prefer === this.video.iptv.id) {
|
||||
li += `<li class="selected" data-index="${index}" title="${e.name}">${e.name}</li>`
|
||||
} else {
|
||||
li += `<li data-index="${index}" title="${e.name}">${e.name}</li>`
|
||||
@@ -1110,25 +1215,30 @@ export default {
|
||||
}
|
||||
ul.innerHTML = li
|
||||
},
|
||||
getIptvList () {
|
||||
iptv.all().then(res => {
|
||||
this.iptvList = res.filter(e => e.isActive)
|
||||
this.right.otherChannels = []
|
||||
const iptvList = JSON.parse(JSON.stringify(this.iptvList))
|
||||
var currentChannelName = this.video.iptv.name.trim().replace(/[- ]?(1080p|蓝光|超清|高清|标清|hd|cq|4k)(\d{1,2})?/i, '')
|
||||
if (currentChannelName.match(/cctv/i)) currentChannelName = currentChannelName.replace('-', '')
|
||||
const matchRule = new RegExp(`${currentChannelName}(1080p|4k|(?!\\d))`, 'i')
|
||||
for (var i = 0; i < iptvList.length; i++) {
|
||||
if (iptvList[i].name.match(/cctv/i)) {
|
||||
iptvList[i].name = iptvList[i].name.replace('-', '')
|
||||
async getChannelList () {
|
||||
await channelList.all().then(res => {
|
||||
this.channelList = res.filter(e => e.isActive)
|
||||
this.channelListForShow = []
|
||||
const groups = [...new Set(this.channelList.map(iptv => iptv.group))]
|
||||
groups.forEach(g => {
|
||||
var doc = {
|
||||
label: g,
|
||||
children: this.channelList.filter(x => x.group === g).map(i => { return { label: i.name, channel: i } })
|
||||
}
|
||||
if (matchRule.test(iptvList[i].name) && iptvList[i].id !== this.video.iptv.id) {
|
||||
this.right.otherChannels.push(this.iptvList[i])
|
||||
}
|
||||
}
|
||||
this.channelListForShow.push(doc)
|
||||
})
|
||||
})
|
||||
},
|
||||
bindEvent () {
|
||||
this.xg.on('exitFullscreen', () => {
|
||||
if (this.miniMode) this.xg.getCssFullscreen()
|
||||
})
|
||||
|
||||
this.xg.on('volumechange', () => {
|
||||
this.config.volume = this.xg.volume.toFixed(2)
|
||||
setting.find().then(res => { res.volume = this.config.volume; setting.update(res) })
|
||||
})
|
||||
|
||||
this.xg.on('playNextOne', () => {
|
||||
this.nextEvent()
|
||||
})
|
||||
@@ -1146,9 +1256,14 @@ export default {
|
||||
})
|
||||
|
||||
this.xg.on('videoStop', () => {
|
||||
if (this.miniMode) this.exitMiniEvent()
|
||||
this.videoStop()
|
||||
})
|
||||
|
||||
this.xg.on('quitMiniMode', () => {
|
||||
if (this.miniMode) this.exitMiniEvent()
|
||||
})
|
||||
|
||||
const ev = ['click', 'touchend', 'mousemove']
|
||||
let timerID
|
||||
ev.forEach(item => {
|
||||
@@ -1172,7 +1287,6 @@ export default {
|
||||
})
|
||||
},
|
||||
videoStop () {
|
||||
const win = remote.getCurrentWindow()
|
||||
win.setProgressBar(-1)
|
||||
if (this.xg.fullscreen) {
|
||||
this.xg.exitFullscreen()
|
||||
@@ -1180,27 +1294,28 @@ export default {
|
||||
clearInterval(this.timer)
|
||||
this.video.key = ''
|
||||
this.xg.src = ''
|
||||
this.config.src = ''
|
||||
this.config.url = ''
|
||||
this.xg.destroy(false)
|
||||
this.xg = null
|
||||
this.name = ''
|
||||
this.right.list = []
|
||||
this.getAllhistory()
|
||||
setTimeout(() => {
|
||||
this.xg = new Hls(this.config)
|
||||
this.xg = new HlsJsPlayer(this.config)
|
||||
this.playerInstall()
|
||||
this.bindEvent()
|
||||
}, 1000)
|
||||
},
|
||||
minMaxEvent () {
|
||||
const win = remote.getCurrentWindow()
|
||||
win.on('minimize', () => {
|
||||
if (this.xg && this.xg.hasStart) {
|
||||
this.xg.pause()
|
||||
}
|
||||
})
|
||||
win.on('restore', () => {
|
||||
if (this.xg && this.config.src) {
|
||||
// 不知为何,在if clause里直接使用this.xg.hasStart居然就不工作,不得其解。
|
||||
var hasStart = this.xg.hasStart
|
||||
if (this.xg && hasStart) {
|
||||
this.xg.play()
|
||||
}
|
||||
})
|
||||
@@ -1215,6 +1330,10 @@ export default {
|
||||
Player.install('videoStop', function () {
|
||||
addPlayerBtn.bind(this, 'videoStop', '<svg t="1603093629102" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3621" style="width: 25px;height: 25px;margin-top: 8px;margin-left: 0px;"><path d="M768 768H256V256h512v512z" p-id="3622" fill="#ffffff"></path></svg>', { title: '停止播放' })()
|
||||
})
|
||||
Player.install('quitMiniMode', function () {
|
||||
addPlayerBtn.bind(this, 'quitMiniMode', '<svg t="1606051549980" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2510" style="width: 22px;height: 22px;margin-top: 9px;margin-left: 6px;"><path d="M224 704c-8 0-16-3.2-22.4-9.6l-160-160c-12.8-12.8-12.8-32 0-44.8l160-160c12.8-12.8 32-12.8 44.8 0 12.8 12.8 12.8 32 0 44.8L108.8 512l137.6 137.6c12.8 12.8 12.8 32 0 44.8-6.4 6.4-14.4 9.6-22.4 9.6z m416-160H80c-17.6 0-32-14.4-32-32s14.4-32 32-32h560c17.6 0 32 14.4 32 32s-14.4 32-32 32z m192 384H480c-52.8 0-96-43.2-96-96V704c0-17.6 14.4-32 32-32s32 14.4 32 32v128c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V192c0-17.6-14.4-32-32-32H480c-17.6 0-32 14.4-32 32v128c0 17.6-14.4 32-32 32s-32-14.4-32-32V192c0-52.8 43.2-96 96-96h352c52.8 0 96 43.2 96 96v640c0 52.8-43.2 96-96 96z" p-id="2511" fill="#ffffff"></path></svg>',
|
||||
{ title: '退出精简模式' })()
|
||||
})
|
||||
Player.install('showList', function () {
|
||||
addPlayerBtn.bind(this, 'showList', '<svg t="1595866128681" class="icon" viewBox="0 0 1316 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4187" style="width: 22px;height: 22px;margin-top: 9px;margin-left: 6px;" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M0 0h1316.571429v146.285714H0zM0 438.857143h1316.571429v146.285714H0zM0 877.714286h1316.571429v146.285714H0z" p-id="4188" fill="#ffffff"></path></svg>', { title: '播放列表' })()
|
||||
})
|
||||
@@ -1242,21 +1361,14 @@ export default {
|
||||
},
|
||||
created () {
|
||||
this.getAllhistory()
|
||||
this.getChannelList()
|
||||
this.mtEvent()
|
||||
},
|
||||
mounted () {
|
||||
async mounted () {
|
||||
const db = await setting.find()
|
||||
this.playerInstall()
|
||||
this.xg = new Hls(this.config)
|
||||
ipcRenderer.on('miniClosed', async () => {
|
||||
const db = await history.find({ site: this.video.key, ids: this.video.info.id })
|
||||
if (db) {
|
||||
if (this.video.info.index !== db.index) {
|
||||
this.video.info.index = db.index
|
||||
} else {
|
||||
this.getUrls()
|
||||
}
|
||||
}
|
||||
})
|
||||
this.config.volume = db.volume ? db.volume : 0.6
|
||||
this.xg = new HlsJsPlayer(this.config)
|
||||
this.bindEvent()
|
||||
this.minMaxEvent()
|
||||
},
|
||||
@@ -1278,7 +1390,8 @@ export default {
|
||||
.xgplayer-skin-default .xg-btn-playNextOne,
|
||||
.xgplayer-skin-default .xg-btn-showList,
|
||||
.xgplayer-skin-default .xg-btn-showHistory,
|
||||
.xgplayer-skin-default .xg-btn-videoStop {
|
||||
.xgplayer-skin-default .xg-btn-videoStop,
|
||||
.xgplayer-skin-default .xg-btn-quitMiniMode {
|
||||
width: 32px;
|
||||
position: relative;
|
||||
-webkit-order: 0;
|
||||
@@ -1292,7 +1405,8 @@ export default {
|
||||
.xgplayer-skin-default .xg-btn-playNextOne:hover,
|
||||
.xgplayer-skin-default .xg-btn-showList:hover,
|
||||
.xgplayer-skin-default .xg-btn-showHistory:hover,
|
||||
.xgplayer-skin-default .xg-btn-videoStop:hover {
|
||||
.xgplayer-skin-default .xg-btn-videoStop:hover,
|
||||
.xgplayer-skin-default .xg-btn-quitMiniMode:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.xgplayer-skin-default .xg-btn-playNextOne {
|
||||
@@ -1301,15 +1415,22 @@ export default {
|
||||
.xgplayer-skin-default .xgplayer-play, .xgplayer-skin-default .xgplayer-play-img {
|
||||
order: 1 !important;
|
||||
}
|
||||
|
||||
.xgplayer-skin-default .xg-btn-videoStop {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
.xgplayer-skin-default .xg-btn-quitMiniMode {
|
||||
order: 4;
|
||||
}
|
||||
|
||||
.xgplayer-skin-default .xg-btn-showList {
|
||||
order: 4;
|
||||
}
|
||||
.xgplayer-skin-default .xg-btn-showHistory {
|
||||
order: 4;
|
||||
}
|
||||
|
||||
.xgplayer-skin-default .xg-btn-showList ul, .xgplayer-skin-default .xg-btn-showHistory ul {
|
||||
display: none;
|
||||
list-style: none;
|
||||
@@ -1445,6 +1566,9 @@ export default {
|
||||
padding: 6px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.el-tree{
|
||||
background-color: inherit;
|
||||
}
|
||||
.list-top{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@@ -1473,6 +1597,7 @@ export default {
|
||||
padding-left: 10px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
.title{
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
@@ -1480,6 +1605,9 @@ export default {
|
||||
white-space: nowrap;
|
||||
width: 231px;
|
||||
}
|
||||
.btn{
|
||||
display: inline-block;
|
||||
}
|
||||
.detail-delete{
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="listpage" id="recommendataions">
|
||||
<div class="listpage-header" id="recommendataions-header">
|
||||
<el-switch v-model="viewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="list" @change="updateViewMode"></el-switch>
|
||||
<el-switch v-model="viewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="table" @change="updateViewMode"></el-switch>
|
||||
<el-button type="text">视频数:{{ recommendations.length }}</el-button>
|
||||
<el-select v-model="selectedAreas" size="small" multiple collapse-tags placeholder="地区" popper-class="popper" :popper-append-to-body="false">
|
||||
<el-option
|
||||
@@ -30,7 +30,7 @@
|
||||
<el-button :loading="loading" @click.stop="updateEvent" icon="el-icon-refresh">更新推荐</el-button>
|
||||
</div>
|
||||
<div class="listpage-body" id="recommendataions-body" >
|
||||
<div class="show-table" id="star-table" v-show="viewMode === 'list'">
|
||||
<div class="show-table" id="star-table" v-show="viewMode === 'table'">
|
||||
<el-table size="mini" fit height="100%" row-key="id"
|
||||
ref="recommendataionsTable"
|
||||
:data="filteredRecommendations"
|
||||
@@ -232,24 +232,23 @@ export default {
|
||||
}
|
||||
},
|
||||
updateEvent () {
|
||||
const url = 'https://raw.githubusercontent.com/Hunlongyu/ZY-Player/master/src/lib/dexie/iniData/Recommendations.json'
|
||||
const url = 'https://raw.githubusercontent.com/cuiocean/ZY-Player-Resources/main/Recommendations/Recommendations.json'
|
||||
this.loading = true
|
||||
const axios = require('axios')
|
||||
axios.get(url).then(res => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.length > 0) {
|
||||
this.recommendations = res.data.sort(function (a, b) {
|
||||
return b.detail.year - a.detail.year
|
||||
})
|
||||
this.recommendations = res.data
|
||||
recommendation.clear().then(recommendation.bulkAdd(this.recommendations))
|
||||
this.getFilterData()
|
||||
this.$message.success('更新推荐成功')
|
||||
this.$message.success('更新推荐成功. 仅根据作者cuiocean个人喜好推荐,不喜请无视.')
|
||||
}
|
||||
}
|
||||
this.loading = false
|
||||
}).catch(error => {
|
||||
this.loading = false
|
||||
this.$message.error('更新推荐失败. ' + error)
|
||||
this.$message.warning('最新的推荐数据保存在Github上,请考虑使用代理或者等待下一版本内置数据更新.')
|
||||
})
|
||||
},
|
||||
async playEvent (e) {
|
||||
@@ -265,8 +264,6 @@ export default {
|
||||
recommendation.remove(e.id).then(res => {
|
||||
if (res) {
|
||||
this.$message.warning('删除失败')
|
||||
} else {
|
||||
this.$message.success('删除成功')
|
||||
}
|
||||
this.getRecommendations()
|
||||
})
|
||||
@@ -280,8 +277,8 @@ export default {
|
||||
},
|
||||
downloadEvent (e) {
|
||||
zy.download(e.key, e.ids).then(res => {
|
||||
if (res && res.dl && res.dl.dd) {
|
||||
const text = res.dl.dd._t
|
||||
if (res) {
|
||||
const text = res.m3u8List
|
||||
if (text) {
|
||||
const list = text.split('#')
|
||||
let downloadUrl = ''
|
||||
@@ -295,20 +292,8 @@ export default {
|
||||
this.$message.warning('没有查询到下载链接.')
|
||||
}
|
||||
} else {
|
||||
var m3u8List = {}
|
||||
zy.detail(e.key, e.ids).then(res => {
|
||||
const dd = res.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._flag.indexOf('m3u8') >= 0) {
|
||||
m3u8List = i._t.split('#')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8List = dd._t.split('#')
|
||||
}
|
||||
const list = [...m3u8List]
|
||||
const list = [...res.m3u8List]
|
||||
let downloadUrl = ''
|
||||
for (const i of list) {
|
||||
const url = encodeURI(i.split('$')[1])
|
||||
|
||||
@@ -72,6 +72,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site">
|
||||
<div class="title">直播源管理</div>
|
||||
<div class="site-box">
|
||||
<div class="zy-select">
|
||||
<div class="vs-placeholder vs-noAfter" @click="view = 'IPTV'">编辑直播源</div>
|
||||
</div>
|
||||
<div class="zy-input">
|
||||
<input type="checkbox" v-model = "d.allowPassWhenIptvCheck" @change="updateSettingEvent"> 检测时自动跳过停用源
|
||||
</div>
|
||||
<div class="zy-input">
|
||||
<input type="checkbox" v-model = "d.autocleanWhenIptvCheck" @change="updateSettingEvent"> 检测时自动清理无效源
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site">
|
||||
<div class="title">源管理</div>
|
||||
<div class="site-box">
|
||||
|
||||
@@ -74,18 +74,7 @@ export default {
|
||||
zy.detail(this.share.key, id).then(res => {
|
||||
if (res) {
|
||||
this.pic = res.pic
|
||||
var m3u8List = {}
|
||||
const dd = res.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._flag.indexOf('m3u8') >= 0) {
|
||||
m3u8List = i._t.split('#')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8List = dd._t.split('#')
|
||||
}
|
||||
var m3u8List = res.m3u8List
|
||||
const url = m3u8List[1]
|
||||
this.link = 'http://zyplayer.fun/player/player.html?url=' + url + '&title=' + this.share.info.name
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div class="listpage" id="star">
|
||||
<div class="listpage-header" id="star-header">
|
||||
<el-switch v-model="viewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="list" @change="updateViewMode"></el-switch>
|
||||
<el-switch v-model="viewMode" active-text="海报" active-value="picture" inactive-text="列表" inactive-value="table" @change="updateViewMode"></el-switch>
|
||||
<el-button @click.stop="exportFavoritesEvent" icon="el-icon-upload2">导出</el-button>
|
||||
<el-button @click.stop="importFavoritesEvent" icon="el-icon-download">导入</el-button>
|
||||
<el-button @click.stop="clearFavoritesEvent" icon="el-icon-delete-solid">清空</el-button>
|
||||
<el-button @click.stop="updateAllEvent" icon="el-icon-refresh">同步所有收藏</el-button>
|
||||
</div>
|
||||
<div class="listpage-body" id="star-body">
|
||||
<div class="show-table" id="star-table" v-show="viewMode === 'list'">
|
||||
<div class="show-table" id="star-table" v-show="viewMode === 'table'">
|
||||
<el-table size="mini" fit height="100%" row-key="id"
|
||||
ref="starTable"
|
||||
:data="list"
|
||||
@@ -241,8 +241,6 @@ export default {
|
||||
star.remove(e.id).then(res => {
|
||||
if (res) {
|
||||
this.$message.warning('删除失败')
|
||||
} else {
|
||||
this.$message.success('删除成功')
|
||||
}
|
||||
this.getFavorites()
|
||||
})
|
||||
@@ -302,8 +300,8 @@ export default {
|
||||
},
|
||||
downloadEvent (e) {
|
||||
zy.download(e.key, e.ids).then(res => {
|
||||
if (res && res.dl && res.dl.dd) {
|
||||
const text = res.dl.dd._t
|
||||
if (res) {
|
||||
const text = res.m3u8List
|
||||
if (text) {
|
||||
const list = text.split('#')
|
||||
let downloadUrl = ''
|
||||
@@ -317,20 +315,8 @@ export default {
|
||||
this.$message.warning('没有查询到下载链接.')
|
||||
}
|
||||
} else {
|
||||
var m3u8List = {}
|
||||
zy.detail(e.key, e.ids).then(res => {
|
||||
const dd = res.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._flag.indexOf('m3u8') >= 0) {
|
||||
m3u8List = i._t.split('#')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8List = dd._t.split('#')
|
||||
}
|
||||
const list = [...m3u8List]
|
||||
const list = [...res.m3u8List]
|
||||
let downloadUrl = ''
|
||||
for (const i of list) {
|
||||
const url = encodeURI(i.split('$')[1])
|
||||
|
||||
25
src/lib/dexie/channelList.js
Normal file
25
src/lib/dexie/channelList.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import db from './dexie'
|
||||
const { channelList } = db
|
||||
export default {
|
||||
async all () {
|
||||
return await channelList.toArray()
|
||||
},
|
||||
async clear () {
|
||||
return await channelList.clear()
|
||||
},
|
||||
async add (doc) {
|
||||
return await channelList.add(doc)
|
||||
},
|
||||
async bulkAdd (doc) {
|
||||
return await channelList.bulkAdd(doc)
|
||||
},
|
||||
async find (doc) {
|
||||
return await channelList.get(doc)
|
||||
},
|
||||
async update (id, docs) {
|
||||
return await channelList.update(id, docs)
|
||||
},
|
||||
async remove (id) {
|
||||
return await channelList.delete(id)
|
||||
}
|
||||
}
|
||||
@@ -5,15 +5,15 @@ const db = new Dexie('zy')
|
||||
|
||||
db.version(4).stores({
|
||||
search: '++id, keywords',
|
||||
iptvSearch: '++id, keywords',
|
||||
setting: 'id, theme, site, shortcut, view, externalPlayer, searchGroup, excludeRootClasses, excludeR18Films, forwardTimeInSec, starViewMode, recommandationViewMode, password, proxy',
|
||||
setting: 'id, theme, site, shortcut, view, volume, externalPlayer, searchGroup, excludeRootClasses, excludeR18Films, forwardTimeInSec, starViewMode, recommandationViewMode, searchViewMode, password, proxy, allowPassWhenIptvCheck, autocleanWhenIptvCheck',
|
||||
shortcut: 'name, key, desc',
|
||||
star: '++id, [key+ids], site, name, detail, index, rate, hasUpdate',
|
||||
recommendation: '++id, [key+ids], site, name, detail, index, rate, hasUpdate',
|
||||
sites: '++id, key, name, api, download, isActive, group',
|
||||
history: '++id, [site+ids], name, type, year, index, time, duration, detail',
|
||||
mini: 'id, mode, site, ids, name, index, time, url',
|
||||
iptv: '++id, name, url, group, isActive'
|
||||
mini: 'id, bounds',
|
||||
iptv: '++id, name, url, isActive',
|
||||
channelList: '++id, name, prefer, channels, group, isActive'
|
||||
})
|
||||
|
||||
db.on('populate', () => {
|
||||
|
||||
@@ -5,8 +5,8 @@ import shortcut from './shortcut'
|
||||
import star from './star'
|
||||
import sites from './sites'
|
||||
import search from './search'
|
||||
import iptvSearch from './iptvSearch'
|
||||
import iptv from './iptv'
|
||||
import channelList from './channelList'
|
||||
import recommendation from './recommendation'
|
||||
|
||||
export {
|
||||
@@ -17,7 +17,7 @@ export {
|
||||
star,
|
||||
sites,
|
||||
iptv,
|
||||
channelList,
|
||||
search,
|
||||
iptvSearch,
|
||||
recommendation
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,259 @@
|
||||
[
|
||||
{
|
||||
"key": "1886zy",
|
||||
"ids": 16944,
|
||||
"site": {
|
||||
"id": 2,
|
||||
"key": "1886zy",
|
||||
"name": "1886 资源",
|
||||
"api": "http://cj.1886zy.co/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
"name": "柯明斯基理论",
|
||||
"detail": {
|
||||
"last": "2018-11-23 18:13:07",
|
||||
"id": 16944,
|
||||
"tid": 15,
|
||||
"name": "柯明斯基理论",
|
||||
"type": "欧美剧",
|
||||
"pic": "http://pic.yc370.com/upload/vod/2019-01-19/15479133688.jpg",
|
||||
"lang": "",
|
||||
"area": "美国",
|
||||
"year": 2018,
|
||||
"state": 8,
|
||||
"note": "08",
|
||||
"actor": "迈克尔·道格拉斯,艾伦·阿金,莎拉·贝克,南希·特拉维斯",
|
||||
"director": "安迪·坦纳特,查克·罗瑞,唐纳德·佩特瑞,贝丝·麦卡锡-米勒",
|
||||
"dl": {
|
||||
"dd": [
|
||||
{
|
||||
"_t": "08$https://zuikzy.51moca.com/share/XoIqsGnIP7IED2LS#07$https://zkcdn.yiya520.com/share/kJOL42dTmm6VJkqK#06$https://zkcdn.yiya520.com/share/f8gxIqAchIPyxlAg#05$https://zkcdn.yiya520.com/share/mTG5GkXpB7yro1sQ#04$https://zkcdn.yiya520.com/share/HjQAbC0lzzHAusIw#03$https://zkcdn.yiya520.com/share/qlN7TvZUDDueiefE#02$https://zkcdn.yiya520.com/share/2P9HAA5H1KvkMgm2#01$https://zkcdn.yiya520.com/share/KUD3QMMS4UGnNA3Y",
|
||||
"_flag": "zkyun"
|
||||
},
|
||||
{
|
||||
"_t": "08$https://zuikzy.51moca.com/2018/11/23/XoIqsGnIP7IED2LS/playlist.m3u8#07$https://zkcdn.yiya520.com/2018/11/21/kJOL42dTmm6VJkqK/playlist.m3u8#06$https://zkcdn.yiya520.com/2018/11/21/f8gxIqAchIPyxlAg/playlist.m3u8#05$https://zkcdn.yiya520.com/2018/11/21/mTG5GkXpB7yro1sQ/playlist.m3u8#04$https://zkcdn.yiya520.com/2018/11/19/HjQAbC0lzzHAusIw/playlist.m3u8#03$https://zkcdn.yiya520.com/2018/11/19/qlN7TvZUDDueiefE/playlist.m3u8#02$https://zkcdn.yiya520.com/2018/11/18/2P9HAA5H1KvkMgm2/playlist.m3u8#01$https://zkcdn.yiya520.com/2018/11/18/KUD3QMMS4UGnNA3Y/playlist.m3u8",
|
||||
"_flag": "zkm3u8"
|
||||
}
|
||||
]
|
||||
},
|
||||
"des": "迈克尔·道格拉斯、艾伦·阿金有望加盟Netflix喜剧剧集《柯明斯基理论》(The Kominsky Method,暂译)!该剧由《生活大爆炸》联合编剧查克·罗瑞担任制片。道格拉斯剧中饰演曾经红极一时的明星,现下却只能靠教授表演课程为生,阿金饰演他的老友。道格拉斯上次出演电视剧集还是上世纪70年代的《旧金山风物记》,而阿金上一部荧屏作品则是2001年的犯罪剧集《百厦街》。",
|
||||
"m3u8List": [
|
||||
"08$https://zuikzy.51moca.com/2018/11/23/XoIqsGnIP7IED2LS/playlist.m3u8",
|
||||
"07$https://zkcdn.yiya520.com/2018/11/21/kJOL42dTmm6VJkqK/playlist.m3u8",
|
||||
"06$https://zkcdn.yiya520.com/2018/11/21/f8gxIqAchIPyxlAg/playlist.m3u8",
|
||||
"05$https://zkcdn.yiya520.com/2018/11/21/mTG5GkXpB7yro1sQ/playlist.m3u8",
|
||||
"04$https://zkcdn.yiya520.com/2018/11/19/HjQAbC0lzzHAusIw/playlist.m3u8",
|
||||
"03$https://zkcdn.yiya520.com/2018/11/19/qlN7TvZUDDueiefE/playlist.m3u8",
|
||||
"02$https://zkcdn.yiya520.com/2018/11/18/2P9HAA5H1KvkMgm2/playlist.m3u8",
|
||||
"01$https://zkcdn.yiya520.com/2018/11/18/KUD3QMMS4UGnNA3Y/playlist.m3u8"
|
||||
],
|
||||
"rate": "9.2"
|
||||
},
|
||||
"rate": "9.2",
|
||||
"id": 255
|
||||
},
|
||||
{
|
||||
"key": "mahuazy",
|
||||
"ids": 21869,
|
||||
"site": {
|
||||
"id": 1,
|
||||
"key": "mahuazy",
|
||||
"name": "麻花资源",
|
||||
"api": "http://www.mhapi123.com/inc/ldg_api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
"name": "海上钢琴师",
|
||||
"detail": {
|
||||
"last": "2019-12-26 17:45:44",
|
||||
"id": 21869,
|
||||
"tid": 10,
|
||||
"name": "海上钢琴师",
|
||||
"type": "剧情片",
|
||||
"pic": "https://mahuapic.com/upload/vod/2019-12-26/201912261577353503.png",
|
||||
"lang": "英语",
|
||||
"area": "其它",
|
||||
"year": 2019,
|
||||
"state": 0,
|
||||
"note": "HD",
|
||||
"actor": "蒂姆·罗斯",
|
||||
"director": "朱塞佩·托纳多雷",
|
||||
"dl": {
|
||||
"dd": {
|
||||
"_t": "HD$https://mhkuaibo.com/20191226/4s3AkbXZ/index.m3u8$mahua",
|
||||
"_flag": "mahua"
|
||||
}
|
||||
},
|
||||
"des": "<span style=\"color: rgb(51, 51, 51); font-family: Tahoma, Helvetica, Arial, 微软雅黑, sans-serif; font-size: 14px; line-height: 22px; background-color: rgb(248, 248, 248);\">1900年,Virginian号豪华邮轮上,一个孤儿被遗弃在头等舱,由船上的水手抚养长大,取名1900。1900慢慢长大,显示出了无师自通的非凡钢琴天赋,在船上的乐队表演钢琴,每个听过他演奏的人,都被深深打动。爵士乐鼻祖杰尼听说了1900的高超技艺,专门上船和他比赛,最后自叹弗如,黯然离去。可惜,这一切的事情都发生在海上,1900从来不愿踏上陆地,直到有一天,他爱上了一个女孩,情愫在琴键上流淌。他会不会为了爱情,踏上陆地开始新的生活,用他的琴声惊艳世界?他将怎样谱写自己非凡的人生。</span><br />",
|
||||
"m3u8List": [
|
||||
"HD$https://mhkuaibo.com/20191226/4s3AkbXZ/index.m3u8$mahua"
|
||||
],
|
||||
"rate": "9.3"
|
||||
},
|
||||
"rate": "9.3",
|
||||
"id": 254
|
||||
},
|
||||
{
|
||||
"key": "mahuazy",
|
||||
"ids": 22567,
|
||||
"site": {
|
||||
"id": 1,
|
||||
"key": "mahuazy",
|
||||
"name": "麻花资源",
|
||||
"api": "http://www.mhapi123.com/inc/ldg_api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
"name": "王冠第一季",
|
||||
"detail": {
|
||||
"last": "2019-12-19 11:41:40",
|
||||
"id": 22567,
|
||||
"tid": 15,
|
||||
"name": "王冠第一季",
|
||||
"type": "欧美剧",
|
||||
"pic": "https://mahuapic.com/upload/vod/2019-12-19/15767269760.jpg",
|
||||
"lang": "英语",
|
||||
"area": "美国",
|
||||
"year": 2016,
|
||||
"state": 0,
|
||||
"note": "完结",
|
||||
"actor": "克莱尔·芙伊,马特·史密斯,约翰·利思戈,凡妮莎·柯比",
|
||||
"director": "本·卡隆,史蒂芬·戴德利,菲利普·马丁,朱里安·杰拉德",
|
||||
"dl": {
|
||||
"dd": {
|
||||
"_t": "第01集$https://mhyunbo.com/20191218/5vUSpghQ/index.m3u8$mahua#第02集$https://mhyunbo.com/20191218/jC9O5JXb/index.m3u8$mahua#第03集$https://mhyunbo.com/20191218/yHN6zIDc/index.m3u8$mahua#第04集$https://mhyunbo.com/20191218/q47c0tVo/index.m3u8$mahua#第05集$https://mhyunbo.com/20191218/PBckT1Qt/index.m3u8$mahua#第06集$https://mhyunbo.com/20191218/BSy4h1fR/index.m3u8$mahua#第07集$https://mhyunbo.com/20191218/gn2peH5k/index.m3u8$mahua#第08集$https://mhyunbo.com/20191218/2UNcvDq5/index.m3u8$mahua#第09集$https://mhyunbo.com/20191218/ROV7hhdI/index.m3u8$mahua#第10集$https://mhyunbo.com/20191218/VnSKiBc4/index.m3u8$mahua",
|
||||
"_flag": "mahua"
|
||||
}
|
||||
},
|
||||
"des": "马特·史密斯和约翰·利斯高加盟Netflix剧集《王冠》(The Crown,暂译),二人分别饰演菲利普亲王和丘吉尔。剧集剧本由《女王》编剧彼得·摩根创作,首播集由《时时刻刻》导演史蒂芬·戴德利执导,讲述伊丽莎白二世与丘吉尔在二战后,重塑英伦的故事。之前确定由克莱尔·福伊出演伊丽莎白二世。",
|
||||
"m3u8List": [
|
||||
"第01集$https://mhyunbo.com/20191218/5vUSpghQ/index.m3u8$mahua",
|
||||
"第02集$https://mhyunbo.com/20191218/jC9O5JXb/index.m3u8$mahua",
|
||||
"第03集$https://mhyunbo.com/20191218/yHN6zIDc/index.m3u8$mahua",
|
||||
"第04集$https://mhyunbo.com/20191218/q47c0tVo/index.m3u8$mahua",
|
||||
"第05集$https://mhyunbo.com/20191218/PBckT1Qt/index.m3u8$mahua",
|
||||
"第06集$https://mhyunbo.com/20191218/BSy4h1fR/index.m3u8$mahua",
|
||||
"第07集$https://mhyunbo.com/20191218/gn2peH5k/index.m3u8$mahua",
|
||||
"第08集$https://mhyunbo.com/20191218/2UNcvDq5/index.m3u8$mahua",
|
||||
"第09集$https://mhyunbo.com/20191218/ROV7hhdI/index.m3u8$mahua",
|
||||
"第10集$https://mhyunbo.com/20191218/VnSKiBc4/index.m3u8$mahua"
|
||||
],
|
||||
"rate": "9.2"
|
||||
},
|
||||
"rate": "9.2",
|
||||
"id": 253
|
||||
},
|
||||
{
|
||||
"id": 252,
|
||||
"key": "mahuazy",
|
||||
"ids": 29806,
|
||||
"site": {
|
||||
"id": 1,
|
||||
"key": "mahuazy",
|
||||
"name": "麻花资源",
|
||||
"api": "https://www.mhapi123.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
"name": "最后的棒棒",
|
||||
"rate": "9.6",
|
||||
"detail": {
|
||||
"last": "2020-04-12 15:43:02",
|
||||
"id": 29806,
|
||||
"tid": 20,
|
||||
"name": "最后的棒棒",
|
||||
"type": "记录片",
|
||||
"pic": "https://mahuapic.com/upload/vod/2020-04-12/15866774000.jpg",
|
||||
"lang": "国语",
|
||||
"area": "大陆",
|
||||
"year": 2016,
|
||||
"state": 0,
|
||||
"note": "完结",
|
||||
"actor": "何苦",
|
||||
"director": "何苦",
|
||||
"dl": {
|
||||
"dd": {
|
||||
"_t": "第01集$https://mahua-kb.com/20200412/vpFPIG1f/index.m3u8#第02集$https://mahua-kb.com/20200412/K0b5AvUp/index.m3u8#第03集$https://mahua-kb.com/20200412/tgpvWhFj/index.m3u8#第04集$https://mahua-kb.com/20200412/9mc4bPsO/index.m3u8#第05集$https://mahua-kb.com/20200412/gs0qmble/index.m3u8#第06集$https://mahua-kb.com/20200412/l2eDtPPY/index.m3u8#第07集$https://mahua-kb.com/20200412/7LrOTyqT/index.m3u8#第08集$https://mahua-kb.com/20200412/rnLFz9kO/index.m3u8#第09集$https://mahua-kb.com/20200412/nOTSjrba/index.m3u8#第10集$https://mahua-kb.com/20200412/qrfl8OzL/index.m3u8#第11集$https://mahua-kb.com/20200412/Y4sTsCWm/index.m3u8#第12集$https://mahua-kb.com/20200412/w5L2lXpy/index.m3u8#第13集$https://mahua-kb.com/20200412/Up2AGSWE/index.m3u8",
|
||||
"_flag": "mahua"
|
||||
}
|
||||
},
|
||||
"des": "改革开放之初,山城重庆特殊的地理环境孕育了一个特殊的行业——山城棒棒军。爬坡上坎,负重前行的三十多年,数十万棒棒大军不仅挑走了汗水浸泡的年华,也挑走了属于自己的年代。癸巳岁末,几个佝偻背影即将道别正在消逝的行业,一名退役中校扛起一根棒棒开始了自己的追寻——辉煌与尴尬,艰韧和无奈,他们的人生无须评说,他们的故事值得铭记。",
|
||||
"m3u8List": [
|
||||
"第01集$https://mahua-kb.com/20200412/vpFPIG1f/index.m3u8",
|
||||
"第02集$https://mahua-kb.com/20200412/K0b5AvUp/index.m3u8",
|
||||
"第03集$https://mahua-kb.com/20200412/tgpvWhFj/index.m3u8",
|
||||
"第04集$https://mahua-kb.com/20200412/9mc4bPsO/index.m3u8",
|
||||
"第05集$https://mahua-kb.com/20200412/gs0qmble/index.m3u8",
|
||||
"第06集$https://mahua-kb.com/20200412/l2eDtPPY/index.m3u8",
|
||||
"第07集$https://mahua-kb.com/20200412/7LrOTyqT/index.m3u8",
|
||||
"第08集$https://mahua-kb.com/20200412/rnLFz9kO/index.m3u8",
|
||||
"第09集$https://mahua-kb.com/20200412/nOTSjrba/index.m3u8",
|
||||
"第10集$https://mahua-kb.com/20200412/qrfl8OzL/index.m3u8",
|
||||
"第11集$https://mahua-kb.com/20200412/Y4sTsCWm/index.m3u8",
|
||||
"第12集$https://mahua-kb.com/20200412/w5L2lXpy/index.m3u8",
|
||||
"第13集$https://mahua-kb.com/20200412/Up2AGSWE/index.m3u8"
|
||||
],
|
||||
"rate": "9.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 251,
|
||||
"key": "mahuazy",
|
||||
"ids": 50694,
|
||||
"site": {
|
||||
"id": 1,
|
||||
"key": "mahuazy",
|
||||
"name": "麻花资源",
|
||||
"api": "https://www.mhapi123.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
"name": "以你的心诠释我的爱",
|
||||
"index": 2,
|
||||
"rate": "9.5",
|
||||
"detail": {
|
||||
"last": "2020-11-13 09:34:47",
|
||||
"id": 50694,
|
||||
"tid": 17,
|
||||
"name": "以你的心诠释我的爱",
|
||||
"type": "泰剧",
|
||||
"pic": "https://mahuapic.com/upload/vod/2020-10-23/16034119330.jpg",
|
||||
"lang": "泰语",
|
||||
"area": "泰国",
|
||||
"year": 2020,
|
||||
"state": 0,
|
||||
"note": "更新至04集",
|
||||
"actor": "克里特·安努艾德奇康,普提蓬·阿萨拉塔纳功",
|
||||
"director": "纳卢拜·库诺",
|
||||
"dl": {
|
||||
"dd": {
|
||||
"_t": "第01集$https://b.mhqiyi.com/20201022/K4gdEqpu/index.m3u8#第02集$https://b.mhqiyi.com/20201029/h3maf38g/index.m3u8#第03集$https://e.mahua-kb.com/20201105/HVK7wMlM/index.m3u8#第04集$https://b.mhqiyi.com/20201112/pOl6JaA7/index.m3u8",
|
||||
"_flag": "mahua"
|
||||
}
|
||||
},
|
||||
"des": "这部电视剧是BKPP project的一部分",
|
||||
"m3u8List": [
|
||||
"第01集$https://b.mhqiyi.com/20201022/K4gdEqpu/index.m3u8",
|
||||
"第02集$https://b.mhqiyi.com/20201029/h3maf38g/index.m3u8",
|
||||
"第03集$https://e.mahua-kb.com/20201105/HVK7wMlM/index.m3u8",
|
||||
"第04集$https://b.mhqiyi.com/20201112/pOl6JaA7/index.m3u8"
|
||||
],
|
||||
"rate": "9.5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 250,
|
||||
"key": "niuniucj",
|
||||
"ids": 20044,
|
||||
"site": {
|
||||
@@ -12,6 +266,7 @@
|
||||
"isActive": 1
|
||||
},
|
||||
"name": "此画怎讲",
|
||||
"rate": "8.1",
|
||||
"detail": {
|
||||
"last": "2020-09-23 23:23:36",
|
||||
"id": 20044,
|
||||
@@ -72,11 +327,10 @@
|
||||
"第30集$https://s6.niuniu-baidu.com/2020/09/23/37H4vtEiTXcjSzoa/index.m3u8"
|
||||
],
|
||||
"rate": "8.1"
|
||||
},
|
||||
"rate": "8.1",
|
||||
"id": 250
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 249,
|
||||
"key": "niuniucj",
|
||||
"ids": 4255,
|
||||
"site": {
|
||||
@@ -89,6 +343,7 @@
|
||||
"isActive": 1
|
||||
},
|
||||
"name": "紧急呼救第一季",
|
||||
"rate": "8.6",
|
||||
"detail": {
|
||||
"last": "2019-10-10 19:19:15",
|
||||
"id": 4255,
|
||||
@@ -129,11 +384,10 @@
|
||||
"第10集$https://s1.niuniu-baidu.com/20191010/XZjWRMxLgh8nyFlT/index.m3u8"
|
||||
],
|
||||
"rate": "8.6"
|
||||
},
|
||||
"rate": "8.6",
|
||||
"id": 249
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 248,
|
||||
"key": "niuniucj",
|
||||
"ids": 20632,
|
||||
"site": {
|
||||
@@ -146,6 +400,7 @@
|
||||
"isActive": 1
|
||||
},
|
||||
"name": "小小世界",
|
||||
"rate": "9.4",
|
||||
"detail": {
|
||||
"last": "2020-10-03 12:00:49",
|
||||
"id": 20632,
|
||||
@@ -182,9 +437,7 @@
|
||||
"第06集$https://s6.niuniu-baidu.com/2020/10/03/U0JFALI1lHOjWCfw/index.m3u8"
|
||||
],
|
||||
"rate": "9.4"
|
||||
},
|
||||
"rate": "9.4",
|
||||
"id": 248
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 247,
|
||||
@@ -9238,6 +9491,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"key": "mahuazy",
|
||||
"ids": 20868,
|
||||
"site": {
|
||||
@@ -9250,6 +9504,7 @@
|
||||
"group": "默认"
|
||||
},
|
||||
"name": "铁血战士(1987)",
|
||||
"rate": "7.7",
|
||||
"detail": {
|
||||
"last": "2019-11-23 10:59:36",
|
||||
"id": 20868,
|
||||
@@ -9275,9 +9530,7 @@
|
||||
"HD$https://mhbobo.com/20191121/vyWmCGRH/index.m3u8"
|
||||
],
|
||||
"rate": "7.7"
|
||||
},
|
||||
"rate": "7.7",
|
||||
"id": 22
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"id": 1,
|
||||
"key": "mahuazy",
|
||||
"name": "麻花资源",
|
||||
"api": "https://www.mhapi123.com/inc/api.php",
|
||||
"api": "http://www.mhapi123.com/inc/ldg_api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
@@ -11,56 +11,25 @@
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": "niuniucj",
|
||||
"name": "牛牛资源",
|
||||
"api": "http://v.niuniucj.com/inc/api.php",
|
||||
"key": "1886zy",
|
||||
"name": "1886 资源",
|
||||
"api": "http://cj.1886zy.co/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"key": "wolongzy",
|
||||
"id": 3,
|
||||
"key": "88zyw",
|
||||
"name": "88 影视资源站",
|
||||
"api": "http://www.88zyw.net/inc/api.php",
|
||||
"name": "卧龙资源网",
|
||||
"api": "https://www.mhapi123.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
"isActive": true
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": "apibdzy",
|
||||
"name": "百度云资源",
|
||||
"api": "https://api.apibdzy.com/api.php/provide/vod/at/xml",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"key": "mbo",
|
||||
"name": "秒播资源",
|
||||
"api": "http://caiji.mb77.vip/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "zuidazy",
|
||||
"name": "最大资源网",
|
||||
"api": "http://www.zdziyuan.com/inc/api.php",
|
||||
"download": "http://www.zdziyuan.com/inc/apidown.php",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"key": "123ku",
|
||||
"name": "123 资源",
|
||||
"api": "http://cj.123ku2.com:12315/inc/api.php",
|
||||
@@ -70,97 +39,7 @@
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"key": "okzy",
|
||||
"name": "OK 资源网",
|
||||
"api": "http://cj.okzy.tv/inc/api.php",
|
||||
"download": "http://cj.okzy.tv/inc/apidown.php",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"key": "kuyunzy",
|
||||
"name": "酷云资源",
|
||||
"api": "http://caiji.kuyun98.com/inc/ldg_api.php",
|
||||
"download": "http://caiji.kuyun98.com/inc/apidown.php",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"key": "kubozy",
|
||||
"name": "酷播资源",
|
||||
"api": "http://api.kbzyapi.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"key": "yongjiuzy",
|
||||
"name": "永久资源",
|
||||
"api": "http://cj.yongjiuzyw.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"key": "rrzy",
|
||||
"name": "人人资源",
|
||||
"api": "https://www.rrzyw.cc/api.php/provide/vod/from/rrm3u8/at/xml/",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"key": "bbkdj",
|
||||
"name": "步步高顶尖资源网",
|
||||
"api": "http://api.bbkdj.com/api",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"key": "solezy",
|
||||
"name": "搜乐资源网",
|
||||
"api": "https://www.caijizy.vip/api.php/provide/vod/at/xml/",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"key": "zuixinzy",
|
||||
"name": "最新资源",
|
||||
"api": "http://api.zuixinapi.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"key": "605zy",
|
||||
"name": "605资源",
|
||||
"api": "http://www.605zy.net/inc/seacmsapi.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"id": 5,
|
||||
"key": "subo988",
|
||||
"name": "速播资源站",
|
||||
"api": "https://www.subo988.com/inc/api.php",
|
||||
@@ -169,11 +48,129 @@
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "88zyw",
|
||||
"name": "88 影视资源站",
|
||||
"api": "http://www.88zyw.net/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"key": "zuidazy",
|
||||
"id": 7,
|
||||
"name": "最大资源网",
|
||||
"api": "http://www.zdziyuan.com/inc/ldg_sea.php",
|
||||
"download": "http://www.zdziyuan.com/inc/apidown.php",
|
||||
"group": "默认",
|
||||
"isActive": true
|
||||
},
|
||||
{
|
||||
"key": "mbo",
|
||||
"id": 8,
|
||||
"name": "秒播资源",
|
||||
"api": "http://caiji.mb77.vip/inc/seacmsapi.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"key": "apibdzy",
|
||||
"name": "百度云资源",
|
||||
"api": "https://api.apibdzy.com/api.php/provide/vod/at/xml",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"key": "okzy",
|
||||
"name": "OK 资源网",
|
||||
"api": "http://cj.okzy.tv/inc/api.php",
|
||||
"download": "http://cj.okzy.tv/inc/apidown.php",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"key": "kuyunzy",
|
||||
"name": "酷云资源",
|
||||
"api": "http://caiji.kuyun98.com/inc/ldg_api.php",
|
||||
"download": "http://caiji.kuyun98.com/inc/apidown.php",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"key": "kubozy",
|
||||
"name": "酷播资源",
|
||||
"api": "http://api.kbzyapi.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"key": "yongjiuzy",
|
||||
"name": "永久资源",
|
||||
"api": "http://cj.yongjiuzyw.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"key": "rrzy",
|
||||
"name": "人人资源",
|
||||
"api": "https://www.rrzyw.cc/api.php/provide/vod/from/rrm3u8/at/xml/",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"key": "bbkdj",
|
||||
"name": "步步高顶尖资源网",
|
||||
"api": "http://api.bbkdj.com/api",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"key": "solezy",
|
||||
"name": "搜乐资源网",
|
||||
"api": "https://www.caijizy.vip/api.php/provide/vod/at/xml/",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"key": "zuixinzy",
|
||||
"name": "最新资源",
|
||||
"api": "http://api.zuixinapi.com/inc/api.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"key": "1886zy",
|
||||
"name": "1886 资源",
|
||||
"api": "http://cj.1886zy.co/inc/api.php",
|
||||
"key": "605zy",
|
||||
"name": "605资源",
|
||||
"api": "http://www.605zy.net/inc/seacmsapi.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
@@ -231,16 +228,6 @@
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"key": "wolongzy",
|
||||
"name": "卧龙资源",
|
||||
"api": "http://cj.wlzy.tv/inc/api_mac.php",
|
||||
"download": "",
|
||||
"group": "默认",
|
||||
"isActive": true,
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"key": "mokazy",
|
||||
"name": "魔卡资源网",
|
||||
"api": "https://cj.heiyap.com/api.php/provide/vod/at/xml/",
|
||||
@@ -250,7 +237,7 @@
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"id": 25,
|
||||
"key": "158zy",
|
||||
"name": "壹伍捌资源网",
|
||||
"api": "http://cj.158zyz.net:158/inc/api.php",
|
||||
@@ -260,7 +247,7 @@
|
||||
"status": "可用"
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"id": 26,
|
||||
"key": "kyzy",
|
||||
"name": "快影资源站",
|
||||
"api": "https://www.kyzy.tv/api.php/kyyun/vod/at/xml/",
|
||||
|
||||
@@ -12,13 +12,16 @@ const setting = [
|
||||
starViewMode: 'picture',
|
||||
recommendationViewMode: 'picture',
|
||||
historyViewMode: 'picture',
|
||||
searchViewMode: 'picture',
|
||||
password: '',
|
||||
proxy: {
|
||||
type: 'none',
|
||||
scheme: '',
|
||||
url: '',
|
||||
port: ''
|
||||
}
|
||||
},
|
||||
allowPassWhenIptvCheck: true,
|
||||
autocleanWhenIptvCheck: false
|
||||
}
|
||||
]
|
||||
|
||||
@@ -65,7 +68,7 @@ const localKey = [
|
||||
},
|
||||
{
|
||||
name: 'escape',
|
||||
desc: '退出全屏',
|
||||
desc: '退出全屏/精简模式',
|
||||
key: 'esc'
|
||||
},
|
||||
{
|
||||
@@ -112,6 +115,11 @@ const localKey = [
|
||||
name: 'mini',
|
||||
desc: '进入或退出mini模式',
|
||||
key: 'alt+m'
|
||||
},
|
||||
{
|
||||
name: 'resetMini',
|
||||
desc: '重置mini窗口',
|
||||
key: 'ctrl+0'
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
import db from './dexie'
|
||||
const { iptvSearch } = db
|
||||
export default {
|
||||
async add (doc) {
|
||||
return await iptvSearch.add(doc)
|
||||
},
|
||||
async find (doc) {
|
||||
return await iptvSearch.get(doc)
|
||||
},
|
||||
async update (id, docs) {
|
||||
return await iptvSearch.update(id, docs)
|
||||
},
|
||||
async all () {
|
||||
return await iptvSearch.toArray()
|
||||
},
|
||||
async remove (id) {
|
||||
return await iptvSearch.delete(id)
|
||||
},
|
||||
async clear () {
|
||||
return await iptvSearch.clear()
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import Vue from 'vue'
|
||||
import { Message, Button, Table, TableColumn, Tag, Input, Dialog, Form, FormItem, Switch, Select, Option, Checkbox, Autocomplete, Col } from 'element-ui'
|
||||
import { Message, Button, Table, TableColumn, Tag, Input, Dialog, Form, FormItem, Switch, Select, Option, Checkbox, Autocomplete, Col, Tree } from 'element-ui'
|
||||
import Plugin from 'v-fit-columns'
|
||||
Vue.use(Button)
|
||||
Vue.use(Col)
|
||||
@@ -16,4 +16,5 @@ Vue.use(Select)
|
||||
Vue.use(Option)
|
||||
Vue.use(Checkbox)
|
||||
Vue.use(Autocomplete)
|
||||
Vue.use(Tree)
|
||||
Vue.prototype.$message = Message
|
||||
|
||||
@@ -92,9 +92,10 @@ const zy = {
|
||||
axios.post(url).then(res => {
|
||||
const data = res.data
|
||||
const json = parser.parse(data, this.xmlConfig)
|
||||
const jsondata = json.rss === undefined ? json : json.rss
|
||||
const arr = []
|
||||
if (json.rss.class) {
|
||||
for (const i of json.rss.class.ty) {
|
||||
if (jsondata.class) {
|
||||
for (const i of jsondata.class.ty) {
|
||||
const j = {
|
||||
tid: i._id,
|
||||
name: i._t
|
||||
@@ -104,10 +105,10 @@ const zy = {
|
||||
}
|
||||
const doc = {
|
||||
class: arr,
|
||||
page: json.rss.list._page,
|
||||
pagecount: json.rss.list._pagecount,
|
||||
pagesize: json.rss.list._pagesize,
|
||||
recordcount: json.rss.list._recordcount
|
||||
page: jsondata.list._page,
|
||||
pagecount: jsondata.list._pagecount,
|
||||
pagesize: jsondata.list._pagesize,
|
||||
recordcount: jsondata.list._recordcount
|
||||
}
|
||||
resolve(doc)
|
||||
}).catch(err => {
|
||||
@@ -136,7 +137,8 @@ const zy = {
|
||||
axios.post(url).then(async res => {
|
||||
const data = res.data
|
||||
const json = parser.parse(data, this.xmlConfig)
|
||||
const videoList = json.rss.list.video
|
||||
const jsondata = json.rss === undefined ? json : json.rss
|
||||
const videoList = jsondata.list.video
|
||||
resolve(videoList)
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
@@ -163,11 +165,12 @@ const zy = {
|
||||
axios.post(url).then(async res => {
|
||||
const data = res.data
|
||||
const json = parser.parse(data, this.xmlConfig)
|
||||
const jsondata = json.rss === undefined ? json : json.rss
|
||||
const pg = {
|
||||
page: json.rss.list._page,
|
||||
pagecount: json.rss.list._pagecount,
|
||||
pagesize: json.rss.list._pagesize,
|
||||
recordcount: json.rss.list._recordcount
|
||||
page: jsondata.list._page,
|
||||
pagecount: jsondata.list._pagecount,
|
||||
pagesize: jsondata.list._pagesize,
|
||||
recordcount: jsondata.list._recordcount
|
||||
}
|
||||
resolve(pg)
|
||||
}).catch(err => {
|
||||
@@ -191,8 +194,9 @@ const zy = {
|
||||
axios.post(url, { timeout: 3000 }).then(res => {
|
||||
const data = res.data
|
||||
const json = parser.parse(data, this.xmlConfig)
|
||||
if (json && json.rss && json.rss.list) {
|
||||
const videoList = json.rss.list.video
|
||||
const jsondata = json.rss === undefined ? json : json.rss
|
||||
if (json && jsondata && jsondata.list) {
|
||||
const videoList = jsondata.list.video
|
||||
resolve(videoList)
|
||||
}
|
||||
}).catch(err => {
|
||||
@@ -216,14 +220,16 @@ const zy = {
|
||||
axios.post(url).then(res => {
|
||||
const data = res.data
|
||||
const json = parser.parse(data, this.xmlConfig)
|
||||
const videoList = json.rss.list.video
|
||||
const jsondata = json.rss === undefined ? json : json.rss
|
||||
const videoList = jsondata.list.video
|
||||
// Parse m3u8List
|
||||
var m3u8List = []
|
||||
const dd = videoList.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._flag.indexOf('m3u8') >= 0) {
|
||||
// 如果含有多个视频列表的话, 仅获取m3u8列表
|
||||
if (i._flag.includes('m3u8')) {
|
||||
m3u8List = i._t.split('#')
|
||||
}
|
||||
}
|
||||
@@ -255,7 +261,20 @@ const zy = {
|
||||
axios.post(url).then(res => {
|
||||
const data = res.data
|
||||
const json = parser.parse(data, this.xmlConfig)
|
||||
const videoList = json.rss.list.video
|
||||
const jsondata = json.rss === undefined ? json : json.rss
|
||||
const videoList = jsondata.list.video
|
||||
// Parse m3u8List
|
||||
var m3u8List = []
|
||||
const dd = videoList.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
m3u8List = i._t.split('#')
|
||||
}
|
||||
} else {
|
||||
m3u8List = dd._t.split('#')
|
||||
}
|
||||
videoList.m3u8List = m3u8List
|
||||
resolve(videoList)
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
|
||||
@@ -1,535 +0,0 @@
|
||||
<template>
|
||||
<div class="mini">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<span class="title">
|
||||
<span v-if="m3u8Arr.length > 1">『第 {{(video.index + 1)}} 集』</span>{{name}}
|
||||
</span>
|
||||
<span class="zy-svg" @click="prevEvent" v-show="video.index > 0">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="backIconTitle">
|
||||
<title id="backIconTitle">上一集</title>
|
||||
<path d="M14 14.74L21 19V5l-7 4.26V5L2 12l12 7v-4.26z"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="zy-svg" @click="nextEvent" v-show="video.index < (m3u8Arr.length - 1)">
|
||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-labelledby="forwardIconTitle">
|
||||
<title id="forwardIconTitle">下一集</title>
|
||||
<path d="M10 14.74L3 19V5l7 4.26V5l12 7-12 7v-4.26z"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="opacity" v-show="opacity !== 100">透明度: {{opacity}}</span>
|
||||
<span class="rate" v-show="rate !== 1">播放速率: {{rate}}</span>
|
||||
<span class="progress" v-show="progress > 0">播放进度: {{progress}}%</span>
|
||||
</div>
|
||||
<div class="right">
|
||||
<span class="topping" @click="frameClickEvent('top')" title="置顶">
|
||||
<svg t="1595919317571" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1188" style="width:10px;height:14px"><path d="M43.072 974.72l380.864-301.952 151.936 161.6c0 0 63.424 17.28 67.328-30.72l-3.904-163.584 225.088-259.648 98.048-5.696c0 0 76.928-15.488 21.184-82.752l-275.072-276.928c0 0-74.944-9.6-69.248 59.584l0 75.008L383.552 367.104 225.856 376.64c0 0-57.728 19.2-36.608 69.248l148.16 146.176L43.072 974.72 43.072 974.72z" p-id="1189" :fill="isAlwaysOnTop ? '#555555' : '#ffffff'"></path></svg>
|
||||
</span>
|
||||
<span class="min" @click="frameClickEvent('min')" title="最小化">
|
||||
<svg t="1595917239849" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1155" style="width:8px;height:14px"><path d="M0 479.936C0 444.64 28.448 416 64.064 416L959.936 416C995.328 416 1024 444.736 1024 479.936L1024 544.064C1024 579.392 995.552 608 959.936 608L64.064 608C28.672 608 0 579.264 0 544.064L0 479.936Z" p-id="1156" fill="#ffffff"></path></svg>
|
||||
</span>
|
||||
<span class="max" @click="frameClickEvent('max')" title="最大化">
|
||||
<svg t="1595917343956" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1540" style="width:8px;height:14px"><path d="M416 416 64.064 416C28.448 416 0 444.64 0 479.936L0 544.064C0 579.264 28.672 608 64.064 608L416 608 416 959.936C416 995.552 444.64 1024 479.936 1024L544.064 1024C579.264 1024 608 995.328 608 959.936L608 608 959.936 608C995.552 608 1024 579.36 1024 544.064L1024 479.936C1024 444.736 995.328 416 959.936 416L608 416 608 64.064C608 28.448 579.36 0 544.064 0L479.936 0C444.736 0 416 28.672 416 64.064L416 416Z" p-id="1541" fill="#ffffff"></path></svg>
|
||||
</span>
|
||||
<span class="close" @click="frameClickEvent('close')" title="退出精简模式">
|
||||
<svg t="1595917372551" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1685" style="width:8px;height:14px"><path d="M511.968 376.224 796.096 92.096C833.536 54.624 894.4 54.624 931.84 92.096 969.312 129.568 969.312 190.4 931.84 227.872L647.744 512 931.84 796.096C969.312 833.568 969.312 894.4 931.84 931.872 894.4 969.344 833.536 969.344 796.096 931.872L511.968 647.744 227.84 931.872C190.4 969.344 129.536 969.344 92.096 931.872 54.624 894.4 54.624 833.568 92.096 796.096L376.224 512 92.096 227.872C54.624 190.4 54.624 129.568 92.096 92.096 129.536 54.624 190.4 54.624 227.84 92.096L511.968 376.224Z" p-id="1686" fill="#ffffff"></path></svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div id="xg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import zy from '../lib/site/tools'
|
||||
import { history, setting, shortcut, mini } from '../lib/dexie'
|
||||
import mt from 'mousetrap'
|
||||
import 'xgplayer'
|
||||
import Hls from 'xgplayer-hls.js'
|
||||
const { remote, ipcRenderer } = require('electron')
|
||||
const VIDEO_DETAIL_CACHE = {}
|
||||
export default {
|
||||
name: 'mini',
|
||||
data () {
|
||||
const win = remote.getCurrentWindow()
|
||||
return {
|
||||
xg: null,
|
||||
config: {
|
||||
id: 'xg',
|
||||
url: '',
|
||||
lang: 'zh-cn',
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
autoplay: false,
|
||||
videoInit: true,
|
||||
screenShot: true,
|
||||
keyShortcut: 'off',
|
||||
crossOrigin: true,
|
||||
cssFullscreen: true,
|
||||
defaultPlaybackRate: 1,
|
||||
playbackRate: [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 3, 4, 5],
|
||||
controls: false
|
||||
},
|
||||
opacity: 100,
|
||||
name: '',
|
||||
video: {},
|
||||
detail: {},
|
||||
m3u8Arr: [],
|
||||
rate: 1,
|
||||
progress: 0,
|
||||
isAlwaysOnTop: win.isAlwaysOnTop()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
frameClickEvent (e) {
|
||||
const win = remote.getCurrentWindow()
|
||||
if (e === 'min') {
|
||||
win.minimize()
|
||||
}
|
||||
if (e === 'max') {
|
||||
win.isMaximized() ? win.unmaximize() : win.maximize()
|
||||
}
|
||||
if (e === 'close') {
|
||||
ipcRenderer.send('win')
|
||||
return false
|
||||
}
|
||||
if (e === 'top') {
|
||||
this.isAlwaysOnTop = !this.isAlwaysOnTop
|
||||
win.setAlwaysOnTop(this.isAlwaysOnTop)
|
||||
}
|
||||
},
|
||||
opacityChange (val) {
|
||||
const win = remote.getCurrentWindow()
|
||||
const num = val / 100
|
||||
win.setOpacity(num)
|
||||
return false
|
||||
},
|
||||
getUrls () {
|
||||
mini.find().then(res => {
|
||||
if (res.mode === 'iptv') {
|
||||
this.xg.src = res.url
|
||||
this.xg.play()
|
||||
return
|
||||
}
|
||||
this.video = res
|
||||
this.fetchM3u8List(res).then(m3u8Arr => {
|
||||
this.m3u8Arr = m3u8Arr
|
||||
this.xg.src = m3u8Arr[res.index]
|
||||
if (res.time !== 0 || res.time !== '') {
|
||||
this.xg.play()
|
||||
this.xg.once('playing', () => {
|
||||
this.xg.currentTime = res.time
|
||||
})
|
||||
} else {
|
||||
this.xg.play()
|
||||
}
|
||||
this.videoPlaying()
|
||||
this.xg.once('ended', () => {
|
||||
if (m3u8Arr.length > 1 && (m3u8Arr.length - 1 > res.index)) {
|
||||
this.video.time = 0
|
||||
this.video.index++
|
||||
this.xg.src = m3u8Arr[this.video.index]
|
||||
this.xg.play()
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
fetchM3u8List (info) {
|
||||
return new Promise((resolve) => {
|
||||
const cacheKey = info.site + '@' + info.ids
|
||||
if (VIDEO_DETAIL_CACHE[cacheKey]) {
|
||||
this.name = VIDEO_DETAIL_CACHE[cacheKey].name
|
||||
resolve(VIDEO_DETAIL_CACHE[cacheKey].list)
|
||||
return
|
||||
}
|
||||
zy.detail(info.site, info.ids).then(res => {
|
||||
this.name = res.name
|
||||
const dd = res.dl.dd
|
||||
const type = Object.prototype.toString.call(dd)
|
||||
let m3u8Txt = []
|
||||
if (type === '[object Array]') {
|
||||
for (const i of dd) {
|
||||
if (i._t.indexOf('m3u8') >= 0) {
|
||||
m3u8Txt = i._t.split('#')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8Txt = dd._t.split('#')
|
||||
}
|
||||
const m3u8Arr = []
|
||||
for (const i of m3u8Txt) {
|
||||
const j = i.split('$')
|
||||
if (j.length > 1) {
|
||||
for (let m = 0; m < j.length; m++) {
|
||||
if (j[m].indexOf('m3u8') >= 0) {
|
||||
m3u8Arr.push(j[m])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3u8Arr.push(j[0])
|
||||
}
|
||||
}
|
||||
|
||||
VIDEO_DETAIL_CACHE[cacheKey] = {
|
||||
list: m3u8Arr,
|
||||
name: res.name
|
||||
}
|
||||
resolve(m3u8Arr)
|
||||
})
|
||||
})
|
||||
},
|
||||
async videoPlaying () {
|
||||
const db = await history.find({ site: this.video.site, ids: this.video.ids })
|
||||
if (db) {
|
||||
db.index = this.video.index
|
||||
history.update(db.id, db)
|
||||
} else {
|
||||
const doc = {
|
||||
site: this.video.site,
|
||||
ids: this.video.ids,
|
||||
name: this.video.name,
|
||||
index: this.video.index,
|
||||
time: 0
|
||||
}
|
||||
history.add(doc)
|
||||
}
|
||||
this.timerEvent()
|
||||
},
|
||||
timerEvent () {
|
||||
this.timer = setInterval(async () => {
|
||||
const endTime = this.xg.duration
|
||||
const currentTime = this.xg.currentTime
|
||||
const progress = (currentTime / endTime) * 100
|
||||
this.progress = progress.toFixed(2)
|
||||
const percent = parseFloat((currentTime / endTime).toFixed(2))
|
||||
const win = remote.getCurrentWindow()
|
||||
win.setProgressBar(percent)
|
||||
const db = await history.find({ site: this.video.site, ids: this.video.ids })
|
||||
if (db) {
|
||||
const v = db
|
||||
v.time = this.xg.currentTime
|
||||
v.index = this.video.index
|
||||
const id = v.id
|
||||
delete v.id
|
||||
history.update(id, v)
|
||||
}
|
||||
}, 10000)
|
||||
},
|
||||
async prevEvent () {
|
||||
if (this.video.index === 0) {
|
||||
this.$message.info('已是第一集.')
|
||||
return false
|
||||
}
|
||||
const db = await history.find({ site: this.video.site, ids: this.video.ids })
|
||||
if (db) {
|
||||
const v = db
|
||||
const id = v.id
|
||||
v.index--
|
||||
delete v.id
|
||||
history.update(id, v).then(e => {
|
||||
this.xg.src = this.m3u8Arr[v.index]
|
||||
this.video.index--
|
||||
})
|
||||
}
|
||||
},
|
||||
async nextEvent () {
|
||||
if (this.video.index >= this.m3u8Arr.length - 1) {
|
||||
this.$message.info('已是最后一集.')
|
||||
return false
|
||||
}
|
||||
const db = await history.find({ site: this.video.site, ids: this.video.ids })
|
||||
if (db) {
|
||||
const v = db
|
||||
v.index++
|
||||
const id = v.id
|
||||
delete v.id
|
||||
history.update(id, v).then(e => {
|
||||
this.xg.src = this.m3u8Arr[v.index]
|
||||
this.video.index++
|
||||
})
|
||||
}
|
||||
},
|
||||
playbackRateEvent (e) {
|
||||
let rate = this.xg.playbackRate
|
||||
if (rate > 0.25) {
|
||||
rate = rate + e
|
||||
this.xg.playbackRate = rate
|
||||
}
|
||||
},
|
||||
mtEvent () {
|
||||
setting.find().then(res => {
|
||||
if (res.shortcut) {
|
||||
shortcut.all().then(res => {
|
||||
for (const i of res) {
|
||||
mt.bind(i.key, () => {
|
||||
this.shortcutEvent(i.name)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
shortcutEvent (e) {
|
||||
if (e === 'playAndPause') {
|
||||
if (this.xg) {
|
||||
if (this.xg.paused) {
|
||||
this.xg.play()
|
||||
} else {
|
||||
this.xg.pause()
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'forward') {
|
||||
if (this.xg && !this.xg.paused) {
|
||||
this.xg.currentTime += 5
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'back') {
|
||||
if (this.xg && !this.xg.paused) {
|
||||
this.xg.currentTime -= 5
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'volumeUp') {
|
||||
if (this.xg && this.xg.volume < 0.9) {
|
||||
this.xg.volume += 0.1
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'volumeDown') {
|
||||
if (this.xg && this.xg.volume > 0.2) {
|
||||
this.xg.volume -= 0.1
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'mute') {
|
||||
if (this.xg) {
|
||||
this.xg.volume = 0
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'top') {
|
||||
const win = remote.getCurrentWindow()
|
||||
if (win.isAlwaysOnTop()) {
|
||||
win.setAlwaysOnTop(false)
|
||||
} else {
|
||||
win.setAlwaysOnTop(true)
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'fullscreen') {
|
||||
if (this.xg.fullscreen) {
|
||||
this.xg.exitFullscreen()
|
||||
} else {
|
||||
this.xg.getFullscreen(this.xg.root)
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'escape') {
|
||||
if (this.xg.fullscreen) {
|
||||
this.xg.exitFullscreen()
|
||||
this.xg.exitCssFullscreen()
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'next') {
|
||||
this.nextEvent()
|
||||
return false
|
||||
}
|
||||
if (e === 'prev') {
|
||||
this.prevEvent()
|
||||
return false
|
||||
}
|
||||
if (e === 'home') {
|
||||
if (this.xg && !this.xg.paused) {
|
||||
this.xg.currentTime = 0
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'end') {
|
||||
if (this.xg && !this.xg.paused) {
|
||||
const endTime = this.xg.duration
|
||||
this.xg.currentTime = endTime
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'opacityUp') {
|
||||
const win = remote.getCurrentWindow()
|
||||
if (this.opacity >= 10) {
|
||||
this.opacity -= 5
|
||||
const num = this.opacity / 100
|
||||
win.setOpacity(num)
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'opacityDown') {
|
||||
const win = remote.getCurrentWindow()
|
||||
if (this.opacity <= 95) {
|
||||
this.opacity += 5
|
||||
const num = this.opacity / 100
|
||||
win.setOpacity(num)
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'playbackRateUp') {
|
||||
if (this.xg && !this.xg.paused) {
|
||||
const rate = this.xg.playbackRate
|
||||
this.xg.playbackRate = rate + 0.25
|
||||
this.rate = this.xg.playbackRate
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'playbackRateDown') {
|
||||
if (this.xg && !this.xg.paused) {
|
||||
const rate = this.xg.playbackRate
|
||||
if (rate > 0.25) {
|
||||
this.xg.playbackRate = rate - 0.25
|
||||
this.rate = this.xg.playbackRate
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
if (e === 'mini') {
|
||||
ipcRenderer.send('win')
|
||||
return false
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
this.xg = new Hls(this.config)
|
||||
this.mtEvent()
|
||||
this.getUrls()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
html,body{
|
||||
padding: 1px;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
background-color: #000;
|
||||
}
|
||||
.mini{
|
||||
-webkit-app-region: drag;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
.header{
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
min-height: 30px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
user-select: none;
|
||||
.zy-svg{
|
||||
-webkit-app-region: no-drag;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
svg{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
stroke: #888;
|
||||
stroke-width: 1;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
fill: none;
|
||||
}
|
||||
}
|
||||
.left{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
.title, .opacity, .rate, .progress{
|
||||
color: #888;
|
||||
font-size: 12px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
}
|
||||
.right{
|
||||
width: 100px;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
span{
|
||||
-webkit-app-region: no-drag;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
text-align: center;
|
||||
line-height: 15px;
|
||||
border-radius: 50%;
|
||||
margin-right: 10px;
|
||||
cursor: pointer;
|
||||
opacity: 0.4;
|
||||
&.topping{
|
||||
background-color: #f3bab7;
|
||||
}
|
||||
&.min{
|
||||
background-color: #32dc36;
|
||||
}
|
||||
&.max{
|
||||
background-color: #ffbe2a;
|
||||
}
|
||||
&.close{
|
||||
background-color: #ff5f56;
|
||||
}
|
||||
&:hover{
|
||||
animation: heartbeat 3s ease-in-out infinite both;
|
||||
}
|
||||
@keyframes heartbeat {
|
||||
from {
|
||||
transform: scale(1);
|
||||
transform-origin: center center;
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
10% {
|
||||
opacity: 1;
|
||||
transform: scale(0.91);
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
17% {
|
||||
transform: scale(0.98);
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
33% {
|
||||
transform: scale(0.87);
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
45% {
|
||||
transform: scale(1);
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.footer{
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
.xgplayer-start{
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,10 +0,0 @@
|
||||
import Vue from 'vue'
|
||||
import Mini from './Mini'
|
||||
import 'modern-normalize'
|
||||
import '../lib/element/index'
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
new Vue({
|
||||
render: h => h(Mini)
|
||||
}).$mount('#app')
|
||||
@@ -26,8 +26,8 @@ export default new Vuex.Store({
|
||||
key: '',
|
||||
info: {}
|
||||
},
|
||||
editSites: {
|
||||
sites: []
|
||||
appState: {
|
||||
windowIsOnTop: false
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
@@ -46,8 +46,8 @@ export default new Vuex.Store({
|
||||
getVideo: state => {
|
||||
return state.video
|
||||
},
|
||||
getEditSites: state => {
|
||||
return state.editSites
|
||||
getAppState: state => {
|
||||
return state.appState
|
||||
}
|
||||
},
|
||||
mutations: {
|
||||
@@ -66,8 +66,8 @@ export default new Vuex.Store({
|
||||
SET_VIDEO: (state, payload) => {
|
||||
state.video = payload
|
||||
},
|
||||
SET_EDITSITES: (state, payload) => {
|
||||
state.editSites = payload
|
||||
SET_APPSTATE: (state, payload) => {
|
||||
state.appState = payload
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
module.exports = {
|
||||
pages: {
|
||||
index: 'src/main.js',
|
||||
mini: 'src/mini/main.js'
|
||||
index: 'src/main.js'
|
||||
},
|
||||
pluginOptions: {
|
||||
electronBuilder: {
|
||||
|
||||
Reference in New Issue
Block a user