This commit is contained in:
Liu committed 2025-06-01 01:42:04 +08:00
1 parent 5241d6c5ba
commit 762655c342
30 files changed
+8763 -19924

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
"sites": [ "sites": [
{ {
"key": "Tg|豆瓣", "key": "Tg|豆瓣",
"name": "🅿Tg豆瓣┃本接口免费-🈲贩卖", "name": "🥟祝大家端午节快乐",
"type": 3, "type": 3,
"api": "csp_TgYunDouBanPan", "api": "csp_TgYunDouBanPan",
"searchable": 1, "searchable": 1,
+54 -20
View File
@@ -51,8 +51,9 @@
"filterable": 1, "filterable": 1,
"ext": { "ext": {
"site_urls": [ "site_urls": [
"https://www.erixaopan.fun", "https://erixaopan.fun/",
"http://erixaopan.fun/", "https://2xiaopan.fun/",
"https://www.2xiaopan.fun/",
"https://erxiaofn.click/", "https://erxiaofn.click/",
"https://www.xhww.net/" "https://www.xhww.net/"
], ],
@@ -76,6 +77,28 @@
"filterable": 1, "filterable": 1,
"ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg+2RfEareoNuL/Pl5M72Qa7kLxIiSX9vw43FPihBY2n/maEHOEs7WGA2T/7NojmydALUIhhnc3jYOnh2KHHfokMo6IosAN/HGNN8Je7i0Q/rCJt+qvuglBYeJM+3KOvqRoAjFEtGWMIO4HmbteO16itktROL+xInERNUR0+M+8v3YhuLM3LsniomLauA0b+XyNqqjoTS9lBZFYqI3Pi8Gvi/QeEKbT8gJfKPIrDFcmkRYA3Otk80eCyEibHw3hYvexl7bB9NLbGbhaNkBprzdTykwjP/eLv1ewrxm8G9Z/CR10iCP2H0jNgk66cr9pJcmBlI8E111c+8rO5tj/CneVAB47YuwlWLYTe7hGNJq9ImoLPakTrArhHE3tO1kGvUNSSuBpsHgyWKM9yLo6mMxSdRCql805ssvng9k6Ts+uxXTYGsF5ChBMoPo9piGtr5n1uWfLx7NH6OmBdJKKxHEq1TugmFEnVBAGHHEL2SqRt+g==" "ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg+2RfEareoNuL/Pl5M72Qa7kLxIiSX9vw43FPihBY2n/maEHOEs7WGA2T/7NojmydALUIhhnc3jYOnh2KHHfokMo6IosAN/HGNN8Je7i0Q/rCJt+qvuglBYeJM+3KOvqRoAjFEtGWMIO4HmbteO16itktROL+xInERNUR0+M+8v3YhuLM3LsniomLauA0b+XyNqqjoTS9lBZFYqI3Pi8Gvi/QeEKbT8gJfKPIrDFcmkRYA3Otk80eCyEibHw3hYvexl7bB9NLbGbhaNkBprzdTykwjP/eLv1ewrxm8G9Z/CR10iCP2H0jNgk66cr9pJcmBlI8E111c+8rO5tj/CneVAB47YuwlWLYTe7hGNJq9ImoLPakTrArhHE3tO1kGvUNSSuBpsHgyWKM9yLo6mMxSdRCql805ssvng9k6Ts+uxXTYGsF5ChBMoPo9piGtr5n1uWfLx7NH6OmBdJKKxHEq1TugmFEnVBAGHHEL2SqRt+g=="
}, },
{
"key": "csp_Duopan",
"name": "🖍蜡笔┃4K弹幕",
"type": 3,
"api": "csp_Duopan",
"filterable": 1,
"ext": {
"site_urls": [
"https://feimao666.fun",
"http://feimao888.fun",
"http://feimaoai.site",
"http://www.labi88.sbs",
"http://fmao.site",
"https://fmao.shop"
],
"threadinfo": {
"chunksize": 512,
"threads": 16
},
"url_key": "Duopan4"
}
},
{ {
"key": "csp_Bili", "key": "csp_Bili",
"name": "💯哔哩┃哔哩", "name": "💯哔哩┃哔哩",
@@ -113,6 +136,16 @@
"order_num": 0, "order_num": 0,
"changeable": 0 "changeable": 0
}, },
{
"key": "csp_臻彩",
"name": "🥽臻彩┃4K4K",
"type": 3,
"api": "csp_AppYsV2",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "http://cms.lygdyy.cn/api.php/app/"
},
{ {
"key": "天天", "key": "天天",
"name": "🦢天天┃1080P", "name": "🦢天天┃1080P",
@@ -130,7 +163,7 @@
}, },
{ {
"key": "QD4K", "key": "QD4K",
"name": "🐷猪猪┃QD4K", "name": "🐷猪猪┃单线4K",
"type": 3, "type": 3,
"api": "csp_AppYsV2", "api": "csp_AppYsV2",
"playerType": 2, "playerType": 2,
@@ -149,7 +182,7 @@
"name": "🏆悠悠┃1080P", "name": "🏆悠悠┃1080P",
"type": 3, "type": 3,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": "sHR2rlsfjI4L3t4RXQMkn/SuTAP3sPRQGBWuLvcmqKzB0VDXHCXpl1Ugjr+FDbThLkOlJw+enu5rX6Gi5Eay7fQsWqXd6BDxJiUQhlgoJK8e5xxCJ9nwrwj6kMUp/6p1VRAifgbuhWRNt3QvwDcQuVprQOm1sPpNIA5/4ETbh6NqiJMytm2GvLOT5q1V4JL0o8yS7Wi/DzRESarcZqtQFezwR4OOFRPb87F1DN64FdniYrg/3iFRnSnv+xlFM0WM" "ext": "sHR2rlsfjI4L3t4RXQMkn79xB3JdCtvHn5YENUym6LyErzV6pLGVtifqGcc9Sy43MR8tVRppqG7EldVGDzg4DYFriUwhmAtX9IMMJV6enkR2BPZKdfRENYUR+2ul82lNN/JYLk4c2LicrYG8kYvBuWxKWOs6tilF1YG86e0wjH1KhRVseD1JKpM96FaPPw6I74qMxH6Ifd+L4pQ84rLzs9WKT1q8lGsTzIZ5+R7XYsbN2Jz+bJOJTAVWPbV3dDD1"
}, },
{ {
"key": "彼岸", "key": "彼岸",
@@ -160,7 +193,7 @@
}, },
{ {
"key": "巧技", "key": "巧技",
"name": "🚗聚搜┃1080P", "name": "🚗聚搜┃单线4K",
"type": 3, "type": 3,
"api": "csp_qiao2", "api": "csp_qiao2",
"playerType": 2, "playerType": 2,
@@ -172,27 +205,20 @@
"name": "🐀仓鼠┃1080P", "name": "🐀仓鼠┃1080P",
"type": 3, "type": 3,
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet2",
"ext": "sHR2rlsfjI4L3t4RXQMkn97DqO5wP33F1y10iaPo6JFu7Gir00j3R0d6YiQaenvx6EGiBJ/LlFQxikHgxre5aUQs2IWp/rVBIYH9Z5N2lw6Wr6XNDhBuprneT4IeVDEibuFC81JN91ioyOFhZ0Eay51Y9BbamMP6wCWeW6UKiIOLLKTzVCa8r7ptIZGmX6oDimujZatCIppyCf81QNmW2g==" "ext": "sHR2rlsfjI4L3t4RXQMkn85YdqME5ZFXdHXyEUNrexXmXuKOZHlPhQJvT6ZKEMODJQuGTLg+gpKS+XoOxUH8DdjcutGqV/lfrY9l/Ww/J/LYA0AH34KTXsOeg1p5p+KSYaG5at+IT/dqPugeQjLLpkECHqWJpIs4B2evdM7dDIOBuPmMrT5lbU1yNZHMNkr8tConVxhS1qlq57WIByuNTQ=="
}, },
{ {
"key": "再看", "key": "水滴",
"name": "🔭再看┃1080P", "name": "💧水滴┃1080P",
"type": 3, "type": 3,
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet2",
"ext": "sHR2rlsfjI4L3t4RXQMknz+i4ffRorIRZjjcJiBr38wb5nwBciO6ms6RNqBIVi1QB7PRspm4f6MrvIOTd++7FMqkk2yG1eGTUUzyqIbYT58chQYyOMy+COm7unddRux9fFr5h0OEYTptHw9PnRiTV+JAXmIsIgUDKAamVsoOxAyhlMsA0WCzqY0OMMVhCnjjZNeioODGEF/HaKVwMC7i7GkxX/1SkEhN54oZYjGADVp/JQD55mycg7C8p5BmUHb0" "ext": "sHR2rlsfjI4L3t4RXQMkn9964m8oyAP5Q1pq67Vyh7V8ESTgG/jVLrcHt3eKCMbyNGbDyZFu9n7Zd6zMxZJXTkhGtT9DNgJA5YOi9roHwbrmlgGw3de3X42kvYAYCcSnIqa9zR24cDQyq4GwTX7H3QnCkd4xZNrHiLxgPc6nD8L96MLxkLnsYlMQbDTPCOQW"
},
{
"key": "csp_Lgyy",
"name": "⏳️️流光┃1080P",
"type": 3,
"quickSearch": 1,
"api": "csp_FreeOk"
}, },
{ {
"key": "牛牛", "key": "牛牛",
"name": "🐂牛牛┃1080P", "name": "🐂牛牛┃单线4K",
"type": 3, "type": 3,
"api": "./api/mioaying.py" "api": "./api/mioaying.py"
}, },
@@ -225,7 +251,7 @@
"type": 3, "type": 3,
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": "sHR2rlsfjI4L3t4RXQMkn9964m8oyAP5Q1pq67Vyh7V8ESTgG/jVLrcHt3eKCMbyNGbDyZFu9n7Zd6zMxZJXTkhGtT9DNgJA5YOi9roHwbrmlgGw3de3X42kvYAYCcSnIqa9zR24cDQyq4GwTX7H3QnCkd4xZNrHiLxgPc6nD8L96MLxkLnsYlMQbDTPCOQW" "ext": "sHR2rlsfjI4L3t4RXQMknwVOqdD9gPzfYgo/IDVldfFlUVRxMhFa2sMsM3jbFDHf0JeBOxGU/o2kx5CXvQT/L2bX6V7O1a4e1OUxpnYI11YpBWQjTFE4gjUC579JwV+7XsWgMJ35bTzURfWg+DYOBr8Qaiyjp0ceuD6TwFyfcNku38N3wEf629K9W7TYaAEe"
}, },
{ {
"key": "享趣", "key": "享趣",
@@ -292,6 +318,14 @@
"api": "./api/haima.py", "api": "./api/haima.py",
"ext": "" "ext": ""
}, },
{
"key": "测试",
"name": "🐓剧霸┃1080P",
"type": 3,
"quickSearch": 0,
"api": "./api/jubaba.py",
"ext": ""
},
{ {
"key": "csp_MiSou", "key": "csp_MiSou",
"name": "🔍米搜┃盘聚", "name": "🔍米搜┃盘聚",
+315
View File
@@ -0,0 +1,315 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import json
import random
import re
import sys
import time
from base64 import b64decode, b64encode
import concurrent.futures
import requests
from Crypto.Hash import MD5
from pyquery import PyQuery as pq
sys.path.append('..')
from base.spider import Spider
class Spider(Spider):
def init(self, extend=""):
self.host=self.gethost()
self.headers.update({
'referer': f'{self.host}/',
'origin': self.host,
})
self.session = requests.Session()
self.session.headers.update(self.headers)
self.session.get(self.host)
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="134", "Google Chrome";v="134"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'navigate',
'sec-fetch-user': '?1',
'sec-fetch-dest': 'document',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
}
config={
"1":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"恐怖","v":"恐怖"},{"n":"动作","v":"动作"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"战争","v":"战争"},{"n":"警匪","v":"警匪"},{"n":"犯罪","v":"犯罪"},{"n":"动画","v":"动画"},{"n":"奇幻","v":"奇幻"},{"n":"武侠","v":"武侠"},{"n":"冒险","v":"冒险"},{"n":"枪战","v":"枪战"},{"n":"悬疑","v":"悬疑"},{"n":"惊悚","v":"惊悚"},{"n":"经典","v":"经典"},{"n":"青春","v":"青春"},{"n":"伦理","v":"伦理"},{"n":"文艺","v":"文艺"},{"n":"微电影","v":"微电影"},{"n":"古装","v":"古装"},{"n":"历史","v":"历史"},{"n":"运动","v":"运动"},{"n":"农村","v":"农村"},{"n":"儿童","v":"儿童"},{"n":"网络电影","v":"网络电影"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"2025"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"2":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"2025"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"选秀","v":"选秀"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"},{"n":"财经","v":"财经"},{"n":"求职","v":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"欧美","v":"欧美"},{"n":"日韩","v":"日韩"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"2025"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"欧美","v":"欧美"},{"n":"日本","v":"日本"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"2025"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"2003","v":"2003"},{"n":"2002","v":"2002"},{"n":"2001","v":"2001"},{"n":"2000","v":"2000"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
}
def homeContent(self, filter):
data=self.getpq()
result = {}
classes = []
for k in data('ul.swiper-wrapper').eq(0)('li').items():
i=k('a').attr('href')
if i and 'type' in i:
classes.append({
'type_name': k.text(),
'type_id': re.findall(r'\d+', i)[0],
})
result['class'] = classes
result['list'] = self.getlist(data('.tab-content.ewave-pannel_bd li'))
result['filters'] = self.config
return result
def homeVideoContent(self):
pass
def categoryContent(self, tid, pg, filter, extend):
path=f"/vodshow/{tid}-{extend.get('area','')}-{extend.get('by','')}-{extend.get('class','')}-----{pg}---{extend.get('year','')}.html"
data=self.getpq(path)
result = {}
result['list'] = self.getlist(data('ul.ewave-vodlist.clearfix li'))
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
data=self.getpq(f"/voddetail/{ids[0]}.html")
v=data('.ewave-content__detail')
c=data('p')
vod = {
'type_name':c.eq(0)('a').text(),
'vod_year': v('.data.hidden-sm').text(),
'vod_remarks': v('h1').text(),
'vod_actor': c.eq(1)('a').text(),
'vod_director': c.eq(2)('a').text(),
'vod_content': c.eq(-1).text(),
'vod_play_from': '',
'vod_play_url': ''
}
nd=list(data('ul.nav-tabs.swiper-wrapper li').items())
pd=list(data('ul.ewave-content__playlist').items())
n,p=[],[]
for i,x in enumerate(nd):
n.append(x.text())
p.append('#'.join([f"{j.text()}${j('a').attr('href')}" for j in pd[i]('li').items()]))
vod['vod_play_url']='$$$'.join(p)
vod['vod_play_from']='$$$'.join(n)
return {'list':[vod]}
def searchContent(self, key, quick, pg="1"):
if pg=="1":
p=f"-------------.html?wd={key}"
else:
p=f"{key}----------{pg}---.html"
data=self.getpq(f"/vodsearch/{p}")
return {'list':self.getlist(data('ul.ewave-vodlist__media.clearfix li')),'page':pg}
def playerContent(self, flag, id, vipFlags):
try:
data=self.getpq(id)
jstr = json.loads(data('.ewave-player__video script').eq(0).text().split('=', 1)[-1])
jxpath='/bbplayer/api.php'
data=self.session.post(f"{self.host}{jxpath}",data={'vid':jstr['url']}).json()['data']
if re.search(r'\.m3u8|\.mp4',data['url']):
url=data['url']
elif data['urlmode'] == 1:
url=self.decode1(data['url'])
elif data['urlmode'] == 2:
url=self.decode2(data['url'])
elif re.search(r'\.m3u8|\.mp4',jstr['url']):
url=jstr['url']
else:
url=None
if not url:raise Exception('未找到播放地址')
p,c=0,''
except Exception as e:
self.log(f"解析失败: {e}")
p,url,c=1,f"{self.host}{id}",'document.querySelector("#playleft iframe").contentWindow.document.querySelector("#start").click()'
return {'parse': p, 'url': url, 'header': {'User-Agent':'okhttp/3.12.1'},'click': c}
def localProxy(self, param):
wdict=json.loads(self.d64(param['wdict']))
url=f"{wdict['jx']}{wdict['id']}"
data=pq(self.fetch(url,headers=self.headers).text)
html=data('script').eq(-1).text()
url = re.search(r'src="(.*?)"', html).group(1)
return [302,'text/html',None,{'Location':url}]
def liveContent(self, url):
pass
def gethost(self):
data=pq(self.fetch('https://13826.kstore.space/jubba.py/jbb.html',headers=self.headers).text)
hlist=list(data('.content-top ul li').items())[:2]
hsots=[j('a').attr('href') for i in hlist for j in i('a').items()]
return self.host_late(hsots)
def host_late(self, urls):
with concurrent.futures.ThreadPoolExecutor() as executor:
future_to_url = {
executor.submit(self.test_host, url): url
for url in urls
}
results = {}
for future in concurrent.futures.as_completed(future_to_url):
url = future_to_url[future]
try:
results[url] = future.result()
except Exception as e:
results[url] = float('inf')
min_url = min(results.items(), key=lambda x: x[1])[0] if results else None
if all(delay == float('inf') for delay in results.values()) or not min_url:
return urls[0]
return min_url
def test_host(self, url):
try:
start_time = time.monotonic()
response = requests.head(
url,
timeout=1.0,
allow_redirects=False,
headers=self.headers
)
response.raise_for_status()
return (time.monotonic() - start_time) * 1000
except Exception as e:
print(f"测试{url}失败: {str(e)}")
return float('inf')
def getpq(self, path='',min=0,max=3):
data = self.session.get(f"{self.host}{path}")
data=data.text
try:
if '人机验证' in data:
print(f"第{min}次尝试人机验证")
jstr=pq(data)('script').eq(-1).html()
token,tpath,stt=self.extract(jstr)
body={'value':self.encrypt(self.host,stt),'token':self.encrypt(token,stt)}
cd=self.session.post(f"{self.host}{tpath}",data=body)
if min>max:raise Exception('人机验证失败')
return self.getpq(path,min+1,max)
return pq(data)
except:
return pq(data.encode('utf-8'))
def encrypt(self, input_str,staticchars):
encodechars = ""
for char in input_str:
num0 = staticchars.find(char)
if num0 == -1:
code = char
else:
code = staticchars[(num0 + 3) % 62]
num1 = random.randint(0, 61)
num2 = random.randint(0, 61)
encodechars += staticchars[num1] + code + staticchars[num2]
return self.e64(encodechars)
def extract(self, js_code):
token_match = re.search(r'var token = encrypt\("([^"]+)"\);', js_code)
token_value = token_match.group(1) if token_match else None
url_match = re.search(r'var url = \'([^\']+)\';', js_code)
url_value = url_match.group(1) if url_match else None
staticchars_match = re.search(r'var\s+staticchars\s*=\s*["\']([^"\']+)["\'];', js_code)
staticchars = staticchars_match.group(1) if staticchars_match else None
return token_value, url_value,staticchars
def decode1(self, val):
url = self._custom_str_decode(val)
parts = url.split("/")
result = "/".join(parts[2:])
key1 = json.loads(self.d64(parts[1]))
key2 = json.loads(self.d64(parts[0]))
decoded = self.d64(result)
return self._de_string(key1, key2, decoded)
def _custom_str_decode(self, val):
decoded = self.d64(val)
key = self.md5("test")
result = ""
for i in range(len(decoded)):
result += chr(ord(decoded[i]) ^ ord(key[i % len(key)]))
return self.d64(result)
def _de_string(self, key_array, value_array, input_str):
result = ""
for char in input_str:
if re.match(r'^[a-zA-Z]$', char):
if char in key_array:
index = key_array.index(char)
result += value_array[index]
continue
result += char
return result
def decode2(self, url):
key = "PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN"
url=self.d64(url)
result = ""
i = 1
while i < len(url):
try:
index = key.find(url[i])
if index == -1:
char = url[i]
else:
char = key[(index + 59) % 62]
result += char
except IndexError:
break
i += 3
return result
def getlist(self, data):
videos = []
for k in data.items():
j = k('.ewave-vodlist__thumb')
h=k('.text-overflow a')
if not h.attr('href'):h=j
videos.append({
'vod_id': re.findall(r'\d+', h.attr('href'))[0],
'vod_name': j.attr('title'),
'vod_pic': j.attr('data-original'),
'vod_remarks': k('.pic-text').text(),
})
return videos
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 md5(self, text):
h = MD5.new()
h.update(text.encode('utf-8'))
return h.hexdigest()
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
BIN
View File
Binary file not shown.
+37 -8
View File
@@ -172,6 +172,27 @@
"api": "csp_HB360", "api": "csp_HB360",
"ext": "DyoqWQIrBwMuGydIIwtMES4rMQAsNQ1EIwgpXy8VMQIvIldACyFNHgAnKVoGOSRCPjE1AyhdAEUGKS8HIhtAESw7OQAsCzdEIDYtHCwFD0MsNTsEIlA+HgA8UQUADDxdCyZBHjg3Ig84OSB7NCZIECwsMh0BKSxBNCZIESwrKQIvIjQDDzUqBQNePgwAJV5bJxs2BgUnOgItCFZHIzY9WS0FMUcuCzsAIggxXS4FPUQtMldZDSUTHwA4XR44OQkeDSU+EAJdPg8xNj8IIwg1BDg3KgIDNj8IIzY5HiwrKRgGDAJaNDVBPwICH0w=" "ext": "DyoqWQIrBwMuGydIIwtMES4rMQAsNQ1EIwgpXy8VMQIvIldACyFNHgAnKVoGOSRCPjE1AyhdAEUGKS8HIhtAESw7OQAsCzdEIDYtHCwFD0MsNTsEIlA+HgA8UQUADDxdCyZBHjg3Ig84OSB7NCZIECwsMh0BKSxBNCZIESwrKQIvIjQDDzUqBQNePgwAJV5bJxs2BgUnOgItCFZHIzY9WS0FMUcuCzsAIggxXS4FPUQtMldZDSUTHwA4XR44OQkeDSU+EAJdPg8xNj8IIwg1BDg3KgIDNj8IIzY5HiwrKRgGDAJaNDVBPwICH0w="
}, },
{
"key": "坛影",
"name": "坛影|弹幕",
"type": 3,
"api": "csp_ApplvDV2",
"ext": "0###DyoqWQIrBwMuUyBFDRtNGgQ4DB4HOQVEN1BMHzg3KgUuDyxeDSFBAQInKQM="
},
{
"key": "叶子",
"name": "叶子|弹幕",
"type": 3,
"api": "csp_HBgetapp",
"ext": "eyJob3N0IjoiaHR0cHM6Ly9sa3Zsb2cuY24vIiwia2V5IjoiWlRZMU1UUTBNemc1WlRrek5qRmlOUT09IiwiaXYiOiJaVFkxTVRRME16ZzVaVGt6TmpGaU5RPT0ifQ=="
},
{
"key": "miaoying",
"name": "秒映|弹幕",
"type": 3,
"api": "csp_HBgetappapi",
"ext": "eyJob3N0IjoiaHR0cDovLzEyMS4yMDQuMjUxLjcwOjEyMDAwLyIsImtleSI6IlJqVXhSalZFTlRKRU1qTkROVEU0TVE9PSIsIml2IjoiUmpVeFJqVkVOVEpFTWpORE5URTRNUT09IiwidG9rZW4iOiIwOTgxYzBmNTUwYjg3MzdkYTkyZDUwNWNiYjZlOTM4MzM0ZTBiNDZjMDc0NGQ1Mzk5OWU4NDQ2ZDg3ZjdjNzQ5In0="
},
{ {
"key": "风神", "key": "风神",
"name": "风神|弹幕", "name": "风神|弹幕",
@@ -274,13 +295,6 @@
"api": "csp_HBgetapp", "api": "csp_HBgetapp",
"ext": "eyJob3N0IjoiaHR0cHM6Ly9hcHBjbXMuc3VuNGsudG9wLyIsImtleSI6IllqQXlOV1JqWkRsak1qZzVZMkppTXc9PSIsIml2IjoiWWpBeU5XUmpaRGxqTWpnNVkySmlNdz09In0=" "ext": "eyJob3N0IjoiaHR0cHM6Ly9hcHBjbXMuc3VuNGsudG9wLyIsImtleSI6IllqQXlOV1JqWkRsak1qZzVZMkppTXc9PSIsIml2IjoiWWpBeU5XUmpaRGxqTWpnNVkySmlNdz09In0="
}, },
{
"key": "miaoying",
"name": "秒映|弹幕",
"type": 3,
"api": "csp_HBgetappapi",
"ext": "eyJob3N0IjoiaHR0cDovLzEyMS4yMDQuMjUxLjcwOjEyMDAwLyIsImtleSI6IlJqVXhSalZFTlRKRU1qTkROVEU0TVE9PSIsIml2IjoiUmpVeFJqVkVOVEpFTWpORE5URTRNUT09In0="
},
{ {
"key": "磁力", "key": "磁力",
"name": "6V|弹幕", "name": "6V|弹幕",
@@ -556,7 +570,7 @@
"url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getuserjx&url=" "url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getuserjx&url="
}, },
{ {
"name": "虎斑智能", "name": "虎斑XM",
"type": 1, "type": 1,
"url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getXmflvjx&url=", "url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getXmflvjx&url=",
"ext": { "ext": {
@@ -565,6 +579,21 @@
"Origin": "https://jx.xmflv.com" "Origin": "https://jx.xmflv.com"
} }
} }
},
{
"name": "虎斑WS",
"type": 1,
"url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getWsjx&url="
},
{
"name": "虎斑AB",
"type": 1,
"url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getAbjx&url="
},
{
"name": "虎斑V6",
"type": 1,
"url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getV6jx&url="
} }
], ],
"flags": [ "flags": [
Binary file not shown.
+156 -281
View File
@@ -1,116 +1,46 @@
if (typeof Object.assign !== 'function') { if (typeof Object.assign != 'function') {
Object.assign = function() { Object.assign = function () {
let target = arguments[0]; var target = arguments[0];
for (let i = 1; i < arguments.length; i++) { for (var i = 1; i < arguments.length; i++) {
let source = arguments[i]; var source = arguments[i];
for (let key in source) { for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) { if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key]; target[key] = source[key];
}
} }
} }
return target;
};
}
// 通用免嗅探播放
let common_lazy = `js:
let html = request(input);
let hconf = html.match(/r player_.*?=(.*?)</)[1];
let json = JSON5.parse(hconf);
let url = json.url;
if (json.encrypt == '1') {
url = unescape(url);
} else if (json.encrypt == '2') {
url = unescape(base64Decode(url));
}
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
input = {
parse: 0,
jx: 0,
url: url,
};
} else {
input;
}`;
// 默认嗅探播放
let def_lazy = `js:
input = { parse: 1, url: input, js: '' };`;
// 采集站播放
let cj_lazy = `js:
if (/\\.(m3u8|mp4)/.test(input)) {
input = { parse: 0, url: input };
} else {
if (rule.parse_url.startsWith('json:')) {
let purl = rule.parse_url.replace('json:', '') + input;
let html = request(purl);
let json = JSON.parse(html);
if (json.url) {
input = { parse: 0, url: json.url };
}
} else {
input = rule.parse_url + input;
} }
}`; return target;
};
}
function getMubans() { function getMubans() {
const mubanDict = { // 模板字典 var mubanDict = { // 模板字典
mx: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---/',
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
searchable: 2,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true,
推荐: '.cbox_list;*;*;*;*;*',
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
二级: {
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
img: '.vodlist_thumb&&data-original',
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
content: '.content_desc&&span&&Text',
tabs: '.play_source_tab&&a',
lists: '.content_playlist:eq(#id) li',
},
搜索: '*',
},
mxpro: { mxpro: {
title: '', title: '',
host: '', // homeUrl:'/', host: '',
// homeUrl:'/',
url: '/vodshow/fyclass--------fypage---.html', url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/**----------fypage---.html', searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok" 'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
}, },
class_parse: '.navbar-items li:gt(0):lt(10);a&&Text;a&&href;/(\\d+)', class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href', 推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href', 一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级: { 二级: {
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text', "title": "h1&&Text;.module-info-tag&&Text",
img: '.lazyload&&data-original||data-src||src', "img": ".lazyload&&data-original",
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text', "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
content: '.module-info-introduction&&Text', "content": ".module-info-introduction&&Text",
tabs: '.module-tab-item', "tabs": ".module-tab-item",
lists: '.module-play-list:eq(#id) a', "lists": ".module-play-list:eq(#id) a"
tab_text: 'div--small&&Text',
}, },
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text', 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
}, },
@@ -119,24 +49,23 @@ function getMubans() {
host: '', host: '',
url: '/show/fyclass--------fypage---.html', url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html', searchUrl: '/search/**----------fypage---.html',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?)\.html', class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', 推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
二级: { 二级: {
title: 'h1&&Text;.tag-link&&Text', "title": "h1&&Text;.tag-link&&Text",
img: '.module-item-pic&&img&&data-src', "img": ".module-item-pic&&img&&data-src",
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text', "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
content: '.vod_content&&Text', "content": ".vod_content&&Text",
tabs: '.module-tab-item', "tabs": ".module-tab-item",
lists: '.module-player-list:eq(#id)&&.scroll-content&&a', "lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
tab_text: 'div--small&&Text',
}, },
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href', 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
}, },
@@ -145,121 +74,104 @@ function getMubans() {
host: '', host: '',
url: '/vodshow/fyclass--------fypage---/', url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html', searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok" 'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
}, },
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html', class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href', 推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href', 一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: { 二级: {
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text', "title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
img: '.myui-content__thumb .lazyload&&data-original', "img": ".myui-content__thumb .lazyload&&data-original",
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text', "desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
content: '.content&&Text', "content": ".content&&Text",
tabs: '.myui-panel__head&&li', "tabs": ".nav-tabs:eq(0) li",
// tabs: '.nav-tabs&&li', "lists": ".myui-content__list:eq(#id) li"
lists: '.myui-content__list:eq(#id) li',
}, },
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text', 搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
}, },
首图2: { 首图2: {
title: '', title: '',
host: '', host: '',
url: '/list/fyclass-fypage.html', url: '/list/fyclass-fypage.html',
searchUrl: '/vodsearch/**----------fypage---.html', searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
headers: { headers: {
'User-Agent': 'UC_UA', // "Cookie": "" 'User-Agent': 'UC_UA',
// "Cookie": ""
}, },
// class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html', class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href', 推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href', 一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: { 二级: {
title: '.stui-content__detail .title&&Text;.stui-content__detail&&p:eq(-2)&&a&&Text', "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text', "img": ".stui-content__thumb .lazyload&&data-original",
img: '.stui-content__thumb .lazyload&&data-original', "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text', "content": ".detail&&Text",
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text', "tabs": ".stui-vodlist__head h3",
content: '.detail&&Text', "lists": ".stui-content__playlist:eq(#id) li"
tabs: '.stui-pannel__head h3',
tabs1: '.stui-vodlist__head h3',
lists: '.stui-content__playlist:eq(#id) li',
}, },
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text', 搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
}, },
默认: { 默认: {
title: '', title: '',
host: '', host: '',
url: '', url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '', searchUrl: '/vodsearch/-------------.html?wd=**',
searchable: 2, searchable: 2,//是否启用全局搜索,
quickSearch: 0, quickSearch: 0,//是否启用快速搜索,
filterable: 0, filterable: 0,//是否启用分类筛选,
filter: '',
filter_url: '',
filter_def: {},
headers: { headers: {
'User-Agent': 'MOBILE_UA', 'User-Agent': 'MOBILE_UA',
}, },
timeout: 5000,
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
cate_exclude: '',
play_parse: true, play_parse: true,
lazy: def_lazy, lazy: '',
double: true, limit: 6,
推荐: '列表1;列表2;标题;图片;描述;链接;详情', double: true, // 推荐内容是否双层定位
一级: '列表;标题;图片;描述;链接;详情',
二级: {
title: 'vod_name;vod_type',
img: '图片链接',
desc: '主要信息;年代;地区;演员;导演',
content: '简介',
tabs: '',
lists: 'xx:eq(#id)&&a',
tab_text: 'body&&Text',
list_text: 'body&&Text',
list_url: 'a&&href',
},
搜索: '列表;标题;图片;描述;链接;详情',
}, },
vfed: { vfed: {
title: '', title: '',
host: '', host: '',
url: '/index.php/vod/show/id/fyclass/page/fypage.html', url: '/index.php/vod/show/id/fyclass/page/fypage.html',
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
headers: { headers: {
'User-Agent': 'UC_UA', 'User-Agent': 'UC_UA',
}, },
// class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html', class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href', 推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href', 一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
二级: { 二级: {
title: 'h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text', "title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
img: '.fed-list-info&&a&&data-original', "img": ".fed-list-info&&a&&data-original",
desc: '.fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text', "desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
content: '.fed-part-esan&&Text', "content": ".fed-part-esan&&Text",
tabs: '.fed-drop-boxs&&.fed-part-rows&&li', "tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li', "lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
}, },
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text', 搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
}, },
@@ -269,30 +181,29 @@ function getMubans() {
searchUrl: '/v_search/**----------fypage---.html', searchUrl: '/v_search/**----------fypage---.html',
url: '/vod_____show/fyclass--------fypage---.html', url: '/vod_____show/fyclass--------fypage---.html',
headers: { headers: {
'User-Agent': 'MOBILE_UA', 'User-Agent': 'MOBILE_UA'
}, },
timeout: 5000, timeout: 5000,
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html', class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '明星|专题|最新|排行', cate_exclude: '明星|专题|最新|排行',
limit: 40, limit: 40,
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
double: true,
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href', 推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
double: true,
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href', 一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
二级: { 二级: {
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text', "title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
img: '.hl-lazy&&data-original', "img": ".hl-lazy&&data-original",
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text', "desc": ".hl-infos-content&&.hl-text-conch&&Text",
content: '.hl-content-text&&Text', "content": ".hl-content-text&&Text",
tabs: '.hl-tabs&&a', "tabs": ".hl-tabs&&a",
tab_text: 'a--span&&Text', "lists": ".hl-plays-list:eq(#id)&&li"
lists: '.hl-plays-list:eq(#id)&&li',
}, },
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href', 搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
}, },
海螺2: { 海螺2: {
title: '', title: '',
@@ -300,130 +211,94 @@ function getMubans() {
searchUrl: '/index.php/vod/search/page/fypage/wd/**/', searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
url: '/index.php/vod/show/id/fyclass/page/fypage/', url: '/index.php/vod/show/id/fyclass/page/fypage/',
headers: { headers: {
'User-Agent': 'MOBILE_UA', 'User-Agent': 'MOBILE_UA'
}, },
timeout: 5000, timeout: 5000,
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/', class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
limit: 40, limit: 40,
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
double: true,
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href', 推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
double: true,
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href', 一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级: { 二级: {
title: 'h2&&Text;.deployment&&Text', "title": "h2&&Text;.deployment&&Text",
img: '.lazy&&data-original', "img": ".lazy&&data-original",
desc: '.deployment&&Text', "desc": ".deployment&&Text",
content: '.ec-show&&Text', "content": ".ec-show&&Text",
tabs: '#tag&&a', "tabs": "#tag&&a",
lists: '.play_list_box:eq(#id)&&li', "lists": ".play_list_box:eq(#id)&&li"
}, },
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href', 搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
}, },
短视: { 短视: {
title: '', title: '',
host: '', // homeUrl:'/', host: '',
// homeUrl:'/',
url: '/channel/fyclass-fypage.html', url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**', searchUrl: '/search.html?wd=**',
searchable: 2, //是否启用全局搜索, searchable: 2,//是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0,//是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0,//是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok" 'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
}, },
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html', class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '解析|动态', cate_exclude: '解析|动态',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href', 推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href', 一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
二级: { 二级: {
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text', "title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
img: '.img&&img&&data-src', "img": ".img&&img&&data-src",
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text', "desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
content: '.zkjj_a&&Text', "content": ".zkjj_a&&Text",
tabs: '.py-tabs&&option', "tabs": ".py-tabs&&option",
lists: '.player:eq(#id) li', "lists": ".player:eq(#id) li"
}, },
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href', 搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
}, },
短视2: { 短视2:{
title: '', title: '',
host: '', host: '',
class_name: '电影&电视剧&综艺&动漫', class_name:'电影&电视剧&综艺&动漫',
class_url: '1&2&3&4', class_url:'1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50', searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2, searchable: 2,
quickSearch: 0, quickSearch: 0,
headers: { headers:{'User-Agent':'MOBILE_UA'},
'User-Agent': 'MOBILE_UA'
},
url: '/index.php/api/vod#type=fyclass&page=fypage', url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable: 0, //是否启用分类筛选, filterable:0,//是否启用分类筛选,
filter_url: '', filter_url:'',
filter: {}, filter: {},
filter_def: {}, filter_def:{},
detailUrl: '/index.php/vod/detail/id/fyid.html', detailUrl:'/index.php/vod/detail/id/fyid.html',
play_parse: true, play_parse: true,
lazy: common_lazy, lazy: '',
limit: 6, limit: 6,
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href', 推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});', 一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
二级: { 二级:{
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text', "title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
img: '.detail-pic&&data-original', "img":".detail-pic&&data-original",
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text', "desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
content: '#height_limit&&Text', "content":"#height_limit&&Text",
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a', "tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
tab_text: 'a--span&&Text', "tab_text":".swiper-slide&&Text",
lists: '.anthology-list-box:eq(#id) li', "lists":".anthology-list-box:eq(#id) li"
}, },
搜索: 'json:list;name;pic;;id', 搜索:'json:list;name;pic;;id',
}, }
采集1: {
title: '',
host: '',
homeTid: '13',
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=fypage',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
// class_url: '1&2&3&4',
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
class_parse: 'json:class;',
limit: 20,
multi: 1,
searchable: 2, //是否启用全局搜索,
quickSearch: 1, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
play_parse: true,
parse_url: '',
lazy: cj_lazy,
推荐: '*',
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
二级: `js:
let html=request(input);
html=JSON.parse(html);
let data=html.list;
VOD=data[0];`,
搜索: '*',
},
}; };
return JSON.parse(JSON.stringify(mubanDict)); return JSON.parse(JSON.stringify(mubanDict));
} }
var mubanDict = getMubans(); var mubanDict = getMubans();
var muban = getMubans(); var muban = getMubans();
export default { export default {muban,getMubans};
muban,
getMubans
};
Binary file not shown.
+119 -62
View File
@@ -4,9 +4,9 @@
"spider": "./spider.jar", "spider": "./spider.jar",
"lives": [ "lives": [
{ {
"name": "公众号【杰歌软件APP】如有收费,直接找退款", "name": "公众号【欧歌APP】接口即将关停,网络收集勿演示贩卖",
"type": 0, "type": 0,
"url": "./lives/公众号【杰歌软件APP】如有收费,直接找退款.txt", "url": "./lives/公众号【欧歌APP】接口即将关停,网络收集勿演示贩卖.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}" "epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
}, },
{ {
@@ -19,20 +19,20 @@
"sites": [ "sites": [
{ {
"key": "豆瓣2", "key": "豆瓣2",
"name": "📢公众号【杰歌软件APP】如有收费,直接找退款", "name": "📢公众号【欧歌APP】接口即将关停,网络收集勿演示贩卖",
"type": 3, "type": 3,
"api": "csp_Douban", "api": "csp_Douban",
"searchable": 0 "searchable": 0
}, },
{ {
"key": "豆瓣1", "key": "豆瓣1",
"name": "📢公众号【杰歌软件APP】如有收费,直接找退款公告❤更新:5/23❤", "name": "📢公众号【欧歌APP】接口即将关停,网络收集勿演示贩卖公告❤更新:5/28❤",
"type": 3, "type": 3,
"api": "csp_Notice", "api": "csp_Notice",
"searchable": 0, "searchable": 0,
"changeable": 0, "changeable": 0,
"jar": "./jars/豆瓣1.jar", "jar": "./jars/豆瓣1.jar",
"ext": "https://xn--dkw0c.v.nxog.top/m/公告.php?b=公众号【杰歌软件APP】如有收费,直接找退款" "ext": "https://xn--dkw0c.v.nxog.top/m/公告.php?b=公众号【欧歌APP】接口即将关停,网络收集勿演示贩卖"
}, },
{ {
"key": "csp_woog", "key": "csp_woog",
@@ -49,7 +49,7 @@
], ],
"url_key": "woog", "url_key": "woog",
"threadinfo": { "threadinfo": {
"chunksize": 297, "chunksize": 296,
"threads": 15 "threads": 15
} }
} }
@@ -77,7 +77,7 @@
], ],
"url_key": "UC", "url_key": "UC",
"threadinfo": { "threadinfo": {
"chunksize": 222, "chunksize": 283,
"threads": 60 "threads": 60
} }
} }
@@ -266,17 +266,6 @@
"url": "http://v.lkuys.cn" "url": "http://v.lkuys.cn"
} }
}, },
{
"key": "菲儿影视",
"name": "💡菲儿|影视",
"type": 3,
"api": "csp_AppFerr",
"ext": {
"url": "https://appcms.freehd.vip",
"dataKey": "be5348dfb0c3c283",
"dataIv": "5f5449dd14313217"
}
},
{ {
"key": "二三", "key": "二三",
"name": "💡二三|影视", "name": "💡二三|影视",
@@ -373,20 +362,6 @@
"version": "361" "version": "361"
} }
}, },
{
"key": "集多",
"name": "💡集多|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://220.231.146.94:6261",
"dataKey": "hL7xN4P9rS2vK5Mq",
"dataIv": "hL7xN4P9rS2vK5Mq",
"deviceId": "",
"version": "200"
}
},
{ {
"key": "橘子", "key": "橘子",
"name": "💡橘子|影视", "name": "💡橘子|影视",
@@ -441,6 +416,118 @@
"api": "csp_SuBaiBai", "api": "csp_SuBaiBai",
"ext": "https://www.subaibai.com" "ext": "https://www.subaibai.com"
}, },
{
"key": "橘猫",
"name": "💡橘猫|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://appcms.jm4k.top",
"dataKey": "KPEkKAESYi38CQdn",
"dataIv": "KPEkKAESYi38CQdn",
"deviceId": "",
"version": "119"
}
},
{
"key": "忍者",
"name": "💡忍者|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://mfxs123.sbs",
"dataKey": "1234567887654321",
"dataIv": "1234567887654321",
"deviceId": "",
"version": ""
}
},
{
"key": "晴天",
"name": "💡晴天|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://qjappcms.sun4k.top",
"dataKey": "sBxqXVF5pAHbGzrH",
"dataIv": "sBxqXVF5pAHbGzrH",
"deviceId": "",
"version": "119"
}
},
{
"key": "再看",
"name": "💡再看|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://149.88.64.161:8627",
"dataKey": "123456789ABCDEFG",
"dataIv": "123456789ABCDEFG",
"deviceId": "2bb4c10f3e043307dbfc579bd0db23f4e",
"version": "110"
}
},
{
"key": "彼岸",
"name": "💡彼岸|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://mfsp33.top",
"dataKey": "1234567887654321",
"dataIv": "1234567887654321",
"deviceId": "298e5fe29c74b35aabb9836ee2f6f449f",
"version": "315"
}
},
{
"key": "人人",
"name": "💡人人|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://www.xiaohys.com",
"dataKey": "ENonBHeVBoYZhVUV",
"dataIv": "ENonBHeVBoYZhVUV",
"deviceId": "298e5fe29c74b35aabb9836ee2f6f449f",
"version": "166"
}
},
{
"key": "电影",
"name": "💡电影|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://1.94.105.93",
"dataKey": "gKdQKLbwhhLp4Ytv",
"dataIv": "gKdQKLbwhhLp4Ytv",
"deviceId": "",
"version": ""
}
},
{
"key": "若惜",
"name": "💡若惜|影视",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://110.40.59.188:9527",
"dataKey": "ebad3f1a58b13933",
"dataIv": "ebad3f1a58b13933",
"deviceId": "",
"version": ""
}
},
{ {
"key": "csp_XYQHiker_农民影视", "key": "csp_XYQHiker_农民影视",
"name": "🧿农民|影视", "name": "🧿农民|影视",
@@ -1009,36 +1096,6 @@
}, },
"ext": "./json/lj.json" "ext": "./json/lj.json"
}, },
{
"key": "海绵",
"name": "❤海绵|4K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/hm.json"
},
{
"key": "Pan1",
"name": "❤123|4K",
"type": 3,
"api": "csp_PanWebShareCloud123",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/pan1.json"
},
{ {
"key": "趣盘", "key": "趣盘",
"name": "❤趣盘|4K", "name": "❤趣盘|4K",
-1809
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-1439
View File
File diff suppressed because it is too large. Load diff
-429
View File
@@ -1,429 +0,0 @@
if (typeof Object.assign !== 'function') {
Object.assign = function() {
let target = arguments[0];
for (let i = 1; i < arguments.length; i++) {
let source = arguments[i];
for (let key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
}
// 通用免嗅探播放
let common_lazy = `js:
let html = request(input);
let hconf = html.match(/r player_.*?=(.*?)</)[1];
let json = JSON5.parse(hconf);
let url = json.url;
if (json.encrypt == '1') {
url = unescape(url);
} else if (json.encrypt == '2') {
url = unescape(base64Decode(url));
}
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
input = {
parse: 0,
jx: 0,
url: url,
};
} else {
input = url && url.startsWith('http') && tellIsJx(url) ? {parse:0,jx:1,url:url}:input;
}`;
// 默认嗅探播放
let def_lazy = `js:
input = { parse: 1, url: input, js: '' };`;
// 采集站播放
let cj_lazy = `js:
if (/\\.(m3u8|mp4)/.test(input)) {
input = { parse: 0, url: input };
} else {
if (rule.parse_url.startsWith('json:')) {
let purl = rule.parse_url.replace('json:', '') + input;
let html = request(purl);
let json = JSON.parse(html);
if (json.url) {
input = { parse: 0, url: json.url };
}
} else {
input = rule.parse_url + input;
}
}`;
function getMubans() {
const mubanDict = { // 模板字典
mx: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---/',
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
searchable: 2,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true,
推荐: '.cbox_list;*;*;*;*;*',
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
二级: {
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
img: '.vodlist_thumb&&data-original',
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
content: '.content_desc&&span&&Text',
tabs: '.play_source_tab&&a',
lists: '.content_playlist:eq(#id) li',
},
搜索: '*',
},
mxpro: {
title: '',
host: '', // homeUrl:'/',
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.navbar-items li:gt(0):lt(10);a&&Text;a&&href;/(\\d+)',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级: {
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
img: '.lazyload&&data-original||data-src||src',
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
content: '.module-info-introduction&&Text',
tabs: '.module-tab-item',
lists: '.module-play-list:eq(#id) a',
tab_text: 'div--small&&Text',
},
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
},
mxone5: {
title: '',
host: '',
url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?)\.html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
二级: {
title: 'h1&&Text;.tag-link&&Text',
img: '.module-item-pic&&img&&data-src',
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
content: '.vod_content&&Text',
tabs: '.module-tab-item',
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
tab_text: 'div--small&&Text',
},
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
},
首图: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
img: '.myui-content__thumb .lazyload&&data-original',
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
content: '.content&&Text',
tabs: '.myui-panel__head&&li',
// tabs: '.nav-tabs&&li',
lists: '.myui-content__list:eq(#id) li',
},
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
},
首图2: {
title: '',
host: '',
url: '/list/fyclass-fypage.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA', // "Cookie": ""
},
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
title: '.stui-content__detail .title&&Text;.stui-content__detail&&p:eq(-2)&&a&&Text',
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
img: '.stui-content__thumb .lazyload&&data-original',
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
content: '.detail&&Text',
tabs: '.stui-pannel__head h3',
tabs1: '.stui-vodlist__head h3',
lists: '.stui-content__playlist:eq(#id) li',
},
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
},
默认: {
title: '',
host: '',
url: '',
searchUrl: '',
searchable: 2,
quickSearch: 0,
filterable: 0,
filter: '',
filter_url: '',
filter_def: {},
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
cate_exclude: '',
play_parse: true,
lazy: def_lazy,
double: true,
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
一级: '列表;标题;图片;描述;链接;详情',
二级: {
title: 'vod_name;vod_type',
img: '图片链接',
desc: '主要信息;年代;地区;演员;导演',
content: '简介',
tabs: '',
lists: 'xx:eq(#id)&&a',
tab_text: 'body&&Text',
list_text: 'body&&Text',
list_url: 'a&&href',
},
搜索: '列表;标题;图片;描述;链接;详情',
},
vfed: {
title: '',
host: '',
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
},
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
二级: {
title: 'h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text',
img: '.fed-list-info&&a&&data-original',
desc: '.fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text',
content: '.fed-part-esan&&Text',
tabs: '.fed-drop-boxs&&.fed-part-rows&&li',
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li',
},
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
},
海螺3: {
title: '',
host: '',
searchUrl: '/v_search/**----------fypage---.html',
url: '/vod_____show/fyclass--------fypage---.html',
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '明星|专题|最新|排行',
limit: 40,
play_parse: true,
lazy: common_lazy,
double: true,
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
二级: {
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
img: '.hl-lazy&&data-original',
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
content: '.hl-content-text&&Text',
tabs: '.hl-tabs&&a',
tab_text: 'a--span&&Text',
lists: '.hl-plays-list:eq(#id)&&li',
},
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
},
海螺2: {
title: '',
host: '',
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
url: '/index.php/vod/show/id/fyclass/page/fypage/',
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
limit: 40,
play_parse: true,
lazy: common_lazy,
double: true,
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级: {
title: 'h2&&Text;.deployment&&Text',
img: '.lazy&&data-original',
desc: '.deployment&&Text',
content: '.ec-show&&Text',
tabs: '#tag&&a',
lists: '.play_list_box:eq(#id)&&li',
},
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
},
短视: {
title: '',
host: '', // homeUrl:'/',
url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '解析|动态',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
二级: {
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text',
img: '.img&&img&&data-src',
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text',
content: '.zkjj_a&&Text',
tabs: '.py-tabs&&option',
lists: '.player:eq(#id) li',
},
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
},
短视2: {
title: '',
host: '',
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2,
quickSearch: 0,
headers: {
'User-Agent': 'MOBILE_UA'
},
url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable: 0, //是否启用分类筛选,
filter_url: '',
filter: {},
filter_def: {},
detailUrl: '/index.php/vod/detail/id/fyid.html',
play_parse: true,
lazy: common_lazy,
limit: 6,
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
二级: {
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text',
img: '.detail-pic&&data-original',
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
content: '#height_limit&&Text',
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
tab_text: 'a--span&&Text',
lists: '.anthology-list-box:eq(#id) li',
},
搜索: 'json:list;name;pic;;id',
},
采集1: {
title: '',
host: '',
homeTid: '13',
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=fypage',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
// class_url: '1&2&3&4',
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
class_parse: 'json:class;',
limit: 20,
multi: 1,
searchable: 2, //是否启用全局搜索,
quickSearch: 1, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
play_parse: true,
parse_url: '',
lazy: cj_lazy,
推荐: '*',
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
二级: `js:
let html=request(input);
html=JSON.parse(html);
let data=html.list;
VOD=data[0];`,
搜索: '*',
},
};
return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {
muban,
getMubans
};
-22
View File
@@ -1,22 +0,0 @@
{
"SiteUrl": "https://haimian.eu.org,https://www.haimianxz.com,https://www.hmxz.org,https://www.5536806.xyz,http://haimian.eu.org",
"Classes": [
{
"type_name": "电影",
"type_id": "1"
},
{
"type_name": "剧集",
"type_id": "2"
},
{
"type_name": "综艺",
"type_id": "5"
},
{
"type_name": "动漫",
"type_id": "3"
}
],
"Cookie": "bbs_sid=nll6gb39qj1e4fgkvsjh930ti5; _xn_accesscount_visited=1; __51uvsct__K2MEuBiiS0iv1Gsb=1; __51vcke__K2MEuBiiS0iv1Gsb=df02f20c-b83d-507b-b310-c3f8ab36a87a; __51vuft__K2MEuBiiS0iv1Gsb=1745249876903; bbs_token=rhHYDxTHFdsKEOsD84q8NBkSi6aTY8KlfnqpjudmsOxKBcJe; __vtins__K2MEuBiiS0iv1Gsb=%7B%22sid%22%3A%20%2299dcbd93-0d23-5a24-abb5-ec507c6c248a%22%2C%20%22vd%22%3A%2017%2C%20%22stt%22%3A%20464771%2C%20%22dr%22%3A%201425%2C%20%22expires%22%3A%201745251199999%2C%20%22ct%22%3A%201745250341665%7D"
}
-26
View File
@@ -1,26 +0,0 @@
{
"SiteUrl": "https://time.123in.link,https://pan1.me,https://123.panbox.my",
"Classes": [
{
"type_name": "电影",
"type_id": "2"
},
{
"type_name": "剧集",
"type_id": "48"
},
{
"type_name": "4K原盘",
"type_id": "56"
},
{
"type_name": "综艺",
"type_id": "52"
},
{
"type_name": "动漫",
"type_id": "37"
}
],
"Cookie": "bbs_sid=rrru52bda4v655kl9u1c87f00m; bbs_token=dZRAvHbHcUZkuJ7oHALqWoUs00C1fGqqXDXH7I8LH6hMddXP"
}
+733 -1534
View File
File diff suppressed because it is too large. Load diff
-146
View File
@@ -1,146 +0,0 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
import requests
class Spider(Spider):
def init(self, extend=""):
pass
def getName(self):
return "hitv"
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
result = {}
cateManual = {
# "直播": "live",
'排行榜': 'rank',
"电影": "1",
"剧集": "2",
"综艺": "3",
"动画": "4",
"短片": "5"
}
classes = []
for k in cateManual:
classes.append({
'type_name': k,
'type_id': cateManual[k]
})
result['class'] = classes
return result
host = "https://wys.upfuhn.com"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/80.0.3987.149 Safari/537.36"
}
def list(self, list):
videos = []
for it in list:
videos.append({
"vod_id": it['video_site_id'],
"vod_name": it['video_name'],
"vod_pic": it['video_horizontal_url'] or it['video_vertical_url'],
"vod_remarks": it['newest_series_num'],
"vod_year": it['years'],
})
return videos
def homeVideoContent(self):
url = f'{self.host}/v1/ys_video_sites/hot?t=1'
data = requests.get(url, headers=self.headers).json()
videos = self.list(data['data']['data'])
result = {'list': videos}
return result
def categoryContent(self, tid, pg, filter, extend):
path = f'/v1/ys_video_sites?t={tid}&s_t=0&a&y&o=0&ps=21&pn={pg}'
rank = False
if tid == 'rank':
if pg == 1:
path = f'/v1/ys_video_sites/ranking'
rank = True
else:
path = ''
# elif tid == 'live' and pg == 1:
# path = f'/v1/ys_live_tvs'
videos = []
result = {}
try:
data = requests.get(self.host + path, headers=self.headers).json()
if rank:
for video in data['data']:
videos.extend(data['data'][video])
else:
videos = data['data']['data']
result = {}
result['list'] = self.list(videos)
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
except:
result['list'] = []
return result
def detailContent(self, ids):
tid = ids[0]
url = f'{self.host}/v1/ys_video_series/by_vid/{tid}'
data = requests.get(url, headers=self.headers).json()
data1 = data['data']['ys_video_site']
urls = []
for it in data['data']['data']:
urls.append(it['series_num'] + '$' + it['video_url'])
vod = {
'vod_name': data1['video_name'],
'type_name': data1['tag'],
'vod_year': data1['years'],
'vod_area': data1['area'],
'vod_director': data1['main_actor'],
'vod_content': data1['video_desc'],
'vod_play_from': '嗨皮在线',
'vod_play_url': '#'.join(urls),
}
result = {
'list': [
vod
]
}
return result
def searchContent(self, key, quick, pg=1):
url = f'{self.host}/v1/ys_video_sites/search?s={key}&o=0&ps=200&pn={pg}'
data = requests.get(url, headers=self.headers).json()
videos = data['data']['video_sites']
if data['data']['first_video_series'] is not None:
videos = [data['data']['first_video_series']] + videos
result = {}
result['list'] = self.list(videos)
result['page'] = pg
return result
def playerContent(self, flag, id, vipFlags):
result = {
'url': id,
'parse': 0,
'header': self.headers
}
return result
def localProxy(self, param):
pass
+108 -159
View File
@@ -91,6 +91,76 @@
"searchable": 1, "searchable": 1,
"quickSearch": 1 "quickSearch": 1
}, },
{
"key": "仓鼠",
"name": "仓鼠|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet2",
"ext": {
"url": "https://qjappcms.cs4k.top",
"dataKey": "Z98KXaLtO2wC1Pte",
"dataIv": "Z98KXaLtO2wC1Pte",
"deviceId": "",
"version": "120"
}
},
{
"key": "水滴",
"name": "水滴|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet2",
"ext": {
"url": "http://1.94.105.93",
"dataKey": "gKdQKLbwhhLp4Ytv",
"dataIv": "gKdQKLbwhhLp4Ytv",
"deviceId": "",
"version": ""
}
},
{
"key": "橘猫",
"name": "橘猫|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://appcms.jm4k.top",
"dataKey": "KPEkKAESYi38CQdn",
"dataIv": "KPEkKAESYi38CQdn",
"deviceId": "",
"version": "119"
}
},
{
"key": "忍者",
"name": "忍者|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://mfxs123.sbs",
"dataKey": "1234567887654321",
"dataIv": "1234567887654321",
"deviceId": "",
"version": ""
}
},
{
"key": "晴天",
"name": "晴天|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://qjappcms.sun4k.top",
"dataKey": "sBxqXVF5pAHbGzrH",
"dataIv": "sBxqXVF5pAHbGzrH",
"deviceId": "",
"version": "119"
}
},
{ {
"key": "再看", "key": "再看",
"name": "再看|APP", "name": "再看|APP",
@@ -105,34 +175,6 @@
"version": "110" "version": "110"
} }
}, },
{
"key": "仓鼠",
"name": "仓鼠|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://appcms.cs4k.top",
"dataKey": "Hui6595253......",
"dataIv": "Hui6595253......",
"deviceId": "",
"version": ""
}
},
{
"key": "集多",
"name": "集多|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://220.231.146.94:6261",
"dataKey": "hL7xN4P9rS2vK5Mq",
"dataIv": "hL7xN4P9rS2vK5Mq",
"deviceId": "",
"version": "200"
}
},
{ {
"key": "诺雪", "key": "诺雪",
"name": "诺雪|APP", "name": "诺雪|APP",
@@ -168,11 +210,11 @@
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": { "ext": {
"url": "http://172.247.44.217:30012", "url": "https://mfsp33.top",
"dataKey": "JLa1oRdL6+eK7@M)", "dataKey": "1234567887654321",
"dataIv": "JLa1oRdL6+eK7@M)", "dataIv": "1234567887654321",
"deviceId": "", "deviceId": "298e5fe29c74b35aabb9836ee2f6f449f",
"version": "" "version": "315"
} }
}, },
{ {
@@ -210,7 +252,7 @@
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": { "ext": {
"url": "https://apiapplbys.lbys.cc:5678", "url": "https://apiapplbys.lbys.app:5678",
"dataKey": "apiapplbyskey168", "dataKey": "apiapplbyskey168",
"dataIv": "apiapplbyskey168", "dataIv": "apiapplbyskey168",
"deviceId": "", "deviceId": "",
@@ -224,7 +266,7 @@
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": { "ext": {
"url": "http://46.203.125.54:2663", "url": "http://46.203.125.54:7070",
"dataKey": "RuN9LRvwTRgpQnpK", "dataKey": "RuN9LRvwTRgpQnpK",
"dataIv": "RuN9LRvwTRgpQnpK", "dataIv": "RuN9LRvwTRgpQnpK",
"deviceId": "", "deviceId": "",
@@ -273,20 +315,6 @@
"version": "166" "version": "166"
} }
}, },
{
"key": "电影",
"name": "电影|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://1.94.105.93",
"dataKey": "gKdQKLbwhhLp4Ytv",
"dataIv": "gKdQKLbwhhLp4Ytv",
"deviceId": "",
"version": ""
}
},
{ {
"key": "悠悠", "key": "悠悠",
"name": "悠悠|APP", "name": "悠悠|APP",
@@ -294,11 +322,11 @@
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": { "ext": {
"url": "http://156.225.30.65:5566", "url": "http://46.203.125.54:7070",
"dataKey": "DxwIstrdWbYpblwn", "dataKey": "RuN9LRvwTRgpQnpK",
"dataIv": "DxwIstrdWbYpblwn", "dataIv": "RuN9LRvwTRgpQnpK",
"deviceId": "", "deviceId": "298e5fe29c74b35aabb9836ee2f6f449f",
"version": "119" "version": "547"
} }
}, },
{ {
@@ -391,7 +419,7 @@
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppMuou", "api": "csp_AppMuou",
"ext": { "ext": {
"url": "http://110.42.107.216:56677", "url": "http://110.42.110.230:16189",
"dataKey": "d7378557d1d9c924", "dataKey": "d7378557d1d9c924",
"dataIv": "fb4594f622f34fea", "dataIv": "fb4594f622f34fea",
"jxurl": "https://qqiqiyiyoukumgtvapiappdyyztvjsoni8n2o0z1ws2n7b6v3x8.68.gy:56789" "jxurl": "https://qqiqiyiyoukumgtvapiappdyyztvjsoni8n2o0z1ws2n7b6v3x8.68.gy:56789"
@@ -410,19 +438,6 @@
"jxurl": "https://vod.feiwang.cc" "jxurl": "https://vod.feiwang.cc"
} }
}, },
{
"key": "永夜",
"name": "永夜|APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppMuou",
"ext": {
"url": "http://cms.neyym.cn",
"dataKey": "66247d82fcfaeda9",
"dataIv": "70691065ee3c4c54",
"jxurl": "http://app.neyym.cn"
}
},
{ {
"key": "二三", "key": "二三",
"name": "二三|APP", "name": "二三|APP",
@@ -567,17 +582,6 @@
"changeable": 1, "changeable": 1,
"ext": "./json/ex.json" "ext": "./json/ex.json"
}, },
{
"key": "百家",
"name": "百家|4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/bj.json"
},
{ {
"key": "大玩", "key": "大玩",
"name": "大玩|4K弹幕", "name": "大玩|4K弹幕",
@@ -611,17 +615,6 @@
"changeable": 1, "changeable": 1,
"ext": "./json/sd.json" "ext": "./json/sd.json"
}, },
{
"key": "下饭",
"name": "下饭|4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/xf.json"
},
{ {
"key": "奥秘", "key": "奥秘",
"name": "奥秘|4K弹幕", "name": "奥秘|4K弹幕",
@@ -673,21 +666,6 @@
}, },
"ext": "./json/hm.json" "ext": "./json/hm.json"
}, },
{
"key": "Pan1",
"name": "123|4K弹幕",
"type": 3,
"api": "csp_PanWebShareCloud123",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/pan1.json"
},
{ {
"key": "夸父", "key": "夸父",
"name": "夸父|4K弹幕", "name": "夸父|4K弹幕",
@@ -720,21 +698,6 @@
"url": "https://www.qupanshe.com" "url": "https://www.qupanshe.com"
} }
}, },
{
"key": "聚搜",
"name": "聚搜|4K弹幕",
"type": 3,
"api": "csp_PanWebSearch",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/aliyunpansearch.json"
},
{ {
"key": "盘库", "key": "盘库",
"name": "盘库|4K弹幕", "name": "盘库|4K弹幕",
@@ -748,6 +711,16 @@
"url": "https://panku8.com,https://yipanso.com" "url": "https://panku8.com,https://yipanso.com"
} }
}, },
{
"key": "聚搜",
"name": "聚搜|4K弹幕",
"type": 3,
"api": "csp_PanWebSearch",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1
},
{ {
"key": "双星", "key": "双星",
"name": "双星|4K弹幕", "name": "双星|4K弹幕",
@@ -768,6 +741,16 @@
"type": "list" "type": "list"
} }
}, },
{
"key": "米搜",
"name": "米搜|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/米搜.js",
"style": {
"type": "list"
}
},
{ {
"key": "星芽短剧", "key": "星芽短剧",
"name": "星芽|短剧", "name": "星芽|短剧",
@@ -777,17 +760,6 @@
"quickSearch": 0, "quickSearch": 0,
"filterable": 0 "filterable": 0
}, },
{
"key": "河马短剧",
"name": "河马|短剧",
"type": 3,
"api": "./py/河马短剧.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{ {
"key": "偷乐短剧", "key": "偷乐短剧",
"name": "偷乐|短剧", "name": "偷乐|短剧",
@@ -847,13 +819,6 @@
"filterable": 1, "filterable": 1,
"ext": "https://cs.hgyx.vip/api2/api.php/app/" "ext": "https://cs.hgyx.vip/api2/api.php/app/"
}, },
{
"key": "小慧影视",
"name": "小慧|影视",
"type": 1,
"api": "http://cms.xiaohui.cyou:1002/api.php/provide/vod/?ac=list",
"playUrl": "json:http://xiaohui.cyou:1000/api/?key=7ee73e22b404453adc116a403a32e9c8&url="
},
{ {
"key": "金牌影视", "key": "金牌影视",
"name": "金牌|影视", "name": "金牌|影视",
@@ -889,17 +854,6 @@
"filterable": 1, "filterable": 1,
"playerType": 2 "playerType": 2
}, },
{
"key": "嗨皮影视",
"name": "嗨皮|影视",
"type": 3,
"api": "./py/嗨皮影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{ {
"key": "快看", "key": "快看",
"name": "快看|影视", "name": "快看|影视",
@@ -1008,8 +962,8 @@
"ext": "https://www.subaibai.com" "ext": "https://www.subaibai.com"
}, },
{ {
"key": "流光影视", "key": "免费影视",
"name": "️流光|影视", "name": "️免费|影视",
"type": 3, "type": 3,
"quickSearch": 1, "quickSearch": 1,
"api": "csp_FreeOk" "api": "csp_FreeOk"
@@ -2236,8 +2190,9 @@
{ {
"name": "AI直播", "name": "AI直播",
"type": 0, "type": 0,
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/PizazzGY/TV/master/output/user_result.txt", "url": "https://wget.la/https://raw.githubusercontent.com/PizazzGY/TV/master/output/user_result.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}", "epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"playerType": 1,
"timeout": 10 "timeout": 10
}, },
{ {
@@ -2247,12 +2202,6 @@
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}", "epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"timeout": 10 "timeout": 10
}, },
{
"name": "咪咕直播",
"type": 0,
"url": "https://yun.urldwz.com/f/Q6y3ca/migu.m3u",
"timeout": 10
},
{ {
"name": "虎牙一起看", "name": "虎牙一起看",
"type": 3, "type": 3,
@@ -2308,7 +2257,7 @@
{ {
"name": "APTV", "name": "APTV",
"type": 0, "type": 0,
"url": "https://gh-proxy.com/https://github.com/Kimentanm/aptv/raw/master/m3u/iptv.m3u", "url": "https://wget.la/https://github.com/Kimentanm/aptv/raw/master/m3u/iptv.m3u",
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}", "epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo": "https://epg.iill.top/logo/{name}.png", "logo": "https://epg.iill.top/logo/{name}.png",
"ua": "okhttp/3.15,AptvPlayer/1.4.0", "ua": "okhttp/3.15,AptvPlayer/1.4.0",
+52
View File
@@ -0,0 +1,52 @@
var rule = {
title: '米搜',
host: 'https://misoso.cc/',
hostJs: '',
headers: {
'User-Agent': 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36',
},
编码: 'utf-8',
timeout: 5000,
url: 'https://misoso.cc/search?q=fyclass&format=video&page=fypage',
filter_url: '',
detailUrl: '',
searchUrl: 'https://misoso.cc/search?q=**&format=video&page=fypage',
searchable: 1,
quickSearch: 1,
filterable: 1,
class_name: '',
class_url: '',
proxy_rule: '',
sniffer: false,
isVideo: '',
play_parse: true,
parse_url: '',
lazy: "js:\n input = 'push://' + input;\n ",
limit: 9,
double: false,
// 推荐: '*',
一级: 'js:\n let html = fetch(input);\n let list = pdfa(html, "body&&.semi-space-medium-vertical");\n VODS = list.map(x => {\n let remarks = pdfh(x, "div&&img&&alt");\n // 过滤掉包含"迅雷云盘"的内容\n if(remarks.includes("迅雷云盘")) return null;\n return {\n vod_name: pdfh(x, "div&&a&&title"),\n vod_pic: \'https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/49/25/97/49259775-1a6b-ba62-3c28-b27bf6712ade/source/1024x1024bb.jpg\',\n vod_remarks: remarks,\n vod_content: remarks,\n vod_id: pdfh(x, "div&&a&&href")\n }\n }).filter(x => x !== null);\n ',
二级: {
title: 'h1&&Text',
img: 'img&&src',
desc: '.card-text:eq(2)&&Text;;;;',
content: 'body&&.semi-space-loose-vertical&&a&&href',
tabs: "js:TABS = ['米搜']",
lists: "js:\n LISTS = [];\n let lists1 = pdfa(html, 'body&&.semi-space-loose-vertical').map(it => {\n let _tt = pdfh(it, 'span&&title');\n let _uu = pdfh(it, 'a&&href');\n return _tt + '$' + _uu;\n });\n LISTS.push(lists1);\n ",
},
搜索: 'js:\n let html = fetch(input);\n let list = pdfa(html, "body&&.semi-space-medium-vertical");\n VODS = list.map(x => {\n let remarks = pdfh(x, "div&&img&&alt");\n // 过滤掉包含"迅雷云盘"的内容\n if(remarks.includes("迅雷云盘")) return null;\n return {\n vod_name: pdfh(x, "div&&a&&title"),\n vod_pic: \'https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/49/25/97/49259775-1a6b-ba62-3c28-b27bf6712ade/source/1024x1024bb.jpg\',\n vod_remarks: remarks,\n vod_content: remarks,\n vod_id: pdfh(x, "div&&a&&href")\n }\n }).filter(x => x !== null);\n ',
cate_exclude: '首页|留言|APP|下载|资讯|新闻|动态',
tab_exclude: '猜你|喜欢|下载|剧情|榜|评论',
类型: '影视',
homeUrl: 'https://misoso.cc/',
二级访问前: '',
encoding: 'utf-8',
search_encoding: '',
图片来源: '',
图片替换: '',
play_json: [],
pagecount: {},
tab_remove: [],
tab_order: [],
tab_rename: {},
}
-581
View File
@@ -1,581 +0,0 @@
# -*- coding: utf-8 -*-
import requests
import re
import json
import traceback
import sys
sys.path.append('../../')
try:
from base.spider import Spider
except ImportError:
# 定义一个基础接口类,用于本地测试
class Spider:
def init(self, extend=""):
pass
class Spider(Spider):
def __init__(self):
self.siteUrl = "https://www.kuaikaw.cn"
self.nextData = None # 缓存NEXT_DATA数据
self.cateManual = {
"甜宠": "462",
"古装仙侠": "1102",
"现代言情": "1145",
"青春": "1170",
"豪门恩怨": "585",
"逆袭": "417-464",
"重生": "439-465",
"系统": "1159",
"总裁": "1147",
"职场商战": "943"
}
def getName(self):
# 返回爬虫名称
return "河马短剧"
def init(self, extend=""):
return
def fetch(self, url, headers=None):
"""统一的网络请求接口"""
if headers is None:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
"Referer": self.siteUrl,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
try:
response = requests.get(url, headers=headers, timeout=10, allow_redirects=True)
response.raise_for_status()
return response
except Exception as e:
print(f"请求异常: {url}, 错误: {str(e)}")
return None
def isVideoFormat(self, url):
# 检查是否为视频格式
video_formats = ['.mp4', '.mkv', '.avi', '.wmv', '.m3u8', '.flv', '.rmvb']
for format in video_formats:
if format in url.lower():
return True
return False
def manualVideoCheck(self):
# 不需要手动检查
return False
def homeContent(self, filter):
"""获取首页分类及筛选"""
result = {}
# 分类列表,使用已初始化的cateManual
classes = []
for k in self.cateManual:
classes.append({
'type_name': k,
'type_id': self.cateManual[k]
})
result['class'] = classes
# 获取首页推荐视频
try:
result['list'] = self.homeVideoContent()['list']
except:
result['list'] = []
return result
def homeVideoContent(self):
"""获取首页推荐视频内容"""
videos = []
try:
response = self.fetch(self.siteUrl)
html_content = response.text
# 提取NEXT_DATA JSON数据
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
if next_data_match:
next_data_json = json.loads(next_data_match.group(1))
page_props = next_data_json.get("props", {}).get("pageProps", {})
# 获取轮播图数据 - 这些通常是推荐内容
if "bannerList" in page_props and isinstance(page_props["bannerList"], list):
banner_list = page_props["bannerList"]
for banner in banner_list:
book_id = banner.get("bookId", "")
book_name = banner.get("bookName", "")
cover_url = banner.get("coverWap", banner.get("wapUrl", ""))
# 获取状态和章节数
status = banner.get("statusDesc", "")
total_chapters = banner.get("totalChapterNum", "")
if book_id and book_name:
videos.append({
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status} {total_chapters}集" if total_chapters else status
})
# SEO分类下的推荐
if "seoColumnVos" in page_props and isinstance(page_props["seoColumnVos"], list):
for column in page_props["seoColumnVos"]:
book_infos = column.get("bookInfos", [])
for book in book_infos:
book_id = book.get("bookId", "")
book_name = book.get("bookName", "")
cover_url = book.get("coverWap", "")
status = book.get("statusDesc", "")
total_chapters = book.get("totalChapterNum", "")
if book_id and book_name:
videos.append({
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status} {total_chapters}集" if total_chapters else status
})
# # 去重
# seen = set()
# unique_videos = []
# for video in videos:
# if video["vod_id"] not in seen:
# seen.add(video["vod_id"])
# unique_videos.append(video)
# videos = unique_videos
except Exception as e:
print(f"获取首页推荐内容出错: {e}")
result = {
"list": videos
}
return result
def categoryContent(self, tid, pg, filter, extend):
"""获取分类内容"""
result = {}
videos = []
url = f"{self.siteUrl}/browse/{tid}/{pg}"
response = self.fetch(url)
html_content = response.text
# 提取NEXT_DATA JSON数据
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
if next_data_match:
next_data_json = json.loads(next_data_match.group(1))
page_props = next_data_json.get("props", {}).get("pageProps", {})
# 获取总页数和当前页
current_page = page_props.get("page", 1)
total_pages = page_props.get("pages", 1)
# 获取书籍列表
book_list = page_props.get("bookList", [])
# 转换为通用格式
for book in book_list:
book_id = book.get("bookId", "")
book_name = book.get("bookName", "")
cover_url = book.get("coverWap", "")
status_desc = book.get("statusDesc", "")
total_chapters = book.get("totalChapterNum", "")
if book_id and book_name:
videos.append({
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status_desc} {total_chapters}集" if total_chapters else status_desc
})
# 构建返回结果
result = {
"list": videos,
"page": int(current_page),
"pagecount": total_pages,
"limit": len(videos),
"total": total_pages * len(videos) if videos else 0
}
return result
def switch(self, key, pg):
# 搜索功能
search_results = []
# 获取第一页结果,并检查总页数
url = f"{self.siteUrl}/search?searchValue={key}&page={pg}"
response = self.fetch(url)
html_content = response.text
# 提取NEXT_DATA JSON数据
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
if next_data_match:
next_data_json = json.loads(next_data_match.group(1))
page_props = next_data_json.get("props", {}).get("pageProps", {})
# 获取总页数
total_pages = page_props.get("pages", 1)
# 处理所有页的数据
all_book_list = []
# 添加第一页的书籍列表
book_list = page_props.get("bookList", [])
all_book_list.extend(book_list)
# 如果有多页,获取其他页的数据
if total_pages > 1 : # quick模式只获取第一页
for page in range(2, total_pages + 1):
next_page_url = f"{self.siteUrl}/search?searchValue={key}&page={page}"
next_page_response = self.fetch(next_page_url)
next_page_html = next_page_response.text
next_page_match = re.search(next_data_pattern, next_page_html, re.DOTALL)
if next_page_match:
next_page_json = json.loads(next_page_match.group(1))
next_page_props = next_page_json.get("props", {}).get("pageProps", {})
next_page_books = next_page_props.get("bookList", [])
all_book_list.extend(next_page_books)
# 转换为统一的搜索结果格式
for book in all_book_list:
book_id = book.get("bookId", "")
book_name = book.get("bookName", "")
cover_url = book.get("coverWap", "")
total_chapters = book.get("totalChapterNum", "0")
status_desc = book.get("statusDesc", "")
# 构建视频项
vod = {
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status_desc} {total_chapters}集"
}
search_results.append(vod)
result = {
"list": search_results,
"page": pg
}
return result
def searchContent(self, key, quick, pg=1):
result = self.switch(key, pg=pg)
result['page'] = pg
return result
def searchContentPage(self, key, quick, pg=1):
return self.searchContent(key, quick, pg)
def detailContent(self, ids):
# 获取剧集信息
vod_id = ids[0]
episode_id = None
chapter_id = None
if not vod_id.startswith('/drama/'):
if vod_id.startswith('/episode/'):
episode_info = vod_id.replace('/episode/', '').split('/')
if len(episode_info) >= 2:
episode_id = episode_info[0]
chapter_id = episode_info[1]
vod_id = f'/drama/{episode_id}'
else:
vod_id = '/drama/' + vod_id
drama_url = self.siteUrl + vod_id
print(f"请求URL: {drama_url}")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
"Referer": self.siteUrl,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
rsp = self.fetch(drama_url, headers=headers)
if not rsp or rsp.status_code != 200:
print(f"请求失败,状态码: {getattr(rsp, 'status_code', 'N/A')}")
return {}
html = rsp.text
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
if not next_data_match:
print("未找到NEXT_DATA内容")
return {}
try:
next_data = json.loads(next_data_match.group(1))
page_props = next_data.get("props", {}).get("pageProps", {})
print(f"找到页面属性,包含 {len(page_props.keys())} 个键")
book_info = page_props.get("bookInfoVo", {})
chapter_list = page_props.get("chapterList", [])
title = book_info.get("title", "")
sub_title = f"{book_info.get('totalChapterNum', '')}集"
categories = []
for category in book_info.get("categoryList", []):
categories.append(category.get("name", ""))
vod_content = book_info.get("introduction", "")
vod = {
"vod_id": vod_id,
"vod_name": title,
"vod_pic": book_info.get("coverWap", ""),
"type_name": ",".join(categories),
"vod_year": "",
"vod_area": book_info.get("countryName", ""),
"vod_remarks": sub_title,
"vod_actor": ", ".join([p.get("name", "") for p in book_info.get("performerList", [])]),
"vod_director": "",
"vod_content": vod_content
}
# 处理播放列表
play_url_list = []
episodes = []
if chapter_list:
print(f"找到 {len(chapter_list)} 个章节")
# 先检查是否有可以直接使用的MP4链接作为模板
mp4_template = None
first_mp4_chapter_id = None
# 先搜索第一个章节的MP4链接
# 为提高成功率,尝试直接请求第一个章节的播放页
if chapter_list and len(chapter_list) > 0:
first_chapter = chapter_list[0]
first_chapter_id = first_chapter.get("chapterId", "")
drama_id_clean = vod_id.replace('/drama/', '')
if first_chapter_id and drama_id_clean:
first_episode_url = f"{self.siteUrl}/episode/{drama_id_clean}/{first_chapter_id}"
print(f"请求第一集播放页: {first_episode_url}")
first_rsp = self.fetch(first_episode_url, headers=headers)
if first_rsp and first_rsp.status_code == 200:
first_html = first_rsp.text
# 直接从HTML提取MP4链接
mp4_pattern = r'(https?://[^"\']+\.mp4)'
mp4_matches = re.findall(mp4_pattern, first_html)
if mp4_matches:
mp4_template = mp4_matches[0]
first_mp4_chapter_id = first_chapter_id
print(f"找到MP4链接模板: {mp4_template}")
print(f"模板对应的章节ID: {first_mp4_chapter_id}")
# 如果未找到模板,再检查章节对象中是否有MP4链接
if not mp4_template:
for chapter in chapter_list[:5]: # 只检查前5个章节以提高效率
if "chapterVideoVo" in chapter and chapter["chapterVideoVo"]:
chapter_video = chapter["chapterVideoVo"]
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url and ".mp4" in mp4_url:
mp4_template = mp4_url
first_mp4_chapter_id = chapter.get("chapterId", "")
print(f"从chapterVideoVo找到MP4链接模板: {mp4_template}")
print(f"模板对应的章节ID: {first_mp4_chapter_id}")
break
# 遍历所有章节处理播放信息
for chapter in chapter_list:
chapter_id = chapter.get("chapterId", "")
chapter_name = chapter.get("chapterName", "")
# 1. 如果章节自身有MP4链接,直接使用
if "chapterVideoVo" in chapter and chapter["chapterVideoVo"]:
chapter_video = chapter["chapterVideoVo"]
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url and ".mp4" in mp4_url:
episodes.append(f"{chapter_name}${mp4_url}")
continue
# 2. 如果有MP4模板,尝试替换章节ID构建MP4链接
if mp4_template and first_mp4_chapter_id and chapter_id:
# 替换模板中的章节ID部分
if first_mp4_chapter_id in mp4_template:
new_mp4_url = mp4_template.replace(first_mp4_chapter_id, chapter_id)
episodes.append(f"{chapter_name}${new_mp4_url}")
continue
# 3. 如果上述方法都不可行,回退到使用chapter_id构建中间URL
if chapter_id and chapter_name:
url = f"{vod_id}${chapter_id}${chapter_name}"
episodes.append(f"{chapter_name}${url}")
if not episodes and vod_id:
# 尝试构造默认的集数
total_chapters = int(book_info.get("totalChapterNum", "0"))
if total_chapters > 0:
print(f"尝试构造 {total_chapters} 个默认集数")
# 如果知道章节ID的模式,可以构造
if chapter_id and episode_id:
for i in range(1, total_chapters + 1):
chapter_name = f"第{i}集"
url = f"{vod_id}${chapter_id}${chapter_name}"
episodes.append(f"{chapter_name}${url}")
else:
# 使用普通的构造方式
for i in range(1, total_chapters + 1):
chapter_name = f"第{i}集"
url = f"{vod_id}${chapter_name}"
episodes.append(f"{chapter_name}${url}")
if episodes:
play_url_list.append("#".join(episodes))
vod['vod_play_from'] = '河马剧场'
vod['vod_play_url'] = '$$$'.join(play_url_list)
result = {
'list': [vod]
}
return result
except Exception as e:
print(f"解析详情页失败: {str(e)}")
print(traceback.format_exc())
return {}
def playerContent(self, flag, id, vipFlags):
result = {}
print(f"调用playerContent: flag={flag}, id={id}")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
"Referer": self.siteUrl,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
# 解析id参数
parts = id.split('$')
drama_id = None
chapter_id = None
if len(parts) >= 2:
drama_id = parts[0]
chapter_id = parts[1]
chapter_name = parts[2] if len(parts) > 2 else "第一集"
print(f"解析参数: drama_id={drama_id}, chapter_id={chapter_id}")
else:
# 处理旧数据格式
print(f"使用原始URL格式: {id}")
result["parse"] = 0
result["url"] = id
result["header"] = json.dumps(headers)
return result
# 直接检查chapter_id是否包含http(可能已经是视频链接)
if 'http' in chapter_id and '.mp4' in chapter_id:
print(f"已经是MP4链接: {chapter_id}")
result["parse"] = 0
result["url"] = chapter_id
result["header"] = json.dumps(headers)
return result
# 构建episode页面URL
drama_id_clean = drama_id.replace('/drama/', '')
episode_url = f"{self.siteUrl}/episode/{drama_id_clean}/{chapter_id}"
print(f"请求episode页面: {episode_url}")
try:
rsp = self.fetch(episode_url, headers=headers)
if not rsp or rsp.status_code != 200:
print(f"请求失败,状态码: {getattr(rsp, 'status_code', 'N/A')}")
result["parse"] = 0
result["url"] = id
result["header"] = json.dumps(headers)
return result
html = rsp.text
print(f"获取页面大小: {len(html)} 字节")
# 尝试从NEXT_DATA提取视频链接
mp4_url = None
# 方法1: 从NEXT_DATA提取
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
if next_data_match:
try:
print("找到NEXT_DATA")
next_data = json.loads(next_data_match.group(1))
page_props = next_data.get("props", {}).get("pageProps", {})
# 从chapterList中查找当前章节
chapter_list = page_props.get("chapterList", [])
print(f"找到章节列表,长度: {len(chapter_list)}")
for chapter in chapter_list:
if chapter.get("chapterId") == chapter_id:
print(f"找到匹配的章节: {chapter.get('chapterName')}")
chapter_video = chapter.get("chapterVideoVo", {})
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url:
print(f"从chapterList找到MP4链接: {mp4_url}")
break
# 如果未找到,尝试从当前章节获取
if not mp4_url:
current_chapter = page_props.get("chapterInfo", {})
if current_chapter:
print("找到当前章节信息")
chapter_video = current_chapter.get("chapterVideoVo", {})
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url:
print(f"从chapterInfo找到MP4链接: {mp4_url}")
except Exception as e:
print(f"解析NEXT_DATA失败: {str(e)}")
print(traceback.format_exc())
# 方法2: 直接从HTML中提取MP4链接
if not mp4_url:
mp4_pattern = r'(https?://[^"\']+\.mp4)'
mp4_matches = re.findall(mp4_pattern, html)
if mp4_matches:
# 查找含有chapter_id的链接
matched_mp4 = False
for url in mp4_matches:
if chapter_id in url:
mp4_url = url
matched_mp4 = True
print(f"从HTML直接提取章节MP4链接: {mp4_url}")
break
# 如果没找到包含chapter_id的链接,使用第一个
if not matched_mp4 and mp4_matches:
mp4_url = mp4_matches[0]
print(f"从HTML直接提取MP4链接: {mp4_url}")
if mp4_url and ".mp4" in mp4_url:
print(f"最终找到的MP4链接: {mp4_url}")
result["parse"] = 0
result["url"] = mp4_url
result["header"] = json.dumps(headers)
return result
else:
print(f"未找到有效的MP4链接,尝试再次解析页面内容")
# 再尝试一次从HTML中广泛搜索所有可能的MP4链接
all_mp4_pattern = r'(https?://[^"\']+\.mp4)'
all_mp4_matches = re.findall(all_mp4_pattern, html)
if all_mp4_matches:
mp4_url = all_mp4_matches[0]
print(f"从HTML广泛搜索找到MP4链接: {mp4_url}")
result["parse"] = 0
result["url"] = mp4_url
result["header"] = json.dumps(headers)
return result
print(f"未找到视频链接,返回原episode URL: {episode_url}")
result["parse"] = 0
result["url"] = episode_url
result["header"] = json.dumps(headers)
return result
except Exception as e:
print(f"请求或解析失败: {str(e)}")
print(traceback.format_exc())
result["parse"] = 0
result["url"] = id
result["header"] = json.dumps(headers)
return result
def localProxy(self, param):
# 本地代理处理,此处简单返回传入的参数
return [200, "video/MP2T", {}, param]
def destroy(self):
# 资源回收
pass
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -4,7 +4,7 @@
"sites": [ "sites": [
{ {
"key": "豆", "key": "豆",
"name": "【神秘的哥哥们】", "name": "修复阿狸 926【神秘的哥哥们】",
"type": 3, "type": 3,
"api": "csp_DouDouGuard", "api": "csp_DouDouGuard",
"indexs": 1, "indexs": 1,
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.
+956 -1048
View File
File diff suppressed because it is too large. Load diff
+388 -3
View File
@@ -1,5 +1,312 @@
# IPv4 Streams # IPv4 Streams
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.46.105.20:8009/hls/501/index.m3u8
CCTV1,http://112.123.206.32:808/hls/1/index.m3u8
CCTV10,http://58.57.40.22:9901/tsfile/live/1010_1.m3u8
CCTV10,http://112.46.105.20:8009/hls/506/index.m3u8
CCTV10,http://58.17.48.228:808/hls/10/index.m3u8
CCTV10,http://60.29.124.66:6080/hls/21/index.m3u8
CCTV10,http://110.53.52.63:8888/newlive/live/hls/12/live.m3u8
CCTV11,http://112.46.105.20:8009/hls/11/index.m3u8
CCTV11,http://60.29.124.66:6080/hls/22/index.m3u8
CCTV11,http://61.136.172.236:9901/tsfile/live/0011_1.m3u8
CCTV11,http://119.32.12.17:2901/udp/224.1.100.44:11111
CCTV11,http://125.42.150.89:9901/tsfile/live/1010_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV12,http://112.46.105.20:8009/hls/507/index.m3u8
CCTV12,http://110.53.52.63:8888/newlive/live/hls/14/live.m3u8
CCTV12,http://58.19.43.46:9901/tsfile/live/1031_1.m3u8
CCTV12,http://219.135.180.210:18888/hls/12/index.m3u8
CCTV13,http://112.46.105.20:8009/hls/13/index.m3u8
CCTV14,http://58.57.40.22:9901/tsfile/live/1014_1.m3u8
CCTV14,http://112.46.105.20:8009/hls/14/index.m3u8
CCTV14,http://60.29.124.66:6080/hls/25/index.m3u8
CCTV14,http://110.53.52.63:8888/newlive/live/hls/16/live.m3u8
CCTV15,http://58.57.40.22:9901/tsfile/live/1015_1.m3u8
CCTV15,http://112.46.105.20:8009/hls/15/index.m3u8
CCTV15,http://60.29.124.66:6080/hls/26/index.m3u8
CCTV15,http://110.53.52.63:8888/newlive/live/hls/17/live.m3u8
CCTV16,http://111.43.126.240:9003/hls/86/index.m3u8
CCTV16,http://58.17.48.228:808/hls/25/index.m3u8
CCTV16,http://183.11.239.36:808/hls/169/index.m3u8
CCTV164K25PHLG源,http://113.62.253.22/live.aishang.ctlcdn.com/00000110240389_1/playlist.m3u8?CONTENTID=00000110240389_1&AUTHINFO=FABqh274XDn8fkurD5614t%2B1RvYajgx%2Ba3PxUJe1SMO4OjrtFitM6ZQbSJEFffaD35hOAhZdTXOrK0W8QvBRom%2BXaXZYzB%2FQfYjeYzGgKhP%2Fdo%2BXpr4quVxlkA%2BubKvbU1XwJFRgrbX%2BnTs60JauQUrav8kLj%2FPH8LxkDFpzvkq75UfeY%2FVNDZygRZLw4j%2BXtwhj%2FIuXf1hJAU0X%2BheT7g%3D%3D&USERTOKEN=eHKuwve%2F35NVIR5qsO5XsuB0O2BhR0KR
CCTV17,http://111.43.126.240:9003/hls/30/index.m3u8
CCTV17,http://120.238.94.10:9901/tsfile/live/1048_1.m3u8
CCTV17,http://219.135.180.210:18888/hls/24/index.m3u8
CCTV2,http://112.46.105.20:8009/hls/502/index.m3u8
CCTV2,http://58.19.43.46:9901/tsfile/live/1021_1.m3u8
CCTV2,http://61.136.172.236:9901/tsfile/live/0002_1.m3u8
CCTV2,http://219.135.180.210:18888/hls/2/index.m3u8
CCTV3,http://112.46.105.20:8009/hls/3/index.m3u8
CCTV3,http://112.101.78.50:9901/tsfile/live/0003_1.m3u8
CCTV3,http://120.76.248.139/live/bfgd/4200000062.m3u8
CCTV3,http://58.221.214.82:9901/tsfile/live/0003_1.m3u8
CCTV4,http://112.46.105.20:8009/hls/4/index.m3u8
CCTV4,http://120.76.248.139/live/bfgd/4200000063.m3u8
CCTV4,http://112.46.85.60:8009/hls/4/index.m3u8
CCTV5,http://112.46.105.20:8009/hls/503/index.m3u8
CCTV5,http://58.17.48.228:808/hls/5/index.m3u8
CCTV5,http://60.29.124.66:6080/hls/16/index.m3u8
CCTV5,http://183.11.239.36:808/hls/93/index.m3u8
CCTV5,http://120.76.248.139/live/bfgd/4200000064.m3u8
CCTV5+,http://58.57.40.22:9901/tsfile/live/1005_1.m3u8
CCTV5+,http://111.43.126.240:9003/hls/81/index.m3u8
CCTV5+,http://110.53.52.63:8888/newlive/live/hls/7/live.m3u8
CCTV5+,http://120.76.248.139/live/bfgd/4200000246.m3u8
CCTV6,http://58.57.40.22:9901/tsfile/live/1006_1.m3u8
CCTV6,http://112.46.105.20:8009/hls/6/index.m3u8
CCTV6,http://58.17.48.228:808/hls/6/index.m3u8
CCTV6,http://60.29.124.66:6080/hls/17/index.m3u8
CCTV7,http://112.46.105.20:8009/hls/504/index.m3u8
CCTV7,http://60.29.124.66:6080/hls/18/index.m3u8
CCTV7,http://183.11.239.36:808/hls/25/index.m3u8
CCTV7,http://112.46.85.60:8009/hls/504/index.m3u8
CCTV8,http://112.46.105.20:8009/hls/8/index.m3u8
CCTV8,http://58.17.48.228:808/hls/8/index.m3u8
CCTV8,http://60.29.124.66:6080/hls/19/index.m3u8
CCTV8,http://183.11.239.36:808/hls/96/index.m3u8
CCTV9,http://112.46.105.20:8009/hls/509/index.m3u8
CCTV9,http://58.17.48.228:808/hls/9/index.m3u8
CCTV9,http://60.29.124.66:6080/hls/20/index.m3u8
CCTV9,http://110.53.52.63:8888/newlive/live/hls/11/live.m3u8
CCTV9,http://183.11.239.36:808/hls/27/index.m3u8
CHC动作电影,http://110.53.52.63:8888/newlive/live/hls/53/live.m3u8
CHC动作电影,http://119.32.12.17:2901/udp/224.1.100.131:11111
CHC动作电影,http://58.19.38.162:9901/tsfile/live/1005_1.m3u8?key=txiptv&playlive=1&authid=0
CHC华诚影视,http://120.76.248.139/live/bfgd/4200000289.m3u8
CHC家庭影院,http://61.162.52.6:8088/newlive/live/hls/60/live.m3u8
CHC家庭影院,http://58.19.38.162:9901/tsfile/live/1006_1.m3u8?key=txiptv&playlive=1&authid=0
CHC影迷电影,http://58.19.38.162:9901/tsfile/live/1004_1.m3u8?key=txiptv&playlive=1&authid=0
NewTV超级电影,http://39.134.65.175/PLTV/88888888/224/3221225644/1.m3u8
NewTV金牌综艺,http://39.134.65.175/PLTV/88888888/224/3221225525/1.m3u8
万州三峡移民,http://123.146.162.24:8017/c2F0hmi/1000/live.m3u8
万州三峡移民,http://123.146.162.24:8017/c2F0hmi/1000/live.m3u8?zzhongqd
万荣综合,http://60.222.246.220:19433/hls1.m3u8
三沙卫视,http://61.138.128.226:19901/tsfile/live/1020_1.m3u8
东北热剧,http://39.134.65.175/PLTV/88888888/224/3221225679/1.m3u8
东南卫视,http://58.57.40.22:9901/tsfile/live/1037_1.m3u8
东南卫视,http://112.46.105.20:8009/hls/45/index.m3u8
东方卫视,http://58.57.40.22:9901/tsfile/live/1030_1.m3u8
东方卫视,http://112.46.105.20:8009/hls/31/index.m3u8
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
东方卫视,http://110.53.52.63:8888/newlive/live/hls/19/live.m3u8
东森幼幼,http://50.7.234.10:8278/yoyo_twn/playlist.m3u8?ct=17874&tid=m84c9b210bc7f11269156&tsum=51340c8fb7ca02ab978ee0791843501d
中华特产,http://120.76.248.139/live/bfgd/4200000158.m3u8
乐家购物,http://112.46.105.20:8009/hls/23/index.m3u8
乐游,http://112.46.105.20:8009/hls/75/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://112.46.105.20:8009/hls/56/index.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_2/index.m3u8
优优宝贝,http://120.76.248.139/live/bfgd/4200000153.m3u8
优漫卡通,http://58.221.214.82:9901/tsfile/live/0008_2.m3u8
优漫卡通,http://110.53.218.182:9902/tsfile/live/1006_1.m3u8
优漫卡通,http://119.32.12.17:2901/udp/224.1.100.119:11111
优漫卡通,http://221.226.4.10:9901/tsfile/live/1026_1.m3u8?key=txiptv&playlive=1&authid=0
兵团八师石河子教育,http://124.88.144.73:1935/live/jiaoyu/playlist.m3u8
兵团八师石河子经济生活,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://124.128.73.58:9901/tsfile/live/0115_1.m3u8
内蒙古卫视,http://112.46.105.20:8009/hls/60/index.m3u8
内蒙古卫视,http://8.138.7.223/tv/nmgws.m3u8
内蒙古卫视,http://110.53.52.63:8888/newlive/live/hls/45/live.m3u8
内蒙古卫视,http://111.61.236.247:9081/hls/48/index.m3u8
农林卫视,http://112.46.105.20:8009/hls/27/index.m3u8
农林卫视,http://8.138.7.223/【公众号:榴芒电视】/农林卫视.m3u8
农林卫视,http://120.76.248.139/live/bfgd/4200000122.m3u8
农林卫视,http://112.46.85.60:8009/hls/27/index.m3u8
农林卫视,http://124.116.183.146:9901/tsfile/live/1004_1.m3u8
动漫秀场,http://36.129.204.117:9003//hls/67/index.m3u8
劲爆体育,http://119.32.12.17:2901/udp/224.1.100.129:11111
北京卫视,http://58.57.40.22:9901/tsfile/live/1032_1.m3u8
北京卫视,http://112.46.105.20:8009/hls/35/index.m3u8
北京卫视,http://36.32.174.67:60080/newlive/live/hls/25/live.m3u8
卡酷少儿,http://61.138.128.226:19901/tsfile/live/1017_1.m3u8
卡酷少儿,http://218.13.170.98:9901/tsfile/live/1021_1.m3u8
卡酷少儿,http://60.29.124.66:6080/hls/58/index.m3u8
卡酷少儿,http://58.57.40.22:9901/tsfile/live/1060_1.m3u8
厦门卫视,http://125.42.151.32:9901/tsfile/live/0125_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.46.105.20:8009/hls/48/index.m3u8
吉林卫视,http://58.19.43.46:9901/tsfile/live/1007_1.m3u8
哈哈炫动,http://58.57.40.22:9901/tsfile/live/1061_1.m3u8
哈哈炫动,http://120.238.94.10:9901/tsfile/live/1037_1.m3u8
哈哈炫动,http://61.138.128.226:19901/tsfile/live/1016_1.m3u8
哈哈炫动,http://60.29.124.66:6080/hls/62/index.m3u8
哈尔滨影视,http://111.43.126.240:9003/hls/5/index.m3u8
嘉佳卡通,http://112.46.105.20:8009/hls/66/index.m3u8
四川卫视,http://58.57.40.22:9901/tsfile/live/1046_1.m3u8
四川卫视,http://112.46.105.20:8009/hls/41/index.m3u8
四川卫视,http://36.32.174.67:60080/newlive/live/hls/29/live.m3u8
四川卫视,http://110.53.52.63:8888/newlive/live/hls/31/live.m3u8
四川科教,http://182.150.115.21:8030/pcgacg/pcgacg_0.m3u8
四海钓鱼,http://120.76.248.139/live/bfgd/4200000229.m3u8
大湾区卫视,http://222.128.55.152:9080/live/dwq.m3u8
天津卫视,http://58.57.40.22:9901/tsfile/live/1034_1.m3u8
天津卫视,http://112.46.105.20:8009/hls/44/index.m3u8
天津卫视,http://124.116.183.146:9901/tsfile/live/0135_1.m3u8
天津卫视,http://110.53.52.63:8888/newlive/live/hls/42/live.m3u8
奎屯哈萨克语,http://218.84.12.186:8002/hls/main/playlist.m3u8
奎屯哈萨克语,http://218.84.12.186:8002/hls/main/playlist.m3u8?zxinjd
宁夏卫视,http://112.46.105.20:8009/hls/52/index.m3u8
宁夏卫视,http://120.238.94.10:9901/tsfile/live/1076_1.m3u8
宁夏卫视,http://183.11.239.36:808/hls/106/index.m3u8
安多卫视,http://39.134.65.166/PLTV/88888888/224/3221225531/1.m3u8
安多卫视,http://39.134.66.66/PLTV/88888888/224/3221225531/1.m3u8
安徽卫视,http://58.57.40.22:9901/tsfile/live/1033_1.m3u8
安徽卫视,http://112.46.105.20:8009/hls/42/index.m3u8
安徽卫视,http://110.53.52.63:8888/newlive/live/hls/24/live.m3u8
安徽卫视,http://182.150.23.74:808/hls/25/index.m3u8
少儿动画,http://218.15.183.23:9901/tsfile/live/23045_1.m3u8
少儿动画,http://61.138.128.226:19901/tsfile/live/1017_1.m3u8?key=txiptv&playlive=1&authid=0
山东卫视,http://39.164.160.249:9901/tsfile/live/0131_1.m3u8
山东卫视,http://112.46.105.20:8009/hls/40/index.m3u8
山东卫视,http://183.11.239.36:808/hls/43/index.m3u8
山东文旅,http://58.57.40.22:9901/tsfile/live/1023_1.m3u8
山西卫视,http://112.46.105.20:8009/hls/49/index.m3u8
山西卫视,http://39.164.180.36:19901/tsfile/live/0118_1.m3u8?key=txiptv&amp;playlive=0&amp;authid=0
广东体育,http://120.238.94.10:9901/tsfile/live/1012_1.m3u8
广东体育,http://119.32.12.17:2901/udp/224.1.100.34:11111
广东卫视,http://112.46.105.20:8009/hls/36/index.m3u8
广东卫视,http://60.223.224.176:8888/newlive/live/hls/20/live.m3u8
广东卫视,http://61.156.228.12:8154/tsfile/live/0125_1.m3u8
广东卫视,http://223.241.247.214:9901/tsfile/live/1011_1.m3u8
广东少儿,http://119.32.12.17:2901/udp/224.1.100.9:11111
广东影视,http://119.32.12.17:2901/udp/224.1.100.11:11111
广东新闻,http://119.32.12.17:2901/udp/224.1.100.5:11111
广东民生,http://183.11.239.36:808/hls/18/index.m3u8
广东民生,http://119.32.12.17:2901/udp/224.1.100.4:11111
广东珠江,http://119.32.12.17:2901/udp/224.1.100.23:11111
广东经济科教,http://119.32.12.17:2901/udp/224.1.100.6:11111
广州竞赛,http://8.138.7.223/tv/gzjs.m3u8
广西卫视,http://112.46.105.20:8009/hls/53/index.m3u8
康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
康巴卫视,http://39.134.66.66/PLTV/88888888/224/3221225527/1.m3u8
康巴卫视,http://39.134.65.166/PLTV/88888888/224/3221225527/1.m3u8
延边卫视,http://120.76.248.139/live/bfgd/4200000117.m3u8
延边卫视,http://61.138.128.226:19901/tsfile/live/1008_1.m3u8
延边卫视,http://61.138.128.226:19901/tsfile/live/1008_1.m3u8?key=txiptv&playlive=1&authid=0
新疆卫视,http://39.164.160.249:9901/tsfile/live/0110_1.m3u8
新疆卫视,http://58.57.40.22:9901/tsfile/live/1055_1.m3u8
新疆卫视,http://112.46.105.20:8009/hls/61/index.m3u8
新疆卫视,http://110.53.52.63:8888/newlive/live/hls/37/live.m3u8
新视觉,http://120.76.248.139/live/bfgd/4200000249.m3u8
朝阳新闻综合,http://120.76.248.139/live/bfgd/4200000282.m3u8
末日电影合集,http://43.138.0.72:35455/yy/1354889019
欢乐剧场,http://39.134.65.175/PLTV/88888888/224/3221225682/1.m3u8
江夏新闻综合,http://59.175.226.142:280/gb28181/xwzh.m3u8?zhubd
江津新闻,http://222.179.155.21:1935/ch1.m3u8?zzhongqd
江苏卫视,http://112.46.105.20:8009/hls/33/index.m3u8
江苏卫视,http://113.57.111.4:1111/tsfile/live/1019_1.m3u8
江苏卫视,http://113.25.252.226:9901/tsfile/live/0127_1.m3u8
江西卫视,http://39.164.160.249:9901/tsfile/live/0138_1.m3u8
江西卫视,http://58.57.40.22:9901/tsfile/live/1043_1.m3u8
江西卫视,http://112.46.105.20:8009/hls/47/index.m3u8
江西卫视,http://36.32.174.67:60080/newlive/live/hls/22/live.m3u8
河北卫视,http://39.164.160.249:9901/tsfile/live/0117_1.m3u8
河北卫视,http://58.57.40.22:9901/tsfile/live/1044_1.m3u8
河北卫视,http://112.46.105.20:8009/hls/55/index.m3u8
河南卫视,http://39.164.160.249:9901/tsfile/live/0139_1.m3u8
河南卫视,http://112.46.105.20:8009/hls/46/index.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://61.147.106.103/play.jinnantv.top/live/JNTV1.m3u8?ztianjd&amp;wsSession=4e59297ef5846f4a7cf02eb3-172672213891355&amp;wsIPSercert=6d426cba8b106cdec9147b1e2a9ace7c&amp;wsiphost=local&amp;wsBindIP=1
浙江卫视,http://112.46.105.20:8009/hls/34/index.m3u8
浙江新闻,http://101.66.199.91:9901/tsfile/live/1005_1.m3u8?key=txiptv&playlive=0&authid=0
海南卫视,http://58.57.40.22:9901/tsfile/live/1000_1.m3u8
海南卫视,http://36.32.174.67:60080/newlive/live/hls/46/live.m3u8
海南卫视,http://61.138.128.226:19901/tsfile/live/1015_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
涡阳新闻综合,http://220.180.124.18:888/live/ch0.m3u8
深圳卫视,http://58.57.40.22:9901/tsfile/live/1036_1.m3u8
深圳卫视,http://112.46.105.20:8009/hls/37/index.m3u8
深圳卫视,http://38.64.72.148:80/hls/modn/list/4007/playlist.m3u8
深圳卫视,http://110.53.52.63:8888/newlive/live/hls/27/live.m3u8
湖北卫视,http://58.57.40.22:9901/tsfile/live/1038_1.m3u8
湖北卫视,http://112.46.105.20:8009/hls/39/index.m3u8
湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
湖北卫视,http://36.32.174.67:60080/newlive/live/hls/28/live.m3u8
湖南卫视,http://112.46.105.20:8009/hls/32/index.m3u8
湖南卫视,http://60.223.224.176:8888/newlive/live/hls/22/live.m3u8
湖南卫视,http://120.76.248.139/live/bfgd/4200000086.m3u8
漫画解说,http://61.133.118.228:5001/yy/1382735568
环球旅游,http://120.76.248.139/live/bfgd/4200000147.m3u8
甘肃卫视,http://112.46.105.20:8009/hls/51/index.m3u8
甘肃卫视,http://110.53.52.63:8888/newlive/live/hls/35/live.m3u8
甘肃卫视,http://111.61.236.247:9081/hls/54/index.m3u8
生态环境,http://120.76.248.139/live/bfgd/4200000149.m3u8
石河子影视文体,http://124.88.144.73:1935/live/jjsh/playlist.m3u8
纪实科教,http://120.76.248.139/live/bfgd/4200000113.m3u8
纪实科教8K,http://111.31.106.140/downflv.brtvcloud.com/8klive/8kliveok.m3u8
经典动漫,http://61.133.118.228:5001/yy/24180320
西安新闻,http://112.46.105.20:8009/hls/28/index.m3u8
西安都市,http://112.46.105.20:8009/hls/29/index.m3u8
西藏卫视,http://112.46.105.20:8009/hls/59/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://110.53.52.63:8888/newlive/live/hls/36/live.m3u8
谈判专家,http://43.138.0.72:35455/yy/1382735560
贵州卫视,http://58.57.40.22:9901/tsfile/live/1042_1.m3u8
贵州卫视,http://112.46.105.20:8009/hls/50/index.m3u8
贵州卫视,http://110.53.52.63:8888/newlive/live/hls/28/live.m3u8
贵州卫视,http://58.19.43.46:9901/tsfile/live/1011_1.m3u8
超级电影,http://39.135.133.154:80/PLTV/88888888/224/3221225644/1.m3u8
超级电影,http://39.135.133.155:80/PLTV/88888888/224/3221225644/1.m3u8
超级电影,http://39.135.133.157:80/PLTV/88888888/224/3221225644/1.m3u8
超级电影,http://39.134.65.73:80/PLTV/88888888/224/3221225644/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://112.46.105.20:8009/hls/54/index.m3u8
辽宁卫视,http://110.53.52.63:8888/newlive/live/hls/46/live.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
辽宁经济,http://120.76.248.139/live/bfgd/4200000076.m3u8
辽宁经济,http://120.76.248.139/live/bfgd/4200000480.m3u8
辽宁都市,http://120.76.248.139/live/bfgd/4200000068.m3u8
辽宁都市,http://120.76.248.139/live/bfgd/4200000610.m3u8
都市剧场,http://112.46.105.20:8009/hls/72/index.m3u8
鄂托克旗电视台,http://110.19.181.138:10080/hls/F509Rh7GR/F509Rh7GR_live.m3u8?zneimd
重庆卫视,http://112.46.105.20:8009/hls/43/index.m3u8
重庆卫视,http://36.32.174.67:60080/newlive/live/hls/34/live.m3u8
重庆卫视,http://183.11.239.36:808/hls/53/index.m3u8
重庆卫视,http://120.76.248.139/live/bfgd/4200000107.m3u8
金鹰卡通,http://110.53.52.63:8888/newlive/live/hls/49/live.m3u8
金鹰卡通,http://58.19.43.46:9901/tsfile/live/1000_1.m3u8
金鹰卡通,http://116.128.242.83:9901/tsfile/live/1002_1.m3u8
金鹰卡通,http://58.57.40.22:9901/tsfile/live/1059_1.m3u8
陕西体育休闲,http://112.46.105.20:8009/hls/24/index.m3u8
陕西卫视,http://112.46.105.20:8009/hls/17/index.m3u8
陕西卫视,http://39.164.180.36:19901/tsfile/live/0136_1.m3u8?key=txiptv&playlive=0&authid=0
陕西卫视,http://39.164.180.36:19901/tsfile/live/0136_1.m3u8?key=txiptv&amp;amp;playlive=0&amp;amp;authid=0
陕西新闻咨询,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
青海卫视,http://112.46.105.20:8009/hls/58/index.m3u8
青海卫视,http://110.53.52.63:8888/newlive/live/hls/38/live.m3u8
青海卫视,http://120.76.248.139/live/bfgd/4200000111.m3u8
黎城综合,http://111.53.96.67:8081/live/1/index.m3u8
黑龙江卫视,http://39.164.160.249:9901/tsfile/live/0143_1.m3u8
黑龙江卫视,http://112.46.105.20:8009/hls/38/index.m3u8
黑龙江卫视,http://110.53.52.63:8888/newlive/live/hls/44/live.m3u8
# IPv6 Streams # IPv6 Streams
CCTV-1 综合,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8 CCTV-1 综合,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
@@ -9,9 +316,9 @@ CCTV-12 社会与法,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.c
CCTV-13 新闻,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226537/index.m3u8 CCTV-13 新闻,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226537/index.m3u8
CCTV-14 少儿,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225732/index.m3u8 CCTV-14 少儿,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225732/index.m3u8
CCTV-15 音乐,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226476/index.m3u8 CCTV-15 音乐,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226476/index.m3u8
CCTV-16 奥林匹克,http://[2409:8087:1a01:df::4077]:80/PLTV/88888888/224/3221225893/index.m3u8
CCTV-17 农业农村,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225765/index.m3u8 CCTV-17 农业农村,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225765/index.m3u8
CCTV-2 财经,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8 CCTV-2 财经,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8
CCTV-3 综艺,http://[2409:8087:1a01:df::4077]:80/PLTV/88888888/224/3221225799/index.m3u8
CCTV-4 中文国际,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226428/index.m3u8 CCTV-4 中文国际,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226428/index.m3u8
CCTV-5 体育,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226019/index.m3u8 CCTV-5 体育,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226019/index.m3u8
CCTV-5+ 体育赛事,http://[2409:8087:1a01:df::4077]:80/PLTV/88888888/224/3221225507/index.m3u8 CCTV-5+ 体育赛事,http://[2409:8087:1a01:df::4077]:80/PLTV/88888888/224/3221225507/index.m3u8
@@ -19,37 +326,115 @@ CCTV-6 电影,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV
CCTV-7 国防军事,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225733/index.m3u8 CCTV-7 国防军事,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225733/index.m3u8
CCTV-8 电视剧,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226008/index.m3u8 CCTV-8 电视剧,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226008/index.m3u8
CCTV-9 纪录,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225734/index.m3u8 CCTV-9 纪录,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225734/index.m3u8
CCTV10,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226449/1.m3u8
CCTV11,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8
CCTV11,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226448/1.m3u8
CCTV12,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8
CCTV14,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226229/1.m3u8
CCTV14,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226445/1.m3u8
CCTV15,http://[2409:8087:1a01:df::4033]:80/TVOD/88888888/224/3221226127/main.m3u8
CCTV15,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8
CCTV15,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226444/1.m3u8
CCTV16,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226887/1.m3u8
CCTV16,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226888/1.m3u8
CCTV17,http://[2409:8087:1a01:df::4025]:80/TVOD/88888888/224/3221225708/main.m3u8
CCTV17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8
CCTV17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226442/1.m3u8
CCTV2,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226230/1.m3u8
CCTV3,http://[2409:8087:1a01:df::4041]:80/TVOD/88888888/224/3221225799/main.m3u8
CCTV3,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226456/1.m3u8
CCTV3,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226471/1.m3u8
CCTV7,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8
CCTV8,http://[2409:8087:1a01:df::4051]:80/TVOD/88888888/224/3221225795/main.m3u8
CCTV8,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226451/1.m3u8
CCTV9,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226236/1.m3u8
CCTV9,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226450/1.m3u8
CETV1,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226494/1.m3u8
CHC动作电影,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226329/1.m3u8
三沙卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226544/1.m3u8
东北热剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225741/index.m3u8 东北热剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225741/index.m3u8
东南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226341/index.m3u8 东南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226341/index.m3u8
东方卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226345/index.m3u8 东方卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226345/index.m3u8
云南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226543/1.m3u8
云南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226928/1.m3u8
优漫卡通,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226932/1.m3u8
内蒙古卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226530/1.m3u8
北京卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8 北京卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
北京新闻,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226437/1.m3u8
北京新闻,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226512/1.m3u8
北京生活,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226514/1.m3u8
北京生活,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226561/1.m3u8
北京财经,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226516/1.m3u8
北京财经,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226560/1.m3u8
厦门卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226542/1.m3u8
吉林卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226397/index.m3u8 吉林卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226397/index.m3u8
吉林卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226533/1.m3u8
哈哈炫动,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226931/1.m3u8
哒啵赛事,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225675/index.m3u8 哒啵赛事,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225675/index.m3u8
四川卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226338/index.m3u8 四川卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226338/index.m3u8
大湾区卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226540/1.m3u8
天津卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226459/index.m3u8 天津卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226459/index.m3u8
天津卫视,http://[2409:8087:1a01:df::4030]:80/TVOD/88888888/224/3221225972/main.m3u8
天津卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226246/1.m3u8
天津卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226489/1.m3u8
天津卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226502/1.m3u8
安徽卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226391/index.m3u8 安徽卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226391/index.m3u8
山东卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226456/index.m3u8 山东卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226456/index.m3u8
山东卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226244/1.m3u8
山西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226531/1.m3u8
山西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226920/1.m3u8
广东卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226248/index.m3u8 广东卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226248/index.m3u8
广西卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226549/index.m3u8 广西卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226549/index.m3u8
广西卫视,http://[2409:8087:1a01:df::4047]:80/TVOD/88888888/224/3221226091/main.m3u8
新疆卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226546/1.m3u8
新疆卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226923/1.m3u8
欢乐剧场,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225742/index.m3u8 欢乐剧场,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225742/index.m3u8
江苏卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226310/index.m3u8 江苏卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226310/index.m3u8
江西卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226344/index.m3u8 江西卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226344/index.m3u8
江西卫视,http://[2409:8087:1a01:df::4027]:80/TVOD/88888888/224/3221225935/main.m3u8
河北卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226406/index.m3u8 河北卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226406/index.m3u8
河北卫视,http://[2409:8087:1a01:df::4035]:80/TVOD/88888888/224/3221225961/main.m3u8
河南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226480/index.m3u8 河南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226480/index.m3u8
浙江卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226339/index.m3u8 浙江卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226339/index.m3u8
海南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226465/index.m3u8 海南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226465/index.m3u8
海南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226574/1.m3u8
海南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226922/1.m3u8
深圳卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226313/index.m3u8 深圳卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226313/index.m3u8
湖北卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226477/index.m3u8 湖北卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226477/index.m3u8
湖南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226307/index.m3u8 湖南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226307/index.m3u8
湖南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226493/1.m3u8
湖南卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226509/1.m3u8
甘肃卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226545/1.m3u8
甘肃卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226913/1.m3u8
睛彩篮球,http://[2409:8087:1a01:df::4055]:80/TVOD/88888888/224/3221225901/main.m3u8
精品体育,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226328/1.m3u8
精品萌宠,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226505/index.m3u8 精品萌宠,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226505/index.m3u8
纪实人文,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225738/index.m3u8 纪实人文,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225738/index.m3u8
纪实科教,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225729/index.m3u8 纪实科教,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225729/index.m3u8
西藏卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226527/1.m3u8
贵州卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226474/index.m3u8 贵州卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226474/index.m3u8
超级体育,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225715/index.m3u8 超级体育,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225715/index.m3u8
超级体育,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226232/1.m3u8
超级体育,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226348/1.m3u8
超级电影,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225717/index.m3u8 超级电影,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225717/index.m3u8
超级综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225714/index.m3u8 超级综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225714/index.m3u8
超级视剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225716/index.m3u8 超级视剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225716/index.m3u8
辽宁卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226546/index.m3u8 辽宁卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226546/index.m3u8
辽宁卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226327/1.m3u8
辽宁卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226336/1.m3u8
辽宁卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226488/1.m3u8
重庆卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226409/index.m3u8 重庆卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226409/index.m3u8
重庆卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226337/1.m3u8
金牌综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225666/index.m3u8 金牌综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225666/index.m3u8
黑龙江卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226327/index.m3u8 金鹰纪实,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226572/1.m3u8
陕西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226532/1.m3u8
陕西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226926/1.m3u8
青海卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226529/1.m3u8
青海卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226916/1.m3u8
鹤岗新闻综合,http://[2409:8087:1a01:df::4059]:80/TVOD/88888888/224/3221226073/main.m3u8
黑莓动画,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226935/1.m3u8
黑莓电影,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226939/1.m3u8
黑龙江卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226327/index.m3u8
黑龙江卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226239/1.m3u8
黑龙江文体,http://[2409:8087:1a01:df::4025]:80/TVOD/88888888/224/3221225965/main.m3u8
黑龙江都市,http://[2409:8087:1a01:df::4055]:80/TVOD/88888888/224/3221225969/main.m3u8