@ormoshe/js-video-url-parser 0.5.29 → 0.5.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -200,7 +200,7 @@
200
200
  };
201
201
  base.bind(new Allocine());
202
202
 
203
- var combineParams$o = util.combineParams;
203
+ var combineParams$p = util.combineParams;
204
204
  function CanalPlus() {
205
205
  this.provider = 'canalplus';
206
206
  this.defaultFormat = 'embed';
@@ -233,12 +233,12 @@
233
233
  }
234
234
  var url = 'http://player.canalplus.fr/embed/';
235
235
  params.vid = vi.id;
236
- url += combineParams$o(params);
236
+ url += combineParams$p(params);
237
237
  return url;
238
238
  };
239
239
  base.bind(new CanalPlus());
240
240
 
241
- var combineParams$n = util.combineParams;
241
+ var combineParams$o = util.combineParams;
242
242
  function Coub() {
243
243
  this.provider = 'coub';
244
244
  this.defaultFormat = 'long';
@@ -270,7 +270,7 @@
270
270
  return undefined;
271
271
  }
272
272
  var url = baseUrl + vi.id;
273
- url += combineParams$n(params);
273
+ url += combineParams$o(params);
274
274
  return url;
275
275
  };
276
276
  Coub.prototype.createLongUrl = function (vi, params) {
@@ -281,7 +281,7 @@
281
281
  };
282
282
  base.bind(new Coub());
283
283
 
284
- var combineParams$m = util.combineParams,
284
+ var combineParams$n = util.combineParams,
285
285
  getTime$5 = util.getTime;
286
286
  function Dailymotion() {
287
287
  this.provider = 'dailymotion';
@@ -323,7 +323,7 @@
323
323
  if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
324
324
  return undefined;
325
325
  }
326
- return base + vi.id + combineParams$m(params);
326
+ return base + vi.id + combineParams$n(params);
327
327
  };
328
328
  Dailymotion.prototype.createShortUrl = function (vi, params) {
329
329
  return this.createUrl('https://dai.ly/', vi, params);
@@ -340,7 +340,7 @@
340
340
  };
341
341
  base.bind(new Dailymotion());
342
342
 
343
- var combineParams$l = util.combineParams;
343
+ var combineParams$m = util.combineParams;
344
344
  function Loom() {
345
345
  this.provider = 'loom';
346
346
  this.defaultFormat = 'long';
@@ -369,7 +369,7 @@
369
369
  return undefined;
370
370
  }
371
371
  var url = baseUrl + vi.id;
372
- url += combineParams$l(params);
372
+ url += combineParams$m(params);
373
373
  return url;
374
374
  };
375
375
  Loom.prototype.createLongUrl = function (vi, params) {
@@ -380,7 +380,7 @@
380
380
  };
381
381
  base.bind(new Loom());
382
382
 
383
- var combineParams$k = util.combineParams,
383
+ var combineParams$l = util.combineParams,
384
384
  getTime$4 = util.getTime;
385
385
  function Twitch() {
386
386
  this.provider = 'twitch';
@@ -486,7 +486,7 @@
486
486
  } else {
487
487
  return undefined;
488
488
  }
489
- url += combineParams$k(params);
489
+ url += combineParams$l(params);
490
490
  return url;
491
491
  };
492
492
  Twitch.prototype.createEmbedUrl = function (vi, params) {
@@ -505,12 +505,12 @@
505
505
  } else {
506
506
  return undefined;
507
507
  }
508
- url += combineParams$k(params);
508
+ url += combineParams$l(params);
509
509
  return url;
510
510
  };
511
511
  base.bind(new Twitch());
512
512
 
513
- var combineParams$j = util.combineParams,
513
+ var combineParams$k = util.combineParams,
514
514
  getTime$3 = util.getTime;
515
515
  function Vimeo() {
516
516
  this.provider = 'vimeo';
@@ -570,7 +570,7 @@
570
570
  }
571
571
  delete params.hash;
572
572
  }
573
- url += combineParams$j(params);
573
+ url += combineParams$k(params);
574
574
  if (startTime) {
575
575
  url += '#t=' + startTime;
576
576
  }
@@ -584,7 +584,7 @@
584
584
  };
585
585
  base.bind(new Vimeo());
586
586
 
587
- var combineParams$i = util.combineParams,
587
+ var combineParams$j = util.combineParams,
588
588
  getTime$2 = util.getTime;
589
589
  function Wistia() {
590
590
  this.provider = 'wistia';
@@ -649,7 +649,7 @@
649
649
  params.wtime = params.start;
650
650
  delete params.start;
651
651
  }
652
- url += combineParams$i(params);
652
+ url += combineParams$j(params);
653
653
  return url;
654
654
  };
655
655
  Wistia.prototype.createLongUrl = function (vi, params) {
@@ -674,7 +674,7 @@
674
674
  };
675
675
  base.bind(new Wistia());
676
676
 
677
- var combineParams$h = util.combineParams;
677
+ var combineParams$i = util.combineParams;
678
678
  function Youku() {
679
679
  this.provider = 'youku';
680
680
  this.defaultFormat = 'long';
@@ -715,7 +715,7 @@
715
715
  return undefined;
716
716
  }
717
717
  var url = baseUrl + vi.id;
718
- url += combineParams$h(params);
718
+ url += combineParams$i(params);
719
719
  return url;
720
720
  };
721
721
  Youku.prototype.createEmbedUrl = function (vi, params) {
@@ -732,12 +732,12 @@
732
732
  return undefined;
733
733
  }
734
734
  var url = 'http://player.youku.com/player.php/sid/' + vi.id + '/v.swf';
735
- url += combineParams$h(params);
735
+ url += combineParams$i(params);
736
736
  return url;
737
737
  };
738
738
  base.bind(new Youku());
739
739
 
740
- var combineParams$g = util.combineParams,
740
+ var combineParams$h = util.combineParams,
741
741
  getTime$1 = util.getTime;
742
742
  function YouTube() {
743
743
  this.provider = 'youtube';
@@ -875,7 +875,7 @@
875
875
  if (vi.list) {
876
876
  params.list = vi.list;
877
877
  }
878
- url += combineParams$g(params);
878
+ url += combineParams$h(params);
879
879
  if (vi.mediaType !== this.mediaTypes.PLAYLIST && startTime) {
880
880
  url += '#t=' + startTime;
881
881
  }
@@ -897,7 +897,7 @@
897
897
  if (vi.list) {
898
898
  params.list = vi.list;
899
899
  }
900
- url += combineParams$g(params);
900
+ url += combineParams$h(params);
901
901
  return url;
902
902
  };
903
903
  YouTube.prototype.createImageUrl = function (baseUrl, vi, params) {
@@ -916,7 +916,7 @@
916
916
  };
917
917
  base.bind(new YouTube());
918
918
 
919
- var combineParams$f = util.combineParams,
919
+ var combineParams$g = util.combineParams,
920
920
  getTime = util.getTime;
921
921
  function SoundCloud() {
922
922
  this.provider = 'soundcloud';
@@ -1000,7 +1000,7 @@
1000
1000
  } else {
1001
1001
  return undefined;
1002
1002
  }
1003
- url += combineParams$f(params);
1003
+ url += combineParams$g(params);
1004
1004
  if (startTime) {
1005
1005
  url += '#t=' + startTime;
1006
1006
  }
@@ -1016,12 +1016,12 @@
1016
1016
  } else {
1017
1017
  return undefined;
1018
1018
  }
1019
- url += combineParams$f(params);
1019
+ url += combineParams$g(params);
1020
1020
  return url;
1021
1021
  };
1022
1022
  base.bind(new SoundCloud());
1023
1023
 
1024
- var combineParams$e = util.combineParams;
1024
+ var combineParams$f = util.combineParams;
1025
1025
  function TeacherTube() {
1026
1026
  this.provider = 'teachertube';
1027
1027
  this.alternatives = [];
@@ -1089,7 +1089,7 @@
1089
1089
  url += vi.mediaType + '/';
1090
1090
  }
1091
1091
  url += vi.id;
1092
- url += combineParams$e(params);
1092
+ url += combineParams$f(params);
1093
1093
  return url;
1094
1094
  };
1095
1095
  TeacherTube.prototype.createEmbedUrl = function (vi, params) {
@@ -1102,12 +1102,12 @@
1102
1102
  } else {
1103
1103
  return undefined;
1104
1104
  }
1105
- url += combineParams$e(params);
1105
+ url += combineParams$f(params);
1106
1106
  return url;
1107
1107
  };
1108
1108
  base.bind(new TeacherTube());
1109
1109
 
1110
- var combineParams$d = util.combineParams;
1110
+ var combineParams$e = util.combineParams;
1111
1111
  function TikTok() {
1112
1112
  this.provider = 'tiktok';
1113
1113
  this.defaultFormat = 'long';
@@ -1138,12 +1138,12 @@
1138
1138
  } else {
1139
1139
  return undefined;
1140
1140
  }
1141
- url += combineParams$d(params);
1141
+ url += combineParams$e(params);
1142
1142
  return url;
1143
1143
  };
1144
1144
  base.bind(new TikTok());
1145
1145
 
1146
- var combineParams$c = util.combineParams;
1146
+ var combineParams$d = util.combineParams;
1147
1147
  function Voomly() {
1148
1148
  this.provider = 'voomly';
1149
1149
  this.defaultFormat = 'long';
@@ -1171,7 +1171,7 @@
1171
1171
  return undefined;
1172
1172
  }
