code:
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64

class Spider(Spider):  # 元类 默认的元类 type
    def getName(self):
        return "B站教程"
    def init(self,extend=""):
        print("============{0}============".format(extend))
        pass
    def isVideoFormat(self,url):
        pass
    def manualVideoCheck(self):
        pass
    def homeContent(self,filter):
        result = {}
        cateManual = {
            "WPS文字":"WPS文字",
    "WPS表格":"WPS表格",
    "WPS演示":"WPS演示",
   "word":"word",
    "PPT":"PPT",
    "MT管理器":"MT管理器",
"网盘挂载":"网盘挂载",
 "EXCEL":"EXCEL",
"Git入门到精通":"Git入门到精通",
"java":"java",
"phyton":"phyton",
"xml":"xml",
"PR":"PR",
"AE":"AE",
"C4D":"C4D",
"alist+WebDav":"alist+WebDav","Photoshop":"Photoshop",
 "EXCEL":"EXCEL",
 "office":"office",
 "WPS":"WPS",
  "Studioone":"Studioone",
 "声卡调试":"声卡调试"
        }
        classes = []
        for k in cateManual:
            classes.append({
                'type_name':k,
                'type_id':cateManual[k]
            })
        result['class'] = classes
        if(filter):
            result['filters'] = self.config['filter']
        return result
    def homeVideoContent(self):
        result = {
            'list':[]
        }
        return result
    cookies = ''
    def getCookie(self):
        import requests
        import http.cookies
        # 这里填cookie
        raw_cookie_line = "buvid3=CFF74DA7-E79E-4B53-BB96-FC74AB8CD2F3184997infoc; LIVE_BUVID=AUTO4216125328906835; rpdid=|(umRum~uY~R0J'uYukYukkkY; balh_is_closed=; balh_server_inner=__custom__; PVID=4; video_page_version=v_old_home; i-wanna-go-back=-1; CURRENT_BLACKGAP=0; blackside_state=0; fingerprint=8965144a609d60190bd051578c610d72; buvid_fp_plain=undefined; CURRENT_QUALITY=120; hit-dyn-v2=1; nostalgia_conf=-1; buvid_fp=CFF74DA7-E79E-4B53-BB96-FC74AB8CD2F3184997infoc; CURRENT_FNVAL=4048; DedeUserID=85342; DedeUserID__ckMd5=f070401c4c699c83; b_ut=5; hit-new-style-dyn=0; buvid4=15C64651-E8B7-100C-4B1F-C7CFD2DB473007906-022110820-jYQRaMeS%2BRXRfw14q70%2FLQ%3D%3D; b_nut=1667910208; b_lsid=3CE4AE79_184578915C0; is-2022-channel=1; innersign=0; SESSDATA=a5e4d58d%2C1683641322%2C2c39a%2Ab1; bili_jct=2f3126b5954e37f593130f2fef082cd8; sid=p7tjqv22; bp_video_offset_85342=726936847258746900"
        simple_cookie = http.cookies.SimpleCookie(raw_cookie_line)
        cookie_jar = requests.cookies.RequestsCookieJar()
        cookie_jar.update(simple_cookie)
        return cookie_jar
    def get_dynamic(self,pg):
        result = {}

        url= 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?timezone_offset=-480&type=all&page={0}'.format(pg)

        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['items']
            for vod in vodList:
                if vod['type'] == 'DYNAMIC_TYPE_AV':
                    ivod = vod['modules']['module_dynamic']['major']['archive']
                    aid = str(ivod['aid']).strip()
                    title = ivod['title'].strip().replace("","").replace("","")
                    img =  ivod['cover'].strip()
                    remark = str(ivod['duration_text']).strip()
                    videos.append({
                        "vod_id":aid,
                        "vod_name":title,
                        "vod_pic":img,
                        "vod_remarks":remark
                    })
                result['list'] = videos
                result['page'] = pg
                result['pagecount'] = 9999
                result['limit'] = 90
                result['total'] = 999999
        return result

    def get_hot(self,pg):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/popular?ps=20&pn={0}'.format(pg)
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = pg
            result['pagecount'] = 9999
            result['limit'] = 90
            result['total'] = 999999
        return result
    def get_rank(self):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = 1
            result['pagecount'] = 1
            result['limit'] = 90
            result['total'] = 999999
        return result
    def categoryContent(self,tid,pg,filter,extend):
        result = {}
        if tid == "热门":
            return self.get_hot(pg=pg)
        if tid == "排行榜" :
            return self.get_rank()
        if tid == '动态':
            return self.get_dynamic(pg=pg)
        url = 'https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword={0}&page={1}'.format(tid,pg)
        if len(self.cookies) <= 0:
            self.getCookie()
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] != 0:
            rspRetry = self.fetch(url,cookies=self.getCookie())
            content = rspRetry.text
        jo = json.loads(content)
        videos = []
        vodList = jo['data']['result']
        for vod in vodList:
            aid = str(vod['aid']).strip()
            title = tid + ":" + vod['title'].strip().replace("","").replace("","")
            img = 'https:' + vod['pic'].strip()
            remark = str(vod['duration']).strip()
            videos.append({
                "vod_id":aid,
                "vod_name":title,
                "vod_pic":img,
                "vod_remarks":remark
            })
        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result
    def cleanSpace(self,str):
        return str.replace('\n','').replace('\t','').replace('\r','').replace(' ','')
    def detailContent(self,array):
        aid = array[0]
        url = "https://api.bilibili.com/x/web-interface/view?aid={0}".format(aid)

        rsp = self.fetch(url,headers=self.header,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        title = jo['title'].replace("","").replace("","")
        pic = jo['pic']
        desc = jo['desc']
        typeName = jo['tname']
        vod = {
            "vod_id":aid,
            "vod_name":title,
            "vod_pic":pic,
            "type_name":typeName,
            "vod_year":"",
            "vod_area":"bilidanmu",
            "vod_remarks":"",
            "vod_actor":jo['owner']['name'],
            "vod_director":jo['owner']['name'],
            "vod_content":desc
        }
        ja = jo['pages']
        playUrl = ''
        for tmpJo in ja:
            cid = tmpJo['cid']
            part = tmpJo['part']
            playUrl = playUrl + '{0}${1}_{2}#'.format(part,aid,cid)

        vod['vod_play_from'] = 'B站'
        vod['vod_play_url'] = playUrl

        result = {
            'list':[
                vod
            ]
        }
        return result
    def searchContent(self,key,quick):
        search = self.categoryContent(tid=key,pg=1,filter=None,extend=None)
        result = {
            'list':search['list']
        }
        return result
    def playerContent(self,flag,id,vipFlags):
        # https://www.555dianying.cc/vodplay/static/js/playerconfig.js
        result = {}

        ids = id.split("_")
        url = 'https://api.bilibili.com:443/x/player/playurl?avid={0}&cid=%20%20{1}&qn=112'.format(ids[0],ids[1])
        rsp = self.fetch(url,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        ja = jo['durl']

        maxSize = -1
        position = -1
        for i in range(len(ja)):
            tmpJo = ja[i]
            if maxSize < int(tmpJo['size']):
                maxSize = int(tmpJo['size'])
                position = i

        url = ''
        if len(ja) > 0:
            if position == -1:
                position = 0
            url = ja[position]['url']

        result["parse"] = 0
        result["playUrl"] = ''
        result["url"] = url
        result["header"] = {
            "Referer":"https://www.bilibili.com",
            "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
        }
        result["contentType"] = 'video/x-flv'
        return result

    config = {
        "player": {},
        "filter": {}
    }
    header = {}

    def localProxy(self,param):
        return [200, "video/MP2T", action, ""]


code:
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json

class Spider(Spider):
	def getName(self):
		return "77"
	def init(self,extend=""):
		print("============{0}============".format(extend))
		pass
	def homeContent(self,filter):
		result = {}
		url = 'http://api.kunyu77.com/api.php/provide/filter'
		rsp = self.fetch(url,headers=self.header)
		jo = json.loads(rsp.text)
		classes = []
		jData = jo['data']
		for cKey in jData.keys():
			classes.append({
				'type_name':jData[cKey][0]['cat'],
				'type_id':cKey
			})
		result['class'] = classes
		if(filter):
			result['filters'] = self.config['filter']
		return result
	def homeVideoContent(self):
		url = 'http://api.kunyu77.com/api.php/provide/homeBlock?type_id=0'
		rsp = self.fetch(url,headers=self.header)
		jo = json.loads(rsp.text)
		blockList = jo['data']['blocks']
		videos = []
		for block in blockList:
			vodList = block['contents']
			for vod in vodList:
				videos.append({
					"vod_id":vod['id'],
					"vod_name":vod['title'],
					"vod_pic":vod['videoCover'],
					"vod_remarks":vod['msg']
				})
		result = {
			'list':videos
		}
		return result
	def categoryContent(self,tid,pg,filter,extend):
		result = {}
		if 'type_id' not in extend.keys():
			extend['type_id'] = tid
		extend['pagenum'] = pg
		filterParams = ["type_id", "pagenum"]
		params = ["", ""]
		for idx in range(len(filterParams)):
			fp = filterParams[idx]
			if fp in extend.keys():
				params[idx] = '&'+filterParams[idx]+'='+extend[fp]
		suffix = ''.join(params)
		url = 'http://api.kunyu77.com/api.php/provide/searchFilter?pagesize=24{0}'.format(suffix)
		rsp = self.fetch(url,headers=self.header)
		jo = json.loads(rsp.text)
		vodList = jo['data']['result']
		videos = []
		for vod in vodList:
			videos.append({
				"vod_id":vod['id'],
				"vod_name":vod['title'],
				"vod_pic":vod['videoCover'],
				"vod_remarks":vod['msg']
			})
		result['list'] = videos
		result['page'] = pg
		result['pagecount'] = 9999
		result['limit'] = 90
		result['total'] = 999999
		return result
	def detailContent(self,array):
		tid = array[0]
		url = 'http://api.kunyu77.com/api.php/provide/videoDetail?devid=453CA5D864457C7DB4D0EAA93DE96E66&package=com.sevenVideo.app.android&version=1.8.7&ids={0}'.format(tid)
		rsp = self.fetch(url,headers=self.header)
		jo = json.loads(rsp.text)
		node = jo['data']
		vod = {
			"vod_id":node['id'],
			"vod_name":node['videoName'],
			"vod_pic":node['videoCover'],
			"type_name":node['subCategory'],
			"vod_year":node['year'],
			"vod_area":node['area'],
			"vod_remarks":node['msg'],
			"vod_actor":node['actor'],
			"vod_director":node['director'],
			"vod_content":node['brief'].strip()
		}
		listUrl = 'http://api.kunyu77.com/api.php/provide/videoPlaylist?devid=453CA5D864457C7DB4D0EAA93DE96E66&package=com.sevenVideo.app.android&version=1.8.7&ids={0}'.format(tid)
		listRsp = self.fetch(listUrl,headers=self.header)
		listJo = json.loads(listRsp.text)
		playMap = {}
		episodes = listJo['data']['episodes']
		for ep in episodes:
			playurls = ep['playurls']
			for playurl in playurls:
				source = playurl['playfrom']
				if source not in playMap.keys():
					playMap[source] = []
				playMap[source].append(playurl['title'].strip() + '$' + playurl['playurl'])

		playFrom = []
		playList = []
		for key in playMap.keys():
			playFrom.append(key)
			playList.append('#'.join(playMap[key]))

		vod_play_from = '$$$'
		vod_play_from = vod_play_from.join(playFrom)
		vod_play_url = '$$$'
		vod_play_url = vod_play_url.join(playList)
		vod['vod_play_from'] = vod_play_from
		vod['vod_play_url'] = vod_play_url

		result = {
			'list':[
				vod
			]
		}
		return result

	def searchContent(self,key,quick):
		url = 'http://api.kunyu77.com/api.php/provide/searchVideo?searchName={0}'.format(key)
		rsp = self.fetch(url,headers=self.header)
		jo = json.loads(rsp.text)
		vodList = jo['data']
		videos = []
		for vod in vodList:
			videos.append({
				"vod_id":vod['id'],
				"vod_name":vod['videoName'],
				"vod_pic":vod['videoCover'],
				"vod_remarks":vod['msg']
			})
		result = {
			'list':videos
		}
		return result

	config = {
		"player": {},
		"filter": {}
	}
	header = {
		"User-Agent":"okhttp/3.12.0"
	}
	def playerContent(self,flag,id,vipFlags):
		result = {}
		url = 'http://api.kunyu77.com/api.php/provide/parserUrl?url={0}'.format(id)
		jo = self.fetch(url,headers=self.header).json()
		result = {
			'parse':0,
			'jx':0,
			'playUrl':'',
			'url':id,
			'header':''
		}
		if flag in vipFlags:
			result['parse'] = 1
			result['jx'] = 1
		return result
	def isVideoFormat(self,url):
		pass
	def manualVideoCheck(self):
		pass
	def localProxy(self,param):
		return [200, "video/MP2T", action, ""]

license: unknown


code:
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64

class Spider(Spider):  # 元类 默认的元类 type
    def getName(self):
        return "B站音乐"
    def init(self,extend=""):
        print("============{0}============".format(extend))
        pass
    def isVideoFormat(self,url):
        pass
    def manualVideoCheck(self):
        pass
    def homeContent(self,filter):
        result = {}
        cateManual = {
            "粤语":"粤语歌曲超清",
    "2022年热榜":"2022年热们歌曲",
    "经典老歌":"经典老歌",
    "古风歌曲":"古风歌曲",
    "闽南语歌曲":"闽南语歌曲",
    "印度歌舞":"印度歌舞",
    "8K":"8K",
    "4K杜比视界":"4K杜比视界",
    "4K":"4K",
    "黑胶":"黑胶",
    "MV":"MV",
    "4K小姐姐":"4K小姐姐",
    "超清小姐姐":"超清小姐姐",
    "经典粤语":"经典粤语",
    "经典老歌":"经典老歌",
    "宝华音乐台":"宝华音乐台",
     "翻唱":"翻唱",
    "张学友":"张学友",
     "伍佰":"伍佰",
    "陈奕迅":"陈奕迅",
    "演唱会":"演唱会",
     "欧美金曲":"欧美金曲",
    "日韩MV":"日韩MV",
    "DJ":"DJ"
        }
        classes = []
        for k in cateManual:
            classes.append({
                'type_name':k,
                'type_id':cateManual[k]
            })
        result['class'] = classes
        if(filter):
            result['filters'] = self.config['filter']
        return result
    def homeVideoContent(self):
        result = {
            'list':[]
        }
        return result
    cookies = ''
    def getCookie(self):
        import requests
        import http.cookies
        # 这里填cookie
        raw_cookie_line = "buvid3=CFF74DA7-E79E-4B53-BB96-FC74AB8CD2F3184997infoc; LIVE_BUVID=AUTO4216125328906835; rpdid=|(umRum~uY~R0J'uYukYukkkY; balh_is_closed=; balh_server_inner=__custom__; PVID=4; video_page_version=v_old_home; i-wanna-go-back=-1; CURRENT_BLACKGAP=0; blackside_state=0; fingerprint=8965144a609d60190bd051578c610d72; buvid_fp_plain=undefined; CURRENT_QUALITY=120; hit-dyn-v2=1; nostalgia_conf=-1; buvid_fp=CFF74DA7-E79E-4B53-BB96-FC74AB8CD2F3184997infoc; CURRENT_FNVAL=4048; DedeUserID=85342; DedeUserID__ckMd5=f070401c4c699c83; b_ut=5; hit-new-style-dyn=0; buvid4=15C64651-E8B7-100C-4B1F-C7CFD2DB473007906-022110820-jYQRaMeS%2BRXRfw14q70%2FLQ%3D%3D; b_nut=1667910208; b_lsid=3CE4AE79_184578915C0; is-2022-channel=1; innersign=0; SESSDATA=a5e4d58d%2C1683641322%2C2c39a%2Ab1; bili_jct=2f3126b5954e37f593130f2fef082cd8; sid=p7tjqv22; bp_video_offset_85342=726936847258746900"
        simple_cookie = http.cookies.SimpleCookie(raw_cookie_line)
        cookie_jar = requests.cookies.RequestsCookieJar()
        cookie_jar.update(simple_cookie)
        return cookie_jar
    def get_dynamic(self,pg):
        result = {}

        url= 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?timezone_offset=-480&type=all&page={0}'.format(pg)

        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['items']
            for vod in vodList:
                if vod['type'] == 'DYNAMIC_TYPE_AV':
                    ivod = vod['modules']['module_dynamic']['major']['archive']
                    aid = str(ivod['aid']).strip()
                    title = ivod['title'].strip().replace("","").replace("","")
                    img =  ivod['cover'].strip()
                    remark = str(ivod['duration_text']).strip()
                    videos.append({
                        "vod_id":aid,
                        "vod_name":title,
                        "vod_pic":img,
                        "vod_remarks":remark
                    })
                result['list'] = videos
                result['page'] = pg
                result['pagecount'] = 9999
                result['limit'] = 90
                result['total'] = 999999
        return result

    def get_hot(self,pg):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/popular?ps=20&pn={0}'.format(pg)
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = pg
            result['pagecount'] = 9999
            result['limit'] = 90
            result['total'] = 999999
        return result
    def get_rank(self):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = 1
            result['pagecount'] = 1
            result['limit'] = 90
            result['total'] = 999999
        return result
    def categoryContent(self,tid,pg,filter,extend):
        result = {}
        if tid == "热门":
            return self.get_hot(pg=pg)
        if tid == "排行榜" :
            return self.get_rank()
        if tid == '动态':
            return self.get_dynamic(pg=pg)
        url = 'https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword={0}&page={1}'.format(tid,pg)
        if len(self.cookies) <= 0:
            self.getCookie()
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] != 0:
            rspRetry = self.fetch(url,cookies=self.getCookie())
            content = rspRetry.text
        jo = json.loads(content)
        videos = []
        vodList = jo['data']['result']
        for vod in vodList:
            aid = str(vod['aid']).strip()
            title = tid + ":" + vod['title'].strip().replace("","").replace("","")
            img = 'https:' + vod['pic'].strip()
            remark = str(vod['duration']).strip()
            videos.append({
                "vod_id":aid,
                "vod_name":title,
                "vod_pic":img,
                "vod_remarks":remark
            })
        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result
    def cleanSpace(self,str):
        return str.replace('\n','').replace('\t','').replace('\r','').replace(' ','')
    def detailContent(self,array):
        aid = array[0]
        url = "https://api.bilibili.com/x/web-interface/view?aid={0}".format(aid)

        rsp = self.fetch(url,headers=self.header,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        title = jo['title'].replace("","").replace("","")
        pic = jo['pic']
        desc = jo['desc']
        typeName = jo['tname']
        vod = {
            "vod_id":aid,
            "vod_name":title,
            "vod_pic":pic,
            "type_name":typeName,
            "vod_year":"",
            "vod_area":"bilidanmu",
            "vod_remarks":"",
            "vod_actor":jo['owner']['name'],
            "vod_director":jo['owner']['name'],
            "vod_content":desc
        }
        ja = jo['pages']
        playUrl = ''
        for tmpJo in ja:
            cid = tmpJo['cid']
            part = tmpJo['part']
            playUrl = playUrl + '{0}${1}_{2}#'.format(part,aid,cid)

        vod['vod_play_from'] = 'B站'
        vod['vod_play_url'] = playUrl

        result = {
            'list':[
                vod
            ]
        }
        return result
    def searchContent(self,key,quick):
        search = self.categoryContent(tid=key,pg=1,filter=None,extend=None)
        result = {
            'list':search['list']
        }
        return result
    def playerContent(self,flag,id,vipFlags):
        # https://www.555dianying.cc/vodplay/static/js/playerconfig.js
        result = {}

        ids = id.split("_")
        url = 'https://api.bilibili.com:443/x/player/playurl?avid={0}&cid=%20%20{1}&qn=112'.format(ids[0],ids[1])
        rsp = self.fetch(url,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        ja = jo['durl']

        maxSize = -1
        position = -1
        for i in range(len(ja)):
            tmpJo = ja[i]
            if maxSize < int(tmpJo['size']):
                maxSize = int(tmpJo['size'])
                position = i

        url = ''
        if len(ja) > 0:
            if position == -1:
                position = 0
            url = ja[position]['url']

        result["parse"] = 0
        result["playUrl"] = ''
        result["url"] = url
        result["header"] = {
            "Referer":"https://www.bilibili.com",
            "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
        }
        result["contentType"] = 'video/x-flv'
        return result

    config = {
        "player": {},
        "filter": {}
    }
    header = {}

    def localProxy(self,param):
        return [200, "video/MP2T", action, ""]


code:
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64

class Spider(Spider):  # 元类 默认的元类 type
    def getName(self):
        return "高中"
    def init(self,extend=""):
        print("============{0}============".format(extend))
        pass
    def isVideoFormat(self,url):
        pass
    def manualVideoCheck(self):
        pass
    def homeContent(self,filter):
        result = {}
        cateManual = {
            "高一语文":"高一语文",
    "高一数学":"高一数学",
   "高一英语":"高一英语",
  "高一历史":"高一历史",
"高一地理":"高一地理",
    "高一生物":"高一生物",
 "高一思想政治":"高一思想政治",
"高一物理":"高一物理",
    "高一化学":"高一化学",
"高二语文":"高二语文",
    "高二数学":"高二数学",
   "高二英语":"高二英语",
  "高二历史":"高二历史",
"高二地理":"高二地理",
    "高二生物":"高二生物",
 "高二思想政治":"高二思想政治",
"高二物理":"高二物理",
    "高二化学":"高二化学",
"高三语文":"高三语文",
    "高三数学":"高三数学",
   "高三英语":"高三英语",
  "高三历史":"高三历史",
"高三地理":"高三地理",
    "高三生物":"高三生物",
 "高三思想政治":"高三思想政治",
"高三物理":"高三物理",
 "高三化学":"高三化学",
"高中信息技术":"高中信息技术",
 "高中信息技术":"高中信息技术"
        }
        classes = []
        for k in cateManual:
            classes.append({
                'type_name':k,
                'type_id':cateManual[k]
            })
        result['class'] = classes
        if(filter):
            result['filters'] = self.config['filter']
        return result
    def homeVideoContent(self):
        result = {
            'list':[]
        }
        return result
    cookies = ''
    def getCookie(self):
        import requests
        import http.cookies
        # 这里填cookie
        raw_cookie_line = "buvid3=CFF74DA7-E79E-4B53-BB96-FC74AB8CD2F3184997infoc; LIVE_BUVID=AUTO4216125328906835; rpdid=|(umRum~uY~R0J'uYukYukkkY; balh_is_closed=; balh_server_inner=__custom__; PVID=4; video_page_version=v_old_home; i-wanna-go-back=-1; CURRENT_BLACKGAP=0; blackside_state=0; fingerprint=8965144a609d60190bd051578c610d72; buvid_fp_plain=undefined; CURRENT_QUALITY=120; hit-dyn-v2=1; nostalgia_conf=-1; buvid_fp=CFF74DA7-E79E-4B53-BB96-FC74AB8CD2F3184997infoc; CURRENT_FNVAL=4048; DedeUserID=85342; DedeUserID__ckMd5=f070401c4c699c83; b_ut=5; hit-new-style-dyn=0; buvid4=15C64651-E8B7-100C-4B1F-C7CFD2DB473007906-022110820-jYQRaMeS%2BRXRfw14q70%2FLQ%3D%3D; b_nut=1667910208; b_lsid=3CE4AE79_184578915C0; is-2022-channel=1; innersign=0; SESSDATA=a5e4d58d%2C1683641322%2C2c39a%2Ab1; bili_jct=2f3126b5954e37f593130f2fef082cd8; sid=p7tjqv22; bp_video_offset_85342=726936847258746900"
        simple_cookie = http.cookies.SimpleCookie(raw_cookie_line)
        cookie_jar = requests.cookies.RequestsCookieJar()
        cookie_jar.update(simple_cookie)
        return cookie_jar
    def get_dynamic(self,pg):
        result = {}

        url= 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?timezone_offset=-480&type=all&page={0}'.format(pg)

        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['items']
            for vod in vodList:
                if vod['type'] == 'DYNAMIC_TYPE_AV':
                    ivod = vod['modules']['module_dynamic']['major']['archive']
                    aid = str(ivod['aid']).strip()
                    title = ivod['title'].strip().replace("","").replace("","")
                    img =  ivod['cover'].strip()
                    remark = str(ivod['duration_text']).strip()
                    videos.append({
                        "vod_id":aid,
                        "vod_name":title,
                        "vod_pic":img,
                        "vod_remarks":remark
                    })
                result['list'] = videos
                result['page'] = pg
                result['pagecount'] = 9999
                result['limit'] = 90
                result['total'] = 999999
        return result

    def get_hot(self,pg):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/popular?ps=20&pn={0}'.format(pg)
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = pg
            result['pagecount'] = 9999
            result['limit'] = 90
            result['total'] = 999999
        return result
    def get_rank(self):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = 1
            result['pagecount'] = 1
            result['limit'] = 90
            result['total'] = 999999
        return result
    def categoryContent(self,tid,pg,filter,extend):
        result = {}
        if tid == "热门":
            return self.get_hot(pg=pg)
        if tid == "排行榜" :
            return self.get_rank()
        if tid == '动态':
            return self.get_dynamic(pg=pg)
        url = 'https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword={0}&page={1}'.format(tid,pg)
        if len(self.cookies) <= 0:
            self.getCookie()
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] != 0:
            rspRetry = self.fetch(url,cookies=self.getCookie())
            content = rspRetry.text
        jo = json.loads(content)
        videos = []
        vodList = jo['data']['result']
        for vod in vodList:
            aid = str(vod['aid']).strip()
            title = tid + ":" + vod['title'].strip().replace("","").replace("","")
            img = 'https:' + vod['pic'].strip()
            remark = str(vod['duration']).strip()
            videos.append({
                "vod_id":aid,
                "vod_name":title,
                "vod_pic":img,
                "vod_remarks":remark
            })
        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result
    def cleanSpace(self,str):
        return str.replace('\n','').replace('\t','').replace('\r','').replace(' ','')
    def detailContent(self,array):
        aid = array[0]
        url = "https://api.bilibili.com/x/web-interface/view?aid={0}".format(aid)

        rsp = self.fetch(url,headers=self.header,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        title = jo['title'].replace("","").replace("","")
        pic = jo['pic']
        desc = jo['desc']
        typeName = jo['tname']
        vod = {
            "vod_id":aid,
            "vod_name":title,
            "vod_pic":pic,
            "type_name":typeName,
            "vod_year":"",
            "vod_area":"bilidanmu",
            "vod_remarks":"",
            "vod_actor":jo['owner']['name'],
            "vod_director":jo['owner']['name'],
            "vod_content":desc
        }
        ja = jo['pages']
        playUrl = ''
        for tmpJo in ja:
            cid = tmpJo['cid']
            part = tmpJo['part']
            playUrl = playUrl + '{0}${1}_{2}#'.format(part,aid,cid)

        vod['vod_play_from'] = 'B站'
        vod['vod_play_url'] = playUrl

        result = {
            'list':[
                vod
            ]
        }
        return result
    def searchContent(self,key,quick):
        search = self.categoryContent(tid=key,pg=1,filter=None,extend=None)
        result = {
            'list':search['list']
        }
        return result
    def playerContent(self,flag,id,vipFlags):
        # https://www.555dianying.cc/vodplay/static/js/playerconfig.js
        result = {}

        ids = id.split("_")
        url = 'https://api.bilibili.com:443/x/player/playurl?avid={0}&cid=%20%20{1}&qn=112'.format(ids[0],ids[1])
        rsp = self.fetch(url,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        ja = jo['durl']

        maxSize = -1
        position = -1
        for i in range(len(ja)):
            tmpJo = ja[i]
            if maxSize < int(tmpJo['size']):
                maxSize = int(tmpJo['size'])
                position = i

        url = ''
        if len(ja) > 0:
            if position == -1:
                position = 0
            url = ja[position]['url']

        result["parse"] = 0
        result["playUrl"] = ''
        result["url"] = url
        result["header"] = {
            "Referer":"https://www.bilibili.com",
            "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
        }
        result["contentType"] = 'video/x-flv'
        return result

    config = {
        "player": {},
        "filter": {}
    }
    header = {}

    def localProxy(self,param):
        return [200, "video/MP2T", action, ""]


code:
# coding=utf-8
# !/usr/bin/python
import sys
import re
sys.path.append('..')
from base.spider import Spider
import json

class Spider(Spider):  # 元类 默认的元类 type
    def getName(self):
        return "麦豆TV"

    def init(self, extend=""):
        print("============{0}============".format(extend))
        pass

    def homeContent(self, filter):
        result = {}
        cateManual = {
            "国产": "guocanju",
            "港台": "gangtai",
            "欧美": "en",
            "韩剧": "hanju",
            "日剧": "riju",
            "泰剧": "taiju",
            "集剧": "tv",
            "电影": "movie",
            "动漫": "ac",
            "综艺": "zongyi"
        }
        classes = []
        for k in cateManual:
            classes.append({
                'type_name': k,
                'type_id': cateManual[k]
            })

        result['class'] = classes
        if (filter):
            result['filters'] = self.config['filter']
        return result

    def homeVideoContent(self):
        result = {
            'list': []
        }
        return result

    def categoryContent(self, tid, pg, filter, extend):
        result = {}
        url = 'https://www.mdoutv.com/movie_bt_series/{0}/page/{1}'.format(tid, pg)
        rsp = self.fetch(url)
        root = self.html(rsp.text)
        aList = root.xpath("//li/a[@target='_blank']")
        videos = []
        for a in aList:
            name = a.xpath('./img/@alt')
            pic = a.xpath('./img/@data-original')
            mark = a.xpath('./div/span/text()')
            sid = a.xpath('./@href')
            videos.append({
                "vod_id": ''.join(sid),
                "vod_name": ''.join(name),
                "vod_pic": ''.join(pic),
                "vod_remarks": ''.join(mark)
            })
        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result

    def detailContent(self, array):
        tid = array[0]
        url = '{0}'.format(tid)
        header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
        rsp = self.fetch(url,)
        root = self.html(rsp.text)
        title = root.xpath("//div[@class='mi_ne_kd dypre']/div[2]/div/h1/text()")[0]
        pic = root.xpath("//div[@class='mi_ne_kd dypre']/div[1]/img/@src")[0]
        detail = root.xpath("//div[@class='yp_context']/p/text()")[0]
        vod = {
            "vod_id": tid,
            "vod_name": title,
            "vod_pic": pic,
            "type_name": "",
            "vod_year": "",
            "vod_area": "",
            "vod_remarks": "",
            "vod_actor": "",
            "vod_director": "",
            "vod_content": detail
        }
        infoArray = root.xpath("//ul[@class='moviedteail_list']/li")
        for info in infoArray:
            content = info.xpath('string(.)')
            if content.startswith('地区'):
                vod['vod_area'] = content.replace("地区：", "")
            if content.startswith('年份'):
                vod['vod_year'] = content.replace("年份：", "")
            if content.startswith('主演'):
                vod['vod_actor'] = content.replace("主演：", "")
            if content.startswith('导演'):
                vod['vod_director'] = content.replace("导演：", "")
        vod_play_from = '$$$'
        playFrom = []
        vod_play_url = '$$$'
        playList = []
        vodHeader = root.xpath("//div[@class='paly_list_btn']/a")
        for v in vodHeader:
            playFrom.append(v.xpath('./text()')[0])
            playList.append(v.xpath('./text()')[0] + '$' +v.xpath('./@href')[0] + '#')
        vod_play_url = vod_play_url.join(playList)
        vod_play_from = vod_play_from.join(playFrom)
        vod['vod_play_from'] = vod_play_from
        vod['vod_play_url'] = vod_play_url
        result = {
			'list':[
				vod
			]
        }
        return result

    def searchContent(self, key, quick):
        result = {}
        return result

    def playerContent(self, flag, id, vipFlags):
        result = {}
        rsp = self.fetch(id)
        root = self.html(rsp.text)
        vl = root.xpath("//div[@class='xilubg xla']/a")[0]
        vurl = vl.xpath("./@vurl")[0]
        vurl1 = vurl.split('?url=')
        vurl = vurl1[1]
        url = 'https://jxdp.codermart.net/jxplayer.php?v={0}'.format(vurl)
        rsp = self.fetch(url)
        root = self.html(rsp.text)
        si = root.xpath("//script[@type='text/javascript']/text()")
        for info in si:
            if info.startswith('\nvar canPlay'):
                si1 = info
                si1 = self.regStr(si1,"var urls = \"(\\S+)\";")
                break
        result["parse"] = 0
        result["playUrl"] = ''
        result["url"] = si1
        result["header"] = ''
        return result

    config = {
        "player": {},
        "filter": {}
    }
    header = {}

    def isVideoFormat(self, url):
        pass

    def manualVideoCheck(self):
        pass

    def localProxy(self, param):
        return [200, "video/MP2T", action, ""]


code:
{//所有资源都是来自各互联网，用于个人测试显示器与电池学习使用。未涉及到商业盈利，如有侵权，请联系，会在第一时间删除 谢谢
	//不良帅整理
//==================================PY爬虫==================================================================
{"key":"py_豆瓣影视","name":"豆瓣影视┃PY","type":3,"api":"py_douban","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_douban.py"},
{"key":"py_酷云七七","name":"酷云七七┃PY","type":3,"api":"py_kunyu77","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/酷云七七.py"},
{"key":"py_厂长影视","name":"厂长影视┃PY","type":3,"api":"py_czspp","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/厂长.py"},
{"key":"py_爱看影视","name":"爱看影视┃PY","type":3,"api":"py_ikan","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/爱看.py"},
{"key":"py_可乐影视","name":"可乐影视┃PY","type":3,"api":"py_cokemv","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/cokemv.py"},
{"key":"py_猫咪影视","name":"猫咪影视┃PY","type":3,"api":"py_xmaomi","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/猫咪.py"},
{"key":"py_VOFLIXTV","name":"VOFLIX┃PY","type":3,"api":"py_voflix","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/src/master/PY/voflix.py"},
{"key":"py_剧迷影视","name":"剧迷影视┃PY","type":3,"api":"py_gimytv","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/剧迷.py"},
{"key":"py_跟剧影视","name":"跟剧影视┃PY","type":3,"api":"py_genmov","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/跟剧.py"},
{"key":"py_在线之家","name":"在线之家┃PY","type":3,"api":"py_zxzj","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/在线之家.py"},
{"key":"py_libvio","name":"libvio┃PY","type":3,"api":"py_libvio","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://notabug.org/qizhen15800/My9394/raw/master/PY/libvio.py"},
{"key":"py_乐猪影视","name":"乐猪影视┃PY","type":3,"api":"py_lezhu","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://notabug.org/qizhen15800/My9394/raw/master/PY/乐猪.py"},
{"key":"py_创艺影视","name":"创艺影视┃PY","type":3,"api":"py_cyys","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://notabug.org/qizhen15800/My9394/raw/master/PY/创艺.py"},
{"key":"py_B站影视","name":"B站影视┃PY","type":3,"api":"py_bilimd","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://notabug.org/qizhen15800/My9394/raw/master/PY/B站影视.py"},
{"key":"py_企鹅体育","name":"企鹅体育┃PY","type":3,"api":"py_qie","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/%e4%bc%81%e9%b9%85%e4%bd%93%e8%82%b2.py"},
{"key":"py_哔哩哔哩","name":"哔哩哔哩┃PY","type":3,"api":"py_bilibili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_bilibili.py"},
{"key":"py_央视自选","name":"央视自选┃PY","type":3,"api":"py_cctv","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_cctv.py"},
{"key":"py_央视大全","name":"央视大全┃PY","type":3,"api":"py_cctv_full","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_cctv_full.py"},
{"key":"py_哔哩影视","name":"哔哩影视┃PY","type":3,"api":"py_bilimd","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_bilimd.py"},
{"key":"py_中国医药","name":"中国医药┃PY","type":3,"api":"py_中医药","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_%e4%b8%ad%e5%8c%bb%e8%8d%af.py"},
{"key":"py_中国文化","name":"中国文化┃PY","type":3,"api":"py_中国文化","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_%e4%b8%ad%e5%9b%bd%e6%96%87%e5%8c%96.py"},
{"key":"py_快播影视","name":"快播影视┃PY","type":3,"api":"py_3qu","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_3qu.py"},
{"key":"py_星光影视","name":"星光影视┃PY","type":3,"api":"py_star","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://notabug.org/qizhen15800/My9394/raw/master/PY/py_star.py"},
{"key":"py_茶狐影视","name":"茶狐影视┃PY","type":3,"api":"py_cup","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://notabug.org/qizhen15800/My9394/raw/master/PY/py_cup.py"},
{"key":"py_查找资源","name":"查找资源┃PY","type":3,"api":"py_zhaozy","searchable": 1,"quickSearch": 1,"filterable": 0,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_zhaozy.py"},
{"key":"py_盘搜资源","name":"盘搜资源┃PY","type":3,"api":"py_pansou","searchable": 1,"quickSearch": 1,"filterable": 0,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_pansou.py"},
{"key":"py_易搜资源","name":"易搜资源┃PY","type":3,"api":"py_yiso","searchable": 1,"quickSearch": 1,"filterable": 0,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_yiso.py"},
{"key":"py_阿里纸条","name":"阿里纸条┃PY","type":3,"api":"py_gitcafe","searchable": 1,"quickSearch": 1,"filterable": 0,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_gitcafe.py"},
{"key":"py_公益云盘","name":"公益云盘┃PY","type":3,"api":"py_alist","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_alist.py"},
{"key":"py_阿里推送","name":"阿里推送┃PY","type":3,"api":"py_ali","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_ali.py"},
{"key":"py_虎牙视频","name":"虎牙视频┃PY","type":3,"api":"py_huya","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_huya.py"},
{"key":"py_斗鱼视频","name":"斗鱼视频┃PY","type":3,"api":"py_douyu","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": "https://notabug.org/qizhen15800/My9394/raw/master/PY/py_douyu.py"}
],
"spider": "https://notabug.org/qizhen15800/My9394/raw/master/jar/不良帅.txt",
"lives": [{"group": "redirect","channels": [{"name": "live","urls": ["proxy://do=live&type=txt&ext=aHR0cDovL2hvbWUuanVuZGllLnRvcDo4MS9DYXQvdHYvbGl2ZS50eHQ="]}]}],
"rules" : [{"host" : "*","rule" : ["douyinvod.com","/video/tos/cn/"]},{"host" : "*","rule" : ["default.365yg.com","/video/tos/cn/"]},{"host" : "*","rule" : ["/m3u8.php","path="]},{"host" : "zjmiao.com","rule" : ["play.videomiao.vip/API.php","time=","key=","path="]}],
"parses":[
{"name":"解析聚合","type":3,"url":"Demo"},
{"name":"Json并发","type":2,"url":"Parallel"},
{"name":"Json轮询","type":2,"url":"Sequence"},
{"name":"江湖小虾米","type":0,"url":"https://dm.xmflv.com:4433/?url="},
{"name":"yemu","url": "https://www.yemu.xyz/?url="},
{"name":"dbapp","url": "https://dbapp.hengj.cn/rr/tg/?url="},
{"name": "8old","type": 0,"url": "http://danmu.8old.cn/vip/?url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"]}},
{"name":"free","type":0,"url":"https://h5.freejson.xyz/player/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
{"name":"ceshi","type":1,"url":"http://211.99.99.236:4567/jhjson/ceshi.php?url=","ext":{"flag":["qiyi","iqiyi","奇艺","爱奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","bilibili","哔哩哔哩","哔哩","mgtv","芒果","xigua","西瓜","sohu","搜狐","cntv","cctv","央视","1905","m1905"]}},
{"name":"gotka","type":1,"url":"http://newjiexi.gotka.top/keyu3.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
{"name":"hfys","type":1,"url":"http://119.91.206.244:9999/jx/hfys.php?url=","ext": {"flag": ["duoduozy", "renrenmi","ltnb","miaoparty","miaoparty2","miaoparty3","laodiyun","laodim3u8","lekanzyw","rx","CL4K","fuckapp","1080P", "wuduzy"]}},
{"name": "dygfsdy","type": 1,"url": "http://jx.dygfsdy.com/home/api?type=ys&uid=129415&key=acdmoruwxCDEKPZ679&url=","ext": {"flag": ["qq","腾讯","letv","乐视","mgtv","芒果","youku","优酷","qiyi","iqiyi","爱奇艺","奇艺"]}},
{"name": "anal23","type": 1,"url": "http://39.96.174.234:4433/analysis.php?app=10000&account=SVIP666&password=18123344653&url=","ext": {"flag": ["qiyi","qq","letv","sohu","youku","mgtv","bilibili","wasu","xigua","1905"]}},
{"name": "analysis", "type": 0,"url": "http://42.193.18.62:9999/analysis.php?v=","ext": { "flag": ["qq","腾讯", "qiyi", "爱奇艺","奇艺", "youku", "优酷","mgtv","芒果","letv","乐视","pptv", "PPTV", "sohu","bilibili","哔哩哔哩", "哔哩"]}},
{"name": "wuyou","type": 0,"url": "http://wuyou.ueuo.com/jx.html?url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果"]}},
{"name":"七小时","url":"https://jxxxx.sanmitt.cn/index.php?url="},
{"name":"legen","url": "https://json.legendwhb.cn//llq//?url="},
{"name":"ckplayer","type":0,"url":"https://www.ckplayer.vip/jiexi/?url="},
{"name": "parwix","type": 0,"url": "https://vip.parwix.com:4433/player/?url=","ext": {"flag": ["ltnb","renrenmi","qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","bilibili","哔哩哔哩","哔哩"]}},
{"name":"17yun","url":"http://www.1717yun.com/api/?url="},
{"name":"扶风","type":1,"url":"https://vip.byteamone.cn/api/?key=iYOnljzBM3qy5y9qZ4&url="},
{"name":"ckmov","url":"https://www.ckmov.vip/api.php?url="},
{"name":"m3u8","url":"https://www.playm3u8.cn/jiexi.php?url="},
{"name":"07u8","url":"https://m3u8.07vod.cn/?url="},
{"name":"17ty","url":"http://www.1717yun.com/jx/ty.php?url="},
{"name":"M117","type":0,"url":"http://1.117.152.239:39000/?url="},
{"name":"M3U8解析","type":0,"url":"https://www.m3u8.tv.cdn.8old.cn/jx.php?url="},
{"name":"bozrc稳定","type":0,"url":"https://jx.bozrc.com:4433/player/?url="},
{"name":"ax","url": "https://api.ax.jx.cn/?url="},
{"name":"zui","type":0,"url":"https://jx.zui.cm/?url=","ext":{"flag":["ltnb"]}},
{"name":"8090","url":"https://www.8090g.cn/?url="},
{"name":"m3u8tv","url": "http://jx.m3u8.tv/jiexi/?url="},
{"name":"ecsxs","url":"https://wds.ecsxs.com/225173.html?url="},
{"name":"365","url":"https://jx.fulitang365.com/?url="},
{"name":"ltnb","type":0,"url":"https://jx.zui.cm/?url=","ext":{"flag":["ltnb"]}},
{"name":"ml1080","url": "https://www.ml1080.com//mg//?url="},
{"name":"佳宸","type":0,"url":"http://1link.atwebpages.com/?url="},
{"name":"bl","type":0,"url":"https://svip.bljiex.cc/?v="},
{"name": "rongxing","type": 1,"url": "http://jx.dygfsdy.com/home/api?type=ys&uid=129415&key=acdmoruwxCDEKPZ679&url="},
{"name": "rx","type":1,"url": "https://rx.bt5v.com/json/jsonindex.php/?url="},
{"name": "rxvip","type": 1,"url": "https://vip.rongxingvr.top/api/?key=CwQXkIXGfaUNGVomez&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"]}},
{"name": "GGTV你啊","type":1,"url": "https://play.fuqizhishi.com/jx/API.php?appkey=xiaobaiiii&url="},
{"name":"ckplayer","type":0,"url":"https://www.ckplayer.vip/jiexi/?url="},
{"name": "kuanjv","type": 1,"url": "http://rxjx.kuanjv.com/allm3u8.php?url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","搜狐","sohu","letv","乐视","bilibili","哔哩哔哩","哔哩","xigua","西瓜"]}},
{"name": "GGTV搜集","type": 1,"url": "https://play.fuqizhishi.com/juhe/API.php?appkey=caijijuhe220902&url="},
{"name":"托乌","type":0,"url":"https://jx.ppjbk.cn/?url="},
{"name":"icu","type":1,"url":"https://cache.json.icu/home/api?type=ys&uid=1362243&key=acfgklqwFLMORSTVZ6&url=","ext":{"flag":["qq","qiyi","mgtv","youku","letv","sohu","xigua","1905","bilibili","ltnb","renrenmi"]}},
{"name":"kumyun","type":1,"url":"http://www.kumyun.cn/home/api?type=ys&uid=12970&key=eopDJKLMNPSTVXY015&url="},
{"name":"优众","type":1,"url":"http://svip.nfjx.xyz/api/?key=wbbgCgezulNGcZVHc1&url="},
{"name": "无名","type": 1,"url": "https://www.administratorw.com/video.php?url="},
{"name": "爱豆解析","type": 0,"url": "https://jx.aidouer.net/?url="},
{"name":"快速","type":1,"url":"https://play.fuqizhishi.com/juhe/API.php?appkey=caijijuhe&url="},
{"name": "融xing","type": 1,"url": "https://vip.rongxingvr.top/api/?key=DIcBZqAMbKBa1fRdeM&url=","ext": {"flag": ["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"]}},
{"name": "rongxing","type": 1,"url": "https://svip.rongxingvr.top/api/?key=bpWXKrAJUKm3puOCH4&url="},
{"name":"油果","type":1,"url":"http://json.youguo520.top/fufeng/?url=","ext":{"flag":["qiyi","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","bilibili","哔哩哔哩","哔哩","mgtv","芒果"],"header":{"User-Agent":"Dart/2.14 (dart:io)"}}},
{"name": "beiyan","type": 1,"url": "https://jx.beiyan.cc:4433/?url=","ext": {"flag": ["youku","优酷","mgtv","芒果","qq","腾讯","qiyi","爱奇艺","qq","奇艺"]}},
{"name": "冰豆解析","type": 0,"url": "https://bd.jx.cn/?url="}
],
"flags":["youku","qq","iqiyi","imgo","xueren","m1905","qiyi","letv","sohu","tudou","pptv","dbm3u8","mgtv","wasu","bilibili","le","duoduozy","renrenmi","xigua","优酷","西瓜","乐视","芒果","腾讯","爱奇艺","奇艺","ltnb","rx","CL4K","xfyun","wuduzy","哔哩哔哩","哔哩"],
"ijk":[
{"group":"硬解码","options":[
{"category":4,"name":"opensles","value":"0"},{"category":4,"name":"overlay-format","value":"842225234"},
{"category":4,"name":"framedrop","value":"1"},{"category":4,"name":"soundtouch","value":"1"},
{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-range-support","value":"0"},
{"category":1,"name":"fflags","value":"fastseek"},{"category":2,"name":"skip_loop_filter","value":"48"},
{"category":4,"name":"reconnect","value":"1"},{"category":4,"name":"enable-accurate-seek","value":"0"},
{"category":4,"name":"mediacodec","value":"1"},{"category":4,"name":"mediacodec-auto-rotate","value":"1"},
{"category":4,"name":"mediacodec-handle-resolution-change","value":"1"},{"category":4,"name":"mediacodec-hevc","value":"1"},
{"category":1,"name":"dns_cache_timeout","value":"600000000"}
]},
{"group":"软解码","options":[
{"category":4,"name":"opensles","value":"0"},{"category":4,"name":"overlay-format","value":"842225234"},
{"category":4,"name":"framedrop","value":"1"},{"category":4,"name":"soundtouch","value":"1"},
{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-range-support","value":"0"},
{"category":1,"name":"fflags","value":"fastseek"},{"category":2,"name":"skip_loop_filter","value":"48"},
{"category":4,"name":"reconnect","value":"1"},{"category":4,"name":"enable-accurate-seek","value":"0"},
{"category":4,"name":"mediacodec","value":"0"},{"category":4,"name":"mediacodec-auto-rotate","value":"0"},
{"category":4,"name":"mediacodec-handle-resolution-change","value":"0"},{"category":4,"name":"mediacodec-hevc","value":"0"},
{"category":1,"name":"dns_cache_timeout","value":"600000000"}
]}
],
//"wallpaper": "http://www.kf666888.cn/api/tvbox/img",
"wallpaper":"http://52bsj.vip:82/late",
"ads":["mimg.0c1q0l.cn","www.googletagmanager.com","www.google-analytics.com",
"mc.usihnbcq.cn","www.stappupgrade.vivo.com.cn","mg.g1mm3d.cn","www.otheve.beacon.qq.com",
"mscs.svaeuzh.cn","cnzz.hhttm.top","tp.vinuxhome.com","cnzz.mmstat.com","www.baihuillq.com","s23.cnzz.com",
"z3.cnzz.com","c.cnzz.com","stj.v1vo.top","z12.cnzz.com","img.mosflower.cn","tips.gamevvip.com","ehwe.yhdtns.com",
"xdn.cqqc3.com","www.jixunkyy.cn","sp.chemacid.cn","hm.baidu.com","s9.cnzz.com","z6.cnzz.com","um.cavuc.com",
"mav.mavuz.com","wofwk.aoidf3.com","z5.cnzz.com","xc.hubeijieshikj.cn","tj.tianwenhu.com","xg.gars57.cn",
"k.jinxiuzhilv.com","cdn.bootcss.com","ppl.xunzhuo123.com","xomk.jiangjunmh.top","img.xunzhuo123.com",
"z1.cnzz.com","s13.cnzz.com","xg.huataisangao.cn","z7.cnzz.com","xg.huataisangao.cn","z2.cnzz.com","s96.cnzz.com",
"q11.cnzz.com","thy.dacedsfa.cn","xg.whsbpw.cn","s19.cnzz.com","z8.cnzz.com","s4.cnzz.com","f5w.as12df.top","ae01.alicdn.com",
"www.92424.cn","k.wudejia.com","vivovip.mmszxc.top","qiu.xixiqiu.com","cdnjs.hnfenxun.com","cms.qdwght.com"
]}


code:
/*资源源于网络
方便学习交流自用
⛔仅供学习参考⛔
 ⛔不得违法与商业用途 ⛔
 ⛔不得违法与商业用途 ⛔
 ⛔不得违法与商业用途 ⛔
 请各位大佬手下留情 勿传播本测试接口 谢谢
 如有侵权请联系
会在第一时间删除谢谢
资源与内容禁止并谢绝未经本人许可下使用。
⛔恶意传播导致的违法行为,⛔
⛔任何损失或损害，需自行承担一切法律责任，⛔
⛔本人不负任何责任。⛔
⛔请慎重！慎重！慎重！⛔
所有资源与内容
随时都有可能删除
不良帅*/
{
  "sites": [
    {
      "key": "csp_LocalFile",
      "name": "💻本地视频┃仅供参考学习",
      "type": 3,
      "api": "csp_LocalFile",
      "searchable": 0,
      "quickSearch": 0,
      "filterable": 0,
      "type_flag": 0
    },
    {
      "key": "apv2_梦梦",
      "name": "✨帝落┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "csp_AppYsV2",
      "ext": "http://43.139.139.17:4433/api.php/app/"
    },
    {
      "key": "drpy_骚火电影",
      "name": "🔥骚火┃影视┃测试",
      "type": 3,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/骚火.js"
    },
    {
      "key": "drpy_Czsapp",
      "name": "🏭厂长┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/厂长.js"
    },
    {
      "key": "XYQH_在线之家",
      "name": "🏜在线┃之家┃测试",
      "type": 3,
      "api": "csp_XYQHiker",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHiker/在线之家.json"
    },
    {
      "key": "drpy_蚂蚁",
      "name": "🔥青蛙┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/蚂蚁.js"
    },
    {
      "key": "csp_揪揪",
      "name": "✨揪揪┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://tvbox.top/qq.php",
      "playUrl": ""
    },
    {
      "key": "csp_简影",
      "name": "✨简简┃影视┃测试",
      "type": 1,
      "api": "https://www.xy1080.net/api.php/provide/vod/from/jiguang"
    },
    {
      "key": "csp_双双",
      "name": "✨双双┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://cj.md214.cn/api.php/provide/vod/",
      "playUrl": ""
    },
    {
      "key": "csp_秋秋",
      "name": "✨秋秋┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://tvbox-1-g5221611.deta.app/vod/qq",
      "playUrl": "json:http://221.229.173.30:8808/jhjson/daoyongsiquanjia.php?url="
    },
    {
      "key": "csp_艺艺",
      "name": "✨艺艺┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://tvbox-1-g5221611.deta.app/vod/iqiyi",
      "playUrl": ""
    },
    {
      "key": "csp_搜搜",
      "name": "✨搜搜┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://tvbox-1-g5221611.deta.app/vod/sohu",
      "playUrl": " json:http://jx.realdou.cn/api/?cat_ext=ImZsYWciOiBbInFxIiwgIuiFvuiuryIsICJxaXlpIiwgIueIseWlh-iJuiIsICLlpYfoiboiLCAieW91a3UiLCAi5LyY6YW3IiwgIm1ndHYiLCAi6IqS5p6cIiwgImxldHYiLCAi5LmQ6KeGIiwgInBwdHYiLCAiUFBUViIsICJpbWdvIiwic29odSIsICJiaWxpYmlsaSIsICLpnZ7lh6EiLCAi5ZOU5ZOpIl0sImhlYWRlciI6eyJVc2VyLUFnZW50Ijoib2todHRwLzQuMS4wIn19fQ==&key=j4vwSEv2iAE54EWTbM&url="
    },
    {
      "key": "csp_360",
      "name": "✨卫卫┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://tvbox.top/360.php",
      "playUrl": ""
    },
    {
      "key": "drpy_乐猪",
      "name": "🐷乐猪┃影视┃测试",
      "type": 3,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "http://shuyuan.miaogongzi.net/shuyuan/1689201363.json"
    },
    {
      "key": "T4_玩偶哥哥",
      "name": "👽俊哥哥┃随缘┃测试",
      "type": 4,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/spider/csp_Wogg?sort=原画,蓝光,超清,高清&token=342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "T4_荐片",
      "name": "👽俊荐片┃随缘┃测试",
      "type": 4,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/spider/csp_JP"
    },
    {
      "key": "T4_哔站",
      "name": "👽俊哔站┃T4┃测试",
      "type": 4,
      "changeable": 1,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/spider/cli_Bili?sort=dash,mp4",
      "ext": {
        "type": "沙雕动漫#抖音热歌#经典无损音乐合集#索尼音乐中国#帕梅拉#太极拳#广场舞#演唱会"
      }
    },
    {
      "key": "美食健身",
      "name": "👽美食┃健身┃测试",
      "type": 4,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/spider/cli_Bili?sort=dash,mp4",
      "ext": {
        "type": "美食#健身#帕梅拉#太极拳#广场舞"
      }
    },
    {
      "key": "T4_音乐",
      "name": "👽音乐┃畅听┃测试",
      "type": 4,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/spider/cli_Bili?sort=dash,mp4",
      "ext": {
        "type": "抖音音乐#经典无损音乐合集#乡村音乐#索尼音乐中国#演唱会"
      }
    },
    {
      "key": "T4_推送",
      "name": "👽俊推送┃T4┃测试",
      "type": 4,
      "changeable": 1,
      "playerType": 2,
      "api": "http://home.jundie.top:9520/spider/csp_Push",
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "drpy_奇优影院",
      "name": "🎠奇优┃影院┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/奇优影院.js"
    },
    {
      "key": "drpy_零度",
      "name": "🏔零度┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/零度影视.js"
    },
    {
      "key": "drpy_freeOK",
      "name": "🆗OK┃影视┃测试",
      "type": 3,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/FreeOK.js"
    },
    {
      "key": "XYQH_农民",
      "name": "农民┃影视┃测试",
      "type": 3,
      "api": "csp_XYQHiker",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHiker/农民影视.json"
    },
    {
      "key": "csp_Kunyu77",
      "name": "🎰七七┃通用┃不得违法用途",
      "type": 3,
      "playerType": 2,
      "api": "csp_Kunyu77"
    },
    {
      "key": "drpy_哔哩影视",
      "name": "👨💻哔哩┃影视┃测试",
      "type": 3,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/哔哩影视.js"
    },
    {
      "key": "drpy_教育大全",
      "name": "👨💻教育┃大全┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/教育大全.js"
    },
    {
      "key": "drpy_blbl",
      "name": "👨💻哔哩┃小全┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/教育大全.js"
    },
    {
      "key": "drpy_直播转点播",
      "name": "📺电视┃直播┃测试",
      "type": 3,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/js/直播转点播.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/电视直播.json"
    },
    {
      "key": "直播转点播",
      "name": "📻电台┃之声┃测试",
      "type": 3,
      "changeable": 0,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/js/直播转点播.js",
      "ext": "http://shuyuan.miaogongzi.net/shuyuan/1688553723.json"
    },
    {
      "key": "drpy_南瓜",
      "name": "🍈南瓜┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/南瓜.js"
    },
    {
      "key": "drpy_蘑菇",
      "name": "🍄蘑菇┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/蘑菇.js"
    },
    {
      "key": "cjzy_猫咪",
      "name": "🌀猫咪┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://zy.xiaomaomi.cc/api.php/provide/vod/?ac=list",
      "playUrl": "",
      "categories": [
        "国产剧",
        "动漫",
        "香港剧",
        "韩国剧",
        "欧美剧",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片",
        "记录片",
        "台湾剧",
        "日本剧",
        "海外剧",
        "泰国剧",
        "大陆综",
        "艺港台综艺",
        "日韩综艺",
        "欧美综艺",
        "日韩动漫",
        "欧美动漫",
        "港台动漫",
        "海外动漫",
        "电影解说",
        "体育",
        "足球",
        "篮球",
        "网球",
        "斯诺克",
        "预告片",
        "短剧"
      ]
    },
    {
      "key": "cjzy_天堂",
      "name": "🌀天堂┃影视┃测试",
      "type": 1,
      "playerType": 2,
      "api": "http://vipmv.cc/api.php/provide/vod/?ac=list",
      "playUrl": "",
      "categories": [
        "国产剧",
        "国产动漫",
        "香港剧",
        "韩国剧",
        "欧美剧",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片",
        "记录片",
        "台湾剧",
        "日本剧",
        "海外剧",
        "泰国剧",
        "大陆综",
        "艺港台综艺",
        "日韩综艺",
        "欧美综艺",
        "日韩动漫",
        "欧美动漫",
        "港台动漫",
        "海外动漫",
        "电影解说",
        "体育",
        "足球",
        "篮球",
        "网球",
        "斯诺克",
        "预告片",
        "短剧"
      ]
    },
    {
      "key": "cjzy_暴风",
      "name": "🌀暴风┃影视┃测试",
      "type": 1,
      "api": "https://bfzyapi.com/api.php/provide/vod/?ac=list",
      "playUrl": "",
      "categories": [
        "国产剧",
        "国产动漫",
        "香港剧",
        "韩国剧",
        "欧美剧",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片",
        "记录片",
        "台湾剧",
        "日本剧",
        "海外剧",
        "泰国剧",
        "大陆综",
        "艺港台综艺",
        "日韩综艺",
        "欧美综艺",
        "日韩动漫",
        "欧美动漫",
        "港台动漫",
        "海外动漫",
        "电影解说",
        "体育",
        "足球",
        "篮球",
        "网球",
        "斯诺克",
        "预告片",
        "短剧"
      ]
    },
    {
      "key": "cjzy_量子",
      "name": "🌀量子┃影视┃测试",
      "type": 0,
      "api": "https://cj.lziapi.com/api.php/provide/vod/from/lzm3u8/?ac=list",
      "playUrl": "",
      "categories": [
        "国产剧",
        "国产动漫",
        "香港剧",
        "韩国剧",
        "欧美剧",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片",
        "记录片",
        "台湾剧",
        "日本剧",
        "海外剧",
        "泰国剧",
        "大陆综",
        "艺港台综艺",
        "日韩综艺",
        "欧美综艺",
        "日韩动漫",
        "欧美动漫",
        "港台动漫",
        "海外动漫",
        "电影解说",
        "体育",
        "足球",
        "篮球",
        "网球",
        "斯诺克",
        "预告片",
        "短剧"
      ]
    },
    {
      "key": "cjzy_非凡",
      "name": "🌀非凡┃影视┃测试",
      "type": "1",
      "playerType": 2,
      "api": "http://cj.ffzyapi.com/api.php/provide/vod/?ac=list",
      "searchable": "1",
      "playUrl": "",
      "categories": [
        "国产动漫",
        "日韩动漫",
        "国产剧",
        "韩国剧",
        "日本剧",
        "电影片",
        "连续剧",
        "综艺片",
        "动漫片",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片",
        "香港剧",
        "欧美剧",
        "记录片",
        "台湾剧",
        "海外剧",
        "泰国剧",
        "大陆综艺",
        "港台综艺",
        "日韩综艺",
        "欧美综艺",
        "欧美动漫",
        "港台动漫",
        "海外动漫"
      ]
    },
    {
      "key": "drpy_365",
      "name": "🌎365┃仅供学习参考┃测试",
      "type": 3,
      "changeable": 1,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/菜狗.js"
    },
    {
      "key": "drpy_搜狗",
      "name": "🌎菜狗┃仅供学习参考┃测试",
      "type": 3,
      "changeable": 1,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/菜狗.js"
    },
    {
      "key": "apv2_yy365",
      "name": "📮年年┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "http://guan.yy365.vip/api.php/app/"
    },
    {
      "key": "apv2_瑞风",
      "name": "📮瑞风┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "http://www.miniku.cc/xgapp.php/v2/"
    },
    {
      "key": "apv2_奇奇",
      "name": "📮奇奇┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "https://www.gsjtlxy.top/xgapp.php/v3/"
    },
    {
      "key": "apv2_路路",
      "name": "📮路路┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "https://www.kuin.one/api.php/app/"
    },
    {
      "key": "apv2_秒看",
      "name": "📮秒看┃影视┃测试",
      "type": 3,
      "api": "http://mkzy.vip/api.php/provide/vod/at/json",
      "categories": [
        "电影",
        "电视剧",
        "综艺",
        "动漫"
      ]
    },
    {
      "key": "apv2_玉米",
      "name": "📮玉米┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "https://tv.iptv.ski/api.php/app/",
      "categories": [
        "电影",
        "电视剧",
        "综艺",
        "动漫"
      ]
    },
    {
      "key": "apv2_迷你库",
      "name": "📮迷库┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "http://www.miniku.cc/xgapp.php/v2/"
    },
    {
      "key": "drpy_ddys",
      "name": " 🛃低端┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/ddys.js"
    },
    {
      "key": "drpy_哔嘀",
      "name": "📯哔嘀┃影视┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 2,
      "api": "csp_Bdys"
    },
    {
      "key": "zycj_天天",
      "name": "📅天天┃影视┃测试",
      "type": 1,
      "api": "https://api.1080zyku.com/inc/apijson.php",
      "playUrl": "",
      "categories": [
        "国产剧",
        "国产动漫",
        "韩国剧",
        "欧美剧",
        "大陆综艺"
      ]
    },
    {
      "key": "Bili_聚合",
      "name": "🅱哔哩┃聚合┃Ultimate┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_Bili",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/BBUltimate.json"
    },
    {
      "key": "csp_学习乐园",
      "name": "👩🏫学习┃乐园┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_Bili",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/学习乐园.json"
    },
    {
      "key": "drpy_央视片库",
      "name": "📺央视┃PY需软件支持",
      "type": 3,
      "api": "py_cctv",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/py_cctv"
    },
    {
      "key": "apv2_A8",
      "name": "📮A8┃影视┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "api": "csp_AppYsV2",
      "ext": "https://aaa.a8ys.xyz/ruifenglb_api.php/v1.vod"
    },
    {
      "key": "drpy_爱迪影视",
      "name": "🆔爱迪┃影视┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 2,
      "api": "csp_AppYsV2",
      "ext": "https://aidiapp.xyz/xgapp.php/v3/"
    },
    {
      "key": "drpy_LIBVIO",
      "name": "🍩利奥┃影视┃测试",
      "type": 3,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/libvio.js"
    },
    {
      "key": "drpy_cokemv",
      "name": "🥤可乐┃影视┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/cokemv.js"
    },
    {
      "key": "apv2_速看100",
      "name": "🚤速看┃影视┃测试",
      "type": 3,
      "api": "csp_AppYsV2",
      "ext": "https://sk100.tv/api.php/app/"
    },
    {
      "key": "drpy_A8音乐",
      "name": "🎵A8┃MV┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "http://shuyuan.miaogongzi.net/shuyuan/1687339319.json"
    },
    {
      "key": "drpy_DJ音乐",
      "name": "🎧DJ┃摇摆吧┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://notabug.org/qizhen15800/My9394/raw/master/js/DJ音乐.js"
    },
    {
      "key": "drpy__酷我MV",
      "name": "🎵酷我┃MV┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/酷奇MV.js"
    },
    {
      "key": "歌手_MV",
      "name": "🎵歌手┃MV┃测试",
      "type": 1,
      "changeable": 0,
      "searchable": 0,
      "api": "https://mv.wogg.link/mv/vod"
    },
    {
      "key": "drpy_喜马拉雅",
      "name": "🎧喜马┃拉雅┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/喜马拉雅.js"
    },
    {
      "key": "drpy_有声小说吧",
      "name": "🎧有声┃小说┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/有声小说吧.js"
    },
    {
      "key": "XYQHaL_玩偶哥哥",
      "name": "👽玩偶┃4K┃测试",
      "type": 3,
      "playerType": 1,
      "api": "csp_XYQHikerAL",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/玩偶哥哥.json"
    },
    {
      "key": "drpy_异果",
      "name": "🥝小爱┃解析┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/奇珍异兽.js"
    },
    {
      "key": "drpy_小腾",
      "name": "🐧小Q┃解析┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/腾云驾雾.js"
    },
    {
      "key": "drpy_U酷",
      "name": "🆒小酷┃解析┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/u酷.js"
    },
    {
      "key": "drpy_无果",
      "name": "🏝忙果┃解析┃测试",
      "type": 3,
      "playerType": 2,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/百忙无果.js"
    },
    {
      "key": "drpy_JianPian",
      "name": "🛅荐片┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "https://agit.ai/qi169/kankan/raw/branch/master/drpy2.min.js",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/js/荐片.js"
    },
    {
      "key": "Gitcafe",
      "name": "📃纸条┃搜索┃测试",
      "type": 3,
      "api": "csp_Gitcafe",
      "playerType": 1,
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "csp_Zhaozy",
      "name": "🔎找资源┃搜索┃测试",
      "type": 3,
      "api": "csp_Zhaozy",
      "playerType": 1,
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "csp_AliPS",
      "name": "🦊喵狸┃搜索┃测试",
      "type": 3,
      "api": "csp_AliPS",
      "playerType": 1,
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "csp_Yisou",
      "name": "🆎易搜┃搜索┃测试",
      "type": 3,
      "api": "csp_Yisou",
      "playerType": 1,
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "XYQHaL_云盘资源",
      "name": "🌫云盘┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHikerAL",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/云盘资源分享.json"
    },
    {
      "key": " XYQHaL_我的小站",
      "name": "🎪小站┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHikerAL",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/我的小站.json"
    },
    {
      "key": "XYQHaL_阿里云盘网",
      "name": "💾云盘┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHikerAL",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/阿里云盘网.json"
    },
    {
      "key": "XYQHaL_豆豆飞",
      "name": "💊豆豆┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHikerAL",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/豆豆飞.json"
    },
    {
      "key": "XYQHaL_土拨鼠搜索",
      "name": "🐭土鼠┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHiker",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/土拨鼠搜索.json"
    },
    {
      "key": "XYQHaL_DOVX搜索",
      "name": "🦝DOVX┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHiker",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/DOVX.json"
    },
    {
      "key": "XYQHaL_盘搜索",
      "name": "📀盘盘┃搜索┃测试",
      "type": 3,
      "api": "csp_XYQHiker",
      "playerType": 1,
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHaL/盘搜索.json"
    },
    {
      "key": "csp_荐片",
      "name": "🧲荐片┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 2,
      "api": "csp_JianPian"
    },
    {
      "key": "csp_Mp4Mov",
      "name": "🧲Mp4┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_Mp4Mov"
    },
    {
      "key": "csp_New6v",
      "name": "🧲6V┃慎用┃测试",
      "type": 3,
      "api": "csp_New6v",
      "changeable": 0,
      "searchable": 0,
      "ext": "https://www.66ss.org"
    },
    {
      "key": "csp_SeedHub",
      "name": "🧲SHub┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_SeedHub"
    },
    {
      "key": "csp_KubaCL",
      "name": "🧲酷吧┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_KubaCL"
    },
    {
      "key": "csp_MeijuTT",
      "name": "🧲天堂┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_MeijuTT"
    },
    {
      "key": "csp_MeijuMi",
      "name": "🧲剧迷┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_MeijuMi"
    },
    {
      "key": "csp_BLSGod",
      "name": "🧲80S┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_BLSGod"
    },
    {
      "key": "csp_Xunlei8",
      "name": "🧲迅雷┃慎用┃测试",
      "type": 3,
      "changeable": 0,
      "searchable": 0,
      "playerType": 1,
      "api": "csp_Xunlei8"
    },
    {
      "key": "t4_俊纸条",
      "name": "👽俊纸条┃随缘┃测试",
      "type": 4,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/spider/cli_gitCafe",
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "t4_俊聚搜",
      "name": "👽聚搜┃随缘┃测试",
      "type": 4,
      "playerType": 1,
      "api": "http://home.jundie.top:9520/ali/cli_Alii",
      "ext": "342a28053dd54cf2b0246c6b33c74013"
    },
    {
      "key": "XYQH_磁力搜",
      "name": "🏜磁力搜┃仅搜┃测试",
      "type": 3,
      "api": "csp_XYQHiker",
      "ext": "https://agit.ai/qi169/kankan/raw/branch/master/XYQHiker/磁力搜.json"
    },
    {
      "key": "随缘测试也随意删除",
      "name": "🛫测试┃不得商业用途",
      "type": 0,
      "api": "",
      "searchable": 0,
      "quickSearch": 0,
      "filterable": 0
    }
  ],
  "parses":[
{"name":"并发","type":2,"url":"Parallel"},
{"name":"Json聚合","type":3,"url":"Demo"},
{"name":"Web聚合","type":3,"url":"Web"},
{"name":"🌐左岸","type":0,"url":"https://jx.jsonplayer.com/player/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌐虾米","type":0,"url":"https://jx.xmflv.com/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌐777","type":0,"url":"https://jx.777jiexi.com/player/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌐bozrc","type":0,"url":"https://jx.bozrc.com:4433/player/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎弃弃","type": 1,"url": "http://jiexi.lyyytv.cn/json.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎汽汽","type": 1,"url": "https://vip.mosangkeji.com/api/?key=rRNvXAnOghBBLnC35c&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎去去","type": 1,"url": "https://jx.lvdoui.com/api/?key=2df2141f41357bb5fc696bf6d3f56f00&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎亿亿","type": 1,"url": "http://118.99.2.230:6688/api/?key=vAhZ67qzRdW2czQEo2&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎莫问","type": 1,"url": "http://27.124.4.42:4567//jhjson//ceshi.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎咪咪","type": 1,"url": "http://221.229.173.30:8808/jhjson/daoyongsiquanjia.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎嘻嘻","type": 1,"url": "http://118.99.2.230:6688/api/?key=vAhZ67qzRdW2czQEo2&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎洗洗","type": 1,"url": "http://jx.realdou.cn/api/?cat_ext=ImZsYWciOiBbInFxIiwgIuiFvuiuryIsICJxaXlpIiwgIueIseWlh-iJuiIsICLlpYfoiboiLCAieW91a3UiLCAi5LyY6YW3IiwgIm1ndHYiLCAi6IqS5p6cIiwgImxldHYiLCAi5LmQ6KeGIiwgInBwdHYiLCAiUFBUViIsICJpbWdvIiwic29odSIsICJiaWxpYmlsaSIsICLpnZ7lh6EiLCAi5ZOU5ZOpIl0sImhlYWRlciI6eyJVc2VyLUFnZW50Ijoib2todHRwLzQuMS4wIn19fQ==&key=j4vwSEv2iAE54EWTbM&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎喜喜","type": 1,"url": "http://jiexi.lyyytv.cn/json.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎囍囍","type": 1,"url": "https://gzoepji3.dayugslb.com/api/?key=15bi55E8q5NuQPTjH6&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎稀稀","type": 1,"url": "http://110.42.2.247:880/analysis/json/?uid=2255&my=eknpqvADFHOPR02458&format=json&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎施施","type": 1,"url": "http://110.42.2.247:880/analysis/json/?uid=2100&my=ehilmnqyCDGHILNUXZ&mgtv=app&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎夕夕","type": 1,"url": "http://110.42.2.247:880/analysis/json/?uid=2384&my=bcijquvxAFKMUY0579&format=json&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎西西","type": 1,"url": "http://110.42.2.247:880/analysis/json/?uid=2255&my=eimqrtwxBCDIKT2458&format=json&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌎肆肆","type": 1,"url": "http://110.42.2.247:880/analysis/json/?uid=2449&my=acfgikquvzFGJRW459&format=data&url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌐看看","type":0,"url":"https://jx.m3u8.pw/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}},
{"name":"🌐blbf","type":0,"url":"https://blbfq.f3322.net/player/analysis.php?v=","ext":{"flag":["qiyi","qq","letv","sohu","youku","mgtv","bilibili","wasu","xigua","1905"]}},
{"name":"🌐虾米dm","type":0,"url":"https://dm.xmflv.com:4433/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","leshi","LS","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/3.12.13"}}}
],
"flags": ["youku","qq","iqiyi","qiyi","letv","sohu","tudou","pptv","mgtv","wasu","bilibili"
],

"spider": "https://agit.ai/qi169/kankan/raw/branch/master/jar/custom_spider.jar;md5;6B478453A1A548337F9237B24DF8E2C4",

"wallpaper":"http://www.kf666888.cn/api/tvbox/img",
"rules": [{"host":"www.iesdouyin.com","rule":["playwm/?video_id="]},
{"host":"v.douyin.com","rule":["playwm/?video_id="]},
{"name":"暴风廣告","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY"]},
{"name":"磁力廣告","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]},
{"name":"星星","hosts":["aws.ulivetv.net"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:9,[\\s\\S]*?#EXT-X-DISCONTINUITY"]},
{"name":"量子廣告","hosts":["vip.lz","hd.lz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},
{"name":"非凡廣告","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},
{"name":"火山嗅探","hosts":["huoshan.com"],"regex":["item_id="]},
{"name":"抖音嗅探","hosts":["douyin.com"],"regex":["is_play_url="]}],
"doh": [
{"name": "腾讯","url": "https://doh.pub/dns-query"},
{"name": "阿里", "url": "https://dns.alidns.com/dns-query" },
{ "name": "360","url": "https://doh.360.cn/dns-query"},
{"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"]}],
  "lives": [{
	"name": "live",
	"type": 0,
	"url": "http://shuyuan.miaogongzi.net/shuyuan/1688845072.txt",
	"epg": "https://epg.112114.xyz/?ch={name}&date={date}",
	"logo": "https://epg.112114.xyz/logo/{name}.png",
	"ua": "okhttp/3.12.13"
}],
"ijk":[
{"group":"软解码","options":[{"category":4,"name":"opensles","value":"0"},{"category":1,"name":"fflags","value":"fastseek"},{"category":4,"name":"framedrop","value":"1"},
{"category":4,"name":"enable-accurate-seek","value":"0"},{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-range-support","value":"0"},
{"category":4,"name":"mediacodec-handle-resolution-change","value":"0"},{"category":2,"name":"skip_loop_filter","value":"48"},{"category":4,"name":"reconnect","value":"1"},
{"category":4,"name":"overlay-format","value":"842225234"},{"category":4,"name":"mediacodec","value":"0"},{"category":4,"name":"mediacodec-auto-rotate","value":"0"},
{"category":4,"name":"soundtouch","value":"1"},{"category":4,"name":"mediacodec-hevc","value":"0"},{"category":1,"name":"dns_cache_timeout","value":"600000000"}]},
{"group":"硬解码","options":[{"category":4,"name":"opensles","value":"0"},{"category":1,"name":"fflags","value":"fastseek"},{"category":4,"name":"framedrop","value":"1"},
{"category":4,"name":"enable-accurate-seek","value":"0"},{"category":4,"name":"start-on-prepared","value":"1"},{"category":1,"name":"http-detect-range-support","value":"0"},
{"category":4,"name":"mediacodec-handle-resolution-change","value":"1"},{"category":2,"name":"skip_loop_filter","value":"48"},{"category":4,"name":"reconnect","value":"1"},
{"category":4,"name":"overlay-format","value":"842225234"},{"category":4,"name":"mediacodec","value":"1"},{"category":4,"name":"mediacodec-auto-rotate","value":"1"},
{"category":4,"name":"soundtouch","value":"1"},{"category":4,"name":"mediacodec-hevc","value":"1"},{"category":1,"name":"dns_cache_timeout","value":"600000000"}]}
],
"ads": ["wan.51img1.com", "iqiyi.hbuioo.com", "vip.ffzyad.com",
"https://lf1-cdn-tos.bytegoofy.com/obj/tos-cn-i-dy/455ccf9e8ae744378118e4bd289288dd"
]
}


code:
# My9394

个人测试自用，调用接口请勿商用


code:
{//所有资源都是来自各互联网，用于个人测试显示器与电池学习使用。未涉及到商业盈利，如有侵权，请联系，会在第一时间删除 谢谢
	//不良帅整理
{
  "spider": "https://ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;fcdb43bf3c66db75008f5c8983895f39",
  "wallpaper": "http://www.kf666888.cn/api/tvbox/img",
  "lives": [
    {
      "name": "直播",
      "type": 0,
      "url": "http://home.jundie.top:81/Cat/tv/live.txt",
      "epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}"
    }
  ],
  "sites": [
    {
      "key": "AList",
      "name": "AList",
      "type": 3,
      "api": "csp_AList",
      "searchable": 1,
      "filterable": 1,
      "ext": "https://ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/alist.json"
    },
    {
      "key": "哔哩",
      "name": "哔哩",
      "type": 3,
      "api": "csp_Bili",
      "searchable": 1,
      "filterable": 1,
      "ext": "https://ghproxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/bili.json"
    },
    {
      "key": "泥巴",
      "name": "泥巴",
      "type": 3,
      "api": "csp_Nbys",
      "searchable": 1,
      "filterable": 1
    },
    {
      "key": "快播",
      "name": "快播",
      "type": 1,
      "api": "https://www.kuaibozy.com/api.php/provide/vod/",
      "searchable": 1,
      "filterable": 0,
      "categories": [
        "动漫",
        "国产剧",
        "日韩剧",
        "港台剧",
        "欧美剧",
        "泰剧",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片",
        "纪录片",
        "综艺"
      ]
    },
    {
      "key": "百度",
      "name": "百度",
      "type": 1,
      "api": "https://api.apibdzy.com/api.php/provide/vod/",
      "searchable": 1,
      "filterable": 0,
      "categories": [
        "国产动漫",
        "日韩动漫",
        "大陆剧",
        "欧美剧",
        "韩剧",
        "日剧",
        "动作片",
        "喜剧片",
        "爱情片",
        "科幻片",
        "恐怖片",
        "剧情片",
        "战争片"
      ]
    },
    {
      "key": "櫻花",
      "name": "櫻花",
      "type": 3,
      "api": "csp_Ying",
      "searchable": 1,
      "filterable": 1
    },
    {
      "key": "巴士",
      "name": "巴士",
      "type": 3,
      "api": "csp_Dm84",
      "searchable": 1,
      "filterable": 1
    },
    {
      "key": "異界",
      "name": "異界",
      "type": 3,
      "api": "csp_Ysj",
      "searchable": 1,
      "filterable": 1
    },
    {
      "key": "紙條",
      "name": "紙條",
      "type": 3,
      "api": "csp_Paper",
      "searchable": 1,
      "filterable": 1,
      "ext": "http://ali.xn--sss604efuw.ml/tok"
    },
    {
      "key": "易搜",
      "name": "易搜",
      "type": 3,
      "api": "csp_YiSo",
      "searchable": 1,
      "filterable": 0,
      "ext": "http://ali.xn--sss604efuw.ml/tok"
    },
    {
      "key": "盤搜",
      "name": "盤搜",
      "type": 3,
      "api": "csp_PanSou",
      "searchable": 1,
      "filterable": 0,
      "ext": "http://ali.xn--sss604efuw.ml/tok"
    },
    {
      "key": "push_agent",
      "name": "推送",
      "type": 3,
      "api": "csp_Push",
      "searchable": 1,
      "filterable": 0,
      "ext": "http://ali.xn--sss604efuw.ml/tok"
    }
  ]
}