Delete js/music哔哩.js

This commit is contained in:
hy5528
2026-08-10 10:32:57 +08:00
committed by GitHub
parent 775b338589
commit 7b0758d571
-216
View File
@@ -1,216 +0,0 @@
var rule = {
title: '哔哩音乐[官]',
host: 'https://api.bilibili.com',
url: '/fyclass-fypage&vmid=$vmid',
detailUrl: '/pgc/view/web/season?season_id=fyid',
filter_url: 'fl={{fl}}',
searchUrl: '/x/web-interface/search/type?keyword=**&page=fypage&search_type=media_bangumi&search_type=media_ft',
searchable: 1,
filterable: 1,
quickSearch: 0,
// 屏蔽地址
blocked_urls: [
'http://lie.yuyun4kmaopan.qijiyun.vip/d/ty/923241268797768768/video_260803_125610.mp4',
'http://mlwl.7766.org:91/qf.mp4',
'https://raw.giteeusercontent.com/nm_nm/interface/raw/master/ips/ips(20250418105556)_000.ts',
'https://gitee.com/nm_nm/interface/raw/master/ips/ips(20250418105556)_001.ts',
'IP使用次数超限,请加群签到.mp4'
],
headers: {
'User-Agent': 'PC_UA',
'Referer': 'https://www.bilibili.com'
},
tab_order: ['哔哩哔哩'],
timeout: 5000,
class_name: '粤语&热榜&抖音神曲&无损音乐&经典合集&经典老歌&全部',
class_url: '1&2&3&4&5&6&全部&综合排序&最新发布&时间表',
filter: {
"全部": [
{"key": "tid", "name": "分类", "value": [
{"n": "粤语", "v": "1"},
{"n": "热榜", "v": "2"},
{"n": "抖音神曲", "v": "3"},
{"n": "无损音乐", "v": "4"},
{"n": "经典合集", "v": "5"},
{"n": "经典老歌", "v": "6"}
]},
{"key": "order", "name": "排序", "value": [
{"n": "综合排序", "v": "2"},
{"n": "最新发布", "v": "0"},
{"n": "最高评分", "v": "4"},
{"n": "弹幕数量", "v": "1"},
{"n": "追看人数", "v": "3"}
]},
{"key": "season_status", "name": "付费", "value": [
{"n": "全部", "v": "-1"},
{"n": "免费", "v": "1"},
{"n": "付费", "v": "2%2C6"},
{"n": "大会员", "v": "4%2C6"}
]}
],
"时间表": [
{"key": "tid", "name": "分类", "value": [
{"n": "全部", "v": "1"},
{"n": "10分钟以下", "v": "4"}
]}
]
},
play_parse: true,
lazy: $js.toString(() => {
let apiList = [
"http://niubi.69mini.com/api/?key=09a74556faba7e3b528d64b9c9a86a61&url=",
"http://103.236.72.166:188/api/?key=veniDOaEzSzIThZsyb&url=",
'https://jx.xmflv.com/?url='
];
let danmakuUrls = ['https://api.bilibili.com/x/v1/dm/list.so?oid='];
// 内部解析函数 - 用于epid_cid格式
function parseInternal(ids, danmaku) {
let url = "https://api.bilibili.com/pgc/player/web/playurl?qn=116&ep_id=" + ids[0] + "&cid=" + ids[1];
let html = request(url);
let jRoot = JSON.parse(html);
if (jRoot["message"] !== "success") {
print("需要大会员权限或解析失败");
// 返回空,让外部使用通用解析
return null;
}
let jo = jRoot["result"];
let ja = jo["durls"];
let maxSize = -1, position = -1;
for (let i = 0; i < ja.length; i++) {
if (maxSize < Number(ja[i]["size"])) {
maxSize = Number(ja[i]["size"]);
position = i;
}
}
return {
"parse": 0,
"url": ja[position === -1 ? 0 : position]["url"],
"header": {"Referer": "https://www.bilibili.com", "User-Agent": "Mozilla/5.0"},
"contentType": "video/x-flv",
"danmaku": danmaku
};
}
// 解析外部链接
function parseExternal(targetUrl) {
let idx = 0;
// 检查屏蔽地址
function isBlocked(url) {
if (!url) return false;
for (let i = 0; i < rule.blocked_urls.length; i++) {
if (url.indexOf(rule.blocked_urls[i]) !== -1) {
return true;
}
}
return false;
}
function doParse() {
if (idx >= apiList.length) {
print("所有解析接口都失败");
input = "";
return;
}
let apiUrl = apiList[idx] + encodeURIComponent(targetUrl);
print("尝试解析接口" + (idx + 1));
try {
let response = fetch(apiUrl);
if (!response || response.length < 10) {
print("接口" + (idx + 1) + "无响应");
idx++;
doParse();
return;
}
let playUrl = '';
try {
let data = JSON.parse(response);
playUrl = data.url || data.playUrl || data.data || data.m3u8;
} catch (e) {
if (response.startsWith('http')) {
playUrl = response;
}
}
// 检查是否是屏蔽地址
if (playUrl && isBlocked(playUrl)) {
print("接口" + (idx + 1) + "返回屏蔽地址,跳过");
idx++;
doParse();
return;
}
if (playUrl && playUrl.startsWith('http') && playUrl.length > 10) {
print("接口" + (idx + 1) + "成功");
let danmaku = '';
try {
let bvMatch = targetUrl.match(/BV[\w]+/);
if (bvMatch) {
let bvInfo = fetch('https://api.bilibili.com/x/web-interface/view?bvid=' + bvMatch[0]);
let bvJson = JSON.parse(bvInfo);
if (bvJson.code === 0 && bvJson.data && bvJson.data.cid) {
danmaku = danmakuUrls[0] + bvJson.data.cid;
}
}
} catch (e) {}
input = {
"parse": 0,
"url": playUrl,
"header": {"Referer": "https://www.bilibili.com", "User-Agent": "Mozilla/5.0"},
"danmaku": danmaku
};
return;
} else {
print("接口" + (idx + 1) + "无效");
idx++;
doParse();
return;
}
} catch (e) {
print("接口" + (idx + 1) + "失败: " + e.message);
idx++;
doParse();
return;
}
}
doParse();
}
if (/^http/.test(input)) {
parseExternal(input.split("?")[0]);
} else {
let ids = input.split("_");
let dan = danmakuUrls[0] + ids[1];
let result = parseInternal(ids, dan);
if (result) {
input = result;
} else {
// 内部解析失败,使用外部解析
let url = "https://www.bilibili.com/bangumi/play/ep" + ids[0];
parseExternal(url);
}
}
}),
limit: 5,
推荐: 'js:let d=[];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];if(!title.includes("预告")){videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function home_video(){let videos=get_rank(1).slice(0,5);[4,2,5,3,7].forEach(function(i){videos=videos.concat(get_rank2(i).slice(0,5))});return videos}VODS=home_video();',
一级: 'js:let d=[];let vmid=input.split("vmid=")[1].split("&")[0];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];if(!title.includes("预告") && !remark.includes("预告")){videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_zhui(pg,mode){let url="https://api.bilibili.com/x/space/bangumi/follow/list?type="+mode+"&follow_status=0&pn="+pg+"&ps=10&vmid="+vmid;return get_result(url)}function get_all(tid,pg,order,season_status){let url="https://api.bilibili.com/pgc/season/index/result?order="+order+"&pagesize=20&type=1&season_type="+tid+"&page="+pg+"&season_status="+season_status;return get_result(url)}function get_timeline(tid,pg){let videos=[];let url="https://api.bilibili.com/pgc/web/timeline/v2?season_type="+tid+"&day_before=2&day_after=4";let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let videos1=[];let vodList=jo.result.latest;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod["pub_index"]+" "+vod["follows"].replace("系列","");if(!title.includes("预告") && !remark.includes("预告")){videos1.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}});let videos2=[];for(let i=0;i<7;i++){let vodList=jo["result"]["timeline"][i]["episodes"];vodList.forEach(function(vod){if(vod["published"]+""==="0" && !vod["title"].includes("预告")){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let date=vod["pub_ts"];let remark=date+" "+vod["pub_index"];videos2.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}videos=videos2.concat(videos1)}return videos}function cate_filter(d,cookie){if(MY_CATE==="1"){return get_rank(MY_CATE,MY_PAGE)}else if(["2","3","4","5","7"].includes(MY_CATE)){return get_rank2(MY_CATE,MY_PAGE)}else if(MY_CATE==="全部"){let tid=MY_FL.tid||"1";let order=MY_FL.order||"2";let season_status=MY_FL.season_status||"-1";return get_all(tid,MY_PAGE,order,season_status)}else if(MY_CATE==="追番"){return get_zhui(MY_PAGE,1)}else if(MY_CATE==="追剧"){return get_zhui(MY_PAGE,2)}else if(MY_CATE==="时间表"){let tid=MY_FL.tid||"1";return get_timeline(tid,MY_PAGE)}else{return[]}}VODS=cate_filter();',
二级: 'js:function zh(num){let p="";if(Number(num)>1e8){p=(num/1e8).toFixed(2)+"亿"}else if(Number(num)>1e4){p=(num/1e4).toFixed(2)+"万"}else{p=num}return p}let html=request(input);let jo=JSON.parse(html).result;let id=jo["season_id"];let title=jo["title"];let pic=jo["cover"];let areas=jo["areas"][0]["name"];let typeName=jo["share_sub_title"];let date=jo["publish"]["pub_time"].substr(0,4);let dec=jo["evaluate"];let remark=jo["new_ep"]["desc"];let stat=jo["stat"];let status="弹幕: "+zh(stat["danmakus"])+" 点赞: "+zh(stat["likes"])+" 投币: "+zh(stat["coins"])+" 追番追剧: "+zh(stat["favorites"]);let score=jo.hasOwnProperty("rating")?"评分: "+jo["rating"]["score"]+" "+jo["subtitle"]:"暂无评分"+" "+jo["subtitle"];let vod={vod_id:id,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:date,vod_area:areas,vod_remarks:remark,vod_actor:status,vod_director:score,vod_content:dec};let ja=jo["episodes"].filter(ep=>!ep.title.includes("预告") && !(ep.badge && ep.badge.includes("预告")));let playurls1=[];ja.forEach(function(tmpJo){let link=tmpJo["link"];let part=tmpJo["title"].replace("#","-")+" "+tmpJo["long_title"]+"["+tmpJo["badge"]+"]";playurls1.push(part+"$"+link)});let playUrl=playurls1.join("#");vod["vod_play_from"]="哔哩哔哩";vod["vod_play_url"]=playUrl;VOD=vod;',
搜索: 'js:let keyword=KEY;let page=MY_PAGE;let v=[];try{function getWbiKeys(){let html=request("https://api.bilibili.com/x/web-interface/nav");let j=JSON.parse(html);let iu=j.data.wbi_img.img_url;let su=j.data.wbi_img.sub_url;return{img_key:iu.split("/").pop().split(".")[0],sub_key:su.split("/").pop().split(".")[0]}}function encWbi(p,k){let t=[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,52,44];let m=t.map(n=>(k.img_key+k.sub_key)[n]).join("").substr(0,32);p.wts=Math.floor(Date.now()/1000);let q=Object.keys(p).sort().map(x=>{let val=p[x].toString().replace(/![\\x27()*]/g,"");return encodeURIComponent(x)+"="+encodeURIComponent(val)}).join("&");return q+"&w_rid="+md5(q+m)}let keys=getWbiKeys();function search(type){let p={keyword:keyword,page:page,page_size:20,platform:"pc",search_type:type,web_location:1430654};let q=encWbi(p,keys);let u="https://api.bilibili.com/x/web-interface/wbi/search/type?"+q;return JSON.parse(request(u))}function add(jo){if(jo.code===0&&jo.data&&jo.data.result){jo.data.result.forEach(function(vod){let title=(vod.title||"").replace(/<[^>]+>/g,"").trim();if(!title.includes("预告")){let aid=(vod.season_id+"").trim();let img=(vod.cover||"").trim();if(img.startsWith("//")){img="https:"+img}let remark=(vod.index_show||"").trim();v.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}}add(search("media_bangumi"));add(search("media_ft"))}catch(e){}VODS=v;'
}