mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
1.7 KiB
JavaScript
1 line
1.7 KiB
JavaScript
(()=>{return(t,e)=>{class a{constructor(t,e,a){this.quality=t;this.internalName=e;this.displayName=a}static get availableFormats(){return new Promise((t,e)=>{const i=`https://api.bilibili.com/x/player/playurl?avid=${unsafeWinodw.aid}&cid=${unsafeWinodw.cid}&otype=json`;downloadText(i,e=>{const i=JSON.parse(e).data;const n=i.accept_quality;const s=i.accept_format.split(",");const o=i.accept_description;const l=[];while(n.length>0){const t=new a(n.pop(),s.pop(),o.pop());l.push(t)}t(l)},t=>e(`获取清晰度信息失败: ${t}`))})}}class i{constructor(t,e,a,i){this.length=t;this.size=e;this.url=a;this.backupUrls=i}}class n{constructor(t,e){this.format=t;this.fragments=e||[]}fetchVideoInfo(){return new Promise((t,e)=>{const a=`https://api.bilibili.com/x/player/playurl?avid=${unsafeWinodw.aid}&cid=${unsafeWinodw.cid}&qn=${this.format.quality}&otype=json`;downloadText(a,a=>{const n=JSON.parse(a).data;if(n.quality!==this.format.quality){e("获取下载链接失败, 请确认当前账号有下载权限后重试.")}const s=n.durl;this.fragments=s.map(t=>new i(t.length,t.size,t.url,t.backup_url));if(this.fragments.length>1){e("暂不支持分段视频的下载.")}t()})})}}return{settingsWidget:{after:()=>$("span.settings-category").filter((t,e)=>e.innerHTML==="视频与直播").parent(),content:e.data.downloadVideoDom.text,success:()=>{new SpinQuery(()=>$("#download-video"),t=>t.length>0&&typeof unsafeWinodw!=="undefined",()=>{a.availableFormats.then(t=>{t.forEach(t=>{$("ol.video-quality").append(`<li>${t.displayName}</li>`)});e.applyStyle("downloadVideoStyle");$("#download-video").on("click",()=>{$(".download-video-panel").toggleClass("opened")}).parent().removeClass("hidden")})}).start()}}}}})(); |