Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

js-video-url-parser

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-video-url-parser - npm Package Compare versions

Comparing version
0.2.1
to
0.2.2
+29
-8
dist/jsVideoUrlParser.js

@@ -333,3 +333,4 @@ (function (w) {

STREAM: 'stream',
EMBEDVIDEO: 'embed-video'
EMBEDVIDEO: 'embed-video',
CLIP: 'clip',
};

@@ -354,14 +355,22 @@ }

Twitch.prototype.parseUrl = function (url, result, params) {
var match;
match = url.match(
/twitch\.tv\/(\w+)(?:\/(.)\/(\d+))?/i
/(clips\.)?twitch\.tv\/(\w+)(?:\/(?:(.)\/(\d+)|(\w+)))?/i
);
result.channel = match ? match[1] : undefined;
if (match && match[2] && match[3]) {
result.id = match[2] + match[3];
} else if (params.video) {
result.channel = match ? match[2] : undefined;
if (match && match[3] && match[4]) { //video
result.id = match[3] + match[4];
} else if (params.video) { //video embed
result.id = params.video;
delete params.video;
} else if (match && match[1] && match[5]) { //clips
result.id = match[5];
result.isClip = true;
} else if (params.clip) { //clips embed
var split = params.clip.split('/');
result.channel = split[0];
result.id = split[1];
result.isClip = true;
delete params.clip;
}

@@ -374,3 +383,10 @@ return result;

if (result.channel) {
mediaType = result.id ? this.mediaTypes.VIDEO : this.mediaTypes.STREAM;
if (result.id && result.isClip) {
mediaType = this.mediaTypes.CLIP;
delete result.isClip;
} else if (result.id && !result.isClip) {
mediaType = this.mediaTypes.VIDEO;
} else {
mediaType = this.mediaTypes.STREAM;
}
} else if (result.id) {

@@ -413,2 +429,4 @@ mediaType = this.mediaTypes.EMBEDVIDEO;

}
} else if (vi.mediaType === this.mediaTypes.CLIP) {
url = 'https://clips.twitch.tv/' + vi.channel + '/' + vi.id;
}

@@ -434,2 +452,5 @@ url += combineParams({

}
} else if (vi.mediaType === this.mediaTypes.CLIP) {
url = 'https://clips.twitch.tv/embed';
params.clip = vi.channel + '/' + vi.id;
}

@@ -436,0 +457,0 @@

@@ -1,1 +0,1 @@

!function(a){"use strict";function b(a){if(null===a||"object"!=typeof a)return a;var c=a.constructor();for(var d in a)a.hasOwnProperty(d)&&(c[d]=b(a[d]));return c}function c(a){if("string"!=typeof a)return{};a=a.split("+").join(" ");var b,c={},d=a.match(/(?:[\?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);if(null===d)return{};b=d[0].substr(1).split(/[&#=]/);for(var e=0;e<b.length;e+=2)c[decodeURIComponent(b[e])]=decodeURIComponent(b[e+1]||"");return c}function d(a){if("object"!=typeof a)return"";a.params=a.params||{};var b="",c=0,d=Object.keys(a.params);if(0===d.length)return"";for(d.sort(),a.hasParams||(b+="?"+d[0]+"="+a.params[d[0]],c+=1);c<d.length;c+=1)b+="&"+d[c]+"="+a.params[d[c]];return b}function e(a){var b,c=0,d={s:1,m:60,h:3600,d:86400,w:604800};if(!a.match(/^(\d+[smhdw]?)+$/))return 0;a=a.replace(/([smhdw])/g," $1 ").trim(),b=a.split(" ");for(var e=0;e<b.length;e+=2)c+=parseInt(b[e],10)*d[b[e+1]||"s"];return c}function f(){this.plugins={}}function g(){this.provider="canalplus",this.defaultFormat="embed",this.formats={embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function h(){this.provider="coub",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function i(){this.provider="dailymotion",this.alternatives=["dai"],this.defaultFormat="long",this.formats={short:this.createShortUrl,long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function j(){this.provider="twitch",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",STREAM:"stream",EMBEDVIDEO:"embed-video"}}function k(){this.provider="vimeo",this.alternatives=["vimeopro"],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function l(){this.provider="youtube",this.alternatives=["youtu","ytimg"],this.defaultFormat="long",this.formats={short:this.createShortUrl,long:this.createLongUrl,embed:this.createEmbedUrl,shortImage:this.createShortImageUrl,longImage:this.createLongImageUrl},this.imageQualities={0:"0",1:"1",2:"2",3:"3",DEFAULT:"default",HQDEFAULT:"hqdefault",SDDEFAULT:"sddefault",MQDEFAULT:"mqdefault",MAXRESDEFAULT:"maxresdefault"},this.defaultImageQuality=this.imageQualities.HQDEFAULT,this.mediaTypes={VIDEO:"video",PLAYLIST:"playlist",SHARE:"share"}}function m(){this.provider="youku",this.defaultFormat="long",this.formats={embed:this.createEmbedUrl,long:this.createLongUrl,flash:this.createFlashUrl,static:this.createStaticUrl},this.mediaTypes={VIDEO:"video"}}f.prototype.parseProvider=function(a){var b=a.match(/(?:(?:https?:)?\/\/)?(?:[^\.]+\.)?(\w+)\./i);return b?b[1]:void 0},f.prototype.removeEmptyParameters=function(a){return a.params&&0===Object.keys(a.params).length&&delete a.params,a},f.prototype.parse=function(a){var b,d=this,e=d.parseProvider(a),f=d.plugins[e];if(e&&f&&f.parse)return b=f.parse.apply(f,[a,c(a)]),b&&(b=d.removeEmptyParameters(b),b.provider=f.provider),b},f.prototype.bind=function(a){if(this.plugins[a.provider]=a,a.alternatives)for(var b=0;b<a.alternatives.length;b+=1)this.plugins[a.alternatives[b]]=a},f.prototype.create=function(a){var c=a.videoInfo,d=a.params,e=this.plugins[c.provider];if(d="internal"===d?c.params:d||{},e&&(a.format=a.format||e.defaultFormat,e.formats.hasOwnProperty(a.format)))return e.formats[a.format].apply(e,[c,b(d)])};var n=new f;g.prototype.parseParameters=function(a){return delete a.vid,a},g.prototype.parse=function(a,b){var c=this,d={mediaType:this.mediaTypes.VIDEO,id:b.vid};if(d.params=c.parseParameters(b),d.id)return d},g.prototype.createEmbedUrl=function(a,b){var c="http://player.canalplus.fr/embed/";return b.vid=a.id,c+=d({params:b})},n.bind(new g),h.prototype.parseUrl=function(a){var b=a.match(/(?:embed|view)\/([a-zA-Z\d]+)/i);return b?b[1]:void 0},h.prototype.parse=function(a,b){var c={mediaType:this.mediaTypes.VIDEO,params:b,id:this.parseUrl(a)};if(c.id)return c},h.prototype.createUrl=function(a,b,c){var e=a+b.id;return e+=d({params:c})},h.prototype.createLongUrl=function(a,b){return this.createUrl("https://coub.com/view/",a,b)},h.prototype.createEmbedUrl=function(a,b){return this.createUrl("//coub.com/embed/",a,b)},n.bind(new h),i.prototype.parseParameters=function(a){return this.parseTime(a)},i.prototype.parseTime=function(a){return a.start&&(a.start=e(a.start)),a},i.prototype.parseUrl=function(a){var b=a.match(/(?:\/video|ly)\/([A-Za-z0-9]+)/i);return b?b[1]:void 0},i.prototype.parse=function(a,b){var c=this,d={mediaType:this.mediaTypes.VIDEO,params:c.parseParameters(b),id:c.parseUrl(a)};return d.id?d:void 0},i.prototype.createUrl=function(a,b,c){return a+b.id+d({params:c})},i.prototype.createShortUrl=function(a){return this.createUrl("https://dai.ly/",a,{})},i.prototype.createLongUrl=function(a,b){return this.createUrl("https://dailymotion.com/video/",a,b)},i.prototype.createEmbedUrl=function(a,b){return this.createUrl("//www.dailymotion.com/embed/video/",a,b)},n.bind(new i),j.prototype.seperateId=function(a){return{pre:a[0],id:a.substr(1)}},j.prototype.parseChannel=function(a,b){var c=b.channel||b.utm_content||a.channel;return delete b.utm_content,delete b.channel,c},j.prototype.parseUrl=function(a,b,c){var d;return d=a.match(/twitch\.tv\/(\w+)(?:\/(.)\/(\d+))?/i),b.channel=d?d[1]:void 0,d&&d[2]&&d[3]?b.id=d[2]+d[3]:c.video&&(b.id=c.video,delete c.video),b},j.prototype.parseMediaType=function(a){var b;return a.channel?b=a.id?this.mediaTypes.VIDEO:this.mediaTypes.STREAM:a.id&&(b=this.mediaTypes.EMBEDVIDEO,delete a.channel),b},j.prototype.parseParameters=function(a){return a.t&&(a.start=e(a.t),delete a.t),a},j.prototype.parse=function(a,b){var c=this,d={};return d=c.parseUrl(a,d,b),d.channel=c.parseChannel(d,b),d.mediaType=c.parseMediaType(d),d.params=c.parseParameters(b),d.channel||d.id?d:void 0},j.prototype.createLongUrl=function(a,b){var c="";if(a.mediaType===this.mediaTypes.STREAM)c="https://twitch.tv/"+a.channel;else if(a.mediaType===this.mediaTypes.VIDEO){var e=this.seperateId(a.id);c="https://twitch.tv/"+a.channel+"/"+e.pre+"/"+e.id,b.start&&(b.t=b.start+"s",delete b.start)}return c+=d({params:b})},j.prototype.createEmbedUrl=function(a,b){var c="https://player.twitch.tv/";return a.mediaType===this.mediaTypes.STREAM?b.channel=a.channel:a.mediaType!==this.mediaTypes.VIDEO&&a.mediaType!==this.mediaTypes.EMBEDVIDEO||(b.video=a.id,b.start&&(b.t=b.start+"s",delete b.start)),c+=d({params:b})},n.bind(new j),k.prototype.parseUrl=function(a){var b=a.match(/(?:\/(?:channels\/[\w]+|(?:(?:album\/\d+|groups\/[\w]+)\/)?videos?))?\/(\d+)/i);return b?b[1]:void 0},k.prototype.parseParameters=function(a){return this.parseTime(a)},k.prototype.parseTime=function(a){return a.t&&(a.start=e(a.t),delete a.t),a},k.prototype.parse=function(a,b){var c={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(b),id:this.parseUrl(a)};return c.id?c:void 0},k.prototype.createUrl=function(a,b,c){var e=a+b.id,f=c.start;return delete c.start,e+=d({params:c}),f&&(e+="#t="+f),e},k.prototype.createLongUrl=function(a,b){return this.createUrl("https://vimeo.com/",a,b)},k.prototype.createEmbedUrl=function(a,b){return this.createUrl("//player.vimeo.com/video/",a,b)},n.bind(new k),l.prototype.parseUrl=function(a){var b=a.match(/(?:(?:v|vi|be|videos|embed)\/(?!videoseries)|(?:v|ci)=)([\w\-]{11})/i);return b?b[1]:void 0},l.prototype.parseParameters=function(a,b){return(a.start||a.t)&&(a.start=e(a.start||a.t),delete a.t),a.v===b.id&&delete a.v,a.list===b.id&&delete a.list,a},l.prototype.parseMediaType=function(a){if(a.params.list&&(a.list=a.params.list,delete a.params.list),a.id&&!a.params.ci)a.mediaType=this.mediaTypes.VIDEO;else if(a.list)delete a.id,a.mediaType=this.mediaTypes.PLAYLIST;else{if(!a.params.ci)return;delete a.params.ci,a.mediaType=this.mediaTypes.SHARE}return a},l.prototype.parse=function(a,b){var c=this,d={params:b,id:c.parseUrl(a)};return d.params=c.parseParameters(b,d),d=c.parseMediaType(d)},l.prototype.createShortUrl=function(a,b){var c="https://youtu.be/"+a.id;return b.start&&(c+="#t="+b.start),c},l.prototype.createLongUrl=function(a,b){var c="",e=b.start;return delete b.start,a.mediaType===this.mediaTypes.PLAYLIST?(b.feature="share",c+="https://youtube.com/playlist"):a.mediaType===this.mediaTypes.VIDEO?(b.v=a.id,c+="https://youtube.com/watch"):a.mediaType===this.mediaTypes.SHARE&&(b.ci=a.id,c+="https://www.youtube.com/shared"),a.list&&(b.list=a.list),c+=d({params:b}),a.mediaType!==this.mediaTypes.PLAYLIST&&e&&(c+="#t="+e),c},l.prototype.createEmbedUrl=function(a,b){var c="//youtube.com/embed";return a.mediaType===this.mediaTypes.PLAYLIST?b.listType="playlist":(c+="/"+a.id,"1"===b.loop&&(b.playlist=a.id)),a.list&&(b.list=a.list),c+=d({params:b})},l.prototype.createImageUrl=function(a,b,c){var d=a+b.id+"/",e=c.imageQuality||this.defaultImageQuality;return d+e+".jpg"},l.prototype.createShortImageUrl=function(a,b){return this.createImageUrl("https://i.ytimg.com/vi/",a,b)},l.prototype.createLongImageUrl=function(a,b){return this.createImageUrl("https://img.youtube.com/vi/",a,b)},n.bind(new l),m.prototype.parseUrl=function(a){var b=a.match(/(?:(?:embed|sid)\/|v_show\/id_|VideoIDS=)([a-zA-Z0-9]+)/);return b?b[1]:void 0},m.prototype.parseParameters=function(a){return a.VideoIDS&&delete a.VideoIDS,a},m.prototype.parse=function(a,b){var c=this,d={mediaType:this.mediaTypes.VIDEO,id:c.parseUrl(a),params:c.parseParameters(b)};if(d.id)return d},m.prototype.createUrl=function(a,b,c){var e=a+b.id;return e+=d({params:c})},m.prototype.createEmbedUrl=function(a,b){return this.createUrl("http://player.youku.com/embed/",a,b)},m.prototype.createLongUrl=function(a,b){return this.createUrl("http://v.youku.com/v_show/id_",a,b)},m.prototype.createStaticUrl=function(a,b){return this.createUrl("http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=",a,b)},m.prototype.createFlashUrl=function(a,b){var c="http://player.youku.com/player.php/sid/"+a.id+"/v.swf";return c+=d({params:b})},n.bind(new m),"undefined"!=typeof a&&(a.urlParser=n),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=n)}(window);
!function(a){"use strict";function b(a){if(null===a||"object"!=typeof a)return a;var c=a.constructor();for(var d in a)a.hasOwnProperty(d)&&(c[d]=b(a[d]));return c}function c(a){if("string"!=typeof a)return{};a=a.split("+").join(" ");var b,c={},d=a.match(/(?:[\?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);if(null===d)return{};b=d[0].substr(1).split(/[&#=]/);for(var e=0;e<b.length;e+=2)c[decodeURIComponent(b[e])]=decodeURIComponent(b[e+1]||"");return c}function d(a){if("object"!=typeof a)return"";a.params=a.params||{};var b="",c=0,d=Object.keys(a.params);if(0===d.length)return"";for(d.sort(),a.hasParams||(b+="?"+d[0]+"="+a.params[d[0]],c+=1);c<d.length;c+=1)b+="&"+d[c]+"="+a.params[d[c]];return b}function e(a){var b,c=0,d={s:1,m:60,h:3600,d:86400,w:604800};if(!a.match(/^(\d+[smhdw]?)+$/))return 0;a=a.replace(/([smhdw])/g," $1 ").trim(),b=a.split(" ");for(var e=0;e<b.length;e+=2)c+=parseInt(b[e],10)*d[b[e+1]||"s"];return c}function f(){this.plugins={}}function g(){this.provider="canalplus",this.defaultFormat="embed",this.formats={embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function h(){this.provider="coub",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function i(){this.provider="dailymotion",this.alternatives=["dai"],this.defaultFormat="long",this.formats={short:this.createShortUrl,long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function j(){this.provider="twitch",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",STREAM:"stream",EMBEDVIDEO:"embed-video",CLIP:"clip"}}function k(){this.provider="vimeo",this.alternatives=["vimeopro"],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}function l(){this.provider="youtube",this.alternatives=["youtu","ytimg"],this.defaultFormat="long",this.formats={short:this.createShortUrl,long:this.createLongUrl,embed:this.createEmbedUrl,shortImage:this.createShortImageUrl,longImage:this.createLongImageUrl},this.imageQualities={0:"0",1:"1",2:"2",3:"3",DEFAULT:"default",HQDEFAULT:"hqdefault",SDDEFAULT:"sddefault",MQDEFAULT:"mqdefault",MAXRESDEFAULT:"maxresdefault"},this.defaultImageQuality=this.imageQualities.HQDEFAULT,this.mediaTypes={VIDEO:"video",PLAYLIST:"playlist",SHARE:"share"}}function m(){this.provider="youku",this.defaultFormat="long",this.formats={embed:this.createEmbedUrl,long:this.createLongUrl,flash:this.createFlashUrl,static:this.createStaticUrl},this.mediaTypes={VIDEO:"video"}}f.prototype.parseProvider=function(a){var b=a.match(/(?:(?:https?:)?\/\/)?(?:[^\.]+\.)?(\w+)\./i);return b?b[1]:void 0},f.prototype.removeEmptyParameters=function(a){return a.params&&0===Object.keys(a.params).length&&delete a.params,a},f.prototype.parse=function(a){var b,d=this,e=d.parseProvider(a),f=d.plugins[e];if(e&&f&&f.parse)return b=f.parse.apply(f,[a,c(a)]),b&&(b=d.removeEmptyParameters(b),b.provider=f.provider),b},f.prototype.bind=function(a){if(this.plugins[a.provider]=a,a.alternatives)for(var b=0;b<a.alternatives.length;b+=1)this.plugins[a.alternatives[b]]=a},f.prototype.create=function(a){var c=a.videoInfo,d=a.params,e=this.plugins[c.provider];if(d="internal"===d?c.params:d||{},e&&(a.format=a.format||e.defaultFormat,e.formats.hasOwnProperty(a.format)))return e.formats[a.format].apply(e,[c,b(d)])};var n=new f;g.prototype.parseParameters=function(a){return delete a.vid,a},g.prototype.parse=function(a,b){var c=this,d={mediaType:this.mediaTypes.VIDEO,id:b.vid};if(d.params=c.parseParameters(b),d.id)return d},g.prototype.createEmbedUrl=function(a,b){var c="http://player.canalplus.fr/embed/";return b.vid=a.id,c+=d({params:b})},n.bind(new g),h.prototype.parseUrl=function(a){var b=a.match(/(?:embed|view)\/([a-zA-Z\d]+)/i);return b?b[1]:void 0},h.prototype.parse=function(a,b){var c={mediaType:this.mediaTypes.VIDEO,params:b,id:this.parseUrl(a)};if(c.id)return c},h.prototype.createUrl=function(a,b,c){var e=a+b.id;return e+=d({params:c})},h.prototype.createLongUrl=function(a,b){return this.createUrl("https://coub.com/view/",a,b)},h.prototype.createEmbedUrl=function(a,b){return this.createUrl("//coub.com/embed/",a,b)},n.bind(new h),i.prototype.parseParameters=function(a){return this.parseTime(a)},i.prototype.parseTime=function(a){return a.start&&(a.start=e(a.start)),a},i.prototype.parseUrl=function(a){var b=a.match(/(?:\/video|ly)\/([A-Za-z0-9]+)/i);return b?b[1]:void 0},i.prototype.parse=function(a,b){var c=this,d={mediaType:this.mediaTypes.VIDEO,params:c.parseParameters(b),id:c.parseUrl(a)};return d.id?d:void 0},i.prototype.createUrl=function(a,b,c){return a+b.id+d({params:c})},i.prototype.createShortUrl=function(a){return this.createUrl("https://dai.ly/",a,{})},i.prototype.createLongUrl=function(a,b){return this.createUrl("https://dailymotion.com/video/",a,b)},i.prototype.createEmbedUrl=function(a,b){return this.createUrl("//www.dailymotion.com/embed/video/",a,b)},n.bind(new i),j.prototype.seperateId=function(a){return{pre:a[0],id:a.substr(1)}},j.prototype.parseChannel=function(a,b){var c=b.channel||b.utm_content||a.channel;return delete b.utm_content,delete b.channel,c},j.prototype.parseUrl=function(a,b,c){var d;if(d=a.match(/(clips\.)?twitch\.tv\/(\w+)(?:\/(?:(.)\/(\d+)|(\w+)))?/i),b.channel=d?d[2]:void 0,d&&d[3]&&d[4])b.id=d[3]+d[4];else if(c.video)b.id=c.video,delete c.video;else if(d&&d[1]&&d[5])b.id=d[5],b.isClip=!0;else if(c.clip){var e=c.clip.split("/");b.channel=e[0],b.id=e[1],b.isClip=!0,delete c.clip}return b},j.prototype.parseMediaType=function(a){var b;return a.channel?a.id&&a.isClip?(b=this.mediaTypes.CLIP,delete a.isClip):b=a.id&&!a.isClip?this.mediaTypes.VIDEO:this.mediaTypes.STREAM:a.id&&(b=this.mediaTypes.EMBEDVIDEO,delete a.channel),b},j.prototype.parseParameters=function(a){return a.t&&(a.start=e(a.t),delete a.t),a},j.prototype.parse=function(a,b){var c=this,d={};return d=c.parseUrl(a,d,b),d.channel=c.parseChannel(d,b),d.mediaType=c.parseMediaType(d),d.params=c.parseParameters(b),d.channel||d.id?d:void 0},j.prototype.createLongUrl=function(a,b){var c="";if(a.mediaType===this.mediaTypes.STREAM)c="https://twitch.tv/"+a.channel;else if(a.mediaType===this.mediaTypes.VIDEO){var e=this.seperateId(a.id);c="https://twitch.tv/"+a.channel+"/"+e.pre+"/"+e.id,b.start&&(b.t=b.start+"s",delete b.start)}else a.mediaType===this.mediaTypes.CLIP&&(c="https://clips.twitch.tv/"+a.channel+"/"+a.id);return c+=d({params:b})},j.prototype.createEmbedUrl=function(a,b){var c="https://player.twitch.tv/";return a.mediaType===this.mediaTypes.STREAM?b.channel=a.channel:a.mediaType===this.mediaTypes.VIDEO||a.mediaType===this.mediaTypes.EMBEDVIDEO?(b.video=a.id,b.start&&(b.t=b.start+"s",delete b.start)):a.mediaType===this.mediaTypes.CLIP&&(c="https://clips.twitch.tv/embed",b.clip=a.channel+"/"+a.id),c+=d({params:b})},n.bind(new j),k.prototype.parseUrl=function(a){var b=a.match(/(?:\/(?:channels\/[\w]+|(?:(?:album\/\d+|groups\/[\w]+)\/)?videos?))?\/(\d+)/i);return b?b[1]:void 0},k.prototype.parseParameters=function(a){return this.parseTime(a)},k.prototype.parseTime=function(a){return a.t&&(a.start=e(a.t),delete a.t),a},k.prototype.parse=function(a,b){var c={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(b),id:this.parseUrl(a)};return c.id?c:void 0},k.prototype.createUrl=function(a,b,c){var e=a+b.id,f=c.start;return delete c.start,e+=d({params:c}),f&&(e+="#t="+f),e},k.prototype.createLongUrl=function(a,b){return this.createUrl("https://vimeo.com/",a,b)},k.prototype.createEmbedUrl=function(a,b){return this.createUrl("//player.vimeo.com/video/",a,b)},n.bind(new k),l.prototype.parseUrl=function(a){var b=a.match(/(?:(?:v|vi|be|videos|embed)\/(?!videoseries)|(?:v|ci)=)([\w\-]{11})/i);return b?b[1]:void 0},l.prototype.parseParameters=function(a,b){return(a.start||a.t)&&(a.start=e(a.start||a.t),delete a.t),a.v===b.id&&delete a.v,a.list===b.id&&delete a.list,a},l.prototype.parseMediaType=function(a){if(a.params.list&&(a.list=a.params.list,delete a.params.list),a.id&&!a.params.ci)a.mediaType=this.mediaTypes.VIDEO;else if(a.list)delete a.id,a.mediaType=this.mediaTypes.PLAYLIST;else{if(!a.params.ci)return;delete a.params.ci,a.mediaType=this.mediaTypes.SHARE}return a},l.prototype.parse=function(a,b){var c=this,d={params:b,id:c.parseUrl(a)};return d.params=c.parseParameters(b,d),d=c.parseMediaType(d)},l.prototype.createShortUrl=function(a,b){var c="https://youtu.be/"+a.id;return b.start&&(c+="#t="+b.start),c},l.prototype.createLongUrl=function(a,b){var c="",e=b.start;return delete b.start,a.mediaType===this.mediaTypes.PLAYLIST?(b.feature="share",c+="https://youtube.com/playlist"):a.mediaType===this.mediaTypes.VIDEO?(b.v=a.id,c+="https://youtube.com/watch"):a.mediaType===this.mediaTypes.SHARE&&(b.ci=a.id,c+="https://www.youtube.com/shared"),a.list&&(b.list=a.list),c+=d({params:b}),a.mediaType!==this.mediaTypes.PLAYLIST&&e&&(c+="#t="+e),c},l.prototype.createEmbedUrl=function(a,b){var c="//youtube.com/embed";return a.mediaType===this.mediaTypes.PLAYLIST?b.listType="playlist":(c+="/"+a.id,"1"===b.loop&&(b.playlist=a.id)),a.list&&(b.list=a.list),c+=d({params:b})},l.prototype.createImageUrl=function(a,b,c){var d=a+b.id+"/",e=c.imageQuality||this.defaultImageQuality;return d+e+".jpg"},l.prototype.createShortImageUrl=function(a,b){return this.createImageUrl("https://i.ytimg.com/vi/",a,b)},l.prototype.createLongImageUrl=function(a,b){return this.createImageUrl("https://img.youtube.com/vi/",a,b)},n.bind(new l),m.prototype.parseUrl=function(a){var b=a.match(/(?:(?:embed|sid)\/|v_show\/id_|VideoIDS=)([a-zA-Z0-9]+)/);return b?b[1]:void 0},m.prototype.parseParameters=function(a){return a.VideoIDS&&delete a.VideoIDS,a},m.prototype.parse=function(a,b){var c=this,d={mediaType:this.mediaTypes.VIDEO,id:c.parseUrl(a),params:c.parseParameters(b)};if(d.id)return d},m.prototype.createUrl=function(a,b,c){var e=a+b.id;return e+=d({params:c})},m.prototype.createEmbedUrl=function(a,b){return this.createUrl("http://player.youku.com/embed/",a,b)},m.prototype.createLongUrl=function(a,b){return this.createUrl("http://v.youku.com/v_show/id_",a,b)},m.prototype.createStaticUrl=function(a,b){return this.createUrl("http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=",a,b)},m.prototype.createFlashUrl=function(a,b){var c="http://player.youku.com/player.php/sid/"+a.id+"/v.swf";return c+=d({params:b})},n.bind(new m),"undefined"!=typeof a&&(a.urlParser=n),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=n)}(window);
{
"name": "js-video-url-parser",
"version": "0.2.1",
"version": "0.2.2",
"description": "A parser to extract provider, video id, starttime and others from YouTube, Vimeo, ... urls",

@@ -5,0 +5,0 @@ "main": "dist/jsVideoUrlParser.js",

@@ -369,2 +369,3 @@ jsVideoUrlParser [![Build Status](https://travis-ci.org/Zod-/jsVideoUrlParser.svg)](https://travis-ci.org/Zod-/jsVideoUrlParser) [![Gitter](https://badges.gitter.im/Zod-/jsVideoUrlParser.svg)](https://gitter.im/Zod-/jsVideoUrlParser?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

* `'video'`: Regular videos.
* `'clip'`: Short video clips that can be created by anyone on a stream.
* `'embed-video'`: This is a seperate media type from video because these types

@@ -383,2 +384,3 @@ of urls don't contain the channel name so they are incompatible with eachother

| **video** | ✓ | ✓ |
| **clip** | ✓ | ✓ |
| **embed-video** | X | ✓ |

@@ -417,2 +419,9 @@

provider: 'twitch' }
> urlParser.parse('https://clips.twitch.tv/rains8/PerfectStingrayFunRun');
> urlParser.parse('https://clips.twitch.tv/embed?clip=rains8/PerfectStingrayFunRun');
{ mediaType: 'clip',
id: 'PerfectStingrayFunRun',
channel: 'rains8',
provider: 'twitch' }
```

@@ -469,2 +478,14 @@

'embed': 'https://player.twitch.tv/?video=v75292411'
> urlParser.create({
videoInfo: {
provider: 'twitch',
channel: 'rains8',
id: 'PerfectStingrayFunRun',
mediaType: 'clip'
},
format: <format>
})
'long': 'https://clips.twitch.tv/rains8/PerfectStingrayFunRun'
'embed': 'https://clips.twitch.tv/embed?clip=rains8/PerfectStingrayFunRun'
```

@@ -471,0 +492,0 @@

@@ -0,1 +1,2 @@

var tw1 = 'https://clips.twitch.tv/';
QUnit.test('Twitch Stream Urls', function (assert) {

@@ -79,1 +80,22 @@ var vi = {

});
QUnit.test('Twitch Clip Urls', function (assert) {
var vi = {
provider: 'twitch',
id: 'PerfectStingrayFunRun',
channel: 'rains8',
mediaType: 'clip'
};
var tests = [{
videoInfo: cloneObject(vi),
formats: {
long: tw1 + 'rains8/PerfectStingrayFunRun',
embed: tw1 + 'embed?clip=rains8/PerfectStingrayFunRun'
},
urls: [
tw1 + 'rains8/PerfectStingrayFunRun',
tw1 + 'embed?clip=rains8/PerfectStingrayFunRun'
]
}];
assertUrlTest(assert, tests);
});

@@ -472,2 +472,3 @@ (function(){

var tw1 = 'https://clips.twitch.tv/';
QUnit.test('Twitch Stream Urls', function (assert) {

@@ -552,2 +553,23 @@ var vi = {

QUnit.test('Twitch Clip Urls', function (assert) {
var vi = {
provider: 'twitch',
id: 'PerfectStingrayFunRun',
channel: 'rains8',
mediaType: 'clip'
};
var tests = [{
videoInfo: cloneObject(vi),
formats: {
long: tw1 + 'rains8/PerfectStingrayFunRun',
embed: tw1 + 'embed?clip=rains8/PerfectStingrayFunRun'
},
urls: [
tw1 + 'rains8/PerfectStingrayFunRun',
tw1 + 'embed?clip=rains8/PerfectStingrayFunRun'
]
}];
assertUrlTest(assert, tests);
});
QUnit.test('Vimeo Urls', function (assert) {

@@ -554,0 +576,0 @@ var vi = {