UNPKG

@ktt45678/vidstack

Version:

UI component library for building high-quality, accessible video and audio experiences on the web.

2 lines (1 loc) 798 B
const l=/(?:https:\/\/)?(?:player\.)?vimeo(?:\.com)?\/(?:video\/)?(\d+)(?:(?:\?hash=|\?h=|\/)(.*))?/,c=new Map,n=new Map;function p(o){const e=o.match(l);return{videoId:e?.[1],hash:e?.[2]}}async function u(o,e,s){if(c.has(o))return c.get(o);if(n.has(o))return n.get(o);let i=`https://vimeo.com/api/oembed.json?url=https://player.vimeo.com/video/${o}`;s&&(i=i.concat(`?h=${s}`));const a=window.fetch(i,{mode:"cors",signal:e.signal}).then(t=>t.json()).then(t=>{const d=/vimeocdn.com\/video\/(.*)?_/,r=t?.thumbnail_url?.match(d)?.[1],m=r?`https://i.vimeocdn.com/video/${r}_1920x1080.webp`:"",h={title:t?.title??"",duration:t?.duration??0,poster:m,pro:t.account_type!=="basic"};return c.set(o,h),h}).finally(()=>n.delete(o));return n.set(o,a),a}export{u as getVimeoVideoInfo,p as resolveVimeoVideoId};