Bilibili-Evolved/min/video-dash.min.js
2019-09-14 12:33:53 +08:00

1 line
1.0 KiB
JavaScript

(()=>{return(t,e)=>{const r=async(t,e,r)=>{const a=`https://api.bilibili.com/pgc/player/web/playurl?avid=${t}&cid=${e}&qn=${r}&otype=json&fourk=1&fnver=0&fnval=16`;const c=await Ajax.getJsonWithCredentials(a);if(c.code!==0||c.result.type!=="DASH"){throw new Error("DASH api failed")}const d=c.result.accept_quality;if(!d.includes(r)){throw new Error("没有找到请求的清晰度")}if(c.result.quality!==r){throw new Error("无法获取请求的清晰度, 请确认当前账号有相应的权限")}const o=c.result.accept_description;const i=o[d.indexOf(r)];const s=c.result.dash.video.filter(t=>t.id===r).map(t=>{const e={quality:r,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};return e});const n=c.result.dash.audio[0];const l={bandWidth:n.bandwidth,codecs:n.codecs,codecId:n.codecid,backupUrls:n.backupUrl,downloadUrl:n.baseUrl};return{videoDashes:s,audioDash:l}};return{export:{getDashInfo:r}}}})();