UNPKG

@bytelucas/video-link-parser

Version:

Get the YouTube, Vimeo, Vine, VideoPress, TikTok, Microsoft Stream, Loom or Dailymotion video id from a url or embed string.

4 lines (3 loc) 3.86 kB
/*! get-video-id v4.1.7 | @license MIT © Michael Wuergler | https://github.com/radiovisual/get-video-id */ function t(t){return t.includes("?")&&(t=t.split("?")[0]),t.includes("/")&&(t=t.split("/")[0]),t.includes("&")&&(t=t.split("&")[0]),t}function e(e){let i=e;i=i.replace("-nocookie",""),i=i.replace(/#t=.*$/,""),i=i.replace(/^https?:\/\//,"");const o=/youtube:\/\/|youtu\.be\/|y2u\.be\//g;if(o.test(i)){return t(i.split(o)[1])}const n=/\/shorts\//g;if(n.test(i))return t(i.split(n)[1]);const r=/v=|vi=/g;if(r.test(i)){return t(i.split(r)[1].split("&")[0])}const s=/\/v\/|\/vi\/|\/watch\//g;if(s.test(i)){return t(i.split(s)[1])}const c=/\/an_webp\//g;if(c.test(i)){return t(i.split(c)[1])}const u=/\/e\//g;if(u.test(i)){return t(i.split(u)[1])}const l=/\/embed\//g;if(l.test(i)){return t(i.split(l)[1])}if(/\/user\/([a-zA-Z\d]*)$/g.test(i))return;if(/\/user\/(?!.*videos)/g.test(i)){return t(i.split("/").pop())}const d=/\/attribution_link\?.*v%3D([^%&]*)(%26|&|$)/;if(d.test(i))return t(i.match(d)[1]);const p=/\/live\//g;if(p.test(i)){return t(i.split(p)[1])}}function i(t){let e,i,o=t;o.includes("#")&&([o]=o.split("#")),o.includes("?")&&!o.includes("clip_id=")&&([o]=o.split("?"));const n=/https?:\/\/vimeo\.com\/event\/(\d+)$/.exec(o);if(n&&n[1])return n[1];const r=/https?:\/\/vimeo\.com\/(\d+)/.exec(o);if(r&&r[1])return r[1];const s=["https?://player.vimeo.com/video/[0-9]+$","https?://vimeo.com/channels","groups","album"].join("|");return new RegExp(s,"gim").test(o)?(i=o.split("/"),i&&i.length>0&&(e=i.pop())):/clip_id=/gim.test(o)&&(i=o.split("clip_id="),i&&i.length>0&&([e]=i[1].split("&"))),e}function o(t){const e=/https:\/\/vine\.co\/v\/([a-zA-Z\d]*)\/?/.exec(t);if(e&&e.length>1)return e[1]}function n(t){let e;if(t.includes("embed"))return e=/embed\/(\w{8})/,t.match(e)[1];e=/\/v\/(\w{8})/;const i=t.match(e);return i&&i.length>0?i[1]:void 0}function r(t){const e=(t.includes("embed")?/https:\/\/web\.microsoftstream\.com\/embed\/video\/([a-zA-Z\d-]*)\/?/:/https:\/\/web\.microsoftstream\.com\/video\/([a-zA-Z\d-]*)\/?/).exec(t);if(e&&e.length>1)return e[1]}function s(t){const e=/tiktok\.com(.*)\/video\/(\d+)/gm.exec(t);if(e&&e.length>2)return e[2]}function c(t){const e=/dailymotion\.com(.*)(video)\/([a-zA-Z\d]+)/gm.exec(t);if(e)return e[3];const i=/dai\.ly\/([a-zA-Z\d]+)/gm.exec(t);if(i&&i.length>1)return i[1];const o=/dailymotion\.com(.*)video=([a-zA-Z\d]+)/gm.exec(t);return o&&o.length>2?o[2]:void 0}function u(t){const e=/^https?:\/\/(?:www\.)?loom\.com\/(?:share|embed)\/([\da-zA-Z]+)\/?/.exec(t);if(e&&e.length>1)return e[1]}function l(t){if("string"!=typeof t)throw new TypeError("sanitizeUrl expected a string, got "+typeof t);let e=t;return/<iframe/gi.test(e)&&(e=function(t){if("string"!=typeof t)throw new TypeError("getSrc expected a string");const e=/src="(.*?)"/gm.exec(t);if(e&&e.length>=2)return e[1]}(e)||""),e=e.trim(),e=e.replace("/www.","/"),e}function d(t){if("string"!=typeof t)throw new TypeError("get-video-id expects a string");const d=function(t){if("string"!=typeof t)throw new TypeError("extractGoogleRedirectionUrl expected a string, got "+typeof t);const e=t.trim();if(/\/\/google|www\.google/.test(e))try{const e=new URL(t),i=new URLSearchParams(e.search).get("url");if(i)return decodeURIComponent(i)}catch{return e}return e}(l(t));let p={id:void 0,service:void 0};return/youtube|youtu\.be|y2u\.be|i.ytimg\./.test(d)?p={id:e(d),service:"youtube"}:/vimeo/.test(d)?p={id:i(d),service:"vimeo"}:/vine/.test(d)?p={id:o(d),service:"vine"}:/videopress/.test(d)?p={id:n(d),service:"videopress"}:/microsoftstream/.test(d)?p={id:r(d),service:"microsoftstream"}:/tiktok\.com/.test(d)?p={id:s(d),service:"tiktok"}:/(dailymotion\.com|dai\.ly)/.test(d)?p={id:c(d),service:"dailymotion"}:/loom\.com/.test(d)&&(p={id:u(d),service:"loom"}),p}export{d as default}; //# sourceMappingURL=get-video-id.esm.min.js.map