1173
1173
  var url = baseUrl + vi.id;
1174
- url += combineParams$c(params);
1174
+ url += combineParams$d(params);
1175
1175
  return url;
1176
1176
  };
1177
1177
  Voomly.prototype.createLongUrl = function (vi, params) {
@@ -1179,7 +1179,7 @@
1179
1179
  };
1180
1180
  base.bind(new Voomly());
1181
1181
 
1182
- var combineParams$b = util.combineParams;
1182
+ var combineParams$c = util.combineParams;
1183
1183
  function Spotlightr() {
1184
1184
  this.provider = 'spotlightr';
1185
1185
  this.defaultFormat = 'long';
@@ -1208,7 +1208,7 @@
1208
1208
  return undefined;
1209
1209
  }
1210
1210
  var url = baseUrl + vi.id;
1211
- url += combineParams$b(params);
1211
+ url += combineParams$c(params);
1212
1212
  return url;
1213
1213
  };
1214
1214
  Spotlightr.prototype.createLongUrl = function (vi, params) {
@@ -1216,7 +1216,7 @@
1216
1216
  };
1217
1217
  base.bind(new Spotlightr());
1218
1218
 
1219
- var combineParams$a = util.combineParams;
1219
+ var combineParams$b = util.combineParams;
1220
1220
  function Bunny() {
1221
1221
  this.provider = 'bunny';
1222
1222
  this.alternatives = ['bunnycdn', 'mediadelivery'];
@@ -1246,7 +1246,7 @@
1246
1246
  return undefined;
1247
1247
  }
1248
1248
  var url = baseUrl + vi.library + '/' + vi.id;
1249
- url += combineParams$a(params);
1249
+ url += combineParams$b(params);
1250
1250
  return url;
1251
1251
  };
1252
1252
  Bunny.prototype.createLongUrl = function (vi, params) {
@@ -1254,7 +1254,7 @@
1254
1254
  };
1255
1255
  base.bind(new Bunny());
1256
1256
 
1257
- var combineParams$9 = util.combineParams;
1257
+ var combineParams$a = util.combineParams;
1258
1258
  function Canva() {
1259
1259
  this.provider = 'canva';
1260
1260
  this.defaultFormat = 'long';
@@ -1282,7 +1282,7 @@
1282
1282
  return undefined;
1283
1283
  }
1284
1284
  var url = baseUrl + vi.id + '/watch';
1285
- url += combineParams$9(params);
1285
+ url += combineParams$a(params);
1286
1286
  return url;
1287
1287
  };
1288
1288
  Canva.prototype.createLongUrl = function (vi, params) {
@@ -1290,7 +1290,7 @@
1290
1290
  };
1291
1291
  base.bind(new Canva());
1292
1292
 
1293
- var combineParams$8 = util.combineParams;
1293
+ var combineParams$9 = util.combineParams;
1294
1294
  function Descript() {
1295
1295
  this.provider = 'descript';
1296
1296
  this.defaultFormat = 'long';
@@ -1318,7 +1318,7 @@
1318
1318
  return undefined;
1319
1319
  }
1320
1320
  var url = baseUrl + vi.id;
1321
- url += combineParams$8(params);
1321
+ url += combineParams$9(params);
1322
1322
  return url;
1323
1323
  };
1324
1324
  Descript.prototype.createLongUrl = function (vi, params) {
@@ -1326,7 +1326,7 @@
1326
1326
  };
1327
1327
  base.bind(new Descript());
1328
1328
 
1329
- var combineParams$7 = util.combineParams;
1329
+ var combineParams$8 = util.combineParams;
1330
1330
  function Ted() {
1331
1331
  this.provider = 'ted';
1332
1332
  this.formats = {
@@ -1382,7 +1382,7 @@
1382
1382
  } else {
1383
1383
  return undefined;
1384
1384
  }
1385
- url += combineParams$7(params);
1385
+ url += combineParams$8(params);
1386
1386
  return url;
1387
1387
  };
1388
1388
  Ted.prototype.createEmbedUrl = function (vi, params) {
@@ -1394,12 +1394,12 @@
1394
1394
  } else {
1395
1395
  return undefined;
1396
1396
  }
1397
- url += combineParams$7(params);
1397
+ url += combineParams$8(params);
1398
1398
  return url;
1399
1399
  };
1400
1400
  base.bind(new Ted());
1401
1401
 
1402
- var combineParams$6 = util.combineParams;
1402
+ var combineParams$7 = util.combineParams;
1403
1403
  function Facebook() {
1404
1404
  this.provider = 'facebook';
1405
1405
  this.alternatives = [];
@@ -1442,7 +1442,7 @@
1442
1442
  params = {
1443
1443
  v: vi.id
1444
1444
  };
1445
- url += combineParams$6(params);
1445
+ url += combineParams$7(params);
1446
1446
  return url;
1447
1447
  };
1448
1448
  Facebook.prototype.createLongUrl = function (vi, params) {
@@ -1457,12 +1457,12 @@
1457
1457
  } else {
1458
1458
  return undefined;
1459
1459
  }
1460
- url += combineParams$6(params);
1460
+ url += combineParams$7(params);
1461
1461
  return url;
1462
1462
  };
1463
1463
  base.bind(new Facebook());
1464
1464
 
1465
- var combineParams$5 = util.combineParams;
1465
+ var combineParams$6 = util.combineParams;
1466
1466
  function Bigcommand() {
1467
1467
  this.provider = 'bigcommand';
1468
1468
  this.defaultFormat = 'long';
@@ -1490,7 +1490,7 @@
1490
1490
  return undefined;
1491
1491
  }
1492
1492
  var url = baseUrl + vi.id;
1493
- url += combineParams$5(params);
1493
+ url += combineParams$6(params);
1494
1494
  return url;
1495
1495
  };
1496
1496
  Bigcommand.prototype.createLongUrl = function (vi, params) {
@@ -1498,6 +1498,45 @@
1498
1498
  };
1499
1499
  base.bind(new Bigcommand());
1500
1500
 
1501
+ var combineParams$5 = util.combineParams;
1502
+ function Brightcove() {
1503
+ this.provider = 'brightcove';
1504
+ this.defaultFormat = 'long';
1505
+ this.formats = {
1506
+ "long": this.createLongUrl
1507
+ };
1508
+ this.mediaTypes = {
1509
+ VIDEO: 'video'
1510
+ };
1511
+ }
1512
+ Brightcove.prototype.parse = function (url, params) {
1513
+ var match = url.match(/(\d+)\/(\w+)_(\w+)+\/index.html\?videoId=(\d+)/);
1514
+ if (!match) {
1515
+ return undefined;
1516
+ }
1517
+ var result = {
1518
+ mediaType: this.mediaTypes.VIDEO,
1519
+ params: params,
1520
+ library: match[1],
1521
+ player: match[2],
1522
+ embed: match[3],
1523
+ id: match[4]
1524
+ };
1525
+ return result.id ? result : undefined;
1526
+ };
1527
+ Brightcove.prototype.createUrl = function (baseUrl, vi, params) {
1528
+ if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
1529
+ return undefined;
1530
+ }
1531
+ var url = baseUrl + vi.library + '/' + vi.player + '_' + vi.embed + '/index.html';
1532
+ url += combineParams$5(params);
1533
+ return url;
1534
+ };
1535
+ Brightcove.prototype.createLongUrl = function (vi, params) {
1536
+ return this.createUrl('https://players.brightcove.net/', vi, params);
1537
+ };
1538
+ base.bind(new Brightcove());
1539
+
1501
1540
  var combineParams$4 = util.combineParams;
