Sync all projects
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# by @嗷呜
|
||||
# by @6666
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# by @嗷呜
|
||||
# by @666
|
||||
import json
|
||||
import sys
|
||||
import time
|
||||
|
||||
+2
-3
@@ -20,8 +20,7 @@ class Spider(Spider):
|
||||
{
|
||||
"vod_id": "/" + item['address'],
|
||||
"vod_name": item['title'],
|
||||
"vod_pic": item['xinimg'].replace("http://cdn.gcufbd.top/img/",
|
||||
"https://slink.ltd/https://raw.githubusercontent.com/fish2018/lib/refs/heads/main/imgs/"),
|
||||
"vod_pic": item['xinimg'],
|
||||
"vod_remarks": item['Number'],
|
||||
"style": {"type": "rect", "ratio": 1.33}
|
||||
} for item in sorted(data, key=lambda x: int(x['Number']), reverse=True)
|
||||
@@ -43,7 +42,7 @@ class Spider(Spider):
|
||||
vod = [{
|
||||
"vod_play_from": 'sebo',
|
||||
"vod_play_url": playUrls,
|
||||
"vod_content": 'https://github.com/fish2018',
|
||||
"vod_content": '简介',
|
||||
}]
|
||||
result = {"list": vod}
|
||||
return result
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# by @6666
|
||||
import sys
|
||||
import time
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
|
||||
class Spider(Spider):
|
||||
|
||||
def init(self, extend=""):
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
rhost='https://www.mgtv.com'
|
||||
|
||||
host='https://pianku.api.mgtv.com'
|
||||
|
||||
vhost='https://pcweb.api.mgtv.com'
|
||||
|
||||
mhost='https://dc.bz.mgtv.com'
|
||||
|
||||
shost='https://mobileso.bz.mgtv.com'
|
||||
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
|
||||
'origin': rhost,
|
||||
'referer': f'{rhost}/'
|
||||
}
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
cateManual = {
|
||||
"电影": "3",
|
||||
"电视剧": "2",
|
||||
"综艺": "1",
|
||||
"动画": "50",
|
||||
"少儿": "10",
|
||||
"纪录片": "51",
|
||||
"教育": "115"
|
||||
}
|
||||
classes = []
|
||||
filters = {}
|
||||
for k in cateManual:
|
||||
classes.append({
|
||||
'type_name': k,
|
||||
'type_id': cateManual[k]
|
||||
})
|
||||
with ThreadPoolExecutor(max_workers=len(classes)) as executor:
|
||||
results = executor.map(self.getf, classes)
|
||||
for id, ft in results:
|
||||
if len(ft):filters[id] = ft
|
||||
result['class'] = classes
|
||||
result['filters'] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
data=self.fetch(f'{self.mhost}/dynamic/v1/channel/index/0/0/0/1000000/0/0/17/1354?type=17&version=5.0&t={str(int(time.time()*1000))}&_support=10000000', headers=self.headers).json()
|
||||
videoList = []
|
||||
for i in data['data']:
|
||||
if i.get('DSLList') and len(i['DSLList']):
|
||||
for j in i['DSLList']:
|
||||
if j.get('data') and j['data'].get('items') and len(j['data']['items']):
|
||||
for k in j['data']['items']:
|
||||
videoList.append({
|
||||
'vod_id': k["videoId"],
|
||||
'vod_name': k['videoName'],
|
||||
'vod_pic': k['img'],
|
||||
'vod_year': k.get('cornerTitle'),
|
||||
'vod_remarks': k.get('time') or k.get('desc'),
|
||||
})
|
||||
return {'list':videoList}
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
body={
|
||||
'allowedRC': '1',
|
||||
'platform': 'pcweb',
|
||||
'channelId': tid,
|
||||
'pn': pg,
|
||||
'pc': '80',
|
||||
'hudong': '1',
|
||||
'_support': '10000000'
|
||||
}
|
||||
body.update(extend)
|
||||
data=self.fetch(f'{self.host}/rider/list/pcweb/v3', params=body, headers=self.headers).json()
|
||||
videoList = []
|
||||
for i in data['data']['hitDocs']:
|
||||
videoList.append({
|
||||
'vod_id': i["playPartId"],
|
||||
'vod_name': i['title'],
|
||||
'vod_pic': i['img'],
|
||||
'vod_year': (i.get('rightCorner',{}) or {}).get('text') or i.get('year'),
|
||||
'vod_remarks': i['updateInfo']
|
||||
})
|
||||
result = {}
|
||||
result['list'] = videoList
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
vbody={'allowedRC': '1', 'vid': ids[0], 'type': 'b', '_support': '10000000'}
|
||||
vdata=self.fetch(f'{self.vhost}/video/info', params=vbody, headers=self.headers).json()
|
||||
d=vdata['data']['info']['detail']
|
||||
vod = {
|
||||
'vod_name': vdata['data']['info']['title'],
|
||||
'type_name': d.get('kind'),
|
||||
'vod_year': d.get('releaseTime'),
|
||||
'vod_area': d.get('area'),
|
||||
'vod_lang': d.get('language'),
|
||||
'vod_remarks': d.get('updateInfo'),
|
||||
'vod_actor': d.get('leader'),
|
||||
'vod_director': d.get('director'),
|
||||
'vod_content': d.get('story'),
|
||||
'vod_play_from': '芒果TV',
|
||||
'vod_play_url': ''
|
||||
}
|
||||
data,pdata=self.fetch_page_data('1', ids[0],True)
|
||||
pagecount=data['data'].get('total_page') or 1
|
||||
if int(pagecount)>1:
|
||||
pages = list(range(2, pagecount+1))
|
||||
page_results = {}
|
||||
with ThreadPoolExecutor(max_workers=10) as executor:
|
||||
future_to_page = {
|
||||
executor.submit(self.fetch_page_data, page, ids[0]): page
|
||||
for page in pages
|
||||
}
|
||||
for future in as_completed(future_to_page):
|
||||
page = future_to_page[future]
|
||||
try:
|
||||
result = future.result()
|
||||
page_results[page] = result
|
||||
except Exception as e:
|
||||
print(f"Error fetching page {page}: {e}")
|
||||
for page in sorted(page_results.keys()):
|
||||
pdata.extend(page_results[page])
|
||||
vod['vod_play_url'] = '#'.join(pdata)
|
||||
return {'list':[vod]}
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
data=self.fetch(f'{self.shost}/applet/search/v1?channelCode=mobile-wxap&q={key}&pn={pg}&pc=10&_support=10000000', headers=self.headers).json()
|
||||
videoList = []
|
||||
for i in data['data']['contents']:
|
||||
if i.get('data') and len(i['data']):
|
||||
k = i['data'][0]
|
||||
if k.get('vid') and k.get('img'):
|
||||
try:
|
||||
videoList.append({
|
||||
'vod_id': k['vid'],
|
||||
'vod_name': k['title'],
|
||||
'vod_pic': k['img'],
|
||||
'vod_year': (i.get('rightTopCorner',{}) or {}).get('text') or i.get('year'),
|
||||
'vod_remarks': '/'.join(i.get('desc',[])),
|
||||
})
|
||||
except:
|
||||
print(k)
|
||||
return {'list':videoList,'page':pg}
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
id=f'{self.rhost}{id}'
|
||||
return {'jx':1,'parse': 1, 'url': id, 'header': ''}
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
||||
|
||||
def getf(self, body):
|
||||
params = {
|
||||
'allowedRC': '1',
|
||||
'channelId': body['type_id'],
|
||||
'platform': 'pcweb',
|
||||
'_support': '10000000',
|
||||
}
|
||||
data = self.fetch(f'{self.host}/rider/config/channel/v1', params=params, headers=self.headers).json()
|
||||
ft = []
|
||||
for i in data['data']['listItems']:
|
||||
try:
|
||||
value_array = [{"n": value['tagName'], "v": value['tagId']} for value in i['items'] if
|
||||
value.get('tagName')]
|
||||
ft.append({"key": i['eName'], "name": i['typeName'], "value": value_array})
|
||||
except:
|
||||
print(i)
|
||||
return body['type_id'], ft
|
||||
|
||||
def fetch_page_data(self, page, id, b=False):
|
||||
body = {'version': '5.5.35', 'video_id': id, 'page': page, 'size': '30',
|
||||
'platform': '4', 'src': 'mgtv', 'allowedRC': '1', '_support': '10000000'}
|
||||
data = self.fetch(f'{self.vhost}/episode/list', params=body, headers=self.headers).json()
|
||||
ldata = [f'{i["t3"]}${i["url"]}' for i in data['data']['list']]
|
||||
if b:
|
||||
return data, ldata
|
||||
else:
|
||||
return ldata
|
||||
@@ -0,0 +1,463 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Author : Doubebly
|
||||
# @Time : 2025/5/29 22:07
|
||||
|
||||
|
||||
import sys
|
||||
import hashlib
|
||||
import time
|
||||
import requests
|
||||
import re
|
||||
import json
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
|
||||
|
||||
class Spider(Spider):
|
||||
def getName(self):
|
||||
return "Aidianying"
|
||||
|
||||
def init(self, extend):
|
||||
self.home_url = 'https://m.sdzhgt.com/'
|
||||
self.ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
|
||||
self.error_url = "https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-720p.mp4"
|
||||
|
||||
def getDependence(self):
|
||||
return []
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def homeContent(self, filter):
|
||||
return {
|
||||
'class': [{'type_id': '1', 'type_name': '电影'},
|
||||
{'type_id': '2', 'type_name': '电视剧'},
|
||||
{'type_id': '3', 'type_name': '综艺'},
|
||||
{'type_id': '4', 'type_name': '动漫'}],
|
||||
'filters': {
|
||||
'1': [
|
||||
{'key': 'type',
|
||||
'name': '类型',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '喜剧', 'v': '/type/22'},
|
||||
{'n': '动作', 'v': '/type/23'},
|
||||
{'n': '科幻', 'v': '/type/30'},
|
||||
{'n': '爱情', 'v': '/type/26'},
|
||||
{'n': '悬疑', 'v': '/type/27'},
|
||||
{'n': '奇幻', 'v': '/type/87'},
|
||||
{'n': '剧情', 'v': '/type/37'},
|
||||
{'n': '恐怖', 'v': '/type/36'},
|
||||
{'n': '犯罪', 'v': '/type/35'},
|
||||
{'n': '动画', 'v': '/type/33'},
|
||||
{'n': '惊悚', 'v': '/type/34'},
|
||||
{'n': '战争', 'v': '/type/25'},
|
||||
{'n': '冒险', 'v': '/type/31'},
|
||||
{'n': '灾难', 'v': '/type/81'},
|
||||
{'n': '伦理', 'v': '/type/83'},
|
||||
{'n': '其他', 'v': '/type/43'}]},
|
||||
{'key': 'area',
|
||||
'name': '地区',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '中国大陆', 'v': '/area/中国大陆'},
|
||||
{'n': '中国香港', 'v': '/area/中国香港'},
|
||||
{'n': '中国台湾', 'v': '/area/中国台湾'},
|
||||
{'n': '美国', 'v': '/area/美国'},
|
||||
{'n': '日本', 'v': '/area/日本'},
|
||||
{'n': '韩国', 'v': '/area/韩国'},
|
||||
{'n': '印度', 'v': '/area/印度'},
|
||||
{'n': '泰国', 'v': '/area/泰国'},
|
||||
{'n': '其他', 'v': '/area/其他'}]},
|
||||
{'key': 'year',
|
||||
'name': '年份',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '2024', 'v': '/year/2024'},
|
||||
{'n': '2023', 'v': '/year/2023'},
|
||||
{'n': '2022', 'v': '/year/2022'},
|
||||
{'n': '2021', 'v': '/year/2021'},
|
||||
{'n': '2020', 'v': '/year/2020'},
|
||||
{'n': '2019', 'v': '/year/2019'},
|
||||
{'n': '2018', 'v': '/year/2018'},
|
||||
{'n': '2017', 'v': '/year/2017'},
|
||||
{'n': '2016', 'v': '/year/2016'},
|
||||
{'n': '2015', 'v': '/year/2015'},
|
||||
{'n': '2014', 'v': '/year/2014'},
|
||||
{'n': '2013', 'v': '/year/2013'},
|
||||
{'n': '2012', 'v': '/year/2012'},
|
||||
{'n': '2011', 'v': '/year/2011'},
|
||||
{'n': '2010', 'v': '/year/2010'},
|
||||
{'n': '2009~2000', 'v': '/year/2009~2000'}]},
|
||||
{'key': 'lang',
|
||||
'name': '语言',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '国语', 'v': '/lang/国语'},
|
||||
{'n': '英语', 'v': '/lang/英语'},
|
||||
{'n': '粤语', 'v': '/lang/粤语'},
|
||||
{'n': '韩语', 'v': '/lang/韩语'},
|
||||
{'n': '日语', 'v': '/lang/日语'},
|
||||
{'n': '其他', 'v': '/lang/其他'}]},
|
||||
{'key': 'by',
|
||||
'name': '排序',
|
||||
'value': [{'n': '上映时间', 'v': '/sortType/1/sortOrder/0'},
|
||||
{'n': '人气高低', 'v': '/sortType/3/sortOrder/0'},
|
||||
{'n': '评分高低', 'v': '/sortType/4/sortOrder/0'}]}
|
||||
],
|
||||
'2': [
|
||||
{'key': 'type',
|
||||
'name': '类型',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '国产剧', 'v': '/type/14'},
|
||||
{'n': '欧美剧', 'v': '/type/15'},
|
||||
{'n': '港台剧', 'v': '/type/16'},
|
||||
{'n': '日韩剧', 'v': '/type/62'},
|
||||
{'n': '其他剧', 'v': '/type/68'}]},
|
||||
{'key': 'class',
|
||||
'name': '剧情',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '古装', 'v': '/class/古装'},
|
||||
{'n': '战争', 'v': '/class/战争'},
|
||||
{'n': '喜剧', 'v': '/class/喜剧'},
|
||||
{'n': '家庭', 'v': '/class/家庭'},
|
||||
{'n': '犯罪', 'v': '/class/犯罪'},
|
||||
{'n': '动作', 'v': '/class/动作'},
|
||||
{'n': '奇幻', 'v': '/class/奇幻'},
|
||||
{'n': '剧情', 'v': '/class/剧情'},
|
||||
{'n': '历史', 'v': '/class/历史'},
|
||||
{'n': '短片', 'v': '/class/短片'}]},
|
||||
{'key': 'area',
|
||||
'name': '地区',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '中国大陆', 'v': '/area/中国大陆'},
|
||||
{'n': '中国香港', 'v': '/area/中国香港'},
|
||||
{'n': '中国台湾', 'v': '/area/中国台湾'},
|
||||
{'n': '日本', 'v': '/area/日本'},
|
||||
{'n': '韩国', 'v': '/area/韩国'},
|
||||
{'n': '美国', 'v': '/area/美国'},
|
||||
{'n': '泰国', 'v': '/area/泰国'},
|
||||
{'n': '其他', 'v': '/area/其他'}]},
|
||||
{'key': 'year',
|
||||
'name': '时间',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '2024', 'v': '/year/2024'},
|
||||
{'n': '2023', 'v': '/year/2023'},
|
||||
{'n': '2022', 'v': '/year/2022'},
|
||||
{'n': '2021', 'v': '/year/2021'},
|
||||
{'n': '2020', 'v': '/year/2020'},
|
||||
{'n': '2019', 'v': '/year/2019'},
|
||||
{'n': '2018', 'v': '/year/2018'},
|
||||
{'n': '2017', 'v': '/year/2017'},
|
||||
{'n': '2016', 'v': '/year/2016'},
|
||||
{'n': '2015', 'v': '/year/2015'},
|
||||
{'n': '2014', 'v': '/year/2014'},
|
||||
{'n': '2013', 'v': '/year/2013'},
|
||||
{'n': '2012', 'v': '/year/2012'},
|
||||
{'n': '2011', 'v': '/year/2011'},
|
||||
{'n': '2010', 'v': '/year/2010'}]},
|
||||
{'key': 'lang',
|
||||
'name': '语言',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '普通话', 'v': '/lang/普通话'},
|
||||
{'n': '英语', 'v': '/lang/英语'},
|
||||
{'n': '粤语', 'v': '/lang/粤语'},
|
||||
{'n': '韩语', 'v': '/lang/韩语'},
|
||||
{'n': '日语', 'v': '/lang/日语'},
|
||||
{'n': '泰语', 'v': '/lang/泰语'},
|
||||
{'n': '其他', 'v': '/lang/其他'}, ]},
|
||||
{'key': 'by',
|
||||
'name': '排序',
|
||||
'value': [{'n': '最近更新', 'v': '/sortType/1/sortOrder/0'},
|
||||
{'n': '添加时间', 'v': '/sortType/2/sortOrder/0'},
|
||||
{'n': '人气高低', 'v': '/sortType/3/sortOrder/0'},
|
||||
{'n': '评分高低', 'v': '/sortType/4/sortOrder/0'}]}
|
||||
],
|
||||
'3': [
|
||||
{'key': 'type',
|
||||
'name': '类型',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '国产综艺', 'v': '/type/69'},
|
||||
{'n': '港台综艺', 'v': '/type/70'},
|
||||
{'n': '日韩综艺', 'v': '/type/72'},
|
||||
{'n': '欧美综艺', 'v': '/type/73'}]},
|
||||
{'key': 'class',
|
||||
'name': '剧情',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '真人秀', 'v': '/class/真人秀'},
|
||||
{'n': '音乐', 'v': '/class/音乐'},
|
||||
{'n': '脱口秀', 'v': '/class/脱口秀'}]},
|
||||
{'key': 'area',
|
||||
'name': '地区',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '中国大陆', 'v': '/area/中国大陆'},
|
||||
{'n': '中国香港', 'v': '/area/中国香港'},
|
||||
{'n': '中国台湾', 'v': '/area/中国台湾'},
|
||||
{'n': '日本', 'v': '/area/日本'},
|
||||
{'n': '韩国', 'v': '/area/韩国'},
|
||||
{'n': '美国', 'v': '/area/美国'},
|
||||
{'n': '其他', 'v': '/area/其他'}]},
|
||||
{'key': 'year',
|
||||
'name': '时间',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '2024', 'v': '/year/2024'},
|
||||
{'n': '2023', 'v': '/year/2023'},
|
||||
{'n': '2022', 'v': '/year/2022'},
|
||||
{'n': '2021', 'v': '/year/2021'},
|
||||
{'n': '2020', 'v': '/year/2020'}]},
|
||||
{'key': 'lang',
|
||||
'name': '语言',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '国语', 'v': '/lang/国语'},
|
||||
{'n': '英语', 'v': '/lang/英语'},
|
||||
{'n': '粤语', 'v': '/lang/粤语'},
|
||||
{'n': '韩语', 'v': '/lang/韩语'},
|
||||
{'n': '日语', 'v': '/lang/日语'},
|
||||
{'n': '其他', 'v': '/lang/其他'}, ]},
|
||||
{'key': 'by',
|
||||
'name': '排序',
|
||||
'value': [{'n': '最近更新', 'v': '/sortType/1/sortOrder/0'},
|
||||
{'n': '添加时间', 'v': '/sortType/2/sortOrder/0'},
|
||||
{'n': '人气高低', 'v': '/sortType/3/sortOrder/0'},
|
||||
{'n': '评分高低', 'v': '/sortType/4/sortOrder/0'}]}
|
||||
],
|
||||
'4': [
|
||||
{'key': 'type',
|
||||
'name': '类型',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '国产动漫', 'v': '/type/75'},
|
||||
{'n': '日韩动漫', 'v': '/type/76'},
|
||||
{'n': '欧美动漫', 'v': '/type/77'}]},
|
||||
{'key': 'class',
|
||||
'name': '剧情',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '喜剧', 'v': '/class/喜剧'},
|
||||
{'n': '科幻', 'v': '/class/科幻'},
|
||||
{'n': '热血', 'v': '/class/热血'},
|
||||
{'n': '冒险', 'v': '/class/冒险'},
|
||||
{'n': '动作', 'v': '/class/动作'},
|
||||
{'n': '运动', 'v': '/class/运动'},
|
||||
{'n': '战争', 'v': '/class/战争'},
|
||||
{'n': '儿童', 'v': '/class/儿童'}]},
|
||||
{'key': 'area',
|
||||
'name': '地区',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '中国大陆', 'v': '/area/中国大陆'},
|
||||
{'n': '日本', 'v': '/area/日本'},
|
||||
{'n': '美国', 'v': '/area/美国'},
|
||||
{'n': '其他', 'v': '/area/其他'}]},
|
||||
{'key': 'year',
|
||||
'name': '时间',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '2024', 'v': '/year/2024'},
|
||||
{'n': '2023', 'v': '/year/2023'},
|
||||
{'n': '2022', 'v': '/year/2022'},
|
||||
{'n': '2021', 'v': '/year/2021'},
|
||||
{'n': '2020', 'v': '/year/2020'},
|
||||
{'n': '2019', 'v': '/year/2019'},
|
||||
{'n': '2018', 'v': '/year/2018'},
|
||||
{'n': '2017', 'v': '/year/2017'},
|
||||
{'n': '2016', 'v': '/year/2016'},
|
||||
{'n': '2015', 'v': '/year/2015'},
|
||||
{'n': '2014', 'v': '/year/2014'},
|
||||
{'n': '2013', 'v': '/year/2013'},
|
||||
{'n': '2012', 'v': '/year/2012'},
|
||||
{'n': '2011', 'v': '/year/2011'},
|
||||
{'n': '2010', 'v': '/year/2010'}]},
|
||||
{'key': 'lang',
|
||||
'name': '语言',
|
||||
'value': [{'n': '全部', 'v': ''},
|
||||
{'n': '国语', 'v': '/lang/国语'},
|
||||
{'n': '英语', 'v': '/lang/英语'},
|
||||
{'n': '日语', 'v': '/lang/日语'},
|
||||
{'n': '其他', 'v': '/lang/其他'}]},
|
||||
{'key': 'by',
|
||||
'name': '排序',
|
||||
'value': [{'n': '最近更新', 'v': '/sortType/1/sortOrder/0'},
|
||||
{'n': '添加时间', 'v': '/sortType/2/sortOrder/0'},
|
||||
{'n': '人气高低', 'v': '/sortType/3/sortOrder/0'},
|
||||
{'n': '评分高低', 'v': '/sortType/4/sortOrder/0'}]}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
def homeVideoContent(self):
|
||||
video_list = []
|
||||
t = str(int(time.time() * 1000))
|
||||
# t = '1723292093234'
|
||||
data = f'key=cb808529bae6b6be45ecfab29a4889bc&t={t}'
|
||||
data_md5 = hashlib.md5(data.encode()).hexdigest()
|
||||
data_sha1 = hashlib.sha1(data_md5.encode()).hexdigest()
|
||||
h = {
|
||||
"User-Agent": self.ua,
|
||||
'referer': self.home_url, 't': t, 'sign': data_sha1}
|
||||
try:
|
||||
res = requests.get(f'{self.home_url}/api/mw-movie/anonymous/home/hotSearch', headers=h)
|
||||
data_list = res.json()['data']
|
||||
for i in data_list:
|
||||
video_list.append(
|
||||
{
|
||||
'vod_id': i['vodId'],
|
||||
'vod_name': i['vodName'],
|
||||
'vod_pic': i['vodPic'],
|
||||
'vod_remarks': i['vodVersion'] if i['typeId1'] == 1 else i['vodRemarks']
|
||||
}
|
||||
)
|
||||
except requests.RequestException as e:
|
||||
return {
|
||||
'list': [],
|
||||
'parse': 0,
|
||||
'jx': 0
|
||||
}
|
||||
|
||||
return {
|
||||
'list': video_list,
|
||||
'parse': 0,
|
||||
'jx': 0
|
||||
}
|
||||
|
||||
def categoryContent(self, cid, page, filter, ext):
|
||||
t = cid
|
||||
_type = ext.get('type') if ext.get('type') else ''
|
||||
__class = ext.get('class') if ext.get('class') else ''
|
||||
_area = ext.get('area') if ext.get('area') else ''
|
||||
_year = ext.get('year') if ext.get('year') else ''
|
||||
_lang = ext.get('lang') if ext.get('lang') else ''
|
||||
_by = ext.get('by') if ext.get('by') else ''
|
||||
video_list = []
|
||||
h = {
|
||||
"User-Agent": self.ua,
|
||||
'referer': self.home_url,
|
||||
}
|
||||
try:
|
||||
res = requests.get(
|
||||
f'{self.home_url}/vod/show/id/{t}{_type}{__class}{_area}{_year}{_lang}{_by}/page/{page}',
|
||||
headers=h)
|
||||
aa = re.findall(r'\\"list\\":(.*?)}}}]', res.text)
|
||||
if not aa:
|
||||
return {'list': [], 'parse': 0, 'jx': 0}
|
||||
bb = aa[0].replace('\\"', '"')
|
||||
data_list = json.loads(bb)
|
||||
for i in data_list:
|
||||
video_list.append(
|
||||
{
|
||||
'vod_id': i['vodId'],
|
||||
'vod_name': i['vodName'],
|
||||
'vod_pic': i['vodPic'],
|
||||
'vod_remarks': i['vodVersion'] if i['typeId1'] == 1 else i['vodRemarks']
|
||||
}
|
||||
)
|
||||
except requests.RequestException as e:
|
||||
return {'list': [], 'msg': e}
|
||||
return {'list': video_list, 'parse': 0, 'jx': 0}
|
||||
|
||||
def detailContent(self, did):
|
||||
ids = did[0]
|
||||
video_list = []
|
||||
t = str(int(time.time() * 1000))
|
||||
# t = '1723292093234'
|
||||
data = f'id={ids}&key=cb808529bae6b6be45ecfab29a4889bc&t={t}'
|
||||
data_md5 = hashlib.md5(data.encode()).hexdigest()
|
||||
data_sha1 = hashlib.sha1(data_md5.encode()).hexdigest()
|
||||
h = {
|
||||
"User-Agent": self.ua,
|
||||
'referer': self.home_url,
|
||||
't': t, 'sign': data_sha1
|
||||
}
|
||||
try:
|
||||
res = requests.get(f'{self.home_url}/api/mw-movie/anonymous/video/detail?id={ids}', headers=h)
|
||||
data = res.json()['data']
|
||||
play_list = data['episodeList']
|
||||
vod_play_url = []
|
||||
for i in play_list:
|
||||
name = i['name']
|
||||
url = ids + '/' + str(i['nid'])
|
||||
vod_play_url.append(name + '$' + url)
|
||||
|
||||
video_list.append(
|
||||
{
|
||||
'type_name': data['typeName'],
|
||||
'vod_id': ids,
|
||||
'vod_name': data['vodName'],
|
||||
'vod_remarks': data['vodRemarks'],
|
||||
'vod_year': data['vodYear'],
|
||||
'vod_area': data['vodArea'],
|
||||
'vod_actor': data['vodActor'],
|
||||
'vod_director': data['vodDirector'],
|
||||
'vod_content': data['vodContent'],
|
||||
'vod_play_from': '老僧酿酒',
|
||||
'vod_play_url': '#'.join(vod_play_url)
|
||||
|
||||
}
|
||||
)
|
||||
except requests.RequestException as e:
|
||||
return {'list': [], 'msg': e}
|
||||
return {"list": video_list, 'parse': 0, 'jx': 0}
|
||||
|
||||
def searchContent(self, key, quick, page='1'):
|
||||
wd = key
|
||||
video_list = []
|
||||
t = str(int(time.time() * 1000))
|
||||
data = f'keyword={wd}&pageNum={page}&pageSize=12&key=cb808529bae6b6be45ecfab29a4889bc&t={t}'
|
||||
data_md5 = hashlib.md5(data.encode()).hexdigest()
|
||||
data_sha1 = hashlib.sha1(data_md5.encode()).hexdigest()
|
||||
h = {
|
||||
"User-Agent": self.ua,
|
||||
'referer': self.home_url,
|
||||
't': t, 'sign': data_sha1
|
||||
}
|
||||
try:
|
||||
response = requests.get(
|
||||
f'{self.home_url}/api/mw-movie/anonymous/video/searchByWord?keyword={wd}&pageNum={page}&pageSize=12',
|
||||
headers=h,
|
||||
)
|
||||
data_list = response.json()['data']['result']['list']
|
||||
for i in data_list:
|
||||
video_list.append(
|
||||
{
|
||||
'vod_id': i['vodId'],
|
||||
'vod_name': i['vodName'],
|
||||
'vod_pic': i['vodPic'],
|
||||
'vod_remarks': i['vodVersion'] if i['typeId1'] == 1 else i['vodRemarks']
|
||||
}
|
||||
)
|
||||
except requests.RequestException as e:
|
||||
return {'list': [], 'msg': e}
|
||||
return {'list': video_list, 'parse': 0, 'jx': 0}
|
||||
|
||||
def playerContent(self, flag, pid, vipFlags):
|
||||
url = pid
|
||||
play_url = self.error_url
|
||||
data = url.split('/')
|
||||
_id = data[0]
|
||||
_nid = data[1]
|
||||
t = str(int(time.time() * 1000))
|
||||
# t = '1723292093234'
|
||||
data = f'id={_id}&nid={_nid}&key=cb808529bae6b6be45ecfab29a4889bc&t={t}'
|
||||
data_md5 = hashlib.md5(data.encode()).hexdigest()
|
||||
data_sha1 = hashlib.sha1(data_md5.encode()).hexdigest()
|
||||
h = {
|
||||
"User-Agent": self.ua,
|
||||
'referer': self.home_url,
|
||||
't': t, 'sign': data_sha1
|
||||
}
|
||||
h2 = {
|
||||
"User-Agent": self.ua,
|
||||
}
|
||||
try:
|
||||
res = requests.get(
|
||||
f'{self.home_url}/api/mw-movie/anonymous/v2/video/episode/url?id={_id}&nid={_nid}',
|
||||
headers=h)
|
||||
play_url = res.json()['data']['list'][0]['url']
|
||||
except requests.RequestException as e:
|
||||
return {"url": play_url, "header": h2, "parse": 0, "jx": 0}
|
||||
|
||||
return {"url": play_url, "header": h2, "parse": 0, "jx": 0}
|
||||
|
||||
def localProxy(self, params):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
return '正在Destroy'
|
||||
|
||||
if __name__ == '__main__':
|
||||
pass
|
||||
+13
-2
@@ -1,4 +1,3 @@
|
||||
|
||||
{
|
||||
"spider": "./tvbox.jar",
|
||||
"logo": "https://img.freepik.com/free-vector/cute-dolphin-swimming-cartoon-vector-icon-illustration-animal-nature-icon-isolated-flat-vector_138676-12582.jpg?semt=ais_hybrid&w=740&q=80",
|
||||
@@ -40,13 +39,19 @@
|
||||
"ext":"https://cdn.waimaimingtang.com/file/images/bwc/20251023002108-a4795930ec.js"
|
||||
},
|
||||
{
|
||||
"key": "茫茫",
|
||||
"key": "芒芒",
|
||||
"name": "🐬芒果4K",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/drpy2.min.js",
|
||||
"ext": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/茫茫.png"
|
||||
},
|
||||
{
|
||||
"key": "MGtv",
|
||||
"name": "🐬芒果TV.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/芒果TV.py"
|
||||
},
|
||||
{
|
||||
"key": "leo_danmaku",
|
||||
"name": "LEO | 弹幕",
|
||||
"type": 3,
|
||||
@@ -83,6 +88,12 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/枫叶影院.py"
|
||||
},
|
||||
{
|
||||
"key": "JP",
|
||||
"name": "🐬金牌APP.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/金牌APP.py"
|
||||
},
|
||||
{
|
||||
"key": "rb",
|
||||
"name": "🐬热播APP.py",
|
||||
|
||||
+380
-191
@@ -6,13 +6,13 @@
|
||||
"sites": [
|
||||
{
|
||||
"key":"AQY",
|
||||
"name":"🐬爱奇艺 海豚影视交流群 TG:@hshsjk9",
|
||||
"name":"🐬爱奇艺 海豚影视完全免费,如有收费的都是骗子",
|
||||
"type":3,
|
||||
"api":"https://file.icve.com.cn/file_doc/249/899/3E7E0C8A023B624CEC6BDCC200F06F02.js",
|
||||
"ext":"https://cdn.waimaimingtang.com/file/images/bwc/20251023002031-6064033c16.js"
|
||||
},
|
||||
{"key":"YK",
|
||||
"name":"🐬优酷视频 海豚影视完全免费,如有收费的都是骗子",
|
||||
"name":"🐬优酷视频 海豚影视交流群 TG:@hshsjk9",
|
||||
"type":3,
|
||||
"api":"https://file.icve.com.cn/file_doc/249/899/3E7E0C8A023B624CEC6BDCC200F06F02.js",
|
||||
"ext":"https://cdn.waimaimingtang.com/file/images/bwc/20251023002200-507c3e8aae.js"
|
||||
@@ -38,12 +38,18 @@
|
||||
"api":"https://file.icve.com.cn/file_doc/249/899/3E7E0C8A023B624CEC6BDCC200F06F02.js",
|
||||
"ext":"https://cdn.waimaimingtang.com/file/images/bwc/20251023002108-a4795930ec.js"
|
||||
},
|
||||
{
|
||||
"key": "茫茫",
|
||||
"name": "🐬芒果4K",
|
||||
{
|
||||
"key": "茫茫",
|
||||
"name": "🐬芒果4K",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/drpy2.min.js",
|
||||
"ext": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/茫茫.png"
|
||||
},
|
||||
{
|
||||
"key": "MGtv",
|
||||
"name": "🐬芒果TV.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/drpy2.min.js",
|
||||
"ext": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/茫茫.png"
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/芒果TV.py"
|
||||
},
|
||||
{
|
||||
"key": "leo_danmaku",
|
||||
@@ -70,6 +76,13 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "ppx",
|
||||
"name": "🐬皮皮虾.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/皮皮虾.py",
|
||||
"ext": "http://43.248.117.123:4680"
|
||||
},
|
||||
{
|
||||
"key": "fY",
|
||||
"name": "🐬枫叶影院(关梯子使用)",
|
||||
"type": 3,
|
||||
@@ -81,6 +94,12 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/热播APP.py"
|
||||
},
|
||||
{
|
||||
"key": "JP",
|
||||
"name": "🐬金牌APP.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/金牌APP.py"
|
||||
},
|
||||
{
|
||||
"key": "kf",
|
||||
"name": "🐬咖啡体育直播.py",
|
||||
@@ -93,7 +112,7 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/熊猫直播.py"
|
||||
},
|
||||
{
|
||||
{
|
||||
"key": "非凡",
|
||||
"name": "🐬非凡影视",
|
||||
"type": 1,
|
||||
@@ -132,7 +151,7 @@
|
||||
"海外动漫"
|
||||
]
|
||||
},
|
||||
{
|
||||
{
|
||||
"key": "闪电影视",
|
||||
"name": "🐬闪电影视|追剧",
|
||||
"type": 1,
|
||||
@@ -249,8 +268,8 @@
|
||||
]
|
||||
},
|
||||
{"key": "火狐","name": "🐬火狐影视🦊|追剧","type": 1,"api": "https://hhzyapi.com/api.php/provide/vod/","searchable": 1,"quickSearch": 0,"filterable": 1,"categories": [ "内地剧", "动作片", "科幻片", "战争片", "喜剧片", "爱情片", "恐怖片", "犯罪片", "剧情片", "冒险片", "记录片", "韩剧", "香港剧", "台湾剧", "欧美剧", "日剧", "马泰剧", "体育赛事", "综艺", "动画片", "中国动漫", "日本动漫", "欧美动漫"]
|
||||
},
|
||||
{
|
||||
},
|
||||
{
|
||||
"key": "量子2k",
|
||||
"name": "🐬量子影视|追剧",
|
||||
"type": 1,
|
||||
@@ -322,7 +341,7 @@
|
||||
"海外动漫"
|
||||
]
|
||||
},
|
||||
{
|
||||
{
|
||||
"key": "cj_360资源",
|
||||
"name": "🐬360丨短剧",
|
||||
"type": 1,
|
||||
@@ -353,7 +372,7 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/河马剧场.py"
|
||||
},
|
||||
{
|
||||
{
|
||||
"key": "网易云音乐",
|
||||
"name": "🐬网易云|音乐",
|
||||
"type": 3,
|
||||
@@ -365,9 +384,9 @@
|
||||
"type": 3,
|
||||
"api": "https://xn--fjq53n.xyz/Ting/yinyue/网易云音乐1.py"
|
||||
}
|
||||
],
|
||||
],
|
||||
"parses": [
|
||||
{
|
||||
{
|
||||
"name": "盘古",
|
||||
"type": 0,
|
||||
"url": "https://www.playm3u8.cn/jiexi.php?url=",
|
||||
@@ -378,14 +397,19 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "淘片解析",
|
||||
"type": 0,
|
||||
"url": "https://jx.yparse.com/index.php?url="
|
||||
},
|
||||
"name": "极速",
|
||||
"type": 0,
|
||||
"url": "https://jiexi.789jiexi.net:4433/?url="
|
||||
},
|
||||
{
|
||||
"name": "虾米解析",
|
||||
"type": 0,
|
||||
"url": "https://jx.xmflv.com/?url="
|
||||
},
|
||||
{
|
||||
"name": "淘片解析",
|
||||
"type": 0,
|
||||
"url": "https://jx.yparse.com/index.php?url="
|
||||
},
|
||||
{
|
||||
"name": "解析1",
|
||||
@@ -412,27 +436,267 @@
|
||||
"name": "解析5",
|
||||
"type": 0,
|
||||
"url": "https://nm.xxxc137.top/static/player/artplayer.html?url="
|
||||
},{
|
||||
"name": "极速",
|
||||
},
|
||||
{
|
||||
"name": "解析6",
|
||||
"type": 0,
|
||||
"url": "https://jiexi.789jiexi.net:4433/?url="
|
||||
},
|
||||
{
|
||||
"name": "17解析",
|
||||
"type": 0,
|
||||
"url": "https://www.1717yun.com/jx/ty.php?url="
|
||||
"url": "https://www.yemu.xyz/?url="
|
||||
},
|
||||
{
|
||||
"name": "冰豆",
|
||||
"type": 0,
|
||||
"url": "https://bd.jx.cn/?url="
|
||||
},
|
||||
{"name":"-爱酷-","type":0,"url":"https://jx.zhanlangbu.com/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}}},
|
||||
{"name":"-云解析-","type":0,"url":"https://jx.yparse.com/index.php?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name":"-777-","type":0,"url":"https://jx.jsonplayer.com/player/?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{
|
||||
"name":"爱酷",
|
||||
"type":0,
|
||||
"url":"https://jx.zhanlangbu.com/?url="
|
||||
},
|
||||
{"name":"云解析","type":0,"url":"https://jx.yparse.com/index.php?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name":"777","type":0,"url":"https://jx.jsonplayer.com/player/?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name":"-剖云-","type":0,"url":"https://www.kkvip2022.com/vip/jiexi1/?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name":"-全看-","type":0,"url":"https://jx.quankan.app/?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name":"-全看-","type":0,"url":"https://jx.quankan.app/?url=","ext":{"header":{"user-agent":"Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}}
|
||||
],
|
||||
"doh": [
|
||||
{
|
||||
"name": "Google",
|
||||
"url": "https://dns.google/dns-query",
|
||||
"ips": [
|
||||
"8.8.4.4",
|
||||
"8.8.8.8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Cloudflare",
|
||||
"url": "https://cloudflare-dns.com/dns-query",
|
||||
"ips": [
|
||||
"1.1.1.1",
|
||||
"1.0.0.1",
|
||||
"2606:4700:4700::1111",
|
||||
"2606:4700:4700::1001"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "AdGuard",
|
||||
"url": "https://dns.adguard.com/dns-query",
|
||||
"ips": [
|
||||
"94.140.14.140",
|
||||
"94.140.14.141"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DNSWatch",
|
||||
"url": "https://resolver2.dns.watch/dns-query",
|
||||
"ips": [
|
||||
"84.200.69.80",
|
||||
"84.200.70.40"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Quad9",
|
||||
"url": "https://dns.quad9.net/dns-quer",
|
||||
"ips": [
|
||||
"9.9.9.9",
|
||||
"149.112.112.112"
|
||||
]
|
||||
}
|
||||
],
|
||||
"ads": [
|
||||
"mozai.4gtv.tv",
|
||||
"static-mozai.4gtv.tv"
|
||||
],
|
||||
"lives": [
|
||||
{
|
||||
"name": "🐬各大源合集 海豚影视永久免费如有收费的都是骗子",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/807080747/zv/refs/heads/main/sese.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬综合直播 海豚影视交流群 TG:@hshsjk9",
|
||||
"type": 0,
|
||||
"playerType": 2,
|
||||
"ua": "okhttp",
|
||||
"url": "https://raw.githubusercontent.com/fleung49/star/refs/heads/main/mit"
|
||||
},
|
||||
{
|
||||
"name": "🐬电视家",
|
||||
"type": 0,
|
||||
"playerType": 2,
|
||||
"ua": "okhttp",
|
||||
"url": "https://gh-proxy.org/https://github.com/bang359/dsj/raw/main/dsjcs.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬地方直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://ghfast.top/https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/interface.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬地方直播2",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://raw.githubusercontent.com/Guovin/iptv-api/gd/output/ipv4/result.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬海燕直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/haiyan.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬薄荷直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/bhmb.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬湘西直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://hub.glowp.xyz/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/xiangxi.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬全球直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/%E5%85%A8%E7%90%83%E7%9B%B4%E6%92%AD.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬咪咕直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "http://www.52top.com.cn:678/downloads/migu.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬iptv直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://wget.la/https://raw.githubusercontent.com/vinkerq/iptv-api/refs/heads/master/iptv.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬小新TV",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://d.kstore.dev/download/9565/小新TV.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬北美长城源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ha.msbot.dpdns.org/wall.php"
|
||||
},
|
||||
{
|
||||
"name": "🐬港台",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://feer-cdn-bp.xpnb.qzz.io/xnkl.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬台湾台",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://epg.pw/test_channels_taiwan.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬体育台",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://82.156.243.185:33389/fwc.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬国际TV",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://raw.githubusercontent.com/xJEYDAin/iptv/main/output/all_merged.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬UnifiTV(马来节点)",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/unifi.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬裤佬TV",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/Jsnzkpg/Jsnzkpg/Jsnzkpg/Jsnzkpg1.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬Gather",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://iptv.yang-1989.eu.org/m3u/Gather.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬Mytv",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://cdn.qd.je/live.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬新加坡(梯子)",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://xtvantsc.xyz/新加坡.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬黄蚂蚁先锋推流源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://ge.html-5.me//ii/黄蚂蚁先锋推流源.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬风云源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://iptv.4666888.xyz/FYTV.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬飞扬源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://www.985pan.com/down.php/bf5e9607ff407fcdd71f63928ea5bc79.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬港奥台国际",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://tv123.vvvv.ee/tv.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬中港台直播源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://t.freetv.fun/m3u/playlist_all.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬4GTV(梯子台湾节点)720p",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/4gtv.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬4GTV怡淳酒店(梯子台湾节点)720p",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://xtvantsc.xyz/4gtv.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬4GTV(梯子任何节点)1080p",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ha.msbot.dpdns.org/4gtv_api.php"
|
||||
},
|
||||
{
|
||||
"name": "🐬jackTV(梯子)",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://php.946985.filegear-sg.me/jackTV.m3u"
|
||||
}
|
||||
],
|
||||
"ijk": [
|
||||
{
|
||||
"group": "软解码",
|
||||
"options": [
|
||||
{
|
||||
@@ -592,186 +856,111 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ads": [
|
||||
"static-mozai.4gtv.tv"
|
||||
],
|
||||
"proxy": [
|
||||
"file://TV/proxy.json"
|
||||
],
|
||||
"lives": [
|
||||
{
|
||||
"name": "🐬各大源合集 海豚影视交流群 TG:@hshsjk9",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/807080747/zv/refs/heads/main/sese.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬综合直播",
|
||||
"type": 0,
|
||||
"playerType": 2,
|
||||
"ua": "okhttp",
|
||||
"url": "https://raw.githubusercontent.com/fleung49/star/refs/heads/main/mit"
|
||||
},
|
||||
{
|
||||
"name": "🐬电视家",
|
||||
"type": 0,
|
||||
"playerType": 2,
|
||||
"ua": "okhttp",
|
||||
"url": "https://gh-proxy.org/https://github.com/bang359/dsj/raw/main/dsjcs.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬地方直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ghfast.top/https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/interface.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬地方直播2",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://raw.githubusercontent.com/Guovin/iptv-api/gd/output/ipv4/result.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬海燕直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/haiyan.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬薄荷直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/bhmb.m3u"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"name": "🐬湘西直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/xiangxi.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬全球直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/wujiangliu/live-sources/refs/heads/main/%E5%85%A8%E7%90%83%E7%9B%B4%E6%92%AD.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬咪咕直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "http://www.52top.com.cn:678/downloads/migu.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬iptv直播",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://wget.la/https://raw.githubusercontent.com/vinkerq/iptv-api/refs/heads/master/iptv.txt"
|
||||
"name": "cl",
|
||||
"hosts": [
|
||||
"magnet"
|
||||
],
|
||||
"regex": [
|
||||
"最 新",
|
||||
"直 播",
|
||||
"更 新"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬小新TV",
|
||||
"type": 0,
|
||||
"ua": "okhttp/5.3.2",
|
||||
"url": "https://d.kstore.dev/download/9565/小新TV.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬北美长城源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ha.msbot.dpdns.org/wall.php"
|
||||
},
|
||||
{
|
||||
"name": "🐬港台",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://feer-cdn-bp.xpnb.qzz.io/xnkl.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬台湾台",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://epg.pw/test_channels_taiwan.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬体育台",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://82.156.243.185:33389/fwc.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬裤佬TV",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://gh-proxy.org/https://raw.githubusercontent.com/Jsnzkpg/Jsnzkpg/Jsnzkpg/Jsnzkpg1.m3u"
|
||||
"name": "火山嗅探",
|
||||
"hosts": [
|
||||
"huoshan.com"
|
||||
],
|
||||
"regex": [
|
||||
"item_id="
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬Gather",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://iptv.yang-1989.eu.org/m3u/Gather.m3u"
|
||||
"name": "抖音嗅探",
|
||||
"hosts": [
|
||||
"douyin.com"
|
||||
],
|
||||
"regex": [
|
||||
"is_play_url="
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬Mytv",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://cdn.qd.je/live.m3u"
|
||||
},
|
||||
{
|
||||
"name": "🐬singtel(梯子)",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://xtvantsc.xyz/singtel.txt"
|
||||
"name": "农民嗅探",
|
||||
"hosts": [
|
||||
"toutiaovod.com"
|
||||
],
|
||||
"regex": [
|
||||
"video/tos/cn"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬国际源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://raw.githubusercontent.com/xJEYDAin/iptv/main/output/all_merged.m3u"
|
||||
"name": "七新嗅探",
|
||||
"hosts": [
|
||||
"api.52wyb.com"
|
||||
],
|
||||
"regex": [
|
||||
"m3u8?pt=m3u8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬黄蚂蚁先锋推流源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://ge.html-5.me//ii/黄蚂蚁先锋推流源.txt"
|
||||
"name": "夜市",
|
||||
"hosts": [
|
||||
"yeslivetv.com"
|
||||
],
|
||||
"script": [
|
||||
"document.getElementsByClassName('vjs-big-play-button')[0].click()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬风云源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://iptv.4666888.xyz/FYTV.txt"
|
||||
"name": "毛驴",
|
||||
"hosts": [
|
||||
"www.maolvys.com"
|
||||
],
|
||||
"script": [
|
||||
"document.getElementsByClassName('swal-button swal-button--confirm')[0].click()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬港奥台国际",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://tv123.vvvv.ee/tv.m3u"
|
||||
"name": "czzy",
|
||||
"hosts": [
|
||||
"10086.cn"
|
||||
],
|
||||
"regex": [
|
||||
"/storageWeb/servlet/downloadServlet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬中港台直播源",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://t.freetv.fun/m3u/playlist_all.txt"
|
||||
"name": "bdys",
|
||||
"hosts": [
|
||||
"bytetos.com",
|
||||
"byteimg.com",
|
||||
"bytednsdoc.com",
|
||||
"pstatp.com"
|
||||
],
|
||||
"regex": [
|
||||
"/tos-cn"
|
||||
],
|
||||
"exclude": [
|
||||
".m3u8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "🐬4GTV(梯子台湾节点)720p",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/4gtv.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬4GTV怡淳酒店(梯子台湾节点)720p",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "http://xtvantsc.xyz/4gtv.txt"
|
||||
},
|
||||
{
|
||||
"name": "🐬4GTV(梯子任何节点)1080p",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://ha.msbot.dpdns.org/4gtv_api.php"
|
||||
},
|
||||
{
|
||||
"name": "🐬jackTV(梯子)",
|
||||
"type": 0,
|
||||
"ua": "okhttp",
|
||||
"url": "https://php.946985.filegear-sg.me/jackTV.m3u"
|
||||
"name": "bdys10",
|
||||
"hosts": [
|
||||
"bdys10.com"
|
||||
],
|
||||
"regex": [
|
||||
"/obj/"
|
||||
],
|
||||
"exclude": [
|
||||
".m3u8"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -57,6 +57,12 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/drpy2.min.js",
|
||||
"ext": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/茫茫.png"
|
||||
},
|
||||
{
|
||||
"key": "MGtv",
|
||||
"name": "🐬芒果TV.py[追剧]",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/芒果TV.py"
|
||||
},
|
||||
{
|
||||
"key": "leo_danmaku",
|
||||
@@ -108,6 +114,12 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/热播APP.py"
|
||||
},
|
||||
{
|
||||
"key": "JP",
|
||||
"name": "🐬金牌APP.py[追剧]",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/金牌APP.py"
|
||||
},
|
||||
{
|
||||
"key": "fY",
|
||||
"name": "🐬枫叶影院.py(关梯子使用)[追剧]",
|
||||
|
||||
+18
-6
@@ -57,6 +57,12 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/drpy2.min.js",
|
||||
"ext": "https://ghfast.top/https://raw.githubusercontent.com/IY-CPU/IY/main/lib/茫茫.png"
|
||||
},
|
||||
{
|
||||
"key": "MGtv",
|
||||
"name": "🐬芒果TV.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/芒果TV.py"
|
||||
},
|
||||
{
|
||||
"key": "leo_danmaku",
|
||||
@@ -94,18 +100,24 @@
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/熊猫直播.py"
|
||||
},
|
||||
{
|
||||
"key": "fY",
|
||||
"name": "🐬枫叶影院.py(关梯子使用)",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/枫叶影院.py"
|
||||
},
|
||||
{
|
||||
"key": "rb",
|
||||
"name": "🐬热播APP.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/热播APP.py"
|
||||
},
|
||||
{
|
||||
"key": "JP",
|
||||
"name": "🐬金牌APP.py",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/金牌APP.py"
|
||||
},
|
||||
{
|
||||
"key": "fY",
|
||||
"name": "🐬枫叶影院.py(关梯子使用)",
|
||||
"type": 3,
|
||||
"api": "https://ghfast.top/https://raw.githubusercontent.com/FGBLH/GHK/refs/heads/main/py/枫叶影院.py"
|
||||
},
|
||||
{
|
||||
"key":"FY",
|
||||
"name":"🐬枫叶影院(关梯子使用)",
|
||||
|
||||
Reference in New Issue
Block a user