mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
1.2 KiB
JavaScript
1 line
1.2 KiB
JavaScript
(()=>{return(t,r)=>{const e=t=>{return{url:t.downloadUrl,backupUrls:t.backupUrls,length:t.duration,size:Math.trunc(t.bandWidth*t.duration/8)}};const a=async(t,r,e)=>{const a=`https://api.bilibili.com/pgc/player/web/playurl?avid=${t}&cid=${r}&qn=${e}&otype=json&fourk=1&fnver=0&fnval=16`;const d=await Ajax.getJsonWithCredentials(a);if(d.code!==0||d.result.type!=="DASH"){throw new Error("DASH api failed")}const o=d.result.accept_quality;if(!o.includes(e)){throw new Error("没有找到请求的清晰度")}if(d.result.quality!==e){throw new Error("无法获取请求的清晰度, 请确认当前账号有相应的权限")}const n=d.result.accept_description;const i=n[o.indexOf(e)];const c=d.result.dash.duration;const s=d.result.dash.video.filter(t=>t.id===e).map(t=>{const r={quality:e,qualityText:i,width:t.width,height:t.height,codecs:t.codecs,codecId:t.codecid,bandWidth:t.bandwidth,frameRate:t.frameRate,backupUrls:t.backupUrl,downloadUrl:t.baseUrl,duration:c};return r});const l=d.result.dash.audio.map(t=>{return{bandWidth:t.bandwidth,codecs:t.codecs,codecId:t.codecid,backupUrls:t.backupUrl,downloadUrl:t.baseUrl,duration:c}});return{videoDashes:s,audioDashes:l}};return{export:{getDashInfo:a,dashToFragment:e}}}})(); |