更新源 202606130919
This commit is contained in:
+24
-24
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"spider": "./jar/spider.jar;md5;8599a715437d21e6660ad75f36967e70",
|
||||
"spider": "./jar/spider.jar;md5;8c879fe501ce509c5b2adacf037381c9",
|
||||
"lives": [
|
||||
{"name": "live","boot": false,"type": 0,"url": "./tv.txt","playerType": 2,"ua": "okhttp/3.8.1","timeout": 20,"epg": "https://epg.cdn.loc.cc/?ch={name}&date={date}","logo": "https://logo.wyfc.qzz.io/{name}.png"}
|
||||
],
|
||||
@@ -67,32 +67,32 @@
|
||||
{"key": "独播影视","name": "独播|影视","type": 3,"api": "csp_Duboku"},
|
||||
{"key": "厂长影视","name": "厂长|影视","type": 3,"api": "csp_Czsapp","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://cz01.vip"},
|
||||
{"key": "金牌影视","name": "金牌|影视","type": 3,"api": "csp_Jpys","ext": "https://y2s52n7.com,https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.sizhengxt.com,https://m.jiabaide.cn"},
|
||||
{"key": "修罗影视","name": "修罗|影视","api": "csp_Xlys","type": 3,"ext": "https://www.xlysw.ggff.net"},
|
||||
{"key": "瓜子影视","name": "瓜子|影视","type": 3,"api": "csp_Gz360"},
|
||||
{"key": "云播影视","name": "云播|影视","type": 3,"api": "csp_Tvyb"},
|
||||
{"key": "骚火影视","name": "骚火|影视","type": 3,"api": "csp_SaoHuo","ext": "https://shdy5.us"},
|
||||
{"key": "农民影视","name": "农民|影视","type": 3,"api": "csp_Wwys","ext": "https://vip.wwgz.cn:5200"},
|
||||
{"key": "爱看机器人","name": "爱看|影视","type": 3,"api": "csp_Ikanbot","searchable": 1,"quickSearch": 1,"filterable": 1},
|
||||
{"key": "小镇影视","name": "小镇|影视","type": 3,"api": "csp_XBPQ","ext": "./XBPQ/小镇影视.json"},
|
||||
{"key": "面包影视","name": "面包|影视","type": 3,"api": "csp_XBPQ","ext": "./XBPQ/面包影视.json"},
|
||||
{"key": "永乐影视","name": "永乐|影视","type": 3,"api": "csp_XBPQ","ext": "./XBPQ/永乐影视.json"},
|
||||
{"key": "剧圈影视","name": "剧圈|影视","type": 3,"api": "csp_XYQHiker","ext": "./XYQHiker/剧圈影视.json"},
|
||||
{"key": "小镇影视","name": "小镇|影视","type": 3,"api": "csp_XBPQ","ext": "./json/XZYS.json"},
|
||||
{"key": "面包影视","name": "面包|影视","type": 3,"api": "csp_XBPQ","ext": "./json/MBYS.json"},
|
||||
{"key": "永乐影视","name": "永乐|影视","type": 3,"api": "csp_XBPQ","ext": "./json/YLYS.json"},
|
||||
{"key": "剧圈影视","name": "剧圈|影视","type": 3,"api": "csp_XYQHiker","ext": "./json/JQYS.json"},
|
||||
{"key": "1905","name": "1905|影视","type": 3,"api": "csp_Web1905","searchable": 1,"quickSearch": 0,"filterable": 0},
|
||||
{"key": "哆啦新番社","name": "哆啦|新番社","type": 3,"api": "csp_XBPQ","style": {"type": "list"},"ext": "./XBPQ/哆啦新番社.json"},
|
||||
{"key": "Anime1","name": "A1|动漫","type": 3,"api": "./lib/drpy2.min.js","ext": "./js/Anime1.js"},
|
||||
{"key": "哆啦新番社","name": "哆啦|新番社","type": 3,"api": "csp_XBPQ","style": {"type": "list"},"ext": "./json/DLXFS.json"},
|
||||
{"key": "Anime1","name": "A1|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/Anime1.js"},
|
||||
{"key": "漫国动漫","name": "漫国丨动漫","type": 3,"searchable": 1,"api": "csp_AppSy","ext": {"site": "https://dm-1255775577.cos.ap-guangzhou.myqcloud.com/dmg/api.txt","siteKey": "rectangleadsadxa","listKey": "aassddwwxxllsx1x","parsesKey": "aassddwwxxllsx1x"}},
|
||||
{"key": "方舟动漫","name": "方舟丨动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://www.cyfz.top","dataKey": "e72cdfd629e8895d","dataIv": "e72cdfd629e8895d"}},
|
||||
{"key": "曼波动漫","name": "曼波|动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://app.omofun1.top","dataKey": "66dc309cbeeca454","dataIv": "66dc309cbeeca454"}},
|
||||
{"key": "咕咕动漫","name": "咕咕|动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://www.gugu3.com","dataKey": "nKfZ8KX6JTNWRzTD","dataIv": "nKfZ8KX6JTNWRzTD"}},
|
||||
{"key": "巴士动漫","name": "巴士|动漫","type": 3,"api": "csp_XYQHiker","ext": "./XYQHiker/巴士动漫.json"},
|
||||
{"key": "路漫漫","name": "路漫漫|动漫","type": 3,"api": "./lib/drpy2.min.js","ext": "./js/路漫漫.js"},
|
||||
{"key": "去看吧","name": "去看吧|动漫","type": 3,"api": "./lib/drpy2.min.js","ext": "./js/去看吧.js"},
|
||||
{"key": "巴士动漫","name": "巴士|动漫","type": 3,"api": "csp_XYQHiker","ext": "https://git.yylx.win/raw.githubusercontent.com/PizazzGY/NewTVBox/main/anime/json/bsdm.json"},
|
||||
{"key": "路漫漫","name": "路漫漫|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/LMM.js"},
|
||||
{"key": "去看吧","name": "去看吧|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/QKB.js"},
|
||||
{"key": "荐片","name": "荐片|磁力","api": "csp_JianPian","type": 3},
|
||||
{"key": "修罗","name": "修罗|磁力","api": "csp_Xlys","type": 3,"ext": "https://www.xlysw.ggff.net"},
|
||||
{"key": "七味","name": "七味|磁力","type": 3,"api": "csp_QnMp4","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://www.qwshow.com,https://www.qwmkv.com,https://www.qwfilm.com,https://www.qwfun.com,https://www.qnnull.com,https://www.qnnull.com"},
|
||||
{"key": "New6v","name": "New6V|磁力","type": 3,"api": "csp_New6v","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://www.xb6v.com"},
|
||||
{"key": "美剧迷","name": "美剧迷|磁力","type": 3,"api": "csp_MeijuMi","searchable": 1,"quickSearch": 1,"filterable": 1},
|
||||
{"key": "迅雷吧","name": "迅雷吧|磁力","type": 3,"api": "csp_Xunlei8","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://xunlei8.me"},
|
||||
{"key": "电影港","name": "电影港|磁力","type": 3,"api": "csp_XYQHiker","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./XYQHiker/电影港.json"},
|
||||
{"key": "电影港","name": "电影港|磁力","type": 3,"api": "csp_XYQHiker","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./json/DYG.json"},
|
||||
{"key": "阿里云盘","name": "阿里|云盘","type": 3,"api": "csp_PanAli","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "夸克网盘","name": "夸克|网盘","type": 3,"api": "csp_PanQuark","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "UC网盘","name": "UC|网盘","type": 3,"api": "csp_PanUC","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
@@ -117,18 +117,18 @@
|
||||
{"key": "世界听书","name": "世界|听书","type": 3,"api": "csp_TingShijie","style": {"type": "list"}},
|
||||
{"key": "戏曲多多","name": "戏曲|多多","type": 3,"api": "csp_AppLY","style": {"type": "list"}},
|
||||
{"key": "爱听音乐","name": "爱听|音乐","type": 3,"api": "./py/爱听音乐.py"},
|
||||
{"key": "网络直播","name": "网络|直播","type": 3,"api": "./py/网络直播.py"},
|
||||
{"key": "哔哩直播","name": "哔哩|直播","type": 3,"api": "./py/哔哩直播.py"},
|
||||
{"key": "哔哩合集","name": "哔哩|合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.433},"ext": {"json": "./json/哔哩合集.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"}},
|
||||
{"key": "哔哩哔哩演唱会","name": "哔哩|音乐","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩演唱会.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩听书","name": "哔哩|听书","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩听书.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩相声","name": "哔哩|相声","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩相声.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩小品","name": "哔哩|小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩小品.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩戏曲","name": "哔哩|戏曲","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩戏曲.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "少儿教育","name": "少儿|教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/少儿教育.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "小学课堂","name": "小学|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/小学课堂.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "初中课堂","name": "初中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/初中课堂.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "高中课堂","name": "高中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/高中课堂.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "网络直播","name": "网络|直播","type": 3,"api": "./py/WLZB.py"},
|
||||
{"key": "哔哩直播","name": "哔哩|直播","type": 3,"api": "./py/BLZB.py"},
|
||||
{"key": "哔哩合集","name": "哔哩|合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.433},"ext": {"json": "./json/BLHJ.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"}},
|
||||
{"key": "哔哩哔哩演唱会","name": "哔哩|音乐","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLYCH.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩听书","name": "哔哩|听书","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLTS.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩相声","name": "哔哩|相声","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXS.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩小品","name": "哔哩|小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXP.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩戏曲","name": "哔哩|戏曲","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXQ.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "少儿教育","name": "少儿|教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/SEJY.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "小学课堂","name": "小学|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/XXKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "初中课堂","name": "初中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/CZKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "高中课堂","name": "高中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/GZKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "急救教学","name": "急救|教学","type": 3,"api": "csp_FirstAid","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 3.8},"gridview": "0-0-4.1"},
|
||||
{"key": "养生堂","name": "养生|知识","type": 3,"api": "csp_YST","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "电影天堂","name": "影视 | 电影天堂","type": 1,"api": "http://caiji.dyttzyapi.com/api.php/provide/vod","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"playerType": 2},
|
||||
|
||||
Binary file not shown.
+1
-169
@@ -1,169 +1 @@
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 3个set-Cookie
|
||||
|
||||
var rule = {
|
||||
title:'Anime1动畫',
|
||||
host:'https://anime1.me',
|
||||
url: '/fyclass',
|
||||
detailUrl:'/?cat=fyid',
|
||||
searchUrl: '/page/fypage?s=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{'User-Agent': 'PC_UA'},
|
||||
timeout:5000,
|
||||
class_name:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&更早',
|
||||
class_url:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&2017',
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
var apiurl = 'https://v.anime1.me/api';
|
||||
var html = request(apiurl, {
|
||||
headers: {
|
||||
'Referer': HOST,
|
||||
},
|
||||
body: 'd=' + input,
|
||||
method: 'POST',
|
||||
withHeaders: true
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
print(json);
|
||||
log(Object.keys(json));
|
||||
let setCk = Object.keys(json).filter(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
// 3个set-Cookie
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(';');
|
||||
}
|
||||
cookie = cookie.split(';').filter(function(it) {
|
||||
return ['e', 'p', 'h'].includes(it.split('=')[0])
|
||||
}).join(';');
|
||||
log(cookie);
|
||||
var purl = JSON.parse(json.body).s[0].src;
|
||||
if (purl.startsWith('/')) {
|
||||
purl = 'https:' + purl
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'referer': HOST,
|
||||
'Cookie': cookie,
|
||||
'user-agent': PC_UA
|
||||
}),
|
||||
}
|
||||
`,
|
||||
limit:6,
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[2].includes('連載中');
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
if (MY_CATE === '連載中') return x[2].includes(MY_CATE);
|
||||
else if (MY_CATE === '2017') return x[3] <= MY_CATE;
|
||||
else return x[3] == MY_CATE;
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
pdfh = jsp.pdfh; pdfa = jsp.pdfa; pd = jsp.pd;
|
||||
var html = request(input);
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var vid = input.split('=')[1];
|
||||
let playKeys = Object.values(list).find(function(x) {
|
||||
return x[0] === parseInt(vid);
|
||||
});
|
||||
VOD = {
|
||||
vod_pic: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
vod_id: playKeys[0],
|
||||
vod_name: playKeys[1],
|
||||
vod_content: playKeys[2],
|
||||
vod_year: playKeys[3],
|
||||
type_name: playKeys[4],
|
||||
vod_actor: playKeys[5],
|
||||
};
|
||||
var pageurl = pd(html, '.cat-links&&a&&href');
|
||||
var pagenum = 1;
|
||||
let vod_tab_list = [];
|
||||
let vlist = [];
|
||||
for (let p = 1; p < parseInt(pagenum) + 1; p++) {
|
||||
let phtml = request(pageurl + '/page/' + pagenum);
|
||||
let new_vod_list = [];
|
||||
let vodList = [];
|
||||
vodList = pdfa(phtml, '.site-main&&article');
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
let ptitle = pdfh(it, '.entry-title&&Text').replace(/\\[(.*)\\]/, '$1');
|
||||
let purl = pd(it, '.video-js&&data-apireq');
|
||||
new_vod_list.push(ptitle + '$' + purl);
|
||||
}
|
||||
vlist = vlist.concat(new_vod_list);
|
||||
try {
|
||||
pagenum = pd(phtml, '.nav-previous&&a&&href').split('/page/')[1];
|
||||
} catch(e) {}
|
||||
}
|
||||
let vlist2 = vlist.reverse().join("#");
|
||||
vod_tab_list.push(vlist2);
|
||||
VOD.vod_play_from = '在线播放';
|
||||
VOD.vod_play_url = vod_tab_list.join("$$$");
|
||||
`,
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var wd = input.split('=')[1];
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[1].includes(wd);
|
||||
});
|
||||
log(playKeys);
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
Ly8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8gM+S4qnNldC1Db29raWUKCnZhciBydWxlID0gewoJdGl0bGU6J0FuaW1lMeWKqOeVqycsCglob3N0OidodHRwczovL2FuaW1lMS5tZScsCgl1cmw6ICcvZnljbGFzcycsCglkZXRhaWxVcmw6Jy8/Y2F0PWZ5aWQnLAoJc2VhcmNoVXJsOiAnL3BhZ2UvZnlwYWdlP3M9KionLAoJc2VhcmNoYWJsZToyLAoJcXVpY2tTZWFyY2g6MCwKCWhlYWRlcnM6eydVc2VyLUFnZW50JzogJ1BDX1VBJ30sCgl0aW1lb3V0OjUwMDAsCiAgICBjbGFzc19uYW1lOifpgKPovInkuK0mMjAyNSYyMDI0JjIwMjMmMjAyMiYyMDIxJjIwMjAmMjAxOSYyMDE4JuabtOaXqScsCiAgICBjbGFzc191cmw6J+mAo+i8ieS4rSYyMDI1JjIwMjQmMjAyMyYyMDIyJjIwMjEmMjAyMCYyMDE5JjIwMTgmMjAxNycsCglwbGF5X3BhcnNlOnRydWUsCglsYXp5OmBqczoKCQl2YXIgYXBpdXJsID0gJ2h0dHBzOi8vdi5hbmltZTEubWUvYXBpJzsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoYXBpdXJsLCB7CgkJCWhlYWRlcnM6IHsKCQkJCSdSZWZlcmVyJzogSE9TVCwKCQkJfSwKCQkJYm9keTogJ2Q9JyArIGlucHV0LAoJCQltZXRob2Q6ICdQT1NUJywKCQkJd2l0aEhlYWRlcnM6IHRydWUKCQl9KTsKCQlsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CgkJcHJpbnQoanNvbik7CgkJbG9nKE9iamVjdC5rZXlzKGpzb24pKTsKCQlsZXQgc2V0Q2sgPSBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoaXQgPT4gaXQudG9Mb3dlckNhc2UoKSA9PT0gInNldC1jb29raWUiKTsKCQlsZXQgY29va2llID0gc2V0Q2sgPyBqc29uW3NldENrXSA6ICIiOwoJCS8vIDPkuKpzZXQtQ29va2llCgkJaWYgKEFycmF5LmlzQXJyYXkoY29va2llKSkgewoJCQljb29raWUgPSBjb29raWUuam9pbignOycpOwoJCX0KCQljb29raWUgPSBjb29raWUuc3BsaXQoJzsnKS5maWx0ZXIoZnVuY3Rpb24oaXQpIHsKCQkJcmV0dXJuIFsnZScsICdwJywgJ2gnXS5pbmNsdWRlcyhpdC5zcGxpdCgnPScpWzBdKQoJCX0pLmpvaW4oJzsnKTsKCQlsb2coY29va2llKTsKCQl2YXIgcHVybCA9IEpTT04ucGFyc2UoanNvbi5ib2R5KS5zWzBdLnNyYzsKCQlpZiAocHVybC5zdGFydHNXaXRoKCcvJykpIHsKCQkJcHVybCA9ICdodHRwczonICsgcHVybAoJCX0KCQlpbnB1dCA9IHsKCQkJang6IDAsCgkJCXVybDogcHVybCwKCQkJcGFyc2U6IDAsCgkJCWhlYWRlcjogSlNPTi5zdHJpbmdpZnkoewoJCQkJJ3JlZmVyZXInOiBIT1NULAoJCQkJJ0Nvb2tpZSc6IGNvb2tpZSwKCQkJCSd1c2VyLWFnZW50JzogUENfVUEKCQkJfSksCgkJfQoJYCwKCWxpbWl0OjYsCgnmjqjojZA6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlyZXR1cm4geFsyXS5pbmNsdWRlcygn6YCj6LyJ5LitJyk7CgkJfSk7CgkJcGxheUtleXMuZm9yRWFjaChmdW5jdGlvbihpdCkgewoJCQlkLnB1c2goewoJCQkJdGl0bGU6IHN0cmlwSHRtbFRhZyhpdFsxXSksCgkJCQlpbWc6ICdodHRwczovL3N0YS5hbmljZG4uY29tL3BsYXllckltZy84LmpwZycsCgkJCQlkZXNjOiBpdFsyXSwKCQkJCXVybDogaXRbMF0sCgkJCX0pOwoJCX0pOwoJCXNldFJlc3VsdChkKTsKCWAsCgnkuIDnuqc6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlpZiAoTVlfQ0FURSA9PT0gJ+mAo+i8ieS4rScpIHJldHVybiB4WzJdLmluY2x1ZGVzKE1ZX0NBVEUpOwoJCQllbHNlIGlmIChNWV9DQVRFID09PSAnMjAxNycpIHJldHVybiB4WzNdIDw9IE1ZX0NBVEU7CgkJCWVsc2UgcmV0dXJuIHhbM10gPT0gTVlfQ0FURTsKCQl9KTsKCQlwbGF5S2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGl0KSB7CgkJCWQucHVzaCh7CgkJCQl0aXRsZTogc3RyaXBIdG1sVGFnKGl0WzFdKSwKCQkJCWltZzogJ2h0dHBzOi8vc3RhLmFuaWNkbi5jb20vcGxheWVySW1nLzguanBnJywKCQkJCWRlc2M6IGl0WzJdLAoJCQkJdXJsOiBpdFswXSwKCQkJfSk7CgkJfSk7CgkJc2V0UmVzdWx0KGQpOwoJYCwKCeS6jOe6pzogYGpzOgoJCXBkZmggPSBqc3AucGRmaDsgcGRmYSA9IGpzcC5wZGZhOyBwZCA9IGpzcC5wZDsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoaW5wdXQpOwoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJdmFyIHZpZCA9IGlucHV0LnNwbGl0KCc9JylbMV07CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maW5kKGZ1bmN0aW9uKHgpIHsKCQkJcmV0dXJuIHhbMF0gPT09IHBhcnNlSW50KHZpZCk7CgkJfSk7CgkJVk9EID0gewoJCQl2b2RfcGljOiAnaHR0cHM6Ly9zdGEuYW5pY2RuLmNvbS9wbGF5ZXJJbWcvOC5qcGcnLAoJCQl2b2RfaWQ6IHBsYXlLZXlzWzBdLAoJCQl2b2RfbmFtZTogcGxheUtleXNbMV0sCgkJCXZvZF9jb250ZW50OiBwbGF5S2V5c1syXSwKCQkJdm9kX3llYXI6IHBsYXlLZXlzWzNdLAoJCQl0eXBlX25hbWU6IHBsYXlLZXlzWzRdLAoJCQl2b2RfYWN0b3I6IHBsYXlLZXlzWzVdLAoJCX07CgkJdmFyIHBhZ2V1cmwgPSBwZChodG1sLCAnLmNhdC1saW5rcyYmYSYmaHJlZicpOwoJCXZhciBwYWdlbnVtID0gMTsKCQlsZXQgdm9kX3RhYl9saXN0ID0gW107CgkJbGV0IHZsaXN0ID0gW107CgkJZm9yIChsZXQgcCA9IDE7IHAgPCBwYXJzZUludChwYWdlbnVtKSArIDE7IHArKykgewoJCQlsZXQgcGh0bWwgPSByZXF1ZXN0KHBhZ2V1cmwgKyAnL3BhZ2UvJyArIHBhZ2VudW0pOwoJCQlsZXQgbmV3X3ZvZF9saXN0ID0gW107CgkJCWxldCB2b2RMaXN0ID0gW107CgkJCXZvZExpc3QgPSBwZGZhKHBodG1sLCAnLnNpdGUtbWFpbiYmYXJ0aWNsZScpOwoJCQlmb3IgKGxldCBpID0gMDsgaSA8IHZvZExpc3QubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBpdCA9IHZvZExpc3RbaV07CgkJCQlsZXQgcHRpdGxlID0gcGRmaChpdCwgJy5lbnRyeS10aXRsZSYmVGV4dCcpLnJlcGxhY2UoL1xcWyguKilcXF0vLCAnJDEnKTsKCQkJCWxldCBwdXJsID0gcGQoaXQsICcudmlkZW8tanMmJmRhdGEtYXBpcmVxJyk7CgkJCQluZXdfdm9kX2xpc3QucHVzaChwdGl0bGUgKyAnJCcgKyBwdXJsKTsKCQkJfQoJCQl2bGlzdCA9IHZsaXN0LmNvbmNhdChuZXdfdm9kX2xpc3QpOwoJCQl0cnkgewoJCQkJcGFnZW51bSA9IHBkKHBodG1sLCAnLm5hdi1wcmV2aW91cyYmYSYmaHJlZicpLnNwbGl0KCcvcGFnZS8nKVsxXTsKCQkJfSBjYXRjaChlKSB7fQoJCX0KCQlsZXQgdmxpc3QyID0gdmxpc3QucmV2ZXJzZSgpLmpvaW4oIiMiKTsKCQl2b2RfdGFiX2xpc3QucHVzaCh2bGlzdDIpOwoJCVZPRC52b2RfcGxheV9mcm9tID0gJ+mBk+mVv+WcqOe6vyc7CgkJVk9ELnZvZF9wbGF5X3VybCA9IHZvZF90YWJfbGlzdC5qb2luKCIkJCQiKTsKCWAsCgnmkJzntKI6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJdmFyIHdkID0gaW5wdXQuc3BsaXQoJz0nKVsxXTsKCQlsZXQgcGxheUtleXMgPSBPYmplY3QudmFsdWVzKGxpc3QpLmZpbHRlcihmdW5jdGlvbih4KSB7CgkJCXJldHVybiB4WzFdLmluY2x1ZGVzKHdkKTsKCQl9KTsKCQlsb2cocGxheUtleXMpOwoJCXBsYXlLZXlzLmZvckVhY2goZnVuY3Rpb24oaXQpIHsKCQkJZC5wdXNoKHsKCQkJCXRpdGxlOiBzdHJpcEh0bWxUYWcoaXRbMV0pLAoJCQkJaW1nOiAnaHR0cHM6Ly9zdGEuYW5pY2RuLmNvbS9wbGF5ZXJJbWcvOC5qcGcnLAoJCQkJZGVzYzogaXRbMl0sCgkJCQl1cmw6IGl0WzBdLAoJCQl9KTsKCQl9KTsKCQlzZXRSZXN1bHQoZCk7CglgLAp9
|
||||
@@ -0,0 +1,567 @@
|
||||
var rule = {
|
||||
title: "路漫漫",
|
||||
host: "https://www.lmm50.com",
|
||||
url: "/vod/show/id/fyclassfyfilter.html",
|
||||
searchUrl: '/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"3": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"4": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"5": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"6": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"7": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"8": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_url: "{{fl.排序}}{{fl.年代}}/page/fypage",
|
||||
filter_def: "",
|
||||
headers: {
|
||||
"User-Agent": "MOBILE_UA"
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: "日本动漫&国产动漫&欧美动漫&日本动画电影&国产动画电影&欧美动画电影",
|
||||
class_url: "6&7&8&3&4&5",
|
||||
class_parse: "",
|
||||
cate_exclude: "",
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
function getDAesString(token) {
|
||||
eval(getCryptoJS());
|
||||
var key = CryptoJS.enc.Utf8.parse("ejjooopppqqqrwww");
|
||||
|
||||
var iv = CryptoJS.enc.Utf8.parse("1348987635684651");
|
||||
|
||||
var token = CryptoJS.AES.decrypt(token, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
|
||||
return token.toString(CryptoJS.enc.Utf8);
|
||||
}
|
||||
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
if (html.encrypt == "1") {
|
||||
url = unescape(url);
|
||||
} else if (html.encrypt == "2") {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\.mp4|\.m3u8|\.flv/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: url.split("&")[0],
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var jsh = request(HOST + "/static/player/" + from + ".js", {
|
||||
headers: {
|
||||
Referer: input
|
||||
},
|
||||
}).match(/\.src\s*=\s*(.*?);/)[1];
|
||||
//log(MY_HOME);
|
||||
if (/type=/.test(jsh)) {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
} else {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
|
||||
jsh = JSON.parse(
|
||||
fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
onlyHeaders: true
|
||||
})
|
||||
).url;
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var postapi = jsh.match(/^(.*?\/\/.*?\/.*?\/)/)[1];
|
||||
|
||||
var posturl = postapi + playht.match(/post\("(.*?)"/)[1];
|
||||
if (/act\s*=/.test(playht)) {
|
||||
var vid = playht.match(/vid\s*=\s*"(.*?)"/)[1];
|
||||
var t = playht.match(/var\s*t\s*=\s*"(.*?)"/)[1];
|
||||
var token = playht.match(/token\s*=\s*"(.*?)"/)[1];
|
||||
var act = playht.match(/act\s*=\s*"(.*?)"/)[1];
|
||||
var play = playht.match(/play\s*=\s*"(.*?)"/)[1];
|
||||
token = getDAesString(token);
|
||||
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: {
|
||||
vid: vid,
|
||||
t: t,
|
||||
token: token,
|
||||
act: act,
|
||||
play: play,
|
||||
},
|
||||
timeout: 5000
|
||||
})
|
||||
);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var key = "";
|
||||
|
||||
playht.match(/var (\w+)="(.*?)";/g).forEach(function(list) {
|
||||
key += list.match(/"(.*?)"/)[1];
|
||||
});
|
||||
const bodys = JSON.parse(
|
||||
playht
|
||||
.match(/post\(.*?,(.*?),\n/)[1]
|
||||
.replace(/"keyyy"\s*:\s*''.*?''/, '"keyyy" : "' + key + '"')
|
||||
);
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: bodys
|
||||
})
|
||||
);
|
||||
if (data.ext == "xgplayer") {
|
||||
var dataurl =
|
||||
"https://yun.366day.site/mp4hls/xgplayer.php?vid=" + data.url;
|
||||
var video = fetch(dataurl, {
|
||||
headers: {
|
||||
Referer: jsh
|
||||
}
|
||||
}).match(
|
||||
/"url": "(.*?)"/
|
||||
)[1];
|
||||
input = {
|
||||
parse: 0,
|
||||
url: video,
|
||||
js: ''
|
||||
};
|
||||
} else if (data.ext == "hls" || data.ext == "hls_list") {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: decodeURIComponent(data.url),
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".video-img-box;h6.title&&Text;.lazyload&&data-src;.label&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".page-title&&Text;.tag-link&&Text",
|
||||
img: ".module-item-pic&&.lazyload&&src",
|
||||
desc: ".video-info-items:eq(3)&&Text;.video-info-items:eq(2)&&Text;;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text",
|
||||
content: ".video-info-content&&Text",
|
||||
tabs: ".module-tab-item.tab-item",
|
||||
lists: ".module-player-list:eq(#id) a",
|
||||
tab_text: "body&&Text",
|
||||
list_text: "body&&Text",
|
||||
list_url: "a&&href"
|
||||
},
|
||||
detailUrl: "",
|
||||
搜索: "*"
|
||||
}
|
||||
@@ -0,0 +1,1142 @@
|
||||
muban.vfed.二级.title = 'h1&&Text;.fed-col-md3--span:eq(0)&&Text';
|
||||
muban.vfed.二级.desc = '.fed-col-md3:eq(3)&&Text;;;.fed-col-md6:eq(0)&&Text;.fed-col-md6--span:eq(1)&&Text';
|
||||
var rule = {
|
||||
title: '去看吧',
|
||||
模板: 'vfed',
|
||||
host: 'https://qkan8.com',
|
||||
// url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
url: '/index.php/vod/show/id/fyclassfyfilter.html',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '{{fl.area}}{{fl.by}}{{fl.class}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"33": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"21": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "/area/大陆"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "/area/泰国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "/area/新加坡"
|
||||
}, {
|
||||
"n": "马来西亚",
|
||||
"v": "/area/马来西亚"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "/area/印度"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "/area/加拿大"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "/area/西班牙"
|
||||
}, {
|
||||
"n": "俄罗斯",
|
||||
"v": "/area/俄罗斯"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "/area/其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"50": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "/area/大陆"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "/area/泰国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "/area/新加坡"
|
||||
}, {
|
||||
"n": "马来西亚",
|
||||
"v": "/area/马来西亚"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "/area/印度"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "/area/加拿大"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "/area/西班牙"
|
||||
}, {
|
||||
"n": "俄罗斯",
|
||||
"v": "/area/俄罗斯"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "/area/其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"24": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "/area/大陆"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "/area/泰国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "/area/新加坡"
|
||||
}, {
|
||||
"n": "马来西亚",
|
||||
"v": "/area/马来西亚"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "/area/印度"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "/area/加拿大"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "/area/西班牙"
|
||||
}, {
|
||||
"n": "俄罗斯",
|
||||
"v": "/area/俄罗斯"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "/area/其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"22": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "/area/欧美"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "/area/其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
class_parse: '.fed-pops-list:eq(0)&&li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"spider": "./jar/spider.jar;md5;8599a715437d21e6660ad75f36967e70",
|
||||
"spider": "./jar/spider.jar;md5;8c879fe501ce509c5b2adacf037381c9",
|
||||
"lives": [
|
||||
{"name": "migu","type": 0,"url": "https://develop202.github.io/migu_video/interface.txt","playerType": 1,"ua": "okhttp/3.8.1","timeout": 20,"epg": "https://epg.cdn.loc.cc/?ch={name}&date={date}","logo": "https://logo.wyfc.qzz.io/{name}.png"},
|
||||
{"name": "live","type": 0,"url": "https://epg.pw/test_channels.m3u","playerType": 1,"ua": "okhttp/3.8.1","timeout": 20,"epg": "https://epg.cdn.loc.cc/?ch={name}&date={date}","logo": "https://logo.wyfc.qzz.io/{name}.png"},
|
||||
@@ -68,32 +68,32 @@
|
||||
{"key": "独播影视","name": "独播|影视","type": 3,"api": "csp_Duboku"},
|
||||
{"key": "厂长影视","name": "厂长|影视","type": 3,"api": "csp_Czsapp","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://cz01.vip"},
|
||||
{"key": "金牌影视","name": "金牌|影视","type": 3,"api": "csp_Jpys","ext": "https://y2s52n7.com,https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.sizhengxt.com,https://m.jiabaide.cn"},
|
||||
{"key": "修罗影视","name": "修罗|影视","api": "csp_Xlys","type": 3,"ext": "https://www.xlysw.ggff.net"},
|
||||
{"key": "瓜子影视","name": "瓜子|影视","type": 3,"api": "csp_Gz360"},
|
||||
{"key": "云播影视","name": "云播|影视","type": 3,"api": "csp_Tvyb"},
|
||||
{"key": "骚火影视","name": "骚火|影视","type": 3,"api": "csp_SaoHuo","ext": "https://shdy5.us"},
|
||||
{"key": "农民影视","name": "农民|影视","type": 3,"api": "csp_Wwys","ext": "https://vip.wwgz.cn:5200"},
|
||||
{"key": "爱看机器人","name": "爱看|影视","type": 3,"api": "csp_Ikanbot","searchable": 1,"quickSearch": 1,"filterable": 1},
|
||||
{"key": "小镇影视","name": "小镇|影视","type": 3,"api": "csp_XBPQ","ext": "./XBPQ/小镇影视.json"},
|
||||
{"key": "面包影视","name": "面包|影视","type": 3,"api": "csp_XBPQ","ext": "./XBPQ/面包影视.json"},
|
||||
{"key": "永乐影视","name": "永乐|影视","type": 3,"api": "csp_XBPQ","ext": "./XBPQ/永乐影视.json"},
|
||||
{"key": "剧圈影视","name": "剧圈|影视","type": 3,"api": "csp_XYQHiker","ext": "./XYQHiker/剧圈影视.json"},
|
||||
{"key": "小镇影视","name": "小镇|影视","type": 3,"api": "csp_XBPQ","ext": "./json/XZYS.json"},
|
||||
{"key": "面包影视","name": "面包|影视","type": 3,"api": "csp_XBPQ","ext": "./json/MBYS.json"},
|
||||
{"key": "永乐影视","name": "永乐|影视","type": 3,"api": "csp_XBPQ","ext": "./json/YLYS.json"},
|
||||
{"key": "剧圈影视","name": "剧圈|影视","type": 3,"api": "csp_XYQHiker","ext": "./json/JQYS.json"},
|
||||
{"key": "1905","name": "1905|影视","type": 3,"api": "csp_Web1905","searchable": 1,"quickSearch": 0,"filterable": 0},
|
||||
{"key": "哆啦新番社","name": "哆啦|新番社","type": 3,"api": "csp_XBPQ","style": {"type": "list"},"ext": "./XBPQ/哆啦新番社.json"},
|
||||
{"key": "Anime1","name": "A1|动漫","type": 3,"api": "./lib/drpy2.min.js","ext": "./js/Anime1.js"},
|
||||
{"key": "哆啦新番社","name": "哆啦|新番社","type": 3,"api": "csp_XBPQ","style": {"type": "list"},"ext": "./json/DLXFS.json"},
|
||||
{"key": "Anime1","name": "A1|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/Anime1.js"},
|
||||
{"key": "漫国动漫","name": "漫国丨动漫","type": 3,"searchable": 1,"api": "csp_AppSy","ext": {"site": "https://dm-1255775577.cos.ap-guangzhou.myqcloud.com/dmg/api.txt","siteKey": "rectangleadsadxa","listKey": "aassddwwxxllsx1x","parsesKey": "aassddwwxxllsx1x"}},
|
||||
{"key": "方舟动漫","name": "方舟丨动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://www.cyfz.top","dataKey": "e72cdfd629e8895d","dataIv": "e72cdfd629e8895d"}},
|
||||
{"key": "曼波动漫","name": "曼波|动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://app.omofun1.top","dataKey": "66dc309cbeeca454","dataIv": "66dc309cbeeca454"}},
|
||||
{"key": "咕咕动漫","name": "咕咕|动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://www.gugu3.com","dataKey": "nKfZ8KX6JTNWRzTD","dataIv": "nKfZ8KX6JTNWRzTD"}},
|
||||
{"key": "巴士动漫","name": "巴士|动漫","type": 3,"api": "csp_XYQHiker","ext": "./XYQHiker/巴士动漫.json"},
|
||||
{"key": "路漫漫","name": "路漫漫|动漫","type": 3,"api": "./lib/drpy2.min.js","ext": "./js/路漫漫.js"},
|
||||
{"key": "去看吧","name": "去看吧|动漫","type": 3,"api": "./lib/drpy2.min.js","ext": "./js/去看吧.js"},
|
||||
{"key": "巴士动漫","name": "巴士|动漫","type": 3,"api": "csp_XYQHiker","ext": "https://git.yylx.win/raw.githubusercontent.com/PizazzGY/NewTVBox/main/anime/json/bsdm.json"},
|
||||
{"key": "路漫漫","name": "路漫漫|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/LMM.js"},
|
||||
{"key": "去看吧","name": "去看吧|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/QKB.js"},
|
||||
{"key": "荐片","name": "荐片|磁力","api": "csp_JianPian","type": 3},
|
||||
{"key": "修罗","name": "修罗|磁力","api": "csp_Xlys","type": 3,"ext": "https://www.xlysw.ggff.net"},
|
||||
{"key": "七味","name": "七味|磁力","type": 3,"api": "csp_QnMp4","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://www.qwshow.com,https://www.qwmkv.com,https://www.qwfilm.com,https://www.qwfun.com,https://www.qnnull.com,https://www.qnnull.com"},
|
||||
{"key": "New6v","name": "New6V|磁力","type": 3,"api": "csp_New6v","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://www.xb6v.com"},
|
||||
{"key": "美剧迷","name": "美剧迷|磁力","type": 3,"api": "csp_MeijuMi","searchable": 1,"quickSearch": 1,"filterable": 1},
|
||||
{"key": "迅雷吧","name": "迅雷吧|磁力","type": 3,"api": "csp_Xunlei8","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://xunlei8.me"},
|
||||
{"key": "电影港","name": "电影港|磁力","type": 3,"api": "csp_XYQHiker","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./XYQHiker/电影港.json"},
|
||||
{"key": "电影港","name": "电影港|磁力","type": 3,"api": "csp_XYQHiker","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./json/DYG.json"},
|
||||
{"key": "阿里云盘","name": "阿里|云盘","type": 3,"api": "csp_PanAli","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "夸克网盘","name": "夸克|网盘","type": 3,"api": "csp_PanQuark","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "UC网盘","name": "UC|网盘","type": 3,"api": "csp_PanUC","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
@@ -118,18 +118,18 @@
|
||||
{"key": "世界听书","name": "世界|听书","type": 3,"api": "csp_TingShijie","style": {"type": "list"}},
|
||||
{"key": "戏曲多多","name": "戏曲|多多","type": 3,"api": "csp_AppLY","style": {"type": "list"}},
|
||||
{"key": "爱听音乐","name": "爱听|音乐","type": 3,"api": "./py/爱听音乐.py"},
|
||||
{"key": "网络直播","name": "网络|直播","type": 3,"api": "./py/网络直播.py"},
|
||||
{"key": "哔哩直播","name": "哔哩|直播","type": 3,"api": "./py/哔哩直播.py"},
|
||||
{"key": "哔哩合集","name": "哔哩|合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.433},"ext": {"json": "./json/哔哩合集.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"}},
|
||||
{"key": "哔哩哔哩演唱会","name": "哔哩|音乐","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩演唱会.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩听书","name": "哔哩|听书","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩听书.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩相声","name": "哔哩|相声","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩相声.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩小品","name": "哔哩|小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩小品.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩戏曲","name": "哔哩|戏曲","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/哔哩哔哩戏曲.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "少儿教育","name": "少儿|教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/少儿教育.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "小学课堂","name": "小学|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/小学课堂.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "初中课堂","name": "初中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/初中课堂.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "高中课堂","name": "高中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/高中课堂.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "网络直播","name": "网络|直播","type": 3,"api": "./py/WLZB.py"},
|
||||
{"key": "哔哩直播","name": "哔哩|直播","type": 3,"api": "./py/BLZB.py"},
|
||||
{"key": "哔哩合集","name": "哔哩|合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.433},"ext": {"json": "./json/BLHJ.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"}},
|
||||
{"key": "哔哩哔哩演唱会","name": "哔哩|音乐","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLYCH.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩听书","name": "哔哩|听书","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLTS.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩相声","name": "哔哩|相声","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXS.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩小品","name": "哔哩|小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXP.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩戏曲","name": "哔哩|戏曲","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXQ.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "少儿教育","name": "少儿|教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/SEJY.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "小学课堂","name": "小学|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/XXKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "初中课堂","name": "初中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/CZKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "高中课堂","name": "高中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/GZKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "急救教学","name": "急救|教学","type": 3,"api": "csp_FirstAid","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 3.8},"gridview": "0-0-4.1"},
|
||||
{"key": "养生堂","name": "养生|知识","type": 3,"api": "csp_YST","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "电影天堂","name": "影视 | 电影天堂","type": 1,"api": "http://caiji.dyttzyapi.com/api.php/provide/vod","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"playerType": 2},
|
||||
|
||||
+314
@@ -0,0 +1,314 @@
|
||||
# coding=utf-8
|
||||
# !/usr/bin/python
|
||||
|
||||
"""
|
||||
|
||||
作者 丢丢喵 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容
|
||||
====================Diudiumiao====================
|
||||
|
||||
"""
|
||||
|
||||
from Crypto.Util.Padding import unpad
|
||||
from Crypto.Util.Padding import pad
|
||||
from urllib.parse import unquote
|
||||
from Crypto.Cipher import ARC4
|
||||
from urllib.parse import quote
|
||||
from base.spider import Spider
|
||||
from Crypto.Cipher import AES
|
||||
from datetime import datetime
|
||||
from bs4 import BeautifulSoup
|
||||
from base64 import b64decode
|
||||
import urllib.request
|
||||
import urllib.parse
|
||||
import datetime
|
||||
import binascii
|
||||
import requests
|
||||
import base64
|
||||
import json
|
||||
import time
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
|
||||
sys.path.append('..')
|
||||
|
||||
xurl = "https://search.bilibili.com"
|
||||
|
||||
xurl1 = "https://api.live.bilibili.com"
|
||||
|
||||
headerx = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0'
|
||||
}
|
||||
|
||||
class Spider(Spider):
|
||||
global xurl
|
||||
global xurl1
|
||||
global headerx
|
||||
|
||||
def getName(self):
|
||||
return "首页"
|
||||
|
||||
def init(self, extend):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def extract_middle_text(self, text, start_str, end_str, pl, start_index1: str = '', end_index2: str = ''):
|
||||
if pl == 3:
|
||||
plx = []
|
||||
while True:
|
||||
start_index = text.find(start_str)
|
||||
if start_index == -1:
|
||||
break
|
||||
end_index = text.find(end_str, start_index + len(start_str))
|
||||
if end_index == -1:
|
||||
break
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
plx.append(middle_text)
|
||||
text = text.replace(start_str + middle_text + end_str, '')
|
||||
if len(plx) > 0:
|
||||
purl = ''
|
||||
for i in range(len(plx)):
|
||||
matches = re.findall(start_index1, plx[i])
|
||||
output = ""
|
||||
for match in matches:
|
||||
match3 = re.search(r'(?:^|[^0-9])(\d+)(?:[^0-9]|$)', match[1])
|
||||
if match3:
|
||||
number = match3.group(1)
|
||||
else:
|
||||
number = 0
|
||||
if 'http' not in match[0]:
|
||||
output += f"#{match[1]}${number}{xurl}{match[0]}"
|
||||
else:
|
||||
output += f"#{match[1]}${number}{match[0]}"
|
||||
output = output[1:]
|
||||
purl = purl + output + "$$$"
|
||||
purl = purl[:-3]
|
||||
return purl
|
||||
else:
|
||||
return ""
|
||||
else:
|
||||
start_index = text.find(start_str)
|
||||
if start_index == -1:
|
||||
return ""
|
||||
end_index = text.find(end_str, start_index + len(start_str))
|
||||
if end_index == -1:
|
||||
return ""
|
||||
|
||||
if pl == 0:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
return middle_text.replace("\\", "")
|
||||
|
||||
if pl == 1:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
matches = re.findall(start_index1, middle_text)
|
||||
if matches:
|
||||
jg = ' '.join(matches)
|
||||
return jg
|
||||
|
||||
if pl == 2:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
matches = re.findall(start_index1, middle_text)
|
||||
if matches:
|
||||
new_list = [f'{item}' for item in matches]
|
||||
jg = '$$$'.join(new_list)
|
||||
return jg
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
result = {"class": [{"type_id": "舞", "type_name": "舞蹈"},
|
||||
{"type_id": "音乐", "type_name": "音乐"},
|
||||
{"type_id": "手游", "type_name": "手游"},
|
||||
{"type_id": "网游", "type_name": "网游"},
|
||||
{"type_id": "单机游戏", "type_name": "单机游戏"},
|
||||
{"type_id": "虚拟主播", "type_name": "虚拟主播"},
|
||||
{"type_id": "电台", "type_name": "电台"},
|
||||
{"type_id": "体育", "type_name": "体育"},
|
||||
{"type_id": "聊天", "type_name": "聊天"},
|
||||
{"type_id": "娱乐", "type_name": "娱乐"},
|
||||
{"type_id": "电影", "type_name": "影视"},
|
||||
{"type_id": "新闻", "type_name": "新闻"}]
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
pass
|
||||
|
||||
def categoryContent(self, cid, pg, filter, ext):
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
if pg:
|
||||
page = int(pg)
|
||||
else:
|
||||
page = 1
|
||||
|
||||
url = f'{xurl}/live?keyword={cid}&page={str(page)}'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
res = detail.text
|
||||
doc = BeautifulSoup(res, "lxml")
|
||||
|
||||
soups = doc.find_all('div', class_="video-list-item")
|
||||
|
||||
for vod in soups:
|
||||
|
||||
names = vod.find('h3', class_="bili-live-card__info--tit")
|
||||
name = names.text.strip().replace('直播中', '')
|
||||
|
||||
id = names.find('a')['href']
|
||||
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
|
||||
|
||||
pic = vod.find('img')['src']
|
||||
if 'http' not in pic:
|
||||
pic = "https:" + pic
|
||||
|
||||
remarks = vod.find('a', class_="bili-live-card__info--uname")
|
||||
remark = remarks.text.strip()
|
||||
|
||||
video = {
|
||||
"vod_id": id,
|
||||
"vod_name": name,
|
||||
"vod_pic": pic,
|
||||
"vod_remarks": remark
|
||||
}
|
||||
videos.append(video)
|
||||
|
||||
result = {'list': videos}
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
did = ids[0]
|
||||
result = {}
|
||||
videos = []
|
||||
xianlu = ''
|
||||
bofang = ''
|
||||
|
||||
url = f'{xurl1}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={did}&platform=web&protocol=0,1&format=0,1,2&codec=0,1'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
data = detail.json()
|
||||
|
||||
content = '欢迎观看哔哩直播'
|
||||
|
||||
setup = data['data']['playurl_info']['playurl']['stream']
|
||||
|
||||
nam = 0
|
||||
|
||||
for vod in setup:
|
||||
|
||||
try:
|
||||
host = vod['format'][nam]['codec'][0]['url_info'][1]['host']
|
||||
except (KeyError, IndexError):
|
||||
continue
|
||||
|
||||
base = vod['format'][nam]['codec'][0]['base_url']
|
||||
|
||||
extra = vod['format'][nam]['codec'][0]['url_info'][1]['extra']
|
||||
|
||||
id = host + base + extra
|
||||
|
||||
nam = nam + 1
|
||||
|
||||
namc = f"{nam}号线路"
|
||||
|
||||
bofang = bofang + namc + '$' + id + '#'
|
||||
|
||||
bofang = bofang[:-1]
|
||||
|
||||
xianlu = '哔哩专线'
|
||||
|
||||
videos.append({
|
||||
"vod_id": did,
|
||||
"vod_content": content,
|
||||
"vod_play_from": xianlu,
|
||||
"vod_play_url": bofang
|
||||
})
|
||||
|
||||
result['list'] = videos
|
||||
return result
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
|
||||
result = {}
|
||||
result["parse"] = 0
|
||||
result["playUrl"] = ''
|
||||
result["url"] = id
|
||||
result["header"] = headerx
|
||||
return result
|
||||
|
||||
def searchContentPage(self, key, quick, pg):
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
if pg:
|
||||
page = int(pg)
|
||||
else:
|
||||
page = 1
|
||||
|
||||
url = f'{xurl}/live?keyword={key}&page={str(page)}'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
res = detail.text
|
||||
doc = BeautifulSoup(res, "lxml")
|
||||
|
||||
soups = doc.find_all('div', class_="video-list-item")
|
||||
|
||||
for vod in soups:
|
||||
|
||||
names = vod.find('h3', class_="bili-live-card__info--tit")
|
||||
name = names.text.strip().replace('直播中', '')
|
||||
|
||||
id = names.find('a')['href']
|
||||
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
|
||||
|
||||
pic = vod.find('img')['src']
|
||||
if 'http' not in pic:
|
||||
pic = "https:" + pic
|
||||
|
||||
remarks = vod.find('a', class_="bili-live-card__info--uname")
|
||||
remark = remarks.text.strip()
|
||||
|
||||
video = {
|
||||
"vod_id": id,
|
||||
"vod_name": name,
|
||||
"vod_pic": pic,
|
||||
"vod_remarks": remark
|
||||
}
|
||||
videos.append(video)
|
||||
|
||||
result['list'] = videos
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
return self.searchContentPage(key, quick, '1')
|
||||
|
||||
def localProxy(self, params):
|
||||
if params['type'] == "m3u8":
|
||||
return self.proxyM3u8(params)
|
||||
elif params['type'] == "media":
|
||||
return self.proxyMedia(params)
|
||||
elif params['type'] == "ts":
|
||||
return self.proxyTs(params)
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1260
@@ -0,0 +1,1260 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# by @星河
|
||||
# 修复版本 - 参考最新三合一.js重构虎牙、斗鱼、B站直播逻辑
|
||||
# 修复:虎牙清晰度选择,确保ratio参数正确传递码率值
|
||||
# 修复:斗鱼切换分辨率只能播放1秒的问题(每次重新获取安全密钥和签名)
|
||||
# 修复:B站使用特殊UA和WBI签名绕过-352风控 [^90^][^30^]
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import hashlib
|
||||
import random
|
||||
import urllib.parse
|
||||
from base64 import b64decode, b64encode
|
||||
from urllib.parse import parse_qs
|
||||
import requests
|
||||
from pyquery import PyQuery as pq
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
|
||||
class Spider(Spider):
|
||||
|
||||
def init(self, extend=""):
|
||||
# 初始化B站WBI密钥
|
||||
self.bili_wbi_keys = None
|
||||
self.bili_wbi_expire = 0
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
return "直播"
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
headers = [
|
||||
{
|
||||
# 特殊UA绕过B站风控 [^90^]
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
|
||||
},
|
||||
{
|
||||
"User-Agent": "Dart/3.4 (dart:io)"
|
||||
}
|
||||
]
|
||||
|
||||
excepturl = 'https://www.baidu.com'
|
||||
|
||||
hosts = {
|
||||
"huya": ["https://www.huya.com", "https://mp.huya.com"],
|
||||
"douyu": "https://www.douyu.com",
|
||||
"wangyi": "https://cc.163.com",
|
||||
"bili": ["https://api.live.bilibili.com", "https://api.bilibili.com"]
|
||||
}
|
||||
|
||||
referers = {
|
||||
"huya": "https://live.cdn.huya.com",
|
||||
"douyu": "https://m.douyu.com",
|
||||
"bili": "https://live.bilibili.com"
|
||||
}
|
||||
|
||||
playheaders = {
|
||||
"wangyi": {
|
||||
"User-Agent": "ExoPlayer",
|
||||
"Connection": "Keep-Alive",
|
||||
"Icy-MetaData": "1"
|
||||
},
|
||||
"bili": {
|
||||
'Accept': '*/*',
|
||||
'Icy-MetaData': '1',
|
||||
'referer': 'https://live.bilibili.com',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
|
||||
},
|
||||
'huya': {
|
||||
'User-Agent': 'ExoPlayer',
|
||||
'Connection': 'Keep-Alive',
|
||||
'Icy-MetaData': '1'
|
||||
},
|
||||
'douyu': {
|
||||
'User-Agent': 'libmpv',
|
||||
'Icy-MetaData': '1'
|
||||
}
|
||||
}
|
||||
|
||||
# WBI签名相关常量 [^30^]
|
||||
MIXIN_KEY_ENC_TAB = [
|
||||
46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
|
||||
33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
|
||||
61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
|
||||
36, 20, 34, 44, 52
|
||||
]
|
||||
|
||||
def _get_bili_wbi_keys(self):
|
||||
"""获取B站WBI密钥 [^30^]"""
|
||||
try:
|
||||
# 检查缓存
|
||||
if self.bili_wbi_keys and time.time() < self.bili_wbi_expire:
|
||||
return self.bili_wbi_keys
|
||||
|
||||
# 从导航接口获取 - 使用特殊UA [^90^]
|
||||
resp = self.fetch(
|
||||
'https://api.bilibili.com/x/web-interface/nav',
|
||||
headers={
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
|
||||
'Referer': 'https://www.bilibili.com/'
|
||||
}
|
||||
).json()
|
||||
|
||||
if resp.get('code') != 0:
|
||||
return None
|
||||
|
||||
img_url = resp['data']['wbi_img']['img_url']
|
||||
sub_url = resp['data']['wbi_img']['sub_url']
|
||||
|
||||
# 提取文件名作为key
|
||||
img_key = img_url.rsplit('/', 1)[1].split('.')[0]
|
||||
sub_key = sub_url.rsplit('/', 1)[1].split('.')[0]
|
||||
|
||||
self.bili_wbi_keys = (img_key, sub_key)
|
||||
self.bili_wbi_expire = time.time() + 86400 # 24小时过期
|
||||
|
||||
return self.bili_wbi_keys
|
||||
except Exception as e:
|
||||
print(f"获取B站WBI密钥失败: {e}")
|
||||
return None
|
||||
|
||||
def _get_mixin_key(self, orig: str):
|
||||
"""生成mixin_key [^30^]"""
|
||||
return ''.join([orig[i] for i in self.MIXIN_KEY_ENC_TAB])[:32]
|
||||
|
||||
def _enc_wbi(self, params: dict):
|
||||
"""WBI签名 [^30^]"""
|
||||
keys = self._get_bili_wbi_keys()
|
||||
if not keys:
|
||||
return params
|
||||
|
||||
img_key, sub_key = keys
|
||||
mixin_key = self._get_mixin_key(img_key + sub_key)
|
||||
|
||||
# 添加时间戳
|
||||
params['wts'] = round(time.time())
|
||||
|
||||
# 排序参数
|
||||
params = dict(sorted(params.items()))
|
||||
|
||||
# 过滤特殊字符
|
||||
params = {
|
||||
k: ''.join(filter(lambda c: c not in "!'()*", str(v)))
|
||||
for k, v in params.items()
|
||||
}
|
||||
|
||||
# 计算签名
|
||||
query = urllib.parse.urlencode(params)
|
||||
w_rid = hashlib.md5((query + mixin_key).encode()).hexdigest()
|
||||
|
||||
params['w_rid'] = w_rid
|
||||
return params
|
||||
|
||||
def process_bili(self):
|
||||
"""获取B站分类列表 - 使用WBI签名 [^30^]"""
|
||||
try:
|
||||
# 尝试获取分类列表 - 使用特殊UA和WBI签名
|
||||
params = {'need_entrance': 1, 'parent_id': 0}
|
||||
signed_params = self._enc_wbi(params)
|
||||
|
||||
data = self.fetch(
|
||||
f'{self.hosts["bili"][0]}/room/v1/Area/getList',
|
||||
params=signed_params,
|
||||
headers=self.headers[0]
|
||||
).json()
|
||||
|
||||
if data.get('code') == 0 and data.get('data'):
|
||||
# 保存分类数据供后续使用
|
||||
self.bili_areas = data['data']
|
||||
return ('bili', [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': i['name'], 'v': str(i['id'])}
|
||||
for i in data['data']]}])
|
||||
return 'bili', None
|
||||
except Exception as e:
|
||||
print(f"bili处理错误: {e}")
|
||||
# 使用默认分类
|
||||
return 'bili', [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': '网游', 'v': '2'}, {'n': '手游', 'v': '3'},
|
||||
{'n': '单机', 'v': '6'}, {'n': '娱乐', 'v': '1'},
|
||||
{'n': '电台', 'v': '5'}, {'n': '虚拟主播', 'v': '9'},
|
||||
{'n': '生活', 'v': '10'}, {'n': '知识', 'v': '11'},
|
||||
{'n': '赛事', 'v': '13'}]}]
|
||||
|
||||
def process_douyu(self):
|
||||
try:
|
||||
self.dyufdata = self.fetch(
|
||||
f'{self.referers["douyu"]}/api/cate/list',
|
||||
headers=self.headers[1]
|
||||
).json()
|
||||
return ('douyu', [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': i['cate1Name'], 'v': str(i['cate1Id'])}
|
||||
for i in self.dyufdata['data']['cate1Info']]}])
|
||||
except Exception as e:
|
||||
print(f"douyu错误: {e}")
|
||||
return 'douyu', None
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
cateManual = {
|
||||
"虎牙": "huya",
|
||||
"斗鱼": "douyu",
|
||||
"网易": "wangyi",
|
||||
"B站": "bili"
|
||||
}
|
||||
classes = []
|
||||
filters = {
|
||||
'huya': [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': '网游', 'v': '1'}, {'n': '单机', 'v': '2'},
|
||||
{'n': '娱乐', 'v': '8'}, {'n': '手游', 'v': '3'}]}]
|
||||
}
|
||||
|
||||
with ThreadPoolExecutor(max_workers=2) as executor:
|
||||
futures = {
|
||||
executor.submit(self.process_bili): 'bili',
|
||||
executor.submit(self.process_douyu): 'douyu'
|
||||
}
|
||||
|
||||
for future in futures:
|
||||
platform, filter_data = future.result()
|
||||
if filter_data:
|
||||
filters[platform] = filter_data
|
||||
|
||||
for k in cateManual:
|
||||
classes.append({
|
||||
'type_name': k,
|
||||
'type_id': cateManual[k]
|
||||
})
|
||||
|
||||
result['class'] = classes
|
||||
result['filters'] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
pass
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
vdata = []
|
||||
result = {}
|
||||
pagecount = 9999
|
||||
result['page'] = pg
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
if tid == 'wangyi':
|
||||
vdata, pagecount = self.wyccContent(tid, pg, filter, extend, vdata)
|
||||
elif 'bili' in tid:
|
||||
vdata, pagecount = self.biliContent(tid, pg, filter, extend, vdata)
|
||||
elif 'huya' in tid:
|
||||
vdata, pagecount = self.huyaContent(tid, pg, filter, extend, vdata)
|
||||
elif 'douyu' in tid:
|
||||
vdata, pagecount = self.douyuContent(tid, pg, filter, extend, vdata)
|
||||
result['list'] = vdata
|
||||
result['pagecount'] = pagecount
|
||||
return result
|
||||
|
||||
def wyccContent(self, tid, pg, filter, extend, vdata):
|
||||
params = {
|
||||
'format': 'json',
|
||||
'start': (int(pg) - 1) * 20,
|
||||
'size': '20',
|
||||
}
|
||||
response = self.fetch(f'{self.hosts[tid]}/api/category/live/', params=params, headers=self.headers[0]).json()
|
||||
for i in response['lives']:
|
||||
if i.get('cuteid'):
|
||||
bvdata = self.buildvod(
|
||||
vod_id=f"{tid}@@{i['cuteid']}",
|
||||
vod_name=i.get('title'),
|
||||
vod_pic=i.get('cover'),
|
||||
vod_remarks=i.get('nickname'),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
)
|
||||
vdata.append(bvdata)
|
||||
return vdata, 9999
|
||||
|
||||
def biliContent(self, tid, pg, filter, extend, vdata):
|
||||
"""B站分类内容 - 使用WBI签名绕过风控 [^30^][^90^]"""
|
||||
try:
|
||||
# 分类列表 - 显示子分类
|
||||
if extend.get('cate') and pg == '1' and 'click' not in tid:
|
||||
# 从已保存的分类数据中找到对应分类的子分类
|
||||
if hasattr(self, 'bili_areas'):
|
||||
for area in self.bili_areas:
|
||||
if str(area['id']) == extend['cate']:
|
||||
for sub_area in area.get('list', []):
|
||||
v = self.buildvod(
|
||||
vod_id=f"click_{tid}@@{extend['cate']}@@{sub_area['id']}",
|
||||
vod_name=sub_area.get('name'),
|
||||
vod_pic=sub_area.get('pic'),
|
||||
vod_tag=1,
|
||||
style={"type": "oval", "ratio": 1}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 1
|
||||
# 如果没有找到子分类,直接返回空,让用户进入房间列表
|
||||
return vdata, 1
|
||||
|
||||
# 房间列表 - 使用getList接口并添加WBI签名 [^30^]
|
||||
if 'click' in tid:
|
||||
# 子分类房间
|
||||
ids = tid.split('_')[1].split('@@')
|
||||
tid = ids[0]
|
||||
parent_area_id = ids[1]
|
||||
area_id = ids[2]
|
||||
else:
|
||||
# 默认使用分类ID作为parent_area_id,area_id为0表示该分类下所有
|
||||
parent_area_id = extend.get('cate', '2') # 默认网游
|
||||
area_id = 0
|
||||
|
||||
# 构建请求参数并添加WBI签名 [^30^]
|
||||
params = {
|
||||
'parent_area_id': parent_area_id,
|
||||
'area_id': area_id,
|
||||
'page': pg,
|
||||
'platform': 'web',
|
||||
'sort_type': 'online' # 按热度排序
|
||||
}
|
||||
signed_params = self._enc_wbi(params)
|
||||
|
||||
# 调用getList接口
|
||||
api_url = f'{self.hosts[tid][0]}/xlive/web-interface/v1/second/getList'
|
||||
data = self.fetch(api_url, params=signed_params, headers=self.headers[0]).json()
|
||||
|
||||
# 如果WBI签名失败,尝试不带签名
|
||||
if data.get('code') == -352:
|
||||
print("WBI签名失败,尝试无签名请求...")
|
||||
params = {
|
||||
'parent_area_id': parent_area_id,
|
||||
'area_id': area_id,
|
||||
'page': pg,
|
||||
'platform': 'web',
|
||||
'sort_type': 'online'
|
||||
}
|
||||
data = self.fetch(api_url, params=params, headers=self.headers[0]).json()
|
||||
|
||||
if data.get('code') == 0:
|
||||
room_list = data.get('data', {}).get('list', [])
|
||||
for room in room_list:
|
||||
if room.get('roomid'):
|
||||
# 处理在线人数显示
|
||||
online = room.get('online', 0)
|
||||
if online > 10000:
|
||||
online_str = f"{online / 10000:.1f}万"
|
||||
else:
|
||||
online_str = str(online)
|
||||
|
||||
v = self.buildvod(
|
||||
f"{tid}@@{room['roomid']}",
|
||||
room.get('title', '未知标题'),
|
||||
room.get('cover') or room.get('system_cover'),
|
||||
f"{online_str}人",
|
||||
0,
|
||||
room.get('uname', ''),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
)
|
||||
vdata.append(v)
|
||||
|
||||
# 检查是否有更多数据
|
||||
has_more = data.get('data', {}).get('has_more', 0)
|
||||
if not has_more:
|
||||
pagecount = int(pg)
|
||||
else:
|
||||
pagecount = 9999
|
||||
else:
|
||||
print(f"B站API返回错误: {data.get('message', '未知错误')} (code: {data.get('code')})")
|
||||
pagecount = 1
|
||||
|
||||
return vdata, pagecount
|
||||
|
||||
except Exception as e:
|
||||
print(f"B站内容获取错误: {e}")
|
||||
return vdata, 1
|
||||
|
||||
def huyaContent(self, tid, pg, filter, extend, vdata):
|
||||
if extend.get('cate') and pg == '1' and 'click' not in tid:
|
||||
id = extend.get('cate')
|
||||
data = self.fetch(f'{self.referers[tid]}/liveconfig/game/bussLive?bussType={id}',
|
||||
headers=self.headers[1]).json()
|
||||
for i in data['data']:
|
||||
v = self.buildvod(
|
||||
vod_id=f"click_{tid}@@{int(i['gid'])}",
|
||||
vod_name=i.get('gameFullName'),
|
||||
vod_pic=f'https://huyaimg.msstatic.com/cdnimage/game/{int(i["gid"])}-MS.jpg',
|
||||
vod_tag=1,
|
||||
style={"type": "oval", "ratio": 1}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 1
|
||||
else:
|
||||
gid = ''
|
||||
if 'click' in tid:
|
||||
ids = tid.split('_')[1].split('@@')
|
||||
tid = ids[0]
|
||||
gid = f'&gameId={ids[1]}'
|
||||
data = self.fetch(f'{self.hosts[tid][0]}/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0{gid}&page={pg}',
|
||||
headers=self.headers[1]).json()
|
||||
for i in data['data']['datas']:
|
||||
if i.get('profileRoom'):
|
||||
v = self.buildvod(
|
||||
f"{tid}@@{i['profileRoom']}",
|
||||
i.get('introduction'),
|
||||
i.get('screenshot'),
|
||||
str(int(i.get('totalCount', '1')) / 10000) + '万',
|
||||
0,
|
||||
i.get('nick'),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 9999
|
||||
|
||||
def douyuContent(self, tid, pg, filter, extend, vdata):
|
||||
if extend.get('cate') and pg == '1' and 'click' not in tid:
|
||||
for i in self.dyufdata['data']['cate2Info']:
|
||||
if str(i['cate1Id']) == extend['cate']:
|
||||
v = self.buildvod(
|
||||
vod_id=f"click_{tid}@@{i['cate2Id']}",
|
||||
vod_name=i.get('cate2Name'),
|
||||
vod_pic=i.get('icon'),
|
||||
vod_remarks=i.get('count'),
|
||||
vod_tag=1,
|
||||
style={"type": "oval", "ratio": 1}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 1
|
||||
else:
|
||||
path = f'/japi/weblist/apinc/allpage/6/{pg}'
|
||||
if 'click' in tid:
|
||||
ids = tid.split('_')[1].split('@@')
|
||||
tid = ids[0]
|
||||
path = f'/gapi/rkc/directory/mixList/2_{ids[1]}/{pg}'
|
||||
url = f'{self.hosts[tid]}{path}'
|
||||
data = self.fetch(url, headers=self.headers[1]).json()
|
||||
for i in data['data']['rl']:
|
||||
v = self.buildvod(
|
||||
vod_id=f"{tid}@@{i['rid']}",
|
||||
vod_name=i.get('rn'),
|
||||
vod_pic=i.get('rs16'),
|
||||
vod_year=str(int(i.get('ol', 1)) / 10000) + '万',
|
||||
vod_remarks=i.get('nn'),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 9999
|
||||
|
||||
def detailContent(self, ids):
|
||||
ids = ids[0].split('@@')
|
||||
if ids[0] == 'wangyi':
|
||||
vod = self.wyccDetail(ids)
|
||||
elif ids[0] == 'bili':
|
||||
vod = self.biliDetail(ids)
|
||||
elif ids[0] == 'huya':
|
||||
vod = self.huyaDetail(ids)
|
||||
elif ids[0] == 'douyu':
|
||||
vod = self.douyuDetail(ids)
|
||||
return {'list': [vod]}
|
||||
|
||||
def wyccDetail(self, ids):
|
||||
try:
|
||||
vdata = self.getpq(f'{self.hosts[ids[0]]}/{ids[1]}', self.headers[0])('script').eq(-1).text()
|
||||
|
||||
def get_quality_name(vbr):
|
||||
if vbr <= 600:
|
||||
return "标清"
|
||||
elif vbr <= 1000:
|
||||
return "高清"
|
||||
elif vbr <= 2000:
|
||||
return "超清"
|
||||
else:
|
||||
return "蓝光"
|
||||
|
||||
data = json.loads(vdata)['props']['pageProps']['roomInfoInitData']
|
||||
name = data['live'].get('title', ids[0])
|
||||
vod = self.buildvod(vod_name=data.get('keywords_suffix'), vod_remarks=data['live'].get('title'),
|
||||
vod_content=data.get('description_suffix'))
|
||||
resolution_data = data['live']['quickplay']['resolution']
|
||||
all_streams = {}
|
||||
sorted_qualities = sorted(resolution_data.items(),
|
||||
key=lambda x: x[1]['vbr'],
|
||||
reverse=True)
|
||||
for quality, data in sorted_qualities:
|
||||
vbr = data['vbr']
|
||||
quality_name = get_quality_name(vbr)
|
||||
for cdn_name, url in data['cdn'].items():
|
||||
if cdn_name not in all_streams and type(url) == str and url.startswith('http'):
|
||||
all_streams[cdn_name] = []
|
||||
if isinstance(url, str) and url.startswith('http'):
|
||||
all_streams[cdn_name].extend([quality_name, url])
|
||||
plists = []
|
||||
names = []
|
||||
for i, (cdn_name, stream_list) in enumerate(all_streams.items(), 1):
|
||||
names.append(f'线路{i}')
|
||||
pstr = f"{name}${ids[0]}@@{self.e64(json.dumps(stream_list))}"
|
||||
plists.append(pstr)
|
||||
vod['vod_play_from'] = "$$$".join(names)
|
||||
vod['vod_play_url'] = "$$$".join(plists)
|
||||
return vod
|
||||
except Exception as e:
|
||||
return self.handle_exception(e)
|
||||
|
||||
def biliDetail(self, ids):
|
||||
"""
|
||||
B站直播详情 - 使用playUrl接口获取多清晰度
|
||||
"""
|
||||
try:
|
||||
room_id = ids[1]
|
||||
|
||||
# 获取房间信息
|
||||
info_res = self.fetch(
|
||||
f'{self.hosts["bili"][0]}/room/v1/Room/get_info?room_id={room_id}',
|
||||
headers=self.headers[0]
|
||||
).json()
|
||||
|
||||
if info_res.get('code') != 0:
|
||||
return self.handle_exception(Exception("获取房间信息失败"))
|
||||
|
||||
room_info = info_res['data']
|
||||
title = room_info.get('title', 'B站直播')
|
||||
|
||||
vod = self.buildvod(
|
||||
vod_name=title,
|
||||
type_name=f"{room_info.get('parent_area_name', '')}/{room_info.get('area_name', '')}",
|
||||
vod_director=room_info.get('uname', ''),
|
||||
vod_remarks=f"在线{room_info.get('online', 0)}人"
|
||||
)
|
||||
|
||||
# 获取播放地址信息
|
||||
play_res = self.fetch(
|
||||
f'{self.hosts["bili"][0]}/room/v1/Room/playUrl?cid={room_id}&qn=10000&platform=web',
|
||||
headers={
|
||||
**self.headers[0],
|
||||
'Referer': 'https://live.bilibili.com/',
|
||||
'Origin': 'https://live.bilibili.com'
|
||||
}
|
||||
).json()
|
||||
|
||||
if play_res.get('code') != 0:
|
||||
return self.handle_exception(Exception("获取播放地址失败"))
|
||||
|
||||
play_data = play_res['data']
|
||||
accept_quality = play_data.get('accept_quality', ['10000', '400', '250', '150'])
|
||||
quality_desc = {item['qn']: item['desc'] for item in play_data.get('quality_description', [])}
|
||||
|
||||
# 构建清晰度列表
|
||||
qualities = []
|
||||
for qn in sorted([int(q) for q in accept_quality], reverse=True):
|
||||
desc = quality_desc.get(qn, f'清晰度{qn}')
|
||||
qualities.append(f"{desc}$bili@@{room_id}@@{qn}")
|
||||
|
||||
vod['vod_play_from'] = 'B站直播'
|
||||
vod['vod_play_url'] = '#'.join(qualities)
|
||||
return vod
|
||||
|
||||
except Exception as e:
|
||||
print(f"B站详情错误: {e}")
|
||||
return self.handle_exception(e)
|
||||
|
||||
def huyaDetail(self, ids):
|
||||
"""
|
||||
虎牙播放详情 - 参考最新三合一.js重构
|
||||
支持多线路多清晰度选择
|
||||
核心算法:通过房间信息API获取uid、streamName和rateArray,为每个清晰度生成签名URL
|
||||
清晰度说明:
|
||||
- 蓝光8M/6M/4M/10M = 8000/6000/4000/10000 kbps = 1080P+
|
||||
- 蓝光 = 3000 kbps = 1080P
|
||||
- 超清 = 2000 kbps = 1080P (官方标准)
|
||||
- 高清 = 1200 kbps = 720P
|
||||
- 标清/流畅 = 500-800 kbps = 480P/540P
|
||||
"""
|
||||
try:
|
||||
room_id = ids[1]
|
||||
|
||||
# 1. 获取房间信息
|
||||
api_url = f'{self.hosts[ids[0]][1]}/cache.php?m=Live&do=profileRoom&roomid={room_id}'
|
||||
res = self.fetch(api_url, headers=self.headers[0])
|
||||
|
||||
if res.status_code != 200:
|
||||
return self.handle_exception(Exception(f"API请求失败: {res.status_code}"))
|
||||
|
||||
data = res.json()
|
||||
if not data or not data.get('data'):
|
||||
return self.handle_exception(Exception("房间数据为空"))
|
||||
|
||||
room_data = data['data']
|
||||
|
||||
# 2. 提取关键信息
|
||||
uid = room_data.get('profileInfo', {}).get('uid')
|
||||
stream_info = room_data.get('stream', {})
|
||||
live_data = room_data.get('liveData', {})
|
||||
|
||||
if not uid:
|
||||
return self.handle_exception(Exception("缺少uid"))
|
||||
|
||||
# 3. 获取streamName和码率信息
|
||||
base_stream_list = stream_info.get('baseSteamInfoList', [])
|
||||
if not base_stream_list:
|
||||
return self.handle_exception(Exception("无直播流信息"))
|
||||
|
||||
# 获取第一个CDN的streamName作为基准
|
||||
base_stream = base_stream_list[0]
|
||||
stream_name = base_stream.get('sStreamName')
|
||||
if not stream_name:
|
||||
return self.handle_exception(Exception("无法获取streamName"))
|
||||
|
||||
# 4. 构建VOD对象
|
||||
vod = self.buildvod(
|
||||
vod_name=live_data.get('introduction', '虎牙直播'),
|
||||
type_name=live_data.get('gameFullName', ''),
|
||||
vod_director=live_data.get('nick', ''),
|
||||
vod_remarks=live_data.get('contentIntro', ''),
|
||||
)
|
||||
|
||||
# 5. 获取所有CDN线路
|
||||
cdn_list = []
|
||||
for stream in base_stream_list:
|
||||
cdn_type = stream.get('sCdnType', 'AL')
|
||||
flv_url = stream.get('sFlvUrl', '')
|
||||
hls_url = stream.get('sHlsUrl', '')
|
||||
stream_name_cdn = stream.get('sStreamName', stream_name)
|
||||
|
||||
if flv_url:
|
||||
cdn_list.append({
|
||||
'cdn': cdn_type,
|
||||
'flv_base': flv_url,
|
||||
'hls_base': hls_url,
|
||||
'stream_name': stream_name_cdn,
|
||||
'priority': stream.get('iWebPriorityRate', 0)
|
||||
})
|
||||
|
||||
# 按优先级排序
|
||||
cdn_list.sort(key=lambda x: x['priority'], reverse=True)
|
||||
|
||||
# 6. 获取清晰度列表 (rateArray)
|
||||
rate_array = stream_info.get('rateArray', [])
|
||||
|
||||
# 如果没有rateArray,尝试从vMultiStreamInfo获取
|
||||
if not rate_array and 'vMultiStreamInfo' in room_data:
|
||||
rate_array = room_data['vMultiStreamInfo']
|
||||
|
||||
# 如果仍然没有,使用默认清晰度(按虎牙官方标准)
|
||||
if not rate_array:
|
||||
rate_array = [
|
||||
{'sDisplayName': '蓝光4M', 'iBitRate': 4000},
|
||||
{'sDisplayName': '蓝光', 'iBitRate': 3000},
|
||||
{'sDisplayName': '超清', 'iBitRate': 2000}, # 2000kbps = 1080P
|
||||
{'sDisplayName': '高清', 'iBitRate': 1200}, # 1200kbps = 720P
|
||||
{'sDisplayName': '流畅', 'iBitRate': 500}
|
||||
]
|
||||
|
||||
# 过滤和排序清晰度
|
||||
# 虎牙的rateArray中,iBitRate就是码率值,sDisplayName是显示名称
|
||||
# 需要确保:超清=2000kbps(1080P),高清=1200kbps(720P)
|
||||
filtered_rates = []
|
||||
seen_bitrates = set()
|
||||
|
||||
for rate in rate_array:
|
||||
bit_rate = rate.get('iBitRate', 0)
|
||||
name = rate.get('sDisplayName', '')
|
||||
|
||||
# 跳过重复的码率
|
||||
if bit_rate in seen_bitrates:
|
||||
continue
|
||||
|
||||
# 修正清晰度名称,确保符合虎牙标准
|
||||
# 2000kbps应该是超清(1080P),不是高清
|
||||
if bit_rate == 2000 and ('高清' in name or '720' in name):
|
||||
name = '超清' # 强制修正为超清
|
||||
elif bit_rate == 1200 and ('标清' in name or '480' in name):
|
||||
name = '高清' # 1200kbps对应高清
|
||||
elif bit_rate == 2000 and name == '原画':
|
||||
name = '超清' # 修正原画为超清
|
||||
|
||||
seen_bitrates.add(bit_rate)
|
||||
filtered_rates.append({
|
||||
'sDisplayName': name,
|
||||
'iBitRate': bit_rate
|
||||
})
|
||||
|
||||
# 按码率从高到低排序
|
||||
sorted_rates = sorted(filtered_rates, key=lambda x: x['iBitRate'], reverse=True)
|
||||
|
||||
# 7. 为每个CDN生成各清晰度的播放URL
|
||||
play_lines = []
|
||||
line_names = []
|
||||
|
||||
for cdn_idx, cdn in enumerate(cdn_list[:3]): # 最多取3个CDN
|
||||
cdn_name = cdn['cdn']
|
||||
line_names.append(f"线路{cdn_idx + 1}({cdn_name})")
|
||||
|
||||
qualities = []
|
||||
for rate in sorted_rates:
|
||||
quality_name = rate['sDisplayName']
|
||||
bit_rate = rate['iBitRate']
|
||||
|
||||
# 生成该清晰度的URL
|
||||
quality_url = self._generate_huya_play_url(
|
||||
cdn, uid, stream_name, bit_rate
|
||||
)
|
||||
|
||||
qualities.extend([quality_name, quality_url])
|
||||
|
||||
# 编码该线路的所有清晰度
|
||||
encoded_qualities = self.e64(json.dumps(qualities))
|
||||
play_lines.append(f"{live_data.get('introduction', '直播')}${ids[0]}@@{encoded_qualities}")
|
||||
|
||||
# 8. 构建播放数据
|
||||
vod['vod_play_from'] = "$$$".join(line_names)
|
||||
vod['vod_play_url'] = "$$$".join(play_lines)
|
||||
|
||||
return vod
|
||||
|
||||
except Exception as e:
|
||||
return self.handle_exception(e)
|
||||
|
||||
def _generate_huya_play_url(self, cdn, uid, stream_name, bit_rate):
|
||||
"""
|
||||
生成虎牙播放URL,参考最新三合一.js算法
|
||||
关键:ratio参数必须正确设置为iBitRate值(如2000、4000等)
|
||||
"""
|
||||
# 基础URL构建
|
||||
flv_base = cdn['flv_base']
|
||||
stream = cdn['stream_name']
|
||||
|
||||
# 生成时间戳和签名参数
|
||||
timestamp = int(time.time())
|
||||
seqid = f"{uid}{timestamp}"
|
||||
ss = hashlib.md5(f"{seqid}|huya_adr|102".encode()).hexdigest()
|
||||
ws_time = hex(timestamp + 21600)[2:] # 16进制,有效期6小时
|
||||
|
||||
# 计算wsSecret
|
||||
ws_secret = hashlib.md5(
|
||||
f"DWq8BcJ3h6DJt6TY_{uid}_{stream_name}_{ss}_{ws_time}".encode()
|
||||
).hexdigest()
|
||||
|
||||
# 构建基础URL
|
||||
base_url = f"{flv_base}/{stream}.flv"
|
||||
|
||||
# 关键修复:ratio参数直接使用iBitRate值
|
||||
# 超清=2000,高清=1200,蓝光=3000/4000/6000/8000
|
||||
if bit_rate > 0:
|
||||
ratio_param = f"ratio={bit_rate}"
|
||||
else:
|
||||
# 原画/0码率时,使用默认2000或从URL推断
|
||||
ratio_param = "ratio=2000"
|
||||
|
||||
# 构建完整URL
|
||||
play_url = (
|
||||
f"{base_url}?{ratio_param}&wsSecret={ws_secret}&wsTime={ws_time}"
|
||||
f"&ctype=huya_adr&seqid={seqid}&uid={uid}"
|
||||
f"&fs=bgct&ver=1&t=102"
|
||||
)
|
||||
|
||||
return play_url
|
||||
|
||||
def douyuDetail(self, ids):
|
||||
"""
|
||||
斗鱼播放详情 - 参考最新三合一.js重构
|
||||
核心算法:设备ID生成 -> 获取加密密钥 -> 计算签名 -> 获取播放地址
|
||||
修复:切换分辨率只能播放1秒的问题
|
||||
方案:存储房间号和码率信息,在playerContent中实时获取对应码率的URL
|
||||
"""
|
||||
try:
|
||||
channel = ids[1]
|
||||
headers = self.gethr(0, zr=f'{self.hosts[ids[0]]}/{channel}')
|
||||
|
||||
# 1. 初始化会话和设备ID (参考JS中的initialize和setupDeviceId)
|
||||
session = {}
|
||||
|
||||
# 请求首页获取Cookie
|
||||
try:
|
||||
home_res = self.fetch(f'{self.hosts[ids[0]]}/{channel}', headers=headers)
|
||||
if home_res.headers.get('Set-Cookie'):
|
||||
cookie_str = home_res.headers.get('Set-Cookie')
|
||||
# 解析dy_did
|
||||
did_match = re.search(r'dy_did=([a-f0-9]{32})', cookie_str)
|
||||
if did_match:
|
||||
device_id = did_match.group(1)
|
||||
else:
|
||||
device_id = self._generate_random_hex(32)
|
||||
else:
|
||||
device_id = self._generate_random_hex(32)
|
||||
except:
|
||||
device_id = self._generate_random_hex(32)
|
||||
|
||||
session['dy_did'] = device_id
|
||||
session['mantine-color-scheme-value'] = 'light'
|
||||
|
||||
# 2. 获取房间基本信息
|
||||
betard_res = self.fetch(f'{self.hosts[ids[0]]}/betard/{channel}', headers=headers).json()
|
||||
if not betard_res or not betard_res.get('room'):
|
||||
return self.handle_exception(Exception("获取房间信息失败"))
|
||||
|
||||
room_info = betard_res['room']
|
||||
vname = room_info.get('room_name', '斗鱼直播')
|
||||
|
||||
vod = self.buildvod(
|
||||
vod_name=vname,
|
||||
vod_remarks=room_info.get('second_lvl_name', ''),
|
||||
vod_director=room_info.get('nickname', ''),
|
||||
)
|
||||
|
||||
# 3. 获取安全密钥 (参考JS中的getSecurityKey)
|
||||
sec_url = f"{self.hosts[ids[0]]}/wgapi/livenc/liveweb/websec/getEncryption?did={device_id}"
|
||||
sec_res = self.fetch(sec_url, headers=headers).json()
|
||||
|
||||
if not sec_res or sec_res.get('error') != 0:
|
||||
return self.handle_exception(Exception("获取加密密钥失败"))
|
||||
|
||||
security_data = sec_res['data']
|
||||
secret_key = security_data.get('key')
|
||||
random_str = security_data.get('rand_str')
|
||||
enc_time = security_data.get('enc_time', 1)
|
||||
enc_data = security_data.get('enc_data')
|
||||
|
||||
# 4. 计算签名 (参考JS中的computeSignature)
|
||||
current_time = int(time.time())
|
||||
|
||||
# 迭代计算MD5
|
||||
current = random_str
|
||||
for _ in range(enc_time):
|
||||
current = hashlib.md5(f"{current}{secret_key}".encode()).hexdigest()
|
||||
|
||||
signature = hashlib.md5(f"{current}{secret_key}{channel}{current_time}".encode()).hexdigest()
|
||||
|
||||
# 5. 请求播放地址 (参考JS中的requestStreamData)
|
||||
play_payload = {
|
||||
'enc_data': enc_data,
|
||||
'tt': str(current_time),
|
||||
'did': device_id,
|
||||
'auth': signature,
|
||||
'cdn': '',
|
||||
'rate': '',
|
||||
'hevc': '0',
|
||||
'fa': '0',
|
||||
'ive': '0'
|
||||
}
|
||||
|
||||
play_api = f"{self.hosts[ids[0]]}/lapi/live/getH5PlayV1/{channel}"
|
||||
|
||||
# 构建请求头带Cookie
|
||||
play_headers = headers.copy()
|
||||
cookie_str = '; '.join([f"{k}={v}" for k, v in session.items()])
|
||||
play_headers['Cookie'] = cookie_str
|
||||
play_headers['Content-Type'] = 'application/x-www-form-urlencoded'
|
||||
|
||||
play_res = requests.post(play_api, data=play_payload, headers=play_headers, timeout=10).json()
|
||||
|
||||
if not play_res or play_res.get('error') != 0:
|
||||
# 尝试旧版API
|
||||
play_res = self._try_legacy_douyu_api(channel, device_id, signature, current_time, play_headers)
|
||||
if not play_res:
|
||||
return self.handle_exception(Exception("获取播放地址失败"))
|
||||
|
||||
stream_info = play_res.get('data', {})
|
||||
|
||||
# 6. 检查并更新设备ID (参考JS中的checkAndUpdateDeviceId)
|
||||
rtmp_live = stream_info.get('rtmp_live', '')
|
||||
if rtmp_live:
|
||||
did_match = re.search(r'did=([a-f0-9]{32})', rtmp_live)
|
||||
if did_match and did_match.group(1) != device_id:
|
||||
device_id = did_match.group(1)
|
||||
session['dy_did'] = device_id
|
||||
# 重新请求
|
||||
play_payload['did'] = device_id
|
||||
play_res = requests.post(play_api, data=play_payload, headers=play_headers, timeout=10).json()
|
||||
if play_res and play_res.get('error') == 0:
|
||||
stream_info = play_res.get('data', {})
|
||||
|
||||
# 7. 提取播放URL和多码率信息
|
||||
stream_url = None
|
||||
if stream_info.get('rtmp_url') and stream_info.get('rtmp_live'):
|
||||
stream_url = f"{stream_info['rtmp_url']}/{stream_info['rtmp_live']}"
|
||||
elif stream_info.get('hls_url'):
|
||||
stream_url = stream_info['hls_url']
|
||||
|
||||
if not stream_url:
|
||||
return self.handle_exception(Exception("无法获取播放地址"))
|
||||
|
||||
# 8. 构建多码率选项
|
||||
multirates = stream_info.get('multirates', [])
|
||||
|
||||
# 关键修复:存储房间号和码率信息,而不是直接存储URL
|
||||
# 这样在切换清晰度时可以重新获取对应码率的签名URL
|
||||
qualities = []
|
||||
|
||||
if multirates:
|
||||
# 按码率排序
|
||||
sorted_rates = sorted(multirates, key=lambda x: x.get('bit', 0), reverse=True)
|
||||
for rate in sorted_rates:
|
||||
bit_rate = rate.get('rate', -1)
|
||||
name = rate.get('name', f"{bit_rate}P")
|
||||
|
||||
# 存储格式:码率值,用于playerContent中重新获取URL
|
||||
# 使用特殊标记#来区分这是码率值而不是URL
|
||||
qualities.extend([name, f"#{bit_rate}"])
|
||||
else:
|
||||
# 只有原画
|
||||
qualities = ['原画', '#-1']
|
||||
|
||||
# 同时存储房间号和设备信息,用于重新获取URL
|
||||
# 格式:房间号|设备ID|签名信息(base64编码)
|
||||
session_info = {
|
||||
'channel': channel,
|
||||
'device_id': device_id,
|
||||
'secret_key': secret_key,
|
||||
'random_str': random_str,
|
||||
'enc_time': enc_time,
|
||||
'enc_data': enc_data
|
||||
}
|
||||
encoded_session = self.e64(json.dumps(session_info))
|
||||
|
||||
# 9. 构建播放数据
|
||||
# vod_play_url格式:房间名$平台@@base64(清晰度列表)@@base64(会话信息)
|
||||
encoded_qualities = self.e64(json.dumps(qualities))
|
||||
vod['vod_play_from'] = '斗鱼直播'
|
||||
vod['vod_play_url'] = f"{vname}${ids[0]}@@{encoded_qualities}@@{encoded_session}"
|
||||
|
||||
return vod
|
||||
|
||||
except Exception as e:
|
||||
return self.handle_exception(e)
|
||||
|
||||
def _generate_random_hex(self, length):
|
||||
"""生成随机十六进制字符串"""
|
||||
hex_chars = '0123456789abcdef'
|
||||
return ''.join(random.choice(hex_chars) for _ in range(length))
|
||||
|
||||
def _try_legacy_douyu_api(self, channel, device_id, signature, timestamp, headers):
|
||||
"""尝试使用旧版API获取播放地址"""
|
||||
try:
|
||||
legacy_payload = {
|
||||
'did': device_id,
|
||||
'tt': str(timestamp),
|
||||
'sign': signature,
|
||||
'cdn': '',
|
||||
'rate': '-1',
|
||||
'ver': 'Douyu_223061205',
|
||||
'iar': '1',
|
||||
'ive': '1',
|
||||
'hevc': '0',
|
||||
'fa': '0'
|
||||
}
|
||||
legacy_api = f"https://www.douyu.com/lapi/live/getH5Play/{channel}"
|
||||
res = requests.post(legacy_api, data=legacy_payload, headers=headers, timeout=10)
|
||||
return res.json() if res.status_code == 200 else None
|
||||
except:
|
||||
return None
|
||||
|
||||
def _get_douyu_play_url(self, channel, device_id, secret_key, random_str, enc_time, enc_data, rate):
|
||||
"""
|
||||
获取斗鱼指定码率的播放URL(带签名)
|
||||
用于切换清晰度时重新获取URL
|
||||
"""
|
||||
try:
|
||||
current_time = int(time.time())
|
||||
|
||||
# 重新计算签名
|
||||
current = random_str
|
||||
for _ in range(enc_time):
|
||||
current = hashlib.md5(f"{current}{secret_key}".encode()).hexdigest()
|
||||
|
||||
signature = hashlib.md5(f"{current}{secret_key}{channel}{current_time}".encode()).hexdigest()
|
||||
|
||||
# 构建请求
|
||||
play_payload = {
|
||||
'enc_data': enc_data,
|
||||
'tt': str(current_time),
|
||||
'did': device_id,
|
||||
'auth': signature,
|
||||
'cdn': '',
|
||||
'rate': str(rate) if rate > 0 else '',
|
||||
'hevc': '0',
|
||||
'fa': '0',
|
||||
'ive': '0'
|
||||
}
|
||||
|
||||
play_api = f"https://www.douyu.com/lapi/live/getH5PlayV1/{channel}"
|
||||
|
||||
headers = {
|
||||
'User-Agent': self.headers[0]['User-Agent'],
|
||||
'Referer': f'https://www.douyu.com/{channel}',
|
||||
'Origin': 'https://www.douyu.com',
|
||||
'Cookie': f'dy_did={device_id}; mantine-color-scheme-value=light',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
|
||||
play_res = requests.post(play_api, data=play_payload, headers=headers, timeout=10).json()
|
||||
|
||||
if not play_res or play_res.get('error') != 0:
|
||||
# 尝试旧版API
|
||||
return self._get_douyu_play_url_legacy(channel, device_id, signature, current_time, rate)
|
||||
|
||||
stream_info = play_res.get('data', {})
|
||||
|
||||
# 检查设备ID是否匹配
|
||||
if stream_info.get('rtmp_live'):
|
||||
did_match = re.search(r'did=([a-f0-9]{32})', stream_info['rtmp_live'])
|
||||
if did_match and did_match.group(1) != device_id:
|
||||
# 设备ID不匹配,使用新设备ID重新获取
|
||||
return self._get_douyu_play_url(channel, did_match.group(1), secret_key, random_str, enc_time, enc_data, rate)
|
||||
|
||||
if stream_info.get('rtmp_url') and stream_info.get('rtmp_live'):
|
||||
return f"{stream_info['rtmp_url']}/{stream_info['rtmp_live']}"
|
||||
elif stream_info.get('hls_url'):
|
||||
return stream_info['hls_url']
|
||||
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"获取斗鱼播放URL失败: {e}")
|
||||
return None
|
||||
|
||||
def _get_douyu_play_url_legacy(self, channel, device_id, signature, timestamp, rate):
|
||||
"""使用旧版API获取斗鱼播放URL"""
|
||||
try:
|
||||
legacy_payload = {
|
||||
'did': device_id,
|
||||
'tt': str(timestamp),
|
||||
'sign': signature,
|
||||
'cdn': '',
|
||||
'rate': str(rate) if rate > 0 else '-1',
|
||||
'ver': 'Douyu_223061205',
|
||||
'iar': '1',
|
||||
'ive': '1',
|
||||
'hevc': '0',
|
||||
'fa': '0'
|
||||
}
|
||||
legacy_api = f"https://www.douyu.com/lapi/live/getH5Play/{channel}"
|
||||
|
||||
headers = {
|
||||
'User-Agent': self.headers[0]['User-Agent'],
|
||||
'Referer': f'https://www.douyu.com/{channel}',
|
||||
'Cookie': f'dy_did={device_id}',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
|
||||
res = requests.post(legacy_api, data=legacy_payload, headers=headers, timeout=10)
|
||||
if res.status_code == 200:
|
||||
data = res.json()
|
||||
if data.get('error') == 0:
|
||||
stream_info = data.get('data', {})
|
||||
if stream_info.get('rtmp_url') and stream_info.get('rtmp_live'):
|
||||
return f"{stream_info['rtmp_url']}/{stream_info['rtmp_live']}"
|
||||
return None
|
||||
except:
|
||||
return None
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
pass
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
try:
|
||||
ids = id.split('@@')
|
||||
p = 1
|
||||
if ids[0] in ['wangyi']:
|
||||
p, url = 0, json.loads(self.d64(ids[1]))
|
||||
elif ids[0] == 'bili':
|
||||
p, url = self.biliplay(ids)
|
||||
elif ids[0] == 'huya':
|
||||
p, url = self.huyaplay(ids)
|
||||
elif ids[0] == 'douyu':
|
||||
p, url = self.douyuplay(ids)
|
||||
return {'parse': p, 'url': url, 'header': self.playheaders[ids[0]]}
|
||||
except Exception as e:
|
||||
return {'parse': 1, 'url': self.excepturl, 'header': self.headers[0]}
|
||||
|
||||
def biliplay(self, ids):
|
||||
"""
|
||||
B站播放解析 - 使用playUrl接口获取指定清晰度直播流
|
||||
ids: [平台, 房间号, 清晰度qn]
|
||||
支持多线路返回
|
||||
"""
|
||||
try:
|
||||
room_id = ids[1]
|
||||
qn = ids[2] if len(ids) > 2 else '10000'
|
||||
|
||||
# 使用playUrl接口获取直播流
|
||||
play_url = f'{self.hosts["bili"][0]}/room/v1/Room/playUrl?cid={room_id}&qn={qn}&platform=web'
|
||||
data = self.fetch(play_url, headers={
|
||||
**self.headers[0],
|
||||
'Referer': 'https://live.bilibili.com/',
|
||||
'Origin': 'https://live.bilibili.com'
|
||||
}).json()
|
||||
|
||||
if data.get('code') != 0:
|
||||
return 1, self.excepturl
|
||||
|
||||
play_data = data['data']
|
||||
durl_list = play_data.get('durl', [])
|
||||
|
||||
if not durl_list:
|
||||
return 1, self.excepturl
|
||||
|
||||
# 构建多线路结果 [线路1, URL1, 线路2, URL2, ...]
|
||||
urls = []
|
||||
for idx, item in enumerate(durl_list, 1):
|
||||
url = item.get('url')
|
||||
if url:
|
||||
urls.extend([f'线路{idx}', url])
|
||||
|
||||
# 如果只有一条线路,直接返回URL
|
||||
if len(urls) == 2:
|
||||
return 0, urls[1] # 直接返回URL字符串
|
||||
|
||||
return 0, urls
|
||||
|
||||
except Exception as e:
|
||||
print(f"B站播放错误: {e}")
|
||||
return 1, self.excepturl
|
||||
|
||||
def huyaplay(self, ids):
|
||||
"""
|
||||
虎牙播放解析 - 返回所有清晰度选项供用户选择
|
||||
ids[1] 格式: base64编码的 [清晰度名称1, URL1, 清晰度名称2, URL2, ...]
|
||||
"""
|
||||
try:
|
||||
# ids[1] 是编码后的播放地址列表 [名称1, URL1, 名称2, URL2, ...]
|
||||
decoded = json.loads(self.d64(ids[1]))
|
||||
# decoded 是一个列表,奇数索引是名称,偶数索引是URL
|
||||
return 0, decoded
|
||||
except Exception as e:
|
||||
print(f"虎牙播放解析错误: {e}")
|
||||
return 1, self.excepturl
|
||||
|
||||
def douyuplay(self, ids):
|
||||
"""
|
||||
斗鱼播放解析 - 实时获取对应码率的播放URL
|
||||
ids格式: [平台, base64(清晰度列表), base64(会话信息)]
|
||||
清晰度列表: [名称1, #码率1, 名称2, #码率2, ...]
|
||||
#表示这是码率值,需要重新获取URL
|
||||
"""
|
||||
try:
|
||||
if len(ids) < 3:
|
||||
# 兼容旧格式
|
||||
decoded = json.loads(self.d64(ids[1]))
|
||||
return 0, decoded
|
||||
|
||||
# 解析清晰度列表和会话信息
|
||||
qualities = json.loads(self.d64(ids[1]))
|
||||
session_info = json.loads(self.d64(ids[2]))
|
||||
|
||||
channel = session_info['channel']
|
||||
device_id = session_info['device_id']
|
||||
secret_key = session_info['secret_key']
|
||||
random_str = session_info['random_str']
|
||||
enc_time = session_info['enc_time']
|
||||
enc_data = session_info['enc_data']
|
||||
|
||||
# 为每个清晰度实时获取播放URL
|
||||
result = []
|
||||
for i in range(0, len(qualities), 2):
|
||||
name = qualities[i]
|
||||
rate_marker = qualities[i + 1]
|
||||
|
||||
# 解析码率值(去掉#前缀)
|
||||
if rate_marker.startswith('#'):
|
||||
rate = int(rate_marker[1:])
|
||||
else:
|
||||
rate = -1
|
||||
|
||||
# 实时获取对应码率的URL
|
||||
play_url = self._get_douyu_play_url(
|
||||
channel, device_id, secret_key, random_str,
|
||||
enc_time, enc_data, rate
|
||||
)
|
||||
|
||||
if play_url:
|
||||
result.extend([name, play_url])
|
||||
|
||||
if not result:
|
||||
return 1, self.excepturl
|
||||
|
||||
return 0, result
|
||||
except Exception as e:
|
||||
print(f"斗鱼播放解析错误: {e}")
|
||||
return 1, self.excepturl
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
||||
|
||||
def e64(self, text):
|
||||
try:
|
||||
text_bytes = text.encode('utf-8')
|
||||
encoded_bytes = b64encode(text_bytes)
|
||||
return encoded_bytes.decode('utf-8')
|
||||
except Exception as e:
|
||||
print(f"Base64编码错误: {str(e)}")
|
||||
return ""
|
||||
|
||||
def d64(self, encoded_text):
|
||||
try:
|
||||
encoded_bytes = encoded_text.encode('utf-8')
|
||||
decoded_bytes = b64decode(encoded_bytes)
|
||||
return decoded_bytes.decode('utf-8')
|
||||
except Exception as e:
|
||||
print(f"Base64解码错误: {str(e)}")
|
||||
return ""
|
||||
|
||||
def josn_to_params(self, params, skip_empty=False):
|
||||
query = []
|
||||
for k, v in params.items():
|
||||
if skip_empty and not v:
|
||||
continue
|
||||
query.append(f"{k}={v}")
|
||||
return "&".join(query)
|
||||
|
||||
def params_to_json(self, query_string):
|
||||
parsed_data = parse_qs(query_string)
|
||||
result = {key: value[0] for key, value in parsed_data.items()}
|
||||
return result
|
||||
|
||||
def buildvod(self, vod_id='', vod_name='', vod_pic='', vod_year='', vod_tag='', vod_remarks='', style='',
|
||||
type_name='', vod_area='', vod_actor='', vod_director='',
|
||||
vod_content='', vod_play_from='', vod_play_url=''):
|
||||
vod = {
|
||||
'vod_id': vod_id,
|
||||
'vod_name': vod_name,
|
||||
'vod_pic': vod_pic,
|
||||
'vod_year': vod_year,
|
||||
'vod_tag': 'folder' if vod_tag else '',
|
||||
'vod_remarks': vod_remarks,
|
||||
'style': style,
|
||||
'type_name': type_name,
|
||||
'vod_area': vod_area,
|
||||
'vod_actor': vod_actor,
|
||||
'vod_director': vod_director,
|
||||
'vod_content': vod_content,
|
||||
'vod_play_from': vod_play_from,
|
||||
'vod_play_url': vod_play_url
|
||||
}
|
||||
vod = {key: value for key, value in vod.items() if value}
|
||||
return vod
|
||||
|
||||
def getpq(self, url, headers=None, cookies=None):
|
||||
data = self.fetch(url, headers=headers, cookies=cookies).text
|
||||
try:
|
||||
return pq(data)
|
||||
except Exception as e:
|
||||
print(f"解析页面错误: {str(e)}")
|
||||
return pq(data.encode('utf-8'))
|
||||
|
||||
def gethr(self, index, rf='', zr=''):
|
||||
headers = self.headers[index]
|
||||
if zr:
|
||||
headers['referer'] = zr
|
||||
else:
|
||||
headers['referer'] = f"{self.referers[rf]}/"
|
||||
return headers
|
||||
|
||||
def handle_exception(self, e):
|
||||
print(f"报错: {str(e)}")
|
||||
return {'vod_play_from': '哎呀翻车啦', 'vod_play_url': f'翻车啦${self.excepturl}'}
|
||||
+191
-1880
@@ -1,1881 +1,192 @@
|
||||
{
|
||||
"spider": "./spider.jar",
|
||||
"wallpaper": "http://127.0.0.1:9978/proxy?do=wallpaper",
|
||||
"logo": "http://127.0.0.1:9978/file/TVBox/logo.png",
|
||||
"sites": [
|
||||
{
|
||||
"key": "豆瓣",
|
||||
"name": "豆瓣|首页",
|
||||
"type": 3,
|
||||
"api": "csp_Douban",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "配置中心",
|
||||
"name": "配置|中心",
|
||||
"type": 3,
|
||||
"api": "csp_Config",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"indexs": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "本地",
|
||||
"name": "本地|视频",
|
||||
"type": 3,
|
||||
"api": "csp_LocalFile"
|
||||
},
|
||||
{
|
||||
"key": "预告",
|
||||
"name": "新片|预告",
|
||||
"type": 3,
|
||||
"api": "csp_YGP",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "热播影视",
|
||||
"name": "热播|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppRJ",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 0,
|
||||
"ext": {
|
||||
"url": "http://v.rbotv.cn"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "三秋影视",
|
||||
"name": "三秋|APP",
|
||||
"type": 3,
|
||||
"api": "csp_App3Q"
|
||||
},
|
||||
{
|
||||
"key": "韩圈",
|
||||
"name": "韩圈|APP",
|
||||
"type": 3,
|
||||
"api": "csp_Hxq",
|
||||
"ext": "http://www.小不点.com/api/2026/fishhxq.php"
|
||||
},
|
||||
{
|
||||
"key": "无极99",
|
||||
"name": "无极丨APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "http://111.170.140.70:19987/app/bn",
|
||||
"LoginPath": "/app/log",
|
||||
"version": "",
|
||||
"appkey": "c403317c2a2946659b0bcbabdd5de43a",
|
||||
"versionName": "1.0.1",
|
||||
"name": "无极影视",
|
||||
"package": "com.wujiys.app",
|
||||
"buildNumber": "2001",
|
||||
"buildSignature": "A0859BDC35AD3E81D4051E2A4678C77C62773EDB3423DDF1DEFF94CB331D398E"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "听心99",
|
||||
"name": "听心|APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "https://api.12321app.com/api",
|
||||
"LoginPath": "/app/log",
|
||||
"appkey": "a0a18659a9977a47e53442cd084b536c",
|
||||
"versionName": "2.8.1",
|
||||
"name": "听心视频",
|
||||
"package": "com.iksp.adsys.jjsp",
|
||||
"buildNumber": "2001",
|
||||
"buildSignature": "03DD38CE4C3D62D0F0DEFACC06768D14EB382C7BD77A05B2EBF4D66E154A0D47"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "橙子99",
|
||||
"name": "橙子丨APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "http://113.31.180.218:19987/app/bn",
|
||||
"LoginPath": "/app/log",
|
||||
"appkey": "6e8f3764a0644f3686ab5cdd57bcdf48",
|
||||
"versionName": "4.3.1",
|
||||
"name": "小橙子",
|
||||
"package": "com.xchengzix.app",
|
||||
"buildNumber": "2001",
|
||||
"buildSignature": "99DA983CF878CEC016616175464A91A94775E20A489F07F76FCDEA1A0F2B6B45"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "追番99",
|
||||
"name": "追番|APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "https://api.hboqy.cn.hboqy.cn/api",
|
||||
"LoginPath": "/app/log",
|
||||
"appkey": "a0a18659a9977a47e53442cd084b536c",
|
||||
"versionName": "6.1.7",
|
||||
"name": "追番达人",
|
||||
"package": "com.android.packageinstaller",
|
||||
"buildNumber": "2002",
|
||||
"buildSignature": "A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "剧圈99",
|
||||
"name": "剧圈丨APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "http://124.221.3.182:19987/app/bn",
|
||||
"appkey": "d1f0c269eab74d93821fffc9befdbbba",
|
||||
"versionName": "1.2.0",
|
||||
"name": "剧圈圈",
|
||||
"package": "com.qingtangxiaozhuan.xyz",
|
||||
"buildNumber": "2002",
|
||||
"buildSignature": "054FA8DDA4319C6B6A9B954CA5777541C993F00B1B0BD4394F7EDE48184C4594"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "双星99",
|
||||
"name": "双星丨APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "http://175.178.65.250:19987/app/bn",
|
||||
"LoginPath": "/app/log",
|
||||
"appkey": "f66f65db127e48449f073c2c6eb0f993",
|
||||
"versionName": "6.4.5",
|
||||
"name": "双子星动漫",
|
||||
"package": "com.yingfu.mobile.android.pgsp",
|
||||
"buildNumber": "2003",
|
||||
"buildSignature": "054FA8DDA4319C6B6A9B954CA5777541C993F00B1B0BD4394F7EDE48184C4594"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "顾我99",
|
||||
"name": "顾我丨APP",
|
||||
"type": 3,
|
||||
"api": "csp_App99",
|
||||
"ext": {
|
||||
"host": "http://117.50.200.113:19987/app/bn",
|
||||
"LoginPath": "/app/log",
|
||||
"appkey": "040f9b1bc5e942569b5c3e63943306ab",
|
||||
"versionName": "4.3.1",
|
||||
"name": "顾我追剧",
|
||||
"package": "com.guwozhuijux.app",
|
||||
"buildNumber": "2001",
|
||||
"buildSignature": "5AD4436C4730FFE26910C86278B80F3E661C317FFC3616F702D20A729262624A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "天堂",
|
||||
"name": "天堂|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppDrama",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"appName": "电影天堂",
|
||||
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCduNEnfxGaLuQRk5ABzXHhPV43zi00sCHjLo8BYc+Wi6xXm2b4v0i28Sq4WlNCKhseft9fz8kO/qLr6/022o1RcuOU7e4GFL3U9WnNODwRBYSYWd+K8nqpI/tAUDmZEBGRWqjrc7x6aMl3A+xpnWkLbPCLsuhbuuUE3tv09oeOpwIDAQAB",
|
||||
"dataKey": "D2KREWRIBVNAUJJYEDL4VFHOY2Q0PQ==",
|
||||
"dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E",
|
||||
"pkg": "com.dytiantang.one",
|
||||
"host": "",
|
||||
"site": "https://dyttandroid04-1372779881.cos.ap-shanghai.myqcloud.com/app_dyttandroid.txt",
|
||||
"version": "3.0.0.7",
|
||||
"decrypt": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "橘汁",
|
||||
"name": "橘汁|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppDrama",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"appName": "橘汁",
|
||||
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr8SzZhjYy+rsya1K09t8d2K50pWFoBkgUqMpKOiW+3IEVKd4eTdvg9RSOjQ82kypL6R9BnsmrS1V8s4PVDwjQbUtYhTPPC9Hz16qY7rpD6m0d2vr09/UpWQ5uOy9PR0QTrsioveZ+DIe9jc3C+zBCu/kZSY/R8stwJoiitki3gwIDAQAB",
|
||||
"dataKey": "DGVQRUX5R1LWWDLHTGJSUKG1DJRVPQ==",
|
||||
"dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E",
|
||||
"pkg": "com.lxf.snzlcgtzxyx",
|
||||
"host": "",
|
||||
"site": "https://123-1349250429.cos.ap-shanghai.myqcloud.com/app.txt",
|
||||
"version": "3.0.2.1",
|
||||
"decrypt": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "华谊",
|
||||
"name": "华谊|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppDrama",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"appName": "华谊",
|
||||
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp9Ek4wIlQAtwFnuBRlsFiow2tr+4UOciGeNKbY7nL74etUqUb6fvpOSOHhFEfaWlfwUpOB17x3JEL3No19nfjCeVYrYPjlJcgoqUWH/tfIfFAQWvtxBIBlKazkhw8d3ChysWmeWRikKqkBsVRY4oqNPuj4sjm6Zult0U4I4prRQIDAQAB",
|
||||
"dataKey": "NDBYSZR1DMRRZ05NSUCWEJNIYWLBPT0=",
|
||||
"dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E",
|
||||
"pkg": "com.muyue.tool",
|
||||
"host": "",
|
||||
"site": "https://vip.123pan.cn/1851089669/oss/az5.txt",
|
||||
"version": "1.0.0.4",
|
||||
"decrypt": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "苹果",
|
||||
"name": "苹果|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppDrama",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"appName": "小苹果",
|
||||
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCduNEnfxGaLuQRk5ABzXHhPV43zi00sCHjLo8BYc+Wi6xXm2b4v0i28Sq4WlNCKhseft9fz8kO/qLr6/022o1RcuOU7e4GFL3U9WnNODwRBYSYWd+K8nqpI/tAUDmZEBGRWqjrc7x6aMl3A+xpnWkLbPCLsuhbuuUE3tv09oeOpwIDAQAB",
|
||||
"dataKey": "S0VNDTJHOFHHCNMRAW5IV2TOS2PBPQ==",
|
||||
"dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E",
|
||||
"pkg": "com.juechufsh.android.xpg1",
|
||||
"host": "",
|
||||
"site": "https://xpgandroid03-1372779881.cos.ap-beijing.myqcloud.com/app_xpg_android.txt",
|
||||
"version": "1.0.0.3",
|
||||
"decrypt": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "薯条",
|
||||
"name": "薯条|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppDrama",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"appName": "薯条影视",
|
||||
"publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCduNEnfxGaLuQRk5ABzXHhPV43zi00sCHjLo8BYc+Wi6xXm2b4v0i28Sq4WlNCKhseft9fz8kO/qLr6/022o1RcuOU7e4GFL3U9WnNODwRBYSYWd+K8nqpI/tAUDmZEBGRWqjrc7x6aMl3A+xpnWkLbPCLsuhbuuUE3tv09oeOpwIDAQAB",
|
||||
"dataKey": "A1VACZJWDKRZY1P3MFV0DDRAZ3F3PT0=",
|
||||
"dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E",
|
||||
"pkg": "com.st.standroid",
|
||||
"host": "",
|
||||
"site": "https://dyttandroid-1372779881.cos.ap-guangzhou.myqcloud.com/app_dyttandroid.txt",
|
||||
"version": "5.0.0.1",
|
||||
"decrypt": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "久久",
|
||||
"name": "久久|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppYsV2",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "http://99cms.jj99.icu:8199/api.php/app/"
|
||||
},
|
||||
{
|
||||
"key": "闪影",
|
||||
"name": "闪影|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppYsV2",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "http://38.47.213.61:41271/mogai_api.php/v1.vod"
|
||||
},
|
||||
{
|
||||
"key": "飞飞",
|
||||
"name": "飞飞丨APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppYsV2",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://qpcj.69mini.com/api.php/app/"
|
||||
},
|
||||
{
|
||||
"key": "云播",
|
||||
"name": "云播|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppFox",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"host": "http://app.hktvyb.cc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "首发",
|
||||
"name": "首发|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppQi",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://yun-1316442804.cos.ap-guangzhou.myqcloud.com/600.txt",
|
||||
"dataKey": "FTgP4Gq8zPiqbt7M",
|
||||
"dataIv": "FTgP4Gq8zPiqbt7M",
|
||||
"init": "initV122",
|
||||
"ua": "okhttp/3.10.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "金牌",
|
||||
"name": "金牌|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppQi",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"url": "https://qj4.catbb.xyz",
|
||||
"dataKey": "eecbio48dsq13kkk",
|
||||
"dataIv": "eecbio48dsq13kkk",
|
||||
"search": "searchList4",
|
||||
"init": "initV122",
|
||||
"ua": "okhttp/3.10.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "老鹰",
|
||||
"name": "老鹰|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppQi",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://maotouyinghubei.oss-cn-wuhan-lr.aliyuncs.com/maotouyinghb.txt",
|
||||
"dataKey": "zxPtEUDGVllIUhDB",
|
||||
"dataIv": "zxPtEUDGVllIUhDB",
|
||||
"ua": "okhttp/3.10.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "蓝鹰",
|
||||
"name": "蓝鹰|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppQi",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://xinlanyinghb.oss-cn-wuhan-lr.aliyuncs.com/xly.txt",
|
||||
"dataKey": "ca94b06ca359d80e",
|
||||
"dataIv": "ca94b06ca359d80e",
|
||||
"init": "initV120",
|
||||
"ua": "okhttp/3.10.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "猎豹",
|
||||
"name": "猎豹|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppGet",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"url": "https://444421.xyz",
|
||||
"dataKey": "#getapp@TMD@2025",
|
||||
"dataIv": "#getapp@TMD@2025"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "王子",
|
||||
"name": "王子|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppGet",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"url": "https://app.95112475.xyz",
|
||||
"dataKey": "5a9w6x58dsq6z3a6",
|
||||
"dataIv": "5a9w6x58dsq6z3a6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "秒看",
|
||||
"name": "秒看|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppGet",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://mk1080.top/get.txt",
|
||||
"dataKey": "c60d88b2eep53za8",
|
||||
"dataIv": "c60d88b2eep53za8",
|
||||
"token": "4181e508e7a17657d6a6246e70b1b13553e5ae9d8d287dc47000fb2df638dffa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "茉莉",
|
||||
"name": "茉莉|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppGet",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://gitee.com/wmmoliill/wimg/raw/master/img/bk/9.txt",
|
||||
"dataKey": "88689667dce61725",
|
||||
"dataIv": "88689667dce61725"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "灵虎",
|
||||
"name": "灵虎|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppGet",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://bind.315999.xyz/89.txt",
|
||||
"dataKey": "#getapp@TMD@2025",
|
||||
"dataIv": "#getapp@TMD@2025"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩视频",
|
||||
"name": "哔哩|视频",
|
||||
"type": 3,
|
||||
"api": "csp_BiliYS",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": {
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "三六零",
|
||||
"name": "三六零|视频",
|
||||
"type": 3,
|
||||
"api": "csp_SP360"
|
||||
},
|
||||
{
|
||||
"key": "玩偶",
|
||||
"name": "玩偶|4K",
|
||||
"type": 3,
|
||||
"api": "csp_Wogg",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://www.wogg.net",
|
||||
"https://wogg.xxooo.cf",
|
||||
"https://woggpan.xxooo.cf"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "快映",
|
||||
"name": "快映|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"http://38.76.197.172:12521"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "木偶",
|
||||
"name": "木偶|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://123.666291.xyz",
|
||||
"https://666.666291.xyz",
|
||||
"https://www.muou.site",
|
||||
"https://www.muou.asia"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "蜡笔",
|
||||
"name": "蜡笔|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"http://www.xiaocgege.shop",
|
||||
"http://xiaocge.fun",
|
||||
"http://feimo.fun",
|
||||
"http://xiaocgege.shop"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "至臻",
|
||||
"name": "至臻|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://mihdr.top",
|
||||
"https://www.miqk.cc",
|
||||
"https://www.mihdr.top"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "多多",
|
||||
"name": "多多|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://tv.yydsys.top",
|
||||
"https://tv.yydsys.cc",
|
||||
"https://tv.214521.xyz"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "欧哥",
|
||||
"name": "欧哥|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://woog.nxog.eu.org",
|
||||
"https://woog.nxog.fun",
|
||||
"https://woog.nxog.eu.org",
|
||||
"https://woog.430520.xyz"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "二小",
|
||||
"name": "二小|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://www.2xiaopan.top",
|
||||
"https://www.erxiaozhan.top",
|
||||
"https://www.2xiaozhan.top"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "虎斑",
|
||||
"name": "虎斑|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": [
|
||||
"http://38.76.197.172:16969"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "夸父",
|
||||
"name": "夸父|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShareKF",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"style": {
|
||||
"type": "list",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://www.kfzys.net"
|
||||
],
|
||||
"cookie": "bbs_sid=p5mugcm9r147o1d3qpi0su1ucm; bbs_token=gDMAOehNUQetTJv9Lnet0J_2FGJmgdvnx90iTZqzU_2FnO0_3D"
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "盘它",
|
||||
"name": "盘它|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebSharePT",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"style": {
|
||||
"type": "list"
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "123",
|
||||
"name": "123|4K",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare123",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"style": {
|
||||
"type": "list",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": {
|
||||
"site": [
|
||||
"https://123panfx.com",
|
||||
"https://pan1.me"
|
||||
]
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "指南",
|
||||
"name": "指南|4K",
|
||||
"type": 3,
|
||||
"api": "csp_4KZhinan",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "人人",
|
||||
"name": "人人|4K",
|
||||
"type": 3,
|
||||
"api": "csp_RenRen",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "即刻",
|
||||
"name": "即刻|4K",
|
||||
"type": 3,
|
||||
"api": "csp_Jike",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"style": {
|
||||
"type": "list"
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "双星",
|
||||
"name": "双星|4K",
|
||||
"type": 3,
|
||||
"api": "csp_ShuangXing",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"style": {
|
||||
"type": "list"
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "好看短剧",
|
||||
"name": "好看|短剧",
|
||||
"type": 3,
|
||||
"api": "csp_HaokanDJ",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"genre": "shortdrama"
|
||||
},
|
||||
{
|
||||
"key": "围观短剧",
|
||||
"name": "围观|短剧",
|
||||
"type": 3,
|
||||
"api": "csp_WeiguanDJ",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"genre": "shortdrama"
|
||||
},
|
||||
{
|
||||
"key": "星芽短剧",
|
||||
"name": "星芽|短剧",
|
||||
"type": 3,
|
||||
"api": "./py/星芽短剧.py",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"genre": "shortdrama"
|
||||
},
|
||||
{
|
||||
"key": "独播影视",
|
||||
"name": "独播|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Duboku"
|
||||
},
|
||||
{
|
||||
"key": "厂长影视",
|
||||
"name": "厂长|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Czsapp",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://cz01.vip"
|
||||
},
|
||||
{
|
||||
"key": "金牌影视",
|
||||
"name": "金牌|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Jpys",
|
||||
"ext": "https://y2s52n7.com,https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.sizhengxt.com,https://m.jiabaide.cn"
|
||||
},
|
||||
{
|
||||
"key": "瓜子影视",
|
||||
"name": "瓜子|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Gz360"
|
||||
},
|
||||
{
|
||||
"key": "云播影视",
|
||||
"name": "云播|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Tvyb"
|
||||
},
|
||||
{
|
||||
"key": "骚火影视",
|
||||
"name": "骚火|影视",
|
||||
"type": 3,
|
||||
"api": "csp_SaoHuo",
|
||||
"ext": "https://shdy5.us"
|
||||
},
|
||||
{
|
||||
"key": "农民影视",
|
||||
"name": "农民|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Wwys",
|
||||
"ext": "https://vip.wwgz.cn:5200"
|
||||
},
|
||||
{
|
||||
"key": "爱看机器人",
|
||||
"name": "爱看|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Ikanbot",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "小镇影视",
|
||||
"name": "小镇|影视",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "./XBPQ/小镇影视.json"
|
||||
},
|
||||
{
|
||||
"key": "面包影视",
|
||||
"name": "面包|影视",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "./XBPQ/面包影视.json"
|
||||
},
|
||||
{
|
||||
"key": "永乐影视",
|
||||
"name": "永乐|影视",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "./XBPQ/永乐影视.json"
|
||||
},
|
||||
{
|
||||
"key": "剧圈影视",
|
||||
"name": "剧圈|影视",
|
||||
"type": 3,
|
||||
"api": "csp_XYQHiker",
|
||||
"ext": "./XYQHiker/剧圈影视.json"
|
||||
},
|
||||
{
|
||||
"key": "1905",
|
||||
"name": "1905|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Web1905",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0
|
||||
},
|
||||
{
|
||||
"key": "哆啦新番社",
|
||||
"name": "哆啦|新番社",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"style": {
|
||||
"type": "list"
|
||||
},
|
||||
"ext": "./XBPQ/哆啦新番社.json"
|
||||
},
|
||||
{
|
||||
"key": "Anime1",
|
||||
"name": "A1|动漫",
|
||||
"type": 3,
|
||||
"api": "./js/drpy2.min.js",
|
||||
"ext": "./js/Anime1.js"
|
||||
},
|
||||
{
|
||||
"key": "漫国动漫",
|
||||
"name": "漫国丨动漫",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"api": "csp_AppSy",
|
||||
"ext": {
|
||||
"site": "https://dm-1255775577.cos.ap-guangzhou.myqcloud.com/dmg/api.txt",
|
||||
"siteKey": "rectangleadsadxa",
|
||||
"listKey": "aassddwwxxllsx1x",
|
||||
"parsesKey": "aassddwwxxllsx1x"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "方舟动漫",
|
||||
"name": "方舟丨动漫",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"api": "csp_AppGet",
|
||||
"ext": {
|
||||
"url": "https://www.cyfz.top",
|
||||
"dataKey": "e72cdfd629e8895d",
|
||||
"dataIv": "e72cdfd629e8895d"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "曼波动漫",
|
||||
"name": "曼波|动漫",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"api": "csp_AppGet",
|
||||
"ext": {
|
||||
"url": "https://app.omofun1.top",
|
||||
"dataKey": "66dc309cbeeca454",
|
||||
"dataIv": "66dc309cbeeca454"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "咕咕动漫",
|
||||
"name": "咕咕|动漫",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"api": "csp_AppGet",
|
||||
"ext": {
|
||||
"url": "https://www.gugu3.com",
|
||||
"dataKey": "nKfZ8KX6JTNWRzTD",
|
||||
"dataIv": "nKfZ8KX6JTNWRzTD"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "巴士动漫",
|
||||
"name": "巴士|动漫",
|
||||
"type": 3,
|
||||
"api": "csp_XYQHiker",
|
||||
"ext": "./XYQHiker/巴士动漫.json"
|
||||
},
|
||||
{
|
||||
"key": "路漫漫",
|
||||
"name": "路漫漫|动漫",
|
||||
"type": 3,
|
||||
"api": "./js/drpy2.min.js",
|
||||
"ext": "./js/路漫漫.js"
|
||||
},
|
||||
{
|
||||
"key": "去看吧",
|
||||
"name": "去看吧|动漫",
|
||||
"type": 3,
|
||||
"api": "./js/drpy2.min.js",
|
||||
"ext": "./js/去看吧.js"
|
||||
},
|
||||
{
|
||||
"key": "荐片",
|
||||
"name": "荐片|磁力",
|
||||
"api": "csp_JianPian",
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "修罗",
|
||||
"name": "修罗|磁力",
|
||||
"api": "csp_Xlys",
|
||||
"type": 3,
|
||||
"ext": "https://www.xlysw.ggff.net"
|
||||
},
|
||||
{
|
||||
"key": "七味",
|
||||
"name": "七味|磁力",
|
||||
"type": 3,
|
||||
"api": "csp_QnMp4",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://www.qwshow.com,https://www.qwmkv.com,https://www.qwfilm.com,https://www.qwfun.com,https://www.qnnull.com,https://www.qnnull.com"
|
||||
},
|
||||
{
|
||||
"key": "New6v",
|
||||
"name": "New6V|磁力",
|
||||
"type": 3,
|
||||
"api": "csp_New6v",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://www.xb6v.com"
|
||||
},
|
||||
{
|
||||
"key": "美剧迷",
|
||||
"name": "美剧迷|磁力",
|
||||
"type": 3,
|
||||
"api": "csp_MeijuMi",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "迅雷吧",
|
||||
"name": "迅雷吧|磁力",
|
||||
"type": 3,
|
||||
"api": "csp_Xunlei8",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://xunlei8.me"
|
||||
},
|
||||
{
|
||||
"key": "电影港",
|
||||
"name": "电影港|磁力",
|
||||
"type": 3,
|
||||
"api": "csp_XYQHiker",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "./XYQHiker/电影港.json"
|
||||
},
|
||||
{
|
||||
"key": "阿里云盘",
|
||||
"name": "阿里|云盘",
|
||||
"type": 3,
|
||||
"api": "csp_PanAli",
|
||||
"searchable": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "list",
|
||||
"ratio": 1.433
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克网盘",
|
||||
"name": "夸克|网盘",
|
||||
"type": 3,
|
||||
"api": "csp_PanQuark",
|
||||
"searchable": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "list",
|
||||
"ratio": 1.433
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "UC网盘",
|
||||
"name": "UC|网盘",
|
||||
"type": 3,
|
||||
"api": "csp_PanUC",
|
||||
"searchable": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "list",
|
||||
"ratio": 1.433
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "百度网盘",
|
||||
"name": "百度|网盘",
|
||||
"type": 3,
|
||||
"api": "csp_PanBaidu",
|
||||
"searchable": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "list",
|
||||
"ratio": 1.433
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "盘搜",
|
||||
"name": "盘搜|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_PanSou",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "古哥",
|
||||
"name": "古哥|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_GugeSo",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "兄弟",
|
||||
"name": "兄弟|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_XiongdiPan",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "百酷",
|
||||
"name": "百酷|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_Baiku",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "米搜",
|
||||
"name": "米搜|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_MiSou",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "鬼鬼",
|
||||
"name": "鬼鬼|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_GuiGui",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "混合",
|
||||
"name": "混合|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_HunHePan",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "天翼",
|
||||
"name": "天翼|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_TianYiSou",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "趣盘",
|
||||
"name": "趣盘|搜索",
|
||||
"type": 3,
|
||||
"api": "csp_QuPanSo",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"key": "88看球",
|
||||
"name": "88|看球",
|
||||
"type": 3,
|
||||
"api": "csp_Kanqiu",
|
||||
"gridview": 3,
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "球通体育",
|
||||
"name": "球通|体育",
|
||||
"type": 3,
|
||||
"api": "csp_QiutongTY",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "瓜子体育",
|
||||
"name": "瓜子|体育",
|
||||
"type": 3,
|
||||
"api": "csp_GuaziTY",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "咖啡体育",
|
||||
"name": "咖啡|体育",
|
||||
"type": 3,
|
||||
"api": "csp_KafeiTY",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "919体育",
|
||||
"name": "919|体育",
|
||||
"type": 3,
|
||||
"api": "csp_919TY",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "呦呦DJ",
|
||||
"name": "呦呦|DJ",
|
||||
"type": 3,
|
||||
"api": "csp_Djuu",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "轮回DJ",
|
||||
"name": "轮回|DJ",
|
||||
"type": 3,
|
||||
"api": "csp_Djlh",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "蜻蜓FM",
|
||||
"name": "蜻蜓|FM",
|
||||
"type": 3,
|
||||
"api": "csp_QingtingFM",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "世界听书",
|
||||
"name": "世界|听书",
|
||||
"type": 3,
|
||||
"api": "csp_TingShijie",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "戏曲多多",
|
||||
"name": "戏曲|多多",
|
||||
"type": 3,
|
||||
"api": "csp_AppLY",
|
||||
"style": {
|
||||
"type": "list"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "爱听音乐",
|
||||
"name": "爱听|音乐",
|
||||
"type": 3,
|
||||
"api": "./py/爱听音乐.py"
|
||||
},
|
||||
{
|
||||
"key": "网络直播",
|
||||
"name": "网络|直播",
|
||||
"type": 3,
|
||||
"api": "./py/网络直播.py"
|
||||
},
|
||||
{
|
||||
"key": "哔哩直播",
|
||||
"name": "哔哩|直播",
|
||||
"type": 3,
|
||||
"api": "./py/哔哩直播.py"
|
||||
},
|
||||
{
|
||||
"key": "哔哩合集",
|
||||
"name": "哔哩|合集",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": {
|
||||
"json": "./json/哔哩合集.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩哔哩演唱会",
|
||||
"name": "哔哩|音乐",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": {
|
||||
"json": "./json/哔哩哔哩演唱会.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩哔哩听书",
|
||||
"name": "哔哩|听书",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": {
|
||||
"json": "./json/哔哩哔哩听书.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩哔哩相声",
|
||||
"name": "哔哩|相声",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": {
|
||||
"json": "./json/哔哩哔哩相声.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩哔哩小品",
|
||||
"name": "哔哩|小品",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": {
|
||||
"json": "./json/哔哩哔哩小品.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩哔哩戏曲",
|
||||
"name": "哔哩|戏曲",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": {
|
||||
"json": "./json/哔哩哔哩戏曲.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "少儿教育",
|
||||
"name": "少儿|教育",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"json": "./json/少儿教育.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "小学课堂",
|
||||
"name": "小学|课堂",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"json": "./json/小学课堂.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "初中课堂",
|
||||
"name": "初中|课堂",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"json": "./json/初中课堂.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "高中课堂",
|
||||
"name": "高中|课堂",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"json": "./json/高中课堂.json",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
|
||||
},
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "急救教学",
|
||||
"name": "急救|教学",
|
||||
"type": 3,
|
||||
"api": "csp_FirstAid",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 3.8
|
||||
},
|
||||
"gridview": "0-0-4.1"
|
||||
},
|
||||
{
|
||||
"key": "养生堂",
|
||||
"name": "养生|知识",
|
||||
"type": 3,
|
||||
"api": "csp_YST",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "版本信息",
|
||||
"name": "版本|信息",
|
||||
"type": 3,
|
||||
"api": "csp_Market",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"indexs": 0,
|
||||
"ext": "https://pizazz.s3.bitiful.net/single.json"
|
||||
},
|
||||
{
|
||||
"key": "push_agent",
|
||||
"name": "手机|推送",
|
||||
"type": 3,
|
||||
"api": "csp_Push",
|
||||
"searchable": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0
|
||||
}
|
||||
],
|
||||
"lives": [
|
||||
{}
|
||||
],
|
||||
"parses": [
|
||||
{
|
||||
"name": "聚合",
|
||||
"type": 3,
|
||||
"url": "Web"
|
||||
},
|
||||
{
|
||||
"name": "虾米",
|
||||
"type": 0,
|
||||
"url": "https://jx.xmflv.com/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "云解",
|
||||
"type": 0,
|
||||
"url": "https://yparse.ik9.cc/index.php?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "咸鱼",
|
||||
"type": 0,
|
||||
"url": "https://jx.xymp4.cc/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "淘片",
|
||||
"type": 0,
|
||||
"url": "https://jx.yparse.com/index.php?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "冰豆",
|
||||
"type": 0,
|
||||
"url": "https://bd.jx.cn/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "七七",
|
||||
"type": 0,
|
||||
"url": "https://jx.77flv.cc/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "盘古",
|
||||
"type": 0,
|
||||
"url": "https://www.playm3u8.cn/jiexi.php?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "夜幕",
|
||||
"type": 0,
|
||||
"url": "https://yemu.xyz/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"rules": [
|
||||
{
|
||||
"name": "农民",
|
||||
"hosts": [
|
||||
"toutiaovod.com"
|
||||
],
|
||||
"regex": [
|
||||
"video/tos/cn"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "火山",
|
||||
"hosts": [
|
||||
"huoshan.com"
|
||||
],
|
||||
"regex": [
|
||||
"item_id="
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "抖音",
|
||||
"hosts": [
|
||||
"douyin.com"
|
||||
],
|
||||
"regex": [
|
||||
"is_play_url="
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "磁力广告",
|
||||
"hosts": [
|
||||
"magnet"
|
||||
],
|
||||
"regex": [
|
||||
"更多",
|
||||
"请访问",
|
||||
"example",
|
||||
"社 區",
|
||||
"x u u",
|
||||
"直 播",
|
||||
"更 新",
|
||||
"社 区",
|
||||
"有趣",
|
||||
"有 趣",
|
||||
"英皇体育",
|
||||
"全中文AV在线",
|
||||
"澳门皇冠赌场",
|
||||
"哥哥快来",
|
||||
"美女荷官",
|
||||
"裸聊",
|
||||
"新片首发",
|
||||
"UUE29"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "饭团点击",
|
||||
"hosts": [
|
||||
"dadagui",
|
||||
"freeok",
|
||||
"dadagui"
|
||||
],
|
||||
"script": [
|
||||
"document.querySelector(\"#playleftiframe\").contentWindow.document.querySelector(\"#start\").click();"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "毛驴点击",
|
||||
"hosts": [
|
||||
"www.maolvys.com"
|
||||
],
|
||||
"script": [
|
||||
"document.getElementsByClassName('swal-buttonswal-button--confirm')[0].click()"
|
||||
]
|
||||
}
|
||||
],
|
||||
"doh": [
|
||||
{
|
||||
"name": "Google",
|
||||
"url": "https://dns.google/dns-query",
|
||||
"ips": [
|
||||
"8.8.4.4",
|
||||
"8.8.8.8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Cloudflare",
|
||||
"url": "https://cloudflare-dns.com/dns-query",
|
||||
"ips": [
|
||||
"1.1.1.1",
|
||||
"1.0.0.1",
|
||||
"2606:4700:4700::1111",
|
||||
"2606:4700:4700::1001"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "AdGuard",
|
||||
"url": "https://dns.adguard.com/dns-query",
|
||||
"ips": [
|
||||
"94.140.14.140",
|
||||
"94.140.14.141"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DNSWatch",
|
||||
"url": "https://resolver2.dns.watch/dns-query",
|
||||
"ips": [
|
||||
"84.200.69.80",
|
||||
"84.200.70.40"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Quad9",
|
||||
"url": "https://dns.quad9.net/dns-quer",
|
||||
"ips": [
|
||||
"9.9.9.9",
|
||||
"149.112.112.112"
|
||||
]
|
||||
}
|
||||
],
|
||||
"flags": [
|
||||
"youku",
|
||||
"优酷",
|
||||
"优 酷",
|
||||
"优酷视频",
|
||||
"qq",
|
||||
"腾讯",
|
||||
"腾 讯",
|
||||
"腾讯视频",
|
||||
"iqiyi",
|
||||
"qiyi",
|
||||
"奇艺",
|
||||
"爱奇艺",
|
||||
"爱 奇 艺",
|
||||
"m1905",
|
||||
"xigua",
|
||||
"letv",
|
||||
"leshi",
|
||||
"乐视",
|
||||
"乐 视",
|
||||
"sohu",
|
||||
"搜狐",
|
||||
"搜 狐",
|
||||
"搜狐视频",
|
||||
"tudou",
|
||||
"pptv",
|
||||
"mgtv",
|
||||
"芒果",
|
||||
"imgo",
|
||||
"芒果TV",
|
||||
"芒 果 T V",
|
||||
"bilibili",
|
||||
"哔 哩",
|
||||
"哔 哩 哔 哩"
|
||||
],
|
||||
"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": "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"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ads": [
|
||||
"static-mozai.4gtv.tv"
|
||||
]
|
||||
{
|
||||
"spider": "./spider.jar;md5;8c879fe501ce509c5b2adacf037381c9",
|
||||
"wallpaper": "http://127.0.0.1:9978/proxy?do=wallpaper",
|
||||
"sites": [
|
||||
{"key": "豆瓣","name": "豆瓣|首页","type": 3,"api": "csp_Douban","searchable": 0},
|
||||
{"key": "配置中心","name": "配置|中心","type": 3,"api": "csp_Config","searchable": 0,"changeable": 0,"indexs": 0,"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "本地","name": "本地|视频","type": 3,"api": "csp_LocalFile"},
|
||||
{"key": "预告","name": "新片|预告","type": 3,"api": "csp_YGP","searchable": 0},
|
||||
{"key": "热播影视","name": "热播|APP","type": 3,"api": "csp_AppRJ","searchable": 1,"quickSearch": 1,"filterable": 0,"ext": {"url": "http://v.rbotv.cn"}},
|
||||
{"key": "三秋影视","name": "三秋|APP","type": 3,"api": "csp_App3Q"},
|
||||
{"key": "韩圈","name": "韩圈|APP","type": 3,"api": "csp_Hxq","ext": "http://www.小不点.com/api/2026/fishhxq.php"},
|
||||
{"key": "无极99","name": "无极丨APP","type": 3,"api": "csp_App99","ext": {"host": "http://111.170.140.70:19987/app/bn","LoginPath": "/app/log","version": "","appkey": "c403317c2a2946659b0bcbabdd5de43a","versionName": "1.0.1","name": "无极影视","package": "com.wujiys.app","buildNumber": "2001","buildSignature": "A0859BDC35AD3E81D4051E2A4678C77C62773EDB3423DDF1DEFF94CB331D398E"}},
|
||||
{"key": "听心99","name": "听心|APP","type": 3,"api": "csp_App99","ext": {"host": "https://api.12321app.com/api","LoginPath": "/app/log","appkey": "a0a18659a9977a47e53442cd084b536c","versionName": "2.8.1","name": "听心视频","package": "com.iksp.adsys.jjsp","buildNumber": "2001","buildSignature": "03DD38CE4C3D62D0F0DEFACC06768D14EB382C7BD77A05B2EBF4D66E154A0D47"}},
|
||||
{"key": "橙子99","name": "橙子丨APP","type": 3,"api": "csp_App99","ext": {"host": "http://113.31.180.218:19987/app/bn","LoginPath": "/app/log","appkey": "6e8f3764a0644f3686ab5cdd57bcdf48","versionName": "4.3.1","name": "小橙子","package": "com.xchengzix.app","buildNumber": "2001","buildSignature": "99DA983CF878CEC016616175464A91A94775E20A489F07F76FCDEA1A0F2B6B45"}},
|
||||
{"key": "追番99","name": "追番|APP","type": 3,"api": "csp_App99","ext": {"host": "https://api.hboqy.cn.hboqy.cn/api","LoginPath": "/app/log","appkey": "a0a18659a9977a47e53442cd084b536c","versionName": "6.1.7","name": "追番达人","package": "com.android.packageinstaller","buildNumber": "2002","buildSignature": "A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC"}},
|
||||
{"key": "剧圈99","name": "剧圈丨APP","type": 3,"api": "csp_App99","ext": {"host": "http://124.221.3.182:19987/app/bn","appkey": "d1f0c269eab74d93821fffc9befdbbba","versionName": "1.2.0","name": "剧圈圈","package": "com.qingtangxiaozhuan.xyz","buildNumber": "2002","buildSignature": "054FA8DDA4319C6B6A9B954CA5777541C993F00B1B0BD4394F7EDE48184C4594"}},
|
||||
{"key": "双星99","name": "双星丨APP","type": 3,"api": "csp_App99","ext": {"host": "http://175.178.65.250:19987/app/bn","LoginPath": "/app/log","appkey": "f66f65db127e48449f073c2c6eb0f993","versionName": "6.4.5","name": "双子星动漫","package": "com.yingfu.mobile.android.pgsp","buildNumber": "2003","buildSignature": "054FA8DDA4319C6B6A9B954CA5777541C993F00B1B0BD4394F7EDE48184C4594"}},
|
||||
{"key": "顾我99","name": "顾我丨APP","type": 3,"api": "csp_App99","ext": {"host": "http://117.50.200.113:19987/app/bn","LoginPath": "/app/log","appkey": "040f9b1bc5e942569b5c3e63943306ab","versionName": "4.3.1","name": "顾我追剧","package": "com.guwozhuijux.app","buildNumber": "2001","buildSignature": "5AD4436C4730FFE26910C86278B80F3E661C317FFC3616F702D20A729262624A"}},
|
||||
{"key": "天堂","name": "天堂|APP","type": 3,"api": "csp_AppDrama","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"appName": "电影天堂","publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCduNEnfxGaLuQRk5ABzXHhPV43zi00sCHjLo8BYc+Wi6xXm2b4v0i28Sq4WlNCKhseft9fz8kO/qLr6/022o1RcuOU7e4GFL3U9WnNODwRBYSYWd+K8nqpI/tAUDmZEBGRWqjrc7x6aMl3A+xpnWkLbPCLsuhbuuUE3tv09oeOpwIDAQAB","dataKey": "D2KREWRIBVNAUJJYEDL4VFHOY2Q0PQ==","dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E","pkg": "com.dytiantang.one","host": "","site": "https://dyttandroid04-1372779881.cos.ap-shanghai.myqcloud.com/app_dyttandroid.txt","version": "3.0.0.7","decrypt": "0"}},
|
||||
{"key": "橘汁","name": "橘汁|APP","type": 3,"api": "csp_AppDrama","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"appName": "橘汁","publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr8SzZhjYy+rsya1K09t8d2K50pWFoBkgUqMpKOiW+3IEVKd4eTdvg9RSOjQ82kypL6R9BnsmrS1V8s4PVDwjQbUtYhTPPC9Hz16qY7rpD6m0d2vr09/UpWQ5uOy9PR0QTrsioveZ+DIe9jc3C+zBCu/kZSY/R8stwJoiitki3gwIDAQAB","dataKey": "DGVQRUX5R1LWWDLHTGJSUKG1DJRVPQ==","dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E","pkg": "com.lxf.snzlcgtzxyx","host": "","site": "https://123-1349250429.cos.ap-shanghai.myqcloud.com/app.txt","version": "3.0.2.1","decrypt": "1"}},
|
||||
{"key": "华谊","name": "华谊|APP","type": 3,"api": "csp_AppDrama","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"appName": "华谊","publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp9Ek4wIlQAtwFnuBRlsFiow2tr+4UOciGeNKbY7nL74etUqUb6fvpOSOHhFEfaWlfwUpOB17x3JEL3No19nfjCeVYrYPjlJcgoqUWH/tfIfFAQWvtxBIBlKazkhw8d3ChysWmeWRikKqkBsVRY4oqNPuj4sjm6Zult0U4I4prRQIDAQAB","dataKey": "NDBYSZR1DMRRZ05NSUCWEJNIYWLBPT0=","dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E","pkg": "com.muyue.tool","host": "","site": "https://vip.123pan.cn/1851089669/oss/az5.txt","version": "1.0.0.4","decrypt": "1"}},
|
||||
{"key": "苹果","name": "苹果|APP","type": 3,"api": "csp_AppDrama","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"appName": "小苹果","publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCduNEnfxGaLuQRk5ABzXHhPV43zi00sCHjLo8BYc+Wi6xXm2b4v0i28Sq4WlNCKhseft9fz8kO/qLr6/022o1RcuOU7e4GFL3U9WnNODwRBYSYWd+K8nqpI/tAUDmZEBGRWqjrc7x6aMl3A+xpnWkLbPCLsuhbuuUE3tv09oeOpwIDAQAB","dataKey": "S0VNDTJHOFHHCNMRAW5IV2TOS2PBPQ==","dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E","pkg": "com.juechufsh.android.xpg1","host": "","site": "https://xpgandroid03-1372779881.cos.ap-beijing.myqcloud.com/app_xpg_android.txt","version": "1.0.0.3","decrypt": "0"}},
|
||||
{"key": "薯条","name": "薯条|APP","type": 3,"api": "csp_AppDrama","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": {"appName": "薯条影视","publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCduNEnfxGaLuQRk5ABzXHhPV43zi00sCHjLo8BYc+Wi6xXm2b4v0i28Sq4WlNCKhseft9fz8kO/qLr6/022o1RcuOU7e4GFL3U9WnNODwRBYSYWd+K8nqpI/tAUDmZEBGRWqjrc7x6aMl3A+xpnWkLbPCLsuhbuuUE3tv09oeOpwIDAQAB","dataKey": "A1VACZJWDKRZY1P3MFV0DDRAZ3F3PT0=","dataIv": "OC1A06E197EF10CF3F6058CA7A803B5E","pkg": "com.st.standroid","host": "","site": "https://dyttandroid-1372779881.cos.ap-guangzhou.myqcloud.com/app_dyttandroid.txt","version": "5.0.0.1","decrypt": "0"}},
|
||||
{"key": "久久","name": "久久|APP","type": 3,"api": "csp_AppYsV2","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "http://99cms.jj99.icu:8199/api.php/app/"},
|
||||
{"key": "闪影","name": "闪影|APP","type": 3,"api": "csp_AppYsV2","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "http://38.47.213.61:41271/mogai_api.php/v1.vod"},
|
||||
{"key": "飞飞","name": "飞飞丨APP","type": 3,"api": "csp_AppYsV2","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://qpcj.69mini.com/api.php/app/"},
|
||||
{"key": "云播","name": "云播|APP","type": 3,"api": "csp_AppFox","searchable": 1,"changeable": 1,"ext": {"host": "http://app.hktvyb.cc"}},
|
||||
{"key": "首发","name": "首发|APP","type": 3,"api": "csp_AppQi","searchable": 1,"changeable": 1,"ext": {"site": "https://yun-1316442804.cos.ap-guangzhou.myqcloud.com/600.txt","dataKey": "FTgP4Gq8zPiqbt7M","dataIv": "FTgP4Gq8zPiqbt7M","init": "initV122","ua": "okhttp/3.10.0"}},
|
||||
{"key": "金牌","name": "金牌|APP","type": 3,"api": "csp_AppQi","searchable": 1,"changeable": 1,"ext": {"url": "https://qj4.catbb.xyz","dataKey": "eecbio48dsq13kkk","dataIv": "eecbio48dsq13kkk","search": "searchList4","init": "initV122","ua": "okhttp/3.10.0"}},
|
||||
{"key": "老鹰","name": "老鹰|APP","type": 3,"api": "csp_AppQi","searchable": 1,"changeable": 1,"ext": {"site": "https://maotouyinghubei.oss-cn-wuhan-lr.aliyuncs.com/maotouyinghb.txt","dataKey": "zxPtEUDGVllIUhDB","dataIv": "zxPtEUDGVllIUhDB","ua": "okhttp/3.10.0"}},
|
||||
{"key": "蓝鹰","name": "蓝鹰|APP","type": 3,"api": "csp_AppQi","searchable": 1,"changeable": 1,"ext": {"site": "https://xinlanyinghb.oss-cn-wuhan-lr.aliyuncs.com/xly.txt","dataKey": "ca94b06ca359d80e","dataIv": "ca94b06ca359d80e","init": "initV120","ua": "okhttp/3.10.0"}},
|
||||
{"key": "猎豹","name": "猎豹|APP","type": 3,"api": "csp_AppGet","searchable": 1,"changeable": 1,"ext": {"url": "https://444421.xyz","dataKey": "#getapp@TMD@2025","dataIv": "#getapp@TMD@2025"}},
|
||||
{"key": "王子","name": "王子|APP","type": 3,"api": "csp_AppGet","searchable": 1,"changeable": 1,"ext": {"url": "https://app.95112475.xyz","dataKey": "5a9w6x58dsq6z3a6","dataIv": "5a9w6x58dsq6z3a6"}},
|
||||
{"key": "秒看","name": "秒看|APP","type": 3,"api": "csp_AppGet","searchable": 1,"changeable": 1,"ext": {"site": "https://mk1080.top/get.txt","dataKey": "c60d88b2eep53za8","dataIv": "c60d88b2eep53za8","token": "4181e508e7a17657d6a6246e70b1b13553e5ae9d8d287dc47000fb2df638dffa"}},
|
||||
{"key": "茉莉","name": "茉莉|APP","type": 3,"api": "csp_AppGet","searchable": 1,"changeable": 1,"ext": {"site": "https://gitee.com/wmmoliill/wimg/raw/master/img/bk/9.txt","dataKey": "88689667dce61725","dataIv": "88689667dce61725"}},
|
||||
{"key": "灵虎","name": "灵虎|APP","type": 3,"api": "csp_AppGet","searchable": 1,"changeable": 1,"ext": {"site": "https://bind.315999.xyz/89.txt","dataKey": "#getapp@TMD@2025","dataIv": "#getapp@TMD@2025"}},
|
||||
{"key": "哔哩视频","name": "哔哩|视频","type": 3,"api": "csp_BiliYS","searchable": 1,"quickSearch": 0,"filterable": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.433},"ext": {"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"}},
|
||||
{"key": "三六零","name": "三六零|视频","type": 3,"api": "csp_SP360"},
|
||||
{"key": "玩偶","name": "玩偶|4K","type": 3,"api": "csp_Wogg","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["https://www.wogg.net","https://wogg.xxooo.cf","https://woggpan.xxooo.cf"]},"timeout": 60},
|
||||
{"key": "快映","name": "快映|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["http://38.76.197.172:12521"]},"timeout": 60},
|
||||
{"key": "木偶","name": "木偶|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["https://123.666291.xyz","https://666.666291.xyz","https://www.muou.site","https://www.muou.asia"]},"timeout": 60},
|
||||
{"key": "蜡笔","name": "蜡笔|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["http://www.xiaocgege.shop","http://xiaocge.fun","http://feimo.fun","http://xiaocgege.shop"]},"timeout": 60},
|
||||
{"key": "至臻","name": "至臻|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["https://mihdr.top","https://www.miqk.cc","https://www.mihdr.top"]},"timeout": 60},
|
||||
{"key": "多多","name": "多多|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["https://tv.yydsys.top","https://tv.yydsys.cc","https://tv.214521.xyz"]},"timeout": 60},
|
||||
{"key": "欧哥","name": "欧哥|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["https://woog.nxog.eu.org","https://woog.nxog.fun","https://woog.nxog.eu.org","https://woog.430520.xyz"]},"timeout": 60},
|
||||
{"key": "二小","name": "二小|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["https://www.2xiaopan.top","https://www.erxiaozhan.top","https://www.2xiaozhan.top"]},"timeout": 60},
|
||||
{"key": "虎斑","name": "虎斑|4K","type": 3,"api": "csp_PanWebShare","searchable": 1,"quickSearch": 1,"filterable": 1,"changeable": 1,"ext": {"site": ["http://38.76.197.172:16969"]},"timeout": 60},
|
||||
{"key": "夸父","name": "夸父|4K","type": 3,"api": "csp_PanWebShareKF","searchable": 1,"quickSearch": 0,"filterable": 0,"style": {"type": "list","ratio": 1.433},"ext": {"site": ["https://www.kfzys.net"],"cookie": "bbs_sid=p5mugcm9r147o1d3qpi0su1ucm; bbs_token=gDMAOehNUQetTJv9Lnet0J_2FGJmgdvnx90iTZqzU_2FnO0_3D"},"timeout": 60},
|
||||
{"key": "盘它","name": "盘它|4K","type": 3,"api": "csp_PanWebSharePT","searchable": 1,"quickSearch": 0,"filterable": 0,"style": {"type": "list"},"timeout": 60},
|
||||
{"key": "123","name": "123|4K","type": 3,"api": "csp_PanWebShare123","searchable": 1,"quickSearch": 0,"filterable": 0,"style": {"type": "list","ratio": 1.433},"ext": {"site": ["https://123panfx.com","https://pan1.me"]},"timeout": 60},
|
||||
{"key": "指南","name": "指南|4K","type": 3,"api": "csp_4KZhinan","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 60},
|
||||
{"key": "人人","name": "人人|4K","type": 3,"api": "csp_RenRen","searchable": 1,"quickSearch": 1,"filterable": 1,"timeout": 60},
|
||||
{"key": "即刻","name": "即刻|4K","type": 3,"api": "csp_Jike","searchable": 1,"quickSearch": 0,"filterable": 0,"style": {"type": "list"},"timeout": 60},
|
||||
{"key": "双星","name": "双星|4K","type": 3,"api": "csp_ShuangXing","searchable": 1,"quickSearch": 0,"filterable": 0,"style": {"type": "list"},"timeout": 60},
|
||||
{"key": "好看短剧","name": "好看|短剧","type": 3,"api": "csp_HaokanDJ","searchable": 1,"changeable": 1,"quickSearch": 1,"filterable": 1,"genre": "shortdrama"},
|
||||
{"key": "围观短剧","name": "围观|短剧","type": 3,"api": "csp_WeiguanDJ","searchable": 1,"changeable": 1,"quickSearch": 1,"filterable": 1,"genre": "shortdrama"},
|
||||
{"key": "星芽短剧","name": "星芽|短剧","type": 3,"api": "./py/星芽短剧.py","searchable": 1,"changeable": 1,"quickSearch": 1,"filterable": 1,"genre": "shortdrama"},
|
||||
{"key": "独播影视","name": "独播|影视","type": 3,"api": "csp_Duboku"},
|
||||
{"key": "厂长影视","name": "厂长|影视","type": 3,"api": "csp_Czsapp","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://cz01.vip"},
|
||||
{"key": "金牌影视","name": "金牌|影视","type": 3,"api": "csp_Jpys","ext": "https://y2s52n7.com,https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.sizhengxt.com,https://m.jiabaide.cn"},
|
||||
{"key": "修罗影视","name": "修罗|影视","api": "csp_Xlys","type": 3,"ext": "https://www.xlysw.ggff.net"},
|
||||
{"key": "瓜子影视","name": "瓜子|影视","type": 3,"api": "csp_Gz360"},
|
||||
{"key": "云播影视","name": "云播|影视","type": 3,"api": "csp_Tvyb"},
|
||||
{"key": "骚火影视","name": "骚火|影视","type": 3,"api": "csp_SaoHuo","ext": "https://shdy5.us"},
|
||||
{"key": "农民影视","name": "农民|影视","type": 3,"api": "csp_Wwys","ext": "https://vip.wwgz.cn:5200"},
|
||||
{"key": "爱看机器人","name": "爱看|影视","type": 3,"api": "csp_Ikanbot","searchable": 1,"quickSearch": 1,"filterable": 1},
|
||||
{"key": "小镇影视","name": "小镇|影视","type": 3,"api": "csp_XBPQ","ext": "./json/XZYS.json"},
|
||||
{"key": "面包影视","name": "面包|影视","type": 3,"api": "csp_XBPQ","ext": "./json/MBYS.json"},
|
||||
{"key": "永乐影视","name": "永乐|影视","type": 3,"api": "csp_XBPQ","ext": "./json/YLYS.json"},
|
||||
{"key": "剧圈影视","name": "剧圈|影视","type": 3,"api": "csp_XYQHiker","ext": "./json/JQYS.json"},
|
||||
{"key": "1905","name": "1905|影视","type": 3,"api": "csp_Web1905","searchable": 1,"quickSearch": 0,"filterable": 0},
|
||||
{"key": "哆啦新番社","name": "哆啦|新番社","type": 3,"api": "csp_XBPQ","style": {"type": "list"},"ext": "./json/DLXFS.json"},
|
||||
{"key": "Anime1","name": "A1|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/Anime1.js"},
|
||||
{"key": "漫国动漫","name": "漫国丨动漫","type": 3,"searchable": 1,"api": "csp_AppSy","ext": {"site": "https://dm-1255775577.cos.ap-guangzhou.myqcloud.com/dmg/api.txt","siteKey": "rectangleadsadxa","listKey": "aassddwwxxllsx1x","parsesKey": "aassddwwxxllsx1x"}},
|
||||
{"key": "方舟动漫","name": "方舟丨动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://www.cyfz.top","dataKey": "e72cdfd629e8895d","dataIv": "e72cdfd629e8895d"}},
|
||||
{"key": "曼波动漫","name": "曼波|动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://app.omofun1.top","dataKey": "66dc309cbeeca454","dataIv": "66dc309cbeeca454"}},
|
||||
{"key": "咕咕动漫","name": "咕咕|动漫","type": 3,"searchable": 1,"api": "csp_AppGet","ext": {"url": "https://www.gugu3.com","dataKey": "nKfZ8KX6JTNWRzTD","dataIv": "nKfZ8KX6JTNWRzTD"}},
|
||||
{"key": "巴士动漫","name": "巴士|动漫","type": 3,"api": "csp_XYQHiker","ext": "https://git.yylx.win/raw.githubusercontent.com/PizazzGY/NewTVBox/main/anime/json/bsdm.json"},
|
||||
{"key": "路漫漫","name": "路漫漫|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/LMM.js"},
|
||||
{"key": "去看吧","name": "去看吧|动漫","type": 3,"api": "https://pan.vma.cc/pan/down.php/ec67b9045d393737f073d2c9365533f0.js","ext": "./js/QKB.js"},
|
||||
{"key": "荐片","name": "荐片|磁力","api": "csp_JianPian","type": 3},
|
||||
{"key": "七味","name": "七味|磁力","type": 3,"api": "csp_QnMp4","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://www.qwshow.com,https://www.qwmkv.com,https://www.qwfilm.com,https://www.qwfun.com,https://www.qnnull.com,https://www.qnnull.com"},
|
||||
{"key": "New6v","name": "New6V|磁力","type": 3,"api": "csp_New6v","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://www.xb6v.com"},
|
||||
{"key": "美剧迷","name": "美剧迷|磁力","type": 3,"api": "csp_MeijuMi","searchable": 1,"quickSearch": 1,"filterable": 1},
|
||||
{"key": "迅雷吧","name": "迅雷吧|磁力","type": 3,"api": "csp_Xunlei8","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "https://xunlei8.me"},
|
||||
{"key": "电影港","name": "电影港|磁力","type": 3,"api": "csp_XYQHiker","searchable": 1,"quickSearch": 1,"filterable": 1,"ext": "./json/DYG.json"},
|
||||
{"key": "阿里云盘","name": "阿里|云盘","type": 3,"api": "csp_PanAli","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "夸克网盘","name": "夸克|网盘","type": 3,"api": "csp_PanQuark","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "UC网盘","name": "UC|网盘","type": 3,"api": "csp_PanUC","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "百度网盘","name": "百度|网盘","type": 3,"api": "csp_PanBaidu","searchable": 0,"filterable": 0,"changeable": 0,"style": {"type": "list","ratio": 1.433}},
|
||||
{"key": "盘搜","name": "盘搜|搜索","type": 3,"api": "csp_PanSou","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "古哥","name": "古哥|搜索","type": 3,"api": "csp_GugeSo","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "兄弟","name": "兄弟|搜索","type": 3,"api": "csp_XiongdiPan","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "百酷","name": "百酷|搜索","type": 3,"api": "csp_Baiku","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "米搜","name": "米搜|搜索","type": 3,"api": "csp_MiSou","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "鬼鬼","name": "鬼鬼|搜索","type": 3,"api": "csp_GuiGui","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "混合","name": "混合|搜索","type": 3,"api": "csp_HunHePan","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "天翼","name": "天翼|搜索","type": 3,"api": "csp_TianYiSou","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "趣盘","name": "趣盘|搜索","type": 3,"api": "csp_QuPanSo","searchable": 1,"quickSearch": 0,"filterable": 0,"timeout": 60},
|
||||
{"key": "88看球","name": "88|看球","type": 3,"api": "csp_Kanqiu","gridview": 3,"style": {"type": "list"}},
|
||||
{"key": "球通体育","name": "球通|体育","type": 3,"api": "csp_QiutongTY","style": {"type": "list"}},
|
||||
{"key": "瓜子体育","name": "瓜子|体育","type": 3,"api": "csp_GuaziTY","style": {"type": "list"}},
|
||||
{"key": "咖啡体育","name": "咖啡|体育","type": 3,"api": "csp_KafeiTY","style": {"type": "list"}},
|
||||
{"key": "919体育","name": "919|体育","type": 3,"api": "csp_919TY","style": {"type": "list"}},
|
||||
{"key": "呦呦DJ","name": "呦呦|DJ","type": 3,"api": "csp_Djuu","style": {"type": "list"}},
|
||||
{"key": "轮回DJ","name": "轮回|DJ","type": 3,"api": "csp_Djlh","style": {"type": "list"}},
|
||||
{"key": "蜻蜓FM","name": "蜻蜓|FM","type": 3,"api": "csp_QingtingFM","style": {"type": "list"}},
|
||||
{"key": "世界听书","name": "世界|听书","type": 3,"api": "csp_TingShijie","style": {"type": "list"}},
|
||||
{"key": "戏曲多多","name": "戏曲|多多","type": 3,"api": "csp_AppLY","style": {"type": "list"}},
|
||||
{"key": "爱听音乐","name": "爱听|音乐","type": 3,"api": "./py/爱听音乐.py"},
|
||||
{"key": "网络直播","name": "网络|直播","type": 3,"api": "./py/WLZB.py"},
|
||||
{"key": "哔哩直播","name": "哔哩|直播","type": 3,"api": "./py/BLZB.py"},
|
||||
{"key": "哔哩合集","name": "哔哩|合集","type": 3,"api": "csp_Bili","searchable": 1,"quickSearch": 0,"filterable": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.433},"ext": {"json": "./json/BLHJ.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"}},
|
||||
{"key": "哔哩哔哩演唱会","name": "哔哩|音乐","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLYCH.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩听书","name": "哔哩|听书","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLTS.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩相声","name": "哔哩|相声","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXS.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩小品","name": "哔哩|小品","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXP.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "哔哩哔哩戏曲","name": "哔哩|戏曲","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 0,"ext": {"json": "./json/BLXQ.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "少儿教育","name": "少儿|教育","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/SEJY.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "小学课堂","name": "小学|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/XXKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "初中课堂","name": "初中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/CZKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "高中课堂","name": "高中|课堂","type": 3,"api": "csp_Bili","searchable": 0,"quickSearch": 0,"filterable": 1,"ext": {"json": "./json/GZKT.json","cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"},"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "急救教学","name": "急救|教学","type": 3,"api": "csp_FirstAid","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 3.8},"gridview": "0-0-4.1"},
|
||||
{"key": "养生堂","name": "养生|知识","type": 3,"api": "csp_YST","searchable": 0,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 1.597}},
|
||||
{"key": "push_agent","name": "手机|推送","type": 3,"api": "csp_Push","searchable": 0,"filterable": 0,"changeable": 0}
|
||||
],
|
||||
"lives": [
|
||||
{}
|
||||
],
|
||||
"parses": [
|
||||
{"name": "聚合","type": 3,"url": "Web"},
|
||||
{"name": "虾米","type": 0,"url": "https://jx.xmflv.com/?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "云解","type": 0,"url": "https://yparse.ik9.cc/index.php?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "咸鱼","type": 0,"url": "https://jx.xymp4.cc/?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "淘片","type": 0,"url": "https://jx.yparse.com/index.php?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "冰豆","type": 0,"url": "https://bd.jx.cn/?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "七七","type": 0,"url": "https://jx.77flv.cc/?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "盘古","type": 0,"url": "https://www.playm3u8.cn/jiexi.php?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}},
|
||||
{"name": "夜幕","type": 0,"url": "https://yemu.xyz/?url=","ext": {"header": {"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"}}}
|
||||
],
|
||||
"rules": [
|
||||
{"name": "农民","hosts": ["toutiaovod.com"],"regex": ["video/tos/cn"]},
|
||||
{"name": "火山","hosts": ["huoshan.com"],"regex": ["item_id="]},
|
||||
{"name": "抖音","hosts": ["douyin.com"],"regex": ["is_play_url="]},
|
||||
{"name": "磁力广告","hosts": ["magnet"],"regex": ["更多","请访问","example","社 區","x u u","直 播","更 新","社 区","有趣","有 趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]},
|
||||
{"name": "饭团点击","hosts": ["dadagui","freeok","dadagui"],"script": ["document.querySelector(\"#playleftiframe\").contentWindow.document.querySelector(\"#start\").click();"]},
|
||||
{"name": "毛驴点击","hosts": ["www.maolvys.com"],"script": ["document.getElementsByClassName('swal-buttonswal-button--confirm')[0].click()"]}
|
||||
],
|
||||
"doh": [
|
||||
{"name": "Google","url": "https://dns.google/dns-query","ips": ["8.8.4.4","8.8.8.8"]},
|
||||
{"name": "Cloudflare","url": "https://cloudflare-dns.com/dns-query","ips": ["1.1.1.1","1.0.0.1","2606:4700:4700::1111","2606:4700:4700::1001"]},
|
||||
{"name": "AdGuard","url": "https://dns.adguard.com/dns-query","ips": ["94.140.14.140","94.140.14.141"]},
|
||||
{"name": "DNSWatch","url": "https://resolver2.dns.watch/dns-query","ips": ["84.200.69.80","84.200.70.40"]},
|
||||
{"name": "Quad9","url": "https://dns.quad9.net/dns-quer","ips": ["9.9.9.9","149.112.112.112"]}
|
||||
],
|
||||
"flags": [
|
||||
"youku",
|
||||
"优酷",
|
||||
"优酷视频",
|
||||
"qq",
|
||||
"腾讯",
|
||||
"腾讯视频",
|
||||
"iqiyi",
|
||||
"qiyi",
|
||||
"奇艺",
|
||||
"爱奇艺",
|
||||
"m1905",
|
||||
"xigua",
|
||||
"letv",
|
||||
"leshi",
|
||||
"乐视",
|
||||
"sohu",
|
||||
"搜狐",
|
||||
"搜狐视频",
|
||||
"tudou",
|
||||
"pptv",
|
||||
"mgtv",
|
||||
"芒果",
|
||||
"imgo",
|
||||
"芒果TV",
|
||||
"bilibili",
|
||||
"哔 哩",
|
||||
"哔 哩 哔 哩"
|
||||
],
|
||||
"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": "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"}]},
|
||||
{"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"}]}
|
||||
],
|
||||
"ads": [
|
||||
"static-mozai.4gtv.tv"
|
||||
]
|
||||
}
|
||||
+1
-169
@@ -1,169 +1 @@
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 3个set-Cookie
|
||||
|
||||
var rule = {
|
||||
title:'Anime1动畫',
|
||||
host:'https://anime1.me',
|
||||
url: '/fyclass',
|
||||
detailUrl:'/?cat=fyid',
|
||||
searchUrl: '/page/fypage?s=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{'User-Agent': 'PC_UA'},
|
||||
timeout:5000,
|
||||
class_name:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&更早',
|
||||
class_url:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&2017',
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
var apiurl = 'https://v.anime1.me/api';
|
||||
var html = request(apiurl, {
|
||||
headers: {
|
||||
'Referer': HOST,
|
||||
},
|
||||
body: 'd=' + input,
|
||||
method: 'POST',
|
||||
withHeaders: true
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
print(json);
|
||||
log(Object.keys(json));
|
||||
let setCk = Object.keys(json).filter(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
// 3个set-Cookie
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(';');
|
||||
}
|
||||
cookie = cookie.split(';').filter(function(it) {
|
||||
return ['e', 'p', 'h'].includes(it.split('=')[0])
|
||||
}).join(';');
|
||||
log(cookie);
|
||||
var purl = JSON.parse(json.body).s[0].src;
|
||||
if (purl.startsWith('/')) {
|
||||
purl = 'https:' + purl
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'referer': HOST,
|
||||
'Cookie': cookie,
|
||||
'user-agent': PC_UA
|
||||
}),
|
||||
}
|
||||
`,
|
||||
limit:6,
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[2].includes('連載中');
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
if (MY_CATE === '連載中') return x[2].includes(MY_CATE);
|
||||
else if (MY_CATE === '2017') return x[3] <= MY_CATE;
|
||||
else return x[3] == MY_CATE;
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
pdfh = jsp.pdfh; pdfa = jsp.pdfa; pd = jsp.pd;
|
||||
var html = request(input);
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var vid = input.split('=')[1];
|
||||
let playKeys = Object.values(list).find(function(x) {
|
||||
return x[0] === parseInt(vid);
|
||||
});
|
||||
VOD = {
|
||||
vod_pic: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
vod_id: playKeys[0],
|
||||
vod_name: playKeys[1],
|
||||
vod_content: playKeys[2],
|
||||
vod_year: playKeys[3],
|
||||
type_name: playKeys[4],
|
||||
vod_actor: playKeys[5],
|
||||
};
|
||||
var pageurl = pd(html, '.cat-links&&a&&href');
|
||||
var pagenum = 1;
|
||||
let vod_tab_list = [];
|
||||
let vlist = [];
|
||||
for (let p = 1; p < parseInt(pagenum) + 1; p++) {
|
||||
let phtml = request(pageurl + '/page/' + pagenum);
|
||||
let new_vod_list = [];
|
||||
let vodList = [];
|
||||
vodList = pdfa(phtml, '.site-main&&article');
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
let ptitle = pdfh(it, '.entry-title&&Text').replace(/\\[(.*)\\]/, '$1');
|
||||
let purl = pd(it, '.video-js&&data-apireq');
|
||||
new_vod_list.push(ptitle + '$' + purl);
|
||||
}
|
||||
vlist = vlist.concat(new_vod_list);
|
||||
try {
|
||||
pagenum = pd(phtml, '.nav-previous&&a&&href').split('/page/')[1];
|
||||
} catch(e) {}
|
||||
}
|
||||
let vlist2 = vlist.reverse().join("#");
|
||||
vod_tab_list.push(vlist2);
|
||||
VOD.vod_play_from = '在线播放';
|
||||
VOD.vod_play_url = vod_tab_list.join("$$$");
|
||||
`,
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var wd = input.split('=')[1];
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[1].includes(wd);
|
||||
});
|
||||
log(playKeys);
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
Ly8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8gM+S4qnNldC1Db29raWUKCnZhciBydWxlID0gewoJdGl0bGU6J0FuaW1lMeWKqOeVqycsCglob3N0OidodHRwczovL2FuaW1lMS5tZScsCgl1cmw6ICcvZnljbGFzcycsCglkZXRhaWxVcmw6Jy8/Y2F0PWZ5aWQnLAoJc2VhcmNoVXJsOiAnL3BhZ2UvZnlwYWdlP3M9KionLAoJc2VhcmNoYWJsZToyLAoJcXVpY2tTZWFyY2g6MCwKCWhlYWRlcnM6eydVc2VyLUFnZW50JzogJ1BDX1VBJ30sCgl0aW1lb3V0OjUwMDAsCiAgICBjbGFzc19uYW1lOifpgKPovInkuK0mMjAyNSYyMDI0JjIwMjMmMjAyMiYyMDIxJjIwMjAmMjAxOSYyMDE4JuabtOaXqScsCiAgICBjbGFzc191cmw6J+mAo+i8ieS4rSYyMDI1JjIwMjQmMjAyMyYyMDIyJjIwMjEmMjAyMCYyMDE5JjIwMTgmMjAxNycsCglwbGF5X3BhcnNlOnRydWUsCglsYXp5OmBqczoKCQl2YXIgYXBpdXJsID0gJ2h0dHBzOi8vdi5hbmltZTEubWUvYXBpJzsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoYXBpdXJsLCB7CgkJCWhlYWRlcnM6IHsKCQkJCSdSZWZlcmVyJzogSE9TVCwKCQkJfSwKCQkJYm9keTogJ2Q9JyArIGlucHV0LAoJCQltZXRob2Q6ICdQT1NUJywKCQkJd2l0aEhlYWRlcnM6IHRydWUKCQl9KTsKCQlsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CgkJcHJpbnQoanNvbik7CgkJbG9nKE9iamVjdC5rZXlzKGpzb24pKTsKCQlsZXQgc2V0Q2sgPSBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoaXQgPT4gaXQudG9Mb3dlckNhc2UoKSA9PT0gInNldC1jb29raWUiKTsKCQlsZXQgY29va2llID0gc2V0Q2sgPyBqc29uW3NldENrXSA6ICIiOwoJCS8vIDPkuKpzZXQtQ29va2llCgkJaWYgKEFycmF5LmlzQXJyYXkoY29va2llKSkgewoJCQljb29raWUgPSBjb29raWUuam9pbignOycpOwoJCX0KCQljb29raWUgPSBjb29raWUuc3BsaXQoJzsnKS5maWx0ZXIoZnVuY3Rpb24oaXQpIHsKCQkJcmV0dXJuIFsnZScsICdwJywgJ2gnXS5pbmNsdWRlcyhpdC5zcGxpdCgnPScpWzBdKQoJCX0pLmpvaW4oJzsnKTsKCQlsb2coY29va2llKTsKCQl2YXIgcHVybCA9IEpTT04ucGFyc2UoanNvbi5ib2R5KS5zWzBdLnNyYzsKCQlpZiAocHVybC5zdGFydHNXaXRoKCcvJykpIHsKCQkJcHVybCA9ICdodHRwczonICsgcHVybAoJCX0KCQlpbnB1dCA9IHsKCQkJang6IDAsCgkJCXVybDogcHVybCwKCQkJcGFyc2U6IDAsCgkJCWhlYWRlcjogSlNPTi5zdHJpbmdpZnkoewoJCQkJJ3JlZmVyZXInOiBIT1NULAoJCQkJJ0Nvb2tpZSc6IGNvb2tpZSwKCQkJCSd1c2VyLWFnZW50JzogUENfVUEKCQkJfSksCgkJfQoJYCwKCWxpbWl0OjYsCgnmjqjojZA6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlyZXR1cm4geFsyXS5pbmNsdWRlcygn6YCj6LyJ5LitJyk7CgkJfSk7CgkJcGxheUtleXMuZm9yRWFjaChmdW5jdGlvbihpdCkgewoJCQlkLnB1c2goewoJCQkJdGl0bGU6IHN0cmlwSHRtbFRhZyhpdFsxXSksCgkJCQlpbWc6ICdodHRwczovL3N0YS5hbmljZG4uY29tL3BsYXllckltZy84LmpwZycsCgkJCQlkZXNjOiBpdFsyXSwKCQkJCXVybDogaXRbMF0sCgkJCX0pOwoJCX0pOwoJCXNldFJlc3VsdChkKTsKCWAsCgnkuIDnuqc6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlpZiAoTVlfQ0FURSA9PT0gJ+mAo+i8ieS4rScpIHJldHVybiB4WzJdLmluY2x1ZGVzKE1ZX0NBVEUpOwoJCQllbHNlIGlmIChNWV9DQVRFID09PSAnMjAxNycpIHJldHVybiB4WzNdIDw9IE1ZX0NBVEU7CgkJCWVsc2UgcmV0dXJuIHhbM10gPT0gTVlfQ0FURTsKCQl9KTsKCQlwbGF5S2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGl0KSB7CgkJCWQucHVzaCh7CgkJCQl0aXRsZTogc3RyaXBIdG1sVGFnKGl0WzFdKSwKCQkJCWltZzogJ2h0dHBzOi8vc3RhLmFuaWNkbi5jb20vcGxheWVySW1nLzguanBnJywKCQkJCWRlc2M6IGl0WzJdLAoJCQkJdXJsOiBpdFswXSwKCQkJfSk7CgkJfSk7CgkJc2V0UmVzdWx0KGQpOwoJYCwKCeS6jOe6pzogYGpzOgoJCXBkZmggPSBqc3AucGRmaDsgcGRmYSA9IGpzcC5wZGZhOyBwZCA9IGpzcC5wZDsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoaW5wdXQpOwoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJdmFyIHZpZCA9IGlucHV0LnNwbGl0KCc9JylbMV07CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maW5kKGZ1bmN0aW9uKHgpIHsKCQkJcmV0dXJuIHhbMF0gPT09IHBhcnNlSW50KHZpZCk7CgkJfSk7CgkJVk9EID0gewoJCQl2b2RfcGljOiAnaHR0cHM6Ly9zdGEuYW5pY2RuLmNvbS9wbGF5ZXJJbWcvOC5qcGcnLAoJCQl2b2RfaWQ6IHBsYXlLZXlzWzBdLAoJCQl2b2RfbmFtZTogcGxheUtleXNbMV0sCgkJCXZvZF9jb250ZW50OiBwbGF5S2V5c1syXSwKCQkJdm9kX3llYXI6IHBsYXlLZXlzWzNdLAoJCQl0eXBlX25hbWU6IHBsYXlLZXlzWzRdLAoJCQl2b2RfYWN0b3I6IHBsYXlLZXlzWzVdLAoJCX07CgkJdmFyIHBhZ2V1cmwgPSBwZChodG1sLCAnLmNhdC1saW5rcyYmYSYmaHJlZicpOwoJCXZhciBwYWdlbnVtID0gMTsKCQlsZXQgdm9kX3RhYl9saXN0ID0gW107CgkJbGV0IHZsaXN0ID0gW107CgkJZm9yIChsZXQgcCA9IDE7IHAgPCBwYXJzZUludChwYWdlbnVtKSArIDE7IHArKykgewoJCQlsZXQgcGh0bWwgPSByZXF1ZXN0KHBhZ2V1cmwgKyAnL3BhZ2UvJyArIHBhZ2VudW0pOwoJCQlsZXQgbmV3X3ZvZF9saXN0ID0gW107CgkJCWxldCB2b2RMaXN0ID0gW107CgkJCXZvZExpc3QgPSBwZGZhKHBodG1sLCAnLnNpdGUtbWFpbiYmYXJ0aWNsZScpOwoJCQlmb3IgKGxldCBpID0gMDsgaSA8IHZvZExpc3QubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBpdCA9IHZvZExpc3RbaV07CgkJCQlsZXQgcHRpdGxlID0gcGRmaChpdCwgJy5lbnRyeS10aXRsZSYmVGV4dCcpLnJlcGxhY2UoL1xcWyguKilcXF0vLCAnJDEnKTsKCQkJCWxldCBwdXJsID0gcGQoaXQsICcudmlkZW8tanMmJmRhdGEtYXBpcmVxJyk7CgkJCQluZXdfdm9kX2xpc3QucHVzaChwdGl0bGUgKyAnJCcgKyBwdXJsKTsKCQkJfQoJCQl2bGlzdCA9IHZsaXN0LmNvbmNhdChuZXdfdm9kX2xpc3QpOwoJCQl0cnkgewoJCQkJcGFnZW51bSA9IHBkKHBodG1sLCAnLm5hdi1wcmV2aW91cyYmYSYmaHJlZicpLnNwbGl0KCcvcGFnZS8nKVsxXTsKCQkJfSBjYXRjaChlKSB7fQoJCX0KCQlsZXQgdmxpc3QyID0gdmxpc3QucmV2ZXJzZSgpLmpvaW4oIiMiKTsKCQl2b2RfdGFiX2xpc3QucHVzaCh2bGlzdDIpOwoJCVZPRC52b2RfcGxheV9mcm9tID0gJ+mBk+mVv+WcqOe6vyc7CgkJVk9ELnZvZF9wbGF5X3VybCA9IHZvZF90YWJfbGlzdC5qb2luKCIkJCQiKTsKCWAsCgnmkJzntKI6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJdmFyIHdkID0gaW5wdXQuc3BsaXQoJz0nKVsxXTsKCQlsZXQgcGxheUtleXMgPSBPYmplY3QudmFsdWVzKGxpc3QpLmZpbHRlcihmdW5jdGlvbih4KSB7CgkJCXJldHVybiB4WzFdLmluY2x1ZGVzKHdkKTsKCQl9KTsKCQlsb2cocGxheUtleXMpOwoJCXBsYXlLZXlzLmZvckVhY2goZnVuY3Rpb24oaXQpIHsKCQkJZC5wdXNoKHsKCQkJCXRpdGxlOiBzdHJpcEh0bWxUYWcoaXRbMV0pLAoJCQkJaW1nOiAnaHR0cHM6Ly9zdGEuYW5pY2RuLmNvbS9wbGF5ZXJJbWcvOC5qcGcnLAoJCQkJZGVzYzogaXRbMl0sCgkJCQl1cmw6IGl0WzBdLAoJCQl9KTsKCQl9KTsKCQlzZXRSZXN1bHQoZCk7CglgLAp9
|
||||
@@ -0,0 +1,567 @@
|
||||
var rule = {
|
||||
title: "路漫漫",
|
||||
host: "https://www.lmm50.com",
|
||||
url: "/vod/show/id/fyclassfyfilter.html",
|
||||
searchUrl: '/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"3": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"4": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"5": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"6": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"7": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"8": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_url: "{{fl.排序}}{{fl.年代}}/page/fypage",
|
||||
filter_def: "",
|
||||
headers: {
|
||||
"User-Agent": "MOBILE_UA"
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: "日本动漫&国产动漫&欧美动漫&日本动画电影&国产动画电影&欧美动画电影",
|
||||
class_url: "6&7&8&3&4&5",
|
||||
class_parse: "",
|
||||
cate_exclude: "",
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
function getDAesString(token) {
|
||||
eval(getCryptoJS());
|
||||
var key = CryptoJS.enc.Utf8.parse("ejjooopppqqqrwww");
|
||||
|
||||
var iv = CryptoJS.enc.Utf8.parse("1348987635684651");
|
||||
|
||||
var token = CryptoJS.AES.decrypt(token, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
|
||||
return token.toString(CryptoJS.enc.Utf8);
|
||||
}
|
||||
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
if (html.encrypt == "1") {
|
||||
url = unescape(url);
|
||||
} else if (html.encrypt == "2") {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\.mp4|\.m3u8|\.flv/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: url.split("&")[0],
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var jsh = request(HOST + "/static/player/" + from + ".js", {
|
||||
headers: {
|
||||
Referer: input
|
||||
},
|
||||
}).match(/\.src\s*=\s*(.*?);/)[1];
|
||||
//log(MY_HOME);
|
||||
if (/type=/.test(jsh)) {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
} else {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
|
||||
jsh = JSON.parse(
|
||||
fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
onlyHeaders: true
|
||||
})
|
||||
).url;
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var postapi = jsh.match(/^(.*?\/\/.*?\/.*?\/)/)[1];
|
||||
|
||||
var posturl = postapi + playht.match(/post\("(.*?)"/)[1];
|
||||
if (/act\s*=/.test(playht)) {
|
||||
var vid = playht.match(/vid\s*=\s*"(.*?)"/)[1];
|
||||
var t = playht.match(/var\s*t\s*=\s*"(.*?)"/)[1];
|
||||
var token = playht.match(/token\s*=\s*"(.*?)"/)[1];
|
||||
var act = playht.match(/act\s*=\s*"(.*?)"/)[1];
|
||||
var play = playht.match(/play\s*=\s*"(.*?)"/)[1];
|
||||
token = getDAesString(token);
|
||||
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: {
|
||||
vid: vid,
|
||||
t: t,
|
||||
token: token,
|
||||
act: act,
|
||||
play: play,
|
||||
},
|
||||
timeout: 5000
|
||||
})
|
||||
);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var key = "";
|
||||
|
||||
playht.match(/var (\w+)="(.*?)";/g).forEach(function(list) {
|
||||
key += list.match(/"(.*?)"/)[1];
|
||||
});
|
||||
const bodys = JSON.parse(
|
||||
playht
|
||||
.match(/post\(.*?,(.*?),\n/)[1]
|
||||
.replace(/"keyyy"\s*:\s*''.*?''/, '"keyyy" : "' + key + '"')
|
||||
);
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: bodys
|
||||
})
|
||||
);
|
||||
if (data.ext == "xgplayer") {
|
||||
var dataurl =
|
||||
"https://yun.366day.site/mp4hls/xgplayer.php?vid=" + data.url;
|
||||
var video = fetch(dataurl, {
|
||||
headers: {
|
||||
Referer: jsh
|
||||
}
|
||||
}).match(
|
||||
/"url": "(.*?)"/
|
||||
)[1];
|
||||
input = {
|
||||
parse: 0,
|
||||
url: video,
|
||||
js: ''
|
||||
};
|
||||
} else if (data.ext == "hls" || data.ext == "hls_list") {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: decodeURIComponent(data.url),
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".video-img-box;h6.title&&Text;.lazyload&&data-src;.label&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".page-title&&Text;.tag-link&&Text",
|
||||
img: ".module-item-pic&&.lazyload&&src",
|
||||
desc: ".video-info-items:eq(3)&&Text;.video-info-items:eq(2)&&Text;;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text",
|
||||
content: ".video-info-content&&Text",
|
||||
tabs: ".module-tab-item.tab-item",
|
||||
lists: ".module-player-list:eq(#id) a",
|
||||
tab_text: "body&&Text",
|
||||
list_text: "body&&Text",
|
||||
list_url: "a&&href"
|
||||
},
|
||||
detailUrl: "",
|
||||
搜索: "*"
|
||||
}
|
||||
+1142
@@ -0,0 +1,1142 @@
|
||||
muban.vfed.二级.title = 'h1&&Text;.fed-col-md3--span:eq(0)&&Text';
|
||||
muban.vfed.二级.desc = '.fed-col-md3:eq(3)&&Text;;;.fed-col-md6:eq(0)&&Text;.fed-col-md6--span:eq(1)&&Text';
|
||||
var rule = {
|
||||
title: '去看吧',
|
||||
模板: 'vfed',
|
||||
host: 'https://qkan8.com',
|
||||
// url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
url: '/index.php/vod/show/id/fyclassfyfilter.html',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '{{fl.area}}{{fl.by}}{{fl.class}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"33": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"21": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "/area/大陆"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "/area/泰国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "/area/新加坡"
|
||||
}, {
|
||||
"n": "马来西亚",
|
||||
"v": "/area/马来西亚"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "/area/印度"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "/area/加拿大"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "/area/西班牙"
|
||||
}, {
|
||||
"n": "俄罗斯",
|
||||
"v": "/area/俄罗斯"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "/area/其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"50": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "/area/大陆"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "/area/泰国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "/area/新加坡"
|
||||
}, {
|
||||
"n": "马来西亚",
|
||||
"v": "/area/马来西亚"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "/area/印度"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "/area/加拿大"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "/area/西班牙"
|
||||
}, {
|
||||
"n": "俄罗斯",
|
||||
"v": "/area/俄罗斯"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "/area/其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"24": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "/area/大陆"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "/area/泰国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "/area/新加坡"
|
||||
}, {
|
||||
"n": "马来西亚",
|
||||
"v": "/area/马来西亚"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "/area/印度"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "/area/加拿大"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "/area/西班牙"
|
||||
}, {
|
||||
"n": "俄罗斯",
|
||||
"v": "/area/俄罗斯"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "/area/其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"22": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "/class/猎奇"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "/class/战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "伪娘",
|
||||
"v": "/class/伪娘"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "/class/美少女"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "/area/欧美"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "/area/其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "/year/2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "/year/2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "/year/2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "/year/2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "/year/2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "/year/2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "/year/2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "/year/2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "/year/1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "/year/1998"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
class_parse: '.fed-pops-list:eq(0)&&li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
|
||||
}
|
||||
@@ -0,0 +1,5310 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "沙雕动漫",
|
||||
"type_id": "一口气沙雕动漫"
|
||||
},
|
||||
{
|
||||
"type_name": "纪录片",
|
||||
"type_id": "纪录片超清"
|
||||
},
|
||||
{
|
||||
"type_name": "演唱会",
|
||||
"type_id": "演唱会超清"
|
||||
},
|
||||
{
|
||||
"type_name": "美食",
|
||||
"type_id": "美食超清"
|
||||
},
|
||||
{
|
||||
"type_name": "食谱",
|
||||
"type_id": "食谱"
|
||||
},
|
||||
{
|
||||
"type_name": "体育",
|
||||
"type_id": "体育超清"
|
||||
},
|
||||
{
|
||||
"type_name": "球星",
|
||||
"type_id": "球星"
|
||||
},
|
||||
{
|
||||
"type_name": "旅游",
|
||||
"type_id": "旅游"
|
||||
},
|
||||
{
|
||||
"type_name": "风景",
|
||||
"type_id": "风景4K"
|
||||
},
|
||||
{
|
||||
"type_name": "说案",
|
||||
"type_id": "说案"
|
||||
},
|
||||
{
|
||||
"type_name": "知名UP主",
|
||||
"type_id": "知名UP主"
|
||||
},
|
||||
{
|
||||
"type_name": "探索发现",
|
||||
"type_id": "探索发现超清"
|
||||
},
|
||||
{
|
||||
"type_name": "鬼畜",
|
||||
"type_id": "鬼畜"
|
||||
},
|
||||
{
|
||||
"type_name": "搞笑",
|
||||
"type_id": "搞笑超清"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童",
|
||||
"type_id": "儿童超清"
|
||||
},
|
||||
{
|
||||
"type_name": "动物世界",
|
||||
"type_id": "动物世界超清"
|
||||
},
|
||||
{
|
||||
"type_name": "相声小品",
|
||||
"type_id": "相声小品超清"
|
||||
},
|
||||
{
|
||||
"type_name": "戏曲",
|
||||
"type_id": "戏曲"
|
||||
},
|
||||
{
|
||||
"type_name": "解说",
|
||||
"type_id": "解说"
|
||||
},
|
||||
{
|
||||
"type_name": "演讲",
|
||||
"type_id": "演讲"
|
||||
},
|
||||
{
|
||||
"type_name": "小姐姐",
|
||||
"type_id": "小姐姐超清"
|
||||
},
|
||||
{
|
||||
"type_name": "荒野求生",
|
||||
"type_id": "荒野求生超清"
|
||||
},
|
||||
{
|
||||
"type_name": "健身",
|
||||
"type_id": "健身"
|
||||
},
|
||||
{
|
||||
"type_name": "帕梅拉",
|
||||
"type_id": "帕梅拉"
|
||||
},
|
||||
{
|
||||
"type_name": "太极拳",
|
||||
"type_id": "太极拳"
|
||||
},
|
||||
{
|
||||
"type_name": "广场舞",
|
||||
"type_id": "广场舞"
|
||||
},
|
||||
{
|
||||
"type_name": "舞蹈",
|
||||
"type_id": "舞蹈"
|
||||
},
|
||||
{
|
||||
"type_name": "音乐",
|
||||
"type_id": "音乐"
|
||||
},
|
||||
{
|
||||
"type_name": "歌曲",
|
||||
"type_id": "歌曲"
|
||||
},
|
||||
{
|
||||
"type_name": "MV",
|
||||
"type_id": "MV4K"
|
||||
},
|
||||
{
|
||||
"type_name": "舞曲",
|
||||
"type_id": "舞曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "4K",
|
||||
"type_id": "4K"
|
||||
},
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "电影"
|
||||
},
|
||||
{
|
||||
"type_name": "电视剧",
|
||||
"type_id": "电视剧"
|
||||
},
|
||||
{
|
||||
"type_name": "白噪音",
|
||||
"type_id": "白噪音超清"
|
||||
},
|
||||
{
|
||||
"type_name": "考公考证",
|
||||
"type_id": "考公考证"
|
||||
},
|
||||
{
|
||||
"type_name": "平面设计教学",
|
||||
"type_id": "平面设计教学"
|
||||
},
|
||||
{
|
||||
"type_name": "软件教程",
|
||||
"type_id": "软件教程"
|
||||
},
|
||||
{
|
||||
"type_name": "Windows",
|
||||
"type_id": "Windows"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"考公考证": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"演唱会超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "A阿杜",
|
||||
"v": "阿杜演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "A阿黛尔",
|
||||
"v": "阿黛尔演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBeyond",
|
||||
"v": "Beyond演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBy2",
|
||||
"v": "By2演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBIGBANG",
|
||||
"v": "BIGBANG演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "B布兰妮",
|
||||
"v": "布兰妮演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "B坂井泉水",
|
||||
"v": "坂井泉水演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈奕迅",
|
||||
"v": "陈奕迅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C蔡依林",
|
||||
"v": "蔡依林演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C初音未来",
|
||||
"v": "初音未来演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C蔡健雅",
|
||||
"v": "蔡健雅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈小春",
|
||||
"v": "陈小春演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C草蜢",
|
||||
"v": "草蜢演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈慧娴",
|
||||
"v": "陈慧娴演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C崔健",
|
||||
"v": "崔健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C仓木麻衣",
|
||||
"v": "仓木麻衣演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D戴荃",
|
||||
"v": "戴荃演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D动力火车",
|
||||
"v": "动力火车演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D丁当",
|
||||
"v": "丁当演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D刀郎",
|
||||
"v": "刀郎演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓紫棋",
|
||||
"v": "邓紫棋演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D戴佩妮",
|
||||
"v": "戴佩妮演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F飞儿乐队",
|
||||
"v": "飞儿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F费玉清",
|
||||
"v": "费玉清演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F费翔",
|
||||
"v": "费翔演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F方大同",
|
||||
"v": "方大同演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F房东的猫",
|
||||
"v": "房东的猫演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F凤飞飞",
|
||||
"v": "凤飞飞演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F凤凰传奇",
|
||||
"v": "凤凰传奇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭采洁",
|
||||
"v": "郭采洁演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G光良",
|
||||
"v": "光良演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭静",
|
||||
"v": "郭静演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭富城",
|
||||
"v": "郭富城演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H胡彦斌",
|
||||
"v": "胡彦斌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H胡夏",
|
||||
"v": "胡夏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H韩红",
|
||||
"v": "韩红演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄品源",
|
||||
"v": "黄品源演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄小琥",
|
||||
"v": "黄小琥演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H花儿乐队",
|
||||
"v": "花儿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄家强",
|
||||
"v": "黄家强演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H后街男孩",
|
||||
"v": "后街男孩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J经典老歌",
|
||||
"v": "经典老歌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J贾斯丁比伯",
|
||||
"v": "贾斯丁比伯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J金池",
|
||||
"v": "金池演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J金志文",
|
||||
"v": "金志文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J焦迈奇",
|
||||
"v": "焦迈奇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "K筷子兄弟",
|
||||
"v": "筷子兄弟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李玟",
|
||||
"v": "李玟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林忆莲",
|
||||
"v": "林忆莲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李克勤",
|
||||
"v": "李克勤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L刘宪华",
|
||||
"v": "刘宪华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李圣杰",
|
||||
"v": "李圣杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林宥嘉",
|
||||
"v": "林宥嘉演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L梁静茹",
|
||||
"v": "梁静茹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李健",
|
||||
"v": "李健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林俊杰",
|
||||
"v": "林俊杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李玉刚",
|
||||
"v": "李玉刚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林志炫",
|
||||
"v": "林志炫演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李荣浩",
|
||||
"v": "李荣浩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李宇春",
|
||||
"v": "李宇春演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L洛天依",
|
||||
"v": "洛天依演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林子祥",
|
||||
"v": "林子祥演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李宗盛",
|
||||
"v": "李宗盛演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L黎明",
|
||||
"v": "黎明演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L刘德华",
|
||||
"v": "刘德华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L罗大佑",
|
||||
"v": "罗大佑演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林肯公园",
|
||||
"v": "林肯公园演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "LLadyGaga",
|
||||
"v": "LadyGaga演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L旅行团乐队",
|
||||
"v": "旅行团乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M莫文蔚",
|
||||
"v": "莫文蔚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M毛不易",
|
||||
"v": "毛不易演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M梅艳芳",
|
||||
"v": "梅艳芳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M迈克尔杰克逊",
|
||||
"v": "迈克尔杰克逊演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "N南拳妈妈",
|
||||
"v": "南拳妈妈演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "P朴树",
|
||||
"v": "朴树演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Q齐秦",
|
||||
"v": "齐秦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Q青鸟飞鱼",
|
||||
"v": "青鸟飞鱼演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "R容祖儿",
|
||||
"v": "容祖儿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "R任贤齐",
|
||||
"v": "任贤齐演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S水木年华",
|
||||
"v": "水木年华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S孙燕姿",
|
||||
"v": "孙燕姿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S苏打绿",
|
||||
"v": "苏打绿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "SSHE",
|
||||
"v": "SHE演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S孙楠",
|
||||
"v": "孙楠演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T陶喆",
|
||||
"v": "陶喆演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭咏麟",
|
||||
"v": "谭咏麟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T田馥甄",
|
||||
"v": "田馥甄演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭维维",
|
||||
"v": "谭维维演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T逃跑计划",
|
||||
"v": "逃跑计划演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T田震",
|
||||
"v": "田震演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭晶",
|
||||
"v": "谭晶演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T屠洪刚",
|
||||
"v": "屠洪刚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T泰勒·斯威夫特",
|
||||
"v": "泰勒·斯威夫特演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王力宏",
|
||||
"v": "王力宏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王杰",
|
||||
"v": "王杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W吴克群",
|
||||
"v": "吴克群演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王心凌",
|
||||
"v": "王心凌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王靖雯",
|
||||
"v": "好声音王靖雯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W汪峰",
|
||||
"v": "汪峰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W伍佰",
|
||||
"v": "伍佰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王菲",
|
||||
"v": "王菲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W五月天",
|
||||
"v": "五月天演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W汪苏泷",
|
||||
"v": "汪苏泷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X徐佳莹",
|
||||
"v": "徐佳莹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X弦子",
|
||||
"v": "弦子演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X萧亚轩",
|
||||
"v": "萧亚轩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X许巍",
|
||||
"v": "许巍演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X薛之谦",
|
||||
"v": "薛之谦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X许嵩",
|
||||
"v": "许嵩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X小虎队",
|
||||
"v": "小虎队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X萧敬腾",
|
||||
"v": "萧敬腾演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X谢霆锋",
|
||||
"v": "谢霆锋演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X徐小凤",
|
||||
"v": "徐小凤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X信乐队",
|
||||
"v": "信乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y夜愿乐队",
|
||||
"v": "夜愿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y羽泉",
|
||||
"v": "羽泉演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y郁可唯",
|
||||
"v": "郁可唯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y叶倩文",
|
||||
"v": "叶倩文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨坤",
|
||||
"v": "杨坤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y庾澄庆",
|
||||
"v": "庾澄庆演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y尤长靖",
|
||||
"v": "尤长靖演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y易烊千玺",
|
||||
"v": "易烊千玺演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y袁娅维",
|
||||
"v": "袁娅维演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨丞琳",
|
||||
"v": "杨丞琳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨千嬅",
|
||||
"v": "杨千嬅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨宗纬",
|
||||
"v": "杨宗纬演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑秀文",
|
||||
"v": "郑秀文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周杰伦",
|
||||
"v": "周杰伦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张学友",
|
||||
"v": "张学友演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张信哲",
|
||||
"v": "张信哲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张宇",
|
||||
"v": "张宇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周华健",
|
||||
"v": "周华健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张韶涵",
|
||||
"v": "张韶涵演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周深",
|
||||
"v": "周深演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z纵贯线",
|
||||
"v": "纵贯线演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z赵雷",
|
||||
"v": "赵雷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周传雄",
|
||||
"v": "周传雄演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张国荣",
|
||||
"v": "张国荣演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周慧敏",
|
||||
"v": "周慧敏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张惠妹",
|
||||
"v": "张惠妹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周笔畅",
|
||||
"v": "周笔畅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑中基",
|
||||
"v": "郑中基演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张艺兴",
|
||||
"v": "张艺兴演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张震岳",
|
||||
"v": "张震岳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张雨生",
|
||||
"v": "张雨生演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑智化",
|
||||
"v": "郑智化演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z卓依婷",
|
||||
"v": "卓依婷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z中岛美雪",
|
||||
"v": "中岛美雪演唱会超清"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"探索发现超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"电影": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"鬼畜": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"一口气沙雕动漫": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"说案": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "说案"
|
||||
},
|
||||
{
|
||||
"n": "汤圆",
|
||||
"v": "汤圆说案"
|
||||
},
|
||||
{
|
||||
"n": "唐唐",
|
||||
"v": "唐唐说案"
|
||||
},
|
||||
{
|
||||
"n": "罗翔",
|
||||
"v": "罗翔说刑法"
|
||||
},
|
||||
{
|
||||
"n": "何家弘",
|
||||
"v": "何家弘说案"
|
||||
},
|
||||
{
|
||||
"n": "韩诺",
|
||||
"v": "韩诺说案"
|
||||
},
|
||||
{
|
||||
"n": "老V",
|
||||
"v": "老V说案"
|
||||
},
|
||||
{
|
||||
"n": "禁播档案‼️",
|
||||
"v": "禁播档案"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"演讲": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "全部演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "A艾跃进",
|
||||
"v": "艾跃进演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "C超级演说家",
|
||||
"v": "超级演说家4K"
|
||||
},
|
||||
{
|
||||
"n": "D电影",
|
||||
"v": "电影演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "D典籍里的中国",
|
||||
"v": "典籍里的中国4K"
|
||||
},
|
||||
{
|
||||
"n": "G感动中国",
|
||||
"v": "感动中国4K"
|
||||
},
|
||||
{
|
||||
"n": "G郭继承",
|
||||
"v": "郭继承演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "H华春莹",
|
||||
"v": "华春莹演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "L雷军",
|
||||
"v": "雷军演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "L罗翔",
|
||||
"v": "罗翔演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "R任正非",
|
||||
"v": "任正非演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "TED",
|
||||
"v": "TED演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "W汪文斌",
|
||||
"v": "汪文斌演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "Y一刻",
|
||||
"v": "一刻演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "Z赵立坚",
|
||||
"v": "赵立坚演讲4K"
|
||||
},
|
||||
{
|
||||
"n": "Z郑强",
|
||||
"v": "郑强演讲4K"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"解说": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "解说"
|
||||
},
|
||||
{
|
||||
"n": "电影",
|
||||
"v": "电影解说"
|
||||
},
|
||||
{
|
||||
"n": "电视",
|
||||
"v": "电视解说"
|
||||
},
|
||||
{
|
||||
"n": "历史",
|
||||
"v": "历史解说"
|
||||
},
|
||||
{
|
||||
"n": "动漫",
|
||||
"v": "动漫解说"
|
||||
},
|
||||
{
|
||||
"n": "小说",
|
||||
"v": "小说解说"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"风景4K": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "风景4K"
|
||||
},
|
||||
{
|
||||
"n": "A澳门",
|
||||
"v": "澳门风景4K"
|
||||
},
|
||||
{
|
||||
"n": "A安徽",
|
||||
"v": "安徽风景4K"
|
||||
},
|
||||
{
|
||||
"n": "B布达拉宫",
|
||||
"v": "布达拉宫风景4K"
|
||||
},
|
||||
{
|
||||
"n": "B北京",
|
||||
"v": "北京风景4K"
|
||||
},
|
||||
{
|
||||
"n": "C重庆",
|
||||
"v": "重庆风景4K"
|
||||
},
|
||||
{
|
||||
"n": "C草原",
|
||||
"v": "草原风景4K"
|
||||
},
|
||||
{
|
||||
"n": "D大海",
|
||||
"v": "大海风景4K"
|
||||
},
|
||||
{
|
||||
"n": "F福建",
|
||||
"v": "福建风景4K"
|
||||
},
|
||||
{
|
||||
"n": "G广东",
|
||||
"v": "广东风景4K"
|
||||
},
|
||||
{
|
||||
"n": "G广西",
|
||||
"v": "广西风景4K"
|
||||
},
|
||||
{
|
||||
"n": "G贵州",
|
||||
"v": "贵州风景4K"
|
||||
},
|
||||
{
|
||||
"n": "G甘肃",
|
||||
"v": "甘肃风景4K"
|
||||
},
|
||||
{
|
||||
"n": "H海南",
|
||||
"v": "海南风景4K"
|
||||
},
|
||||
{
|
||||
"n": "H河北",
|
||||
"v": "河北风景4K"
|
||||
},
|
||||
{
|
||||
"n": "H河南",
|
||||
"v": "河南风景4K"
|
||||
},
|
||||
{
|
||||
"n": "H湖北",
|
||||
"v": "湖北风景4K"
|
||||
},
|
||||
{
|
||||
"n": "H湖南",
|
||||
"v": "湖南风景4K"
|
||||
},
|
||||
{
|
||||
"n": "H黑龙江",
|
||||
"v": "黑龙江风景4K"
|
||||
},
|
||||
{
|
||||
"n": "J吉林",
|
||||
"v": "吉林风景4K"
|
||||
},
|
||||
{
|
||||
"n": "J江苏",
|
||||
"v": "江苏风景4K"
|
||||
},
|
||||
{
|
||||
"n": "J江西",
|
||||
"v": "江西风景4K"
|
||||
},
|
||||
{
|
||||
"n": "L辽宁",
|
||||
"v": "辽宁风景4K"
|
||||
},
|
||||
{
|
||||
"n": "M民宿",
|
||||
"v": "民宿风景4K"
|
||||
},
|
||||
{
|
||||
"n": "N内蒙古",
|
||||
"v": "内蒙古风景4K"
|
||||
},
|
||||
{
|
||||
"n": "N宁夏",
|
||||
"v": "宁夏风景4K"
|
||||
},
|
||||
{
|
||||
"n": "Q青海",
|
||||
"v": "青海风景4K"
|
||||
},
|
||||
{
|
||||
"n": "S上海",
|
||||
"v": "上海风景4K"
|
||||
},
|
||||
{
|
||||
"n": "S陕西",
|
||||
"v": "陕西风景4K"
|
||||
},
|
||||
{
|
||||
"n": "S四川",
|
||||
"v": "四川风景4K"
|
||||
},
|
||||
{
|
||||
"n": "S山西",
|
||||
"v": "山西风景4K"
|
||||
},
|
||||
{
|
||||
"n": "S山东",
|
||||
"v": "山东风景4K"
|
||||
},
|
||||
{
|
||||
"n": "T天津",
|
||||
"v": "天津风景4K"
|
||||
},
|
||||
{
|
||||
"n": "T台湾",
|
||||
"v": "台湾风景4K"
|
||||
},
|
||||
{
|
||||
"n": "T天空",
|
||||
"v": "天空风景4K"
|
||||
},
|
||||
{
|
||||
"n": "X西湖",
|
||||
"v": "西湖风景4K"
|
||||
},
|
||||
{
|
||||
"n": "X西藏",
|
||||
"v": "西藏风景4K"
|
||||
},
|
||||
{
|
||||
"n": "X新疆",
|
||||
"v": "新疆风景4K"
|
||||
},
|
||||
{
|
||||
"n": "X香港",
|
||||
"v": "香港风景4K"
|
||||
},
|
||||
{
|
||||
"n": "Y云南",
|
||||
"v": "云南风景4K"
|
||||
},
|
||||
{
|
||||
"n": "Z浙江",
|
||||
"v": "浙江风景4K"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"MV4K": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "MV4K"
|
||||
},
|
||||
{
|
||||
"n": "A阿杜",
|
||||
"v": "阿杜MV4K"
|
||||
},
|
||||
{
|
||||
"n": "A阿黛尔",
|
||||
"v": "阿黛尔MV4K"
|
||||
},
|
||||
{
|
||||
"n": "BBeyond",
|
||||
"v": "BeyondMV4K"
|
||||
},
|
||||
{
|
||||
"n": "BBy2",
|
||||
"v": "By2MV4K"
|
||||
},
|
||||
{
|
||||
"n": "BBIGBANG",
|
||||
"v": "BIGBANGMV4K"
|
||||
},
|
||||
{
|
||||
"n": "B布兰妮",
|
||||
"v": "布兰妮MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C陈奕迅",
|
||||
"v": "陈奕迅MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C蔡依林",
|
||||
"v": "蔡依林MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C初音未来",
|
||||
"v": "初音未来MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C蔡健雅",
|
||||
"v": "蔡健雅MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C陈小春",
|
||||
"v": "陈小春MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C草蜢",
|
||||
"v": "草蜢MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C陈慧娴",
|
||||
"v": "陈慧娴MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C崔健",
|
||||
"v": "崔健MV4K"
|
||||
},
|
||||
{
|
||||
"n": "C仓木麻衣",
|
||||
"v": "仓木麻衣MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D戴荃",
|
||||
"v": "戴荃MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D动力火车",
|
||||
"v": "动力火车MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D丁当",
|
||||
"v": "丁当MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D刀郎",
|
||||
"v": "刀郎MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D邓紫棋",
|
||||
"v": "邓紫棋MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D戴佩妮",
|
||||
"v": "戴佩妮MV4K"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F飞儿乐队",
|
||||
"v": "飞儿乐队MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F费玉清",
|
||||
"v": "费玉清MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F费翔",
|
||||
"v": "费翔MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F方大同",
|
||||
"v": "方大同MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F房东的猫",
|
||||
"v": "房东的猫MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F凤飞飞",
|
||||
"v": "凤飞飞MV4K"
|
||||
},
|
||||
{
|
||||
"n": "F凤凰传奇",
|
||||
"v": "凤凰传奇MV4K"
|
||||
},
|
||||
{
|
||||
"n": "G古风歌曲",
|
||||
"v": "古风歌曲4K"
|
||||
},
|
||||
{
|
||||
"n": "G国乐大典",
|
||||
"v": "国乐大典4K"
|
||||
},
|
||||
{
|
||||
"n": "G郭采洁",
|
||||
"v": "郭采洁MV4K"
|
||||
},
|
||||
{
|
||||
"n": "G光良",
|
||||
"v": "光良MV4K"
|
||||
},
|
||||
{
|
||||
"n": "G郭静",
|
||||
"v": "郭静MV4K"
|
||||
},
|
||||
{
|
||||
"n": "G郭富城",
|
||||
"v": "郭富城MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H胡彦斌",
|
||||
"v": "胡彦斌MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H胡夏",
|
||||
"v": "胡夏MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H韩红",
|
||||
"v": "韩红MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H黄品源",
|
||||
"v": "黄品源MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H黄小琥",
|
||||
"v": "黄小琥MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H花儿乐队",
|
||||
"v": "花儿乐队MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H黄家强",
|
||||
"v": "黄家强MV4K"
|
||||
},
|
||||
{
|
||||
"n": "H后街男孩",
|
||||
"v": "后街男孩MV4K"
|
||||
},
|
||||
{
|
||||
"n": "J经典老歌",
|
||||
"v": "经典老歌4K"
|
||||
},
|
||||
{
|
||||
"n": "J贾斯丁比伯",
|
||||
"v": "贾斯丁比伯MV4K"
|
||||
},
|
||||
{
|
||||
"n": "J金池",
|
||||
"v": "金池MV4K"
|
||||
},
|
||||
{
|
||||
"n": "J金志文",
|
||||
"v": "金志文MV4K"
|
||||
},
|
||||
{
|
||||
"n": "J焦迈奇",
|
||||
"v": "焦迈奇MV4K"
|
||||
},
|
||||
{
|
||||
"n": "K筷子兄弟",
|
||||
"v": "筷子兄弟MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李玟",
|
||||
"v": "李玟MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L林忆莲",
|
||||
"v": "林忆莲MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李克勤",
|
||||
"v": "李克勤MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L刘宪华",
|
||||
"v": "刘宪华MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李圣杰",
|
||||
"v": "李圣杰MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L林宥嘉",
|
||||
"v": "林宥嘉MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L梁静茹",
|
||||
"v": "梁静茹MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李健",
|
||||
"v": "李健MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L林俊杰",
|
||||
"v": "林俊杰MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李玉刚",
|
||||
"v": "李玉刚MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L林志炫",
|
||||
"v": "林志炫MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李荣浩",
|
||||
"v": "李荣浩MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李宇春",
|
||||
"v": "李宇春MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L洛天依",
|
||||
"v": "洛天依MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L林子祥",
|
||||
"v": "林子祥MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L李宗盛",
|
||||
"v": "李宗盛MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L黎明",
|
||||
"v": "黎明MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L刘德华",
|
||||
"v": "刘德华MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L罗大佑",
|
||||
"v": "罗大佑MV4K"
|
||||
},
|
||||
{
|
||||
"n": "L林肯公园",
|
||||
"v": "林肯公园MV4K"
|
||||
},
|
||||
{
|
||||
"n": "LLadyGaga",
|
||||
"v": "LadyGagaMV4K"
|
||||
},
|
||||
{
|
||||
"n": "L旅行团乐队",
|
||||
"v": "旅行团乐队MV4K"
|
||||
},
|
||||
{
|
||||
"n": "M莫文蔚",
|
||||
"v": "莫文蔚MV4K"
|
||||
},
|
||||
{
|
||||
"n": "M毛不易",
|
||||
"v": "毛不易MV4K"
|
||||
},
|
||||
{
|
||||
"n": "M梅艳芳",
|
||||
"v": "梅艳芳MV4K"
|
||||
},
|
||||
{
|
||||
"n": "M迈克尔杰克逊",
|
||||
"v": "迈克尔杰克逊MV4K"
|
||||
},
|
||||
{
|
||||
"n": "N南拳妈妈",
|
||||
"v": "南拳妈妈MV4K"
|
||||
},
|
||||
{
|
||||
"n": "P朴树",
|
||||
"v": "朴树MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Q齐秦",
|
||||
"v": "齐秦MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Q青鸟飞鱼",
|
||||
"v": "青鸟飞鱼MV4K"
|
||||
},
|
||||
{
|
||||
"n": "R容祖儿",
|
||||
"v": "容祖儿MV4K"
|
||||
},
|
||||
{
|
||||
"n": "R热歌",
|
||||
"v": "热歌MV4K"
|
||||
},
|
||||
{
|
||||
"n": "R任贤齐",
|
||||
"v": "任贤齐MV4K"
|
||||
},
|
||||
{
|
||||
"n": "S水木年华",
|
||||
"v": "水木年华MV4K"
|
||||
},
|
||||
{
|
||||
"n": "S孙燕姿",
|
||||
"v": "孙燕姿MV4K"
|
||||
},
|
||||
{
|
||||
"n": "S苏打绿",
|
||||
"v": "苏打绿MV4K"
|
||||
},
|
||||
{
|
||||
"n": "SSHE",
|
||||
"v": "SHEMV4K"
|
||||
},
|
||||
{
|
||||
"n": "S孙楠",
|
||||
"v": "孙楠MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T陶喆",
|
||||
"v": "陶喆MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T谭咏麟",
|
||||
"v": "谭咏麟MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T田馥甄",
|
||||
"v": "田馥甄MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T谭维维",
|
||||
"v": "谭维维MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T逃跑计划",
|
||||
"v": "逃跑计划MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T田震",
|
||||
"v": "田震MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T谭晶",
|
||||
"v": "谭晶MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T屠洪刚",
|
||||
"v": "屠洪刚MV4K"
|
||||
},
|
||||
{
|
||||
"n": "T泰勒·斯威夫特",
|
||||
"v": "泰勒·斯威夫特MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W王力宏",
|
||||
"v": "王力宏MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W王杰",
|
||||
"v": "王杰MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W吴克群",
|
||||
"v": "吴克群MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W王心凌",
|
||||
"v": "王心凌MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W汪峰",
|
||||
"v": "汪峰MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W伍佰",
|
||||
"v": "伍佰MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W王菲",
|
||||
"v": "王菲MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W五月天",
|
||||
"v": "五月天MV4K"
|
||||
},
|
||||
{
|
||||
"n": "W汪苏泷",
|
||||
"v": "汪苏泷MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X徐佳莹",
|
||||
"v": "徐佳莹MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X弦子",
|
||||
"v": "弦子MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X萧亚轩",
|
||||
"v": "萧亚轩MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X许巍",
|
||||
"v": "许巍MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X薛之谦",
|
||||
"v": "薛之谦MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X许嵩",
|
||||
"v": "许嵩MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X小虎队",
|
||||
"v": "小虎队MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X萧敬腾",
|
||||
"v": "萧敬腾MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X谢霆锋",
|
||||
"v": "谢霆锋MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X徐小凤",
|
||||
"v": "徐小凤MV4K"
|
||||
},
|
||||
{
|
||||
"n": "X信乐队",
|
||||
"v": "信乐队MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y夜愿乐队",
|
||||
"v": "夜愿乐队MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y原创音乐",
|
||||
"v": "原创音乐MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y羽泉",
|
||||
"v": "羽泉MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y粤语",
|
||||
"v": "粤语MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y郁可唯",
|
||||
"v": "郁可唯MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y叶倩文",
|
||||
"v": "叶倩文MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y杨坤",
|
||||
"v": "杨坤MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y庾澄庆",
|
||||
"v": "庾澄庆MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y尤长靖",
|
||||
"v": "尤长靖MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y易烊千玺",
|
||||
"v": "易烊千玺MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y袁娅维",
|
||||
"v": "袁娅维MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y杨丞琳",
|
||||
"v": "杨丞琳MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y杨千嬅",
|
||||
"v": "杨千嬅MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Y杨宗纬",
|
||||
"v": "杨宗纬MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z周杰伦",
|
||||
"v": "周杰伦MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张学友",
|
||||
"v": "张学友MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张信哲",
|
||||
"v": "张信哲MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张宇",
|
||||
"v": "张宇MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z周华健",
|
||||
"v": "周华健MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张韶涵",
|
||||
"v": "张韶涵MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z周深",
|
||||
"v": "周深MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z纵贯线",
|
||||
"v": "纵贯线MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z赵雷",
|
||||
"v": "赵雷MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z周传雄",
|
||||
"v": "周传雄MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张国荣",
|
||||
"v": "张国荣MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z周慧敏",
|
||||
"v": "周慧敏MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张惠妹",
|
||||
"v": "张惠妹MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z周笔畅",
|
||||
"v": "周笔畅MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z郑中基",
|
||||
"v": "郑中基MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张艺兴",
|
||||
"v": "张艺兴MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张震岳",
|
||||
"v": "张震岳MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z中国好声音",
|
||||
"v": "中国好声音MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z张雨生",
|
||||
"v": "张雨生MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z郑智化",
|
||||
"v": "郑智化MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z卓依婷",
|
||||
"v": "卓依婷MV4K"
|
||||
},
|
||||
{
|
||||
"n": "Z中岛美雪",
|
||||
"v": "中岛美雪MV4K"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"帕梅拉": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "帕梅拉"
|
||||
},
|
||||
{
|
||||
"n": "瘦腿",
|
||||
"v": "帕梅拉瘦腿"
|
||||
},
|
||||
{
|
||||
"n": "腹部",
|
||||
"v": "帕梅拉腹部"
|
||||
},
|
||||
{
|
||||
"n": "手臂",
|
||||
"v": "帕梅拉手臂"
|
||||
},
|
||||
{
|
||||
"n": "热身",
|
||||
"v": "帕梅拉热身"
|
||||
},
|
||||
{
|
||||
"n": "舞蹈",
|
||||
"v": "帕梅拉舞蹈"
|
||||
},
|
||||
{
|
||||
"n": "燃脂",
|
||||
"v": "帕梅拉燃脂"
|
||||
},
|
||||
{
|
||||
"n": "有氧",
|
||||
"v": "帕梅拉有氧"
|
||||
},
|
||||
{
|
||||
"n": "拉伸",
|
||||
"v": "帕梅拉拉伸"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"知名UP主": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "知名UP主"
|
||||
},
|
||||
{
|
||||
"n": "菠萝赛东",
|
||||
"v": "菠萝赛东"
|
||||
},
|
||||
{
|
||||
"n": "冯提莫",
|
||||
"v": "冯提莫"
|
||||
},
|
||||
{
|
||||
"n": "林延秋",
|
||||
"v": "林延秋"
|
||||
},
|
||||
{
|
||||
"n": "-LKs-",
|
||||
"v": "-LKs-"
|
||||
},
|
||||
{
|
||||
"n": "小约翰可汗",
|
||||
"v": "小约翰可汗"
|
||||
},
|
||||
{
|
||||
"n": "low馆长",
|
||||
"v": "low馆长"
|
||||
},
|
||||
{
|
||||
"n": "自说自话的总裁",
|
||||
"v": "自说自话的总裁"
|
||||
},
|
||||
{
|
||||
"n": "所长林超",
|
||||
"v": "所长林超"
|
||||
},
|
||||
{
|
||||
"n": "世界未解之谜M",
|
||||
"v": "世界未解之谜M"
|
||||
},
|
||||
{
|
||||
"n": "李永乐老师官方",
|
||||
"v": "李永乐老师官方"
|
||||
},
|
||||
{
|
||||
"n": "罗兹",
|
||||
"v": "罗兹"
|
||||
},
|
||||
{
|
||||
"n": "回到2049",
|
||||
"v": "回到2049"
|
||||
},
|
||||
{
|
||||
"n": "二次元的中科院物理所",
|
||||
"v": "二次元的中科院物理所"
|
||||
},
|
||||
{
|
||||
"n": "毕导THU",
|
||||
"v": "毕导THU"
|
||||
},
|
||||
{
|
||||
"n": "罗翔讲刑法",
|
||||
"v": "罗翔讲刑法"
|
||||
},
|
||||
{
|
||||
"n": "戴博士实验室",
|
||||
"v": "戴博士实验室"
|
||||
},
|
||||
{
|
||||
"n": "芳斯塔芙",
|
||||
"v": "芳斯塔芙"
|
||||
},
|
||||
{
|
||||
"n": "参赛者网",
|
||||
"v": "参赛者网"
|
||||
},
|
||||
{
|
||||
"n": "三维地图看世界",
|
||||
"v": "三维地图看世界"
|
||||
},
|
||||
{
|
||||
"n": "有机社会",
|
||||
"v": "有机社会"
|
||||
},
|
||||
{
|
||||
"n": "乌鸦校尉CaptainWuya",
|
||||
"v": "乌鸦校尉CaptainWuya"
|
||||
},
|
||||
{
|
||||
"n": "果壳",
|
||||
"v": "果壳"
|
||||
},
|
||||
{
|
||||
"n": "严伯钧",
|
||||
"v": "严伯钧"
|
||||
},
|
||||
{
|
||||
"n": "是你们的康康",
|
||||
"v": "是你们的康康"
|
||||
},
|
||||
{
|
||||
"n": "老爸评测",
|
||||
"v": "老爸评测"
|
||||
},
|
||||
{
|
||||
"n": "硬核的半佛仙人",
|
||||
"v": "硬核的半佛仙人"
|
||||
},
|
||||
{
|
||||
"n": "盗月社食遇记",
|
||||
"v": "盗月社食遇记"
|
||||
},
|
||||
{
|
||||
"n": "我是郭杰瑞",
|
||||
"v": "我是郭杰瑞"
|
||||
},
|
||||
{
|
||||
"n": "无穷小亮的科普日常",
|
||||
"v": "无穷小亮的科普日常"
|
||||
},
|
||||
{
|
||||
"n": "papi酱",
|
||||
"v": "papi酱"
|
||||
},
|
||||
{
|
||||
"n": "老番茄",
|
||||
"v": "老番茄"
|
||||
},
|
||||
{
|
||||
"n": "绵羊料理",
|
||||
"v": "绵羊料理"
|
||||
},
|
||||
{
|
||||
"n": "老师好我叫何同学",
|
||||
"v": "老师好我叫何同学"
|
||||
},
|
||||
{
|
||||
"n": "敬汉卿",
|
||||
"v": "敬汉卿"
|
||||
},
|
||||
{
|
||||
"n": "周六野Zoey",
|
||||
"v": "周六野Zoey"
|
||||
},
|
||||
{
|
||||
"n": "木鱼水心",
|
||||
"v": "木鱼水心"
|
||||
},
|
||||
{
|
||||
"n": "凉风Kaze",
|
||||
"v": "凉风Kaze"
|
||||
},
|
||||
{
|
||||
"n": "小潮院长",
|
||||
"v": "小潮院长"
|
||||
},
|
||||
{
|
||||
"n": "中国BOY超级大猩猩",
|
||||
"v": "中国BOY超级大猩猩"
|
||||
},
|
||||
{
|
||||
"n": "李子柒",
|
||||
"v": "李子柒"
|
||||
},
|
||||
{
|
||||
"n": "敖厂长",
|
||||
"v": "敖厂长"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"太极拳": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "太极拳"
|
||||
},
|
||||
{
|
||||
"n": "邱慧芳",
|
||||
"v": "太极拳邱慧芳"
|
||||
},
|
||||
{
|
||||
"n": "陈氏",
|
||||
"v": "太极拳陈氏"
|
||||
},
|
||||
{
|
||||
"n": "武当",
|
||||
"v": "太极拳武当"
|
||||
},
|
||||
{
|
||||
"n": "二十四式",
|
||||
"v": "太极拳二十四式"
|
||||
},
|
||||
{
|
||||
"n": "三十六式",
|
||||
"v": "太极拳三十六式"
|
||||
},
|
||||
{
|
||||
"n": "五禽戏",
|
||||
"v": "五禽戏"
|
||||
},
|
||||
{
|
||||
"n": "八段锦",
|
||||
"v": "八段锦"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"舞蹈": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "舞蹈"
|
||||
},
|
||||
{
|
||||
"n": "宅舞",
|
||||
"v": "宅舞"
|
||||
},
|
||||
{
|
||||
"n": "街舞",
|
||||
"v": "街舞"
|
||||
},
|
||||
{
|
||||
"n": "中国舞",
|
||||
"v": "中国舞"
|
||||
},
|
||||
{
|
||||
"n": "广场舞",
|
||||
"v": "广场舞"
|
||||
},
|
||||
{
|
||||
"n": "交谊舞",
|
||||
"v": "交谊舞"
|
||||
},
|
||||
{
|
||||
"n": "教程",
|
||||
"v": "舞蹈教程"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"音乐": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "音乐"
|
||||
},
|
||||
{
|
||||
"n": "钢琴曲",
|
||||
"v": "钢琴曲"
|
||||
},
|
||||
{
|
||||
"n": "协奏曲",
|
||||
"v": "协奏曲r"
|
||||
},
|
||||
{
|
||||
"n": "中国古风音乐",
|
||||
"v": "中国古风音乐"
|
||||
},
|
||||
{
|
||||
"n": "背景音乐",
|
||||
"v": "背景音乐"
|
||||
},
|
||||
{
|
||||
"n": "助眠音乐r",
|
||||
"v": "助眠音乐"
|
||||
},
|
||||
{
|
||||
"n": "胎教音乐",
|
||||
"v": "胎教音乐"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"歌曲": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "歌曲"
|
||||
},
|
||||
{
|
||||
"n": "香港歌曲",
|
||||
"v": "香港歌曲"
|
||||
},
|
||||
{
|
||||
"n": "台湾歌曲",
|
||||
"v": "台湾歌曲"
|
||||
},
|
||||
{
|
||||
"n": "内地歌曲",
|
||||
"v": "内地歌曲"
|
||||
},
|
||||
{
|
||||
"n": "英文歌曲",
|
||||
"v": "英文歌曲"
|
||||
},
|
||||
{
|
||||
"n": "日文歌曲",
|
||||
"v": "日文歌曲"
|
||||
},
|
||||
{
|
||||
"n": "小语种歌曲",
|
||||
"v": "小语种歌曲"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"平面设计教学": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "平面设计教学"
|
||||
},
|
||||
{
|
||||
"n": "Adobe Photoshop",
|
||||
"v": "Adobe Photoshop教程"
|
||||
},
|
||||
{
|
||||
"n": "Adobe Illustrator",
|
||||
"v": "Adobe Illustrator教程"
|
||||
},
|
||||
{
|
||||
"n": "CorelDRAW",
|
||||
"v": "CorelDRAW教程"
|
||||
},
|
||||
{
|
||||
"n": "Adobe InDesign",
|
||||
"v": "Adobe InDesign教程"
|
||||
},
|
||||
{
|
||||
"n": "Adobe Pagermaker",
|
||||
"v": "Adobe Pagermaker教程"
|
||||
},
|
||||
{
|
||||
"n": "SAI",
|
||||
"v": "SAI教程"
|
||||
},
|
||||
{
|
||||
"n": "Adobe Bridge",
|
||||
"v": "Adobe Bridge教程"
|
||||
},
|
||||
{
|
||||
"n": "Adobe Pagermaker",
|
||||
"v": "Adobe Pagermake教程r"
|
||||
},
|
||||
{
|
||||
"n": "3D Studio Max",
|
||||
"v": "3D Studio Max教程"
|
||||
},
|
||||
{
|
||||
"n": "PR",
|
||||
"v": "PR教程"
|
||||
},
|
||||
{
|
||||
"n": "AE",
|
||||
"v": "AE教程"
|
||||
},
|
||||
{
|
||||
"n": "CINEMA 4D",
|
||||
"v": "CINEMA 4D教程"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"软件教程": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "软件教程"
|
||||
},
|
||||
{
|
||||
"n": "MT管理器",
|
||||
"v": "MT管理器"
|
||||
},
|
||||
{
|
||||
"n": "NP管理器",
|
||||
"v": "NP管理器"
|
||||
},
|
||||
{
|
||||
"n": "mixplorer",
|
||||
"v": "mixplorer"
|
||||
},
|
||||
{
|
||||
"n": "脱壳",
|
||||
"v": "脱壳"
|
||||
},
|
||||
{
|
||||
"n": "爬虫",
|
||||
"v": "爬虫"
|
||||
},
|
||||
{
|
||||
"n": "json&jar",
|
||||
"v": "json&jar"
|
||||
},
|
||||
{
|
||||
"n": "网盘挂载",
|
||||
"v": "网盘挂载"
|
||||
},
|
||||
{
|
||||
"n": "alist+WebDav",
|
||||
"v": "alist+WebDav"
|
||||
},
|
||||
{
|
||||
"n": "TVBox修改",
|
||||
"v": "TVBox修改教程"
|
||||
},
|
||||
{
|
||||
"n": "EXCEL",
|
||||
"v": "EXCEL教程"
|
||||
},
|
||||
{
|
||||
"n": "Git入门到精通",
|
||||
"v": "Git入门到精通"
|
||||
},
|
||||
{
|
||||
"n": "java",
|
||||
"v": "java教程"
|
||||
},
|
||||
{
|
||||
"n": "phyton",
|
||||
"v": "phyton教程"
|
||||
},
|
||||
{
|
||||
"n": "xml",
|
||||
"v": "xml教程"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Windows": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"小姐姐超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"广场舞超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"舞曲超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"白噪音超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"搞笑超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"体育超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4K": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"足球比赛合集超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"篮球超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"动物世界超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"荒野求生超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"纪录片超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"食谱": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "食谱"
|
||||
},
|
||||
{
|
||||
"n": "川菜食谱",
|
||||
"v": "川菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "豫菜食谱",
|
||||
"v": "豫菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "淮扬菜食谱",
|
||||
"v": "淮扬菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "湘菜食谱",
|
||||
"v": "湘菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "鲁菜食谱",
|
||||
"v": "鲁菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "粤菜食谱",
|
||||
"v": "粤菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "潮菜食谱",
|
||||
"v": "潮菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "浙菜食谱",
|
||||
"v": "浙菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "徽菜食谱",
|
||||
"v": "徽菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "闽菜食谱",
|
||||
"v": "闽菜食谱"
|
||||
},
|
||||
{
|
||||
"n": "苏菜食谱",
|
||||
"v": "苏菜食谱"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"健身": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "健身"
|
||||
},
|
||||
{
|
||||
"n": "瘦腿",
|
||||
"v": "瘦腿"
|
||||
},
|
||||
{
|
||||
"n": "腹部",
|
||||
"v": "腹部"
|
||||
},
|
||||
{
|
||||
"n": "手臂",
|
||||
"v": "手臂"
|
||||
},
|
||||
{
|
||||
"n": "热身",
|
||||
"v": "热身"
|
||||
},
|
||||
{
|
||||
"n": "帕梅拉",
|
||||
"v": "帕梅拉"
|
||||
},
|
||||
{
|
||||
"n": "燃脂",
|
||||
"v": "燃脂"
|
||||
},
|
||||
{
|
||||
"n": "有氧",
|
||||
"v": "有氧"
|
||||
},
|
||||
{
|
||||
"n": "拉伸",
|
||||
"v": "拉伸"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"窗白噪音": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"美食超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "美食超清"
|
||||
},
|
||||
{
|
||||
"n": "舌尖上的中国",
|
||||
"v": "舌尖上的中国超清"
|
||||
},
|
||||
{
|
||||
"n": "老字号",
|
||||
"v": "老字号美食超清"
|
||||
},
|
||||
{
|
||||
"n": "家常菜",
|
||||
"v": "家常菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "香港美食探店",
|
||||
"v": "香港美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "澳门美食探店",
|
||||
"v": "澳门美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "上海美食探店",
|
||||
"v": "上海美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "北京美食探店",
|
||||
"v": "北京美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "重庆美食探店",
|
||||
"v": "重庆美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "南京美食探店",
|
||||
"v": "南京美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "广州美食探店",
|
||||
"v": "广州美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "杭州美食探店",
|
||||
"v": "杭州美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "成都美食探店",
|
||||
"v": "成都美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "苏州美食探店",
|
||||
"v": "苏州美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "武汉美食探店",
|
||||
"v": "武汉美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "台湾美食探店",
|
||||
"v": "台湾美食探店超清"
|
||||
},
|
||||
{
|
||||
"n": "川菜",
|
||||
"v": "川菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "豫菜",
|
||||
"v": "豫菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "淮扬菜",
|
||||
"v": "淮扬菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "湘菜",
|
||||
"v": "湘菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "鲁菜",
|
||||
"v": "鲁菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "粤菜",
|
||||
"v": "粤菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "潮菜",
|
||||
"v": "潮菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "浙菜",
|
||||
"v": "浙菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "徽菜",
|
||||
"v": "徽菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "闽菜",
|
||||
"v": "闽菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "东北菜",
|
||||
"v": "东北菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "客家菜",
|
||||
"v": "客家菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "苏菜",
|
||||
"v": "苏菜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "火锅",
|
||||
"v": "火锅"
|
||||
},
|
||||
{
|
||||
"n": "面食",
|
||||
"v": "面食"
|
||||
},
|
||||
{
|
||||
"n": "炒菜",
|
||||
"v": "炒菜"
|
||||
},
|
||||
{
|
||||
"n": "点心",
|
||||
"v": "点心"
|
||||
},
|
||||
{
|
||||
"n": "日料",
|
||||
"v": "日料"
|
||||
},
|
||||
{
|
||||
"n": "小吃",
|
||||
"v": "小吃"
|
||||
},
|
||||
{
|
||||
"n": "素食",
|
||||
"v": "素食"
|
||||
},
|
||||
{
|
||||
"n": "蒸菜",
|
||||
"v": "蒸菜"
|
||||
},
|
||||
{
|
||||
"n": "凉菜",
|
||||
"v": "凉菜"
|
||||
},
|
||||
{
|
||||
"n": "早餐",
|
||||
"v": "早餐"
|
||||
},
|
||||
{
|
||||
"n": "披萨",
|
||||
"v": "披萨"
|
||||
},
|
||||
{
|
||||
"n": "烤鱼",
|
||||
"v": "烤鱼"
|
||||
},
|
||||
{
|
||||
"n": "海鲜",
|
||||
"v": "海鲜美食超清"
|
||||
},
|
||||
{
|
||||
"n": "汉堡",
|
||||
"v": "汉堡"
|
||||
},
|
||||
{
|
||||
"n": "韩国菜",
|
||||
"v": "韩国菜"
|
||||
},
|
||||
{
|
||||
"n": "泰国菜",
|
||||
"v": "泰国菜"
|
||||
},
|
||||
{
|
||||
"n": "穆斯林菜",
|
||||
"v": "穆斯林菜"
|
||||
},
|
||||
{
|
||||
"n": "法国菜",
|
||||
"v": "法国菜"
|
||||
},
|
||||
{
|
||||
"n": "意大利菜",
|
||||
"v": "意大利菜"
|
||||
},
|
||||
{
|
||||
"n": "西班牙菜",
|
||||
"v": "西班牙菜"
|
||||
},
|
||||
{
|
||||
"n": "土耳其菜",
|
||||
"v": "土耳其菜系"
|
||||
},
|
||||
{
|
||||
"n": "阿拉伯菜",
|
||||
"v": "阿拉伯菜"
|
||||
},
|
||||
{
|
||||
"n": "德国菜",
|
||||
"v": "德国菜"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"广场舞": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"球星": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "球星"
|
||||
},
|
||||
{
|
||||
"n": "梅西",
|
||||
"v": "梅西"
|
||||
},
|
||||
{
|
||||
"n": "C罗",
|
||||
"v": "C罗"
|
||||
},
|
||||
{
|
||||
"n": "天下足球",
|
||||
"v": "天下足球"
|
||||
},
|
||||
{
|
||||
"n": "罗纳尔多",
|
||||
"v": "罗纳尔多"
|
||||
},
|
||||
{
|
||||
"n": "亨利",
|
||||
"v": "亨利"
|
||||
},
|
||||
{
|
||||
"n": "小罗",
|
||||
"v": "小罗"
|
||||
},
|
||||
{
|
||||
"n": "齐达内",
|
||||
"v": "齐达内"
|
||||
},
|
||||
{
|
||||
"n": "贝克汉姆",
|
||||
"v": "贝克汉姆"
|
||||
},
|
||||
{
|
||||
"n": "内马尔",
|
||||
"v": "内马尔"
|
||||
},
|
||||
{
|
||||
"n": "德布劳内",
|
||||
"v": "德布劳内"
|
||||
},
|
||||
{
|
||||
"n": "欧冠",
|
||||
"v": "欧冠"
|
||||
},
|
||||
{
|
||||
"n": "世界杯",
|
||||
"v": "世界杯"
|
||||
},
|
||||
{
|
||||
"n": "西甲",
|
||||
"v": "西甲"
|
||||
},
|
||||
{
|
||||
"n": "英超",
|
||||
"v": "英超"
|
||||
},
|
||||
{
|
||||
"n": "意甲",
|
||||
"v": "意甲"
|
||||
},
|
||||
{
|
||||
"n": "德甲",
|
||||
"v": "德甲"
|
||||
},
|
||||
{
|
||||
"n": "国米",
|
||||
"v": "国米"
|
||||
},
|
||||
{
|
||||
"n": "皇马",
|
||||
"v": "皇马"
|
||||
},
|
||||
{
|
||||
"n": "巴萨",
|
||||
"v": "巴萨"
|
||||
},
|
||||
{
|
||||
"n": "巴黎圣日耳曼",
|
||||
"v": "巴黎圣日耳曼"
|
||||
},
|
||||
{
|
||||
"n": "曼联",
|
||||
"v": "曼联"
|
||||
},
|
||||
{
|
||||
"n": "曼城",
|
||||
"v": "曼城"
|
||||
},
|
||||
{
|
||||
"n": "NBA",
|
||||
"v": "NBA"
|
||||
},
|
||||
{
|
||||
"n": "詹姆斯",
|
||||
"v": "詹姆斯"
|
||||
},
|
||||
{
|
||||
"n": "库里",
|
||||
"v": "库里"
|
||||
},
|
||||
{
|
||||
"n": "杜兰特",
|
||||
"v": "杜兰特"
|
||||
},
|
||||
{
|
||||
"n": "UFC",
|
||||
"v": "UFC"
|
||||
},
|
||||
{
|
||||
"n": "斯诺克",
|
||||
"v": "斯诺克"
|
||||
},
|
||||
{
|
||||
"n": "网球",
|
||||
"v": "网球"
|
||||
},
|
||||
{
|
||||
"n": "F1",
|
||||
"v": "F1"
|
||||
},
|
||||
{
|
||||
"n": "高尔夫",
|
||||
"v": "高尔夫"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"电视剧": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"相声小品超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "相声小品"
|
||||
},
|
||||
{
|
||||
"n": "单口相声",
|
||||
"v": "单口相声"
|
||||
},
|
||||
{
|
||||
"n": "群口相声",
|
||||
"v": "群口相声"
|
||||
},
|
||||
{
|
||||
"n": "德云社",
|
||||
"v": "德云社"
|
||||
},
|
||||
{
|
||||
"n": "青曲社",
|
||||
"v": "青曲社"
|
||||
},
|
||||
{
|
||||
"n": "郭德纲",
|
||||
"v": "郭德纲"
|
||||
},
|
||||
{
|
||||
"n": "岳云鹏",
|
||||
"v": "岳云鹏"
|
||||
},
|
||||
{
|
||||
"n": "曹云金",
|
||||
"v": "曹云金"
|
||||
},
|
||||
{
|
||||
"n": "评书",
|
||||
"v": "评书"
|
||||
},
|
||||
{
|
||||
"n": "小曲",
|
||||
"v": "小曲"
|
||||
},
|
||||
{
|
||||
"n": "二人转",
|
||||
"v": "二人转"
|
||||
},
|
||||
{
|
||||
"n": "春晚小品",
|
||||
"v": "春晚小品"
|
||||
},
|
||||
{
|
||||
"n": "赵本山",
|
||||
"v": "赵本山"
|
||||
},
|
||||
{
|
||||
"n": "陈佩斯",
|
||||
"v": "陈佩斯"
|
||||
},
|
||||
{
|
||||
"n": "冯巩",
|
||||
"v": "冯巩"
|
||||
},
|
||||
{
|
||||
"n": "宋小宝",
|
||||
"v": "宋小宝"
|
||||
},
|
||||
{
|
||||
"n": "赵丽蓉",
|
||||
"v": "赵丽蓉"
|
||||
},
|
||||
{
|
||||
"n": "郭达",
|
||||
"v": "郭达"
|
||||
},
|
||||
{
|
||||
"n": "潘长江",
|
||||
"v": "潘长江"
|
||||
},
|
||||
{
|
||||
"n": "郭冬临",
|
||||
"v": "郭冬临"
|
||||
},
|
||||
{
|
||||
"n": "严顺开",
|
||||
"v": "严顺开"
|
||||
},
|
||||
{
|
||||
"n": "文松",
|
||||
"v": "文松"
|
||||
},
|
||||
{
|
||||
"n": "开心麻花",
|
||||
"v": "开心麻花"
|
||||
},
|
||||
{
|
||||
"n": "屌丝男士",
|
||||
"v": "屌丝男士"
|
||||
},
|
||||
{
|
||||
"n": "喜剧综艺",
|
||||
"v": "喜剧综艺"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"戏曲": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "戏曲"
|
||||
},
|
||||
{
|
||||
"n": "京剧",
|
||||
"v": "京剧"
|
||||
},
|
||||
{
|
||||
"n": "越剧",
|
||||
"v": "越剧"
|
||||
},
|
||||
{
|
||||
"n": "黄梅戏",
|
||||
"v": "黄梅戏"
|
||||
},
|
||||
{
|
||||
"n": "评剧",
|
||||
"v": "评剧"
|
||||
},
|
||||
{
|
||||
"n": "豫剧",
|
||||
"v": "豫剧"
|
||||
},
|
||||
{
|
||||
"n": "昆曲",
|
||||
"v": "昆曲"
|
||||
},
|
||||
{
|
||||
"n": "高腔",
|
||||
"v": "高腔"
|
||||
},
|
||||
{
|
||||
"n": "梆子腔",
|
||||
"v": "梆子腔"
|
||||
},
|
||||
{
|
||||
"n": "河北梆子",
|
||||
"v": "河北梆子"
|
||||
},
|
||||
{
|
||||
"n": "晋剧",
|
||||
"v": "晋剧"
|
||||
},
|
||||
{
|
||||
"n": "蒲剧",
|
||||
"v": "蒲剧"
|
||||
},
|
||||
{
|
||||
"n": "雁剧",
|
||||
"v": "雁剧"
|
||||
},
|
||||
{
|
||||
"n": "上党梆子",
|
||||
"v": "上党梆子"
|
||||
},
|
||||
{
|
||||
"n": "秦腔",
|
||||
"v": "秦腔"
|
||||
},
|
||||
{
|
||||
"n": "武安平调",
|
||||
"v": "武安平调"
|
||||
},
|
||||
{
|
||||
"n": "二人台",
|
||||
"v": "二人台"
|
||||
},
|
||||
{
|
||||
"n": "吉剧",
|
||||
"v": "吉剧"
|
||||
},
|
||||
{
|
||||
"n": "龙江剧",
|
||||
"v": "龙江剧"
|
||||
},
|
||||
{
|
||||
"n": "越调",
|
||||
"v": "越调"
|
||||
},
|
||||
{
|
||||
"n": "河南曲剧",
|
||||
"v": "河南曲剧"
|
||||
},
|
||||
{
|
||||
"n": "山东梆子",
|
||||
"v": "山东梆子"
|
||||
},
|
||||
{
|
||||
"n": "淮剧",
|
||||
"v": "淮剧"
|
||||
},
|
||||
{
|
||||
"n": "沪剧",
|
||||
"v": "沪剧"
|
||||
},
|
||||
{
|
||||
"n": "滑稽戏",
|
||||
"v": "滑稽戏"
|
||||
},
|
||||
{
|
||||
"n": "婺剧",
|
||||
"v": "婺剧"
|
||||
},
|
||||
{
|
||||
"n": "绍剧",
|
||||
"v": "绍剧"
|
||||
},
|
||||
{
|
||||
"n": "徽剧",
|
||||
"v": "徽剧"
|
||||
},
|
||||
{
|
||||
"n": "闽剧",
|
||||
"v": "闽剧"
|
||||
},
|
||||
{
|
||||
"n": "莆仙戏",
|
||||
"v": "莆仙戏"
|
||||
},
|
||||
{
|
||||
"n": "梨园戏",
|
||||
"v": "梨园戏"
|
||||
},
|
||||
{
|
||||
"n": "高甲戏",
|
||||
"v": "高甲戏"
|
||||
},
|
||||
{
|
||||
"n": "赣剧",
|
||||
"v": "赣剧"
|
||||
},
|
||||
{
|
||||
"n": "采茶戏",
|
||||
"v": "采茶戏"
|
||||
},
|
||||
{
|
||||
"n": "汉剧",
|
||||
"v": "汉剧"
|
||||
},
|
||||
{
|
||||
"n": "湘剧",
|
||||
"v": "湘剧"
|
||||
},
|
||||
{
|
||||
"n": "祁剧",
|
||||
"v": "祁剧"
|
||||
},
|
||||
{
|
||||
"n": "湖南花鼓戏",
|
||||
"v": "湖南花鼓戏"
|
||||
},
|
||||
{
|
||||
"n": "粤剧",
|
||||
"v": "粤剧"
|
||||
},
|
||||
{
|
||||
"n": "潮剧",
|
||||
"v": "潮剧"
|
||||
},
|
||||
{
|
||||
"n": "桂剧",
|
||||
"v": "桂剧"
|
||||
},
|
||||
{
|
||||
"n": "彩调",
|
||||
"v": "彩调"
|
||||
},
|
||||
{
|
||||
"n": "壮剧",
|
||||
"v": "壮剧"
|
||||
},
|
||||
{
|
||||
"n": "川剧",
|
||||
"v": "川剧"
|
||||
},
|
||||
{
|
||||
"n": "黔剧",
|
||||
"v": "黔剧"
|
||||
},
|
||||
{
|
||||
"n": "滇剧",
|
||||
"v": "滇剧"
|
||||
},
|
||||
{
|
||||
"n": "傣剧",
|
||||
"v": "傣剧"
|
||||
},
|
||||
{
|
||||
"n": "藏剧",
|
||||
"v": "藏剧"
|
||||
},
|
||||
{
|
||||
"n": "皮影戏",
|
||||
"v": "皮影戏"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"旅游": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"游泳": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "泳姿"
|
||||
},
|
||||
{
|
||||
"n": "蝶泳",
|
||||
"v": "蝶泳"
|
||||
},
|
||||
{
|
||||
"n": "仰泳",
|
||||
"v": "仰泳"
|
||||
},
|
||||
{
|
||||
"n": "蛙泳",
|
||||
"v": "蛙泳"
|
||||
},
|
||||
{
|
||||
"n": "自由泳",
|
||||
"v": "自由泳"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "有声小说",
|
||||
"type_id": "有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "玄幻有声小说",
|
||||
"type_id": "玄幻有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "奇幻有声小说",
|
||||
"type_id": "奇幻有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "都市有声小说",
|
||||
"type_id": "都市有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "言情有声小说",
|
||||
"type_id": "言情有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "武侠有声小说",
|
||||
"type_id": "武侠有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "仙侠有声小说",
|
||||
"type_id": "仙侠有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "科幻有声小说",
|
||||
"type_id": "科幻有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "重生有声小说",
|
||||
"type_id": "重生有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "穿越有声小说",
|
||||
"type_id": "穿越有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "恐怖惊悚有声小说",
|
||||
"type_id": "恐怖惊悚有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "网游竞技有声小说",
|
||||
"type_id": "网游竞技有声小说"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "春晚小品",
|
||||
"type_id": "春晚小品"
|
||||
},
|
||||
{
|
||||
"type_name": "赵本山",
|
||||
"type_id": "赵本山"
|
||||
},
|
||||
{
|
||||
"type_name": "陈佩斯",
|
||||
"type_id": "陈佩斯"
|
||||
},
|
||||
{
|
||||
"type_name": "冯巩",
|
||||
"type_id": "冯巩"
|
||||
},
|
||||
{
|
||||
"type_name": "宋小宝",
|
||||
"type_id": "宋小宝"
|
||||
},
|
||||
{
|
||||
"type_name": "赵丽蓉",
|
||||
"type_id": "赵丽蓉"
|
||||
},
|
||||
{
|
||||
"type_name": "郭达",
|
||||
"type_id": "郭达"
|
||||
},
|
||||
{
|
||||
"type_name": "潘长江",
|
||||
"type_id": "潘长江"
|
||||
},
|
||||
{
|
||||
"type_name": "郭冬临",
|
||||
"type_id": "郭冬临"
|
||||
},
|
||||
{
|
||||
"type_name": "严顺开",
|
||||
"type_id": "严顺开"
|
||||
},
|
||||
{
|
||||
"type_name": "文松",
|
||||
"type_id": "文松"
|
||||
},
|
||||
{
|
||||
"type_name": "开心麻花",
|
||||
"type_id": "开心麻花"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "潮剧",
|
||||
"type_id": "潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "粤剧",
|
||||
"type_id": "粤剧"
|
||||
},
|
||||
{
|
||||
"type_name": "京剧",
|
||||
"type_id": "京剧"
|
||||
},
|
||||
{
|
||||
"type_name": "越剧",
|
||||
"type_id": "越剧"
|
||||
},
|
||||
{
|
||||
"type_name": "芗剧",
|
||||
"type_id": "芗剧"
|
||||
},
|
||||
{
|
||||
"type_name": "蒲剧",
|
||||
"type_id": "蒲剧"
|
||||
},
|
||||
{
|
||||
"type_name": "闽剧",
|
||||
"type_id": "闽剧"
|
||||
},
|
||||
{
|
||||
"type_name": "喊麦",
|
||||
"type_id": "喊麦"
|
||||
},
|
||||
{
|
||||
"type_name": "陕北说书",
|
||||
"type_id": "陕北说书"
|
||||
},
|
||||
{
|
||||
"type_name": "庐剧",
|
||||
"type_id": "庐剧"
|
||||
},
|
||||
{
|
||||
"type_name": "吕剧",
|
||||
"type_id": "吕剧"
|
||||
},
|
||||
{
|
||||
"type_name": "眉户",
|
||||
"type_id": "眉户"
|
||||
},
|
||||
{
|
||||
"type_name": "歌仔戏",
|
||||
"type_id": "歌仔戏"
|
||||
},
|
||||
{
|
||||
"type_name": "黄梅戏",
|
||||
"type_id": "黄梅戏"
|
||||
},
|
||||
{
|
||||
"type_name": "黄梅戏",
|
||||
"type_id": "黄梅戏"
|
||||
},
|
||||
{
|
||||
"type_name": "评剧",
|
||||
"type_id": "评剧"
|
||||
},
|
||||
{
|
||||
"type_name": "豫剧",
|
||||
"type_id": "豫剧"
|
||||
},
|
||||
{
|
||||
"type_name": "沪剧",
|
||||
"type_id": "沪剧"
|
||||
},
|
||||
{
|
||||
"type_name": "昆曲",
|
||||
"type_id": "昆曲"
|
||||
},
|
||||
{
|
||||
"type_name": "花鼓戏",
|
||||
"type_id": "花鼓戏"
|
||||
},
|
||||
{
|
||||
"type_name": "超清潮剧",
|
||||
"type_id": "超清潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "百花潮剧院",
|
||||
"type_id": "百花潮剧院"
|
||||
},
|
||||
{
|
||||
"type_name": "香港潮剧",
|
||||
"type_id": "香港潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧院",
|
||||
"type_id": "潮剧院"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧团",
|
||||
"type_id": "潮剧团"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧全剧",
|
||||
"type_id": "潮剧全剧"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧选段",
|
||||
"type_id": "潮剧选段"
|
||||
},
|
||||
{
|
||||
"type_name": "名家潮剧",
|
||||
"type_id": "名家潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "潮汕小品",
|
||||
"type_id": "潮汕小品"
|
||||
},
|
||||
{
|
||||
"type_name": "潮汕讲古",
|
||||
"type_id": "潮汕讲古"
|
||||
},
|
||||
{
|
||||
"type_name": "河北梆子",
|
||||
"type_id": "河北梆子"
|
||||
},
|
||||
{
|
||||
"type_name": "梆子腔",
|
||||
"type_id": "梆子腔"
|
||||
},
|
||||
{
|
||||
"type_name": "晋剧",
|
||||
"type_id": "晋剧"
|
||||
},
|
||||
{
|
||||
"type_name": "龙江剧",
|
||||
"type_id": "龙江剧"
|
||||
},
|
||||
{
|
||||
"type_name": "越调",
|
||||
"type_id": "越调"
|
||||
},
|
||||
{
|
||||
"type_name": "河南曲剧",
|
||||
"type_id": "河南曲剧"
|
||||
},
|
||||
{
|
||||
"type_name": "山东梆子",
|
||||
"type_id": "山东梆子"
|
||||
},
|
||||
{
|
||||
"type_name": "淮剧",
|
||||
"type_id": "淮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "滑稽戏",
|
||||
"type_id": "滑稽戏"
|
||||
},
|
||||
{
|
||||
"type_name": "婺剧",
|
||||
"type_id": "婺剧"
|
||||
},
|
||||
{
|
||||
"type_name": "绍剧",
|
||||
"type_id": "绍剧"
|
||||
},
|
||||
{
|
||||
"type_name": "徽剧",
|
||||
"type_id": "徽剧"
|
||||
},
|
||||
{
|
||||
"type_name": "雁剧",
|
||||
"type_id": "雁剧"
|
||||
},
|
||||
{
|
||||
"type_name": "上党梆子",
|
||||
"type_id": "上党梆子"
|
||||
},
|
||||
{
|
||||
"type_name": "秦腔",
|
||||
"type_id": "秦腔"
|
||||
},
|
||||
{
|
||||
"type_name": "武安平调",
|
||||
"type_id": "武安平调"
|
||||
},
|
||||
{
|
||||
"type_name": "二人台",
|
||||
"type_id": "二人台"
|
||||
},
|
||||
{
|
||||
"type_name": "吉剧",
|
||||
"type_id": "吉剧"
|
||||
},
|
||||
{
|
||||
"type_name": "高腔",
|
||||
"type_id": "高腔"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "单口相声",
|
||||
"type_id": "单口相声"
|
||||
},
|
||||
{
|
||||
"type_name": "群口相声",
|
||||
"type_id": "群口相声"
|
||||
},
|
||||
{
|
||||
"type_name": "德云社",
|
||||
"type_id": "德云社"
|
||||
},
|
||||
{
|
||||
"type_name": "青曲社",
|
||||
"type_id": "青曲社"
|
||||
},
|
||||
{
|
||||
"type_name": "郭德纲",
|
||||
"type_id": "郭德纲"
|
||||
},
|
||||
{
|
||||
"type_name": "岳云鹏",
|
||||
"type_id": "岳云鹏"
|
||||
},
|
||||
{
|
||||
"type_name": "曹云金",
|
||||
"type_id": "曹云金"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,702 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "演唱会筛选",
|
||||
"type_id": "演唱会超清"
|
||||
},
|
||||
{
|
||||
"type_name": "粤语",
|
||||
"type_id": "粤语歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "热榜",
|
||||
"type_id": "2022年热们歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "抖音神曲",
|
||||
"type_id": "抖音神曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "经典老歌",
|
||||
"type_id": "经典老歌超清"
|
||||
},
|
||||
{
|
||||
"type_name": "DJ",
|
||||
"type_id": "DJ歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "网红翻唱",
|
||||
"type_id": "网红翻唱歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "韩国女团",
|
||||
"type_id": "韩国女团演唱会超清"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"演唱会超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "A阿杜",
|
||||
"v": "阿杜演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "A阿黛尔",
|
||||
"v": "阿黛尔演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBeyond",
|
||||
"v": "Beyond演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBy2",
|
||||
"v": "By2演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBIGBANG",
|
||||
"v": "BIGBANG演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "B布兰妮",
|
||||
"v": "布兰妮演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "B坂井泉水",
|
||||
"v": "坂井泉水演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈奕迅",
|
||||
"v": "陈奕迅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C蔡依林",
|
||||
"v": "蔡依林演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C初音未来",
|
||||
"v": "初音未来演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C蔡健雅",
|
||||
"v": "蔡健雅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈小春",
|
||||
"v": "陈小春演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C草蜢",
|
||||
"v": "草蜢演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈慧娴",
|
||||
"v": "陈慧娴演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C崔健",
|
||||
"v": "崔健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C仓木麻衣",
|
||||
"v": "仓木麻衣演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D戴荃",
|
||||
"v": "戴荃演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D动力火车",
|
||||
"v": "动力火车演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D丁当",
|
||||
"v": "丁当演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D刀郎",
|
||||
"v": "刀郎演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓紫棋",
|
||||
"v": "邓紫棋演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D戴佩妮",
|
||||
"v": "戴佩妮演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F飞儿乐队",
|
||||
"v": "飞儿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F费玉清",
|
||||
"v": "费玉清演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F费翔",
|
||||
"v": "费翔演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F方大同",
|
||||
"v": "方大同演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F房东的猫",
|
||||
"v": "房东的猫演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F凤飞飞",
|
||||
"v": "凤飞飞演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F凤凰传奇",
|
||||
"v": "凤凰传奇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭采洁",
|
||||
"v": "郭采洁演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G光良",
|
||||
"v": "光良演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭静",
|
||||
"v": "郭静演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭富城",
|
||||
"v": "郭富城演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H胡彦斌",
|
||||
"v": "胡彦斌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H胡夏",
|
||||
"v": "胡夏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H韩红",
|
||||
"v": "韩红演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄品源",
|
||||
"v": "黄品源演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄小琥",
|
||||
"v": "黄小琥演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H花儿乐队",
|
||||
"v": "花儿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄家强",
|
||||
"v": "黄家强演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H后街男孩",
|
||||
"v": "后街男孩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J经典老歌",
|
||||
"v": "经典老歌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J贾斯丁比伯",
|
||||
"v": "贾斯丁比伯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J金池",
|
||||
"v": "金池演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J金志文",
|
||||
"v": "金志文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J焦迈奇",
|
||||
"v": "焦迈奇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "K筷子兄弟",
|
||||
"v": "筷子兄弟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李玟",
|
||||
"v": "李玟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林忆莲",
|
||||
"v": "林忆莲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李克勤",
|
||||
"v": "李克勤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L刘宪华",
|
||||
"v": "刘宪华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李圣杰",
|
||||
"v": "李圣杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林宥嘉",
|
||||
"v": "林宥嘉演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L梁静茹",
|
||||
"v": "梁静茹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李健",
|
||||
"v": "李健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林俊杰",
|
||||
"v": "林俊杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李玉刚",
|
||||
"v": "李玉刚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林志炫",
|
||||
"v": "林志炫演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李荣浩",
|
||||
"v": "李荣浩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李宇春",
|
||||
"v": "李宇春演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L洛天依",
|
||||
"v": "洛天依演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林子祥",
|
||||
"v": "林子祥演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李宗盛",
|
||||
"v": "李宗盛演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L黎明",
|
||||
"v": "黎明演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L刘德华",
|
||||
"v": "刘德华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L罗大佑",
|
||||
"v": "罗大佑演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林肯公园",
|
||||
"v": "林肯公园演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "LLadyGaga",
|
||||
"v": "LadyGaga演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L旅行团乐队",
|
||||
"v": "旅行团乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M莫文蔚",
|
||||
"v": "莫文蔚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M毛不易",
|
||||
"v": "毛不易演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M梅艳芳",
|
||||
"v": "梅艳芳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M迈克尔杰克逊",
|
||||
"v": "迈克尔杰克逊演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "N南拳妈妈",
|
||||
"v": "南拳妈妈演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "P朴树",
|
||||
"v": "朴树演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Q齐秦",
|
||||
"v": "齐秦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Q青鸟飞鱼",
|
||||
"v": "青鸟飞鱼演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "R容祖儿",
|
||||
"v": "容祖儿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "R任贤齐",
|
||||
"v": "任贤齐演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S水木年华",
|
||||
"v": "水木年华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S孙燕姿",
|
||||
"v": "孙燕姿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S苏打绿",
|
||||
"v": "苏打绿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "SSHE",
|
||||
"v": "SHE演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S孙楠",
|
||||
"v": "孙楠演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T陶喆",
|
||||
"v": "陶喆演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭咏麟",
|
||||
"v": "谭咏麟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T田馥甄",
|
||||
"v": "田馥甄演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭维维",
|
||||
"v": "谭维维演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T逃跑计划",
|
||||
"v": "逃跑计划演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T田震",
|
||||
"v": "田震演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭晶",
|
||||
"v": "谭晶演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T屠洪刚",
|
||||
"v": "屠洪刚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T泰勒·斯威夫特",
|
||||
"v": "泰勒·斯威夫特演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王力宏",
|
||||
"v": "王力宏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王杰",
|
||||
"v": "王杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W吴克群",
|
||||
"v": "吴克群演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王心凌",
|
||||
"v": "王心凌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王靖雯",
|
||||
"v": "好声音王靖雯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W汪峰",
|
||||
"v": "汪峰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W伍佰",
|
||||
"v": "伍佰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王菲",
|
||||
"v": "王菲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W五月天",
|
||||
"v": "五月天演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W汪苏泷",
|
||||
"v": "汪苏泷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X徐佳莹",
|
||||
"v": "徐佳莹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X弦子",
|
||||
"v": "弦子演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X萧亚轩",
|
||||
"v": "萧亚轩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X许巍",
|
||||
"v": "许巍演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X薛之谦",
|
||||
"v": "薛之谦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X许嵩",
|
||||
"v": "许嵩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X小虎队",
|
||||
"v": "小虎队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X萧敬腾",
|
||||
"v": "萧敬腾演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X谢霆锋",
|
||||
"v": "谢霆锋演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X徐小凤",
|
||||
"v": "徐小凤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X信乐队",
|
||||
"v": "信乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y夜愿乐队",
|
||||
"v": "夜愿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y羽泉",
|
||||
"v": "羽泉演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y郁可唯",
|
||||
"v": "郁可唯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y叶倩文",
|
||||
"v": "叶倩文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨坤",
|
||||
"v": "杨坤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y庾澄庆",
|
||||
"v": "庾澄庆演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y尤长靖",
|
||||
"v": "尤长靖演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y易烊千玺",
|
||||
"v": "易烊千玺演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y袁娅维",
|
||||
"v": "袁娅维演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨丞琳",
|
||||
"v": "杨丞琳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨千嬅",
|
||||
"v": "杨千嬅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨宗纬",
|
||||
"v": "杨宗纬演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑秀文",
|
||||
"v": "郑秀文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周杰伦",
|
||||
"v": "周杰伦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张学友",
|
||||
"v": "张学友演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张信哲",
|
||||
"v": "张信哲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张宇",
|
||||
"v": "张宇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周华健",
|
||||
"v": "周华健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张韶涵",
|
||||
"v": "张韶涵演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周深",
|
||||
"v": "周深演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z纵贯线",
|
||||
"v": "纵贯线演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z赵雷",
|
||||
"v": "赵雷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周传雄",
|
||||
"v": "周传雄演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张国荣",
|
||||
"v": "张国荣演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周慧敏",
|
||||
"v": "周慧敏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张惠妹",
|
||||
"v": "张惠妹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周笔畅",
|
||||
"v": "周笔畅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑中基",
|
||||
"v": "郑中基演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张艺兴",
|
||||
"v": "张艺兴演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张震岳",
|
||||
"v": "张震岳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张雨生",
|
||||
"v": "张雨生演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑智化",
|
||||
"v": "郑智化演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z卓依婷",
|
||||
"v": "卓依婷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z中岛美雪",
|
||||
"v": "中岛美雪演唱会超清"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,1398 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "7年级语文",
|
||||
"type_id": "7年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级数学",
|
||||
"type_id": "7年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级英语",
|
||||
"type_id": "7年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级历史",
|
||||
"type_id": "7年级历史"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级地理",
|
||||
"type_id": "7年级地理"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级生物",
|
||||
"type_id": "7年级生物"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级物理",
|
||||
"type_id": "7年级物理"
|
||||
},
|
||||
{
|
||||
"type_name": "7年级化学",
|
||||
"type_id": "7年级化学"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级语文",
|
||||
"type_id": "8年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级数学",
|
||||
"type_id": "8年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级英语",
|
||||
"type_id": "8年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级历史",
|
||||
"type_id": "8年级历史"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级地理",
|
||||
"type_id": "8年级地理"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级生物",
|
||||
"type_id": "8年级生物"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级物理",
|
||||
"type_id": "8年级物理"
|
||||
},
|
||||
{
|
||||
"type_name": "8年级化学",
|
||||
"type_id": "8年级化学"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级语文",
|
||||
"type_id": "9年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级数学",
|
||||
"type_id": "9年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级英语",
|
||||
"type_id": "9年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级历史",
|
||||
"type_id": "9年级历史"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级地理",
|
||||
"type_id": "9年级地理"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级生物",
|
||||
"type_id": "9年级生物"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级物理",
|
||||
"type_id": "9年级物理"
|
||||
},
|
||||
{
|
||||
"type_name": "9年级化学",
|
||||
"type_id": "9年级化学"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"7年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级化学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级化学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级化学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级化学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级化学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级物理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级物理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级物理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级物理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级物理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级生物": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级生物"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级生物"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级生物"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级生物"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级历史": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级历史"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级历史"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级历史"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级历史"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7年级地理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版7年级地理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版7年级地理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版7年级地理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版7年级地理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级化学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级化学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级化学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级化学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级化学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级物理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级物理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级物理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级物理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级物理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级生物": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级生物"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级生物"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级生物"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级生物"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级历史": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级历史"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级历史"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级历史"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级历史"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8年级地理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版8年级地理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版8年级地理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版8年级地理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版8年级地理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级化学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级化学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级化学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级化学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级化学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级物理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级物理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级物理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级物理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级物理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级生物": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级生物"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级生物"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级生物"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级生物"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级历史": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级历史"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级历史"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级历史"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级历史"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9年级地理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版9年级地理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版9年级地理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版9年级地理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版9年级地理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"主页url": "https://dora.xiaoxinbk.com/",
|
||||
"数组": "class=\"card-img-bili\"&&</a>",
|
||||
"标题": "alt=\"&&\"",
|
||||
"图片": "data-url=\"&&\"",
|
||||
"链接": "href=\"&&\"",
|
||||
"线路标题": "mt-0\">&&</h3>",
|
||||
"播放数组": "class=\"card-body button-list\"&&</div>",
|
||||
"播放列表": "<a&&a>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"播放标题": ">&&</",
|
||||
"分类url": "https://www.dora-video.cn/search/sy/?niandai={year}&cat={class}&tag={cateId}&gaojijiansuo=1&zhuangtai={by}",
|
||||
"分类": "全部$0#动画$20#剧场版$21#MV$22#预告片$23#直播$27#同人$25#民间$26#目录$28#中篇$30",
|
||||
"剧情": "哆啦A梦新番$1#新哆啦A梦 台湾配音$2#哆啦A梦剧场版$3#最新预告片$6#剧场版集合$7#哆啦A梦MV$4#哆啦A梦七小子集合$11#生日特别篇$19#哆啦A梦生日特别篇$12#哆啦美生日特别篇$14#大雄生日特别篇$13#静香生日特别篇$15#胖虎生日特别篇$16#小夫生日特别篇$17#24小时直播$24#哆啦A梦中篇附映$29#哆啦A梦大山版 - 哆啦a梦1979版国语旧版 - 旧版$31#哆啦A梦大山修复&补档区$32#藤子·F·不二雄【其它动画】$33",
|
||||
"排序": "全部$0#完结$2#连载$1#待定$-1"
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
//写法思路来海阔视界,xpath筛选。本人是海阔用户,所以搬了海阔的jsoup写法过来。2022年9月17日
|
||||
//jsoup规则写法请查阅海阔视界或者海阔影视相关教程。不支持js写法
|
||||
//本文档为完整模板,请不要去无中生有添加多余的键值参数。
|
||||
{
|
||||
//规则名
|
||||
"title": "电影港",
|
||||
//作者
|
||||
"author": "香雅情",
|
||||
//请求头UA,键名$键值,每一组用#分开,不填则默认okhttp/3.12.11,可填MOBILE_UA或PC_UA使用内置的手机版或电脑版UA
|
||||
//多个请求头参数写法示例,"User-Agent$PC_UA#Referer$http://ww.baidu.com#Cookie$ser=ok",每一组用#分开。
|
||||
//习惯查看手机源码写建议用手机版UA,习惯查看PC版源码写建议用电脑版UA
|
||||
"Headers":"PC_UA",
|
||||
//网页编码格式默认UTF-8编码,UTF-8,GBK,GB2312
|
||||
"Coding_format":"gb2312",
|
||||
//图片是否需要代理
|
||||
"PicNeedProxy":"0",
|
||||
//是否开启获取首页数据,0关闭,1开启
|
||||
"homeContent":"0",
|
||||
//分类链接起始页码,禁止负数和含小数点。
|
||||
"firstpage": "1",
|
||||
//分类链接,{cateId}是分类,{catePg}是页码,第一页没有页码的可以这样写 第二页链接[firstPage=第一页的链接]
|
||||
"class_url": "https://www.dygang.tv/{cateId}/index_{catePg}.htm[firstPage=https://www.dygang.cc/{cateId}/index.htm]",
|
||||
//分类名,分类1&分类2&分类3
|
||||
"class_name": "最新电影&经典高清&国配电影&经典港片&国剧&日韩剧&美剧&综艺&动漫&纪录片&高清原盘&4K高清区&3D电影&电影专题",
|
||||
//分类名替换词,替换词1&替换词2&替换词3,替换词包含英文&的用两个中文&&代替,示例:&&id=0&&&id=1
|
||||
"class_value": "ys&bd&gy&gp&dsj&dsj1&yx&zy&dmq&jilupian&1080p&4K&3d&dyzt",
|
||||
//筛选数据,json格式,参考xpath的筛选写法
|
||||
"filterdata":{},
|
||||
|
||||
//分类页面截取数据模式,0为json,其它数字为普通网页。
|
||||
"cat_mode": "1",
|
||||
//分类列表数组定位,最多支持3层,能力有限,不是所有页面都能支持
|
||||
"cat_arr_rule": "body&&table[width=388]",
|
||||
//分类片单信息jsoup与xb截取写法切换,只作用于html网页,1为jsoup写法(默认),0为xb写法
|
||||
"cat_is_jsoup":"1",
|
||||
//分类片单标题
|
||||
"cat_title": "img&&alt",
|
||||
//分类片单链接
|
||||
"cat_url": "a&&href",
|
||||
//分类片单图片,支持自定义图片链接
|
||||
"cat_pic": "img&&src",
|
||||
//分类片单副标题
|
||||
"cat_subtitle":"[align=center]&&Text",
|
||||
//分类片单链接补前缀
|
||||
"cat_prefix": "https://www.dygang.tv",
|
||||
//分类片单链接补后缀
|
||||
"cat_suffix": "",
|
||||
|
||||
//搜索请求头参数,不填则默认okhttp/3.12.11,可填MOBILE_UA或PC_UA使用内置的手机版或电脑版UA
|
||||
//多个请求头参数写法示例,键名$键值,每一组用#分开。"User-Agent$PC_UA#Referer$http://ww.baidu.com#Cookie$ser=ok"。
|
||||
"SHeaders":"User-Agent$PC_UA#Content-Type$charset=gb2312",
|
||||
//搜索链接,搜索关键字用{wd}表示,post请求的最后面加;post
|
||||
//POST链接示例 http://www.lezhutv.com/index.php?m=vod-search;post
|
||||
"search_url": "https://www.dygang.tv/e/search/index123.php;post",
|
||||
//POST搜索body,填写搜索关键字的键值,一般常见的是searchword和wd,不是POST搜索的可留空或删除。
|
||||
"sea_PtBody":"keyboard={wd}&submit=搜+索&show=title,smalltext&tempid=1&tbname=article",
|
||||
|
||||
//搜索截取模式,0为json搜索,只支持列表在list数组里的,其它数字为网页截取。
|
||||
"search_mode": "1",
|
||||
//搜索列表数组定位,不填默认内置list,最多支持3层,能力有限,不是所有页面都能支持。
|
||||
"sea_arr_rule": "body&&table[width=388]",
|
||||
//搜索片单信息jsoup与xb截取写法切换,只作用于html网页,1为jsoup写法(默认),0为xb写法
|
||||
"sea_is_jsoup":"1",
|
||||
//搜索片单图片,支持自定义图片链接
|
||||
"sea_pic": "img&&src",
|
||||
//搜索片单标题
|
||||
"sea_title": "img&&alt",
|
||||
//搜索片单链接
|
||||
"sea_url": "a&&href",
|
||||
//搜索片单副标题
|
||||
"sea_subtitle":"",
|
||||
//搜索片单链接补前缀
|
||||
"search_prefix": "https://www.dygang.tv",
|
||||
//搜索片单链接补后缀,这个一般json搜索的需要
|
||||
"search_suffix": "",
|
||||
|
||||
//片单链接是否直接播放,0否,1分类片单链接直接播放,2详情选集链接直接播放。
|
||||
//设置成直接播放后,后面3个参数请注意该留空的请务必留空。
|
||||
"force_play": "0",
|
||||
//直接播放链接补前缀
|
||||
"play_prefix": "",
|
||||
//直接播放链接补后缀,设置为#isVideo=true#可强制识别为视频链接
|
||||
"play_suffix": "",
|
||||
//直接播放链接设置请求头,只对直链视频有效,每一组用#分开
|
||||
"play_header": "",
|
||||
|
||||
//项目信息jsoup与xb截取写法切换,1为jsoup写法(默认),0为xb写法
|
||||
"proj_is_jsoup":"0",
|
||||
//类型数据,截取前缀&&截取后缀
|
||||
"proj_cate": "",
|
||||
//年代数据,截取前缀&&截取后缀
|
||||
"proj_year": "",
|
||||
//地区数据,截取前缀&&截取后缀
|
||||
"proj_area": "",
|
||||
//演员数据,截取前缀&&截取后缀
|
||||
"proj_actor": "演 员&&</",
|
||||
//简介内容,截取前缀&&截取后缀
|
||||
"proj_plot": "简 介&&</",
|
||||
|
||||
//线路截取区域,如果不需要请把tab_title或tab_arr_rule置空或者全部不要填。
|
||||
//线路截取数组
|
||||
"tab_arr_rule": "#dede_content",
|
||||
//线路标题,截取前缀&&截取后缀
|
||||
"tab_title": "strong&&Text",
|
||||
|
||||
//列表数组截取,必须
|
||||
"list_arr_rule": "#dede_content",
|
||||
//集数数组截取,必须
|
||||
"epi_arr_rule": "table&&[href*=magnet]",
|
||||
//集数标题,截取前缀&&截取后缀
|
||||
"epi_title": "a&&Text",
|
||||
//集数链接,截取前缀&&截取后缀
|
||||
"epi_url": "a&&href",
|
||||
//选集是否反转显示
|
||||
"epi_reverse": "0",
|
||||
//集数链接补前缀
|
||||
"epiurl_prefix": "",
|
||||
//集数链接补后缀
|
||||
"epiurl_suffix": "",
|
||||
|
||||
//下面几个参数请勿乱用。否则可能会有副作用。
|
||||
//分析网页源码中有<script type="text/javascript">var player_aaaa={"flag":"play","encrypt这种源码的链接解析
|
||||
//如果网页源码里没有这种请设置为0
|
||||
"Anal_MacPlayer":"0",
|
||||
//是否开启手动嗅探,只对网页嗅探有效,0否,1是
|
||||
"ManualSniffer":"0",
|
||||
//手动嗅探视频链接关键字,每个用#隔开
|
||||
"VideoFormat":".mp4#.m3u8#.flv",
|
||||
//手动嗅探视频链接过滤关键词,每个用#隔开
|
||||
"VideoFilter":".html#=http"
|
||||
}
|
||||
@@ -0,0 +1,1576 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "高一语文",
|
||||
"type_id": "高一语文"
|
||||
},
|
||||
{
|
||||
"type_name": "高一数学",
|
||||
"type_id": "高一数学"
|
||||
},
|
||||
{
|
||||
"type_name": "高一英语",
|
||||
"type_id": "高一英语"
|
||||
},
|
||||
{
|
||||
"type_name": "高一历史",
|
||||
"type_id": "高一历史"
|
||||
},
|
||||
{
|
||||
"type_name": "高一地理",
|
||||
"type_id": "高一地理"
|
||||
},
|
||||
{
|
||||
"type_name": "高一生物",
|
||||
"type_id": "高一生物"
|
||||
},
|
||||
{
|
||||
"type_name": "高一思想政治",
|
||||
"type_id": "高一思想政治"
|
||||
},
|
||||
{
|
||||
"type_name": "高一物理",
|
||||
"type_id": "高一物理"
|
||||
},
|
||||
{
|
||||
"type_name": "高一化学",
|
||||
"type_id": "高一化学"
|
||||
},
|
||||
{
|
||||
"type_name": "高二语文",
|
||||
"type_id": "高二语文"
|
||||
},
|
||||
{
|
||||
"type_name": "高二数学",
|
||||
"type_id": "高二数学"
|
||||
},
|
||||
{
|
||||
"type_name": "高二英语",
|
||||
"type_id": "高二英语"
|
||||
},
|
||||
{
|
||||
"type_name": "高二历史",
|
||||
"type_id": "高二历史"
|
||||
},
|
||||
{
|
||||
"type_name": "高二地理",
|
||||
"type_id": "高二地理"
|
||||
},
|
||||
{
|
||||
"type_name": "高二生物",
|
||||
"type_id": "高二生物"
|
||||
},
|
||||
{
|
||||
"type_name": "高二思想政治",
|
||||
"type_id": "高二思想政治"
|
||||
},
|
||||
{
|
||||
"type_name": "高二物理",
|
||||
"type_id": "高二物理"
|
||||
},
|
||||
{
|
||||
"type_name": "高二化学",
|
||||
"type_id": "高二化学"
|
||||
},
|
||||
{
|
||||
"type_name": "高三语文",
|
||||
"type_id": "高三语文"
|
||||
},
|
||||
{
|
||||
"type_name": "高三数学",
|
||||
"type_id": "高三数学"
|
||||
},
|
||||
{
|
||||
"type_name": "高三英语",
|
||||
"type_id": "高三英语"
|
||||
},
|
||||
{
|
||||
"type_name": "高三历史",
|
||||
"type_id": "高三历史"
|
||||
},
|
||||
{
|
||||
"type_name": "高三地理",
|
||||
"type_id": "高三地理"
|
||||
},
|
||||
{
|
||||
"type_name": "高三生物",
|
||||
"type_id": "高三生物"
|
||||
},
|
||||
{
|
||||
"type_name": "高三思想政治",
|
||||
"type_id": "高三思想政治"
|
||||
},
|
||||
{
|
||||
"type_name": "高三物理",
|
||||
"type_id": "高三物理"
|
||||
},
|
||||
{
|
||||
"type_name": "高三化学",
|
||||
"type_id": "高三化学"
|
||||
},
|
||||
{
|
||||
"type_name": "高中信息技术",
|
||||
"type_id": "高中信息技术"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"高一语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一物理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一物理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一物理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一物理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一物理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一化学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一化学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一化学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一化学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一化学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一历史": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一历史"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一历史"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一历史"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一历史"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一生物": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一生物"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一生物"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一生物"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一生物"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一思想政治": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一思想政治"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一思想政治"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一思想政治"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一思想政治"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高一地理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高一地理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高一地理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高一地理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高一地理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二物理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二物理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二物理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二物理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二物理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二化学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二化学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二化学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二化学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二化学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二历史": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二历史"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二历史"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二历史"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二历史"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二生物": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二生物"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二生物"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二生物"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二生物"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二思想政治": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二思想政治"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二思想政治"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二思想政治"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二思想政治"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高二地理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高二地理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高二地理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高二地理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高二地理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三物理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三物理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三物理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三物理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三物理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三化学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三化学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三化学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三化学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三化学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三历史": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三历史"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三历史"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三历史"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三历史"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三生物": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三生物"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三生物"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三生物"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三生物"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三思想政治": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三思想政治"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三思想政治"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三思想政治"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三思想政治"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"高三地理": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版高三地理"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版高三地理"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版高三地理"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版高三地理"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"规则名": "剧圈圈",
|
||||
"规则作者": "香雅情",
|
||||
"OCR_API":"https://api.nn.ci/ocr/b64/text",
|
||||
"请求头参数": "MOBILE_UA",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "否",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.jqqzx.me",
|
||||
"首页列表数组规则": "body&&.module-main.tab-list.active",
|
||||
"首页片单列表数组规则": ".module-item",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.jqqzx.me/vodshow/id/{cateId}/page/{catePg}.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫&纪录片&爽剧",
|
||||
"分类名称替换词": "dianying&juji&zongyi&dongman&jilupian&shuangju",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".module-items&&.module-item",
|
||||
"分类片单是否Jsoup写法": "是",
|
||||
"分类片单标题": ".module-poster-item-title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".module-item-note&&Text",
|
||||
"分类片单链接加前缀": "https://www.jqqzx.me",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$MOBILE_UA",
|
||||
"搜索链接": "https://www.jqqzx.me/vodsearch{wd}/page/{SearchPg}.html",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".module-items&&.module-item",
|
||||
"搜索片单是否Jsoup写法": "是",
|
||||
"搜索片单图片": ".lazyload&&data-original",
|
||||
"搜索片单标题": ".module-card-item-title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".module-item-note&&Text",
|
||||
"搜索片单链接加前缀": "https://www.jqqzx.me",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "否",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "是",
|
||||
"类型详情": "",
|
||||
"年代详情": ".module-info-content&&.module-info-item,3&&Text",
|
||||
"地区详情": "",
|
||||
"演员详情": ".module-info-content&&.module-info-item,2&&Text",
|
||||
"简介详情": ".module-info-content&&.module-info-item&&Text",
|
||||
"线路列表数组规则": ".module-tab-items-box&&.module-tab-item",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.module-play-list-content",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "是",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "否",
|
||||
"选集链接加前缀": "https://www.jqqzx.me",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "否",
|
||||
"是否开启手动嗅探": "否",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"分类url": "https://v.aiwule.com/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html",
|
||||
"分类": "电影$20#电视剧$21#动漫$23#综艺$22#短剧$47",
|
||||
"简介": "简介:&&"
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "儿童早教",
|
||||
"type_id": "儿童早教"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童启蒙故事",
|
||||
"type_id": "儿童启蒙故事"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童英语启蒙",
|
||||
"type_id": "儿童英语启蒙"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童歌曲",
|
||||
"type_id": "儿童歌曲"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童绘画",
|
||||
"type_id": "儿童绘画"
|
||||
},
|
||||
{
|
||||
"type_name": "睡前故事",
|
||||
"type_id": "睡前故事"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童动画",
|
||||
"type_id": "儿童动画"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童音乐",
|
||||
"type_id": "儿童音乐"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童安全教育",
|
||||
"type_id": "儿童安全教育"
|
||||
},
|
||||
{
|
||||
"type_name": "贝瓦儿歌",
|
||||
"type_id": "贝瓦儿歌"
|
||||
},
|
||||
{
|
||||
"type_name": "悟空识字",
|
||||
"type_id": "悟空识字"
|
||||
},
|
||||
{
|
||||
"type_name": "宝宝巴士",
|
||||
"type_id": "宝宝巴士"
|
||||
},
|
||||
{
|
||||
"type_name": "儿歌多多",
|
||||
"type_id": "儿歌多多"
|
||||
},
|
||||
{
|
||||
"type_name": "学而思",
|
||||
"type_id": "学而思"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"儿童早教": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童启蒙故事": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童英语启蒙": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童歌曲": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童绘画": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"睡前故事": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童动画": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童音乐": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童安全教育": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"贝瓦儿歌": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"悟空识字": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"宝宝巴士": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿歌多多": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"学而思": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,1050 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "1年级语文",
|
||||
"type_id": "1年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "1年级数学",
|
||||
"type_id": "1年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "1年级英语",
|
||||
"type_id": "1年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "2年级语文",
|
||||
"type_id": "2年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "2年级数学",
|
||||
"type_id": "2年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "2年级英语",
|
||||
"type_id": "2年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "3年级语文",
|
||||
"type_id": "3年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "3年级数学",
|
||||
"type_id": "3年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "3年级英语",
|
||||
"type_id": "3年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "4年级语文",
|
||||
"type_id": "4年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "4年级数学",
|
||||
"type_id": "4年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "4年级英语",
|
||||
"type_id": "4年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "5年级语文",
|
||||
"type_id": "5年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "5年级数学",
|
||||
"type_id": "5年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "5年级英语",
|
||||
"type_id": "5年级英语"
|
||||
},
|
||||
{
|
||||
"type_name": "6年级语文",
|
||||
"type_id": "6年级语文"
|
||||
},
|
||||
{
|
||||
"type_name": "6年级数学",
|
||||
"type_id": "6年级数学"
|
||||
},
|
||||
{
|
||||
"type_name": "6年级英语",
|
||||
"type_id": "6年级英语"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"1年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版1年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版1年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版1年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版1年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"1年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版1年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版1年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版1年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版1年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"1年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版1年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版1年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版1年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版1年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版2年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版2年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版2年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版2年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版2年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版2年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版2年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版2年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版2年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版2年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版2年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版2年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版3年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版3年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版3年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版3年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版3年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版3年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版3年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版3年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版3年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版3年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版3年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版3年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版4年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版4年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版4年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版4年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版4年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版4年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版4年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版4年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版4年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版4年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版4年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版4年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版5年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版5年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版5年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版5年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版5年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版5年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版5年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版5年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版5年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版5年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版5年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版5年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6年级语文": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版6年级语文"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版6年级语文"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版6年级语文"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版6年级语文"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6年级英语": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版6年级英语"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版6年级英语"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版6年级英语"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版6年级英语"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6年级数学": [
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "沪教版",
|
||||
"v": "沪教版6年级数学"
|
||||
},
|
||||
{
|
||||
"n": "人教版",
|
||||
"v": "人教版6年级数学"
|
||||
},
|
||||
{
|
||||
"n": "北师大版",
|
||||
"v": "北师大版6年级数学"
|
||||
},
|
||||
{
|
||||
"n": "苏教版",
|
||||
"v": "苏教版6年级数学"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"线路数组": "<a data-toggle=\"tab\"&&/a>",
|
||||
"线路标题": ">&&<",
|
||||
"分类url": "http://dyxz.tv/list/{cateId}_{catePg}.html",
|
||||
"分类": "电影$1#电视剧$2#动漫$3#综艺$4"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
|
||||
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#奇幻片$10#恐怖片$11#剧情片$12#战争片$20#动画片$26#悬疑片$22#冒险片$23#犯罪片$24#惊悚片$45#歌舞片$46#灾难片$47#网络片$48||国产剧$13#港台剧$14#日剧$15#韩剧$33#欧美剧$16#泰剧$34#新马剧$35#其他剧$25||内地综艺$27#港台综艺$28#日本综艺$29#韩国综艺$36#欧美综艺$30#新马泰综艺$37#其他综艺$38||国产动漫$31#日本动漫$32#韩国动漫$39#港台动漫$40#新马泰动漫$41#欧美动漫$42#其他动漫$43",
|
||||
"分类url": "https://www.ylys.tv/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html"
|
||||
}
|
||||
@@ -0,0 +1,314 @@
|
||||
# coding=utf-8
|
||||
# !/usr/bin/python
|
||||
|
||||
"""
|
||||
|
||||
作者 丢丢喵 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容
|
||||
====================Diudiumiao====================
|
||||
|
||||
"""
|
||||
|
||||
from Crypto.Util.Padding import unpad
|
||||
from Crypto.Util.Padding import pad
|
||||
from urllib.parse import unquote
|
||||
from Crypto.Cipher import ARC4
|
||||
from urllib.parse import quote
|
||||
from base.spider import Spider
|
||||
from Crypto.Cipher import AES
|
||||
from datetime import datetime
|
||||
from bs4 import BeautifulSoup
|
||||
from base64 import b64decode
|
||||
import urllib.request
|
||||
import urllib.parse
|
||||
import datetime
|
||||
import binascii
|
||||
import requests
|
||||
import base64
|
||||
import json
|
||||
import time
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
|
||||
sys.path.append('..')
|
||||
|
||||
xurl = "https://search.bilibili.com"
|
||||
|
||||
xurl1 = "https://api.live.bilibili.com"
|
||||
|
||||
headerx = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0'
|
||||
}
|
||||
|
||||
class Spider(Spider):
|
||||
global xurl
|
||||
global xurl1
|
||||
global headerx
|
||||
|
||||
def getName(self):
|
||||
return "首页"
|
||||
|
||||
def init(self, extend):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def extract_middle_text(self, text, start_str, end_str, pl, start_index1: str = '', end_index2: str = ''):
|
||||
if pl == 3:
|
||||
plx = []
|
||||
while True:
|
||||
start_index = text.find(start_str)
|
||||
if start_index == -1:
|
||||
break
|
||||
end_index = text.find(end_str, start_index + len(start_str))
|
||||
if end_index == -1:
|
||||
break
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
plx.append(middle_text)
|
||||
text = text.replace(start_str + middle_text + end_str, '')
|
||||
if len(plx) > 0:
|
||||
purl = ''
|
||||
for i in range(len(plx)):
|
||||
matches = re.findall(start_index1, plx[i])
|
||||
output = ""
|
||||
for match in matches:
|
||||
match3 = re.search(r'(?:^|[^0-9])(\d+)(?:[^0-9]|$)', match[1])
|
||||
if match3:
|
||||
number = match3.group(1)
|
||||
else:
|
||||
number = 0
|
||||
if 'http' not in match[0]:
|
||||
output += f"#{match[1]}${number}{xurl}{match[0]}"
|
||||
else:
|
||||
output += f"#{match[1]}${number}{match[0]}"
|
||||
output = output[1:]
|
||||
purl = purl + output + "$$$"
|
||||
purl = purl[:-3]
|
||||
return purl
|
||||
else:
|
||||
return ""
|
||||
else:
|
||||
start_index = text.find(start_str)
|
||||
if start_index == -1:
|
||||
return ""
|
||||
end_index = text.find(end_str, start_index + len(start_str))
|
||||
if end_index == -1:
|
||||
return ""
|
||||
|
||||
if pl == 0:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
return middle_text.replace("\\", "")
|
||||
|
||||
if pl == 1:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
matches = re.findall(start_index1, middle_text)
|
||||
if matches:
|
||||
jg = ' '.join(matches)
|
||||
return jg
|
||||
|
||||
if pl == 2:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
matches = re.findall(start_index1, middle_text)
|
||||
if matches:
|
||||
new_list = [f'{item}' for item in matches]
|
||||
jg = '$$$'.join(new_list)
|
||||
return jg
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
result = {"class": [{"type_id": "舞", "type_name": "舞蹈"},
|
||||
{"type_id": "音乐", "type_name": "音乐"},
|
||||
{"type_id": "手游", "type_name": "手游"},
|
||||
{"type_id": "网游", "type_name": "网游"},
|
||||
{"type_id": "单机游戏", "type_name": "单机游戏"},
|
||||
{"type_id": "虚拟主播", "type_name": "虚拟主播"},
|
||||
{"type_id": "电台", "type_name": "电台"},
|
||||
{"type_id": "体育", "type_name": "体育"},
|
||||
{"type_id": "聊天", "type_name": "聊天"},
|
||||
{"type_id": "娱乐", "type_name": "娱乐"},
|
||||
{"type_id": "电影", "type_name": "影视"},
|
||||
{"type_id": "新闻", "type_name": "新闻"}]
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
pass
|
||||
|
||||
def categoryContent(self, cid, pg, filter, ext):
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
if pg:
|
||||
page = int(pg)
|
||||
else:
|
||||
page = 1
|
||||
|
||||
url = f'{xurl}/live?keyword={cid}&page={str(page)}'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
res = detail.text
|
||||
doc = BeautifulSoup(res, "lxml")
|
||||
|
||||
soups = doc.find_all('div', class_="video-list-item")
|
||||
|
||||
for vod in soups:
|
||||
|
||||
names = vod.find('h3', class_="bili-live-card__info--tit")
|
||||
name = names.text.strip().replace('直播中', '')
|
||||
|
||||
id = names.find('a')['href']
|
||||
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
|
||||
|
||||
pic = vod.find('img')['src']
|
||||
if 'http' not in pic:
|
||||
pic = "https:" + pic
|
||||
|
||||
remarks = vod.find('a', class_="bili-live-card__info--uname")
|
||||
remark = remarks.text.strip()
|
||||
|
||||
video = {
|
||||
"vod_id": id,
|
||||
"vod_name": name,
|
||||
"vod_pic": pic,
|
||||
"vod_remarks": remark
|
||||
}
|
||||
videos.append(video)
|
||||
|
||||
result = {'list': videos}
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
did = ids[0]
|
||||
result = {}
|
||||
videos = []
|
||||
xianlu = ''
|
||||
bofang = ''
|
||||
|
||||
url = f'{xurl1}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={did}&platform=web&protocol=0,1&format=0,1,2&codec=0,1'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
data = detail.json()
|
||||
|
||||
content = '欢迎观看哔哩直播'
|
||||
|
||||
setup = data['data']['playurl_info']['playurl']['stream']
|
||||
|
||||
nam = 0
|
||||
|
||||
for vod in setup:
|
||||
|
||||
try:
|
||||
host = vod['format'][nam]['codec'][0]['url_info'][1]['host']
|
||||
except (KeyError, IndexError):
|
||||
continue
|
||||
|
||||
base = vod['format'][nam]['codec'][0]['base_url']
|
||||
|
||||
extra = vod['format'][nam]['codec'][0]['url_info'][1]['extra']
|
||||
|
||||
id = host + base + extra
|
||||
|
||||
nam = nam + 1
|
||||
|
||||
namc = f"{nam}号线路"
|
||||
|
||||
bofang = bofang + namc + '$' + id + '#'
|
||||
|
||||
bofang = bofang[:-1]
|
||||
|
||||
xianlu = '哔哩专线'
|
||||
|
||||
videos.append({
|
||||
"vod_id": did,
|
||||
"vod_content": content,
|
||||
"vod_play_from": xianlu,
|
||||
"vod_play_url": bofang
|
||||
})
|
||||
|
||||
result['list'] = videos
|
||||
return result
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
|
||||
result = {}
|
||||
result["parse"] = 0
|
||||
result["playUrl"] = ''
|
||||
result["url"] = id
|
||||
result["header"] = headerx
|
||||
return result
|
||||
|
||||
def searchContentPage(self, key, quick, pg):
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
if pg:
|
||||
page = int(pg)
|
||||
else:
|
||||
page = 1
|
||||
|
||||
url = f'{xurl}/live?keyword={key}&page={str(page)}'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
res = detail.text
|
||||
doc = BeautifulSoup(res, "lxml")
|
||||
|
||||
soups = doc.find_all('div', class_="video-list-item")
|
||||
|
||||
for vod in soups:
|
||||
|
||||
names = vod.find('h3', class_="bili-live-card__info--tit")
|
||||
name = names.text.strip().replace('直播中', '')
|
||||
|
||||
id = names.find('a')['href']
|
||||
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
|
||||
|
||||
pic = vod.find('img')['src']
|
||||
if 'http' not in pic:
|
||||
pic = "https:" + pic
|
||||
|
||||
remarks = vod.find('a', class_="bili-live-card__info--uname")
|
||||
remark = remarks.text.strip()
|
||||
|
||||
video = {
|
||||
"vod_id": id,
|
||||
"vod_name": name,
|
||||
"vod_pic": pic,
|
||||
"vod_remarks": remark
|
||||
}
|
||||
videos.append(video)
|
||||
|
||||
result['list'] = videos
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
return self.searchContentPage(key, quick, '1')
|
||||
|
||||
def localProxy(self, params):
|
||||
if params['type'] == "m3u8":
|
||||
return self.proxyM3u8(params)
|
||||
elif params['type'] == "media":
|
||||
return self.proxyMedia(params)
|
||||
elif params['type'] == "ts":
|
||||
return self.proxyTs(params)
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1260
@@ -0,0 +1,1260 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# by @星河
|
||||
# 修复版本 - 参考最新三合一.js重构虎牙、斗鱼、B站直播逻辑
|
||||
# 修复:虎牙清晰度选择,确保ratio参数正确传递码率值
|
||||
# 修复:斗鱼切换分辨率只能播放1秒的问题(每次重新获取安全密钥和签名)
|
||||
# 修复:B站使用特殊UA和WBI签名绕过-352风控 [^90^][^30^]
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import hashlib
|
||||
import random
|
||||
import urllib.parse
|
||||
from base64 import b64decode, b64encode
|
||||
from urllib.parse import parse_qs
|
||||
import requests
|
||||
from pyquery import PyQuery as pq
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
|
||||
class Spider(Spider):
|
||||
|
||||
def init(self, extend=""):
|
||||
# 初始化B站WBI密钥
|
||||
self.bili_wbi_keys = None
|
||||
self.bili_wbi_expire = 0
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
return "直播"
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
headers = [
|
||||
{
|
||||
# 特殊UA绕过B站风控 [^90^]
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
|
||||
},
|
||||
{
|
||||
"User-Agent": "Dart/3.4 (dart:io)"
|
||||
}
|
||||
]
|
||||
|
||||
excepturl = 'https://www.baidu.com'
|
||||
|
||||
hosts = {
|
||||
"huya": ["https://www.huya.com", "https://mp.huya.com"],
|
||||
"douyu": "https://www.douyu.com",
|
||||
"wangyi": "https://cc.163.com",
|
||||
"bili": ["https://api.live.bilibili.com", "https://api.bilibili.com"]
|
||||
}
|
||||
|
||||
referers = {
|
||||
"huya": "https://live.cdn.huya.com",
|
||||
"douyu": "https://m.douyu.com",
|
||||
"bili": "https://live.bilibili.com"
|
||||
}
|
||||
|
||||
playheaders = {
|
||||
"wangyi": {
|
||||
"User-Agent": "ExoPlayer",
|
||||
"Connection": "Keep-Alive",
|
||||
"Icy-MetaData": "1"
|
||||
},
|
||||
"bili": {
|
||||
'Accept': '*/*',
|
||||
'Icy-MetaData': '1',
|
||||
'referer': 'https://live.bilibili.com',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
|
||||
},
|
||||
'huya': {
|
||||
'User-Agent': 'ExoPlayer',
|
||||
'Connection': 'Keep-Alive',
|
||||
'Icy-MetaData': '1'
|
||||
},
|
||||
'douyu': {
|
||||
'User-Agent': 'libmpv',
|
||||
'Icy-MetaData': '1'
|
||||
}
|
||||
}
|
||||
|
||||
# WBI签名相关常量 [^30^]
|
||||
MIXIN_KEY_ENC_TAB = [
|
||||
46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
|
||||
33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
|
||||
61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
|
||||
36, 20, 34, 44, 52
|
||||
]
|
||||
|
||||
def _get_bili_wbi_keys(self):
|
||||
"""获取B站WBI密钥 [^30^]"""
|
||||
try:
|
||||
# 检查缓存
|
||||
if self.bili_wbi_keys and time.time() < self.bili_wbi_expire:
|
||||
return self.bili_wbi_keys
|
||||
|
||||
# 从导航接口获取 - 使用特殊UA [^90^]
|
||||
resp = self.fetch(
|
||||
'https://api.bilibili.com/x/web-interface/nav',
|
||||
headers={
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
|
||||
'Referer': 'https://www.bilibili.com/'
|
||||
}
|
||||
).json()
|
||||
|
||||
if resp.get('code') != 0:
|
||||
return None
|
||||
|
||||
img_url = resp['data']['wbi_img']['img_url']
|
||||
sub_url = resp['data']['wbi_img']['sub_url']
|
||||
|
||||
# 提取文件名作为key
|
||||
img_key = img_url.rsplit('/', 1)[1].split('.')[0]
|
||||
sub_key = sub_url.rsplit('/', 1)[1].split('.')[0]
|
||||
|
||||
self.bili_wbi_keys = (img_key, sub_key)
|
||||
self.bili_wbi_expire = time.time() + 86400 # 24小时过期
|
||||
|
||||
return self.bili_wbi_keys
|
||||
except Exception as e:
|
||||
print(f"获取B站WBI密钥失败: {e}")
|
||||
return None
|
||||
|
||||
def _get_mixin_key(self, orig: str):
|
||||
"""生成mixin_key [^30^]"""
|
||||
return ''.join([orig[i] for i in self.MIXIN_KEY_ENC_TAB])[:32]
|
||||
|
||||
def _enc_wbi(self, params: dict):
|
||||
"""WBI签名 [^30^]"""
|
||||
keys = self._get_bili_wbi_keys()
|
||||
if not keys:
|
||||
return params
|
||||
|
||||
img_key, sub_key = keys
|
||||
mixin_key = self._get_mixin_key(img_key + sub_key)
|
||||
|
||||
# 添加时间戳
|
||||
params['wts'] = round(time.time())
|
||||
|
||||
# 排序参数
|
||||
params = dict(sorted(params.items()))
|
||||
|
||||
# 过滤特殊字符
|
||||
params = {
|
||||
k: ''.join(filter(lambda c: c not in "!'()*", str(v)))
|
||||
for k, v in params.items()
|
||||
}
|
||||
|
||||
# 计算签名
|
||||
query = urllib.parse.urlencode(params)
|
||||
w_rid = hashlib.md5((query + mixin_key).encode()).hexdigest()
|
||||
|
||||
params['w_rid'] = w_rid
|
||||
return params
|
||||
|
||||
def process_bili(self):
|
||||
"""获取B站分类列表 - 使用WBI签名 [^30^]"""
|
||||
try:
|
||||
# 尝试获取分类列表 - 使用特殊UA和WBI签名
|
||||
params = {'need_entrance': 1, 'parent_id': 0}
|
||||
signed_params = self._enc_wbi(params)
|
||||
|
||||
data = self.fetch(
|
||||
f'{self.hosts["bili"][0]}/room/v1/Area/getList',
|
||||
params=signed_params,
|
||||
headers=self.headers[0]
|
||||
).json()
|
||||
|
||||
if data.get('code') == 0 and data.get('data'):
|
||||
# 保存分类数据供后续使用
|
||||
self.bili_areas = data['data']
|
||||
return ('bili', [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': i['name'], 'v': str(i['id'])}
|
||||
for i in data['data']]}])
|
||||
return 'bili', None
|
||||
except Exception as e:
|
||||
print(f"bili处理错误: {e}")
|
||||
# 使用默认分类
|
||||
return 'bili', [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': '网游', 'v': '2'}, {'n': '手游', 'v': '3'},
|
||||
{'n': '单机', 'v': '6'}, {'n': '娱乐', 'v': '1'},
|
||||
{'n': '电台', 'v': '5'}, {'n': '虚拟主播', 'v': '9'},
|
||||
{'n': '生活', 'v': '10'}, {'n': '知识', 'v': '11'},
|
||||
{'n': '赛事', 'v': '13'}]}]
|
||||
|
||||
def process_douyu(self):
|
||||
try:
|
||||
self.dyufdata = self.fetch(
|
||||
f'{self.referers["douyu"]}/api/cate/list',
|
||||
headers=self.headers[1]
|
||||
).json()
|
||||
return ('douyu', [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': i['cate1Name'], 'v': str(i['cate1Id'])}
|
||||
for i in self.dyufdata['data']['cate1Info']]}])
|
||||
except Exception as e:
|
||||
print(f"douyu错误: {e}")
|
||||
return 'douyu', None
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
cateManual = {
|
||||
"虎牙": "huya",
|
||||
"斗鱼": "douyu",
|
||||
"网易": "wangyi",
|
||||
"B站": "bili"
|
||||
}
|
||||
classes = []
|
||||
filters = {
|
||||
'huya': [{'key': 'cate', 'name': '分类',
|
||||
'value': [{'n': '网游', 'v': '1'}, {'n': '单机', 'v': '2'},
|
||||
{'n': '娱乐', 'v': '8'}, {'n': '手游', 'v': '3'}]}]
|
||||
}
|
||||
|
||||
with ThreadPoolExecutor(max_workers=2) as executor:
|
||||
futures = {
|
||||
executor.submit(self.process_bili): 'bili',
|
||||
executor.submit(self.process_douyu): 'douyu'
|
||||
}
|
||||
|
||||
for future in futures:
|
||||
platform, filter_data = future.result()
|
||||
if filter_data:
|
||||
filters[platform] = filter_data
|
||||
|
||||
for k in cateManual:
|
||||
classes.append({
|
||||
'type_name': k,
|
||||
'type_id': cateManual[k]
|
||||
})
|
||||
|
||||
result['class'] = classes
|
||||
result['filters'] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
pass
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
vdata = []
|
||||
result = {}
|
||||
pagecount = 9999
|
||||
result['page'] = pg
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
if tid == 'wangyi':
|
||||
vdata, pagecount = self.wyccContent(tid, pg, filter, extend, vdata)
|
||||
elif 'bili' in tid:
|
||||
vdata, pagecount = self.biliContent(tid, pg, filter, extend, vdata)
|
||||
elif 'huya' in tid:
|
||||
vdata, pagecount = self.huyaContent(tid, pg, filter, extend, vdata)
|
||||
elif 'douyu' in tid:
|
||||
vdata, pagecount = self.douyuContent(tid, pg, filter, extend, vdata)
|
||||
result['list'] = vdata
|
||||
result['pagecount'] = pagecount
|
||||
return result
|
||||
|
||||
def wyccContent(self, tid, pg, filter, extend, vdata):
|
||||
params = {
|
||||
'format': 'json',
|
||||
'start': (int(pg) - 1) * 20,
|
||||
'size': '20',
|
||||
}
|
||||
response = self.fetch(f'{self.hosts[tid]}/api/category/live/', params=params, headers=self.headers[0]).json()
|
||||
for i in response['lives']:
|
||||
if i.get('cuteid'):
|
||||
bvdata = self.buildvod(
|
||||
vod_id=f"{tid}@@{i['cuteid']}",
|
||||
vod_name=i.get('title'),
|
||||
vod_pic=i.get('cover'),
|
||||
vod_remarks=i.get('nickname'),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
)
|
||||
vdata.append(bvdata)
|
||||
return vdata, 9999
|
||||
|
||||
def biliContent(self, tid, pg, filter, extend, vdata):
|
||||
"""B站分类内容 - 使用WBI签名绕过风控 [^30^][^90^]"""
|
||||
try:
|
||||
# 分类列表 - 显示子分类
|
||||
if extend.get('cate') and pg == '1' and 'click' not in tid:
|
||||
# 从已保存的分类数据中找到对应分类的子分类
|
||||
if hasattr(self, 'bili_areas'):
|
||||
for area in self.bili_areas:
|
||||
if str(area['id']) == extend['cate']:
|
||||
for sub_area in area.get('list', []):
|
||||
v = self.buildvod(
|
||||
vod_id=f"click_{tid}@@{extend['cate']}@@{sub_area['id']}",
|
||||
vod_name=sub_area.get('name'),
|
||||
vod_pic=sub_area.get('pic'),
|
||||
vod_tag=1,
|
||||
style={"type": "oval", "ratio": 1}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 1
|
||||
# 如果没有找到子分类,直接返回空,让用户进入房间列表
|
||||
return vdata, 1
|
||||
|
||||
# 房间列表 - 使用getList接口并添加WBI签名 [^30^]
|
||||
if 'click' in tid:
|
||||
# 子分类房间
|
||||
ids = tid.split('_')[1].split('@@')
|
||||
tid = ids[0]
|
||||
parent_area_id = ids[1]
|
||||
area_id = ids[2]
|
||||
else:
|
||||
# 默认使用分类ID作为parent_area_id,area_id为0表示该分类下所有
|
||||
parent_area_id = extend.get('cate', '2') # 默认网游
|
||||
area_id = 0
|
||||
|
||||
# 构建请求参数并添加WBI签名 [^30^]
|
||||
params = {
|
||||
'parent_area_id': parent_area_id,
|
||||
'area_id': area_id,
|
||||
'page': pg,
|
||||
'platform': 'web',
|
||||
'sort_type': 'online' # 按热度排序
|
||||
}
|
||||
signed_params = self._enc_wbi(params)
|
||||
|
||||
# 调用getList接口
|
||||
api_url = f'{self.hosts[tid][0]}/xlive/web-interface/v1/second/getList'
|
||||
data = self.fetch(api_url, params=signed_params, headers=self.headers[0]).json()
|
||||
|
||||
# 如果WBI签名失败,尝试不带签名
|
||||
if data.get('code') == -352:
|
||||
print("WBI签名失败,尝试无签名请求...")
|
||||
params = {
|
||||
'parent_area_id': parent_area_id,
|
||||
'area_id': area_id,
|
||||
'page': pg,
|
||||
'platform': 'web',
|
||||
'sort_type': 'online'
|
||||
}
|
||||
data = self.fetch(api_url, params=params, headers=self.headers[0]).json()
|
||||
|
||||
if data.get('code') == 0:
|
||||
room_list = data.get('data', {}).get('list', [])
|
||||
for room in room_list:
|
||||
if room.get('roomid'):
|
||||
# 处理在线人数显示
|
||||
online = room.get('online', 0)
|
||||
if online > 10000:
|
||||
online_str = f"{online / 10000:.1f}万"
|
||||
else:
|
||||
online_str = str(online)
|
||||
|
||||
v = self.buildvod(
|
||||
f"{tid}@@{room['roomid']}",
|
||||
room.get('title', '未知标题'),
|
||||
room.get('cover') or room.get('system_cover'),
|
||||
f"{online_str}人",
|
||||
0,
|
||||
room.get('uname', ''),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
)
|
||||
vdata.append(v)
|
||||
|
||||
# 检查是否有更多数据
|
||||
has_more = data.get('data', {}).get('has_more', 0)
|
||||
if not has_more:
|
||||
pagecount = int(pg)
|
||||
else:
|
||||
pagecount = 9999
|
||||
else:
|
||||
print(f"B站API返回错误: {data.get('message', '未知错误')} (code: {data.get('code')})")
|
||||
pagecount = 1
|
||||
|
||||
return vdata, pagecount
|
||||
|
||||
except Exception as e:
|
||||
print(f"B站内容获取错误: {e}")
|
||||
return vdata, 1
|
||||
|
||||
def huyaContent(self, tid, pg, filter, extend, vdata):
|
||||
if extend.get('cate') and pg == '1' and 'click' not in tid:
|
||||
id = extend.get('cate')
|
||||
data = self.fetch(f'{self.referers[tid]}/liveconfig/game/bussLive?bussType={id}',
|
||||
headers=self.headers[1]).json()
|
||||
for i in data['data']:
|
||||
v = self.buildvod(
|
||||
vod_id=f"click_{tid}@@{int(i['gid'])}",
|
||||
vod_name=i.get('gameFullName'),
|
||||
vod_pic=f'https://huyaimg.msstatic.com/cdnimage/game/{int(i["gid"])}-MS.jpg',
|
||||
vod_tag=1,
|
||||
style={"type": "oval", "ratio": 1}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 1
|
||||
else:
|
||||
gid = ''
|
||||
if 'click' in tid:
|
||||
ids = tid.split('_')[1].split('@@')
|
||||
tid = ids[0]
|
||||
gid = f'&gameId={ids[1]}'
|
||||
data = self.fetch(f'{self.hosts[tid][0]}/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0{gid}&page={pg}',
|
||||
headers=self.headers[1]).json()
|
||||
for i in data['data']['datas']:
|
||||
if i.get('profileRoom'):
|
||||
v = self.buildvod(
|
||||
f"{tid}@@{i['profileRoom']}",
|
||||
i.get('introduction'),
|
||||
i.get('screenshot'),
|
||||
str(int(i.get('totalCount', '1')) / 10000) + '万',
|
||||
0,
|
||||
i.get('nick'),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 9999
|
||||
|
||||
def douyuContent(self, tid, pg, filter, extend, vdata):
|
||||
if extend.get('cate') and pg == '1' and 'click' not in tid:
|
||||
for i in self.dyufdata['data']['cate2Info']:
|
||||
if str(i['cate1Id']) == extend['cate']:
|
||||
v = self.buildvod(
|
||||
vod_id=f"click_{tid}@@{i['cate2Id']}",
|
||||
vod_name=i.get('cate2Name'),
|
||||
vod_pic=i.get('icon'),
|
||||
vod_remarks=i.get('count'),
|
||||
vod_tag=1,
|
||||
style={"type": "oval", "ratio": 1}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 1
|
||||
else:
|
||||
path = f'/japi/weblist/apinc/allpage/6/{pg}'
|
||||
if 'click' in tid:
|
||||
ids = tid.split('_')[1].split('@@')
|
||||
tid = ids[0]
|
||||
path = f'/gapi/rkc/directory/mixList/2_{ids[1]}/{pg}'
|
||||
url = f'{self.hosts[tid]}{path}'
|
||||
data = self.fetch(url, headers=self.headers[1]).json()
|
||||
for i in data['data']['rl']:
|
||||
v = self.buildvod(
|
||||
vod_id=f"{tid}@@{i['rid']}",
|
||||
vod_name=i.get('rn'),
|
||||
vod_pic=i.get('rs16'),
|
||||
vod_year=str(int(i.get('ol', 1)) / 10000) + '万',
|
||||
vod_remarks=i.get('nn'),
|
||||
style={"type": "rect", "ratio": 1.33}
|
||||
)
|
||||
vdata.append(v)
|
||||
return vdata, 9999
|
||||
|
||||
def detailContent(self, ids):
|
||||
ids = ids[0].split('@@')
|
||||
if ids[0] == 'wangyi':
|
||||
vod = self.wyccDetail(ids)
|
||||
elif ids[0] == 'bili':
|
||||
vod = self.biliDetail(ids)
|
||||
elif ids[0] == 'huya':
|
||||
vod = self.huyaDetail(ids)
|
||||
elif ids[0] == 'douyu':
|
||||
vod = self.douyuDetail(ids)
|
||||
return {'list': [vod]}
|
||||
|
||||
def wyccDetail(self, ids):
|
||||
try:
|
||||
vdata = self.getpq(f'{self.hosts[ids[0]]}/{ids[1]}', self.headers[0])('script').eq(-1).text()
|
||||
|
||||
def get_quality_name(vbr):
|
||||
if vbr <= 600:
|
||||
return "标清"
|
||||
elif vbr <= 1000:
|
||||
return "高清"
|
||||
elif vbr <= 2000:
|
||||
return "超清"
|
||||
else:
|
||||
return "蓝光"
|
||||
|
||||
data = json.loads(vdata)['props']['pageProps']['roomInfoInitData']
|
||||
name = data['live'].get('title', ids[0])
|
||||
vod = self.buildvod(vod_name=data.get('keywords_suffix'), vod_remarks=data['live'].get('title'),
|
||||
vod_content=data.get('description_suffix'))
|
||||
resolution_data = data['live']['quickplay']['resolution']
|
||||
all_streams = {}
|
||||
sorted_qualities = sorted(resolution_data.items(),
|
||||
key=lambda x: x[1]['vbr'],
|
||||
reverse=True)
|
||||
for quality, data in sorted_qualities:
|
||||
vbr = data['vbr']
|
||||
quality_name = get_quality_name(vbr)
|
||||
for cdn_name, url in data['cdn'].items():
|
||||
if cdn_name not in all_streams and type(url) == str and url.startswith('http'):
|
||||
all_streams[cdn_name] = []
|
||||
if isinstance(url, str) and url.startswith('http'):
|
||||
all_streams[cdn_name].extend([quality_name, url])
|
||||
plists = []
|
||||
names = []
|
||||
for i, (cdn_name, stream_list) in enumerate(all_streams.items(), 1):
|
||||
names.append(f'线路{i}')
|
||||
pstr = f"{name}${ids[0]}@@{self.e64(json.dumps(stream_list))}"
|
||||
plists.append(pstr)
|
||||
vod['vod_play_from'] = "$$$".join(names)
|
||||
vod['vod_play_url'] = "$$$".join(plists)
|
||||
return vod
|
||||
except Exception as e:
|
||||
return self.handle_exception(e)
|
||||
|
||||
def biliDetail(self, ids):
|
||||
"""
|
||||
B站直播详情 - 使用playUrl接口获取多清晰度
|
||||
"""
|
||||
try:
|
||||
room_id = ids[1]
|
||||
|
||||
# 获取房间信息
|
||||
info_res = self.fetch(
|
||||
f'{self.hosts["bili"][0]}/room/v1/Room/get_info?room_id={room_id}',
|
||||
headers=self.headers[0]
|
||||
).json()
|
||||
|
||||
if info_res.get('code') != 0:
|
||||
return self.handle_exception(Exception("获取房间信息失败"))
|
||||
|
||||
room_info = info_res['data']
|
||||
title = room_info.get('title', 'B站直播')
|
||||
|
||||
vod = self.buildvod(
|
||||
vod_name=title,
|
||||
type_name=f"{room_info.get('parent_area_name', '')}/{room_info.get('area_name', '')}",
|
||||
vod_director=room_info.get('uname', ''),
|
||||
vod_remarks=f"在线{room_info.get('online', 0)}人"
|
||||
)
|
||||
|
||||
# 获取播放地址信息
|
||||
play_res = self.fetch(
|
||||
f'{self.hosts["bili"][0]}/room/v1/Room/playUrl?cid={room_id}&qn=10000&platform=web',
|
||||
headers={
|
||||
**self.headers[0],
|
||||
'Referer': 'https://live.bilibili.com/',
|
||||
'Origin': 'https://live.bilibili.com'
|
||||
}
|
||||
).json()
|
||||
|
||||
if play_res.get('code') != 0:
|
||||
return self.handle_exception(Exception("获取播放地址失败"))
|
||||
|
||||
play_data = play_res['data']
|
||||
accept_quality = play_data.get('accept_quality', ['10000', '400', '250', '150'])
|
||||
quality_desc = {item['qn']: item['desc'] for item in play_data.get('quality_description', [])}
|
||||
|
||||
# 构建清晰度列表
|
||||
qualities = []
|
||||
for qn in sorted([int(q) for q in accept_quality], reverse=True):
|
||||
desc = quality_desc.get(qn, f'清晰度{qn}')
|
||||
qualities.append(f"{desc}$bili@@{room_id}@@{qn}")
|
||||
|
||||
vod['vod_play_from'] = 'B站直播'
|
||||
vod['vod_play_url'] = '#'.join(qualities)
|
||||
return vod
|
||||
|
||||
except Exception as e:
|
||||
print(f"B站详情错误: {e}")
|
||||
return self.handle_exception(e)
|
||||
|
||||
def huyaDetail(self, ids):
|
||||
"""
|
||||
虎牙播放详情 - 参考最新三合一.js重构
|
||||
支持多线路多清晰度选择
|
||||
核心算法:通过房间信息API获取uid、streamName和rateArray,为每个清晰度生成签名URL
|
||||
清晰度说明:
|
||||
- 蓝光8M/6M/4M/10M = 8000/6000/4000/10000 kbps = 1080P+
|
||||
- 蓝光 = 3000 kbps = 1080P
|
||||
- 超清 = 2000 kbps = 1080P (官方标准)
|
||||
- 高清 = 1200 kbps = 720P
|
||||
- 标清/流畅 = 500-800 kbps = 480P/540P
|
||||
"""
|
||||
try:
|
||||
room_id = ids[1]
|
||||
|
||||
# 1. 获取房间信息
|
||||
api_url = f'{self.hosts[ids[0]][1]}/cache.php?m=Live&do=profileRoom&roomid={room_id}'
|
||||
res = self.fetch(api_url, headers=self.headers[0])
|
||||
|
||||
if res.status_code != 200:
|
||||
return self.handle_exception(Exception(f"API请求失败: {res.status_code}"))
|
||||
|
||||
data = res.json()
|
||||
if not data or not data.get('data'):
|
||||
return self.handle_exception(Exception("房间数据为空"))
|
||||
|
||||
room_data = data['data']
|
||||
|
||||
# 2. 提取关键信息
|
||||
uid = room_data.get('profileInfo', {}).get('uid')
|
||||
stream_info = room_data.get('stream', {})
|
||||
live_data = room_data.get('liveData', {})
|
||||
|
||||
if not uid:
|
||||
return self.handle_exception(Exception("缺少uid"))
|
||||
|
||||
# 3. 获取streamName和码率信息
|
||||
base_stream_list = stream_info.get('baseSteamInfoList', [])
|
||||
if not base_stream_list:
|
||||
return self.handle_exception(Exception("无直播流信息"))
|
||||
|
||||
# 获取第一个CDN的streamName作为基准
|
||||
base_stream = base_stream_list[0]
|
||||
stream_name = base_stream.get('sStreamName')
|
||||
if not stream_name:
|
||||
return self.handle_exception(Exception("无法获取streamName"))
|
||||
|
||||
# 4. 构建VOD对象
|
||||
vod = self.buildvod(
|
||||
vod_name=live_data.get('introduction', '虎牙直播'),
|
||||
type_name=live_data.get('gameFullName', ''),
|
||||
vod_director=live_data.get('nick', ''),
|
||||
vod_remarks=live_data.get('contentIntro', ''),
|
||||
)
|
||||
|
||||
# 5. 获取所有CDN线路
|
||||
cdn_list = []
|
||||
for stream in base_stream_list:
|
||||
cdn_type = stream.get('sCdnType', 'AL')
|
||||
flv_url = stream.get('sFlvUrl', '')
|
||||
hls_url = stream.get('sHlsUrl', '')
|
||||
stream_name_cdn = stream.get('sStreamName', stream_name)
|
||||
|
||||
if flv_url:
|
||||
cdn_list.append({
|
||||
'cdn': cdn_type,
|
||||
'flv_base': flv_url,
|
||||
'hls_base': hls_url,
|
||||
'stream_name': stream_name_cdn,
|
||||
'priority': stream.get('iWebPriorityRate', 0)
|
||||
})
|
||||
|
||||
# 按优先级排序
|
||||
cdn_list.sort(key=lambda x: x['priority'], reverse=True)
|
||||
|
||||
# 6. 获取清晰度列表 (rateArray)
|
||||
rate_array = stream_info.get('rateArray', [])
|
||||
|
||||
# 如果没有rateArray,尝试从vMultiStreamInfo获取
|
||||
if not rate_array and 'vMultiStreamInfo' in room_data:
|
||||
rate_array = room_data['vMultiStreamInfo']
|
||||
|
||||
# 如果仍然没有,使用默认清晰度(按虎牙官方标准)
|
||||
if not rate_array:
|
||||
rate_array = [
|
||||
{'sDisplayName': '蓝光4M', 'iBitRate': 4000},
|
||||
{'sDisplayName': '蓝光', 'iBitRate': 3000},
|
||||
{'sDisplayName': '超清', 'iBitRate': 2000}, # 2000kbps = 1080P
|
||||
{'sDisplayName': '高清', 'iBitRate': 1200}, # 1200kbps = 720P
|
||||
{'sDisplayName': '流畅', 'iBitRate': 500}
|
||||
]
|
||||
|
||||
# 过滤和排序清晰度
|
||||
# 虎牙的rateArray中,iBitRate就是码率值,sDisplayName是显示名称
|
||||
# 需要确保:超清=2000kbps(1080P),高清=1200kbps(720P)
|
||||
filtered_rates = []
|
||||
seen_bitrates = set()
|
||||
|
||||
for rate in rate_array:
|
||||
bit_rate = rate.get('iBitRate', 0)
|
||||
name = rate.get('sDisplayName', '')
|
||||
|
||||
# 跳过重复的码率
|
||||
if bit_rate in seen_bitrates:
|
||||
continue
|
||||
|
||||
# 修正清晰度名称,确保符合虎牙标准
|
||||
# 2000kbps应该是超清(1080P),不是高清
|
||||
if bit_rate == 2000 and ('高清' in name or '720' in name):
|
||||
name = '超清' # 强制修正为超清
|
||||
elif bit_rate == 1200 and ('标清' in name or '480' in name):
|
||||
name = '高清' # 1200kbps对应高清
|
||||
elif bit_rate == 2000 and name == '原画':
|
||||
name = '超清' # 修正原画为超清
|
||||
|
||||
seen_bitrates.add(bit_rate)
|
||||
filtered_rates.append({
|
||||
'sDisplayName': name,
|
||||
'iBitRate': bit_rate
|
||||
})
|
||||
|
||||
# 按码率从高到低排序
|
||||
sorted_rates = sorted(filtered_rates, key=lambda x: x['iBitRate'], reverse=True)
|
||||
|
||||
# 7. 为每个CDN生成各清晰度的播放URL
|
||||
play_lines = []
|
||||
line_names = []
|
||||
|
||||
for cdn_idx, cdn in enumerate(cdn_list[:3]): # 最多取3个CDN
|
||||
cdn_name = cdn['cdn']
|
||||
line_names.append(f"线路{cdn_idx + 1}({cdn_name})")
|
||||
|
||||
qualities = []
|
||||
for rate in sorted_rates:
|
||||
quality_name = rate['sDisplayName']
|
||||
bit_rate = rate['iBitRate']
|
||||
|
||||
# 生成该清晰度的URL
|
||||
quality_url = self._generate_huya_play_url(
|
||||
cdn, uid, stream_name, bit_rate
|
||||
)
|
||||
|
||||
qualities.extend([quality_name, quality_url])
|
||||
|
||||
# 编码该线路的所有清晰度
|
||||
encoded_qualities = self.e64(json.dumps(qualities))
|
||||
play_lines.append(f"{live_data.get('introduction', '直播')}${ids[0]}@@{encoded_qualities}")
|
||||
|
||||
# 8. 构建播放数据
|
||||
vod['vod_play_from'] = "$$$".join(line_names)
|
||||
vod['vod_play_url'] = "$$$".join(play_lines)
|
||||
|
||||
return vod
|
||||
|
||||
except Exception as e:
|
||||
return self.handle_exception(e)
|
||||
|
||||
def _generate_huya_play_url(self, cdn, uid, stream_name, bit_rate):
|
||||
"""
|
||||
生成虎牙播放URL,参考最新三合一.js算法
|
||||
关键:ratio参数必须正确设置为iBitRate值(如2000、4000等)
|
||||
"""
|
||||
# 基础URL构建
|
||||
flv_base = cdn['flv_base']
|
||||
stream = cdn['stream_name']
|
||||
|
||||
# 生成时间戳和签名参数
|
||||
timestamp = int(time.time())
|
||||
seqid = f"{uid}{timestamp}"
|
||||
ss = hashlib.md5(f"{seqid}|huya_adr|102".encode()).hexdigest()
|
||||
ws_time = hex(timestamp + 21600)[2:] # 16进制,有效期6小时
|
||||
|
||||
# 计算wsSecret
|
||||
ws_secret = hashlib.md5(
|
||||
f"DWq8BcJ3h6DJt6TY_{uid}_{stream_name}_{ss}_{ws_time}".encode()
|
||||
).hexdigest()
|
||||
|
||||
# 构建基础URL
|
||||
base_url = f"{flv_base}/{stream}.flv"
|
||||
|
||||
# 关键修复:ratio参数直接使用iBitRate值
|
||||
# 超清=2000,高清=1200,蓝光=3000/4000/6000/8000
|
||||
if bit_rate > 0:
|
||||
ratio_param = f"ratio={bit_rate}"
|
||||
else:
|
||||
# 原画/0码率时,使用默认2000或从URL推断
|
||||
ratio_param = "ratio=2000"
|
||||
|
||||
# 构建完整URL
|
||||
play_url = (
|
||||
f"{base_url}?{ratio_param}&wsSecret={ws_secret}&wsTime={ws_time}"
|
||||
f"&ctype=huya_adr&seqid={seqid}&uid={uid}"
|
||||
f"&fs=bgct&ver=1&t=102"
|
||||
)
|
||||
|
||||
return play_url
|
||||
|
||||
def douyuDetail(self, ids):
|
||||
"""
|
||||
斗鱼播放详情 - 参考最新三合一.js重构
|
||||
核心算法:设备ID生成 -> 获取加密密钥 -> 计算签名 -> 获取播放地址
|
||||
修复:切换分辨率只能播放1秒的问题
|
||||
方案:存储房间号和码率信息,在playerContent中实时获取对应码率的URL
|
||||
"""
|
||||
try:
|
||||
channel = ids[1]
|
||||
headers = self.gethr(0, zr=f'{self.hosts[ids[0]]}/{channel}')
|
||||
|
||||
# 1. 初始化会话和设备ID (参考JS中的initialize和setupDeviceId)
|
||||
session = {}
|
||||
|
||||
# 请求首页获取Cookie
|
||||
try:
|
||||
home_res = self.fetch(f'{self.hosts[ids[0]]}/{channel}', headers=headers)
|
||||
if home_res.headers.get('Set-Cookie'):
|
||||
cookie_str = home_res.headers.get('Set-Cookie')
|
||||
# 解析dy_did
|
||||
did_match = re.search(r'dy_did=([a-f0-9]{32})', cookie_str)
|
||||
if did_match:
|
||||
device_id = did_match.group(1)
|
||||
else:
|
||||
device_id = self._generate_random_hex(32)
|
||||
else:
|
||||
device_id = self._generate_random_hex(32)
|
||||
except:
|
||||
device_id = self._generate_random_hex(32)
|
||||
|
||||
session['dy_did'] = device_id
|
||||
session['mantine-color-scheme-value'] = 'light'
|
||||
|
||||
# 2. 获取房间基本信息
|
||||
betard_res = self.fetch(f'{self.hosts[ids[0]]}/betard/{channel}', headers=headers).json()
|
||||
if not betard_res or not betard_res.get('room'):
|
||||
return self.handle_exception(Exception("获取房间信息失败"))
|
||||
|
||||
room_info = betard_res['room']
|
||||
vname = room_info.get('room_name', '斗鱼直播')
|
||||
|
||||
vod = self.buildvod(
|
||||
vod_name=vname,
|
||||
vod_remarks=room_info.get('second_lvl_name', ''),
|
||||
vod_director=room_info.get('nickname', ''),
|
||||
)
|
||||
|
||||
# 3. 获取安全密钥 (参考JS中的getSecurityKey)
|
||||
sec_url = f"{self.hosts[ids[0]]}/wgapi/livenc/liveweb/websec/getEncryption?did={device_id}"
|
||||
sec_res = self.fetch(sec_url, headers=headers).json()
|
||||
|
||||
if not sec_res or sec_res.get('error') != 0:
|
||||
return self.handle_exception(Exception("获取加密密钥失败"))
|
||||
|
||||
security_data = sec_res['data']
|
||||
secret_key = security_data.get('key')
|
||||
random_str = security_data.get('rand_str')
|
||||
enc_time = security_data.get('enc_time', 1)
|
||||
enc_data = security_data.get('enc_data')
|
||||
|
||||
# 4. 计算签名 (参考JS中的computeSignature)
|
||||
current_time = int(time.time())
|
||||
|
||||
# 迭代计算MD5
|
||||
current = random_str
|
||||
for _ in range(enc_time):
|
||||
current = hashlib.md5(f"{current}{secret_key}".encode()).hexdigest()
|
||||
|
||||
signature = hashlib.md5(f"{current}{secret_key}{channel}{current_time}".encode()).hexdigest()
|
||||
|
||||
# 5. 请求播放地址 (参考JS中的requestStreamData)
|
||||
play_payload = {
|
||||
'enc_data': enc_data,
|
||||
'tt': str(current_time),
|
||||
'did': device_id,
|
||||
'auth': signature,
|
||||
'cdn': '',
|
||||
'rate': '',
|
||||
'hevc': '0',
|
||||
'fa': '0',
|
||||
'ive': '0'
|
||||
}
|
||||
|
||||
play_api = f"{self.hosts[ids[0]]}/lapi/live/getH5PlayV1/{channel}"
|
||||
|
||||
# 构建请求头带Cookie
|
||||
play_headers = headers.copy()
|
||||
cookie_str = '; '.join([f"{k}={v}" for k, v in session.items()])
|
||||
play_headers['Cookie'] = cookie_str
|
||||
play_headers['Content-Type'] = 'application/x-www-form-urlencoded'
|
||||
|
||||
play_res = requests.post(play_api, data=play_payload, headers=play_headers, timeout=10).json()
|
||||
|
||||
if not play_res or play_res.get('error') != 0:
|
||||
# 尝试旧版API
|
||||
play_res = self._try_legacy_douyu_api(channel, device_id, signature, current_time, play_headers)
|
||||
if not play_res:
|
||||
return self.handle_exception(Exception("获取播放地址失败"))
|
||||
|
||||
stream_info = play_res.get('data', {})
|
||||
|
||||
# 6. 检查并更新设备ID (参考JS中的checkAndUpdateDeviceId)
|
||||
rtmp_live = stream_info.get('rtmp_live', '')
|
||||
if rtmp_live:
|
||||
did_match = re.search(r'did=([a-f0-9]{32})', rtmp_live)
|
||||
if did_match and did_match.group(1) != device_id:
|
||||
device_id = did_match.group(1)
|
||||
session['dy_did'] = device_id
|
||||
# 重新请求
|
||||
play_payload['did'] = device_id
|
||||
play_res = requests.post(play_api, data=play_payload, headers=play_headers, timeout=10).json()
|
||||
if play_res and play_res.get('error') == 0:
|
||||
stream_info = play_res.get('data', {})
|
||||
|
||||
# 7. 提取播放URL和多码率信息
|
||||
stream_url = None
|
||||
if stream_info.get('rtmp_url') and stream_info.get('rtmp_live'):
|
||||
stream_url = f"{stream_info['rtmp_url']}/{stream_info['rtmp_live']}"
|
||||
elif stream_info.get('hls_url'):
|
||||
stream_url = stream_info['hls_url']
|
||||
|
||||
if not stream_url:
|
||||
return self.handle_exception(Exception("无法获取播放地址"))
|
||||
|
||||
# 8. 构建多码率选项
|
||||
multirates = stream_info.get('multirates', [])
|
||||
|
||||
# 关键修复:存储房间号和码率信息,而不是直接存储URL
|
||||
# 这样在切换清晰度时可以重新获取对应码率的签名URL
|
||||
qualities = []
|
||||
|
||||
if multirates:
|
||||
# 按码率排序
|
||||
sorted_rates = sorted(multirates, key=lambda x: x.get('bit', 0), reverse=True)
|
||||
for rate in sorted_rates:
|
||||
bit_rate = rate.get('rate', -1)
|
||||
name = rate.get('name', f"{bit_rate}P")
|
||||
|
||||
# 存储格式:码率值,用于playerContent中重新获取URL
|
||||
# 使用特殊标记#来区分这是码率值而不是URL
|
||||
qualities.extend([name, f"#{bit_rate}"])
|
||||
else:
|
||||
# 只有原画
|
||||
qualities = ['原画', '#-1']
|
||||
|
||||
# 同时存储房间号和设备信息,用于重新获取URL
|
||||
# 格式:房间号|设备ID|签名信息(base64编码)
|
||||
session_info = {
|
||||
'channel': channel,
|
||||
'device_id': device_id,
|
||||
'secret_key': secret_key,
|
||||
'random_str': random_str,
|
||||
'enc_time': enc_time,
|
||||
'enc_data': enc_data
|
||||
}
|
||||
encoded_session = self.e64(json.dumps(session_info))
|
||||
|
||||
# 9. 构建播放数据
|
||||
# vod_play_url格式:房间名$平台@@base64(清晰度列表)@@base64(会话信息)
|
||||
encoded_qualities = self.e64(json.dumps(qualities))
|
||||
vod['vod_play_from'] = '斗鱼直播'
|
||||
vod['vod_play_url'] = f"{vname}${ids[0]}@@{encoded_qualities}@@{encoded_session}"
|
||||
|
||||
return vod
|
||||
|
||||
except Exception as e:
|
||||
return self.handle_exception(e)
|
||||
|
||||
def _generate_random_hex(self, length):
|
||||
"""生成随机十六进制字符串"""
|
||||
hex_chars = '0123456789abcdef'
|
||||
return ''.join(random.choice(hex_chars) for _ in range(length))
|
||||
|
||||
def _try_legacy_douyu_api(self, channel, device_id, signature, timestamp, headers):
|
||||
"""尝试使用旧版API获取播放地址"""
|
||||
try:
|
||||
legacy_payload = {
|
||||
'did': device_id,
|
||||
'tt': str(timestamp),
|
||||
'sign': signature,
|
||||
'cdn': '',
|
||||
'rate': '-1',
|
||||
'ver': 'Douyu_223061205',
|
||||
'iar': '1',
|
||||
'ive': '1',
|
||||
'hevc': '0',
|
||||
'fa': '0'
|
||||
}
|
||||
legacy_api = f"https://www.douyu.com/lapi/live/getH5Play/{channel}"
|
||||
res = requests.post(legacy_api, data=legacy_payload, headers=headers, timeout=10)
|
||||
return res.json() if res.status_code == 200 else None
|
||||
except:
|
||||
return None
|
||||
|
||||
def _get_douyu_play_url(self, channel, device_id, secret_key, random_str, enc_time, enc_data, rate):
|
||||
"""
|
||||
获取斗鱼指定码率的播放URL(带签名)
|
||||
用于切换清晰度时重新获取URL
|
||||
"""
|
||||
try:
|
||||
current_time = int(time.time())
|
||||
|
||||
# 重新计算签名
|
||||
current = random_str
|
||||
for _ in range(enc_time):
|
||||
current = hashlib.md5(f"{current}{secret_key}".encode()).hexdigest()
|
||||
|
||||
signature = hashlib.md5(f"{current}{secret_key}{channel}{current_time}".encode()).hexdigest()
|
||||
|
||||
# 构建请求
|
||||
play_payload = {
|
||||
'enc_data': enc_data,
|
||||
'tt': str(current_time),
|
||||
'did': device_id,
|
||||
'auth': signature,
|
||||
'cdn': '',
|
||||
'rate': str(rate) if rate > 0 else '',
|
||||
'hevc': '0',
|
||||
'fa': '0',
|
||||
'ive': '0'
|
||||
}
|
||||
|
||||
play_api = f"https://www.douyu.com/lapi/live/getH5PlayV1/{channel}"
|
||||
|
||||
headers = {
|
||||
'User-Agent': self.headers[0]['User-Agent'],
|
||||
'Referer': f'https://www.douyu.com/{channel}',
|
||||
'Origin': 'https://www.douyu.com',
|
||||
'Cookie': f'dy_did={device_id}; mantine-color-scheme-value=light',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
|
||||
play_res = requests.post(play_api, data=play_payload, headers=headers, timeout=10).json()
|
||||
|
||||
if not play_res or play_res.get('error') != 0:
|
||||
# 尝试旧版API
|
||||
return self._get_douyu_play_url_legacy(channel, device_id, signature, current_time, rate)
|
||||
|
||||
stream_info = play_res.get('data', {})
|
||||
|
||||
# 检查设备ID是否匹配
|
||||
if stream_info.get('rtmp_live'):
|
||||
did_match = re.search(r'did=([a-f0-9]{32})', stream_info['rtmp_live'])
|
||||
if did_match and did_match.group(1) != device_id:
|
||||
# 设备ID不匹配,使用新设备ID重新获取
|
||||
return self._get_douyu_play_url(channel, did_match.group(1), secret_key, random_str, enc_time, enc_data, rate)
|
||||
|
||||
if stream_info.get('rtmp_url') and stream_info.get('rtmp_live'):
|
||||
return f"{stream_info['rtmp_url']}/{stream_info['rtmp_live']}"
|
||||
elif stream_info.get('hls_url'):
|
||||
return stream_info['hls_url']
|
||||
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"获取斗鱼播放URL失败: {e}")
|
||||
return None
|
||||
|
||||
def _get_douyu_play_url_legacy(self, channel, device_id, signature, timestamp, rate):
|
||||
"""使用旧版API获取斗鱼播放URL"""
|
||||
try:
|
||||
legacy_payload = {
|
||||
'did': device_id,
|
||||
'tt': str(timestamp),
|
||||
'sign': signature,
|
||||
'cdn': '',
|
||||
'rate': str(rate) if rate > 0 else '-1',
|
||||
'ver': 'Douyu_223061205',
|
||||
'iar': '1',
|
||||
'ive': '1',
|
||||
'hevc': '0',
|
||||
'fa': '0'
|
||||
}
|
||||
legacy_api = f"https://www.douyu.com/lapi/live/getH5Play/{channel}"
|
||||
|
||||
headers = {
|
||||
'User-Agent': self.headers[0]['User-Agent'],
|
||||
'Referer': f'https://www.douyu.com/{channel}',
|
||||
'Cookie': f'dy_did={device_id}',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
|
||||
res = requests.post(legacy_api, data=legacy_payload, headers=headers, timeout=10)
|
||||
if res.status_code == 200:
|
||||
data = res.json()
|
||||
if data.get('error') == 0:
|
||||
stream_info = data.get('data', {})
|
||||
if stream_info.get('rtmp_url') and stream_info.get('rtmp_live'):
|
||||
return f"{stream_info['rtmp_url']}/{stream_info['rtmp_live']}"
|
||||
return None
|
||||
except:
|
||||
return None
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
pass
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
try:
|
||||
ids = id.split('@@')
|
||||
p = 1
|
||||
if ids[0] in ['wangyi']:
|
||||
p, url = 0, json.loads(self.d64(ids[1]))
|
||||
elif ids[0] == 'bili':
|
||||
p, url = self.biliplay(ids)
|
||||
elif ids[0] == 'huya':
|
||||
p, url = self.huyaplay(ids)
|
||||
elif ids[0] == 'douyu':
|
||||
p, url = self.douyuplay(ids)
|
||||
return {'parse': p, 'url': url, 'header': self.playheaders[ids[0]]}
|
||||
except Exception as e:
|
||||
return {'parse': 1, 'url': self.excepturl, 'header': self.headers[0]}
|
||||
|
||||
def biliplay(self, ids):
|
||||
"""
|
||||
B站播放解析 - 使用playUrl接口获取指定清晰度直播流
|
||||
ids: [平台, 房间号, 清晰度qn]
|
||||
支持多线路返回
|
||||
"""
|
||||
try:
|
||||
room_id = ids[1]
|
||||
qn = ids[2] if len(ids) > 2 else '10000'
|
||||
|
||||
# 使用playUrl接口获取直播流
|
||||
play_url = f'{self.hosts["bili"][0]}/room/v1/Room/playUrl?cid={room_id}&qn={qn}&platform=web'
|
||||
data = self.fetch(play_url, headers={
|
||||
**self.headers[0],
|
||||
'Referer': 'https://live.bilibili.com/',
|
||||
'Origin': 'https://live.bilibili.com'
|
||||
}).json()
|
||||
|
||||
if data.get('code') != 0:
|
||||
return 1, self.excepturl
|
||||
|
||||
play_data = data['data']
|
||||
durl_list = play_data.get('durl', [])
|
||||
|
||||
if not durl_list:
|
||||
return 1, self.excepturl
|
||||
|
||||
# 构建多线路结果 [线路1, URL1, 线路2, URL2, ...]
|
||||
urls = []
|
||||
for idx, item in enumerate(durl_list, 1):
|
||||
url = item.get('url')
|
||||
if url:
|
||||
urls.extend([f'线路{idx}', url])
|
||||
|
||||
# 如果只有一条线路,直接返回URL
|
||||
if len(urls) == 2:
|
||||
return 0, urls[1] # 直接返回URL字符串
|
||||
|
||||
return 0, urls
|
||||
|
||||
except Exception as e:
|
||||
print(f"B站播放错误: {e}")
|
||||
return 1, self.excepturl
|
||||
|
||||
def huyaplay(self, ids):
|
||||
"""
|
||||
虎牙播放解析 - 返回所有清晰度选项供用户选择
|
||||
ids[1] 格式: base64编码的 [清晰度名称1, URL1, 清晰度名称2, URL2, ...]
|
||||
"""
|
||||
try:
|
||||
# ids[1] 是编码后的播放地址列表 [名称1, URL1, 名称2, URL2, ...]
|
||||
decoded = json.loads(self.d64(ids[1]))
|
||||
# decoded 是一个列表,奇数索引是名称,偶数索引是URL
|
||||
return 0, decoded
|
||||
except Exception as e:
|
||||
print(f"虎牙播放解析错误: {e}")
|
||||
return 1, self.excepturl
|
||||
|
||||
def douyuplay(self, ids):
|
||||
"""
|
||||
斗鱼播放解析 - 实时获取对应码率的播放URL
|
||||
ids格式: [平台, base64(清晰度列表), base64(会话信息)]
|
||||
清晰度列表: [名称1, #码率1, 名称2, #码率2, ...]
|
||||
#表示这是码率值,需要重新获取URL
|
||||
"""
|
||||
try:
|
||||
if len(ids) < 3:
|
||||
# 兼容旧格式
|
||||
decoded = json.loads(self.d64(ids[1]))
|
||||
return 0, decoded
|
||||
|
||||
# 解析清晰度列表和会话信息
|
||||
qualities = json.loads(self.d64(ids[1]))
|
||||
session_info = json.loads(self.d64(ids[2]))
|
||||
|
||||
channel = session_info['channel']
|
||||
device_id = session_info['device_id']
|
||||
secret_key = session_info['secret_key']
|
||||
random_str = session_info['random_str']
|
||||
enc_time = session_info['enc_time']
|
||||
enc_data = session_info['enc_data']
|
||||
|
||||
# 为每个清晰度实时获取播放URL
|
||||
result = []
|
||||
for i in range(0, len(qualities), 2):
|
||||
name = qualities[i]
|
||||
rate_marker = qualities[i + 1]
|
||||
|
||||
# 解析码率值(去掉#前缀)
|
||||
if rate_marker.startswith('#'):
|
||||
rate = int(rate_marker[1:])
|
||||
else:
|
||||
rate = -1
|
||||
|
||||
# 实时获取对应码率的URL
|
||||
play_url = self._get_douyu_play_url(
|
||||
channel, device_id, secret_key, random_str,
|
||||
enc_time, enc_data, rate
|
||||
)
|
||||
|
||||
if play_url:
|
||||
result.extend([name, play_url])
|
||||
|
||||
if not result:
|
||||
return 1, self.excepturl
|
||||
|
||||
return 0, result
|
||||
except Exception as e:
|
||||
print(f"斗鱼播放解析错误: {e}")
|
||||
return 1, self.excepturl
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
||||
|
||||
def e64(self, text):
|
||||
try:
|
||||
text_bytes = text.encode('utf-8')
|
||||
encoded_bytes = b64encode(text_bytes)
|
||||
return encoded_bytes.decode('utf-8')
|
||||
except Exception as e:
|
||||
print(f"Base64编码错误: {str(e)}")
|
||||
return ""
|
||||
|
||||
def d64(self, encoded_text):
|
||||
try:
|
||||
encoded_bytes = encoded_text.encode('utf-8')
|
||||
decoded_bytes = b64decode(encoded_bytes)
|
||||
return decoded_bytes.decode('utf-8')
|
||||
except Exception as e:
|
||||
print(f"Base64解码错误: {str(e)}")
|
||||
return ""
|
||||
|
||||
def josn_to_params(self, params, skip_empty=False):
|
||||
query = []
|
||||
for k, v in params.items():
|
||||
if skip_empty and not v:
|
||||
continue
|
||||
query.append(f"{k}={v}")
|
||||
return "&".join(query)
|
||||
|
||||
def params_to_json(self, query_string):
|
||||
parsed_data = parse_qs(query_string)
|
||||
result = {key: value[0] for key, value in parsed_data.items()}
|
||||
return result
|
||||
|
||||
def buildvod(self, vod_id='', vod_name='', vod_pic='', vod_year='', vod_tag='', vod_remarks='', style='',
|
||||
type_name='', vod_area='', vod_actor='', vod_director='',
|
||||
vod_content='', vod_play_from='', vod_play_url=''):
|
||||
vod = {
|
||||
'vod_id': vod_id,
|
||||
'vod_name': vod_name,
|
||||
'vod_pic': vod_pic,
|
||||
'vod_year': vod_year,
|
||||
'vod_tag': 'folder' if vod_tag else '',
|
||||
'vod_remarks': vod_remarks,
|
||||
'style': style,
|
||||
'type_name': type_name,
|
||||
'vod_area': vod_area,
|
||||
'vod_actor': vod_actor,
|
||||
'vod_director': vod_director,
|
||||
'vod_content': vod_content,
|
||||
'vod_play_from': vod_play_from,
|
||||
'vod_play_url': vod_play_url
|
||||
}
|
||||
vod = {key: value for key, value in vod.items() if value}
|
||||
return vod
|
||||
|
||||
def getpq(self, url, headers=None, cookies=None):
|
||||
data = self.fetch(url, headers=headers, cookies=cookies).text
|
||||
try:
|
||||
return pq(data)
|
||||
except Exception as e:
|
||||
print(f"解析页面错误: {str(e)}")
|
||||
return pq(data.encode('utf-8'))
|
||||
|
||||
def gethr(self, index, rf='', zr=''):
|
||||
headers = self.headers[index]
|
||||
if zr:
|
||||
headers['referer'] = zr
|
||||
else:
|
||||
headers['referer'] = f"{self.referers[rf]}/"
|
||||
return headers
|
||||
|
||||
def handle_exception(self, e):
|
||||
print(f"报错: {str(e)}")
|
||||
return {'vod_play_from': '哎呀翻车啦', 'vod_play_url': f'翻车啦${self.excepturl}'}
|
||||
Binary file not shown.
Reference in New Issue
Block a user