This commit is contained in:
Liu committed 2025-09-16 13:04:27 +08:00
1 parent ce3c8e3c7e
commit db49b46656
25 files changed
+2670 -5540

No files matched your search

-9
View File
@@ -205,15 +205,6 @@
"quickSearch": 1,
"filterable": 1
},
{
"key": "csp_KmeiJu",
"name": "🍐鸭梨",
"type": 3,
"api": "csp_KmeiJu",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "csp_baibai",
"name": "💯白白",
+81 -47
View File
@@ -4,48 +4,36 @@ CCTV1,http://play.kankanlive.com/live/1661761962676984.m3u8
CCTV1,http://112.123.206.32:808/hls/1/index.m3u8
CCTV1,http://120.76.248.139/live/bfgd/4200000488.m3u8
CCTV2,http://58.57.40.22:9901/tsfile/live/1001_1.m3u8
CCTV2,http://36.105.100.208:35455/gaoma/cctv2.m3u8
CCTV2,http://60.29.124.66:6080/hls/13/index.m3u8
CCTV2,http://120.76.248.139/live/bfgd/4200000061.m3u8
CCTV3,http://36.105.100.208:35455/gaoma/cctv3.m3u8
CCTV3,http://58.17.48.228:808/hls/3/index.m3u8
CCTV3,http://gmxw.7766.org:808/hls/91/index.m3u8
CCTV3,http://60.29.124.66:6080/hls/14/index.m3u8
CCTV4,http://116.9.204.242:9901/tsfile/live/0004_1.m3u8
CCTV4,http://120.238.94.10:9901/tsfile/live/1021_1.m3u8
CCTV5,http://58.17.48.228:808/hls/5/index.m3u8
CCTV5,http://gmxw.7766.org:808/hls/93/index.m3u8
CCTV5,http://60.29.124.66:6080/hls/16/index.m3u8
CCTV5,http://182.150.23.74:808/hls/5/index.m3u8
CCTV5,http://120.238.94.10:9901/tsfile/live/1022_1.m3u8
CCTV5+,http://58.57.40.22:9901/tsfile/live/1005_1.m3u8
CCTV5+,http://36.105.100.208:35455/gaoma/cctv5p.m3u8
CCTV5+,http://123.129.70.178:9901/tsfile/live/0016_1.m3u8
CCTV5+,https://piccpndali.v.myalicdn.com/audio/cctv5plus_2.m3u8
CCTV6,http://58.57.40.22:9901/tsfile/live/1006_1.m3u8
CCTV6,http://36.105.100.208:35455/gaoma/cctv6.m3u8
CCTV6,http://58.17.48.228:808/hls/6/index.m3u8
CCTV6,http://60.29.124.66:6080/hls/17/index.m3u8
CCTV6,http://183.11.239.36:808/hls/94/index.m3u8
CCTV7,http://58.57.40.22:9901/tsfile/live/1007_1.m3u8
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
CCTV7,http://58.221.214.82:9901/tsfile/live/0007_1.m3u8
CCTV8,http://218.3.138.25:1111/tsfile/live/1007_1.m3u8
CCTV8,http://120.238.94.10:9901/tsfile/live/1026_1.m3u8
CCTV9,http://36.105.100.208:35455/gaoma/cctv9.m3u8
CCTV9,http://112.46.85.60:8009/hls/509/index.m3u8
CCTV9,http://58.19.43.46:9901/tsfile/live/1028_1.m3u8
CCTV9,http://58.57.40.22:9901/tsfile/live/1009_1.m3u8
CCTV9,http://120.238.94.10:9901/tsfile/live/1027_1.m3u8
CCTV10,http://58.57.40.22:9901/tsfile/live/1010_1.m3u8
CCTV10,http://36.105.100.208:35455/gaoma/cctv10.m3u8
CCTV10,http://120.76.248.139/live/bfgd/4200000129.m3u8
CCTV10,http://182.150.23.74:808/hls/10/index.m3u8
CCTV11,http://58.57.40.22:9901/tsfile/live/1011_1.m3u8
CCTV11,http://36.105.100.208:35455/gaoma/cctv11.m3u8
CCTV11,http://120.76.248.139/live/bfgd/4200000130.m3u8
CCTV11,https://piccpndali.v.myalicdn.com/audio/cctv11_2.m3u8
CCTV12,http://36.105.100.208:35455/gaoma/cctv12.m3u8
CCTV12,http://116.128.242.83:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV12,http://123.129.70.178:9901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV13,http://58.57.40.22:9901/tsfile/live/1013_1.m3u8
@@ -55,18 +43,12 @@ CCTV13,http://jwplay.hebyun.com.cn/live/cctv13/1500k/tzwj_video.m3u8
CCTV13,https://ldncctvwbcdcnc.v.wscdns.com/ldncctvwbcd/cdrmldcctv13_1/index.m3u8
CCTV14,http://58.57.40.22:9901/tsfile/live/1014_1.m3u8
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
CCTV14,http://36.105.100.208:35455/gaoma/cctv14.m3u8
CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
CCTV14,http://116.9.204.242:9901/tsfile/live/0014_1.m3u8
CCTV15,http://183.11.239.36:808/hls/102/index.m3u8
CCTV15,http://58.19.43.46:9901/tsfile/live/1034_1.m3u8
CCTV15,http://58.221.214.82:9901/tsfile/live/0015_1.m3u8
CCTV16,http://58.17.48.228:808/hls/25/index.m3u8
CCTV16,http://gmxw.7766.org:808/hls/169/index.m3u8
CCTV16,http://183.11.239.36:808/hls/169/index.m3u8
CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8
CCTV17,https://piccpndali.v.myalicdn.com/audio/cctv17_2.m3u8
CCTV17,http://113.57.111.4:1111/tsfile/live/1014_1.m3u8
CCTV17,http://58.19.43.46:9901/tsfile/live/1047_1.m3u8
CCTV17,http://58.57.40.22:9901/tsfile/live/0019_1.m3u8
CCTV1,http://116.128.242.83:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路354』
@@ -74,30 +56,101 @@ CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&au
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8
CCTV6,http://zzssw01.55555.io:9901/tsfile/live/0006_1.m3u8
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
CCTV7,https://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
CCTV7,http://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
CCTV11,http://39.137.75.230/000000001000/1000000005000265011/index.m3u8?channel-id=ystenlive&Contentid=1000000005000265011&livemode=1&stbId=no
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
CCTV13,http://183.215.134.239:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
CCTV15,http://123.130.84.106:8154/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路32』
CCTV16,http://58.221.214.82:9901/tsfile/live/0002_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
CCTV11,http://61.136.172.236:9901/tsfile/live/0011_1.m3u8
CCTV13,http://61.136.172.236:9901/tsfile/live/0013_1.m3u8
CCTV15,http://61.136.172.236:9901/tsfile/live/0015_1.m3u8
CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
CCTV,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
CCTV-1,http://113.57.93.165:9900/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-1,http://113.57.93.165:9900/tsfile/live/0001_1.m3u8
CCTV-1,http://183.223.157.33:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-1,http://116.128.242.83:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-1,http://116.128.242.83:9901/tsfile/live/0001_1.m3u8
CCTV-2,http://113.57.93.165:9900/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-2,http://183.223.157.33:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-2,http://116.128.242.83:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-2,http://116.128.242.83:9901/tsfile/live/0002_1.m3u8
CCTV-2,http://120.238.94.10:9901/tsfile/live/1019_1.m3u8
CCTV-3,http://113.57.93.165:9900/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-3,http://113.57.93.165:9900/tsfile/live/0003_1.m3u8
CCTV-3,http://183.223.157.33:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-3,http://116.128.242.83:9901/tsfile/live/0003_2.m3u8?key=txiptv&playlive=1&authid=0
CCTV-3,http://116.128.242.83:9901/tsfile/live/0003_2.m3u8
CCTV-4,http://113.57.93.165:9900/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-4,http://113.57.93.165:9900/tsfile/live/0004_1.m3u8
CCTV-4,http://183.223.157.33:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-4,http://116.128.242.83:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-4,http://116.128.242.83:9901/tsfile/live/0004_1.m3u8
CCTV-5,http://113.57.93.165:9900/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-5,http://113.57.93.165:9900/tsfile/live/0005_1.m3u8
CCTV-5,http://183.223.157.33:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-5,http://116.128.242.83:9901/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-5,http://116.128.242.83:9901/tsfile/live/0006_1.m3u8
CCTV-5+,http://183.223.157.33:9901/tsfile/live/0018_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-5+,http://116.128.242.83:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-5+,http://120.238.94.10:9901/tsfile/live/1023_1.m3u8
CCTV-6,http://113.57.93.165:9900/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-6,http://113.57.93.165:9900/tsfile/live/0006_1.m3u8
CCTV-6,http://183.223.157.33:9901/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-6,http://116.128.242.83:9901/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-6,http://116.128.242.83:9901/tsfile/live/0007_1.m3u8
CCTV-7,http://183.223.157.33:9901/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-7,http://116.128.242.83:9901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-7,http://120.238.94.10:9901/tsfile/live/1025_1.m3u8
CCTV-7,http://223.241.247.214:9901/tsfile/live/0007_1.m3u8
CCTV-8,http://113.57.93.165:9900/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-8,http://113.57.93.165:9900/tsfile/live/0008_1.m3u8
CCTV-8,http://183.223.157.33:9901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-8,http://116.128.242.83:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-8,http://120.238.94.10:9901/tsfile/live/1026_1.m3u8
CCTV-9,http://183.223.157.33:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-9,http://116.128.242.83:9901/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-9,http://116.128.242.83:9901/tsfile/live/0010_1.m3u8
CCTV-9,http://120.238.94.10:9901/tsfile/live/1027_1.m3u8
CCTV-9,http://39.164.160.249:9901/tsfile/live/0009_1.m3u8
CCTV-10,http://183.223.157.33:9901/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-10,http://116.128.242.83:9901/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-10,http://116.128.242.83:9901/tsfile/live/0011_1.m3u8
CCTV-10,http://120.238.94.10:9901/tsfile/live/1028_1.m3u8
CCTV-10,http://39.164.160.249:9901/tsfile/live/0010_1.m3u8
CCTV-11,http://183.223.157.33:9901/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-11,http://116.128.242.83:9901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-11,http://116.128.242.83:9901/tsfile/live/0012_1.m3u8
CCTV-11,http://120.238.94.10:9901/tsfile/live/1029_1.m3u8
CCTV-11,http://39.164.160.249:9901/tsfile/live/0011_1.m3u8
CCTV-12,http://113.57.93.165:9900/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-12,http://113.57.93.165:9900/tsfile/live/0012_1.m3u8
CCTV-12,http://116.128.242.83:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-12,http://116.128.242.83:9901/tsfile/live/0013_1.m3u8
CCTV-12,http://120.238.94.10:9901/tsfile/live/1030_1.m3u8
CCTV-13,https://event.pull.hebtv.com/jishi/cp1.m3u8
CCTV-13,http://113.57.93.165:9900/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-13,http://113.57.93.165:9900/tsfile/live/0013_1.m3u8
CCTV-13,http://183.223.157.33:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-13,http://116.128.242.83:9901/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-14,http://183.223.157.33:9901/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-14,http://116.128.242.83:9901/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-14,http://116.128.242.83:9901/tsfile/live/0015_1.m3u8
CCTV-14,http://39.164.160.249:9901/tsfile/live/0014_1.m3u8
CCTV-15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8
CCTV-15,http://183.223.157.33:9901/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-15,http://116.128.242.83:9901/tsfile/live/0016_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV-15,http://116.128.242.83:9901/tsfile/live/0016_1.m3u8
CCTV-16,https://piccpndali.v.myalicdn.com/audio/cctv16_2.m3u8
CCTV-16,http://183.11.239.36:808/hls/169/index.m3u8
CCTV-17,http://120.238.94.10:9901/tsfile/live/1048_1.m3u8
CETV4,https://mursor.ottiptv.cc/migu/923287339.m3u8?migutoken=165b545b4402eaba61cdc31defb6548a443d9b5eebb1d99392852bd799c553e8817e85eb324c512581ca9a1ed8e56e530144f79606cf44fe5b2d5e97b6da577e0f2adae2a90c2a55089c95880b
卫视,#genre#
安徽卫视,http://39.164.160.249:9901/tsfile/live/0130_1.m3u8
安徽卫视,http://183.11.239.36:808/hls/40/index.m3u8
安徽卫视,http://123.130.84.106:8154/tsfile/live/0130_1.m3u8
安徽卫视,http://111.14.181.15:9901/tsfile/live/0130_1.m3u8
安徽卫视,http://gmxw.7766.org:808/hls/40/index.m3u8
北京卫视,http://39.164.160.249:9901/tsfile/live/0122_1.m3u8
北京卫视,http://satellitepull.cnr.cn/live/wxbtv/playlist.m3u8
@@ -115,7 +168,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
东南卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
东南卫视,http://58.19.43.46:9901/tsfile/live/1046_1.m3u8
东南卫视,http://123.129.70.178:9901/tsfile/live/0137_1.m3u8
东南卫视,http://58.221.214.82:9901/tsfile/live/0137_1.m3u8
广东卫视,http://58.57.40.22:9901/tsfile/live/1039_1.m3u8
广东卫视,http://120.238.94.10:9901/tsfile/live/1008_1.m3u8
广东卫视,http://183.11.239.36:808/hls/80/index.m3u8
@@ -126,7 +178,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
贵州卫视,http://58.19.43.46:9901/tsfile/live/1011_1.m3u8
海南卫视,http://58.57.40.22:9901/tsfile/live/1000_1.m3u8
海南卫视,http://36.32.174.67:60080/newlive/live/hls/46/live.m3u8
海南卫视,http://218.89.240.144:59901/tsfile/live/1000_1.m3u8
海南卫视,http://113.57.111.4:1111/tsfile/live/1031_1.m3u8
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/chunklist0.m3u8
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/playlist.m3u8
@@ -134,17 +185,14 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
河北卫视,http://36.32.174.67:60080/newlive/live/hls/36/live.m3u8
河北卫视,http://111.61.236.247:9081/hls/17/index.m3u8
河北卫视,http://120.76.248.139/live/bfgd/4200000108.m3u8
河北卫视,http://61.156.228.12:8154/tsfile/live/0117_1.m3u8
河南卫视,http://58.57.40.22:9901/tsfile/live/1048_1.m3u8
河南卫视,http://satellitepull.cnr.cn/live/wxhnws/playlist.m3u8
河南卫视,http://tvpull.dxhmt.cn:9081/tv/11425-1.m3u8
河南卫视,http://120.76.248.139/live/bfgd/4200000339.m3u8
湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
湖北卫视,http://58.57.40.22:9901/tsfile/live/1038_1.m3u8
湖北卫视,http://61.156.228.12:8154/tsfile/live/0132_1.m3u8
湖南卫视,http://39.164.160.249:9901/tsfile/live/0128_1.m3u8
湖南卫视,http://58.57.40.22:9901/tsfile/live/1028_1.m3u8
湖南卫视,http://58.17.48.228:808/hls/31/index.m3u8
湖南卫视,http://120.76.248.139/live/bfgd/4200000086.m3u8
吉林卫视,http://58.57.40.22:9901/tsfile/live/1050_1.m3u8
吉林卫视,http://satellitepull.cnr.cn/live/wxjlws/playlist.m3u8
@@ -157,15 +205,12 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
江苏卫视,http://112.46.85.60:8009/hls/33/index.m3u8
江苏卫视,http://182.150.23.74:808/hls/18/index.m3u8
江西卫视,http://39.164.160.249:9901/tsfile/live/0138_1.m3u8
江西卫视,http://58.17.48.228:808/hls/17/index.m3u8
江西卫视,http://36.32.174.67:60080/newlive/live/hls/31/live.m3u8
江西卫视,http://58.221.214.82:9901/tsfile/live/0138_1.m3u8
康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
辽宁卫视,http://39.164.160.249:9901/tsfile/live/0121_1.m3u8
辽宁卫视,http://183.11.239.36:808/hls/47/index.m3u8
辽宁卫视,http://113.57.111.4:1111/tsfile/live/1026_1.m3u8
辽宁卫视,http://61.156.228.12:8154/tsfile/live/0121_1.m3u8
辽宁卫视,http://61.136.172.236:9901/tsfile/live/0121_1.m3u8
宁夏卫视,http://58.57.40.22:9901/tsfile/live/1054_1.m3u8
宁夏卫视,http://120.238.94.10:9901/tsfile/live/1076_1.m3u8
@@ -179,7 +224,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
青海卫视,http://120.238.94.10:9901/tsfile/live/1073_1.m3u8
青海卫视,http://58.19.43.46:9901/tsfile/live/1014_1.m3u8
青海卫视,http://120.76.248.139/live/bfgd/4200000111.m3u8
青海卫视,http://123.130.84.106:8154/tsfile/live/0140_1.m3u8
山东卫视,http://39.164.160.249:9901/tsfile/live/0131_1.m3u8
山东卫视,http://l.cztvcloud.com/channels/lantian/SXshengzhou1/720p.m3u8
山东卫视,http://183.11.239.36:808/hls/43/index.m3u8
@@ -193,18 +237,15 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
四川卫视,http://58.57.40.22:9901/tsfile/live/1046_1.m3u8
四川卫视,http://183.11.239.36:808/hls/50/index.m3u8
四川卫视,http://113.25.252.226:9901/tsfile/live/0123_1.m3u8
四川卫视,http://39.150.96.141:65535/tsfile/live/0123_1.m3u8?key=txiptv&playlive=1&authid=0
天津卫视,http://58.57.40.22:9901/tsfile/live/1034_1.m3u8
天津卫视,http://112.46.85.60:8009/hls/44/index.m3u8
天津卫视,http://113.57.111.4:1111/tsfile/live/1024_1.m3u8
西藏卫视,http://36.32.174.67:60080/newlive/live/hls/48/live.m3u8
西藏卫视,http://111.61.236.247:9081/hls/52/index.m3u8
西藏卫视,http://183.11.239.36:808/hls/64/index.m3u8
西藏卫视,http://120.76.248.139/live/bfgd/4200000121.m3u8
新疆卫视,http://39.164.160.249:9901/tsfile/live/0110_1.m3u8
新疆卫视,http://58.57.40.22:9901/tsfile/live/1055_1.m3u8
新疆卫视,http://36.32.174.67:60080/newlive/live/hls/47/live.m3u8
新疆卫视,http://111.61.236.247:9081/hls/53/index.m3u8
新疆卫视,http://113.25.252.226:9901/tsfile/live/0110_1.m3u8
延边卫视,http://120.76.248.139/live/bfgd/4200000117.m3u8
延边卫视,http://gmxw.7766.org:808/hls/15/index.m3u8
@@ -217,7 +258,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
浙江卫视,http://ali-vl.cztv.com/channels/lantian/channel001/360p.m3u8
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
重庆卫视,http://36.32.174.67:60080/newlive/live/hls/34/live.m3u8
重庆卫视,http://111.14.181.15:9901/tsfile/live/0142_1.m3u8
重庆卫视,http://61.136.172.236:9901/tsfile/live/0142_1.m3u8
东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
@@ -262,14 +302,8 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel01/1080p.m3u8
浙江卫视,https://stream1.freetv.fun/2e3a01b886780ceca10b44bb6cdb57413757275a6fdcb083800db996bc2f81e3.m3u8
湖南卫视,http://61.136.172.236:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路77』
北京卫视,http://61.156.228.12:8154/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路83』
安徽卫视,http://61.136.172.236:9901/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路75』
广西卫视,http://61.136.172.236:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路54』
深圳卫视,http://api3.52tb.xyz/info?id=28&token=20230227aesvnb
东南卫视,http://api3.52tb.xyz/info?id=29&token=20230227aesvnb
河南卫视,http://api3.52tb.xyz/info?id=31&token=20230227aesvnb
海南卫视,http://api3.52tb.xyz/info?id=38&token=20230227aesvnb
吉林卫视,http://api3.52tb.xyz/info?id=40&token=20230227aesvnb
IPV6,#genre#
+16 -23
View File
@@ -134,7 +134,7 @@
"type": "rect",
"ratio": 1.333
},
"ext": "https://ka1dfj.slsw6.com"
"ext": "https://ev2089.zxbwv.com"
},
{
"key": "AppQi1",
@@ -215,16 +215,6 @@
"api": "csp_AppRJ",
"ext": "vxw35/hHSj07Q+maxQzOVMq1rjRCOTXpUCx8iKu5jIg="
},
{
"key": "csp_nongmin",
"name": "💯农民┃极速",
"type": 3,
"api": "csp_Wwys",
"searchable": 1,
"quickSearch": 0,
"filterable": 1,
"ext": "https://www.wwgz.cn"
},
{
"key": "csp_FreeOk",
"name": "👌️Frek┃影视",
@@ -247,7 +237,7 @@
"searchable": 1,
"quickSearch": 0,
"api": "csp_AppRJ",
"ext": "jsSMEuhTZIAHjnUoLBzKdlRu5exzno6M4efF8LzwjWM="
"ext": "Z2MNziRBwjQxqaBuUxNkDRyvTntIkN1cOXhjyWgjCTc="
},
{
"key": "云速",
@@ -281,14 +271,26 @@
"apisignkey": "lvdoutv-1.0.0"
}
},
{
"key": "csp_SaoHuo",
"name": "🔥火火┃影视",
"type": 3,
"api": "csp_SaoHuo"
},
{
"key": "csp_Qiyou",
"name": "🥝奇优┃影视",
"type": 3,
"api": "csp_Qiyou"
},
{
"key": "大豆",
"name": "✅大豆┃影视",
"type": 3,
"quickSearch": 0,
"searchable": 1,
"api": "csp_AppGet",
"ext": "7PKaTzLgpGLqYV7cUF+dCEw/YtRQnWFqGURdQoZnM3s5khy5fqX3yGD7gACetGMWTQJv81SoDNcZI5UkNNLGqA=="
"api": "csp_AppQi",
"ext": "Ruh/okyt5lxEpcdQOao0NkSkj8M9vdB0soaZbGJldzA3817rfAzlvyWHCewZEFD4+BBCXxVVHkmAtv6gi+JRQlKwhK1WjuT8blTygReol77ICMmtZZPsmzfgjOtOXiEJ"
},
{
"key": "巧技",
@@ -318,15 +320,6 @@
"api": "csp_AppXY",
"ext": "https://xvapp.xingya.com.cn"
},
{
"key": "csp_baibai",
"name": "💯白白┃影视",
"type": 3,
"searchable": 1,
"quickSearch": 0,
"api": "csp_SuBaiBai",
"ext": "https://www.subaibai.com"
},
{
"key": "csp_LiteApple",
"name": "🍎苹果┃影视",
-313
View File
@@ -1,313 +0,0 @@
#EXTM3U x-tvg-url="https://11.112114.xyz/pp.xml"
#EXTINF:-1 tvg-name="4K60PSDR-H264-AAC测试" tvg-logo="https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/tg.jpg" group-title="4K频道",4K60PSDR-H264-AAC测试
https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/sdr4kvideo/playlist.m3u8
#EXTINF:-1 tvg-name="4K60PHLG-HEVC-EAC3测试" tvg-logo="https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/tg.jpg" group-title="4K频道",4K60PHLG-HEVC-EAC3测试
https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/hlg4kvideo/playlist.m3u8
#EXTINF:-1,tvg-id="重温经典" tvg-name="重温经典" tvg-logo="https://11.112114.xyz/logo/重温经典.png" group-title="其他",重温经典
https://gdcucc.v1.mk/gdcucc/cwjd.m3u8
#EXTINF:-1,tvg-id="五星体育" tvg-name="五星体育" tvg-logo="https://11.112114.xyz/logo/五星体育.png" group-title="其他",五星体育
https://gdcucc.v1.mk/gdcucc/wxty.m3u8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2201/057/821/202204010054_1626677502161_H169_1080.jpg" group-title="央视", CCTV1综合
https://mgtv.ottiptv.cc/mg/608807420.m3u8?token=873f9e9283a57cb20cc3454d664576c7cee149303670ed4bd2f7f6658774f7a495d1ea65f72c5f7ef3bfdaa59cc15c3841e1cd68801476d31982b6ea258968dc028bdbc318e28f16b537172411&tm=1757387428&sign=42f26e7f61b35f3b2beb6132117d35af
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/346/945/202205311432_1653977575541_H169_1080.jpg" group-title="央视", CCTV2财经
https://mgtv.ottiptv.cc/mg/631780532.m3u8?token=782622488420d058e771dc9f9ff4c4232e75b0b7506f4526e81bffd4e242d4735e7583d4af19a9140511ac6dffe9cfda872429af3c53636f3a4d5c80f0750b7c95b974a8c0632ff6e4d6473636&tm=1757387428&sign=98b036e589ba5e0908dedb8e40356e76
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/864/202204010055_1626679292691_H169_1080.jpg" group-title="央视", CCTV3综艺
https://mgtv.ottiptv.cc/mg/624878271.m3u8?token=c2f4e3b7fd41cbc7ca351daab9483f744dae90899de5c04536d8ee1859655cda7cf0727b8417eb1597a2a9bb4b89256e5146219aae0154b13a92aa7db76cd9cf8fdea25875a9d83bd45cb6d07f&tm=1757387428&sign=1ad60accd460f7db1b067d1c1e6f6d8e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/346/947/202204010054_1626679457281_H169_1080.jpg" group-title="央视", CCTV4中文国际
https://mgtv.ottiptv.cc/mg/631780421.m3u8?token=f1eb6fd00c24898b309e9a0edf4a3ea0f3eb2352ecb88740df440cd3ac9202c58a59bfe33e827cf048977397c053b330f7e2c705c1e530156f4cc8349e1526e7c39c0b3eca1f2dcd0ef2f4c799&tm=1757387428&sign=842ea63e29c6f44221b44812afe594f3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/516/171/202204010048_1626679645474_H169_1080.jpg" group-title="央视", CCTV5体育
https://mgtv.ottiptv.cc/mg/641886683.m3u8?token=6c49c50cdf8aa0eda0a00c38f95517f40d327f07d308d09aa820421c26b14024bae965495fdb9762668b4e8cc42f1809466015650dfe7d50bc0de4db09d8c3f952f68584699eef30b9f01bf17c&tm=1757387428&sign=4075eef6b0c4cfa748df7ba38739ade7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/516/288/202204010048_1626679726956_H169_1080.jpg" group-title="央视", CCTV5+体育赛事
https://mgtv.ottiptv.cc/mg/641886773.m3u8?token=0e47a58aee0c766cee42433ccc0df0f9dbaeb31233f0916a27c52231a008789243906c494256b43df6a92b0c6c47ec4b82b6d5800dad591ff808b64c6561983b4011b4a2d7f6d4b9bb499e989b&tm=1757387428&sign=909a01f044c6d44bc8e7dd339fa47d49
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/872/202204010054_1626679942827_H169_1080.jpg" group-title="央视", CCTV6电影
https://mgtv.ottiptv.cc/mg/624878396.m3u8?token=8f5994def3d9d3d1e42bf78bc636109851d74e4e86ad4dd7f30d3ff7b89e51ecc777ffcd40f1cebd9ae4f61469dc41b2b9b896de6d402ac81a18eb8a2c4f3b761eae1eb6a6625c7fd770d59235&tm=1757387428&sign=05d4c798efcd2288232b7c374480e071
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/622/202204010054_1626680072401_H169_1080.jpg" group-title="央视", CCTV7国防军事
https://mgtv.ottiptv.cc/mg/673168121.m3u8?token=57b2840dc9bde770b26f3ab2e0eff3a3653af6c4c3881f04c92e99a25cf5e6c2ac61b11846dd056517365844b855a51c9ca9da7d0c538280833fda4cb128ee3d4bc0452ff36784b667adf498c1&tm=1757387428&sign=63e8b03e9c6eb2135d88c27458ba13d5
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/868/202204010049_1626677144094_H169_1080.jpg" group-title="央视", CCTV8电视剧
https://mgtv.ottiptv.cc/mg/624878356.m3u8?token=afe48916b07b879975b99aef80c447d0b867e9e720473054b3c13ababa253922c099a02c093e76e2f86d838fc89789b259edbaa2df42da6e23ed1b7e7b65267f2ebd02b3d7465a7f18af5925c9&tm=1757387428&sign=24939c774ad7694e7fbf24e9ae47f642
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/624/202204010054_1626677492322_H169_1080.jpg" group-title="央视", CCTV9纪录
https://mgtv.ottiptv.cc/mg/673168140.m3u8?token=60e8ab435821bdfe6b921cf2eb6d9ff66b3c26f1588eb85aa005422e783722555f9e86e4662579a1ad132733c06fcc0322435b6748325ae6bc100a53f2e00d4a9091c6ff43762b4a669bc27417&tm=1757387428&sign=b9489a92706faead9cfd1be36f43a701
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/874/202204010054_1626677759168_H169_1080.jpg" group-title="央视", CCTV10科教
https://mgtv.ottiptv.cc/mg/624878405.m3u8?token=caa170b7cab721ce49bc50b69eaaf8cacf19071d92f8f4e6e93fa12c53a549c9c9067a5d501cf41811a575dad3cab6117bb732ac303198449d059d6c22da3a4631d2ede535c75ffe0522082268&tm=1757387428&sign=724c99ea6d84a5be2b0a5adf3b20467c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/988/610/202204010054_1626677917611_H169_1080.jpg" group-title="央视", CCTV11戏曲
https://mgtv.ottiptv.cc/mg/667987558.m3u8?token=7a1da4e323a4ed0a026645a00d5e8f2a08a83735a49b876da9e94ebd63d47d9104ed9858aa9e1b2f081ed8682f7219414fff9cbe49b10583d7fa588b0ca41d0c2f03d66d60d44427abea7affa6&tm=1757387428&sign=34ac256c99465c90cf5590c6e22ec2e1
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/627/202204010053_1626678104342_H169_1080.jpg" group-title="央视", CCTV12社会与法
https://mgtv.ottiptv.cc/mg/673168185.m3u8?token=09e9387e7585c6c9a2f3b5820f1e5ddc581a34b5f44b397bf39663aaa3b00f37a76c0b9b6073c600e1ff62661257b84df45188bb929555b34ecfae800261beb9bf56c74a88453a51e323e16ba5&tm=1757387428&sign=855951a793508743a7bb50e47a8595a6
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/208/864/202204010051_2202208864_H169_1080.jpg" group-title="央视", CCTV13新闻
https://mgtv.ottiptv.cc/mg/608807423.m3u8?token=b7b7a1eee882f2820196334a329c3e21a6a1d368f92f0ec29a2a0ae14bdc52e9833a705e6cd1c392ebe554f7fb42d9b76be0999e7643920eeb703309ee58f6715ef2ea5bf34d98b300a1604f54&tm=1757387428&sign=f43935283ccf3bb2471780af9fec937f
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/875/202204010054_1626678143105_H169_1080.jpg" group-title="央视", CCTV14少儿
https://mgtv.ottiptv.cc/mg/624878440.m3u8?token=953330a5dc7cea7b8658e35233c251992ecc99f332b16dc02d445791f114e86e2bf3ddbdaa177ab5b2a848372c8419ffb9172b65c80896ecf39ebe9fdec75927ebb00b23b23220e5bdbbec45c0&tm=1757387428&sign=21ccc92916417627e8a29b611e6918be
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/628/202204010054_1626678239769_H169_1080.jpg" group-title="央视", CCTV15音乐
https://mgtv.ottiptv.cc/mg/673168223.m3u8?token=cdf17d551a742294a4e284c6b9185da0e12443cfe9f1f19827a20895be47aa99a254a7e284cd1e3aeea39294fed2990c4daaeab16ca2822f1fdbcfa5d8f4becbc53c2a374279fe633c27d12b7a&tm=1757387428&sign=88a13ab1e00d5bbef980eca1f24793b7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/631/202204010052_1626678423944_H169_1080.jpg" group-title="央视", CCTV17农业农村
https://mgtv.ottiptv.cc/mg/673168256.m3u8?token=234fb1ae2a8c7b386da9142054d2f4332ec18bdaee62808f92a4efed1523ce11e31b966e5659f4753619f3c3f3462d55f3abe1770933084da192bf52799d33ed4216ac577e41ccac4a48cff367&tm=1757387428&sign=7623e273adda38d351a47f4684431b87
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/315/202204010055_1626831001078_H169_1080.jpg" group-title="央视", CCTV4欧洲
https://mgtv.ottiptv.cc/mg/608807419.m3u8?token=0c40eee0536dfefba1f882dcb31da21588eb6b410f85661942709671de0c0015124a6f93571e19fee323a524a10a000f9ad2bf308dec3775fbdeeaed0b5dc9bcba076bb87cd4cef385daaf8e26&tm=1757387428&sign=096c9e853f3a3b0f8e94674c679b0f82
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/344/202204010055_1626830735444_H169_1080.jpg" group-title="央视", CCTV4美洲
https://mgtv.ottiptv.cc/mg/608807416.m3u8?token=fc2ccaa9e528fcd2af0fa31ec25c87d00e500422b6b1c982ef88277887ea14bd4e087f8fb5d8ff8a4c7cb750b9aaa8e0c371a22eaff32c1384f81e0d0f37e62d36569c96943d724158b0918d04&tm=1757387428&sign=4ab241826ac3528922b83d7795f2aa96
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/356/202502251602_1740470533820_H169_1080.jpg" group-title="央视", CGTN外语纪录
https://mgtv.ottiptv.cc/mg/609006487.m3u8?token=e6bb6a50bf14eb0c2b8a50065e026d1d9685b217b866150f611bdae75528bbaf30460910994dd6d450d1d9762406be80bdf1edd3459a1884ecb8b5c8753e1a1af2067ca16ea334d47ab75376b4&tm=1757387428&sign=b58e8d3771b74d1a08687e7c14e15b50
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/303/202502251557_1740470224929_H169_1080.jpg" group-title="央视", CGTN阿拉伯语
https://mgtv.ottiptv.cc/mg/609154345.m3u8?token=0d4f8ec49501eb6bdabd7ae27b7949ecd8f361e57b4d9e58dadc625c52ceec691481eb6c448904a86e72e8071d9085e7a96fbc91f97911dd47a481f948cdb445bc13383d24bae46704bcb4b953&tm=1757387428&sign=82a733b6cbc779b020b490828c501873
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/337/202502251600_1740470429939_H169_1080.jpg" group-title="央视", CGTN西班牙语
https://mgtv.ottiptv.cc/mg/609006450.m3u8?token=e36834050da008104d7f1278b6167c245dcf4d2526d043f43947dcd823657e0984830fe41d335b4023453b74fa21260f28571cf057ee7f95f4d9cd1389130925fa800abe69d36fce564da30d1e&tm=1757387428&sign=7bbd52daf285b3716f462168363b0f72
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/324/202502251559_1740470364968_H169_1080.jpg" group-title="央视", CGTN法语
https://mgtv.ottiptv.cc/mg/609006476.m3u8?token=795ae5f5a67c037f9ec809fbb743ace0d4208d05a5a816211c3b890f6655cb9c940d4945fe783e16fc98a13cd2ee3dff63927e3e00521ed16e1c27b255cc95ea6e23d844f5efff75d854305178&tm=1757387428&sign=2e9d7e2ed4fd7840d0dd775f2fcf40c3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/332/202502251558_1740470310039_H169_1080.jpg" group-title="央视", CGTN俄语
https://mgtv.ottiptv.cc/mg/609006446.m3u8?token=4a3c1ad27f62bedc5e25a44dda961e53eca0099bc7aa0fa11835cd394e8eab0a5888b1f66a1a916a69185275ef7c82c7f9ea87d9ee0435a68148049768a11ca58f81750d9846560a1631e3862b&tm=1757387428&sign=236e6949419ece4e588d37a449043b17
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/002/202405081702_1715158642984_H169_1080.jpg" group-title="央视", 老故事
https://mgtv.ottiptv.cc/mg/884121956.m3u8?token=b7fd1d22ea197b5b0e3599a8a28a43baacbd56cd898da9f8e8f4545702215535c7f57df5dc172e2ef8df54ccb4d91eef8461260e5069484f66600b5dcce9ee4ce6c04d3d5886a135581e83f5a1&tm=1757387428&sign=79f2867169db8ebf3185bf3e25846ad8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/893/202405081702_1715158824845_H169_1080.jpg" group-title="央视", 发现之旅
https://mgtv.ottiptv.cc/mg/624878970.m3u8?token=34a14472045f9b8abb52f7fb79d3552782ae22388f6832d72b831936d5bac7378b7e43bdd7dffd48e5585d6be5dd7fc1f5fbb89f12f262da37e007b6ab5c84e6e275d6ce75fb6d2e824219264d&tm=1757387428&sign=60106078866481b14e4b4e6c949ddae3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/355/202405081702_1715158104256_H169_1080.jpg" group-title="央视", 中学生
https://mgtv.ottiptv.cc/mg/708869532.m3u8?token=4e7008fdcfd7199179a183b4bc60b98f771f772e7fcbc8597c18a71237b6200cadf11e44449392273728804176e3d5dfae36985b6c0e53522888d79c14a81c64ebd0f45eb5a4ca03457e5945db&tm=1757387428&sign=fe5342824393c70b85adcd736eff06a9
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/196/407/202204010052_1642124762081_H169_1080.jpg" group-title="央视", CGTN
https://mgtv.ottiptv.cc/mg/609017205.m3u8?token=70f84f00ed80d8b09557660c3c63d68d0453c75f2137351ed31ab355f46650b8b473c379aad9679ed0e994ca9fe2746f8b7f078e19c67975ff5e9b64351ca387aa2ddb55b1dc22ed2414f2d0e3&tm=1757387428&sign=70adde971db92e03e4bfd4064f58a688
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/185/202508040856_5100043384_H169_1080.jpg" group-title="卫视", 东方卫视
https://mgtv.ottiptv.cc/mg/651632648.m3u8?token=776b8048f4bc8d513ab3ea0df3e59c585a3d11e2da00b6c956d09ca4a7283393ff6e1fa169c8d229729ee5f394f0d9625c7ad18933383d6ec04e405a69d5b249c8ffc844644bc54d649917148d&tm=1757387428&sign=25dd6191b2e0068705c5e7bfb4dbb000
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/199/408/202104022140_5100156802_H169_1080.jpg" group-title="卫视", 江苏卫视
https://mgtv.ottiptv.cc/mg/623899368.m3u8?token=4443ac772119e3e875936d83d5e9a6d8b74ba8344fe3dc5be342709bdc778a1dbd3311408a92c569c2ae3f21503a27ec30518f5bce205a735b6e890e9b7d80750bf4198aee1812d071d3af5357&tm=1757387428&sign=be62ff9aa32b0a11ec19a7e15c8d5fbe
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/428/795/202107191524_2202428795_H169_1080.jpg" group-title="卫视", 广东卫视
https://mgtv.ottiptv.cc/mg/608831231.m3u8?token=bb3cb427f3f279e54e1ba53ba9cc467066329cebfd3f611cd024f214d5b0897d26f8439fc4e52a2d82dd7ed9e42cef243ffdc90b277e0cc03a1469afa27447a5657312dc40eaca47e4fbc36eed&tm=1757387428&sign=b275b8e30dc5da9d45cb06c6bf7e439c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/492/202303201551_1658134112236_H169_1080.jpg" group-title="卫视", 江西卫视
https://mgtv.ottiptv.cc/mg/783847495.m3u8?token=4303b002a5522c1b5a352769e9533620bd6ec76f6c6c0086f7827c13666aa358ad0233710fb2e1ae818beae9a8e9207ccdeccbc3ba33b6f8011fed00eba0859e2b564f11cacdfbb93612e9ea85&tm=1757387428&sign=dbb6e56362eae8782784542ace8c5d7e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/585/202304031400_1679994685582_H169_1080.jpg" group-title="卫视", 河南卫视
https://mgtv.ottiptv.cc/mg/790187291.m3u8?token=d6816f3decc685832bea8e09db0613060a89a851735e009e2baf75da1e831d49c36ad2786adc46c0ba45cc3fb39f01dad804222c726ac2e562462a711c715a0a0df69b542e7504d990defe1824&tm=1757387428&sign=8e15d19b97dab281d948ad925ccd77d2
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/020/475/202207191732_1658131375175_H169_1080.jpg" group-title="卫视", 陕西卫视
https://mgtv.ottiptv.cc/mg/738910838.m3u8?token=7aee8e09b304a4c3ff785d09530dfff725f4443f34798b61ed3dbe7f386b62ead48c2fccda5e45cffd25745758813327619ce0abaff3ecae9e29c565f1c1ce503293fef5696c37e129bce83b65&tm=1757387428&sign=2844652bbe341e52b5b77c7dfe312327
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/322/852/202304081513_1677570732561_H169_1080.jpg" group-title="卫视", 大湾区卫视
https://mgtv.ottiptv.cc/mg/608917627.m3u8?token=3a813443ba986bfde96ff2644a1fe74e75fc69a772073d48654a0439d1a49b73887caaab9d28cc2ae8864f37ac8b3766dacf02dfbaebc1ab7d2c2e151594f2ffd4d19260c270c8ad1e2db5ef26&tm=1757387428&sign=c4877d73ebda26334e8dd7cac6b9d49d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/163/202501231715_1658138621263_H169_1080.jpg" group-title="卫视", 湖北卫视
https://mgtv.ottiptv.cc/mg/947472496.m3u8?token=e5a0b28e8ae82ad7b9381cefef3a9eeb629d5e452c2dc04ada0083a25525da8d6ae2615dc16cb283b2a4c47e76684dbbf06e9c08e50df6644e468dd757b9fa97fc340e13578f15a444d79895f9&tm=1757387428&sign=856798395c984a5627b9d46e6ee51940
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/164/202501231715_1658138745288_H169_1080.jpg" group-title="卫视", 吉林卫视
https://mgtv.ottiptv.cc/mg/947472500.m3u8?token=176717400bf21181717e254c66e6c126a79691d0a41dd7baf569ff92a0d91e6b2f345c54e0222f1557ff297997d7b80b42112cb2a27d6c0c7a6293316aeff4e90431965293ab0c0f07a5ebce48&tm=1757387428&sign=29112399d4c94b1b73e936713bd1ac76
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/166/202501231715_1658138568499_H169_1080.jpg" group-title="卫视", 青海卫视
https://mgtv.ottiptv.cc/mg/947472506.m3u8?token=279ac63bad56939adeca1a8e429ca2e1b2612bd6b4bc770210b49c9db6aea5ec2b74ec4960cc69f8f62ba44e60951a05299c76483ee338cac54a582d4ecb574fd669f40c3c38525f913eda1bf1&tm=1757387428&sign=b00edce4c5ea5cf69c64426720a80868
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/182/202507151427_1744624877831_H169_1080.jpg" group-title="卫视", 东南卫视
https://mgtv.ottiptv.cc/mg/849116810.m3u8?token=a643ff23af93f589560ac459f25c6195eeaea3afd743d1544a33db6953509bcdf2eab8de77b42c65fca34f59c600d0b4b36a103393a5b0d10b77ccee85b3157687bef690b25961fd700d4f56d2&tm=1757387428&sign=14ee721d31c97ab861423edd42edf6d9
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/165/202501231715_1658138887282_H169_1080.jpg" group-title="卫视", 海南卫视
https://mgtv.ottiptv.cc/mg/947472502.m3u8?token=fa6b867c9d3bbe7ddcb8b148eee510b620bb98cc174d5020f4440865dc01f30aa058d88d56e29882e91f66d4974ff231a50f5455a2660540a5b85868e4580559d3b70a84b0f83cf02b15ea4793&tm=1757387428&sign=ac026c3b287e05f7969b64e06f06693e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/183/202507151427_1690875414853_H169_1080.jpg" group-title="卫视", 海峡卫视
https://mgtv.ottiptv.cc/mg/849119120.m3u8?token=c5b8d026a82c573227d85f4701b8b972f32c8a16a4d0f9605d398bdbe0fe14d0fec2c8e67e43f66c3f3142485447d4a48110149f069e310a5fef1f84daa124cefec325a6dfaa4d11b80f2a3a8b&tm=1757387428&sign=0718af87d2bb52db08b1ca3a3b47e572
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/186/202508051621_1754370268870_H169_1080.jpg" group-title="卫视", 中国农林卫视
https://mgtv.ottiptv.cc/mg/956904896.m3u8?token=6d9685690242d4943db3d0cbcba0d9cafbc4fed3a7970e2f9956c3fec0c12bc17614e2cfd534b36022e7b3615740f0d617633cc7fd9e921058225396896eddea80cd551940a235b70d0a91d551&tm=1757387428&sign=234bac315e947dffbadcab1c1eed2aa7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/192/202508061552_1754385897430_H169_1080.jpg" group-title="卫视", 兵团卫视
https://mgtv.ottiptv.cc/mg/956923145.m3u8?token=bab0b35b322385924a6a6da944fa42ee3987558d200c9fc62bd5726f5dfc76279f1b5c5ed7d19f29d3e3066165422c9bb7782b6b8a0672ebd2babfc38759243ba2b33ff59877790fe1e8050f59&tm=1757387428&sign=2e9b0ad3257166c2fbb35db7aa2609db
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/002/275/202107191641_5100001716_H169_1080.jpg" group-title="地方", 上海新闻综合
https://mgtv.ottiptv.cc/mg/651632657.m3u8?token=a475dd15ae83ef12fbbc639e381cb6fd71f0798d0d364a5af75755bc1b74d8a6c33a5de1527a2cde23566b3786b0493d6d8ec3ee5d0246dce942b5c54a0487235fc299ee8c0aed4140fa037836&tm=1757387428&sign=b6751eae3fe75172ddb4a9cb3c9c386c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/002/274/202105271333_5100001715_2_HSJ720H.jpg" group-title="地方", 上视东方影视
https://mgtv.ottiptv.cc/mg/617290047.m3u8?token=4c59ee5355269d5c5b344beebee5f2243e6f97e3a8ac49d24179ac7ad61aabe4d429830ea44589a452b9337ef0ca37143ff25c0362424a6e052d819f5aa7f7b605dbc57aff03b9381468b7c467&tm=1757387428&sign=f4b6aa3dcceb104ad8de82f28ad3f170
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2201/008/312/202209271630_2201008312_H169_1080.jpg" group-title="地方", 上海第一财经
https://mgtv.ottiptv.cc/mg/608780988.m3u8?token=0981447956485a7d88f4b8d9655eca5e61bc2d91b1cd3a008789aeacbf227b20e6116cf78096b61b53863cbc8c46a5e64ab9037625f393e0c14efb021445da7dc6f53a92f1a035aa4f5edcaf40&tm=1757387428&sign=dea3debc3c3da85fa6d3596b579b37ab
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/863/202307121521_1689144286039_H169_1080.jpg" group-title="地方", 南京新闻综合频道
https://mgtv.ottiptv.cc/mg/838109047.m3u8?token=695409bc4bbc0fac9c2e93fafb10358e8807f71d510876460167890d6517fbef025504e5353df8b8f2cbbc1a5e865926c76797c0b143296a230d6a28b951cc9765e8440f2025e50f4ad2f79d40&tm=1757387428&sign=7e58109b5457fe8f325c1ea8a45492a8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/865/202307121700_1689146721503_H169_1080.jpg" group-title="地方", 南京教科频道
https://mgtv.ottiptv.cc/mg/838153729.m3u8?token=5f55a257f2c595ac2fe012213fad6372efed0595ed4c58994b580a432db06caffb93b3fccc0e8eafb742b33165790262b954a4284e566b62d13c0e1687e43b4e406265f15e651f3461ba2ba9b0&tm=1757387428&sign=6dd66e8dd8d0789f676652fa6ab6c009
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/864/202307121658_1689146982273_H169_1080.jpg" group-title="地方", 南京十八频道
https://mgtv.ottiptv.cc/mg/838151753.m3u8?token=ab9fbf627f52d77ae7c57d30c55e8b11b6067e5d549666146342ba40e99f7f7f5fa85e322b39913b8941da9258c812b4cd820760cf56c633bc3139d7905b9e158d2d685dec66fe3018fc73a744&tm=1757387428&sign=8c17fe6433aa77df97551616e546c834
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/554/202104022139_5100186459_H169_1080.jpg" group-title="地方", 体育休闲频道
https://mgtv.ottiptv.cc/mg/626064707.m3u8?token=14c0a131c96cc2085d99ee13d16115ab1be368144caa598a820d55aa92ab5e8bb56b78a878657944e61a9810a967b8a150965d92bed94b43f66a6d9709fdcb4c13128e2fab51e99a9f5b5f138c&tm=1757387428&sign=4176ea8f00af1ce39ae39c90f0d14879
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/508/202104022138_5100186409_H169_1080.jpg" group-title="地方", 江苏城市频道
https://mgtv.ottiptv.cc/mg/626064714.m3u8?token=f0ecc5c1e25dbe4dc8283ae22bf03aed6cf12384fc5c2dc446b7aa7cf667331929e5f881ebd35db33c802f48cfbf567d417d669db130a62a0cec7f53164a3818fb3996cd882254d7e4a4940f7d&tm=1757387428&sign=c4711cdbde337c90246aaf6ad0668a80
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/577/202104022139_5100186482_HSJ720H.jpg" group-title="地方", 江苏国际
https://mgtv.ottiptv.cc/mg/626064674.m3u8?token=5d6f29e45f25ca1659aa5db7bbd54dd3a89c31a4e52aed55b40ad8ba882f0a65437abb9574653c6f1b1a36697ebcae604d9cc3e9a66847cb88b646fab8ac417daac705ac778dfb3c00e888704e&tm=1757387428&sign=e6dfc46c76a0fd4d97a16488ff515c91
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/287/493/202104022139_5101012819_HSJ720H.jpg" group-title="地方", 江苏教育
https://mgtv.ottiptv.cc/mg/628008321.m3u8?token=8def702e0b9d4f34ca237bce0b10b3b501f7c2730386b879bba5aba216a8148069797ae341800abbafe0ba03170c5e544944f1433cace4129ac4314c693a1e8ad6c2379d0496640b95699f70b2&tm=1757387428&sign=2f4bf5cd458d5e3009a32f4569ad7082
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/517/202104022138_5100186424_H169_1080.jpg" group-title="地方", 江苏影视频道
https://mgtv.ottiptv.cc/mg/626064697.m3u8?token=abe0976af290a83c6d6288ce5e7fb43c072de6aeb2f415380e61626f30f45bf20c720c629d9b5d2517264ac9f69393aebdcab62cd47e2e35eebbc23a16b0fbef653310a19ce9778f2a1b95c2cb&tm=1757387428&sign=55215cf5b5551ef58310d20274127039
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/513/202104022039_5100186420_H169_1080.jpg" group-title="地方", 江苏综艺频道
https://mgtv.ottiptv.cc/mg/626065193.m3u8?token=6ab8934889852b36080355ee194f1cc9d02d2b4530411f26e04322963768aaccd92624ed69078cc04db5c7d8ab535cde4c6cb7cb09a9943b924400d81ffb6b79a54f64cd40a80cd940295b569b&tm=1757387428&sign=3b907e0ed6354e53497c7b2772816c16
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/520/202104022138_5100186429_H169_1080.jpg" group-title="地方", 公共新闻频道
https://mgtv.ottiptv.cc/mg/626064693.m3u8?token=2fc85bd6f155104984791d735c42aec706ccd06dea49076ba86345a82c02e53b72ff3d432c81a810123766785fcc29206c403fe029c0be2f0b3022a0cfe6352a007523e11227bc7c1d8b4ed9e2&tm=1757387428&sign=f0bf1a3d09a4ed875fb1532e0e1b4111
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/360/202212301654_5102012617_H169_1080.jpg" group-title="地方", 盐城新闻综合
https://mgtv.ottiptv.cc/mg/639731825.m3u8?token=9012f76bbee138afe3c5f13f0e104918c7057307b2068e28fd77f4c71164a05fa1dd42ef94bfe52fbe8d7548bb4fca92ffcacb767d69b915104ab1f8c800acceec2490f4e6d72abbd175c036a9&tm=1757387428&sign=b2a22122198505353794a9b0246d6356
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/363/202104022141_5102012618_H169_1080.jpg" group-title="地方", 淮安新闻综合
https://mgtv.ottiptv.cc/mg/639731826.m3u8?token=853bb6a3eab0edc2721bea3fa75794ec7be1c245ae31339c2a9810ab02e7f0275dc777b0012e65cb4a8c0d1709bebd03d35b215deac7328910c0fd664bf0473f7e76e40d22ec73a4078a586009&tm=1757387428&sign=3b59dedf324e87559999a24375001b1c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/354/202104071213_5102012615_H169_1080.jpg" group-title="地方", 泰州新闻综合
https://mgtv.ottiptv.cc/mg/639731818.m3u8?token=a2f1046c25e8e0a2250d88fbcd6cd3a07f9549ca955febaff03ebb69a8c08ad7aa768351df7b6ef7e0b01b613cb064c38e44dd4ef2aac65d6e59e0c5d4f412ed1efa1ddc08f0ef871f76bd263f&tm=1757387428&sign=0a51043cff55ff6caae98256f31bf659
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/369/202104022140_5102012621_H169_1080.jpg" group-title="地方", 连云港新闻综合
https://mgtv.ottiptv.cc/mg/639731715.m3u8?token=c0114fd9c6cdabde9c35b55a0ba1c18b2f227c692b6703a13cd7b7f1fe1f4c42aa58de5af202854b465072a513feaf8d25f6ed79a3fbbd96488c5a8dd23ab49b1862bb981894b87b0afb7226c3&tm=1757387428&sign=cf279f98846cb2f3d1d5557c58d5de46
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/357/202104022141_5102012616_H169_1080.jpg" group-title="地方", 宿迁新闻综合
https://mgtv.ottiptv.cc/mg/639731832.m3u8?token=ce10bb0a7b67d27d32959436d7fa319e1b67b20a82189e2215f50b585e461a62ae3ccc3705e3b944877b1f8b60e3426accd6700785992cd870ee0b30313f0a833eed8bae27daf5a7c8e237cfeb&tm=1757387428&sign=f3904f643c7a11adb74a00659e8713b8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/368/202104022141_5102012620_H169_1080.jpg" group-title="地方", 徐州新闻综合
https://mgtv.ottiptv.cc/mg/639731747.m3u8?token=7505c43e75b03ab512822c62ae667e6fabc75d21a1476c7f115aac8c92fba7bdbe8e6a8a1dee0e2fe65501440a4089e7d6685a3d96ee3de722c0d1568d7a78c7b14163dcd8b76bfcad4afd8c15&tm=1757387428&sign=a9fd5a209acfcfe09473bbd8109aa2b5
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/553/202104022139_5100186455_H169_1080.jpg" group-title="地方", 优漫卡通频道
https://mgtv.ottiptv.cc/mg/626064703.m3u8?token=8941573e2f1c8eec02af4fb007fd21d3727b067c0eb3071bb5ad96f59d39f3295743c9d44a45285d3f824d77134640b2e532cb50a64af65d8f8ca236485dd9c87dac8b2aef9858ecdb6a1e5013&tm=1757387428&sign=4a5c97a5d5e2b60142a97c5bcce2d625
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/177/202506121842_1749616924879_H169_1080.jpg" group-title="地方", 江阴新闻综合
https://mgtv.ottiptv.cc/mg/955227979.m3u8?token=04749738c255c393e5e1d47d136c79409a02ed19edc6c49063d1e2e548b837cfcc404bb59f20843685e128d452e7136f471b2d816bc3bda0028a266a1e31660b0612abea8e47bab923b13724f1&tm=1757387428&sign=22ab7b54b6a6b464d9fd59c7ecdd1380
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/178/202506121842_1749617021865_H169_1080.jpg" group-title="地方", 南通新闻综合
https://mgtv.ottiptv.cc/mg/955227985.m3u8?token=a528b3e93981e9437b87b484a78b779e686054b6d2a436d071713f45207c26622d86eb017d7c5f636891fafe862fa90fbad2bdda30a7e437ac5ef8889b7a8e7d107f80e7c0257845de86f53af7&tm=1757387428&sign=7d9c602549c2f1101540f97d2d6eda19
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/179/202506121843_1749617115515_H169_1080.jpg" group-title="地方", 宜兴新闻综合
https://mgtv.ottiptv.cc/mg/955227996.m3u8?token=b09930f14ead7dda19fd2f5c3fe5fad6007c1632b1cdbaa428e340e213cd7b74e06a4316178437292e89c3fa3919fe2099e0f087b63fe15cac9466de6b5d81a2175584b6bfea4cff5ab9441a4f&tm=1757387428&sign=8b0f1136f57f41f72db9b14317d63093
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/349/202506201638_1750408508110_H169_1080.jpg" group-title="地方", 溧水新闻综合
https://mgtv.ottiptv.cc/mg/639737327.m3u8?token=9424dbe458645bdb46386f7b792bf45cd30746b46715d0c4c24b3ce14abac0b9ba31b818a1f34ae5484eb79dd60ee63004ee3adc03ea9fac82808ea2a49b9e324c65b73153c57f5e5fda36f8ac&tm=1757387428&sign=fa2e654a35ac22bed566df03ee34529d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/191/202508051746_1754371391139_H169_1080.jpg" group-title="地方", 陕西银龄频道
https://mgtv.ottiptv.cc/mg/956909362.m3u8?token=daa212abbf640091e555c0ddbbadf6e26179d2e38b6e044919fb6d539062cbee5da7771cddb49aca190d6a5161b30973c7a2e7eeb04b2a73e884956119fa7cad3414069dc784ad58775b3de6eb&tm=1757387428&sign=acf362ec6da50f079a08e60137d06d9b
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/190/202508051746_1754371281201_H169_1080.jpg" group-title="地方", 陕西都市青春频道
https://mgtv.ottiptv.cc/mg/956909358.m3u8?token=486dac0586da55668eed086a3f0f5e59a67369275f67a46f3ab1591a0e2f799ddb3c940dc2bf2cacf5fb2803ab9fb2a75d67d406dfa43fda543e76bc3a8780a81dbbb24b08b8cd51aa1d5fc4d4&tm=1757387428&sign=f7a786c698978984e311e64045d0674e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/189/202508051745_1754370651700_H169_1080.jpg" group-title="地方", 陕西体育休闲频道
https://mgtv.ottiptv.cc/mg/956909356.m3u8?token=279180be65982efede037f36709259a22429c72b8a4632131ff805496f288f2447d6f75a220bdc286f3e78aac83d54d31c61e8f48459bfd6c1a035ceaf8d830088ba3653daab726b8a063343ca&tm=1757387428&sign=a13de8d3a08441f9f8a702199762d73b
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/188/202508051741_1754370551778_H169_1080.jpg" group-title="地方", 陕西秦腔频道
https://mgtv.ottiptv.cc/mg/956909303.m3u8?token=26e9b1bf33ddcc5ac1489d0cf795c8229ec8e1db3fa52b5b87f271f923b33ee0ed543ee47c73f273b0cbcac3d86b187f98d84e2e9e34683e475349aacd1b3ac895580ba3ef7e5d29a3bf438e23&tm=1757387428&sign=f72c46547d44fd5bd2102bd772d02a2e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/187/202508051740_1754370413748_H169_1080.jpg" group-title="地方", 陕西新闻资讯频道
https://mgtv.ottiptv.cc/mg/956909289.m3u8?token=a58e17f812a32f741952e64b58cab754a509108091afefa9abb6f1169d6f41a59394e0d4ca26ec562ba6c01ee381ff351b963486e204e750a719d5d0927ae014e168d0b4bf003f7a9903515fd7&tm=1757387428&sign=ed4b9aaf36f6be87d1b549dfb198b11e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/193/202508061552_1754385775557_H169_1080.jpg" group-title="地方", 财富天下
https://mgtv.ottiptv.cc/mg/956923159.m3u8?token=3f780a7e5f2e5423bdbce85091f12c5812ee6fbe5a42706753b4e18827f238aaaf94e73f3523463324b27878d9088283c2a7e4d9293783792246327a569e19d85115b8a67e857b7973934ba4e6&tm=1757387428&sign=1fb9abcb3ea4958e17d7d807f20c06d2
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/242/089/202508211805_1755769495190_H169_1080.jpg" group-title="影视", 经典香港电影
https://mgtv.ottiptv.cc/mg/625703337.m3u8?token=988ec3586caef422e0f3636ea83c43c673ca0daf84ea98904f2a5a0a8fd09410e127ae5376f5242585f9c1442fe85da484689f6f306736956009901ccfbba46f56a7554515d0858b0d5ce1091e&tm=1757387428&sign=ddb47c4ac6599f9959c56b9325ed30b0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/230/666/202507181733_1752831177769_H169_1080.jpg" group-title="影视", 高能悬疑 推理时刻
https://mgtv.ottiptv.cc/mg/625133682.m3u8?token=d16961422e244bf50d9101675c05a56e893fef8a2804d2938403d2869135a5d31d65b7e1895c9b46aeaa589a1d4cb1ad1b0d59fa25f23deb26dda6e2f65edd3621b7fbd57b23f5bb5c643a4da5&tm=1757387428&sign=6ca5b625f9395b79c698ef90fefa8e47
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/002/717/202507241513_1753340542329_H169_1080.jpg" group-title="影视", 抗战经典影片
https://mgtv.ottiptv.cc/mg/617432318.m3u8?token=a47734525ad2c586bfe0e30d23f436080387eeddf3827c9a1991dad28ae9255d186a26934e5482806632b660316c13e774d48d5d40a41cf19ed31a3fa33a3b3f562d15bdcd3f018df14e660390&tm=1757387428&sign=e4359a2efbfa7dee9f711dfbc55bbfc7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/035/175/202405061742_1714988181593_H169_1080.jpg" group-title="影视", 新片放映厅
https://mgtv.ottiptv.cc/mg/619495952.m3u8?token=266b6665b29682c0e9c987240845414eea3d61bcf94816f28513bfb2fb64a298a4bd96420b792adbdbbed816a170d3898f207f0057bb85ff409849e24c33684e45f0e96fe9ab7c4f3577826927&tm=1757387428&sign=7c632030d2382fc598f54273aadd0d1a
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/176/202504161629_1744788994468_H169_1080.jpg" group-title="影视", CHC影迷电影
https://mgtv.ottiptv.cc/mg/952383261.m3u8?token=fb19307c2f7c9e824061cfc7dc7ea4e3f149c1876b0d4e626aa7b3a0c8695de7e688e5f116b1cb0f92db2bc006b37a351f43d0066079a4f35b7351dd0173143c092358a3c8f8c85a0bb0aa40bd&tm=1757387428&sign=e69a7e86ec1783ac6d2539a349029300
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/554/795/202308221159_1692676692674_H169_1080.jpg" group-title="影视", CHC动作电影
https://mgtv.ottiptv.cc/mg/644368714.m3u8?token=ed28c3e0fb0d180e7f82122e4340dd05d976fd2bb07716b1b0e0f08ce063766b5bdd88d6e97905d25bb4655537b52b93fc00fc9e72ab5de3470d2c56caa077ceaaf7b41c304b2543f3863c7cf3&tm=1757387428&sign=1142ec7e336c179cdd541363afa3a78b
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/554/911/202308221200_1692676825616_H169_1080.jpg" group-title="影视", CHC家庭影院
https://mgtv.ottiptv.cc/mg/644368373.m3u8?token=b263c5d154508a1d5a5c41c3b8c5df1afbb832187befe527e8244af332655184ec0f6f788fc7bd252dbb7426aadb0a595de617079f3a22d82a273bb4c7be1f2c7fcda3566925858e6812d26778&tm=1757387428&sign=1e05f6607dc64105b2654b9944dd8b97
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/525/202504151721_1744708803016_H169_1080.jpg" group-title="影视", 和美乡途轮播台
https://mgtv.ottiptv.cc/mg/713591450.m3u8?token=9c25bd89d7a14adaadc8afca14cc578fbad402845bb6d32d7c211978f20abe2466ec80b91433be64d781d2ebdbf45306a1082a61a7944e502a73b01dc63e29814c8c967c19c5325de4f6c39bd1&tm=1757387428&sign=5820b959bbc545b0295a48604e744e7a
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2206/173/738/202304081513_2206173738_HSJ720H.jpg" group-title="影视", 南方影视
https://mgtv.ottiptv.cc/mg/614961829.m3u8?token=1ede98960967527f96cf63eace374b90fae8ff7dc1bfec7842ccd7e4da720c0eb8fcc2f8e2d5dde4c15a2b133f19776b227db03c9f124b4ee63453e29ecd74ae92d5cccfd4601ce5dd8a3939b9&tm=1757387428&sign=f71e5ed51dfe22d9d1f416e1c36d857e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/527/202506181115_1750216473927_H169_1080.jpg" group-title="影视", 血色山河·抗日战争影像志
https://mgtv.ottiptv.cc/mg/713600957.m3u8?token=c95d0e5c494b0f0248d3e524e22cea1cdfe0e2b9e5603271f00627e3d1eda3e97bf22e351a30a8b60c94dbd1feb1a2ad9d52bcf4a119b549c3f307787c2fa45eb03da251250b33e96945793a3e&tm=1757387428&sign=53611c233a2afb1e41267e34e7abff29
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/634/723/202206081044_1654656251447_H169_1080.jpg" group-title="熊猫", 熊猫频道01高清
https://mgtv.ottiptv.cc/mg/609158151.m3u8?token=5dbca7fc9fcf8335ca5ecaf937ad986d40348fca130703b6946ae1d04ded643322f0b4fba8e0bd195d3490c27d23bfd77a2320946ac25a9aacc84a2a4ea0589d982e8d529a5c3e64da01000a7f&tm=1757387428&sign=aed4168be7f40af190ca739628b1eaf3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/699/202209211759_2200200699_H169_1080.jpg" group-title="熊猫", 熊猫频道1
https://mgtv.ottiptv.cc/mg/608933610.m3u8?token=84d56b9f8712f3a04a49b6ba4a17948ac59253400ecebce95ebbe987c5da689494da87e23d760ef3d0324a7063fb11e4f6c3c956c6b1de7f2e6ca4787f0a0b76c9cf1dc2ff47af523a100ca616&tm=1757387428&sign=6aa2f1a41902d0a0ddbe65d19d6d9fb1
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/717/202209211759_2200200717_H169_1080.jpg" group-title="熊猫", 熊猫频道2
https://mgtv.ottiptv.cc/mg/608933640.m3u8?token=b48def16d76d031a3fd87f24266f2f3ddfb8dfb48e1b735442a5bbab639e07485f9ecb5904038295fda8830366e36eb58ac7d0577c37dada40ad9dacc4cd49f9a739f61a46d7e8d85dbbe3e088&tm=1757387428&sign=862248f7e88311454d9668b9869faf8c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/738/202209211759_2200200738_H169_1080.jpg" group-title="熊猫", 熊猫频道3
https://mgtv.ottiptv.cc/mg/608934619.m3u8?token=b40193f531c02e96354670c8a705e8767858dabfe034866ccd203055f1a7ae4f1a5af3318c70ca56e1d200e241cdb3fba5035cdc6666ff18a83b8a88a607e8b5c0e974d275189d94f2b8099c7b&tm=1757387428&sign=d1c0d315f16caab4c1d02b87d3ba00ba
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/771/202209211800_2200200771_H169_1080.jpg" group-title="熊猫", 熊猫频道4
https://mgtv.ottiptv.cc/mg/608934721.m3u8?token=2e56c74f66d8dcbb593192ba9caee85f41fd95ba2058821ca743a78e86808a90b8213dd8339d8e80310632dc8dccc03a49b30a351c47a703f6804291ecef9f2c671b691475f700d0b6d1a03b36&tm=1757387428&sign=0ebe1af3601ee4004e87049d763a7349
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/791/202209211800_2200200791_H169_1080.jpg" group-title="熊猫", 熊猫频道5
https://mgtv.ottiptv.cc/mg/608935104.m3u8?token=2b4b3d8c49a19f11a360959eb85f2cdc52aaa53abce4a667785d2e532034cdbb202c1ee566e972279e186c505697c2fcd5cb06b0d7f52a1ef6daf1f7347364e622ae2c0d39cae225e8ba62a73f&tm=1757387428&sign=4626db88676612e7b5731eac4acdeda0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/817/202209211800_2200200817_H169_1080.jpg" group-title="熊猫", 熊猫频道6
https://mgtv.ottiptv.cc/mg/608935797.m3u8?token=0abb5cb5cf3ec1466127e83fdcc078f5ad1b101879ddec415b8422c3358ac5745a4d9937a2941810bdbd8770c97763adb0acd70858079a97c2b0c588ec44143c1c91918a912134a36b9509e2ed&tm=1757387428&sign=8865e1faa8908906b934a0c92fdfc7be
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/831/202209211800_2200192831_H169_1080.jpg" group-title="熊猫", 熊猫频道7
https://mgtv.ottiptv.cc/mg/609169286.m3u8?token=78be3d1d65da3cee7d312896b2b2ec4c317441d6a2c3b7284f6280b25eccb3f12bc1657ae45e5026127ebdbdc30fdcff397272ca66e9951112e35b0b577c369f304ec54422dece456eed9c00cf&tm=1757387428&sign=2c6d3826f55d505a22eb2022d7af5a74
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/881/202209211800_2200192881_H169_1080.jpg" group-title="熊猫", 熊猫频道8
https://mgtv.ottiptv.cc/mg/609169287.m3u8?token=a14a8e0c4da92f6e3bbd4bb690676f62ec8e27b3d2976a7ab2ed55914e049b663d8378c24c33bffeced32b3a8d4a8293537a3e99c456705ce2d357c9578d6112714004a13021d0d468d9d01bee&tm=1757387428&sign=0eca142bb4fd89d64e27f3c3b499aa97
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/899/202209211800_2200192899_H169_1080.jpg" group-title="熊猫", 熊猫频道9
https://mgtv.ottiptv.cc/mg/609169226.m3u8?token=d11209c6600f0fc3da949441af551b201140ab82c94170d27b8ba4581afb5e0185f09360e1f33b49f691b6975c32d65dc0fcef3cbba620c55f25df378220aa0420e0c227e70b04bb05e58e3008&tm=1757387428&sign=76d48d0fd35731321247b6ab32afa321
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/937/202209211800_2200192937_H169_1080.jpg" group-title="熊猫", 熊猫频道10
https://mgtv.ottiptv.cc/mg/609169285.m3u8?token=6c60d7a0716483350c9753730f7d40dc7fe6be51fd46e2c0e435b8ab5a4e702ed3b08278b0a4391c45926d897f18cfb5c58cd9f30397ab9a068d2705f7555215ec2de32771a82cb23a8aa14141&tm=1757387428&sign=e3610d9fc2fc1f3bd211205a8ea199b5
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2206/172/388/202304101530_2206172388_H169_1080.jpg" group-title="少儿", 嘉佳卡通
https://mgtv.ottiptv.cc/mg/614952364.m3u8?token=f3b3db6218bf4884081799c401b699848ba2324d37ed1fbdfb07beaaf0300e609d5c0c4a9da0f50fb86a0c6eaddb2943653821695505c2c54eff6f44989d7f57353577a811c5aff092a7847e9b&tm=1757387428&sign=2503a188ca500a4f85ee2a20a0fb7d7c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/523/202506060000_1749138932995_H169_1080.jpg" group-title="纪实", 新动力量创一流
https://mgtv.ottiptv.cc/mg/713589837.m3u8?token=5e69a21ae1e906905d618f4f5f9749ba54a4c459beb813bbe012ec2473836abf230fd732c07d0e12c87358581b992fce9d1b73b4debfcd9a77a6e6a40e831ee2d4e6a59a5435f2600c4fbfd5e3&tm=1757387428&sign=c6a66e24333b16a0b3a5138ce3762592
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/613/479/202210281603_5102115888_HSJ720H.jpg" group-title="印象天下", 钱塘江
https://mgtv.ottiptv.cc/mg/647370520.m3u8?token=f618f44696611490d7134444870f81d4d78e4d8e9bd2ca5e5a762374e1a31836fbdbac6ab5df26d0b333135ef4f8cde0e8d716fdb789fad8e9ee47122f2cd5b9b071b4de832d2e2086db9a246c&tm=1757387428&sign=266400ab4b0c4cd9b60c0a9ae5819c87
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/462/658/202506201045_1750387453057_H169_1080.jpg" group-title="体育", 五环传奇
https://mgtv.ottiptv.cc/mg/707671890.m3u8?token=fe59eb72ba9e06eef13dadca0acf81d4717baec4b997ed64be8123d2279160469893a58896f432e66de3ce6424112a142dc9c4776467b57d1e11c8232ba98cc257a6b3116c1dfe55a550881cb8&tm=1757387428&sign=7dd31f7408bb300e6d2f2bd49361cc51
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/341/085/202308221004_1692669748086_H169_1080.jpg" group-title="体育", 掼蛋精英赛
https://mgtv.ottiptv.cc/mg/631354620.m3u8?token=eac8abc04bbec022cea378748157804fb94bc795b68c9445d4bca6d42ad3c8591b7e678ce20005f0107401e8f5856c2b52d4e44933e94f6e90dc6336568f71c59a3166fe309ac9fec27707ef72&tm=1757387428&sign=cd1383d4de1e46e0c025fb3a2308aefc
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/184/202508040856_5100132656_H169_1080.jpg" group-title="体育", 四海钓鱼
https://mgtv.ottiptv.cc/mg/637444975.m3u8?token=c1f0f79b4fc98cd4388973a7a985a381fda972f15f3a5c1910de15f4635811e3300befc701680f2099217a7f3ef68f133bc87ca23995fb3a79738abc8e35d3085f8cca72213315bce0edb80704&tm=1757387428&sign=71575a305b0f8395537a99967eaedaa4
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/751/211/202106111236_5102223687_201903181136295010914_HSJ720H.jpg" group-title="体育", 咪咕24小时体育台
https://mgtv.ottiptv.cc/mg/654102378.m3u8?token=1684d0e2fd92ea70ee26bb84384b682a661192bfed7508b1bc609fbeb3917ca875ccc24357e45ab3f9248704b202d936f59fb46a3b8903727df99792f83a2b1f387aaeb16273eb85f172d846ad&tm=1757387428&sign=590055f35fcd5400d9d109aa35343c38
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/150/202407181432_1721283643483_H169_1080.jpg" group-title="教育", CETV1
https://mgtv.ottiptv.cc/mg/923287154.m3u8?token=b6cfeb92a88f3b5959b00f561ab644a953f02f0f6988d2a8ff709fa3f09d6ac0aed5a1fcedf5252eea9ff3570949c36367cf1300cc16b9ccf5e15751c2060c9835ea276fb417b503556f6eeffd&tm=1757387429&sign=37ec95a242e986d6f7ed7c9416eda29c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/152/202407181432_1721283773509_H169_1080.jpg" group-title="教育", CETV2
https://mgtv.ottiptv.cc/mg/923287211.m3u8?token=3153b8e52f5aa0d33cdf2d331f6b9d43ab75e82da01959aca0ed0e2993be8301514b119d80b03903c942515d4263cdfcc07e45d18e8bb2de16c5e7afb8ad9ebfc297a5cc16812773f6eeeffb65&tm=1757387429&sign=1bb7601be8d4429e2d4b9eee9b3c7501
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/154/202407181433_1721283860085_H169_1080.jpg" group-title="教育", CETV4
https://mgtv.ottiptv.cc/mg/923287339.m3u8?token=3994396348adab20efd64405ac49758a14080aa64792adf05d092bd70cb96f0de796bd4d6152e0487b2c45001ed424eb9bbf2a64152b091ced804ca666c7a30299db68c6804b9b62d25f26bd77&tm=1757387429&sign=a42adf2fa997cfec64bbb049faa4b35c
#EXTINF:-1,tvg-id="cctv16" tvg-name="cctv16" tvg-logo="https://11.112114.xyz/logo/cctv16.png" group-title="央视",cctv16-MCP
https://mursor.ottiptv.cc/mcp/cctv16.m3u8?tm=1757392777&sign=c4e59f2e010e07b48845e9f148b1c0bf
#EXTINF:-1,tvg-id="cctv16" tvg-name="cctv16" tvg-logo="https://11.112114.xyz/logo/cctv16.png" group-title="央视",cctv16-MST
https://mursor.ottiptv.cc/mst/cctv16-2.m3u8?tm=1757392777&sign=3ac7fa00e4714a2a1dc0e2cd2bb2c398
#EXTINF:-1,tvg-id="cctv4k" tvg-name="cctv4k" tvg-logo="https://11.112114.xyz/logo/cctv4k.png" group-title="央视",cctv4k-MCP
https://mursor.ottiptv.cc/mcp/cctv4k.m3u8?tm=1757392777&sign=f49064647c09d42e92cb8bfc14345bbb
#EXTINF:-1,tvg-id="cctv4k" tvg-name="cctv4k" tvg-logo="https://11.112114.xyz/logo/cctv4k.png" group-title="央视",cctv4k-MXW
https://mursor.ottiptv.cc/mxw/cctv4k-2.m3u8?tm=1757392777&sign=e8e0369871b184c665c6e58276deb823
#EXTINF:-1,tvg-id="cctv8k" tvg-name="cctv8k" tvg-logo="https://11.112114.xyz/logo/cctv8k.png" group-title="央视",cctv8k-MCP
https://mursor.ottiptv.cc/mcp/cctv8k.m3u8?tm=1757392777&sign=4dba17f50e2e2da7a67aab31ddf8e7af
#EXTINF:-1,tvg-id="第一剧场" tvg-name="第一剧场" tvg-logo="https://11.112114.xyz/logo/第一剧场.png" group-title="央视",第一剧场-MCP
https://mursor.ottiptv.cc/mcp/dyjc.m3u8?tm=1757392777&sign=a2bb96d2bd20623942eac02dc6f82e2e
#EXTINF:-1,tvg-id="cctv8k" tvg-name="风云剧场" tvg-logo="https://11.112114.xyz/logo/风云剧场.png" group-title="央视",风云剧场-MCP
https://mursor.ottiptv.cc/mcp/fyjc.m3u8?tm=1757392777&sign=2aa0e416414d819cdd310023d66af554
#EXTINF:-1,tvg-id="怀旧剧场" tvg-name="怀旧剧场" tvg-logo="https://11.112114.xyz/logo/怀旧剧场.png" group-title="央视",怀旧剧场-MCP
https://mursor.ottiptv.cc/mcp/hjjc.m3u8?tm=1757392777&sign=34962fc4a8ebca5e340ca4abc4e8df76
#EXTINF:-1,tvg-id="CGTNALBY" tvg-name="CGTNALBY" tvg-logo="https://11.112114.xyz/logo/CGTNALBY.png" group-title="央视",cgtnar-MCP
https://mursor.ottiptv.cc/mcp/cgtnar.m3u8?tm=1757392777&sign=63e4c7a876ec79b40e8cdb765fbdbfcd
#EXTINF:-1,tvg-id="cgtndocumentary" tvg-name="cgtndocumentary" tvg-logo="https://11.112114.xyz/logo/cgtndocumentary.png" group-title="央视",cgtndoc-MCP
https://mursor.ottiptv.cc/mcp/cgtndoc.m3u8?tm=1757392777&sign=4fbe2921483b7a90077ef11e221a2645
#EXTINF:-1,tvg-id="CGTNEN" tvg-name="CGTNEN" tvg-logo="https://11.112114.xyz/logo/CGTN.png" group-title="央视",cgtn-MCP
https://mursor.ottiptv.cc/mcp/cgtn.m3u8?tm=1757392777&sign=193dc0af616809052e4d6e365a24ee6c
#EXTINF:-1,tvg-id="cgtnfrench" tvg-name="cgtnfrench" tvg-logo="https://11.112114.xyz/logo/cgtnfrench.png" group-title="央视",cgtnfr-MCP
https://mursor.ottiptv.cc/mcp/cgtnfr.m3u8?tm=1757392777&sign=6751a935d62ddc4d47a407442ff953ee
#EXTINF:-1,tvg-id="cgtnru" tvg-name="cgtnru" tvg-logo="https://11.112114.xyz/logo/CGTN1.png" group-title="央视",cgtnru-MCP
https://mursor.ottiptv.cc/mcp/cgtnru.m3u8?tm=1757392777&sign=22396335d5d644d99f0eafcc0a768428
#EXTINF:-1,tvg-id="cgtnsp" tvg-name="cgtnsp" tvg-logo="https://11.112114.xyz/logo/CGTN1.png" group-title="央视",cgtnsp-MCP
https://mursor.ottiptv.cc/mcp/cgtnsp.m3u8?tm=1757392777&sign=c01aa8d7ffe3e9f0e9ac082a8d16eeef
#EXTINF:-1,tvg-id="中国教育1台" tvg-name="中国教育1台" tvg-logo="https://11.112114.xyz/logo/中国教育1台.png" group-title="其他",中国教育电视台-MCP
https://mursor.ottiptv.cc/mcp/cetv1.m3u8?tm=1757392777&sign=685faf8f75e7cd9d1fe1cb8eda00b1e1
#EXTINF:-1,tvg-id="北京卫视" tvg-name="北京卫视" tvg-logo="https://11.112114.xyz/logo/北京卫视.png" group-title="卫视",北京卫视-MCP
https://mursor.ottiptv.cc/mcp/beijing.m3u8?tm=1757392777&sign=7b46d61831412b1404e698226731d36c
#EXTINF:-1,tvg-id="湖南卫视" tvg-name="湖南卫视" tvg-logo="https://11.112114.xyz/logo/湖南卫视.png" group-title="卫视",湖南卫视-MCP
https://mursor.ottiptv.cc/mcp/hunan.m3u8?tm=1757392777&sign=f1cca3604bbbb48c7473dc3d879f87d2
#EXTINF:-1,tvg-id="江苏卫视" tvg-name="江苏卫视" tvg-logo="https://11.112114.xyz/logo/江苏卫视.png" group-title="卫视",江苏卫视-MCP
https://mursor.ottiptv.cc/mcp/jiangsu.m3u8?tm=1757392777&sign=78cead7d5411a918c97f1d657d7d223d
#EXTINF:-1,tvg-id="东方卫视" tvg-name="东方卫视" tvg-logo="https://11.112114.xyz/logo/东方卫视.png" group-title="卫视",东方卫视-MCP
https://mursor.ottiptv.cc/mcp/dongfang.m3u8?tm=1757392777&sign=d9ad38ab43b5f809b1ee2dad9c3a5ca6
#EXTINF:-1,tvg-id="浙江卫视" tvg-name="浙江卫视" tvg-logo="https://11.112114.xyz/logo/浙江卫视.png" group-title="卫视",浙江卫视-MCP
https://mursor.ottiptv.cc/mcp/zhejiang.m3u8?tm=1757392777&sign=38e209d3ebe34c669bb3b7fffa627e87
#EXTINF:-1,tvg-id="湖北卫视" tvg-name="湖北卫视" tvg-logo="https://11.112114.xyz/logo/湖北卫视.png" group-title="卫视",湖北卫视-MCP
https://mursor.ottiptv.cc/mcp/hubei.m3u8?tm=1757392777&sign=2766ec732ffbc031a93a458848fa72ea
#EXTINF:-1,tvg-id="天津卫视" tvg-name="天津卫视" tvg-logo="https://11.112114.xyz/logo/天津卫视.png" group-title="卫视",天津卫视-MCP
https://mursor.ottiptv.cc/mcp/tianjing.m3u8?tm=1757392777&sign=ff4e7ad957334e26b9e900f207e29eb9
#EXTINF:-1,tvg-id="山东卫视" tvg-name="山东卫视" tvg-logo="https://11.112114.xyz/logo/山东卫视.png" group-title="卫视",山东卫视-MCP
https://mursor.ottiptv.cc/mcp/shandong.m3u8?tm=1757392777&sign=9f120959b0bbf4fad174ced59b5625e0
#EXTINF:-1,tvg-id="辽宁卫视" tvg-name="辽宁卫视" tvg-logo="https://11.112114.xyz/logo/辽宁卫视.png" group-title="卫视",辽宁卫视-MCP
https://mursor.ottiptv.cc/mcp/liaoning.m3u8?tm=1757392777&sign=347059ad78ecb9b79452205e32b3a58f
#EXTINF:-1,tvg-id="安徽卫视" tvg-name="安徽卫视" tvg-logo="https://11.112114.xyz/logo/安徽卫视.png" group-title="卫视",安徽卫视-MCP
https://mursor.ottiptv.cc/mcp/anhui.m3u8?tm=1757392777&sign=29948b76ecc62007fc0b10518d2478ae
#EXTINF:-1,tvg-id="黑龙江卫视" tvg-name="黑龙江卫视" tvg-logo="https://11.112114.xyz/logo/黑龙江卫视.png" group-title="卫视",黑龙江卫视-MCP
https://mursor.ottiptv.cc/mcp/heilongjiang.m3u8?tm=1757392777&sign=c585af4740455b5f35d6a69bfa29ca81
#EXTINF:-1,tvg-id="贵州卫视" tvg-name="贵州卫视" tvg-logo="https://11.112114.xyz/logo/贵州卫视.png" group-title="卫视",贵州卫视-MCP
https://mursor.ottiptv.cc/mcp/guizhou.m3u8?tm=1757392777&sign=708456aab52275889b9dda0f38f2124d
#EXTINF:-1,tvg-id="东南卫视" tvg-name="东南卫视" tvg-logo="https://11.112114.xyz/logo/东南卫视.png" group-title="卫视",东南卫视-MCP
https://mursor.ottiptv.cc/mcp/dongnan.m3u8?tm=1757392777&sign=806c3e7086db971614b06255abb89fcc
#EXTINF:-1,tvg-id="重庆卫视" tvg-name="重庆卫视" tvg-logo="https://11.112114.xyz/logo/重庆卫视.png" group-title="卫视",重庆卫视-MCP
https://mursor.ottiptv.cc/mcp/chongqing.m3u8?tm=1757392777&sign=2066bf3e7b38d203424a40dad5e567c9
#EXTINF:-1,tvg-id="江西卫视" tvg-name="江西卫视" tvg-logo="https://11.112114.xyz/logo/江西卫视.png" group-title="卫视",江西卫视-MCP
https://mursor.ottiptv.cc/mcp/jiangxi.m3u8?tm=1757392777&sign=694d35296742bee9e246b6d71ffdab58
#EXTINF:-1,tvg-id="广东卫视" tvg-name="广东卫视" tvg-logo="https://11.112114.xyz/logo/广东卫视.png" group-title="卫视",广东卫视-MCP
https://mursor.ottiptv.cc/mcp/guangdong.m3u8?tm=1757392777&sign=d16bb6116f5ae3be8482653c95e6c058
#EXTINF:-1,tvg-id="河北卫视" tvg-name="河北卫视" tvg-logo="https://11.112114.xyz/logo/河北卫视.png" group-title="卫视",河北卫视-MCP
https://mursor.ottiptv.cc/mcp/hebei.m3u8?tm=1757392777&sign=db924b413cfb9e9c1269ceefd6692915
#EXTINF:-1,tvg-id="深圳卫视" tvg-name="深圳卫视" tvg-logo="https://11.112114.xyz/logo/深圳卫视.png" group-title="卫视",深圳卫视-MCP
https://mursor.ottiptv.cc/mcp/shenzheng.m3u8?tm=1757392777&sign=a0d7c23e9a4734cca109743e7589f9fd
#EXTINF:-1,tvg-id="吉林卫视" tvg-name="吉林卫视" tvg-logo="https://11.112114.xyz/logo/吉林卫视.png" group-title="卫视",吉林卫视-MCP
https://mursor.ottiptv.cc/mcp/jiling.m3u8?tm=1757392777&sign=ac3a0852dcd90c6894622a92913709a8
#EXTINF:-1,tvg-id="河南卫视" tvg-name="河南卫视" tvg-logo="https://11.112114.xyz/logo/河南卫视.png" group-title="卫视",河南卫视-MCP
https://mursor.ottiptv.cc/mcp/henan.m3u8?tm=1757392777&sign=c48fb49e4551f577f7d1f34db356d51d
#EXTINF:-1,tvg-id="四川卫视" tvg-name="四川卫视" tvg-logo="https://11.112114.xyz/logo/四川卫视.png" group-title="卫视",四川卫视-MCP
https://mursor.ottiptv.cc/mcp/sichuan.m3u8?tm=1757392777&sign=95deafa2f25ef787c9dae39c0e1a66cd
#EXTINF:-1,tvg-id="广西卫视" tvg-name="广西卫视" tvg-logo="https://11.112114.xyz/logo/广西卫视.png" group-title="卫视",广西卫视-MCP
https://mursor.ottiptv.cc/mcp/guangxi.m3u8?tm=1757392777&sign=fdc60dccd6a711f8f97091a5141e048c
#EXTINF:-1,tvg-id="陕西卫视" tvg-name="陕西卫视" tvg-logo="https://11.112114.xyz/logo/陕西卫视.png" group-title="卫视",陕西卫视-MCP
https://mursor.ottiptv.cc/mcp/shanxiws.m3u8?tm=1757392777&sign=877bd05473e7e99d574ebd2f57f358ff
#EXTINF:-1,tvg-id="山西卫视" tvg-name="山西卫视" tvg-logo="https://11.112114.xyz/logo/山西卫视.png" group-title="卫视",山西卫视-MCP
https://mursor.ottiptv.cc/mcp/shanxi.m3u8?tm=1757392777&sign=58fab0ef927bec086b35a6638f6d3061
#EXTINF:-1,tvg-id="内蒙古卫视" tvg-name="内蒙古卫视" tvg-logo="https://11.112114.xyz/logo/内蒙古卫视.png" group-title="卫视",内蒙古卫视-MCP
https://mursor.ottiptv.cc/mcp/neimenggu.m3u8?tm=1757392777&sign=a53404efbc6b298ac4301d1ab1f3e493
#EXTINF:-1,tvg-id="青海卫视" tvg-name="青海卫视" tvg-logo="https://11.112114.xyz/logo/青海卫视.png" group-title="卫视",青海卫视-MCP
https://mursor.ottiptv.cc/mcp/qinghai.m3u8?tm=1757392777&sign=f332e54d33c4bdefea8c63a788031ff8
#EXTINF:-1,tvg-id="海南卫视" tvg-name="海南卫视" tvg-logo="https://11.112114.xyz/logo/海南卫视.png" group-title="卫视",海南卫视-MCP
https://mursor.ottiptv.cc/mcp/hainan.m3u8?tm=1757392777&sign=0b4648dfefa5d31e93fd1fec84d2aabc
#EXTINF:-1,tvg-id="宁夏卫视" tvg-name="宁夏卫视" tvg-logo="https://11.112114.xyz/logo/宁夏卫视.png" group-title="卫视",宁夏卫视-MCP
https://mursor.ottiptv.cc/mcp/ningxia.m3u8?tm=1757392777&sign=8994283c8cd930ce829f6c7a8349aed9
#EXTINF:-1,tvg-id="西藏卫视" tvg-name="西藏卫视" tvg-logo="https://11.112114.xyz/logo/西藏卫视.png" group-title="卫视",西藏卫视-MCP
https://mursor.ottiptv.cc/mcp/xizang.m3u8?tm=1757392777&sign=ef77c9fd2f4e0b6c9b5aba5f2472347e
#EXTINF:-1,tvg-id="新疆卫视" tvg-name="新疆卫视" tvg-logo="https://11.112114.xyz/logo/新疆卫视.png" group-title="卫视",新疆卫视-MCP
https://mursor.ottiptv.cc/mcp/xinjiang.m3u8?tm=1757392777&sign=d9e1e5793573d920d44143233323abc6
#EXTINF:-1,tvg-id="甘肃卫视" tvg-name="甘肃卫视" tvg-logo="https://11.112114.xyz/logo/甘肃卫视.png" group-title="卫视",甘肃卫视-MCP
https://mursor.ottiptv.cc/mcp/gansu.m3u8?tm=1757392777&sign=9d6720853e1d390ba3b2f1655bb72a00
#EXTINF:-1,tvg-id="云南卫视" tvg-name="云南卫视" tvg-logo="https://11.112114.xyz/logo/云南卫视.png" group-title="卫视",云南卫视-MCP
https://mursor.ottiptv.cc/mcp/yunnan.m3u8?tm=1757392777&sign=06ec0c941192fe8649a7fae5f12b241b
#EXTINF:-1,tvg-id="兵团卫视" tvg-name="兵团卫视" tvg-logo="https://11.112114.xyz/logo/兵团卫视.png" group-title="卫视",兵团卫视-MCP
https://mursor.ottiptv.cc/mcp/bintuan.m3u8?tm=1757392777&sign=4eba54cb4c16ff7faa84a40bb912fff8
+25
View File
@@ -70,6 +70,31 @@
"type": "list"
}
},
{
"key": "qingfeng",
"name": "♨️醉挽清风┃4K纯净",
"type": 4,
"api": "http://我不是.摸鱼儿.com/api/yuyutx.php",
"searchable": 1,
"quickSearch": 1,
"changeable": 0
},
{
"key": "鲸鱼",
"name": "💯鲸鱼资源┃4K弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppQi",
"jar": "./jars/config.jar",
"ext": {
"url": "",
"site": "https://jingyu4k-1312635929.cos.ap-nanjing.myqcloud.com/1.json",
"dataKey": "AAdgrdghjfgswerA",
"dataIv": "AAdgrdghjfgswerA",
"deviceId": "",
"version": ""
}
},
{
"key": "玩偶哥哥",
"name": "♨️玩偶备用┃4K弹幕",
+47 -114
View File
@@ -1,5 +1,5 @@
{
"wallpaper": "https://tv.nxog.top/m/t/",
"wallpaper": "https://xn--tpo-mf3g9f.u.xn--dkw.xn--6qq986b3xl/m/t/",
"logo": "https://alicliimg.clewm.net/342/790/68790342/17369906896774bd3d1d8ba1877dea5d967a137aa23d91736990672.gif",
"spider": "./spider.jar",
"lives": [
@@ -8,12 +8,6 @@
"type": 0,
"url": "./lives/tv.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
},
{
"name": "tv备",
"type": 0,
"url": "./lives/tv备.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
}
],
"sites": [
@@ -26,13 +20,13 @@
},
{
"key": "豆瓣1",
"name": "📢公告❤更新:9/12❤",
"name": "📢公告❤更新:9/15❤",
"type": 3,
"api": "csp_Notice",
"searchable": 0,
"changeable": 0,
"jar": "./jars/豆瓣1.jar",
"ext": "https://tv.nxog.top/m/公告.php?b=tv"
"ext": "https://xn--tpo-mf3g9f.u.xn--dkw.xn--6qq986b3xl/m/公告.php?b=tv"
},
{
"key": "csp_woog",
@@ -49,7 +43,7 @@
],
"url_key": "woog",
"threadinfo": {
"chunksize": 281,
"chunksize": 231,
"threads": 16
}
}
@@ -77,7 +71,7 @@
],
"url_key": "UC",
"threadinfo": {
"chunksize": 261,
"chunksize": 282,
"threads": 60
}
}
@@ -93,21 +87,21 @@
"jar": "./jars/csp_欧歌123.jar"
},
{
"key": "csp_woog2",
"key": "欧哥",
"name": "❤欧歌|4K弹幕",
"type": 3,
"changeable": "0",
"api": "csp_Duopan",
"filterable": 1,
"jar": "./jars/csp_woog2.jar",
"jar": "./jars/欧哥.jar",
"ext": {
"site_urls": [
"https://ogkk.nxog.fun",
"https://ogkk.nxog.eu.org"
],
"url_key": "woog2",
"url_key": "欧哥",
"threadinfo": {
"chunksize": 258,
"chunksize": 257,
"threads": 16
}
}
@@ -129,7 +123,7 @@
"name": "💡荐片|影视",
"api": "csp_Jianpian",
"type": 3,
"ext": "https://ij1men.slsw6.com"
"ext": "https://api.ztcgi.com"
},
{
"key": "移动",
@@ -213,10 +207,10 @@
"ext": "https://www.wwgz.cn"
},
{
"key": "鸭梨影视",
"name": "💡鸭梨|影视",
"key": "奇优影视",
"name": "💡奇优|影视",
"type": 3,
"api": "csp_KmeiJu"
"api": "csp_Qiyou"
},
{
"key": "骚火影视",
@@ -242,6 +236,33 @@
"quickSearch": 0,
"filterable": 0
},
{
"key": "柠檬",
"name": "💡柠檬|影视",
"type": 3,
"api": "csp_Nmvod",
"playerType": 2,
"jar": "./jars/柠檬.jar",
"ext": "7lj763gg402i7942503g839jg74h8h88highi40799jh6i6k454419l0l5184k0g549h0kg2i01i838i2h42g891lgg1"
},
{
"key": "云云",
"name": "💡云云|影视",
"type": 3,
"api": "csp_Qiji",
"playerType": 2,
"jar": "./jars/柠檬.jar",
"ext": "7lj763gg402i79425h2384j4g949j899hll9990i9kjl6l740h1342hjlg1848401g8610h9995i998j351gl38kklkj1hkhll757010k7hji6h377ih37k060g35161jhl3i5h0l2702g7299452l4297k5697g5390lk6935k2i9g48l8j2kh27l1g014k7j9475g8"
},
{
"key": "搜索",
"name": "🐢聚搜|影视",
"type": 3,
"api": "csp_qiao2",
"playerType": 2,
"jar": "./jars/柠檬.jar",
"ext": "7lj763gg402i79425739i7jghj118797l4hj840gi18633331l4708g2h7145403549g44l8ii56i187681hkjj3hhgh1ih3l32j250lk1k786lj20j468hk3hli4l46gig4i3g7g2722328j0136h01i7g5183k22k7gg3i72hk81gl8k9839kl7i0707"
},
{
"key": "爱看",
"name": "👑爱看|弹幕",
@@ -496,38 +517,6 @@
"ua": ""
}
},
{
"key": "狂人",
"name": "👑狂人丨弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://www.zjkrmv.vip",
"site": "",
"dataKey": "vXeyuJFqTKqWUtWU",
"dataIv": "vXeyuJFqTKqWUtWU",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "追番",
"name": "👑追番丨弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "",
"site": "https://ysappapi.oss-cn-shenzhen.aliyuncs.com/getapi.txt",
"dataKey": "A1akVPQmnnE4Fz9Z",
"dataIv": "A1akVPQmnnE4Fz9Z",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "五八",
"name": "👑五八丨弹幕",
@@ -545,19 +534,17 @@
}
},
{
"key": "万能",
"name": "👑万能丨弹幕",
"key": "光影",
"name": "👑光影丨弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://wnvod.cc",
"site": "",
"dataKey": "5uBvur6znNUmE3zb",
"dataIv": "5uBvur6znNUmE3zb",
"url": "https://www.guangyingmi.com",
"dataKey": "230fnsodfsdhfon2",
"dataIv": "230fnsodfsdhfon2",
"deviceId": "",
"version": "",
"ua": ""
"version": ""
}
},
{
@@ -1004,22 +991,6 @@
"分类url": "https://4k4k.live/;;!"
}
},
{
"key": "巧技",
"name": "🐢聚搜┃搜索",
"type": 3,
"api": "csp_qiao2",
"playerType": 2,
"jar": "./jars/巧技.jar",
"ext": "7lj763gg402i79425739i7jghj118797l4hj840gi18633331l4708g2h7145403549g44l8ii56i187681hkjj3hhgh1ih3l32j250lk1k786lj20j468hk3hli4l46gig4i3g7g2722328j0136h01i7g5183k22k7gg3i72hk81gl8k9839kl7i0707"
},
{
"key": "采集之王",
"name": "🐢采集┃搜索",
"type": 3,
"api": "./api/drpy2.min.js",
"ext": "./js/采集之王.js?type=url&params=https://cdn.jsdmirror.com/gh/ouhaibo1980/tvbox@main/json/采集静态.json$1$1"
},
{
"key": "哔️软件",
"name": "🅰️软件┃哔哩",
@@ -1486,42 +1457,6 @@
},
"ext": "./js/88看球.js"
},
{
"key": "猎手影视",
"name": "🧡猎手|PY影视",
"type": 3,
"api": "./api/猎手影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "金牌影视PY",
"name": "🧡金牌|PY影视",
"type": 3,
"api": "./api/金牌.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2,
"ext": {
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
}
},
{
"key": "网络直播",
"name": "🧡网络|直播",
"type": 3,
"api": "./api/WLZB.py"
},
{
"key": "哔哩直播",
"name": "🧡哔哩|直播",
"type": 3,
"api": "./api/BLZB.py"
},
{
"key": "本地",
"name": "🌸本地|视频",
@@ -1557,7 +1492,7 @@
"key": "豆瓣3",
"name": "📢接口软件永远免费",
"type": 3,
"api": "csp_DouBan",
"api": "csp_Douban",
"searchable": 0
},
{
@@ -1774,8 +1709,6 @@
"imgo",
"芒果TV",
"芒果TV",
"qiqi",
"kuying-qq",
"bilibili",
"哔哩",
"哔哩哔哩"
-314
View File
@@ -1,314 +0,0 @@
# coding=utf-8
# !/usr/bin/python
"""
作者 丢丢喵 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容
====================Diudiumiao====================
"""
from Crypto.Util.Padding import unpad
from Crypto.Util.Padding import pad
from urllib.parse import unquote
from Crypto.Cipher import ARC4
from urllib.parse import quote
from base.spider import Spider
from Crypto.Cipher import AES
from datetime import datetime
from bs4 import BeautifulSoup
from base64 import b64decode
import urllib.request
import urllib.parse
import datetime
import binascii
import requests
import base64
import json
import time
import sys
import re
import os
sys.path.append('..')
xurl = "https://search.bilibili.com"
xurl1 = "https://api.live.bilibili.com"
headerx = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0'
}
class Spider(Spider):
global xurl
global xurl1
global headerx
def getName(self):
return "首页"
def init(self, extend):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def extract_middle_text(self, text, start_str, end_str, pl, start_index1: str = '', end_index2: str = ''):
if pl == 3:
plx = []
while True:
start_index = text.find(start_str)
if start_index == -1:
break
end_index = text.find(end_str, start_index + len(start_str))
if end_index == -1:
break
middle_text = text[start_index + len(start_str):end_index]
plx.append(middle_text)
text = text.replace(start_str + middle_text + end_str, '')
if len(plx) > 0:
purl = ''
for i in range(len(plx)):
matches = re.findall(start_index1, plx[i])
output = ""
for match in matches:
match3 = re.search(r'(?:^|[^0-9])(\d+)(?:[^0-9]|$)', match[1])
if match3:
number = match3.group(1)
else:
number = 0
if 'http' not in match[0]:
output += f"#{match[1]}${number}{xurl}{match[0]}"
else:
output += f"#{match[1]}${number}{match[0]}"
output = output[1:]
purl = purl + output + "$$$"
purl = purl[:-3]
return purl
else:
return ""
else:
start_index = text.find(start_str)
if start_index == -1:
return ""
end_index = text.find(end_str, start_index + len(start_str))
if end_index == -1:
return ""
if pl == 0:
middle_text = text[start_index + len(start_str):end_index]
return middle_text.replace("\\", "")
if pl == 1:
middle_text = text[start_index + len(start_str):end_index]
matches = re.findall(start_index1, middle_text)
if matches:
jg = ' '.join(matches)
return jg
if pl == 2:
middle_text = text[start_index + len(start_str):end_index]
matches = re.findall(start_index1, middle_text)
if matches:
new_list = [f'{item}' for item in matches]
jg = '$$$'.join(new_list)
return jg
def homeContent(self, filter):
result = {}
result = {"class": [{"type_id": "舞", "type_name": "舞蹈"},
{"type_id": "音乐", "type_name": "音乐"},
{"type_id": "手游", "type_name": "手游"},
{"type_id": "网游", "type_name": "网游"},
{"type_id": "单机游戏", "type_name": "单机游戏"},
{"type_id": "虚拟主播", "type_name": "虚拟主播"},
{"type_id": "电台", "type_name": "电台"},
{"type_id": "体育", "type_name": "体育"},
{"type_id": "聊天", "type_name": "聊天"},
{"type_id": "娱乐", "type_name": "娱乐"},
{"type_id": "电影", "type_name": "影视"},
{"type_id": "新闻", "type_name": "新闻"}]
}
return result
def homeVideoContent(self):
pass
def categoryContent(self, cid, pg, filter, ext):
result = {}
videos = []
if pg:
page = int(pg)
else:
page = 1
url = f'{xurl}/live?keyword={cid}&page={str(page)}'
detail = requests.get(url=url, headers=headerx)
detail.encoding = "utf-8"
res = detail.text
doc = BeautifulSoup(res, "lxml")
soups = doc.find_all('div', class_="video-list-item")
for vod in soups:
names = vod.find('h3', class_="bili-live-card__info--tit")
name = names.text.strip().replace('直播中', '')
id = names.find('a')['href']
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
pic = vod.find('img')['src']
if 'http' not in pic:
pic = "https:" + pic
remarks = vod.find('a', class_="bili-live-card__info--uname")
remark = remarks.text.strip()
video = {
"vod_id": id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": remark
}
videos.append(video)
result = {'list': videos}
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
did = ids[0]
result = {}
videos = []
xianlu = ''
bofang = ''
url = f'{xurl1}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={did}&platform=web&protocol=0,1&format=0,1,2&codec=0,1'
detail = requests.get(url=url, headers=headerx)
detail.encoding = "utf-8"
data = detail.json()
content = '欢迎观看哔哩直播'
setup = data['data']['playurl_info']['playurl']['stream']
nam = 0
for vod in setup:
try:
host = vod['format'][nam]['codec'][0]['url_info'][1]['host']
except (KeyError, IndexError):
continue
base = vod['format'][nam]['codec'][0]['base_url']
extra = vod['format'][nam]['codec'][0]['url_info'][1]['extra']
id = host + base + extra
nam = nam + 1
namc = f"{nam}号线路"
bofang = bofang + namc + '$' + id + '#'
bofang = bofang[:-1]
xianlu = '哔哩专线'
videos.append({
"vod_id": did,
"vod_content": content,
"vod_play_from": xianlu,
"vod_play_url": bofang
})
result['list'] = videos
return result
def playerContent(self, flag, id, vipFlags):
result = {}
result["parse"] = 0
result["playUrl"] = ''
result["url"] = id
result["header"] = headerx
return result
def searchContentPage(self, key, quick, pg):
result = {}
videos = []
if pg:
page = int(pg)
else:
page = 1
url = f'{xurl}/live?keyword={key}&page={str(page)}'
detail = requests.get(url=url, headers=headerx)
detail.encoding = "utf-8"
res = detail.text
doc = BeautifulSoup(res, "lxml")
soups = doc.find_all('div', class_="video-list-item")
for vod in soups:
names = vod.find('h3', class_="bili-live-card__info--tit")
name = names.text.strip().replace('直播中', '')
id = names.find('a')['href']
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
pic = vod.find('img')['src']
if 'http' not in pic:
pic = "https:" + pic
remarks = vod.find('a', class_="bili-live-card__info--uname")
remark = remarks.text.strip()
video = {
"vod_id": id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": remark
}
videos.append(video)
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def searchContent(self, key, quick, pg="1"):
return self.searchContentPage(key, quick, '1')
def localProxy(self, params):
if params['type'] == "m3u8":
return self.proxyM3u8(params)
elif params['type'] == "media":
return self.proxyMedia(params)
elif params['type'] == "ts":
return self.proxyTs(params)
return None
-768
View File
@@ -1,768 +0,0 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import json
import re
import sys
import time
from base64 import b64decode, b64encode
from urllib.parse import parse_qs
import requests
from pyquery import PyQuery as pq
sys.path.append('..')
from base.spider import Spider
from concurrent.futures import ThreadPoolExecutor
class Spider(Spider):
def init(self, extend=""):
tid = 'douyin'
headers = self.gethr(0, tid)
response = requests.head(self.hosts[tid], headers=headers)
ttwid = response.cookies.get('ttwid')
headers.update({
'authority': self.hosts[tid].split('//')[-1],
'cookie': f'ttwid={ttwid}' if ttwid else ''
})
self.dyheaders = headers
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
headers = [
{
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
},
{
"User-Agent": "Dart/3.4 (dart:io)"
}
]
excepturl = 'https://www.baidu.com'
hosts = {
"huya": ["https://www.huya.com","https://mp.huya.com"],
"douyin": "https://live.douyin.com",
"douyu": "https://www.douyu.com",
"wangyi": "https://cc.163.com",
"bili": ["https://api.live.bilibili.com", "https://api.bilibili.com"]
}
referers = {
"huya": "https://live.cdn.huya.com",
"douyin": "https://live.douyin.com",
"douyu": "https://m.douyu.com",
"bili": "https://live.bilibili.com"
}
playheaders = {
"wangyi": {
"User-Agent": "ExoPlayer",
"Connection": "Keep-Alive",
"Icy-MetaData": "1"
},
"bili": {
'Accept': '*/*',
'Icy-MetaData': '1',
'referer': referers['bili'],
'user-agent': headers[0]['User-Agent']
},
'douyin': {
'User-Agent': 'libmpv',
'Icy-MetaData': '1'
},
'huya': {
'User-Agent': 'ExoPlayer',
'Connection': 'Keep-Alive',
'Icy-MetaData': '1'
},
'douyu': {
'User-Agent': 'libmpv',
'Icy-MetaData': '1'
}
}
def process_bili(self):
try:
self.blfdata = self.fetch(
f'{self.hosts["bili"][0]}/room/v1/Area/getList?need_entrance=1&parent_id=0',
headers=self.gethr(0, 'bili')
).json()
return ('bili', [{'key': 'cate', 'name': '分类',
'value': [{'n': i['name'], 'v': str(i['id'])}
for i in self.blfdata['data']]}])
except Exception as e:
print(f"bili处理错误: {e}")
return 'bili', None
def process_douyin(self):
try:
data = self.getpq(self.hosts['douyin'], headers=self.dyheaders)('script')
for i in data.items():
if 'categoryData' in i.text():
content = i.text()
start = content.find('{')
end = content.rfind('}') + 1
if start != -1 and end != -1:
json_str = content[start:end]
json_str = json_str.replace('\\"', '"')
try:
self.dyifdata = json.loads(json_str)
return ('douyin', [{'key': 'cate', 'name': '分类',
'value': [{'n': i['partition']['title'],
'v': f"{i['partition']['id_str']}@@{i['partition']['title']}"}
for i in self.dyifdata['categoryData']]}])
except json.JSONDecodeError as e:
print(f"douyin解析错误: {e}")
return 'douyin', None
except Exception as e:
print(f"douyin请求或处理错误: {e}")
return 'douyin', None
def process_douyu(self):
try:
self.dyufdata = self.fetch(
f'{self.referers["douyu"]}/api/cate/list',
headers=self.headers[1]
).json()
return ('douyu', [{'key': 'cate', 'name': '分类',
'value': [{'n': i['cate1Name'], 'v': str(i['cate1Id'])}
for i in self.dyufdata['data']['cate1Info']]}])
except Exception as e:
print(f"douyu错误: {e}")
return 'douyu', None
def homeContent(self, filter):
result = {}
cateManual = {
"虎牙": "huya",
"哔哩": "bili",
"抖音": "douyin",
"斗鱼": "douyu",
"网易": "wangyi"
}
classes = []
filters = {
'huya': [{'key': 'cate', 'name': '分类',
'value': [{'n': '网游', 'v': '1'}, {'n': '单机', 'v': '2'},
{'n': '娱乐', 'v': '8'}, {'n': '手游', 'v': '3'}]}]
}
with ThreadPoolExecutor(max_workers=3) as executor:
futures = {
executor.submit(self.process_bili): 'bili',
executor.submit(self.process_douyin): 'douyin',
executor.submit(self.process_douyu): 'douyu'
}
for future in futures:
platform, filter_data = future.result()
if filter_data:
filters[platform] = filter_data
for k in cateManual:
classes.append({
'type_name': k,
'type_id': cateManual[k]
})
result['class'] = classes
result['filters'] = filters
return result
def homeVideoContent(self):
pass
def categoryContent(self, tid, pg, filter, extend):
vdata = []
result = {}
pagecount = 9999
result['page'] = pg
result['limit'] = 90
result['total'] = 999999
if tid == 'wangyi':
vdata, pagecount = self.wyccContent(tid, pg, filter, extend, vdata)
elif 'bili' in tid:
vdata, pagecount = self.biliContent(tid, pg, filter, extend, vdata)
elif 'huya' in tid:
vdata, pagecount = self.huyaContent(tid, pg, filter, extend, vdata)
elif 'douyin' in tid:
vdata, pagecount = self.douyinContent(tid, pg, filter, extend, vdata)
elif 'douyu' in tid:
vdata, pagecount = self.douyuContent(tid, pg, filter, extend, vdata)
result['list'] = vdata
result['pagecount'] = pagecount
return result
def wyccContent(self, tid, pg, filter, extend, vdata):
params = {
'format': 'json',
'start': (int(pg) - 1) * 20,
'size': '20',
}
response = self.fetch(f'{self.hosts[tid]}/api/category/live/', params=params, headers=self.headers[0]).json()
for i in response['lives']:
if i.get('cuteid'):
bvdata = self.buildvod(
vod_id=f"{tid}@@{i['cuteid']}",
vod_name=i.get('title'),
vod_pic=i.get('cover'),
vod_remarks=i.get('nickname'),
style={"type": "rect", "ratio": 1.33}
)
vdata.append(bvdata)
return vdata, 9999
def biliContent(self, tid, pg, filter, extend, vdata):
if extend.get('cate') and pg == '1' and 'click' not in tid:
for i in self.blfdata['data']:
if str(i['id']) == extend['cate']:
for j in i['list']:
v = self.buildvod(
vod_id=f"click_{tid}@@{i['id']}@@{j['id']}",
vod_name=j.get('name'),
vod_pic=j.get('pic'),
vod_tag=1,
style={"type": "oval", "ratio": 1}
)
vdata.append(v)
return vdata, 1
else:
path = f'/xlive/web-interface/v1/second/getListByArea?platform=web&sort=online&page_size=30&page={pg}'
if 'click' in tid:
ids = tid.split('_')[1].split('@@')
tid = ids[0]
path = f'/xlive/web-interface/v1/second/getList?platform=web&parent_area_id={ids[1]}&area_id={ids[-1]}&sort_type=&page={pg}'
data = self.fetch(f'{self.hosts[tid][0]}{path}', headers=self.gethr(0, tid)).json()
for i in data['data']['list']:
if i.get('roomid'):
data = self.buildvod(
f"{tid}@@{i['roomid']}",
i.get('title'),
i.get('cover'),
i.get('watched_show', {}).get('text_large'),
0,
i.get('uname'),
style={"type": "rect", "ratio": 1.33}
)
vdata.append(data)
return vdata, 9999
def huyaContent(self, tid, pg, filter, extend, vdata):
if extend.get('cate') and pg == '1' and 'click' not in tid:
id = extend.get('cate')
data = self.fetch(f'{self.referers[tid]}/liveconfig/game/bussLive?bussType={id}',
headers=self.headers[1]).json()
for i in data['data']:
v = self.buildvod(
vod_id=f"click_{tid}@@{int(i['gid'])}",
vod_name=i.get('gameFullName'),
vod_pic=f'https://huyaimg.msstatic.com/cdnimage/game/{int(i["gid"])}-MS.jpg',
vod_tag=1,
style={"type": "oval", "ratio": 1}
)
vdata.append(v)
return vdata, 1
else:
gid = ''
if 'click' in tid:
ids = tid.split('_')[1].split('@@')
tid = ids[0]
gid = f'&gameId={ids[1]}'
data = self.fetch(f'{self.hosts[tid][0]}/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0{gid}&page={pg}',
headers=self.headers[1]).json()
for i in data['data']['datas']:
if i.get('profileRoom'):
v = self.buildvod(
f"{tid}@@{i['profileRoom']}",
i.get('introduction'),
i.get('screenshot'),
str(int(i.get('totalCount', '1')) / 10000) + '万',
0,
i.get('nick'),
style={"type": "rect", "ratio": 1.33}
)
vdata.append(v)
return vdata, 9999
def douyinContent(self, tid, pg, filter, extend, vdata):
if extend.get('cate') and pg == '1' and 'click' not in tid:
ids = extend.get('cate').split('@@')
for i in self.dyifdata['categoryData']:
c = i['partition']
if c['id_str'] == ids[0] and c['title'] == ids[1]:
vlist = i['sub_partition'].copy()
vlist.insert(0, {'partition': c})
for j in vlist:
j = j['partition']
v = self.buildvod(
vod_id=f"click_{tid}@@{j['id_str']}@@{j['type']}",
vod_name=j.get('title'),
vod_pic='https://p3-pc-weboff.byteimg.com/tos-cn-i-9r5gewecjs/pwa_v3/512x512-1.png',
vod_tag=1,
style={"type": "oval", "ratio": 1}
)
vdata.append(v)
return vdata, 1
else:
path = f'/webcast/web/partition/detail/room/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&count=15&offset={(int(pg) - 1) * 15}&partition=720&partition_type=1'
if 'click' in tid:
ids = tid.split('_')[1].split('@@')
tid = ids[0]
path = f'/webcast/web/partition/detail/room/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&count=15&offset={(int(pg) - 1) * 15}&partition={ids[1]}&partition_type={ids[-1]}&req_from=2'
data = self.fetch(f'{self.hosts[tid]}{path}', headers=self.dyheaders).json()
for i in data['data']['data']:
v = self.buildvod(
vod_id=f"{tid}@@{i['web_rid']}",
vod_name=i['room'].get('title'),
vod_pic=i['room']['cover'].get('url_list')[0],
vod_year=i.get('user_count_str'),
vod_remarks=i['room']['owner'].get('nickname'),
style={"type": "rect", "ratio": 1.33}
)
vdata.append(v)
return vdata, 9999
def douyuContent(self, tid, pg, filter, extend, vdata):
if extend.get('cate') and pg == '1' and 'click' not in tid:
for i in self.dyufdata['data']['cate2Info']:
if str(i['cate1Id']) == extend['cate']:
v = self.buildvod(
vod_id=f"click_{tid}@@{i['cate2Id']}",
vod_name=i.get('cate2Name'),
vod_pic=i.get('icon'),
vod_remarks=i.get('count'),
vod_tag=1,
style={"type": "oval", "ratio": 1}
)
vdata.append(v)
return vdata, 1
else:
path = f'/japi/weblist/apinc/allpage/6/{pg}'
if 'click' in tid:
ids = tid.split('_')[1].split('@@')
tid = ids[0]
path = f'/gapi/rkc/directory/mixList/2_{ids[1]}/{pg}'
url = f'{self.hosts[tid]}{path}'
data = self.fetch(url, headers=self.headers[1]).json()
for i in data['data']['rl']:
v = self.buildvod(
vod_id=f"{tid}@@{i['rid']}",
vod_name=i.get('rn'),
vod_pic=i.get('rs16'),
vod_year=str(int(i.get('ol', 1)) / 10000) + '万',
vod_remarks=i.get('nn'),
style={"type": "rect", "ratio": 1.33}
)
vdata.append(v)
return vdata, 9999
def detailContent(self, ids):
ids = ids[0].split('@@')
if ids[0] == 'wangyi':
vod = self.wyccDetail(ids)
elif ids[0] == 'bili':
vod = self.biliDetail(ids)
elif ids[0] == 'huya':
vod = self.huyaDetail(ids)
elif ids[0] == 'douyin':
vod = self.douyinDetail(ids)
elif ids[0] == 'douyu':
vod = self.douyuDetail(ids)
return {'list': [vod]}
def wyccDetail(self, ids):
try:
vdata = self.getpq(f'{self.hosts[ids[0]]}/{ids[1]}', self.headers[0])('script').eq(-1).text()
def get_quality_name(vbr):
if vbr <= 600:
return "标清"
elif vbr <= 1000:
return "高清"
elif vbr <= 2000:
return "超清"
else:
return "蓝光"
data = json.loads(vdata)['props']['pageProps']['roomInfoInitData']
name = data['live'].get('title', ids[0])
vod = self.buildvod(vod_name=data.get('keywords_suffix'), vod_remarks=data['live'].get('title'),
vod_content=data.get('description_suffix'))
resolution_data = data['live']['quickplay']['resolution']
all_streams = {}
sorted_qualities = sorted(resolution_data.items(),
key=lambda x: x[1]['vbr'],
reverse=True)
for quality, data in sorted_qualities:
vbr = data['vbr']
quality_name = get_quality_name(vbr)
for cdn_name, url in data['cdn'].items():
if cdn_name not in all_streams and type(url) == str and url.startswith('http'):
all_streams[cdn_name] = []
if isinstance(url, str) and url.startswith('http'):
all_streams[cdn_name].extend([quality_name, url])
plists = []
names = []
for i, (cdn_name, stream_list) in enumerate(all_streams.items(), 1):
names.append(f'线路{i}')
pstr = f"{name}${ids[0]}@@{self.e64(json.dumps(stream_list))}"
plists.append(pstr)
vod['vod_play_from'] = "$$$".join(names)
vod['vod_play_url'] = "$$$".join(plists)
return vod
except Exception as e:
return self.handle_exception(e)
def biliDetail(self, ids):
try:
vdata = self.fetch(
f'{self.hosts[ids[0]][0]}/xlive/web-room/v1/index/getInfoByRoom?room_id={ids[1]}&wts={int(time.time())}',
headers=self.gethr(0, ids[0])).json()
v = vdata['data']['room_info']
vod = self.buildvod(
vod_name=v.get('title'),
type_name=v.get('parent_area_name') + '/' + v.get('area_name'),
vod_remarks=v.get('tags'),
vod_play_from=v.get('title'),
)
data = self.fetch(
f'{self.hosts[ids[0]][0]}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={ids[1]}&protocol=0%2C1&format=0%2C1%2C2&codec=0%2C1&platform=web',
headers=self.gethr(0, ids[0])).json()
vdnams = data['data']['playurl_info']['playurl']['g_qn_desc']
all_accept_qns = []
streams = data['data']['playurl_info']['playurl']['stream']
for stream in streams:
for format_item in stream['format']:
for codec in format_item['codec']:
if 'accept_qn' in codec:
all_accept_qns.append(codec['accept_qn'])
max_accept_qn = max(all_accept_qns, key=len) if all_accept_qns else []
quality_map = {
item['qn']: item['desc']
for item in vdnams
}
quality_names = [f"{quality_map.get(qn)}${ids[0]}@@{ids[1]}@@{qn}" for qn in max_accept_qn]
vod['vod_play_url'] = "#".join(quality_names)
return vod
except Exception as e:
return self.handle_exception(e)
def huyaDetail(self, ids):
try:
vdata = self.fetch(f'{self.hosts[ids[0]][1]}/cache.php?m=Live&do=profileRoom&roomid={ids[1]}',
headers=self.headers[0]).json()
v = vdata['data']['liveData']
vod = self.buildvod(
vod_name=v.get('introduction'),
type_name=v.get('gameFullName'),
vod_director=v.get('nick'),
vod_remarks=v.get('contentIntro'),
)
data = dict(reversed(list(vdata['data']['stream'].items())))
names = []
plist = []
for stream_type, stream_data in data.items():
if isinstance(stream_data, dict) and 'multiLine' in stream_data and 'rateArray' in stream_data:
names.append(f"线路{len(names) + 1}")
qualities = sorted(
stream_data['rateArray'],
key=lambda x: (x['iBitRate'], x['sDisplayName']),
reverse=True
)
cdn_urls = []
for cdn in stream_data['multiLine']:
quality_urls = []
for quality in qualities:
quality_name = quality['sDisplayName']
bit_rate = quality['iBitRate']
base_url = cdn['url']
if bit_rate > 0:
if '.m3u8' in base_url:
new_url = base_url.replace(
'ratio=2000',
f'ratio={bit_rate}'
)
else:
new_url = base_url.replace(
'imgplus.flv',
f'imgplus_{bit_rate}.flv'
)
else:
new_url = base_url
quality_urls.extend([quality_name, new_url])
encoded_urls = self.e64(json.dumps(quality_urls))
cdn_urls.append(f"{cdn['cdnType']}${ids[0]}@@{encoded_urls}")
if cdn_urls:
plist.append('#'.join(cdn_urls))
vod['vod_play_from'] = "$$$".join(names)
vod['vod_play_url'] = "$$$".join(plist)
return vod
except Exception as e:
return self.handle_exception(e)
def douyinDetail(self, ids):
url = f'{self.hosts[ids[0]]}/webcast/room/web/enter/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&enter_from=web_live&web_rid={ids[1]}&room_id_str=&enter_source=&Room-Enter-User-Login-Ab=0&is_need_double_stream=false&cookie_enabled=true&screen_width=1980&screen_height=1080&browser_language=zh-CN&browser_platform=Win32&browser_name=Edge&browser_version=125.0.0.0'
data = self.fetch(url, headers=self.dyheaders).json()
try:
vdata = data['data']['data'][0]
vod = self.buildvod(
vod_name=vdata['title'],
vod_remarks=vdata['user_count_str'],
)
resolution_data = vdata['stream_url']['live_core_sdk_data']['pull_data']['options']['qualities']
stream_json = vdata['stream_url']['live_core_sdk_data']['pull_data']['stream_data']
stream_json = json.loads(stream_json)
available_types = []
if any(sdk_key in stream_json['data'] and 'main' in stream_json['data'][sdk_key] for sdk_key in
stream_json['data']):
available_types.append('main')
if any(sdk_key in stream_json['data'] and 'backup' in stream_json['data'][sdk_key] for sdk_key in
stream_json['data']):
available_types.append('backup')
plist = []
for line_type in available_types:
format_arrays = {'flv': [], 'hls': [], 'lls': []}
qualities = sorted(resolution_data, key=lambda x: x['level'], reverse=True)
for quality in qualities:
sdk_key = quality['sdk_key']
if sdk_key in stream_json['data'] and line_type in stream_json['data'][sdk_key]:
stream_info = stream_json['data'][sdk_key][line_type]
if stream_info.get('flv'):
format_arrays['flv'].extend([quality['name'], stream_info['flv']])
if stream_info.get('hls'):
format_arrays['hls'].extend([quality['name'], stream_info['hls']])
if stream_info.get('lls'):
format_arrays['lls'].extend([quality['name'], stream_info['lls']])
format_urls = []
for format_name, url_array in format_arrays.items():
if url_array:
encoded_urls = self.e64(json.dumps(url_array))
format_urls.append(f"{format_name}${ids[0]}@@{encoded_urls}")
if format_urls:
plist.append('#'.join(format_urls))
names = ['线路1', '线路2'][:len(plist)]
vod['vod_play_from'] = "$$$".join(names)
vod['vod_play_url'] = "$$$".join(plist)
return vod
except Exception as e:
return self.handle_exception(e)
def douyuDetail(self, ids):
headers = self.gethr(0, zr=f'{self.hosts[ids[0]]}/{ids[1]}')
try:
data = self.fetch(f'{self.hosts[ids[0]]}/betard/{ids[1]}', headers=headers).json()
vname = data['room']['room_name']
vod = self.buildvod(
vod_name=vname,
vod_remarks=data['room'].get('second_lvl_name'),
vod_director=data['room'].get('nickname'),
)
vdata = self.fetch(f'{self.hosts[ids[0]]}/swf_api/homeH5Enc?rids={ids[1]}', headers=headers).json()
json_body = vdata['data']
json_body = {"html": self.douyu_text(json_body[f'room{ids[1]}']), "rid": ids[1]}
sign = self.post('http://alive.nsapps.cn/api/AllLive/DouyuSign', json=json_body, headers=self.headers[1]).json()['data']
body = f'{sign}&cdn=&rate=-1&ver=Douyu_223061205&iar=1&ive=1&hevc=0&fa=0'
body=self.params_to_json(body)
nubdata = self.post(f'{self.hosts[ids[0]]}/lapi/live/getH5Play/{ids[1]}', data=body, headers=headers).json()
plist = []
names = []
for i,x in enumerate(nubdata['data']['cdnsWithName']):
names.append(f'线路{i+1}')
d = {'sign': sign, 'cdn': x['cdn'], 'id': ids[1]}
plist.append(
f'{vname}${ids[0]}@@{self.e64(json.dumps(d))}@@{self.e64(json.dumps(nubdata["data"]["multirates"]))}')
vod['vod_play_from'] = "$$$".join(names)
vod['vod_play_url'] = "$$$".join(plist)
return vod
except Exception as e:
return self.handle_exception(e)
def douyu_text(self, text):
function_positions = [m.start() for m in re.finditer('function', text)]
total_functions = len(function_positions)
if total_functions % 2 == 0:
target_index = total_functions // 2 + 1
else:
target_index = (total_functions - 1) // 2 + 1
if total_functions >= target_index:
cut_position = function_positions[target_index - 1]
ctext = text[4:cut_position]
return re.sub(r'eval\(strc\)\([\w\d,]+\)', 'strc', ctext)
return text
def searchContent(self, key, quick, pg="1"):
pass
def playerContent(self, flag, id, vipFlags):
try:
ids = id.split('@@')
p = 1
if ids[0] in ['wangyi', 'douyin','huya']:
p, url = 0, json.loads(self.d64(ids[1]))
elif ids[0] == 'bili':
p, url = self.biliplay(ids)
elif ids[0] == 'huya':
p, url = 0, json.loads(self.d64(ids[1]))
elif ids[0] == 'douyu':
p, url = self.douyuplay(ids)
return {'parse': p, 'url': url, 'header': self.playheaders[ids[0]]}
except Exception as e:
return {'parse': 1, 'url': self.excepturl, 'header': self.headers[0]}
def biliplay(self, ids):
try:
data = self.fetch(
f'{self.hosts[ids[0]][0]}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={ids[1]}&protocol=0,1&format=0,2&codec=0&platform=web&qn={ids[2]}',
headers=self.gethr(0, ids[0])).json()
urls = []
line_index = 1
for stream in data['data']['playurl_info']['playurl']['stream']:
for format_item in stream['format']:
for codec in format_item['codec']:
for url_info in codec['url_info']:
full_url = f"{url_info['host']}/{codec['base_url'].lstrip('/')}{url_info['extra']}"
urls.extend([f"线路{line_index}", full_url])
line_index += 1
return 0, urls
except Exception as e:
return 1, self.excepturl
def douyuplay(self, ids):
try:
sdata = json.loads(self.d64(ids[1]))
headers = self.gethr(0, zr=f'{self.hosts[ids[0]]}/{sdata["id"]}')
ldata = json.loads(self.d64(ids[2]))
result_obj = {}
with ThreadPoolExecutor(max_workers=len(ldata)) as executor:
futures = [
executor.submit(
self.douyufp,
sdata,
quality,
headers,
self.hosts[ids[0]],
result_obj
) for quality in ldata
]
for future in futures:
future.result()
result = []
for bit in sorted(result_obj.keys(), reverse=True):
result.extend(result_obj[bit])
if result:
return 0, result
return 1, self.excepturl
except Exception as e:
return 1, self.excepturl
def douyufp(self, sdata, quality, headers, host, result_obj):
try:
body = f'{sdata["sign"]}&cdn={sdata["cdn"]}&rate={quality["rate"]}'
body=self.params_to_json(body)
data = self.post(f'{host}/lapi/live/getH5Play/{sdata["id"]}',
data=body, headers=headers).json()
if data.get('data'):
play_url = data['data']['rtmp_url'] + '/' + data['data']['rtmp_live']
bit = quality.get('bit', 0)
if bit not in result_obj:
result_obj[bit] = []
result_obj[bit].extend([quality['name'], play_url])
except Exception as e:
print(f"Error fetching {quality['name']}: {str(e)}")
def localProxy(self, param):
pass
def e64(self, text):
try:
text_bytes = text.encode('utf-8')
encoded_bytes = b64encode(text_bytes)
return encoded_bytes.decode('utf-8')
except Exception as e:
print(f"Base64编码错误: {str(e)}")
return ""
def d64(self, encoded_text):
try:
encoded_bytes = encoded_text.encode('utf-8')
decoded_bytes = b64decode(encoded_bytes)
return decoded_bytes.decode('utf-8')
except Exception as e:
print(f"Base64解码错误: {str(e)}")
return ""
def josn_to_params(self, params, skip_empty=False):
query = []
for k, v in params.items():
if skip_empty and not v:
continue
query.append(f"{k}={v}")
return "&".join(query)
def params_to_json(self, query_string):
parsed_data = parse_qs(query_string)
result = {key: value[0] for key, value in parsed_data.items()}
return result
def buildvod(self, vod_id='', vod_name='', vod_pic='', vod_year='', vod_tag='', vod_remarks='', style='',
type_name='', vod_area='', vod_actor='', vod_director='',
vod_content='', vod_play_from='', vod_play_url=''):
vod = {
'vod_id': vod_id,
'vod_name': vod_name,
'vod_pic': vod_pic,
'vod_year': vod_year,
'vod_tag': 'folder' if vod_tag else '',
'vod_remarks': vod_remarks,
'style': style,
'type_name': type_name,
'vod_area': vod_area,
'vod_actor': vod_actor,
'vod_director': vod_director,
'vod_content': vod_content,
'vod_play_from': vod_play_from,
'vod_play_url': vod_play_url
}
vod = {key: value for key, value in vod.items() if value}
return vod
def getpq(self, url, headers=None, cookies=None):
data = self.fetch(url, headers=headers, cookies=cookies).text
try:
return pq(data)
except Exception as e:
print(f"解析页面错误: {str(e)}")
return pq(data.encode('utf-8'))
def gethr(self, index, rf='', zr=''):
headers = self.headers[index]
if zr:
headers['referer'] = zr
else:
headers['referer'] = f"{self.referers[rf]}/"
return headers
def handle_exception(self, e):
print(f"报错: {str(e)}")
return {'vod_play_from': '哎呀翻车啦', 'vod_play_url': f'翻车啦${self.excepturl}'}
-279
View File
@@ -1,279 +0,0 @@
# coding=utf-8
# !/usr/bin/python
# by嗷呜(finally)
import sys
import os
sys.path.append("..")
import re
import hashlib
import hmac
import random
import string
from Crypto.Util.Padding import unpad
from concurrent.futures import ThreadPoolExecutor
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5, AES
from base64 import b64encode, b64decode
import json
import time
from base.spider import Spider
class Spider(Spider):
def getName(self):
return "电影猎手"
def init(self, extend=""):
self.device = self.device_id()
self.host = self.gethost()
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def action(self, action):
pass
def destroy(self):
pass
t = str(int(time.time()))
def homeContent(self, filter):
result = {}
filters = {}
classes = []
bba = self.url()
data = self.fetch(f"{self.host}/api/v1/app/config?pack={bba[0]}&signature={bba[1]}", headers=self.header()).text
data1 = self.aes(data)
dy = {"class":"类型","area":"地区","lang":"语言","year":"年份","letter":"字母","by":"排序","sort":"排序"}
data1['data']['movie_screen']['sort'].pop(0)
for item in data1['data']['movie_screen']['sort']:
item['n'] = item.pop('name')
item['v'] = item.pop('value')
for item in data1['data']['movie_screen']['filter']:
has_non_empty_field = False
classes.append({"type_name": item["name"], "type_id": str(item["id"])})
for key in dy:
if key in item and item[key]:
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["id"])] = []
filters[str(item["id"])].append(
{"key": 'sort', "name": '排序', "value": data1['data']['movie_screen']['sort']})
for dkey in item:
if dkey in dy and item[dkey]:
item[dkey].pop(0)
value_array = [
{"n": value.strip(), "v": value.strip()}
for value in item[dkey]
if value.strip() != ""
]
filters[str(item["id"])].append(
{"key": dkey, "name": dy[dkey], "value": value_array}
)
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
bba = self.url()
url = f'{self.host}/api/v1/movie/index_recommend?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()
videos = []
for item in data['data']:
if len(item['list']) > 0:
for it in item['list']:
try:
videos.append(self.voides(it))
except Exception as e:
continue
result = {"list": videos}
return result
def categoryContent(self, tid, pg, filter, extend):
body = {"type_id": tid, "sort": extend.get("sort", "by_default"), "class": extend.get("class", "类型"),
"area": extend.get("area", "地区"), "year": extend.get("year", "年份"), "page": str(pg),
"pageSize": "21"}
result = {}
list = []
bba = self.url(body)
url = f"{self.host}/api/v1/movie/screen/list?pack={bba[0]}&signature={bba[1]}"
data = self.fetch(url, headers=self.header()).json()['data']['list']
for item in data:
list.append(self.voides(item))
result["list"] = list
result["page"] = pg
result["pagecount"] = 9999
result["limit"] = 90
result["total"] = 999999
return result
def detailContent(self, ids):
body = {"id": ids[0]}
bba = self.url(body)
url = f'{self.host}/api/v1/movie/detail?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()['data']
video = {'vod_name': data.get('name'),'type_name': data.get('type_name'),'vod_year': data.get('year'),'vod_area': data.get('area'),'vod_remarks': data.get('dynami'),'vod_content': data.get('content')}
play = []
names = []
tasks = []
for itt in data["play_from"]:
name = itt["name"]
a = []
if len(itt["list"]) > 0:
names.append(name)
play.append(self.playeach(itt['list']))
else:
tasks.append({"movie_id": ids[0], "from_code": itt["code"]})
names.append(name)
if tasks:
with ThreadPoolExecutor(max_workers=len(tasks)) as executor:
results = executor.map(self.playlist, tasks)
for result in results:
if result:
play.append(result)
else:
play.append("")
video["vod_play_from"] = "$$$".join(names)
video["vod_play_url"] = "$$$".join(play)
result = {"list": [video]}
return result
def searchContent(self, key, quick, pg=1):
body = {"keyword": key, "sort": "", "type_id": "0", "page": str(pg), "pageSize": "10",
"res_type": "by_movie_name"}
bba = self.url(body)
url = f"{self.host}/api/v1/movie/search?pack={bba[0]}&signature={bba[1]}"
data = self.fetch(url, headers=self.header()).json()['data'].get('list')
videos = []
for it in data:
try:
videos.append(self.voides(it))
except Exception as e:
continue
result = {"list": videos, "page": pg}
return result
def playerContent(self, flag, id, vipFlags):
url = id
if "m3u8" not in url and "mp4" not in url:
try:
add = id.split('|||')
data = {"from_code": add[0], "play_url": add[1], "episode_id": add[2], "type": "play"}
bba = self.url(data)
data2 = self.fetch(f"{self.host}/api/v1/movie_addr/parse_url?pack={bba[0]}&signature={bba[1]}",
headers=self.header()).json()['data']
url = data2.get('play_url') or data2.get('download_url')
try:
url1 = self.fetch(url, headers=self.header(), allow_redirects=False).headers['Location']
if url1 and "http" in url1:
url = url1
except:
pass
except Exception as e:
pass
if '.jpg' in url or '.jpeg' in url or '.png' in url:
url = self.getProxyUrl() + "&url=" + b64encode(url.encode('utf-8')).decode('utf-8') + "&type=m3u8"
result = {}
result["parse"] = 0
result["url"] = url
result["header"] = {'user-agent': 'okhttp/4.9.2'}
return result
def localProxy(self, param):
url = b64decode(param["url"]).decode('utf-8')
durl = url[:url.rfind('/')]
data = self.fetch(url, headers=self.header()).content.decode("utf-8")
lines = data.strip().split('\n')
for index, string in enumerate(lines):
# if 'URI="' in string and 'http' not in string:
# lines[index] = index
# 暂时预留,貌似用不到
if '#EXT' not in string and 'http' not in string:
lines[index] = durl + ('' if string.startswith('/') else '/') + string
data = '\n'.join(lines)
return [200, "application/vnd.apple.mpegur", data]
def device_id(self):
characters = string.ascii_lowercase + string.digits
random_string = ''.join(random.choices(characters, k=32))
return random_string
def gethost(self):
headers = {
'User-Agent': 'okhttp/4.9.2',
'Connection': 'Keep-Alive',
}
response = self.fetch('https://app-site.ecoliving168.com/domain_v5.json', headers=headers).json()
url = response['api_service'].replace('/api/', '')
return url
def header(self):
headers = {
'User-Agent': 'Android',
'Accept': 'application/prs.55App.v2+json',
'timestamp': self.t,
'x-client-setting': '{"pure-mode":1}',
'x-client-uuid': '{"device_id":' + self.device + '}, "type":1,"brand":"Redmi", "model":"M2012K10C", "system_version":30, "sdk_version":"3.1.0.7"}',
'x-client-version': '3096 '
}
return headers
def url(self, id=None):
if not id:
id = {}
id["timestamp"] = self.t
public_key = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA02F/kPg5A2NX4qZ5JSns+bjhVMCC6JbTiTKpbgNgiXU+Kkorg6Dj76gS68gB8llhbUKCXjIdygnHPrxVHWfzmzisq9P9awmXBkCk74Skglx2LKHa/mNz9ivg6YzQ5pQFUEWS0DfomGBXVtqvBlOXMCRxp69oWaMsnfjnBV+0J7vHbXzUIkqBLdXSNfM9Ag5qdRDrJC3CqB65EJ3ARWVzZTTcXSdMW9i3qzEZPawPNPe5yPYbMZIoXLcrqvEZnRK1oak67/ihf7iwPJqdc+68ZYEmmdqwunOvRdjq89fQMVelmqcRD9RYe08v+xDxG9Co9z7hcXGTsUquMxkh29uNawIDAQAB'
encrypted_text = json.dumps(id)
public_key = RSA.import_key(b64decode(public_key))
cipher = PKCS1_v1_5.new(public_key)
encrypted_message = cipher.encrypt(encrypted_text.encode('utf-8'))
encrypted_message_base64 = b64encode(encrypted_message).decode('utf-8')
result = encrypted_message_base64.replace('+', '-').replace('/', '_').replace('=', '')
key = '635a580fcb5dc6e60caa39c31a7bde48'
sign = hmac.new(key.encode(), result.encode(), hashlib.md5).hexdigest()
return result, sign
def playlist(self, body):
try:
bba = self.url(body)
url = f'{self.host}/api/v1/movie_addr/list?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()['data']
return self.playeach(data)
except Exception:
return []
def playeach(self,data):
play_urls = []
for it in data:
if re.search(r"mp4|m3u8", it["play_url"]):
play_urls.append(f"{it['episode_name']}${it['play_url']}")
else:
play_urls.append(
f"{it['episode_name']}${it['from_code']}|||{it['play_url']}|||{it['episode_id']}"
)
return '#'.join(play_urls)
def voides(self, item):
if item['name'] or item['title']:
voide = {
"vod_id": item.get('id') or item.get('click'),
'vod_name': item.get('name') or item.get('title'),
'vod_pic': item.get('cover') or item.get('image'),
'vod_year': item.get('year') or item.get('label'),
'vod_remarks': item.get('dynamic') or item.get('sub_title')
}
return voide
def aes(self, text):
text = text.replace('-', '+').replace('_', '/') + '=='
key = b"e6d5de5fcc51f53d"
iv = b"2f13eef7dfc6c613"
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(b64decode(text)), AES.block_size).decode("utf-8")
return json.loads(pt)
-225
View File
@@ -1,225 +0,0 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import json
import sys
import threading
import uuid
import requests
sys.path.append('..')
from base.spider import Spider
import time
from Crypto.Hash import MD5, SHA1
class Spider(Spider):
'''
配置示例:
{
"key": "xxxx",
"name": "xxxx",
"type": 3,
"api": ".所在路径/金牌.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"site": "https://www.jiabaide.cn,域名2,域名3"
}
},
'''
def init(self, extend=""):
if extend:
hosts=json.loads(extend)['site']
self.host = self.host_late(hosts)
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
cdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/get/filer/type", headers=self.getheaders()).json()
fdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/get/filer/list", headers=self.getheaders()).json()
result = {}
classes = []
filters={}
for k in cdata['data']:
classes.append({
'type_name': k['typeName'],
'type_id': str(k['typeId']),
})
sort_values = [{"n": "最近更新", "v": "2"},{"n": "人气高低", "v": "3"}, {"n": "评分高低", "v": "4"}]
for tid, d in fdata['data'].items():
current_sort_values = sort_values.copy()
if tid == '1':
del current_sort_values[0]
filters[tid] = [
{"key": "type", "name": "类型",
"value": [{"n": i["itemText"], "v": i["itemValue"]} for i in d["typeList"]]},
*([] if not d["plotList"] else [{"key": "v_class", "name": "剧情",
"value": [{"n": i["itemText"], "v": i["itemText"]}
for i in d["plotList"]]}]),
{"key": "area", "name": "地区",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["districtList"]]},
{"key": "year", "name": "年份",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["yearList"]]},
{"key": "lang", "name": "语言",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["languageList"]]},
{"key": "sort", "name": "排序", "value": current_sort_values}
]
result['class'] = classes
result['filters'] = filters
return result
def homeVideoContent(self):
data1 = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/home/all/list", headers=self.getheaders()).json()
data2=self.fetch(f"{self.host}/api/mw-movie/anonymous/home/hotSearch",headers=self.getheaders()).json()
data=[]
for i in data1['data'].values():
data.extend(i['list'])
data.extend(data2['data'])
vods=self.getvod(data)
return {'list':vods}
def categoryContent(self, tid, pg, filter, extend):
params = {
"area": extend.get('area', ''),
"filterStatus": "1",
"lang": extend.get('lang', ''),
"pageNum": pg,
"pageSize": "30",
"sort": extend.get('sort', '1'),
"sortBy": "1",
"type": extend.get('type', ''),
"type1": tid,
"v_class": extend.get('v_class', ''),
"year": extend.get('year', '')
}
data = self.fetch(f"{self.host}/api/mw-movie/anonymous/video/list?{self.js(params)}", headers=self.getheaders(params)).json()
result = {}
result['list'] = self.getvod(data['data']['list'])
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/detail?id={ids[0]}",headers=self.getheaders({'id':ids[0]})).json()
vod=self.getvod([data['data']])[0]
vod['vod_play_from']='嗷呜有金牌'
vod['vod_play_url'] = '#'.join(
f"{i['name'] if len(vod['episodelist']) > 1 else vod['vod_name']}${ids[0]}@@{i['nid']}" for i in
vod['episodelist'])
vod.pop('episodelist', None)
return {'list':[vod]}
def searchContent(self, key, quick, pg="1"):
params = {
"keyword": key,
"pageNum": pg,
"pageSize": "8",
"sourceCode": "1"
}
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/searchByWord?{self.js(params)}",headers=self.getheaders(params)).json()
vods=self.getvod(data['data']['result']['list'])
return {'list':vods,'page':pg}
def playerContent(self, flag, id, vipFlags):
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'DNT': '1',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'Origin': self.host,
'Referer': f'{self.host}/'
}
ids=id.split('@@')
pdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id={ids[0]}&nid={ids[1]}",headers=self.getheaders({'clientType':'1','id': ids[0], 'nid': ids[1]})).json()
vlist=[]
for i in pdata['data']['list']:vlist.extend([i['resolutionName'],i['url']])
return {'parse':0,'url':vlist,'header':self.header}
def localProxy(self, param):
pass
def host_late(self, url_list):
if isinstance(url_list, str):
urls = [u.strip() for u in url_list.split(',')]
else:
urls = url_list
if len(urls) <= 1:
return urls[0] if urls else ''
results = {}
threads = []
def test_host(url):
try:
start_time = time.time()
response = requests.head(url, timeout=1.0, allow_redirects=False)
delay = (time.time() - start_time) * 1000
results[url] = delay
except Exception as e:
results[url] = float('inf')
for url in urls:
t = threading.Thread(target=test_host, args=(url,))
threads.append(t)
t.start()
for t in threads:
t.join()
return min(results.items(), key=lambda x: x[1])[0]
def md5(self, sign_key):
md5_hash = MD5.new()
md5_hash.update(sign_key.encode('utf-8'))
md5_result = md5_hash.hexdigest()
return md5_result
def js(self, param):
return '&'.join(f"{k}={v}" for k, v in param.items())
def getheaders(self, param=None):
if param is None:param = {}
t=str(int(time.time()*1000))
param['key']='cb808529bae6b6be45ecfab29a4889bc'
param['t']=t
sha1_hash = SHA1.new()
sha1_hash.update(self.md5(self.js(param)).encode('utf-8'))
sign = sha1_hash.hexdigest()
deviceid = str(uuid.uuid4())
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'sign': sign,
't': t,
'deviceid':deviceid
}
return headers
def convert_field_name(self, field):
field = field.lower()
if field.startswith('vod') and len(field) > 3:
field = field.replace('vod', 'vod_')
if field.startswith('type') and len(field) > 4:
field = field.replace('type', 'type_')
return field
def getvod(self, array):
return [{self.convert_field_name(k): v for k, v in item.items()} for item in array]
Binary file not shown.
Binary file not shown.
Binary file not shown.
File renamed without changes.
-378
View File
@@ -1,378 +0,0 @@
globalThis.getRandomItem = function(items) {
return items[Math.random() * items.length | 0];
}
var rule = {
title: '采集之王[合]',
author: '道长',
version: '20240706 beta17',
update_info: ``.trim(),
host: '',
homeTid: '',
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
searchUrl: '/api.php/provide/vod/?wd=**&pg=#TruePage##page=fypage',
classUrl: '/api.php/provide/vod/',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyfilter',
filter_url: '{{fl.类型}}',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
limit: 20,
search_limit: 10,
searchable: 1,
quickSearch: 0,
filterable: 1,
play_parse: true,
parse_url: '',
search_match: false,
search_pic: true,
预处理: $js.toString(() => {
function getClasses(item) {
let classes = [];
if (item.class_name && item.class_url) {
if (!/&|电影|电视剧|综艺|动漫[\u4E00-\u9FA5]+/.test(item.class_name)) {
try {
item.class_name = ungzip(item.class_name)
} catch (e) {
log(`不识别的class_name导致gzip解码失败:${e}`)
return classes
}
}
let names = item.class_name.split('&');
let urls = item.class_url.split('&');
let cnt = Math.min(names.length, urls.length);
for (let i = 0; i < cnt; i++) {
classes.push({
'type_id': urls[i],
'type_name': names[i]
});
}
}
return classes
}
if (typeof(batchFetch) === 'function') {
rule.search_limit = 16;
log('当前程序支持批量请求[batchFetch],搜索限制已设置为16');
}
let _url = rule.params;
log(`传入参数:${_url}`);
if (_url && typeof(_url) === 'string' && /^(http|file)/.test(_url)) {
if (_url.includes('$')) {
let _url_params = _url.split('$');
_url = _url_params[0];
rule.search_match = !!(_url_params[1]);
if (_url_params.length > 2) {
rule.search_pic = !!(_url_params[2]);
}
}
let html = request(_url);
let json = JSON.parse(html);
let _classes = [];
rule.filter = {};
rule.filter_def = {};
json.forEach(it => {
let _obj = {
type_name: it.name,
type_id: it.url,
parse_url: it.parse_url || '',
searchable: it.searchable !== 0,
api: it.api || '',
cate_exclude: it.cate_exclude || '',
cate_excludes: it.cate_excludes || [],
};
_classes.push(_obj);
try {
let json1 = [];
if (it.class_name && it.class_url) {
json1 = getClasses(it);
} else {
json1 = JSON.parse(request(urljoin(_obj.type_id, _obj.api || rule.classUrl))).class;
}
if (_obj.cate_excludes && Array.isArray(_obj.cate_excludes) && _obj.cate_excludes.length > 0) {
json1 = json1.filter(cl => !_obj.cate_excludes.includes(cl.type_name));
} else if (_obj.cate_exclude) {
json1 = json1.filter(cl => !new RegExp(_obj.cate_exclude, 'i').test(cl.type_name));
}
rule.filter[_obj.type_id] = [{
"key": "类型",
"name": "类型",
"value": json1.map(i => {
return {
"n": i.type_name,
'v': i.type_id
}
})
}];
if (json1.length > 0) {
rule.filter_def[it.url] = {
"类型": json1[0].type_id
};
}
} catch (e) {
rule.filter[it.url] = [{
"key": "类型",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}]
}];
}
});
rule.classes = _classes;
}
}),
class_parse: $js.toString(() => {
input = rule.classes;
}),
推荐: $js.toString(() => {
VODS = [];
if (rule.classes) {
let randomClass = getRandomItem(rule.classes);
let _url = urljoin(randomClass.type_id, input);
if (randomClass.api) {
_url = _url.replace('/api.php/provide/vod/', randomClass.api)
}
try {
let html = request(_url, {
timeout: rule.timeout
});
let json = JSON.parse(html);
VODS = json.list;
VODS.forEach(it => {
it.vod_id = randomClass.type_id + '$' + it.vod_id;
it.vod_remarks = it.vod_remarks + '|' + randomClass.type_name;
});
} catch (e) {}
}
}),
一级: $js.toString(() => {
VODS = [];
if (rule.classes) {
let _url = urljoin(MY_CATE, input);
let current_vod = rule.classes.find(item => item.type_id === MY_CATE);
if (current_vod && current_vod.api) {
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
}
let html = request(_url);
let json = JSON.parse(html);
VODS = json.list;
VODS.forEach(it => {
it.vod_id = MY_CATE + '$' + it.vod_id
});
}
}),
二级: $js.toString(() => {
VOD = {};
if (orId === 'update_info') {
VOD = {
vod_content: rule.update_info.trim(),
vod_name: '更新日志',
type_name: '更新日志',
vod_pic: 'https://resource-cdn.tuxiaobei.com/video/FtWhs2mewX_7nEuE51_k6zvg6awl.png',
vod_remarks: `版本:${rule.version}`,
vod_play_from: '道长在线',
vod_play_url: '随机小视频$http://api.yujn.cn/api/zzxjj.php',
};
} else {
if (rule.classes) {
let _url = urljoin(fyclass, input);
let current_vod = rule.classes.find(item => item.type_id === fyclass);
if (current_vod && current_vod.api) {
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
}
let html = request(_url);
let json = JSON.parse(html);
let data = json.list;
VOD = data[0];
if (current_vod && current_vod.type_name) {
VOD.vod_play_from = VOD.vod_play_from.split('$$$').map(it => current_vod.type_name + '|' + it).join('$$$')
}
}
}
}),
搜索: $js.toString(() => {
VODS = [];
if (rule.classes) {
let canSearch = rule.classes.filter(it => it.searchable);
let page = Number(MY_PAGE);
page = (MY_PAGE - 1) % Math.ceil(canSearch.length / rule.search_limit) + 1;
let truePage = Math.ceil(MY_PAGE / Math.ceil(canSearch.length / rule.search_limit));
if (rule.search_limit) {
let start = (page - 1) * rule.search_limit;
let end = page * rule.search_limit;
let t1 = new Date().getTime();
let searchMode = typeof(batchFetch) === 'function' ? '批量' : '单个';
log('start:' + start);
log('end:' + end);
log('搜索模式:' + searchMode);
log('精准搜索:' + rule.search_match);
log('强制获取图片:' + rule.search_pic);
if (start < canSearch.length) {
let search_classes = canSearch.slice(start, end);
let urls = [];
search_classes.forEach(it => {
let _url = urljoin(it.type_id, input);
if (it.api) {
_url = _url.replace('/api.php/provide/vod/', it.api)
}
_url = _url.replace("#TruePage#", "" + truePage);
urls.push(_url);
});
let results_list = [];
let results = [];
if (typeof(batchFetch) === 'function') {
let reqUrls = urls.map(it => {
return {
url: it,
options: {
timeout: rule.timeout
}
}
});
let rets = batchFetch(reqUrls);
let detailUrls = [];
let detailUrlCount = 0;
rets.forEach((ret, idx) => {
let it = search_classes[idx];
if (ret) {
try {
let json = JSON.parse(ret);
let data = json.list;
data.forEach(i => {
i.site_name = it.type_name;
i.vod_id = it.type_id + '$' + i.vod_id;
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
});
if (rule.search_match) {
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
}
if (data.length > 0) {
if (rule.search_pic && !data[0].vod_pic) {
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
detailUrls.push(detailUrl);
results_list.push({
data: data,
has_pic: false,
detailUrlCount: detailUrlCount
});
detailUrlCount++;
} else {
results_list.push({
data: data,
has_pic: true
});
}
}
} catch (e) {
log(`请求:${it.type_id}发生错误:${e.message}`)
}
}
});
let reqUrls2 = detailUrls.map(it => {
return {
url: it,
options: {
timeout: rule.timeout
}
}
});
let rets2 = reqUrls2.length > 0 ? batchFetch(reqUrls2) : [];
for (let k = 0; k < results_list.length; k++) {
let result_data = results_list[k].data;
if (!results_list[k].has_pic) {
try {
let detailJson = JSON.parse(rets2[results_list[k].detailUrlCount]);
log('二级数据列表元素数:' + detailJson.list.length);
result_data.forEach((d, _seq) => {
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
if (detailVodPic) {
Object.assign(d, {
vod_pic: detailVodPic.vod_pic
});
}
});
} catch (e) {
log(`强制获取网站${result_data[0].site_name}的搜索图片失败:${e.message}`);
}
}
results = results.concat(result_data);
}
} else {
urls.forEach((_url, idx) => {
let it = search_classes[idx];
try {
let html = request(_url);
let json = JSON.parse(html);
let data = json.list;
data.forEach(i => {
i.vod_id = it.type_id + '$' + i.vod_id;
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
});
if (rule.search_match) {
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
}
if (data.length > 0) {
if (rule.search_pic && !data[0].vod_pic) {
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
try {
let detailJson = JSON.parse(request(detailUrl));
log('二级数据列表元素数:' + detailJson.list.length);
data.forEach((d, _seq) => {
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
if (detailVodPic) {
Object.assign(d, {
vod_pic: detailVodPic.vod_pic
});
}
});
} catch (e) {
log(`强制获取网站${it.type_id}的搜索图片失败:${e.message}`);
}
}
results = results.concat(data);
}
results = results.concat(data);
} catch (e) {
log(`请求:${it.type_id}发生错误:${e.message}`)
}
});
}
VODS = results;
let t2 = new Date().getTime();
log(`${searchMode}搜索:${urls.length}个站耗时:${(Number(t2) - Number(t1))}ms`)
}
}
}
}),
lazy: $js.toString(() => {
let parse_url = '';
if (flag && flag.includes('|')) {
let type_name = flag.split('|')[0];
let current_vod = rule.classes.find(item => item.type_name === type_name);
if (current_vod && current_vod.parse_url) {
parse_url = current_vod.parse_url
}
}
if (/\.(m3u8|mp4)/.test(input)) {
input = {
parse: 0,
url: input
}
} else {
if (parse_url.startsWith('json:')) {
let purl = parse_url.replace('json:', '') + input;
let html = request(purl);
input = {
parse: 0,
url: JSON.parse(html).url
}
} else {
input = parse_url + input;
}
}
}),
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"SiteUrl": "",
"Domains": [
"https://woog.nxog.eu.org",
"https://woog.nxog.fun",
"https://woog.欧.我爱你"
"https://woog.nxog.eu.org"
],
"SiteWord": "wogg",
"SiteName": "玩偶",
+2 -2
View File
@@ -5,6 +5,6 @@
"线路数组": "javascript:;\">&&</a>",
"数组": "<li>&&</li>",
"图片": "data-echo=\"&&\"",
"分类url": "https://vip.wwgz.cn:5200/vod-list-id-{cateId}-pg-{catePg}-order--by-time-class-0-year-{year}-letter--area-{area}-lang-.html",
"分类url": "https://vip.wwgz.cn:5200/vod-list-id-{cateId}-pg-{catePg}-order--by-time-class-0-year-{year}-letter--area-{area}-lang-.html;;d",
"分类": "电影$1#电视剧$2#动漫$4#综艺$3#短剧$26"
}
}
+435 -609
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+103 -59
View File
@@ -212,6 +212,54 @@
"ua": ""
}
},
{
"key": "热剧",
"name": "热剧丨APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppQi",
"ext": {
"url": "https://www.rebovod.com",
"site": "",
"dataKey": "8191A7F47B37882F",
"dataIv": "8191A7F47B37882F",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "魔方",
"name": "魔方丨APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://www.pjb523.sbs",
"site": "",
"dataKey": "1234567887654321",
"dataIv": "1234567887654321",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "稀饭",
"name": "稀饭丨APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://app.xifanys.com",
"site": "",
"dataKey": "HM6Ly9yeS4ya3dvL",
"dataIv": "HM6Ly9yeS4ya3dvL",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "爱看",
"name": "爱看丨APP",
@@ -276,22 +324,6 @@
"ua": ""
}
},
{
"key": "追番",
"name": "追番丨APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "",
"site": "https://ysappapi.oss-cn-shenzhen.aliyuncs.com/getapi.txt",
"dataKey": "A1akVPQmnnE4Fz9Z",
"dataIv": "A1akVPQmnnE4Fz9Z",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "万能",
"name": "万能丨APP",
@@ -372,22 +404,6 @@
"ua": ""
}
},
{
"key": "豆丁",
"name": "豆丁丨APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "",
"site": "http://45.66.157.77:9427/dd.txt",
"dataKey": "Xasdasd!123123dd",
"dataIv": "Xasdasd!123123dd",
"deviceId": "",
"version": "",
"ua": ""
}
},
{
"key": "蔬菜",
"name": "蔬菜丨APP",
@@ -492,20 +508,6 @@
"version": ""
}
},
{
"key": "米诺",
"name": "米诺|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://www.milkidc.cn",
"dataKey": "20c79c979da8db0f",
"dataIv": "20c79c979da8db0f",
"deviceId": "",
"version": ""
}
},
{
"key": "云速",
"name": "云速|APP",
@@ -838,22 +840,64 @@
"filterable": 1
},
{
"key": "音海",
"name": "音海|搜索",
"type": 3,
"api": "csp_YinHai",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "盘搜",
"name": "盘搜|搜索",
"key": "夸克盘搜",
"name": "夸克|搜索",
"type": 3,
"api": "csp_PanSou",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
"filterable": 1,
"ext": {
"cloudDrives": "quark"
}
},
{
"key": "UC盘搜",
"name": "UC|搜索",
"type": 3,
"api": "csp_PanSou",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"cloudDrives": "uc"
}
},
{
"key": "天翼盘搜",
"name": "天翼|搜索",
"type": 3,
"api": "csp_PanSou",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"cloudDrives": "tianyi"
}
},
{
"key": "123盘搜",
"name": "123|搜索",
"type": 3,
"api": "csp_PanSou",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"cloudDrives": "123"
}
},
{
"key": "百度盘搜",
"name": "百度|搜索",
"type": 3,
"api": "csp_PanSou",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"cloudDrives": "baidu"
}
},
{
"key": "百酷",
@@ -1372,7 +1416,7 @@
"name": "荐片|磁力",
"api": "csp_Jianpian",
"type": 3,
"ext": "https://ij1men.slsw6.com"
"ext": "https://api.ztcgi.com"
},
{
"key": "修罗",
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -15,7 +15,7 @@
},
{
"key": "Doubana",
"name": "🐮【更新日期:20250902】🐮",
"name": "🐮【更新日期:20250914】🐮",
"type": 3,
"api": "csp_DoubanGuard",
"searchable": 0,
Binary file not shown.
File diff suppressed because it is too large. Load diff
+35 -41
View File
@@ -2,7 +2,6 @@
AMC电影,http://61.221.215.25:8800/hls/43/index.m3u8
CCTV1,http://58.57.40.22:9901/tsfile/live/0001_1.m3u8
CCTV1,http://112.123.206.32:808/hls/1/index.m3u8
CCTV1,http://8.138.7.223/【公众号:榴芒电视】/cctv1.m3u8
CCTV10,http://39.164.160.249:9901/tsfile/live/0010_1.m3u8
CCTV10,http://58.57.40.22:9901/tsfile/live/1010_1.m3u8
CCTV10,http://60.29.124.66:6080/hls/21/index.m3u8
@@ -18,9 +17,9 @@ CCTV13,http://58.57.40.22:9901/tsfile/live/1013_1.m3u8
CCTV14,http://39.164.160.249:9901/tsfile/live/0014_1.m3u8
CCTV14,http://58.57.40.22:9901/tsfile/live/1014_1.m3u8
CCTV14,http://1.24.190.98:10080/hls/14/index.m3u8
CCTV15,http://39.164.160.249:9901/tsfile/live/0015_1.m3u8
CCTV15,http://58.57.40.22:9901/tsfile/live/1015_1.m3u8
CCTV15,http://222.134.245.16:9901/tsfile/live/0015_1.m3u8
CCTV15,http://183.11.239.36:808/hls/102/index.m3u8
CCTV16,http://183.11.239.36:808/hls/169/index.m3u8
CCTV17,http://58.57.40.22:9901/tsfile/live/0019_1.m3u8
CCTV17,http://120.238.94.10:9901/tsfile/live/1048_1.m3u8
@@ -29,7 +28,6 @@ CCTV17,http://120.76.248.139/live/bfgd/4200000204.m3u8
CCTV2,http://39.164.160.249:9901/tsfile/live/0002_1.m3u8
CCTV2,http://58.57.40.22:9901/tsfile/live/1001_1.m3u8
CCTV2,http://112.123.206.32:808/hls/2/index.m3u8
CCTV2,http://60.29.124.66:6080/hls/13/index.m3u8
CCTV3,http://58.57.40.22:9901/tsfile/live/1002_1.m3u8
CCTV4,http://58.57.40.22:9901/tsfile/live/1003_1.m3u8
CCTV4,http://60.29.124.66:6080/hls/15/index.m3u8
@@ -37,7 +35,7 @@ CCTV5,http://58.57.40.22:9901/tsfile/live/1004_1.m3u8
CCTV5,http://60.29.124.66:6080/hls/16/index.m3u8
CCTV5+,http://58.57.40.22:9901/tsfile/live/1005_1.m3u8
CCTV5+,http://120.76.248.139/live/bfgd/4200000246.m3u8
CCTV5+,http://182.150.23.74:808/hls/16/index.m3u8
CCTV5+,http://222.169.85.8:9901/tsfile/live/0116_1.m3u8
CCTV6,http://58.57.40.22:9901/tsfile/live/1006_1.m3u8
CCTV6,http://60.29.124.66:6080/hls/17/index.m3u8
CCTV6,http://183.11.239.36:808/hls/94/index.m3u8
@@ -56,7 +54,6 @@ CCTV怀旧剧场,http://61.184.46.85:9901/tsfile/live/1022_1.m3u8?key=txiptv&pla
CCTV第一剧场,http://61.184.46.85:9901/tsfile/live/1021_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV第一剧场,http://120.198.95.220:9901/tsfile/live/1071_1.m3u8?key=txiptv
CCTV风云足球,http://61.184.46.85:9901/tsfile/live/1020_1.m3u8?key=txiptv&playlive=1&authid=0
CHC动作电影,http://111.43.126.240:9003/hls/75/index.m3u8
CHC动作电影,http://113.195.172.192:808/hls/114/index.m3u8
CHC家庭影院,http://113.195.172.192:808/hls/113/index.m3u8
CHC家庭影院,http://61.162.52.6:8088/newlive/live/hls/60/live.m3u8
@@ -67,33 +64,27 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
万州三峡移民,http://123.146.162.24:8017/c2F0hmi/1000/live.m3u8
万州三峡移民,http://123.146.162.24:8013/tslslive/PU2vzMI/hls/live_sd.m3u8?zzhongqd
万荣综合,http://60.222.246.220:19433/hls1.m3u8
三沙卫视,http://113.195.7.46:9901/tsfile/live/1078_1.m3u8?key=txiptv&playlive=1&authid=0
东南卫视,http://58.57.40.22:9901/tsfile/live/1037_1.m3u8
东南卫视,http://36.32.174.67:60080/newlive/live/hls/33/live.m3u8
东南卫视,http://58.19.43.46:9901/tsfile/live/1046_1.m3u8
东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
东方卫视,http://223.105.252.8/PLTV/4/224/3221228150/index.m3u8
东方卫视,http://58.57.40.22:9901/tsfile/live/1030_1.m3u8
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
中华特产,http://120.76.248.139/live/bfgd/4200000158.m3u8
中国教育2,http://113.195.7.46:9901/tsfile/live/1033_1.m3u8?key=txiptv&playlive=1&authid=0
乐家购物,http://112.46.105.20:8009/hls/23/index.m3u8
乐至综合,http://175.155.106.72:89/live1/live1.m3u8?zsicd
云南卫视,http://39.164.160.249:9901/tsfile/live/0119_1.m3u8
云南卫视,http://58.57.40.22:9901/tsfile/live/1047_1.m3u8
云南卫视,http://120.238.94.10:9901/tsfile/live/1069_1.m3u8
云南卫视,http://36.32.174.67:60080/newlive/live/hls/45/live.m3u8
伊犁哈萨克,http://110.153.180.106:55555/out_3/index.m3u8
伊犁哈萨克,http://110.153.180.106:55555/out_3/index.m3u8?zxinjd
伊犁汉语综合,http://110.153.180.106:55555/out_1/index.m3u8
伊犁汉语综合,http://110.153.180.106:55555/out_1/index.m3u8?zxinjd
伊犁经济法制,http://110.153.180.106:55555/out_4/index.m3u8
伊犁经济法制,http://110.153.180.106:55555/out_4/index.m3u8?zxinjd
伊犁维吾尔,http://110.153.180.106:55555/out_2/index.m3u8
伊犁维吾尔,http://110.153.180.106:55555/out_2/index.m3u8?zxinjd
优优宝贝,http://120.76.248.139/live/bfgd/4200000153.m3u8
兵团八师石河子教育,http://124.88.144.73:1935/live/jiaoyu/playlist.m3u8
兵团八师石河子新闻综合,http://124.88.144.73:1935/live/xwzh/playlist.m3u8?zxinjd
兵团八师石河子经济生活,http://124.88.144.73:1935/live/dywt/playlist.m3u8?zxinjd
兵团卫视,http://183.11.239.36:808/hls/7/index.m3u8
兵团卫视,http://120.76.248.139/live/bfgd/4200000124.m3u8
兵团卫视,http://218.89.240.144:59901/tsfile/live/0115_1.m3u8
兵团卫视,http://218.13.170.98:9901/tsfile/live/0115_1.m3u8
内蒙古卫视,http://120.76.248.139/live/bfgd/4200000110.m3u8
内蒙古卫视,http://111.61.236.247:9081/hls/48/index.m3u8
内蒙古卫视,http://222.134.245.16:9901/tsfile/live/0109_1.m3u8
@@ -103,26 +94,31 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
农林卫视,http://112.46.85.60:8009/hls/27/index.m3u8
农林卫视,http://124.116.183.146:9901/tsfile/live/1004_1.m3u8
农林卫视,http://124.116.183.146:9901/tsfile/live/1004_1.m3u8?key=txiptv&playlive=1&authid=0
动漫秀场,http://113.195.7.46:9901/tsfile/live/1082_1.m3u8?key=txiptv&playlive=1&authid=0
北京卫视,http://39.164.160.249:9901/tsfile/live/0122_1.m3u8
北京卫视,http://58.57.40.22:9901/tsfile/live/1032_1.m3u8
北京卫视,http://222.134.245.16:9901/tsfile/live/0122_1.m3u8
卡酷少儿,http://58.57.40.22:9901/tsfile/live/1060_1.m3u8
卡酷少儿,http://218.13.170.98:9901/tsfile/live/1021_1.m3u8
卡酷少儿,http://60.29.124.66:6080/hls/58/index.m3u8
厦门卫视,http://183.11.239.36:808/hls/17/index.m3u8
厦门卫视,http://113.195.7.46:9901/tsfile/live/0129_1.m3u8?key=txiptv&playlive=1&authid=0
双流综合,http://171.221.250.130:18888/27e684978eb642eeb90ab815f6cc51bf/c41893de5e8645b3b43aef1640859b0d.m3u8?zsicd,
双流综合,http://171.221.250.130:18888/27e684978eb642eeb90ab815f6cc51bf/c41893de5e8645b3b43aef1640859b0d.m3u8?zsicd
合肥新闻,http://112.27.235.94:8000/hls/18/index.m3u8
吉林卫视,http://58.57.40.22:9901/tsfile/live/1050_1.m3u8
吉林卫视,http://58.19.43.46:9901/tsfile/live/1007_1.m3u8
吉林卫视,http://111.61.236.247:9081/hls/45/index.m3u8
哈哈炫动,http://58.57.40.22:9901/tsfile/live/1061_1.m3u8
哈哈炫动,http://120.238.94.10:9901/tsfile/live/1037_1.m3u8
哈尔滨影视,http://111.43.126.240:9003/hls/5/index.m3u8
哈哈炫动,http://60.29.124.66:6080/hls/62/index.m3u8
哈哈炫动,http://113.195.7.46:9901/tsfile/live/1009_1.m3u8?key=txiptv&playlive=0&authid=0
哈尔滨生活,http://111.43.126.240:9003/hls/3/index.m3u8
四川卫视,http://58.57.40.22:9901/tsfile/live/1046_1.m3u8
四川卫视,http://120.238.94.10:9901/tsfile/live/1058_1.m3u8
四川卫视,http://58.19.43.46:9901/tsfile/live/1043_1.m3u8
四川卫视,http://124.116.183.146:9901/tsfile/live/0123_1.m3u8
四川科教,http://182.150.115.21:8030/pcgacg/pcgacg_0.m3u8
四海钓鱼,http://120.76.248.139/live/bfgd/4200000229.m3u8
垫江综合,http://123.146.162.24:8013/tslslive/noEX9SG/hls/live_sd.m3u8?zzhongqd
大湾区卫视,http://222.128.55.152:9080/live/dwq.m3u8
大湾区卫视,http://183.11.239.36:808/hls/132/index.m3u8
天津卫视,http://58.57.40.22:9901/tsfile/live/1034_1.m3u8
@@ -136,19 +132,19 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
宁夏卫视,http://58.19.43.46:9901/tsfile/live/1003_1.m3u8
安徽卫视,http://39.164.160.249:9901/tsfile/live/0130_1.m3u8
安徽卫视,http://58.57.40.22:9901/tsfile/live/1033_1.m3u8
安徽卫视,http://58.19.43.46:9901/tsfile/live/1040_1.m3u8
安徽卫视,http://124.116.183.146:9901/tsfile/live/0130_1.m3u8
安徽综艺体育,http://112.27.235.94:8000/hls/25/index.m3u8
山东卫视,http://39.164.160.249:9901/tsfile/live/0131_1.m3u8
山东卫视,http://183.11.239.36:808/hls/43/index.m3u8
山东卫视,http://120.76.248.139/live/bfgd/4200000099.m3u8
山东文旅,http://58.57.40.22:9901/tsfile/live/1023_1.m3u8
巴音郭楞州,http://124.88.144.73:1935/live/dywt/playlist.m3u8
广东体育,http://120.238.94.10:9901/tsfile/live/1012_1.m3u8
广东体育,http://183.11.239.36:808/hls/2/index.m3u8
广东体育,http://218.13.170.98:9901/tsfile/live/0019_1.m3u8
广东卫视,http://39.164.160.249:9901/tsfile/live/0125_1.m3u8
广东卫视,http://58.57.40.22:9901/tsfile/live/1039_1.m3u8
广东卫视,http://120.238.94.10:9901/tsfile/live/1008_1.m3u8
广东卫视,http://183.11.239.36:808/hls/80/index.m3u8
广东卫视,http://120.76.248.139/live/bfgd/4200000092.m3u8
广东卫视,http://124.116.183.146:9901/tsfile/live/0125_1.m3u8
广东民生,http://183.11.239.36:808/hls/18/index.m3u8
广东珠江,http://120.238.94.10:9901/tsfile/live/1009_1.m3u8
广东珠江,http://183.11.239.36:808/hls/83/index.m3u8
@@ -156,14 +152,12 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
广西卫视,http://58.57.40.22:9901/tsfile/live/1049_1.m3u8
广西卫视,http://36.32.174.67:60080/newlive/live/hls/38/live.m3u8
广西卫视,http://58.19.43.46:9901/tsfile/live/1004_1.m3u8
康巴卫视,http://218.89.240.144:59901/tsfile/live/1010_1.m3u8
康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
延边卫视,http://120.76.248.139/live/bfgd/4200000117.m3u8
延边卫视,http://111.43.126.240:9003/hls/65/index.m3u8
新疆卫视,http://39.164.160.249:9901/tsfile/live/0110_1.m3u8
新疆卫视,http://58.57.40.22:9901/tsfile/live/1055_1.m3u8
新疆卫视,http://36.32.174.67:60080/newlive/live/hls/47/live.m3u8
新疆卫视,http://183.11.239.36:808/hls/65/index.m3u8
新视觉,http://120.76.248.139/live/bfgd/4200000249.m3u8
朝阳新闻综合,http://120.76.248.139/live/bfgd/4200000282.m3u8
江津新闻,http://222.179.155.21:1935/ch1.m3u8?zzhongqd
@@ -171,14 +165,15 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
江苏卫视,http://58.57.40.22:9901/tsfile/live/1031_1.m3u8
江苏卫视,http://183.11.239.36:808/hls/38/index.m3u8
江苏卫视,http://120.76.248.139/live/bfgd/4200000085.m3u8
江西卫视,http://39.164.160.249:9901/tsfile/live/0138_1.m3u8
江西卫视,http://58.57.40.22:9901/tsfile/live/1043_1.m3u8
江西卫视,http://36.32.174.67:60080/newlive/live/hls/22/live.m3u8
江西卫视,http://58.19.43.46:9901/tsfile/live/1045_1.m3u8
江西卫视,http://183.11.239.36:808/hls/44/index.m3u8
河北卫视,http://39.164.160.249:9901/tsfile/live/0117_1.m3u8
河北卫视,http://58.57.40.22:9901/tsfile/live/1044_1.m3u8
河北卫视,http://36.32.174.67:60080/newlive/live/hls/36/live.m3u8
河南卫视,http://39.164.160.249:9901/tsfile/live/0139_1.m3u8
河南卫视,http://58.57.40.22:9901/tsfile/live/1048_1.m3u8
河南卫视,http://58.19.43.46:9901/tsfile/live/1006_1.m3u8
河南卫视,http://120.238.94.10:9901/tsfile/live/1068_1.m3u8
津南一套,http://61.147.106.103/play.jinnantv.top/live/JNTV1.m3u8?ztianjd&wsSession=4e59297ef5846f4a7cf02eb3-172672213891355&wsIPSercert=6d426cba8b106cdec9147b1e2a9ace7c&wsiphost=local&wsBindIP=1
浙江卫视,http://58.57.40.22:9901/tsfile/live/1029_1.m3u8
海南卫视,http://58.57.40.22:9901/tsfile/live/1000_1.m3u8
@@ -189,16 +184,14 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/playlist.m3u8
深圳卫视,http://58.57.40.22:9901/tsfile/live/1036_1.m3u8
深圳卫视,http://38.64.72.148:80/hls/modn/list/4007/playlist.m3u8
深圳卫视,http://120.76.248.139/live/bfgd/4200000100.m3u8
深圳卫视,http://113.57.111.4:1111/tsfile/live/1023_1.m3u8
深圳卫视,http://124.116.183.146:9901/tsfile/live/0126_1.m3u8
湖北卫视,http://58.57.40.22:9901/tsfile/live/1038_1.m3u8
湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
湖北卫视,http://124.116.183.146:9901/tsfile/live/0132_1.m3u8
湖北卫视,http://183.11.239.36:808/hls/46/index.m3u8
湖北卫视,http://120.76.248.139/live/bfgd/4200000102.m3u8
湖南卫视,http://39.164.160.249:9901/tsfile/live/0128_1.m3u8
湖南卫视,http://58.57.40.22:9901/tsfile/live/1028_1.m3u8
湖南卫视,http://183.11.239.36:808/hls/36/index.m3u8
湖南卫视,http://120.76.248.139/live/bfgd/4200000086.m3u8
湖南卫视,http://124.116.183.146:9901/tsfile/live/0128_1.m3u8
玛纳斯,http://218.84.127.245:1026/hls/main1/playlist.m3u8?zxinjd
玛纳斯综合,http://218.84.127.245:1026/hls/main1/playlist.m3u8?zxinjd,
环球旅游,http://120.76.248.139/live/bfgd/4200000147.m3u8
@@ -214,15 +207,16 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
西安都市,http://112.46.105.20:8009/hls/29/index.m3u8
西藏卫视,http://120.238.94.10:9901/tsfile/live/1077_1.m3u8
西藏卫视,http://36.32.174.67:60080/newlive/live/hls/48/live.m3u8
贵州卫视,http://39.164.160.249:9901/tsfile/live/0120_1.m3u8
贵州卫视,http://58.57.40.22:9901/tsfile/live/1042_1.m3u8
贵州卫视,http://58.19.43.46:9901/tsfile/live/1011_1.m3u8
车迷频道,http://120.76.248.139/live/bfgd/4200000146.m3u8
辽宁公共,http://120.76.248.139/live/bfgd/4200000077.m3u8
辽宁公共,http://120.76.248.139/live/bfgd/4200000481.m3u8
辽宁北方,http://120.76.248.139/live/bfgd/4200000071.m3u8
辽宁卫视,http://39.164.160.249:9901/tsfile/live/0121_1.m3u8
辽宁卫视,http://58.57.40.22:9901/tsfile/live/1035_1.m3u8
辽宁卫视,http://58.19.43.46:9901/tsfile/live/1041_1.m3u8
辽宁卫视,http://183.11.239.36:808/hls/47/index.m3u8
辽宁影视剧,http://120.76.248.139/live/bfgd/4200000070.m3u8
辽宁教育青少,http://120.76.248.139/live/bfgd/4200000075.m3u8
辽宁生活,http://120.76.248.139/live/bfgd/4200000073.m3u8
@@ -233,21 +227,21 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
都市剧场,http://112.46.105.20:8009/hls/72/index.m3u8
鄂托克旗电视台,http://110.19.181.138:10080/hls/F509Rh7GR/F509Rh7GR_live.m3u8?zneimd
重庆卫视,http://36.32.174.67:60080/newlive/live/hls/34/live.m3u8
重庆卫视,http://124.116.183.146:9901/tsfile/live/0142_1.m3u8
重庆卫视,http://58.19.43.46:9901/tsfile/live/1042_1.m3u8
重庆卫视,http://183.11.239.36:808/hls/53/index.m3u8
重庆卫视,http://120.76.248.139/live/bfgd/4200000107.m3u8
重庆汽摩,http://120.76.248.139/live/bfgd/4200000168.m3u8
重庆汽摩,http://183.230.184.51:65500/tntv1.m3u8?zzhongqd
重庆汽摩,http://183.64.181.25:40023/rongchang01.m3u8?%E5%85%B3%E6%B3%A8%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7[%E6%99%B4%E5%9B%AD]
重庆汽摩,http://183.230.184.51:65500/tntv1.m3u8?zzhongqd
重庆汽摩,http://222.179.155.21:1935/ch1.m3u8?%E5%85%B3%E6%B3%A8%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7[%E6%99%B4%E5%9B%AD]
金鹰卡通,http://58.57.40.22:9901/tsfile/live/1059_1.m3u8
金鹰卡通,http://58.19.43.46:9901/tsfile/live/1000_1.m3u8
金鹰卡通,http://116.128.242.83:9901/tsfile/live/1002_1.m3u8
金鹰卡通,http://218.89.240.144:59901/tsfile/live/1002_1.m3u8
金鹰卡通,http://58.57.40.22:9901/tsfile/live/1059_1.m3u8
金鹰卡通,http://101.66.195.69:9901/tsfile/live/1000_1.m3u8?key=txiptv&playlive=0&authid=0
铜梁综合,http://183.64.174.171:40123/ch1.m3u8?zzhongqd
陕西体育休闲,http://112.46.105.20:8009/hls/24/index.m3u8
陕西新闻咨询,http://112.46.105.20:8009/hls/18/index.m3u8
陕西秦腔,http://112.46.105.20:8009/hls/22/index.m3u8
陕西西部电影,http://112.46.105.20:8009/hls/62/index.m3u8
陕西都市青春,http://112.46.105.20:8009/hls/19/index.m3u8
陕西银龄,http://112.46.105.20:8009/hls/20/index.m3u8
青海卫视,http://58.57.40.22:9901/tsfile/live/1057_1.m3u8
@@ -256,7 +250,7 @@ CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
青海卫视,http://120.76.248.139/live/bfgd/4200000111.m3u8
黎城综合,http://111.53.96.67:8081/live/1/index.m3u8
黎城综合,http://111.53.96.67:8081/live/1/index.m3u8?%E5%85%B3%E6%B3%A8%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7[%E6%99%B4%E5%9B%AD]
黑龙江卫视,http://39.164.160.249:9901/tsfile/live/0143_1.m3u8
黑龙江卫视,http://58.57.40.22:9901/tsfile/live/1040_1.m3u8
黑龙江卫视,http://58.19.43.46:9901/tsfile/live/1008_1.m3u8
# IPv6 Streams