mirror of
https://github.com/ls125781003/tvboxtg.git
synced 2026-11-02 17:53:22 +00:00
20250531
This commit is contained in:
1 parent
5241d6c5ba
commit
762655c342
30 files changed
+8763
-19924
No files matched your search
+1
-1
@@ -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
@@ -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": "🔍米搜┃盘聚",
|
||||||
|
|||||||
@@ -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()
|
||||||
+254
-2346
File diff suppressed because it is too large.
Load diff
+736
-810
File diff suppressed because it is too large.
Load diff
Binary file not shown.
+37
-8
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large.
Load diff
-5858
File diff suppressed because it is too large.
Load diff
Vendored
-1439
File diff suppressed because it is too large.
Load diff
-429
@@ -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
|
|
||||||
};
|
|
||||||
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
-146
@@ -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
@@ -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
@@ -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
@@ -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
|
|
||||||
Binary file not shown.
+1
-1
@@ -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,
|
||||||
|
|||||||
+3533
-1297
File diff suppressed because it is too large.
Load diff
+788
-1548
File diff suppressed because it is too large.
Load diff
Binary file not shown.
+956
-1048
File diff suppressed because it is too large.
Load diff
+388
-3
@@ -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&playlive=0&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&wsSession=4e59297ef5846f4a7cf02eb3-172672213891355&wsIPSercert=6d426cba8b106cdec9147b1e2a9ace7c&wsiphost=local&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;playlive=0&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
|
||||||
Reference in new issue
Block a user