mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
1.8 KiB
JavaScript
1 line
1.8 KiB
JavaScript
(()=>{return(t,e)=>{const a=t=>{return{url:t.downloadUrl,backupUrls:t.backupUrls,length:t.duration,size:Math.trunc(t.bandWidth*t.duration/8)}};const r=e=>{console.log(e.videoDashes);const r=(()=>{const a=e=>e.videoCodec===t.downloadVideoDashCodec;if(e.videoDashes.some(a)){return e.videoDashes.filter(a).sort(ascendingSort(t=>t.bandWidth))[0]}else{return e.videoDashes.sort(ascendingSort(t=>t.bandWidth))[0]}})();if(e.audioDashes.length>0){const t=e.audioDashes.sort(descendingSort(t=>t.bandWidth))[0];return[a(r),a(t)]}else{return[a(r)]}};const o=async(t,a,r=false)=>{const o=await Ajax.getJsonWithCredentials(t);const s=o.data||o.result||o;if(o.code!==0||!s.dash){throw new Error("此视频没有DASH格式, 请改用FLV格式")}const d=s.accept_quality;if(!d.includes(a)&&!r){throw new Error("没有找到请求的清晰度")}if(s.quality!==a&&!r){const{throwQualityError:t}=await e.importAsync("quality-errors");t(a)}const c=s.accept_description;const n=c[d.indexOf(a)];const i=s.dash.duration;const h=s.dash.video.filter(t=>t.id===(r?s.quality:a)).map(t=>{const e=(()=>{switch(t.codecid){case 12:return"HEVC/H.265";default:case 7:return"AVC/H.264"}})();const r={quality:a,qualityText:n,width:t.width,height:t.height,codecs:t.codecs,codecId:t.codecid,bandWidth:t.bandwidth,frameRate:t.frameRate,backupUrls:(t.backupUrl||t.backup_url||[]).forEach(t=>t.replace("http:","https:")),downloadUrl:(t.baseUrl||t.base_url||"").replace("http:","https:"),duration:i,videoCodec:e};return r});const u=(s.dash.audio||[]).map(t=>{return{bandWidth:t.bandwidth,codecs:t.codecs,codecId:t.codecid,backupUrls:(t.backupUrl||t.backup_url||[]).forEach(t=>t.replace("http:","https:")),downloadUrl:(t.baseUrl||t.base_url||"").replace("http:","https:"),duration:i}});return{videoDashes:h,audioDashes:u}};return{export:{getDashInfo:o,dashToFragments:r}}}})(); |