1502
1541
  function GoogleDrive() {
1503
1542
  this.provider = 'google';
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).urlParser=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}var i={};i.getQueryParams=function(e){if("string"!=typeof e)return{};var t,i={},r=(e=e.split("+").join(" ")).match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);if(null===r)return{};t=r[0].substr(1).split(/[&#=]/);for(var a=0;a<t.length;a+=2)i[decodeURIComponent(t[a])]=decodeURIComponent(t[a+1]||"");return i},i.combineParams=function(e,i){if("object"!==t(e))return"";var r="",a=0,s=Object.keys(e);if(0===s.length)return"";for(s.sort(),i||(r+="?"+s[0]+"="+e[s[0]],a+=1);a<s.length;a+=1)r+="&"+s[a]+"="+e[s[a]];return r},i.getTime=function(e){return void 0===e?0:e.match(/^(\d+[smhdw]?)+$/)?function(e){var t,i=0,r={s:1,m:60,h:3600,d:86400,w:604800};t=(e=e.replace(/([smhdw])/g," $1 ").trim()).split(" ");for(var a=0;a<t.length;a+=2)i+=parseInt(t[a],10)*r[t[a+1]||"s"];return i}(e):e.match(/^(\d+:?)+$/)?function(e){for(var t=0,i=[1,60,3600,86400,604800],r=e.split(":"),a=0;a<r.length;a++)t+=parseInt(r[a],10)*i[r.length-a-1];return t}(e):0};var r=i.getQueryParams;function a(){for(var e=0,t=["parseProvider","parse","bind","create"];e<t.length;e++){var i=t[e];this[i]=this[i].bind(this)}this.plugins={}}var s=a;a.prototype.parseProvider=function(e){var t=e.match(/(?:(?:https?:)?\/\/)?(?:[^.]+\.)?(\w+)\./i);return t?t[1]:void 0},a.prototype.parse=function(e){if(void 0!==e){var t,i=this.parseProvider(e),a=this.plugins[i];if(i&&a&&a.parse)return(t=a.parse.call(a,e,r(e)))&&((t=function(e){e.params&&0===Object.keys(e.params).length&&delete e.params;return e}(t)).provider=a.provider),t}},a.prototype.bind=function(e){if(this.plugins[e.provider]=e,e.alternatives)for(var t=0;t<e.alternatives.length;t+=1)this.plugins[e.alternatives[t]]=e},a.prototype.create=function(e){if("object"===t(e)&&"object"===t(e.videoInfo)){var i=e.videoInfo,r=e.params,a=this.plugins[i.provider];return r="internal"===r?i.params:r||{},a&&(e.format=e.format||a.defaultFormat,a.formats.hasOwnProperty(e.format))?a.formats[e.format].apply(a,[i,Object.assign({},r)]):void 0}};var o=new s;function n(){this.provider="allocine",this.alternatives=[],this.defaultFormat="embed",this.formats={embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}n.prototype.parseUrl=function(e){var t=e.match(/(?:\/video\/player_gen_cmedia=)([A-Za-z0-9]+)/i);return t?t[1]:void 0},n.prototype.parse=function(e){var t={mediaType:this.mediaTypes.VIDEO,id:this.parseUrl(e)};return t.id?t:void 0},n.prototype.createEmbedUrl=function(e){if(e.id&&e.mediaType===this.mediaTypes.VIDEO)return"https://player.allocine.fr/"+e.id+".html"},o.bind(new n);var p=i.combineParams;function d(){this.provider="canalplus",this.defaultFormat="embed",this.formats={embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}d.prototype.parseParameters=function(e){return delete e.vid,e},d.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,id:t.vid};if(i.params=this.parseParameters(t),i.id)return i},d.prototype.createEmbedUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="http://player.canalplus.fr/embed/";return t.vid=e.id,i+=p(t)}},o.bind(new d);var m=i.combineParams;function l(){this.provider="coub",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}l.prototype.parseUrl=function(e){var t=e.match(/(?:embed|view)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},l.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};if(i.id)return i},l.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=m(i)}},l.prototype.createLongUrl=function(e,t){return this.createUrl("https://coub.com/view/",e,t)},l.prototype.createEmbedUrl=function(e,t){return this.createUrl("//coub.com/embed/",e,t)},o.bind(new l);var c=i.combineParams,h=i.getTime;function u(){this.provider="dailymotion",this.alternatives=["dai"],this.defaultFormat="long",this.formats={short:this.createShortUrl,long:this.createLongUrl,embed:this.createEmbedUrl,image:this.createImageUrl},this.mediaTypes={VIDEO:"video"}}u.prototype.parseParameters=function(e){return this.parseTime(e)},u.prototype.parseTime=function(e){return e.start&&(e.start=h(e.start)),e},u.prototype.parseUrl=function(e){var t=e.match(/(?:\/video|ly)\/([A-Za-z0-9]+)/i);return t?t[1]:void 0},u.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(t),id:this.parseUrl(e)};return i.id?i:void 0},u.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+c(i)},u.prototype.createShortUrl=function(e,t){return this.createUrl("https://dai.ly/",e,t)},u.prototype.createLongUrl=function(e,t){return this.createUrl("https://dailymotion.com/video/",e,t)},u.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://www.dailymotion.com/embed/video/",e,t)},u.prototype.createImageUrl=function(e,t){return delete t.start,this.createUrl("https://www.dailymotion.com/thumbnail/video/",e,t)},o.bind(new u);var y=i.combineParams;function f(){this.provider="loom",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}f.prototype.parseUrl=function(e){var t=e.match(/(?:share|embed)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},f.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},f.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=y(i)}},f.prototype.createLongUrl=function(e,t){return this.createUrl("https://loom.com/share/",e,t)},f.prototype.createEmbedUrl=function(e,t){return this.createUrl("//loom.com/embed/",e,t)},o.bind(new f);var v=i.combineParams,T=i.getTime;function U(){this.provider="twitch",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",STREAM:"stream",CLIP:"clip"}}U.prototype.seperateId=function(e){return{pre:e[0],id:e.substr(1)}},U.prototype.parseChannel=function(e,t){var i=t.channel||t.utm_content||e.channel;return delete t.utm_content,delete t.channel,i},U.prototype.parseUrl=function(e,t,i){var r;return(r=e.match(/(clips\.)?twitch\.tv\/(?:(?:videos\/(\d+))|(\w+(?:-[\w\d-]+)?)(?:\/clip\/(\w+))?)/i))&&r[2]?t.id="v"+r[2]:i.video?(t.id=i.video,delete i.video):i.clip?(t.id=i.clip,t.isClip=!0,delete i.clip):r&&r[1]&&r[3]?(t.id=r[3],t.isClip=!0):r&&r[3]&&r[4]?(t.channel=r[3],t.id=r[4],t.isClip=!0):r&&r[3]&&(t.channel=r[3]),t},U.prototype.parseMediaType=function(e){var t;return e.id?e.isClip?(t=this.mediaTypes.CLIP,delete e.isClip):t=this.mediaTypes.VIDEO:e.channel&&(t=this.mediaTypes.STREAM),t},U.prototype.parseParameters=function(e){return e.t&&(e.start=T(e.t),delete e.t),e},U.prototype.parse=function(e,t){var i=this,r={};return(r=i.parseUrl(e,r,t)).channel=i.parseChannel(r,t),r.mediaType=i.parseMediaType(r),r.params=i.parseParameters(t),r.channel||r.id?r:void 0},U.prototype.createLongUrl=function(e,t){var i="";if(e.mediaType===this.mediaTypes.STREAM&&e.channel)i="https://twitch.tv/"+e.channel;else if(e.mediaType===this.mediaTypes.VIDEO&&e.id){i="https://twitch.tv/videos/"+this.seperateId(e.id).id,t.start&&(t.t=t.start+"s",delete t.start)}else{if(e.mediaType!==this.mediaTypes.CLIP||!e.id)return;i=e.channel?"https://www.twitch.tv/"+e.channel+"/clip/"+e.id:"https://clips.twitch.tv/"+e.id}return i+=v(t)},U.prototype.createEmbedUrl=function(e,t){var i="https://player.twitch.tv/";if(e.mediaType===this.mediaTypes.STREAM&&e.channel)t.channel=e.channel;else if(e.mediaType===this.mediaTypes.VIDEO&&e.id)t.video=e.id,t.start&&(t.t=t.start+"s",delete t.start);else{if(e.mediaType!==this.mediaTypes.CLIP||!e.id)return;i="https://clips.twitch.tv/embed",t.clip=e.id}return i+=v(t)},o.bind(new U);var b=i.combineParams,g=i.getTime;function E(){this.provider="vimeo",this.alternatives=["vimeopro"],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}E.prototype.parseUrl=function(e){var t=e.match(/(?:\/showcase\/\d+)?(?:\/(?:channels\/[\w]+|(?:(?:album\/\d+|groups\/[\w]+)\/)?videos?))?\/(\d+)/i);return t?t[1]:void 0},E.prototype.parseHash=function(e){var t=e.match(/\/\d+\/(\w+)$/i);return t?t[1]:void 0},E.prototype.parseParameters=function(e){return e.t&&(e.start=g(e.t),delete e.t),e.h&&(e.hash=e.h,delete e.h),e},E.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(t),id:this.parseUrl(e)},r=this.parseHash(e,t);return r&&(i.params.hash=r),i.id?i:void 0},E.prototype.createUrl=function(e,t,i,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var a=e+t.id,s=i.start;return delete i.start,i.hash&&("embed"===r?i.h=i.hash:"long"===r&&(a+="/"+i.hash),delete i.hash),a+=b(i),s&&(a+="#t="+s),a}},E.prototype.createLongUrl=function(e,t){return this.createUrl("https://vimeo.com/",e,t,"long")},E.prototype.createEmbedUrl=function(e,t){return this.createUrl("//player.vimeo.com/video/",e,t,"embed")},o.bind(new E);var I=i.combineParams,w=i.getTime;function D(){this.provider="wistia",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl,embedjsonp:this.createEmbedJsonpUrl},this.mediaTypes={VIDEO:"video",EMBEDVIDEO:"embedvideo"}}D.prototype.parseUrl=function(e){var t=e.match(/(?:(?:medias|iframe)\/|wvideo=)([\w-]+)/);return t?t[1]:void 0},D.prototype.parseChannel=function(e){var t=e.match(/(?:(?:https?:)?\/\/)?([^.]*)\.wistia\./),i=t?t[1]:void 0;if("fast"!==i&&"content"!==i)return i},D.prototype.parseParameters=function(e,t){return e.wtime&&(e.start=w(e.wtime),delete e.wtime),e.wvideo===t.id&&delete e.wvideo,e},D.prototype.parseMediaType=function(e){return e.id&&e.channel?this.mediaTypes.VIDEO:e.id?(delete e.channel,this.mediaTypes.EMBEDVIDEO):void 0},D.prototype.parse=function(e,t){var i={id:this.parseUrl(e),channel:this.parseChannel(e)};if(i.params=this.parseParameters(t,i),i.mediaType=this.parseMediaType(i),i.id)return i},D.prototype.createUrl=function(e,t,i){return t.start&&(t.wtime=t.start,delete t.start),i+=I(t)},D.prototype.createLongUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="https://"+e.channel+".wistia.com/medias/"+e.id;return this.createUrl(e,t,i)}},D.prototype.createEmbedUrl=function(e,t){if(e.id&&(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.EMBEDVIDEO)){var i="https://fast.wistia.com/embed/iframe/"+e.id;return this.createUrl(e,t,i)}},D.prototype.createEmbedJsonpUrl=function(e){if(e.id&&(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.EMBEDVIDEO))return"https://fast.wistia.com/embed/medias/"+e.id+".jsonp"},o.bind(new D);var O=i.combineParams;function L(){this.provider="youku",this.defaultFormat="long",this.formats={embed:this.createEmbedUrl,long:this.createLongUrl,flash:this.createFlashUrl,static:this.createStaticUrl},this.mediaTypes={VIDEO:"video"}}L.prototype.parseUrl=function(e){var t=e.match(/(?:(?:embed|sid)\/|v_show\/id_|VideoIDS=)([a-zA-Z0-9]+)/);return t?t[1]:void 0},L.prototype.parseParameters=function(e){return e.VideoIDS&&delete e.VideoIDS,e},L.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,id:this.parseUrl(e),params:this.parseParameters(t)};if(i.id)return i},L.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=O(i)}},L.prototype.createEmbedUrl=function(e,t){return this.createUrl("http://player.youku.com/embed/",e,t)},L.prototype.createLongUrl=function(e,t){return this.createUrl("http://v.youku.com/v_show/id_",e,t)},L.prototype.createStaticUrl=function(e,t){return this.createUrl("http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=",e,t)},L.prototype.createFlashUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="http://player.youku.com/player.php/sid/"+e.id+"/v.swf";return i+=O(t)}},o.bind(new L);var V=i.combineParams,P=i.getTime;function A(){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",CHANNEL:"channel"}}A.prototype.parseVideoUrl=function(e){var t=e.match(/(?:(?:v|vi|be|videos|shorts|embed|live)\/(?!videoseries)|(?:v|ci)=)([\w-]{11})/i);return t?t[1]:void 0},A.prototype.parseChannelUrl=function(e){var t=e.match(/\/channel\/([\w-]+)/);return t?{id:t[1],mediaType:this.mediaTypes.CHANNEL}:(t=e.match(/\/(?:c|user)\/([\w-]+)/))?{name:t[1],mediaType:this.mediaTypes.CHANNEL}:void 0},A.prototype.parseParameters=function(e,t){return(e.start||e.t)&&(e.start=P(e.start||e.t),delete e.t),e.v===t.id&&delete e.v,e.list===t.id&&delete e.list,e},A.prototype.parseMediaType=function(e){if(e.params.list&&(e.list=e.params.list,delete e.params.list),e.id&&!e.params.ci)e.mediaType=this.mediaTypes.VIDEO;else if(e.list)delete e.id,e.mediaType=this.mediaTypes.PLAYLIST;else{if(!e.params.ci)return;delete e.params.ci,e.mediaType=this.mediaTypes.SHARE}return e},A.prototype.parse=function(e,t){var i=this.parseChannelUrl(e);if(i)return i;var r={params:t,id:this.parseVideoUrl(e)};return r.params=this.parseParameters(t,r),r=this.parseMediaType(r)},A.prototype.createShortUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="https://youtu.be/"+e.id;return t.start&&(i+="#t="+t.start),i}},A.prototype.createLongUrl=function(e,t){var i="",r=t.start;if(delete t.start,e.mediaType===this.mediaTypes.CHANNEL)if(e.id)i+="https://www.youtube.com/channel/"+e.id;else{if(!e.name)return;i+="https://www.youtube.com/c/"+e.name}else if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list)t.feature="share",i+="https://www.youtube.com/playlist";else if(e.mediaType===this.mediaTypes.VIDEO&&e.id)t.v=e.id,i+="https://www.youtube.com/watch";else{if(e.mediaType!==this.mediaTypes.SHARE||!e.id)return;t.ci=e.id,i+="https://www.youtube.com/shared"}return e.list&&(t.list=e.list),i+=V(t),e.mediaType!==this.mediaTypes.PLAYLIST&&r&&(i+="#t="+r),i},A.prototype.createEmbedUrl=function(e,t){var i="https://www.youtube.com/embed";if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list)t.listType="playlist";else{if(e.mediaType!==this.mediaTypes.VIDEO||!e.id)return;i+="/"+e.id,"1"===t.loop&&(t.playlist=e.id)}return e.list&&(t.list=e.list),i+=V(t)},A.prototype.createImageUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+"/"+(i.imageQuality||this.defaultImageQuality)+".jpg"},A.prototype.createShortImageUrl=function(e,t){return this.createImageUrl("https://i.ytimg.com/vi/",e,t)},A.prototype.createLongImageUrl=function(e,t){return this.createImageUrl("https://img.youtube.com/vi/",e,t)},o.bind(new A);var S=i.combineParams,C=i.getTime;function F(){this.provider="soundcloud",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={TRACK:"track",PLAYLIST:"playlist",APITRACK:"apitrack",APIPLAYLIST:"apiplaylist"}}F.prototype.parseUrl=function(e,t){var i=e.match(/(?:m\.)?soundcloud\.com\/(?:([\w-]+)\/(sets\/)?)([\w-]+)/i);return i?(t.channel=i[1],"playlists"===i[1]||i[2]?t.list=i[3]:t.id=i[3],t):t},F.prototype.parseParameters=function(e){return e.t&&(e.start=C(e.t),delete e.t),e},F.prototype.parseMediaType=function(e){return e.id&&("tracks"===e.channel?(delete e.channel,delete e.params.url,e.mediaType=this.mediaTypes.APITRACK):e.mediaType=this.mediaTypes.TRACK),e.list&&("playlists"===e.channel?(delete e.channel,delete e.params.url,e.mediaType=this.mediaTypes.APIPLAYLIST):e.mediaType=this.mediaTypes.PLAYLIST),e},F.prototype.parse=function(e,t){var i={};if((i=this.parseUrl(e,i)).params=this.parseParameters(t),(i=this.parseMediaType(i)).id||i.list)return i},F.prototype.createLongUrl=function(e,t){var i="",r=t.start;if(delete t.start,e.mediaType===this.mediaTypes.TRACK&&e.id&&e.channel)i="https://soundcloud.com/"+e.channel+"/"+e.id;else if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list&&e.channel)i="https://soundcloud.com/"+e.channel+"/sets/"+e.list;else if(e.mediaType===this.mediaTypes.APITRACK&&e.id)i="https://api.soundcloud.com/tracks/"+e.id;else{if(e.mediaType!==this.mediaTypes.APIPLAYLIST||!e.list)return;i="https://api.soundcloud.com/playlists/"+e.list}return i+=S(t),r&&(i+="#t="+r),i},F.prototype.createEmbedUrl=function(e,t){var i="https://w.soundcloud.com/player/";if(delete t.start,e.mediaType===this.mediaTypes.APITRACK&&e.id)t.url="https%3A//api.soundcloud.com/tracks/"+e.id;else{if(e.mediaType!==this.mediaTypes.APIPLAYLIST||!e.list)return;t.url="https%3A//api.soundcloud.com/playlists/"+e.list}return i+=S(t)},o.bind(new F);var M=i.combineParams;function k(){this.provider="teachertube",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",AUDIO:"audio",DOCUMENT:"document",CHANNEL:"channel",COLLECTION:"collection",GROUP:"group"}}k.prototype.parse=function(e,t){var i={};i.list=this.parsePlaylist(t),i.params=t;var r=e.match(/\/(audio|video|document|user\/channel|collection|group)\/(?:[\w-]+-)?(\w+)/);if(r)return i.mediaType=this.parseMediaType(r[1]),i.id=r[2],i},k.prototype.parsePlaylist=function(e){if(e["playlist-id"]){var t=e["playlist-id"];return delete e["playlist-id"],t}},k.prototype.parseMediaType=function(e){switch(e){case"audio":return this.mediaTypes.AUDIO;case"video":return this.mediaTypes.VIDEO;case"document":return this.mediaTypes.DOCUMENT;case"user/channel":return this.mediaTypes.CHANNEL;case"collection":return this.mediaTypes.COLLECTION;case"group":return this.mediaTypes.GROUP}},k.prototype.createLongUrl=function(e,t){if(e.id){var i="https://www.teachertube.com/";return e.list&&(t["playlist-id"]=e.list),e.mediaType===this.mediaTypes.CHANNEL?i+="user/channel/":i+=e.mediaType+"/",i+=e.id,i+=M(t)}},k.prototype.createEmbedUrl=function(e,t){if(e.id){var i="https://www.teachertube.com/embed/";if(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.AUDIO)return i+=e.mediaType+"/"+e.id,i+=M(t)}},o.bind(new k);var R=i.combineParams;function N(){this.provider="tiktok",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}N.prototype.parse=function(e,t){var i={params:t,mediaType:this.mediaTypes.VIDEO},r=e.match(/@([^/]+)\/video\/(\d{19})/);if(r)return i.channel=r[1],i.id=r[2],i},N.prototype.createLongUrl=function(e,t){var i="";if(e.mediaType===this.mediaTypes.VIDEO&&e.id&&e.channel)return i+="https://www.tiktok.com/@".concat(e.channel,"/video/").concat(e.id),i+=R(t)},o.bind(new N);var Y=i.combineParams;function H(){this.provider="voomly",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}H.prototype.parseUrl=function(e){var t=e.match(/(?:v|embed)\/([\w-]+)/i);return t?t[1]:void 0},H.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},H.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=Y(i)}},H.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.voomly.com/v/",e,t)},o.bind(new H);var j=i.combineParams;function Q(){this.provider="spotlightr",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}Q.prototype.parseUrl=function(e){var t=e.match(/(?:watch|embed)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},Q.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},Q.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=j(i)}},Q.prototype.createLongUrl=function(e,t){return this.createUrl("https://videos.spotlightr.com/watch/",e,t)},o.bind(new Q);var _=i.combineParams;function z(){this.provider="bunny",this.alternatives=["bunnycdn","mediadelivery"],this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}z.prototype.parse=function(e,t){var i=e.match(/(?:play|embed)\/([a-zA-Z\d]+)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],id:i[2]};return r.id?r:void 0}},z.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=_(i)}},z.prototype.createLongUrl=function(e,t){return this.createUrl("https://iframe.mediadelivery.net/embed/",e,t)},o.bind(new z);var Z=i.combineParams;function K(){this.provider="canva",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}K.prototype.parse=function(e,t){var i=e.match(/\/design\/(.+)\/watch/);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:i[1]};return r.id?r:void 0}},K.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id+"/watch";return r+=Z(i)}},K.prototype.createLongUrl=function(e,t){return this.createUrl("https://www.canva.com/design/",e,t)},o.bind(new K);var B=i.combineParams;function $(){this.provider="descript",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}$.prototype.parse=function(e,t){var i=e.match(/(?:view|embed)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:i[1]};return r.id?r:void 0}},$.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=B(i)}},$.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.descript.com/embed/",e,t)},o.bind(new $);var x=i.combineParams;function q(){this.provider="ted",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",PLAYLIST:"playlist"}}q.prototype.parseUrl=function(e,t){var i=e.match(/\/(talks|playlists\/(\d+))\/([\w-]+)/i),r=i?i[1]:void 0;return r?(t.channel=r.split("/")[0],t.id=i[3],"playlists"===t.channel&&(t.list=i[2]),t):t},q.prototype.parseMediaType=function(e){return e.id&&"playlists"===e.channel&&(delete e.channel,e.mediaType=this.mediaTypes.PLAYLIST),e.id&&"talks"===e.channel&&(delete e.channel,e.mediaType=this.mediaTypes.VIDEO),e},q.prototype.parse=function(e,t){var i={params:t};if(i=this.parseUrl(e,i),(i=this.parseMediaType(i)).id)return i},q.prototype.createLongUrl=function(e,t){var i="";if(e.mediaType===this.mediaTypes.VIDEO&&e.id)i+="https://ted.com/talks/"+e.id;else{if(e.mediaType!==this.mediaTypes.PLAYLIST||!e.id)return;i+="https://ted.com/playlists/"+e.list+"/"+e.id}return i+=x(t)},q.prototype.createEmbedUrl=function(e,t){var i="https://embed.ted.com/";if(e.mediaType===this.mediaTypes.PLAYLIST&&e.id)i+="playlists/"+e.list+"/"+e.id;else{if(e.mediaType!==this.mediaTypes.VIDEO||!e.id)return;i+="talks/"+e.id}return i+=x(t)},o.bind(new q);var G=i.combineParams;function J(){this.provider="facebook",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,watch:this.createWatchUrl},this.mediaTypes={VIDEO:"video"}}J.prototype.parse=function(e,t){var i={params:t,mediaType:this.mediaTypes.VIDEO},r=e.match(/(?:\/(\d+))?\/videos(?:\/.*?)?\/(\d+)/i);if(r&&(r[1]&&(i.pageId=r[1]),i.id=r[2]),t.v&&!i.id&&(i.id=t.v,delete t.v,i.params=t),i.id)return i},J.prototype.createWatchUrl=function(e,t){var i="https://facebook.com/watch/";if(e.mediaType===this.mediaTypes.VIDEO&&e.id)return t={v:e.id},i+=G(t)},J.prototype.createLongUrl=function(e,t){var i="https://facebook.com/";if(e.pageId&&(i+=e.pageId,e.mediaType===this.mediaTypes.VIDEO&&e.id))return i+="/videos/"+e.id,i+=G(t)},o.bind(new J);var W=i.combineParams;function X(){this.provider="bigcommand",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}X.prototype.parse=function(e,t){var i=e.match(/(?:watch)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:i[1]};return r.id?r:void 0}},X.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=W(i)}},X.prototype.createLongUrl=function(e,t){return this.createUrl("https://adilo.bigcommand.com/watch/",e,t)},o.bind(new X);var ee=i.combineParams;function te(){this.provider="google",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}te.prototype.parseUrl=function(e){var t=e.match(/\/d\/([\w-]+)/);return t?t[1]:void 0},te.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},te.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id+"/preview";return r+=ee(i)}},te.prototype.createLongUrl=function(e,t){return this.createUrl("https://drive.google.com/file/d/",e,t)},o.bind(new te);var ie=i.combineParams;function re(){this.provider="groove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}re.prototype.parse=function(e,t){var i=e.match(/(?:videopage)\/([\w-]+)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],id:i[2]};return r.id?r:void 0}},re.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=ie(i)}},re.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.groove.cm/groovevideo/videopage/",e,t)},o.bind(new re);var ae=i.combineParams;function se(){this.provider="streamable",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}se.prototype.parseUrl=function(e){var t=e.match(/com\/(?:streamable\/)?([\w-]+)/);return t?t[1]:void 0},se.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},se.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=ae(i)}},se.prototype.createLongUrl=function(e,t){return this.createUrl("https://streamable.com/",e,t)},o.bind(new se);var oe=i.combineParams;function ne(){this.provider="searchie",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ne.prototype.parseUrl=function(e){var t=e.match(/(?:watch)\/([\w-]+)/i);return t?t[1]:void 0},ne.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},ne.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=oe(i)}},ne.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.searchie.io/watch/",e,t)},o.bind(new ne);var pe=i.combineParams;function de(){this.provider="tevello",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}return de.prototype.parse=function(e,t){var i=e.match(/\/([a-zA-Z\d]+)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],id:i[2]};return r.id?r:void 0}},de.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=pe(i)}},de.prototype.createLongUrl=function(e,t){return this.createUrl("https://video.tevello.com/",e,t)},o.bind(new de),e(o)}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).urlParser=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}var i={};i.getQueryParams=function(e){if("string"!=typeof e)return{};var t,i={},r=(e=e.split("+").join(" ")).match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);if(null===r)return{};t=r[0].substr(1).split(/[&#=]/);for(var a=0;a<t.length;a+=2)i[decodeURIComponent(t[a])]=decodeURIComponent(t[a+1]||"");return i},i.combineParams=function(e,i){if("object"!==t(e))return"";var r="",a=0,s=Object.keys(e);if(0===s.length)return"";for(s.sort(),i||(r+="?"+s[0]+"="+e[s[0]],a+=1);a<s.length;a+=1)r+="&"+s[a]+"="+e[s[a]];return r},i.getTime=function(e){return void 0===e?0:e.match(/^(\d+[smhdw]?)+$/)?function(e){var t,i=0,r={s:1,m:60,h:3600,d:86400,w:604800};t=(e=e.replace(/([smhdw])/g," $1 ").trim()).split(" ");for(var a=0;a<t.length;a+=2)i+=parseInt(t[a],10)*r[t[a+1]||"s"];return i}(e):e.match(/^(\d+:?)+$/)?function(e){for(var t=0,i=[1,60,3600,86400,604800],r=e.split(":"),a=0;a<r.length;a++)t+=parseInt(r[a],10)*i[r.length-a-1];return t}(e):0};var r=i.getQueryParams;function a(){for(var e=0,t=["parseProvider","parse","bind","create"];e<t.length;e++){var i=t[e];this[i]=this[i].bind(this)}this.plugins={}}var s=a;a.prototype.parseProvider=function(e){var t=e.match(/(?:(?:https?:)?\/\/)?(?:[^.]+\.)?(\w+)\./i);return t?t[1]:void 0},a.prototype.parse=function(e){if(void 0!==e){var t,i=this.parseProvider(e),a=this.plugins[i];if(i&&a&&a.parse)return(t=a.parse.call(a,e,r(e)))&&((t=function(e){e.params&&0===Object.keys(e.params).length&&delete e.params;return e}(t)).provider=a.provider),t}},a.prototype.bind=function(e){if(this.plugins[e.provider]=e,e.alternatives)for(var t=0;t<e.alternatives.length;t+=1)this.plugins[e.alternatives[t]]=e},a.prototype.create=function(e){if("object"===t(e)&&"object"===t(e.videoInfo)){var i=e.videoInfo,r=e.params,a=this.plugins[i.provider];return r="internal"===r?i.params:r||{},a&&(e.format=e.format||a.defaultFormat,a.formats.hasOwnProperty(e.format))?a.formats[e.format].apply(a,[i,Object.assign({},r)]):void 0}};var o=new s;function n(){this.provider="allocine",this.alternatives=[],this.defaultFormat="embed",this.formats={embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}n.prototype.parseUrl=function(e){var t=e.match(/(?:\/video\/player_gen_cmedia=)([A-Za-z0-9]+)/i);return t?t[1]:void 0},n.prototype.parse=function(e){var t={mediaType:this.mediaTypes.VIDEO,id:this.parseUrl(e)};return t.id?t:void 0},n.prototype.createEmbedUrl=function(e){if(e.id&&e.mediaType===this.mediaTypes.VIDEO)return"https://player.allocine.fr/"+e.id+".html"},o.bind(new n);var p=i.combineParams;function d(){this.provider="canalplus",this.defaultFormat="embed",this.formats={embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}d.prototype.parseParameters=function(e){return delete e.vid,e},d.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,id:t.vid};if(i.params=this.parseParameters(t),i.id)return i},d.prototype.createEmbedUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="http://player.canalplus.fr/embed/";return t.vid=e.id,i+=p(t)}},o.bind(new d);var m=i.combineParams;function l(){this.provider="coub",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}l.prototype.parseUrl=function(e){var t=e.match(/(?:embed|view)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},l.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};if(i.id)return i},l.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=m(i)}},l.prototype.createLongUrl=function(e,t){return this.createUrl("https://coub.com/view/",e,t)},l.prototype.createEmbedUrl=function(e,t){return this.createUrl("//coub.com/embed/",e,t)},o.bind(new l);var c=i.combineParams,h=i.getTime;function u(){this.provider="dailymotion",this.alternatives=["dai"],this.defaultFormat="long",this.formats={short:this.createShortUrl,long:this.createLongUrl,embed:this.createEmbedUrl,image:this.createImageUrl},this.mediaTypes={VIDEO:"video"}}u.prototype.parseParameters=function(e){return this.parseTime(e)},u.prototype.parseTime=function(e){return e.start&&(e.start=h(e.start)),e},u.prototype.parseUrl=function(e){var t=e.match(/(?:\/video|ly)\/([A-Za-z0-9]+)/i);return t?t[1]:void 0},u.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(t),id:this.parseUrl(e)};return i.id?i:void 0},u.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+c(i)},u.prototype.createShortUrl=function(e,t){return this.createUrl("https://dai.ly/",e,t)},u.prototype.createLongUrl=function(e,t){return this.createUrl("https://dailymotion.com/video/",e,t)},u.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://www.dailymotion.com/embed/video/",e,t)},u.prototype.createImageUrl=function(e,t){return delete t.start,this.createUrl("https://www.dailymotion.com/thumbnail/video/",e,t)},o.bind(new u);var y=i.combineParams;function f(){this.provider="loom",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}f.prototype.parseUrl=function(e){var t=e.match(/(?:share|embed)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},f.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},f.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=y(i)}},f.prototype.createLongUrl=function(e,t){return this.createUrl("https://loom.com/share/",e,t)},f.prototype.createEmbedUrl=function(e,t){return this.createUrl("//loom.com/embed/",e,t)},o.bind(new f);var v=i.combineParams,T=i.getTime;function U(){this.provider="twitch",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",STREAM:"stream",CLIP:"clip"}}U.prototype.seperateId=function(e){return{pre:e[0],id:e.substr(1)}},U.prototype.parseChannel=function(e,t){var i=t.channel||t.utm_content||e.channel;return delete t.utm_content,delete t.channel,i},U.prototype.parseUrl=function(e,t,i){var r;return(r=e.match(/(clips\.)?twitch\.tv\/(?:(?:videos\/(\d+))|(\w+(?:-[\w\d-]+)?)(?:\/clip\/(\w+))?)/i))&&r[2]?t.id="v"+r[2]:i.video?(t.id=i.video,delete i.video):i.clip?(t.id=i.clip,t.isClip=!0,delete i.clip):r&&r[1]&&r[3]?(t.id=r[3],t.isClip=!0):r&&r[3]&&r[4]?(t.channel=r[3],t.id=r[4],t.isClip=!0):r&&r[3]&&(t.channel=r[3]),t},U.prototype.parseMediaType=function(e){var t;return e.id?e.isClip?(t=this.mediaTypes.CLIP,delete e.isClip):t=this.mediaTypes.VIDEO:e.channel&&(t=this.mediaTypes.STREAM),t},U.prototype.parseParameters=function(e){return e.t&&(e.start=T(e.t),delete e.t),e},U.prototype.parse=function(e,t){var i=this,r={};return(r=i.parseUrl(e,r,t)).channel=i.parseChannel(r,t),r.mediaType=i.parseMediaType(r),r.params=i.parseParameters(t),r.channel||r.id?r:void 0},U.prototype.createLongUrl=function(e,t){var i="";if(e.mediaType===this.mediaTypes.STREAM&&e.channel)i="https://twitch.tv/"+e.channel;else if(e.mediaType===this.mediaTypes.VIDEO&&e.id){i="https://twitch.tv/videos/"+this.seperateId(e.id).id,t.start&&(t.t=t.start+"s",delete t.start)}else{if(e.mediaType!==this.mediaTypes.CLIP||!e.id)return;i=e.channel?"https://www.twitch.tv/"+e.channel+"/clip/"+e.id:"https://clips.twitch.tv/"+e.id}return i+=v(t)},U.prototype.createEmbedUrl=function(e,t){var i="https://player.twitch.tv/";if(e.mediaType===this.mediaTypes.STREAM&&e.channel)t.channel=e.channel;else if(e.mediaType===this.mediaTypes.VIDEO&&e.id)t.video=e.id,t.start&&(t.t=t.start+"s",delete t.start);else{if(e.mediaType!==this.mediaTypes.CLIP||!e.id)return;i="https://clips.twitch.tv/embed",t.clip=e.id}return i+=v(t)},o.bind(new U);var b=i.combineParams,g=i.getTime;function I(){this.provider="vimeo",this.alternatives=["vimeopro"],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}I.prototype.parseUrl=function(e){var t=e.match(/(?:\/showcase\/\d+)?(?:\/(?:channels\/[\w]+|(?:(?:album\/\d+|groups\/[\w]+)\/)?videos?))?\/(\d+)/i);return t?t[1]:void 0},I.prototype.parseHash=function(e){var t=e.match(/\/\d+\/(\w+)$/i);return t?t[1]:void 0},I.prototype.parseParameters=function(e){return e.t&&(e.start=g(e.t),delete e.t),e.h&&(e.hash=e.h,delete e.h),e},I.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(t),id:this.parseUrl(e)},r=this.parseHash(e,t);return r&&(i.params.hash=r),i.id?i:void 0},I.prototype.createUrl=function(e,t,i,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var a=e+t.id,s=i.start;return delete i.start,i.hash&&("embed"===r?i.h=i.hash:"long"===r&&(a+="/"+i.hash),delete i.hash),a+=b(i),s&&(a+="#t="+s),a}},I.prototype.createLongUrl=function(e,t){return this.createUrl("https://vimeo.com/",e,t,"long")},I.prototype.createEmbedUrl=function(e,t){return this.createUrl("//player.vimeo.com/video/",e,t,"embed")},o.bind(new I);var E=i.combineParams,w=i.getTime;function D(){this.provider="wistia",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl,embedjsonp:this.createEmbedJsonpUrl},this.mediaTypes={VIDEO:"video",EMBEDVIDEO:"embedvideo"}}D.prototype.parseUrl=function(e){var t=e.match(/(?:(?:medias|iframe)\/|wvideo=)([\w-]+)/);return t?t[1]:void 0},D.prototype.parseChannel=function(e){var t=e.match(/(?:(?:https?:)?\/\/)?([^.]*)\.wistia\./),i=t?t[1]:void 0;if("fast"!==i&&"content"!==i)return i},D.prototype.parseParameters=function(e,t){return e.wtime&&(e.start=w(e.wtime),delete e.wtime),e.wvideo===t.id&&delete e.wvideo,e},D.prototype.parseMediaType=function(e){return e.id&&e.channel?this.mediaTypes.VIDEO:e.id?(delete e.channel,this.mediaTypes.EMBEDVIDEO):void 0},D.prototype.parse=function(e,t){var i={id:this.parseUrl(e),channel:this.parseChannel(e)};if(i.params=this.parseParameters(t,i),i.mediaType=this.parseMediaType(i),i.id)return i},D.prototype.createUrl=function(e,t,i){return t.start&&(t.wtime=t.start,delete t.start),i+=E(t)},D.prototype.createLongUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="https://"+e.channel+".wistia.com/medias/"+e.id;return this.createUrl(e,t,i)}},D.prototype.createEmbedUrl=function(e,t){if(e.id&&(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.EMBEDVIDEO)){var i="https://fast.wistia.com/embed/iframe/"+e.id;return this.createUrl(e,t,i)}},D.prototype.createEmbedJsonpUrl=function(e){if(e.id&&(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.EMBEDVIDEO))return"https://fast.wistia.com/embed/medias/"+e.id+".jsonp"},o.bind(new D);var O=i.combineParams;function L(){this.provider="youku",this.defaultFormat="long",this.formats={embed:this.createEmbedUrl,long:this.createLongUrl,flash:this.createFlashUrl,static:this.createStaticUrl},this.mediaTypes={VIDEO:"video"}}L.prototype.parseUrl=function(e){var t=e.match(/(?:(?:embed|sid)\/|v_show\/id_|VideoIDS=)([a-zA-Z0-9]+)/);return t?t[1]:void 0},L.prototype.parseParameters=function(e){return e.VideoIDS&&delete e.VideoIDS,e},L.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,id:this.parseUrl(e),params:this.parseParameters(t)};if(i.id)return i},L.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=O(i)}},L.prototype.createEmbedUrl=function(e,t){return this.createUrl("http://player.youku.com/embed/",e,t)},L.prototype.createLongUrl=function(e,t){return this.createUrl("http://v.youku.com/v_show/id_",e,t)},L.prototype.createStaticUrl=function(e,t){return this.createUrl("http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=",e,t)},L.prototype.createFlashUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="http://player.youku.com/player.php/sid/"+e.id+"/v.swf";return i+=O(t)}},o.bind(new L);var V=i.combineParams,P=i.getTime;function A(){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",CHANNEL:"channel"}}A.prototype.parseVideoUrl=function(e){var t=e.match(/(?:(?:v|vi|be|videos|shorts|embed|live)\/(?!videoseries)|(?:v|ci)=)([\w-]{11})/i);return t?t[1]:void 0},A.prototype.parseChannelUrl=function(e){var t=e.match(/\/channel\/([\w-]+)/);return t?{id:t[1],mediaType:this.mediaTypes.CHANNEL}:(t=e.match(/\/(?:c|user)\/([\w-]+)/))?{name:t[1],mediaType:this.mediaTypes.CHANNEL}:void 0},A.prototype.parseParameters=function(e,t){return(e.start||e.t)&&(e.start=P(e.start||e.t),delete e.t),e.v===t.id&&delete e.v,e.list===t.id&&delete e.list,e},A.prototype.parseMediaType=function(e){if(e.params.list&&(e.list=e.params.list,delete e.params.list),e.id&&!e.params.ci)e.mediaType=this.mediaTypes.VIDEO;else if(e.list)delete e.id,e.mediaType=this.mediaTypes.PLAYLIST;else{if(!e.params.ci)return;delete e.params.ci,e.mediaType=this.mediaTypes.SHARE}return e},A.prototype.parse=function(e,t){var i=this.parseChannelUrl(e);if(i)return i;var r={params:t,id:this.parseVideoUrl(e)};return r.params=this.parseParameters(t,r),r=this.parseMediaType(r)},A.prototype.createShortUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var i="https://youtu.be/"+e.id;return t.start&&(i+="#t="+t.start),i}},A.prototype.createLongUrl=function(e,t){var i="",r=t.start;if(delete t.start,e.mediaType===this.mediaTypes.CHANNEL)if(e.id)i+="https://www.youtube.com/channel/"+e.id;else{if(!e.name)return;i+="https://www.youtube.com/c/"+e.name}else if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list)t.feature="share",i+="https://www.youtube.com/playlist";else if(e.mediaType===this.mediaTypes.VIDEO&&e.id)t.v=e.id,i+="https://www.youtube.com/watch";else{if(e.mediaType!==this.mediaTypes.SHARE||!e.id)return;t.ci=e.id,i+="https://www.youtube.com/shared"}return e.list&&(t.list=e.list),i+=V(t),e.mediaType!==this.mediaTypes.PLAYLIST&&r&&(i+="#t="+r),i},A.prototype.createEmbedUrl=function(e,t){var i="https://www.youtube.com/embed";if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list)t.listType="playlist";else{if(e.mediaType!==this.mediaTypes.VIDEO||!e.id)return;i+="/"+e.id,"1"===t.loop&&(t.playlist=e.id)}return e.list&&(t.list=e.list),i+=V(t)},A.prototype.createImageUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+"/"+(i.imageQuality||this.defaultImageQuality)+".jpg"},A.prototype.createShortImageUrl=function(e,t){return this.createImageUrl("https://i.ytimg.com/vi/",e,t)},A.prototype.createLongImageUrl=function(e,t){return this.createImageUrl("https://img.youtube.com/vi/",e,t)},o.bind(new A);var S=i.combineParams,C=i.getTime;function F(){this.provider="soundcloud",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={TRACK:"track",PLAYLIST:"playlist",APITRACK:"apitrack",APIPLAYLIST:"apiplaylist"}}F.prototype.parseUrl=function(e,t){var i=e.match(/(?:m\.)?soundcloud\.com\/(?:([\w-]+)\/(sets\/)?)([\w-]+)/i);return i?(t.channel=i[1],"playlists"===i[1]||i[2]?t.list=i[3]:t.id=i[3],t):t},F.prototype.parseParameters=function(e){return e.t&&(e.start=C(e.t),delete e.t),e},F.prototype.parseMediaType=function(e){return e.id&&("tracks"===e.channel?(delete e.channel,delete e.params.url,e.mediaType=this.mediaTypes.APITRACK):e.mediaType=this.mediaTypes.TRACK),e.list&&("playlists"===e.channel?(delete e.channel,delete e.params.url,e.mediaType=this.mediaTypes.APIPLAYLIST):e.mediaType=this.mediaTypes.PLAYLIST),e},F.prototype.parse=function(e,t){var i={};if((i=this.parseUrl(e,i)).params=this.parseParameters(t),(i=this.parseMediaType(i)).id||i.list)return i},F.prototype.createLongUrl=function(e,t){var i="",r=t.start;if(delete t.start,e.mediaType===this.mediaTypes.TRACK&&e.id&&e.channel)i="https://soundcloud.com/"+e.channel+"/"+e.id;else if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list&&e.channel)i="https://soundcloud.com/"+e.channel+"/sets/"+e.list;else if(e.mediaType===this.mediaTypes.APITRACK&&e.id)i="https://api.soundcloud.com/tracks/"+e.id;else{if(e.mediaType!==this.mediaTypes.APIPLAYLIST||!e.list)return;i="https://api.soundcloud.com/playlists/"+e.list}return i+=S(t),r&&(i+="#t="+r),i},F.prototype.createEmbedUrl=function(e,t){var i="https://w.soundcloud.com/player/";if(delete t.start,e.mediaType===this.mediaTypes.APITRACK&&e.id)t.url="https%3A//api.soundcloud.com/tracks/"+e.id;else{if(e.mediaType!==this.mediaTypes.APIPLAYLIST||!e.list)return;t.url="https%3A//api.soundcloud.com/playlists/"+e.list}return i+=S(t)},o.bind(new F);var M=i.combineParams;function k(){this.provider="teachertube",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",AUDIO:"audio",DOCUMENT:"document",CHANNEL:"channel",COLLECTION:"collection",GROUP:"group"}}k.prototype.parse=function(e,t){var i={};i.list=this.parsePlaylist(t),i.params=t;var r=e.match(/\/(audio|video|document|user\/channel|collection|group)\/(?:[\w-]+-)?(\w+)/);if(r)return i.mediaType=this.parseMediaType(r[1]),i.id=r[2],i},k.prototype.parsePlaylist=function(e){if(e["playlist-id"]){var t=e["playlist-id"];return delete e["playlist-id"],t}},k.prototype.parseMediaType=function(e){switch(e){case"audio":return this.mediaTypes.AUDIO;case"video":return this.mediaTypes.VIDEO;case"document":return this.mediaTypes.DOCUMENT;case"user/channel":return this.mediaTypes.CHANNEL;case"collection":return this.mediaTypes.COLLECTION;case"group":return this.mediaTypes.GROUP}},k.prototype.createLongUrl=function(e,t){if(e.id){var i="https://www.teachertube.com/";return e.list&&(t["playlist-id"]=e.list),e.mediaType===this.mediaTypes.CHANNEL?i+="user/channel/":i+=e.mediaType+"/",i+=e.id,i+=M(t)}},k.prototype.createEmbedUrl=function(e,t){if(e.id){var i="https://www.teachertube.com/embed/";if(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.AUDIO)return i+=e.mediaType+"/"+e.id,i+=M(t)}},o.bind(new k);var R=i.combineParams;function N(){this.provider="tiktok",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}N.prototype.parse=function(e,t){var i={params:t,mediaType:this.mediaTypes.VIDEO},r=e.match(/@([^/]+)\/video\/(\d{19})/);if(r)return i.channel=r[1],i.id=r[2],i},N.prototype.createLongUrl=function(e,t){var i="";if(e.mediaType===this.mediaTypes.VIDEO&&e.id&&e.channel)return i+="https://www.tiktok.com/@".concat(e.channel,"/video/").concat(e.id),i+=R(t)},o.bind(new N);var Y=i.combineParams;function H(){this.provider="voomly",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}H.prototype.parseUrl=function(e){var t=e.match(/(?:v|embed)\/([\w-]+)/i);return t?t[1]:void 0},H.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},H.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=Y(i)}},H.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.voomly.com/v/",e,t)},o.bind(new H);var j=i.combineParams;function _(){this.provider="spotlightr",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}_.prototype.parseUrl=function(e){var t=e.match(/(?:watch|embed)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},_.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},_.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=j(i)}},_.prototype.createLongUrl=function(e,t){return this.createUrl("https://videos.spotlightr.com/watch/",e,t)},o.bind(new _);var Q=i.combineParams;function z(){this.provider="bunny",this.alternatives=["bunnycdn","mediadelivery"],this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}z.prototype.parse=function(e,t){var i=e.match(/(?:play|embed)\/([a-zA-Z\d]+)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],id:i[2]};return r.id?r:void 0}},z.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=Q(i)}},z.prototype.createLongUrl=function(e,t){return this.createUrl("https://iframe.mediadelivery.net/embed/",e,t)},o.bind(new z);var Z=i.combineParams;function K(){this.provider="canva",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}K.prototype.parse=function(e,t){var i=e.match(/\/design\/(.+)\/watch/);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:i[1]};return r.id?r:void 0}},K.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id+"/watch";return r+=Z(i)}},K.prototype.createLongUrl=function(e,t){return this.createUrl("https://www.canva.com/design/",e,t)},o.bind(new K);var x=i.combineParams;function B(){this.provider="descript",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}B.prototype.parse=function(e,t){var i=e.match(/(?:view|embed)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:i[1]};return r.id?r:void 0}},B.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=x(i)}},B.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.descript.com/embed/",e,t)},o.bind(new B);var $=i.combineParams;function q(){this.provider="ted",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",PLAYLIST:"playlist"}}q.prototype.parseUrl=function(e,t){var i=e.match(/\/(talks|playlists\/(\d+))\/([\w-]+)/i),r=i?i[1]:void 0;return r?(t.channel=r.split("/")[0],t.id=i[3],"playlists"===t.channel&&(t.list=i[2]),t):t},q.prototype.parseMediaType=function(e){return e.id&&"playlists"===e.channel&&(delete e.channel,e.mediaType=this.mediaTypes.PLAYLIST),e.id&&"talks"===e.channel&&(delete e.channel,e.mediaType=this.mediaTypes.VIDEO),e},q.prototype.parse=function(e,t){var i={params:t};if(i=this.parseUrl(e,i),(i=this.parseMediaType(i)).id)return i},q.prototype.createLongUrl=function(e,t){var i="";if(e.mediaType===this.mediaTypes.VIDEO&&e.id)i+="https://ted.com/talks/"+e.id;else{if(e.mediaType!==this.mediaTypes.PLAYLIST||!e.id)return;i+="https://ted.com/playlists/"+e.list+"/"+e.id}return i+=$(t)},q.prototype.createEmbedUrl=function(e,t){var i="https://embed.ted.com/";if(e.mediaType===this.mediaTypes.PLAYLIST&&e.id)i+="playlists/"+e.list+"/"+e.id;else{if(e.mediaType!==this.mediaTypes.VIDEO||!e.id)return;i+="talks/"+e.id}return i+=$(t)},o.bind(new q);var G=i.combineParams;function J(){this.provider="facebook",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,watch:this.createWatchUrl},this.mediaTypes={VIDEO:"video"}}J.prototype.parse=function(e,t){var i={params:t,mediaType:this.mediaTypes.VIDEO},r=e.match(/(?:\/(\d+))?\/videos(?:\/.*?)?\/(\d+)/i);if(r&&(r[1]&&(i.pageId=r[1]),i.id=r[2]),t.v&&!i.id&&(i.id=t.v,delete t.v,i.params=t),i.id)return i},J.prototype.createWatchUrl=function(e,t){var i="https://facebook.com/watch/";if(e.mediaType===this.mediaTypes.VIDEO&&e.id)return t={v:e.id},i+=G(t)},J.prototype.createLongUrl=function(e,t){var i="https://facebook.com/";if(e.pageId&&(i+=e.pageId,e.mediaType===this.mediaTypes.VIDEO&&e.id))return i+="/videos/"+e.id,i+=G(t)},o.bind(new J);var W=i.combineParams;function X(){this.provider="bigcommand",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}X.prototype.parse=function(e,t){var i=e.match(/(?:watch)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:i[1]};return r.id?r:void 0}},X.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=W(i)}},X.prototype.createLongUrl=function(e,t){return this.createUrl("https://adilo.bigcommand.com/watch/",e,t)},o.bind(new X);var ee=i.combineParams;function te(){this.provider="brightcove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}te.prototype.parse=function(e,t){var i=e.match(/(\d+)\/(\w+)_(\w+)+\/index.html\?videoId=(\d+)/);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],player:i[2],embed:i[3],id:i[4]};return r.id?r:void 0}},te.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.player+"_"+t.embed+"/index.html";return r+=ee(i)}},te.prototype.createLongUrl=function(e,t){return this.createUrl("https://players.brightcove.net/",e,t)},o.bind(new te);var ie=i.combineParams;function re(){this.provider="google",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}re.prototype.parseUrl=function(e){var t=e.match(/\/d\/([\w-]+)/);return t?t[1]:void 0},re.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},re.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id+"/preview";return r+=ie(i)}},re.prototype.createLongUrl=function(e,t){return this.createUrl("https://drive.google.com/file/d/",e,t)},o.bind(new re);var ae=i.combineParams;function se(){this.provider="groove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}se.prototype.parse=function(e,t){var i=e.match(/(?:videopage)\/([\w-]+)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],id:i[2]};return r.id?r:void 0}},se.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=ae(i)}},se.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.groove.cm/groovevideo/videopage/",e,t)},o.bind(new se);var oe=i.combineParams;function ne(){this.provider="streamable",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ne.prototype.parseUrl=function(e){var t=e.match(/com\/(?:streamable\/)?([\w-]+)/);return t?t[1]:void 0},ne.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},ne.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=oe(i)}},ne.prototype.createLongUrl=function(e,t){return this.createUrl("https://streamable.com/",e,t)},o.bind(new ne);var pe=i.combineParams;function de(){this.provider="searchie",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}de.prototype.parseUrl=function(e){var t=e.match(/(?:watch)\/([\w-]+)/i);return t?t[1]:void 0},de.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},de.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=pe(i)}},de.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.searchie.io/watch/",e,t)},o.bind(new de);var me=i.combineParams;function le(){this.provider="tevello",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}return le.prototype.parse=function(e,t){var i=e.match(/\/([a-zA-Z\d]+)\/([\w-]+)/i);if(i){var r={mediaType:this.mediaTypes.VIDEO,params:t,library:i[1],id:i[2]};return r.id?r:void 0}},le.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=me(i)}},le.prototype.createLongUrl=function(e,t){return this.createUrl("https://video.tevello.com/",e,t)},o.bind(new le),e(o)}));
package/lib/index.js CHANGED
@@ -20,6 +20,7 @@ require('./provider/descript');
20
20
  require('./provider/ted');
21
21
  require('./provider/facebook');
22
22
  require('./provider/bigcommand');
23
+ require('./provider/brightcove');
23
24
  require('./provider/googledrive');
24
25
  require('./provider/groove');
25
26
  require('./provider/streamable');
@@ -0,0 +1,48 @@
1
+ const { combineParams } = require('../util');
2
+
3
+ function Brightcove() {
4
+ this.provider = 'brightcove';
5
+ this.defaultFormat = 'long';
6
+ this.formats = {
7
+ long: this.createLongUrl,
8
+ };
9
+ this.mediaTypes = {
10
+ VIDEO: 'video',
11
+ };
12
+ }
13
+
14
+ module.exports = Brightcove;
15
+
16
+ Brightcove.prototype.parse = function(url, params) {
17
+ var match = url.match(
18
+ /(\d+)\/(\w+)_(\w+)+\/index.html\?videoId=(\d+)/
19
+ );
20
+ if (!match) {
21
+ return undefined;
22
+ }
23
+ var result = {
24
+ mediaType: this.mediaTypes.VIDEO,
25
+ params: params,
26
+ library: match[1],
27
+ player: match[2],
28
+ embed: match[3],
29
+ id: match[4]
30
+ };
31
+ return result.id ? result : undefined;
32
+ };
33
+
34
+ Brightcove.prototype.createUrl = function(baseUrl, vi, params) {
35
+ if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
36
+ return undefined;
37
+ }
38
+
39
+ var url = baseUrl + vi.library + '/' + vi.player + '_' + vi.embed + '/index.html';
40
+ url += combineParams(params);
41
+ return url;
42
+ };
43
+
44
+ Brightcove.prototype.createLongUrl = function(vi, params) {
45
+ return this.createUrl('https://players.brightcove.net/', vi, params);
46
+ };
47
+
48
+ require('../base').bind(new Brightcove());
@@ -0,0 +1,14 @@
1
+ import { VideoInfo } from '../urlParser';
2
+
3
+ export interface BrightcoveUrlParameters {
4
+ [key: string]: any;
5
+ }
6
+
7
+ export type BrightcoveMediaTypes = 'video';
8
+
9
+ export interface BrightcoveVideoInfo extends VideoInfo<BrightcoveUrlParameters, BrightcoveMediaTypes> {
10
+ provider: 'brightcove';
11
+ channel: string;
12
+ }
13
+
14
+ export type VoomlyParseResult = BrightcoveVideoInfo | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ormoshe/js-video-url-parser",
3
- "version": "0.5.29",
3
+ "version": "0.5.31",
4
4
  "description": "A parser to extract provider, video id, starttime and others from YouTube, Vimeo, ... urls",
5
5
  "main": "lib/index.js",
6
6
  "browser": "dist/jsVideoUrlParser.js",