@ormoshe/js-video-url-parser 0.5.36 → 0.5.38

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$s = util.combineParams;
203
+ var combineParams$u = 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$s(params);
236
+ url += combineParams$u(params);
237
237
  return url;
238
238
  };
239
239
  base.bind(new CanalPlus());
240
240
 
241
- var combineParams$r = util.combineParams;
241
+ var combineParams$t = 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$r(params);
273
+ url += combineParams$t(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$q = util.combineParams,
284
+ var combineParams$s = 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$q(params);
326
+ return base + vi.id + combineParams$s(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$p = util.combineParams;
343
+ var combineParams$r = 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$p(params);
372
+ url += combineParams$r(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$o = util.combineParams;
383
+ var combineParams$q = util.combineParams;
384
384
  function Tella() {
385
385
  this.provider = 'tella';
386
386
  this.defaultFormat = 'long';
@@ -409,7 +409,7 @@
409
409
  return undefined;
410
410
  }
411
411
  var url = baseUrl + vi.id;
412
- url += combineParams$o(params);
412
+ url += combineParams$q(params);
413
413
  return url;
414
414
  };
415
415
  Tella.prototype.createLongUrl = function (vi, params) {
@@ -420,7 +420,7 @@
420
420
  };
421
421
  base.bind(new Tella());
422
422
 
423
- var combineParams$n = util.combineParams,
423
+ var combineParams$p = util.combineParams,
424
424
  getTime$4 = util.getTime;
425
425
  function Twitch() {
426
426
  this.provider = 'twitch';
@@ -526,7 +526,7 @@
526
526
  } else {
527
527
  return undefined;
528
528
  }
529
- url += combineParams$n(params);
529
+ url += combineParams$p(params);
530
530
  return url;
531
531
  };
532
532
  Twitch.prototype.createEmbedUrl = function (vi, params) {
@@ -545,12 +545,12 @@
545
545
  } else {
546
546
  return undefined;
547
547
  }
548
- url += combineParams$n(params);
548
+ url += combineParams$p(params);
549
549
  return url;
550
550
  };
551
551
  base.bind(new Twitch());
552
552
 
553
- var combineParams$m = util.combineParams,
553
+ var combineParams$o = util.combineParams,
554
554
  getTime$3 = util.getTime;
555
555
  function Vimeo() {
556
556
  this.provider = 'vimeo';
@@ -610,7 +610,7 @@
610
610
  }
611
611
  delete params.hash;
612
612
  }
613
- url += combineParams$m(params);
613
+ url += combineParams$o(params);
614
614
  if (startTime) {
615
615
  url += '#t=' + startTime;
616
616
  }
@@ -624,7 +624,7 @@
624
624
  };
625
625
  base.bind(new Vimeo());
626
626
 
627
- var combineParams$l = util.combineParams,
627
+ var combineParams$n = util.combineParams,
628
628
  getTime$2 = util.getTime;
629
629
  function Wistia() {
630
630
  this.provider = 'wistia';
@@ -689,7 +689,7 @@
689
689
  params.wtime = params.start;
690
690
  delete params.start;
691
691
  }
692
- url += combineParams$l(params);
692
+ url += combineParams$n(params);
693
693
  return url;
694
694
  };
695
695
  Wistia.prototype.createLongUrl = function (vi, params) {
@@ -714,7 +714,7 @@
714
714
  };
715
715
  base.bind(new Wistia());
716
716
 
717
- var combineParams$k = util.combineParams;
717
+ var combineParams$m = util.combineParams;
718
718
  function Youku() {
719
719
  this.provider = 'youku';
720
720
  this.defaultFormat = 'long';
@@ -755,7 +755,7 @@
755
755
  return undefined;
756
756
  }
757
757
  var url = baseUrl + vi.id;
758
- url += combineParams$k(params);
758
+ url += combineParams$m(params);
759
759
  return url;
760
760
  };
761
761
  Youku.prototype.createEmbedUrl = function (vi, params) {
@@ -772,12 +772,12 @@
772
772
  return undefined;
773
773
  }
774
774
  var url = 'http://player.youku.com/player.php/sid/' + vi.id + '/v.swf';
775
- url += combineParams$k(params);
775
+ url += combineParams$m(params);
776
776
  return url;
777
777
  };
778
778
  base.bind(new Youku());
779
779
 
780
- var combineParams$j = util.combineParams,
780
+ var combineParams$l = util.combineParams,
781
781
  getTime$1 = util.getTime;
782
782
  function YouTube() {
783
783
  this.provider = 'youtube';
@@ -915,7 +915,7 @@
915
915
  if (vi.list) {
916
916
  params.list = vi.list;
917
917
  }
918
- url += combineParams$j(params);
918
+ url += combineParams$l(params);
919
919
  if (vi.mediaType !== this.mediaTypes.PLAYLIST && startTime) {
920
920
  url += '#t=' + startTime;
921
921
  }
@@ -937,7 +937,7 @@
937
937
  if (vi.list) {
938
938
  params.list = vi.list;
939
939
  }
940
- url += combineParams$j(params);
940
+ url += combineParams$l(params);
941
941
  return url;
942
942
  };
943
943
  YouTube.prototype.createImageUrl = function (baseUrl, vi, params) {
@@ -956,7 +956,7 @@
956
956
  };
957
957
  base.bind(new YouTube());
958
958
 
959
- var combineParams$i = util.combineParams,
959
+ var combineParams$k = util.combineParams,
960
960
  getTime = util.getTime;
961
961
  function SoundCloud() {
962
962
  this.provider = 'soundcloud';
@@ -1040,7 +1040,7 @@
1040
1040
  } else {
1041
1041
  return undefined;
1042
1042
  }
1043
- url += combineParams$i(params);
1043
+ url += combineParams$k(params);
1044
1044
  if (startTime) {
1045
1045
  url += '#t=' + startTime;
1046
1046
  }
@@ -1056,12 +1056,12 @@
1056
1056
  } else {
1057
1057
  return undefined;
1058
1058
  }
1059
- url += combineParams$i(params);
1059
+ url += combineParams$k(params);
1060
1060
  return url;
1061
1061
  };
1062
1062
  base.bind(new SoundCloud());
1063
1063
 
1064
- var combineParams$h = util.combineParams;
1064
+ var combineParams$j = util.combineParams;
1065
1065
  function TeacherTube() {
1066
1066
  this.provider = 'teachertube';
1067
1067
  this.alternatives = [];
@@ -1129,7 +1129,7 @@
1129
1129
  url += vi.mediaType + '/';
1130
1130
  }
1131
1131
  url += vi.id;
1132
- url += combineParams$h(params);
1132
+ url += combineParams$j(params);
1133
1133
  return url;
1134
1134
  };
1135
1135
  TeacherTube.prototype.createEmbedUrl = function (vi, params) {
@@ -1142,12 +1142,12 @@
1142
1142
  } else {
1143
1143
  return undefined;
1144
1144
  }
1145
- url += combineParams$h(params);
1145
+ url += combineParams$j(params);
1146
1146
  return url;
1147
1147
  };
1148
1148
  base.bind(new TeacherTube());
1149
1149
 
1150
- var combineParams$g = util.combineParams;
1150
+ var combineParams$i = util.combineParams;
1151
1151
  function TikTok() {
1152
1152
  this.provider = 'tiktok';
1153
1153
  this.defaultFormat = 'long';
@@ -1178,12 +1178,12 @@
1178
1178
  } else {
1179
1179
  return undefined;
1180
1180
  }
1181
- url += combineParams$g(params);
1181
+ url += combineParams$i(params);
1182
1182
  return url;
1183
1183
  };
1184
1184
  base.bind(new TikTok());
1185
1185
 
1186
- var combineParams$f = util.combineParams;
1186
+ var combineParams$h = util.combineParams;
1187
1187
  function Voomly() {
1188
1188
  this.provider = 'voomly';
1189
1189
  this.defaultFormat = 'long';
@@ -1211,7 +1211,7 @@
1211
1211
  return undefined;
1212
1212
  }
1213
1213
  var url = baseUrl + vi.id;
1214
- url += combineParams$f(params);
1214
+ url += combineParams$h(params);
1215
1215
  return url;
1216
1216
  };
1217
1217
  Voomly.prototype.createLongUrl = function (vi, params) {
@@ -1219,7 +1219,7 @@
1219
1219
  };
1220
1220
  base.bind(new Voomly());
1221
1221
 
1222
- var combineParams$e = util.combineParams;
1222
+ var combineParams$g = util.combineParams;
1223
1223
  function Spotlightr() {
1224
1224
  this.provider = 'spotlightr';
1225
1225
  this.defaultFormat = 'long';
@@ -1248,7 +1248,7 @@
1248
1248
  return undefined;
1249
1249
  }
1250
1250
  var url = baseUrl + vi.id;
1251
- url += combineParams$e(params);
1251
+ url += combineParams$g(params);
1252
1252
  return url;
1253
1253
  };
1254
1254
  Spotlightr.prototype.createLongUrl = function (vi, params) {
@@ -1256,7 +1256,7 @@
1256
1256
  };
1257
1257
  base.bind(new Spotlightr());
1258
1258
 
1259
- var combineParams$d = util.combineParams;
1259
+ var combineParams$f = util.combineParams;
1260
1260
  function Bunny() {
1261
1261
  this.provider = 'bunny';
1262
1262
  this.alternatives = ['bunnycdn', 'mediadelivery'];
@@ -1286,7 +1286,7 @@
1286
1286
  return undefined;
1287
1287
  }
1288
1288
  var url = baseUrl + vi.library + '/' + vi.id;
1289
- url += combineParams$d(params);
1289
+ url += combineParams$f(params);
1290
1290
  return url;
1291
1291
  };
1292
1292
  Bunny.prototype.createLongUrl = function (vi, params) {
@@ -1294,7 +1294,7 @@
1294
1294
  };
1295
1295
  base.bind(new Bunny());
1296
1296
 
1297
- var combineParams$c = util.combineParams;
1297
+ var combineParams$e = util.combineParams;
1298
1298
  function Canva() {
1299
1299
  this.provider = 'canva';
1300
1300
  this.defaultFormat = 'long';
@@ -1322,7 +1322,7 @@
1322
1322
  return undefined;
1323
1323
  }
1324
1324
  var url = baseUrl + vi.id + '/watch';
1325
- url += combineParams$c(params);
1325
+ url += combineParams$e(params);
1326
1326
  return url;
1327
1327
  };
1328
1328
  Canva.prototype.createLongUrl = function (vi, params) {
@@ -1330,7 +1330,58 @@
1330
1330
  };
1331
1331
  base.bind(new Canva());
1332
1332
 
1333
- var combineParams$b = util.combineParams;
1333
+ var combineParams$d = util.combineParams;
1334
+ function CloudflareStream() {
1335
+ this.provider = 'cloudflarestream';
1336
+ this.defaultFormat = 'long';
1337
+ this.formats = {
1338
+ "long": this.createLongUrl,
1339
+ embed: this.createEmbedUrl
1340
+ };
1341
+ this.mediaTypes = {
1342
+ VIDEO: 'video'
1343
+ };
1344
+ }
1345
+ CloudflareStream.prototype.parseUrl = function (url) {
1346
+ // Match *.cloudflarestream.com/{32-char-hex-id} or .../id/iframe
1347
+ var match = url.match(/(?:https?:\/\/)?([^/]+\.cloudflarestream\.com)\/([a-f0-9]{32})(?:\/iframe)?/i);
1348
+ if (!match) {
1349
+ return undefined;
1350
+ }
1351
+ return {
1352
+ host: match[1],
1353
+ id: match[2]
1354
+ };
1355
+ };
1356
+ CloudflareStream.prototype.parse = function (url, params) {
1357
+ var parsed = this.parseUrl(url);
1358
+ if (!parsed) {
1359
+ return undefined;
1360
+ }
1361
+ return {
1362
+ mediaType: this.mediaTypes.VIDEO,
1363
+ params: params,
1364
+ id: parsed.id,
1365
+ host: parsed.host
1366
+ };
1367
+ };
1368
+ CloudflareStream.prototype.createUrl = function (pathSuffix, vi, params) {
1369
+ if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO || !vi.host) {
1370
+ return undefined;
1371
+ }
1372
+ var url = 'https://' + vi.host + '/' + vi.id + pathSuffix;
1373
+ url += combineParams$d(params);
1374
+ return url;
1375
+ };
1376
+ CloudflareStream.prototype.createLongUrl = function (vi, params) {
1377
+ return this.createUrl('', vi, params);
1378
+ };
1379
+ CloudflareStream.prototype.createEmbedUrl = function (vi, params) {
1380
+ return this.createUrl('/iframe', vi, params);
1381
+ };
1382
+ base.bind(new CloudflareStream());
1383
+
1384
+ var combineParams$c = util.combineParams;
1334
1385
  function Descript() {
1335
1386
  this.provider = 'descript';
1336
1387
  this.defaultFormat = 'long';
@@ -1358,7 +1409,7 @@
1358
1409
  return undefined;
1359
1410
  }
1360
1411
  var url = baseUrl + vi.id;
1361
- url += combineParams$b(params);
1412
+ url += combineParams$c(params);
1362
1413
  return url;
1363
1414
  };
1364
1415
  Descript.prototype.createLongUrl = function (vi, params) {
@@ -1366,7 +1417,7 @@
1366
1417
  };
1367
1418
  base.bind(new Descript());
1368
1419
 
1369
- var combineParams$a = util.combineParams;
1420
+ var combineParams$b = util.combineParams;
1370
1421
  function Ted() {
1371
1422
  this.provider = 'ted';
1372
1423
  this.formats = {
@@ -1422,7 +1473,7 @@
1422
1473
  } else {
1423
1474
  return undefined;
1424
1475
  }
1425
- url += combineParams$a(params);
1476
+ url += combineParams$b(params);
1426
1477
  return url;
1427
1478
  };
1428
1479
  Ted.prototype.createEmbedUrl = function (vi, params) {
@@ -1434,12 +1485,12 @@
1434
1485
  } else {
1435
1486
  return undefined;
1436
1487
  }
1437
- url += combineParams$a(params);
1488
+ url += combineParams$b(params);
1438
1489
  return url;
1439
1490
  };
1440
1491
  base.bind(new Ted());
1441
1492
 
1442
- var combineParams$9 = util.combineParams;
1493
+ var combineParams$a = util.combineParams;
1443
1494
  function Facebook() {
1444
1495
  this.provider = 'facebook';
1445
1496
  this.alternatives = [];
@@ -1482,7 +1533,7 @@
1482
1533
  params = {
1483
1534
  v: vi.id
1484
1535
  };
1485
- url += combineParams$9(params);
1536
+ url += combineParams$a(params);
1486
1537
  return url;
1487
1538
  };
1488
1539
  Facebook.prototype.createLongUrl = function (vi, params) {
@@ -1497,12 +1548,12 @@
1497
1548
  } else {
1498
1549
  return undefined;
1499
1550
  }
1500
- url += combineParams$9(params);
1551
+ url += combineParams$a(params);
1501
1552
  return url;
1502
1553
  };
1503
1554
  base.bind(new Facebook());
1504
1555
 
1505
- var combineParams$8 = util.combineParams;
1556
+ var combineParams$9 = util.combineParams;
1506
1557
  function Bigcommand() {
1507
1558
  this.provider = 'bigcommand';
1508
1559
  this.defaultFormat = 'long';
@@ -1530,7 +1581,7 @@
1530
1581
  return undefined;
1531
1582
  }
1532
1583
  var url = baseUrl + vi.id;
1533
- url += combineParams$8(params);
1584
+ url += combineParams$9(params);
1534
1585
  return url;
1535
1586
  };
1536
1587
  Bigcommand.prototype.createLongUrl = function (vi, params) {
@@ -1538,7 +1589,7 @@
1538
1589
  };
1539
1590
  base.bind(new Bigcommand());
1540
1591
 
1541
- var combineParams$7 = util.combineParams;
1592
+ var combineParams$8 = util.combineParams;
1542
1593
  function Brightcove() {
1543
1594
  this.provider = 'brightcove';
1544
1595
  this.defaultFormat = 'long';
@@ -1569,7 +1620,7 @@
1569
1620
  return undefined;
1570
1621
  }
1571
1622
  var url = baseUrl + vi.library + '/' + vi.player + '_' + vi.embed + '/index.html';
1572
- url += combineParams$7(params);
1623
+ url += combineParams$8(params);
1573
1624
  return url;
1574
1625
  };
1575
1626
  Brightcove.prototype.createLongUrl = function (vi, params) {
@@ -1577,7 +1628,7 @@
1577
1628
  };
1578
1629
  base.bind(new Brightcove());
1579
1630
 
1580
- var combineParams$6 = util.combineParams;
1631
+ var combineParams$7 = util.combineParams;
1581
1632
  function GoogleDrive() {
1582
1633
  this.provider = 'google';
1583
1634
  this.defaultFormat = 'long';
@@ -1605,7 +1656,7 @@
1605
1656
  return undefined;
1606
1657
  }
1607
1658
  var url = baseUrl + vi.id + '/preview';
1608
- url += combineParams$6(params);
1659
+ url += combineParams$7(params);
1609
1660
  return url;
1610
1661
  };
1611
1662
  GoogleDrive.prototype.createLongUrl = function (vi, params) {
@@ -1613,7 +1664,7 @@
1613
1664
  };
1614
1665
  base.bind(new GoogleDrive());
1615
1666
 
1616
- var combineParams$5 = util.combineParams;
1667
+ var combineParams$6 = util.combineParams;
1617
1668
  function Groove() {
1618
1669
  this.provider = 'groove';
1619
1670
  this.defaultFormat = 'long';
@@ -1642,7 +1693,7 @@
1642
1693
  return undefined;
1643
1694
  }
1644
1695
  var url = baseUrl + vi.library + '/' + vi.id;
1645
- url += combineParams$5(params);
1696
+ url += combineParams$6(params);
1646
1697
  return url;
1647
1698
  };
1648
1699
  Groove.prototype.createLongUrl = function (vi, params) {
@@ -1650,7 +1701,7 @@
1650
1701
  };
1651
1702
  base.bind(new Groove());
1652
1703
 
1653
- var combineParams$4 = util.combineParams;
1704
+ var combineParams$5 = util.combineParams;
1654
1705
  function Gumlet() {
1655
1706
  this.provider = 'gumlet';
1656
1707
  this.defaultFormat = 'long';
@@ -1679,7 +1730,7 @@
1679
1730
  return undefined;
1680
1731
  }
1681
1732
  var url = baseUrl + vi.id;
1682
- url += combineParams$4(params);
1733
+ url += combineParams$5(params);
1683
1734
  return url;
1684
1735
  };
1685
1736
  Gumlet.prototype.createLongUrl = function (vi, params) {
@@ -1690,7 +1741,7 @@
1690
1741
  };
1691
1742
  base.bind(new Gumlet());
1692
1743
 
1693
- var combineParams$3 = util.combineParams;
1744
+ var combineParams$4 = util.combineParams;
1694
1745
  function Streamable() {
1695
1746
  this.provider = 'streamable';
1696
1747
  this.defaultFormat = 'long';
@@ -1719,7 +1770,7 @@
1719
1770
  return undefined;
1720
1771
  }
1721
1772
  var url = baseUrl + vi.id;
1722
- url += combineParams$3(params);
1773
+ url += combineParams$4(params);
1723
1774
  return url;
1724
1775
  };
1725
1776
  Streamable.prototype.createLongUrl = function (vi, params) {
@@ -1727,6 +1778,46 @@
1727
1778
  };
1728
1779
  base.bind(new Streamable());
1729
1780
 
1781
+ var combineParams$3 = util.combineParams;
1782
+ function ScreenPal() {
1783
+ this.provider = 'screenpal';
1784
+ this.defaultFormat = 'long';
1785
+ this.formats = {
1786
+ "long": this.createLongUrl,
1787
+ embed: this.createEmbedUrl
1788
+ };
1789
+ this.mediaTypes = {
1790
+ VIDEO: 'video'
1791
+ };
1792
+ }
1793
+ ScreenPal.prototype.parseUrl = function (url) {
1794
+ var match = url.match(/watch\/([\w-]+)/i);
1795
+ return match ? match[1] : undefined;
1796
+ };
1797
+ ScreenPal.prototype.parse = function (url, params) {
1798
+ var result = {
1799
+ mediaType: this.mediaTypes.VIDEO,
1800
+ params: params,
1801
+ id: this.parseUrl(url)
1802
+ };
1803
+ return result.id ? result : undefined;
1804
+ };
1805
+ ScreenPal.prototype.createUrl = function (baseUrl, vi, params) {
1806
+ if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
1807
+ return undefined;
1808
+ }
1809
+ var url = baseUrl + vi.id;
1810
+ url += combineParams$3(params);
1811
+ return url;
1812
+ };
1813
+ ScreenPal.prototype.createLongUrl = function (vi, params) {
1814
+ return this.createUrl('https://go.screenpal.com/watch/', vi, params);
1815
+ };
1816
+ ScreenPal.prototype.createEmbedUrl = function (vi, params) {
1817
+ return this.createUrl('https://go.screenpal.com/watch/embed/', vi, params);
1818
+ };
1819
+ base.bind(new ScreenPal());
1820
+
1730
1821
  var combineParams$2 = util.combineParams;
1731
1822
  function Searchie() {
1732
1823
  this.provider = 'searchie';
@@ -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,o=Object.keys(e);if(0===o.length)return"";for(o.sort(),i||(r+="?"+o[0]+"="+e[o[0]],a+=1);a<o.length;a+=1)r+="&"+o[a]+"="+e[o[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 o=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 s=new o;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"},s.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)}},s.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)},s.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)},s.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)},s.bind(new f);var v=i.combineParams;function T(){this.provider="tella",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}T.prototype.parseUrl=function(e){var t=e.match(/(?:video)\/([\w-]+)/i);return t?t[1]:void 0},T.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},T.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=v(i)}},T.prototype.createLongUrl=function(e,t){return this.createUrl("https://www.tella.tv/video/",e,t)},T.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://www.tella.tv/video/",e,t)},s.bind(new T);var U=i.combineParams,b=i.getTime;function g(){this.provider="twitch",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",STREAM:"stream",CLIP:"clip"}}g.prototype.seperateId=function(e){return{pre:e[0],id:e.substr(1)}},g.prototype.parseChannel=function(e,t){var i=t.channel||t.utm_content||e.channel;return delete t.utm_content,delete t.channel,i},g.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},g.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},g.prototype.parseParameters=function(e){return e.t&&(e.start=b(e.t),delete e.t),e},g.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},g.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+=U(t)},g.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+=U(t)},s.bind(new g);var E=i.combineParams,I=i.getTime;function w(){this.provider="vimeo",this.alternatives=["vimeopro"],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}w.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},w.prototype.parseHash=function(e){var t=e.match(/\/\d+\/(\w+)$/i);return t?t[1]:void 0},w.prototype.parseParameters=function(e){return e.t&&(e.start=I(e.t),delete e.t),e.h&&(e.hash=e.h,delete e.h),e},w.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},w.prototype.createUrl=function(e,t,i,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var a=e+t.id,o=i.start;return delete i.start,i.hash&&("embed"===r?i.h=i.hash:"long"===r&&(a+="/"+i.hash),delete i.hash),a+=E(i),o&&(a+="#t="+o),a}},w.prototype.createLongUrl=function(e,t){return this.createUrl("https://vimeo.com/",e,t,"long")},w.prototype.createEmbedUrl=function(e,t){return this.createUrl("//player.vimeo.com/video/",e,t,"embed")},s.bind(new w);var D=i.combineParams,O=i.getTime;function L(){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"}}L.prototype.parseUrl=function(e){var t=e.match(/(?:(?:medias|iframe)\/|wvideo=)([\w-]+)/);return t?t[1]:void 0},L.prototype.parseChannel=function(e){var t=e.match(/(?:(?:https?:)?\/\/)?([^.]*)\.wistia\./),i=t?t[1]:void 0;if("fast"!==i&&"content"!==i)return i},L.prototype.parseParameters=function(e,t){return e.wtime&&(e.start=O(e.wtime),delete e.wtime),e.wvideo===t.id&&delete e.wvideo,e},L.prototype.parseMediaType=function(e){return e.id&&e.channel?this.mediaTypes.VIDEO:e.id?(delete e.channel,this.mediaTypes.EMBEDVIDEO):void 0},L.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},L.prototype.createUrl=function(e,t,i){return t.start&&(t.wtime=t.start,delete t.start),i+=D(t)},L.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)}},L.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)}},L.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"},s.bind(new L);var V=i.combineParams;function P(){this.provider="youku",this.defaultFormat="long",this.formats={embed:this.createEmbedUrl,long:this.createLongUrl,flash:this.createFlashUrl,static:this.createStaticUrl},this.mediaTypes={VIDEO:"video"}}P.prototype.parseUrl=function(e){var t=e.match(/(?:(?:embed|sid)\/|v_show\/id_|VideoIDS=)([a-zA-Z0-9]+)/);return t?t[1]:void 0},P.prototype.parseParameters=function(e){return e.VideoIDS&&delete e.VideoIDS,e},P.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,id:this.parseUrl(e),params:this.parseParameters(t)};if(i.id)return i},P.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=V(i)}},P.prototype.createEmbedUrl=function(e,t){return this.createUrl("http://player.youku.com/embed/",e,t)},P.prototype.createLongUrl=function(e,t){return this.createUrl("http://v.youku.com/v_show/id_",e,t)},P.prototype.createStaticUrl=function(e,t){return this.createUrl("http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=",e,t)},P.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+=V(t)}},s.bind(new P);var A=i.combineParams,S=i.getTime;function F(){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"}}F.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},F.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},F.prototype.parseParameters=function(e,t){return(e.start||e.t)&&(e.start=S(e.start||e.t),delete e.t),e.v===t.id&&delete e.v,e.list===t.id&&delete e.list,e},F.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},F.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)},F.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}},F.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+=A(t),e.mediaType!==this.mediaTypes.PLAYLIST&&r&&(i+="#t="+r),i},F.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+=A(t)},F.prototype.createImageUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+"/"+(i.imageQuality||this.defaultImageQuality)+".jpg"},F.prototype.createShortImageUrl=function(e,t){return this.createImageUrl("https://i.ytimg.com/vi/",e,t)},F.prototype.createLongImageUrl=function(e,t){return this.createImageUrl("https://img.youtube.com/vi/",e,t)},s.bind(new F);var C=i.combineParams,M=i.getTime;function k(){this.provider="soundcloud",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={TRACK:"track",PLAYLIST:"playlist",APITRACK:"apitrack",APIPLAYLIST:"apiplaylist"}}k.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},k.prototype.parseParameters=function(e){return e.t&&(e.start=M(e.t),delete e.t),e},k.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},k.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},k.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+=C(t),r&&(i+="#t="+r),i},k.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+=C(t)},s.bind(new k);var R=i.combineParams;function N(){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"}}N.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},N.prototype.parsePlaylist=function(e){if(e["playlist-id"]){var t=e["playlist-id"];return delete e["playlist-id"],t}},N.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}},N.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+=R(t)}},N.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+=R(t)}},s.bind(new N);var Y=i.combineParams;function H(){this.provider="tiktok",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}H.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},H.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+=Y(t)},s.bind(new H);var j=i.combineParams;function _(){this.provider="voomly",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}_.prototype.parseUrl=function(e){var t=e.match(/(?:v|embed)\/([\w-]+)/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://share.voomly.com/v/",e,t)},s.bind(new _);var Q=i.combineParams;function z(){this.provider="spotlightr",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}z.prototype.parseUrl=function(e){var t=e.match(/(?:watch|embed)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},z.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},z.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=Q(i)}},z.prototype.createLongUrl=function(e,t){return this.createUrl("https://videos.spotlightr.com/watch/",e,t)},s.bind(new z);var Z=i.combineParams;function K(){this.provider="bunny",this.alternatives=["bunnycdn","mediadelivery"],this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}K.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}},K.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=Z(i)}},K.prototype.createLongUrl=function(e,t){return this.createUrl("https://iframe.mediadelivery.net/embed/",e,t)},s.bind(new K);var x=i.combineParams;function B(){this.provider="canva",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}B.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}},B.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id+"/watch";return r+=x(i)}},B.prototype.createLongUrl=function(e,t){return this.createUrl("https://www.canva.com/design/",e,t)},s.bind(new B);var $=i.combineParams;function q(){this.provider="descript",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}q.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}},q.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=$(i)}},q.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.descript.com/embed/",e,t)},s.bind(new q);var G=i.combineParams;function J(){this.provider="ted",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",PLAYLIST:"playlist"}}J.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},J.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},J.prototype.parse=function(e,t){var i={params:t};if(i=this.parseUrl(e,i),(i=this.parseMediaType(i)).id)return i},J.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+=G(t)},J.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+=G(t)},s.bind(new J);var W=i.combineParams;function X(){this.provider="facebook",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,watch:this.createWatchUrl},this.mediaTypes={VIDEO:"video"}}X.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},X.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+=W(t)},X.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+=W(t)},s.bind(new X);var ee=i.combineParams;function te(){this.provider="bigcommand",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}te.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}},te.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=ee(i)}},te.prototype.createLongUrl=function(e,t){return this.createUrl("https://adilo.bigcommand.com/watch/",e,t)},s.bind(new te);var ie=i.combineParams;function re(){this.provider="brightcove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}re.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}},re.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+=ie(i)}},re.prototype.createLongUrl=function(e,t){return this.createUrl("https://players.brightcove.net/",e,t)},s.bind(new re);var ae=i.combineParams;function oe(){this.provider="google",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}oe.prototype.parseUrl=function(e){var t=e.match(/\/d\/([\w-]+)/);return t?t[1]:void 0},oe.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},oe.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id+"/preview";return r+=ae(i)}},oe.prototype.createLongUrl=function(e,t){return this.createUrl("https://drive.google.com/file/d/",e,t)},s.bind(new oe);var se=i.combineParams;function ne(){this.provider="groove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ne.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}},ne.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=se(i)}},ne.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.groove.cm/groovevideo/videopage/",e,t)},s.bind(new ne);var pe=i.combineParams;function de(){this.provider="gumlet",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}de.prototype.parseUrl=function(e){var t=e.match(/(?:watch|embed)\/([\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://gumlet.tv/watch/",e,t)},de.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://play.gumlet.io/embed/",e,t)},s.bind(new de);var me=i.combineParams;function le(){this.provider="streamable",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}le.prototype.parseUrl=function(e){var t=e.match(/com\/(?:e\/|streamable\/)?([\w-]+)/);return t?t[1]:void 0},le.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},le.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=me(i)}},le.prototype.createLongUrl=function(e,t){return this.createUrl("https://streamable.com/",e,t)},s.bind(new le);var ce=i.combineParams;function he(){this.provider="searchie",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}he.prototype.parseUrl=function(e){var t=e.match(/(?:watch)\/([\w-]+)/i);return t?t[1]:void 0},he.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},he.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=ce(i)}},he.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.searchie.io/watch/",e,t)},s.bind(new he);var ue=i.combineParams;function ye(){this.provider="tevello",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ye.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}},ye.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.library+"/"+t.id;return r+=ue(i)}},ye.prototype.createLongUrl=function(e,t){return this.createUrl("https://video.tevello.com/",e,t)},s.bind(new ye);var fe=i.combineParams;function ve(){this.provider="veed",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}return ve.prototype.parseUrl=function(e){var t=e.match(/view\/([\w-]+)/i);return t?t[1]:void 0},ve.prototype.parse=function(e,t){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return i.id?i:void 0},ve.prototype.createUrl=function(e,t,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var r=e+t.id;return r+=fe(i)}},ve.prototype.createLongUrl=function(e,t){return this.createUrl("https://veed.io/view/",e,t)},s.bind(new ve),e(s)}));
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 r={};r.getQueryParams=function(e){if("string"!=typeof e)return{};var t,r={},i=(e=e.split("+").join(" ")).match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);if(null===i)return{};t=i[0].substr(1).split(/[&#=]/);for(var a=0;a<t.length;a+=2)r[decodeURIComponent(t[a])]=decodeURIComponent(t[a+1]||"");return r},r.combineParams=function(e,r){if("object"!==t(e))return"";var i="",a=0,o=Object.keys(e);if(0===o.length)return"";for(o.sort(),r||(i+="?"+o[0]+"="+e[o[0]],a+=1);a<o.length;a+=1)i+="&"+o[a]+"="+e[o[a]];return i},r.getTime=function(e){return void 0===e?0:e.match(/^(\d+[smhdw]?)+$/)?function(e){var t,r=0,i={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)r+=parseInt(t[a],10)*i[t[a+1]||"s"];return r}(e):e.match(/^(\d+:?)+$/)?function(e){for(var t=0,r=[1,60,3600,86400,604800],i=e.split(":"),a=0;a<i.length;a++)t+=parseInt(i[a],10)*r[i.length-a-1];return t}(e):0};var i=r.getQueryParams;function a(){for(var e=0,t=["parseProvider","parse","bind","create"];e<t.length;e++){var r=t[e];this[r]=this[r].bind(this)}this.plugins={}}var o=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,r=this.parseProvider(e),a=this.plugins[r];if(r&&a&&a.parse)return(t=a.parse.call(a,e,i(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 r=e.videoInfo,i=e.params,a=this.plugins[r.provider];return i="internal"===i?r.params:i||{},a&&(e.format=e.format||a.defaultFormat,a.formats.hasOwnProperty(e.format))?a.formats[e.format].apply(a,[r,Object.assign({},i)]):void 0}};var s=new o;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"},s.bind(new n);var p=r.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 r={mediaType:this.mediaTypes.VIDEO,id:t.vid};if(r.params=this.parseParameters(t),r.id)return r},d.prototype.createEmbedUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var r="http://player.canalplus.fr/embed/";return t.vid=e.id,r+=p(t)}},s.bind(new d);var m=r.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 r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};if(r.id)return r},l.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=m(r)}},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)},s.bind(new l);var c=r.combineParams,h=r.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 r={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(t),id:this.parseUrl(e)};return r.id?r:void 0},u.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+c(r)},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)},s.bind(new u);var y=r.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 r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},f.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=y(r)}},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)},s.bind(new f);var v=r.combineParams;function T(){this.provider="tella",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}T.prototype.parseUrl=function(e){var t=e.match(/(?:video)\/([\w-]+)/i);return t?t[1]:void 0},T.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},T.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=v(r)}},T.prototype.createLongUrl=function(e,t){return this.createUrl("https://www.tella.tv/video/",e,t)},T.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://www.tella.tv/video/",e,t)},s.bind(new T);var U=r.combineParams,b=r.getTime;function g(){this.provider="twitch",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",STREAM:"stream",CLIP:"clip"}}g.prototype.seperateId=function(e){return{pre:e[0],id:e.substr(1)}},g.prototype.parseChannel=function(e,t){var r=t.channel||t.utm_content||e.channel;return delete t.utm_content,delete t.channel,r},g.prototype.parseUrl=function(e,t,r){var i;return(i=e.match(/(clips\.)?twitch\.tv\/(?:(?:videos\/(\d+))|(\w+(?:-[\w\d-]+)?)(?:\/clip\/(\w+))?)/i))&&i[2]?t.id="v"+i[2]:r.video?(t.id=r.video,delete r.video):r.clip?(t.id=r.clip,t.isClip=!0,delete r.clip):i&&i[1]&&i[3]?(t.id=i[3],t.isClip=!0):i&&i[3]&&i[4]?(t.channel=i[3],t.id=i[4],t.isClip=!0):i&&i[3]&&(t.channel=i[3]),t},g.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},g.prototype.parseParameters=function(e){return e.t&&(e.start=b(e.t),delete e.t),e},g.prototype.parse=function(e,t){var r=this,i={};return(i=r.parseUrl(e,i,t)).channel=r.parseChannel(i,t),i.mediaType=r.parseMediaType(i),i.params=r.parseParameters(t),i.channel||i.id?i:void 0},g.prototype.createLongUrl=function(e,t){var r="";if(e.mediaType===this.mediaTypes.STREAM&&e.channel)r="https://twitch.tv/"+e.channel;else if(e.mediaType===this.mediaTypes.VIDEO&&e.id){r="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;r=e.channel?"https://www.twitch.tv/"+e.channel+"/clip/"+e.id:"https://clips.twitch.tv/"+e.id}return r+=U(t)},g.prototype.createEmbedUrl=function(e,t){var r="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;r="https://clips.twitch.tv/embed",t.clip=e.id}return r+=U(t)},s.bind(new g);var E=r.combineParams,I=r.getTime;function w(){this.provider="vimeo",this.alternatives=["vimeopro"],this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}w.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},w.prototype.parseHash=function(e){var t=e.match(/\/\d+\/(\w+)$/i);return t?t[1]:void 0},w.prototype.parseParameters=function(e){return e.t&&(e.start=I(e.t),delete e.t),e.h&&(e.hash=e.h,delete e.h),e},w.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:this.parseParameters(t),id:this.parseUrl(e)},i=this.parseHash(e,t);return i&&(r.params.hash=i),r.id?r:void 0},w.prototype.createUrl=function(e,t,r,i){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var a=e+t.id,o=r.start;return delete r.start,r.hash&&("embed"===i?r.h=r.hash:"long"===i&&(a+="/"+r.hash),delete r.hash),a+=E(r),o&&(a+="#t="+o),a}},w.prototype.createLongUrl=function(e,t){return this.createUrl("https://vimeo.com/",e,t,"long")},w.prototype.createEmbedUrl=function(e,t){return this.createUrl("//player.vimeo.com/video/",e,t,"embed")},s.bind(new w);var D=r.combineParams,O=r.getTime;function L(){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"}}L.prototype.parseUrl=function(e){var t=e.match(/(?:(?:medias|iframe)\/|wvideo=)([\w-]+)/);return t?t[1]:void 0},L.prototype.parseChannel=function(e){var t=e.match(/(?:(?:https?:)?\/\/)?([^.]*)\.wistia\./),r=t?t[1]:void 0;if("fast"!==r&&"content"!==r)return r},L.prototype.parseParameters=function(e,t){return e.wtime&&(e.start=O(e.wtime),delete e.wtime),e.wvideo===t.id&&delete e.wvideo,e},L.prototype.parseMediaType=function(e){return e.id&&e.channel?this.mediaTypes.VIDEO:e.id?(delete e.channel,this.mediaTypes.EMBEDVIDEO):void 0},L.prototype.parse=function(e,t){var r={id:this.parseUrl(e),channel:this.parseChannel(e)};if(r.params=this.parseParameters(t,r),r.mediaType=this.parseMediaType(r),r.id)return r},L.prototype.createUrl=function(e,t,r){return t.start&&(t.wtime=t.start,delete t.start),r+=D(t)},L.prototype.createLongUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var r="https://"+e.channel+".wistia.com/medias/"+e.id;return this.createUrl(e,t,r)}},L.prototype.createEmbedUrl=function(e,t){if(e.id&&(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.EMBEDVIDEO)){var r="https://fast.wistia.com/embed/iframe/"+e.id;return this.createUrl(e,t,r)}},L.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"},s.bind(new L);var V=r.combineParams;function P(){this.provider="youku",this.defaultFormat="long",this.formats={embed:this.createEmbedUrl,long:this.createLongUrl,flash:this.createFlashUrl,static:this.createStaticUrl},this.mediaTypes={VIDEO:"video"}}P.prototype.parseUrl=function(e){var t=e.match(/(?:(?:embed|sid)\/|v_show\/id_|VideoIDS=)([a-zA-Z0-9]+)/);return t?t[1]:void 0},P.prototype.parseParameters=function(e){return e.VideoIDS&&delete e.VideoIDS,e},P.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,id:this.parseUrl(e),params:this.parseParameters(t)};if(r.id)return r},P.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=V(r)}},P.prototype.createEmbedUrl=function(e,t){return this.createUrl("http://player.youku.com/embed/",e,t)},P.prototype.createLongUrl=function(e,t){return this.createUrl("http://v.youku.com/v_show/id_",e,t)},P.prototype.createStaticUrl=function(e,t){return this.createUrl("http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=",e,t)},P.prototype.createFlashUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var r="http://player.youku.com/player.php/sid/"+e.id+"/v.swf";return r+=V(t)}},s.bind(new P);var A=r.combineParams,S=r.getTime;function F(){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"}}F.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},F.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},F.prototype.parseParameters=function(e,t){return(e.start||e.t)&&(e.start=S(e.start||e.t),delete e.t),e.v===t.id&&delete e.v,e.list===t.id&&delete e.list,e},F.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},F.prototype.parse=function(e,t){var r=this.parseChannelUrl(e);if(r)return r;var i={params:t,id:this.parseVideoUrl(e)};return i.params=this.parseParameters(t,i),i=this.parseMediaType(i)},F.prototype.createShortUrl=function(e,t){if(e.id&&e.mediaType===this.mediaTypes.VIDEO){var r="https://youtu.be/"+e.id;return t.start&&(r+="#t="+t.start),r}},F.prototype.createLongUrl=function(e,t){var r="",i=t.start;if(delete t.start,e.mediaType===this.mediaTypes.CHANNEL)if(e.id)r+="https://www.youtube.com/channel/"+e.id;else{if(!e.name)return;r+="https://www.youtube.com/c/"+e.name}else if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list)t.feature="share",r+="https://www.youtube.com/playlist";else if(e.mediaType===this.mediaTypes.VIDEO&&e.id)t.v=e.id,r+="https://www.youtube.com/watch";else{if(e.mediaType!==this.mediaTypes.SHARE||!e.id)return;t.ci=e.id,r+="https://www.youtube.com/shared"}return e.list&&(t.list=e.list),r+=A(t),e.mediaType!==this.mediaTypes.PLAYLIST&&i&&(r+="#t="+i),r},F.prototype.createEmbedUrl=function(e,t){var r="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;r+="/"+e.id,"1"===t.loop&&(t.playlist=e.id)}return e.list&&(t.list=e.list),r+=A(t)},F.prototype.createImageUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO)return e+t.id+"/"+(r.imageQuality||this.defaultImageQuality)+".jpg"},F.prototype.createShortImageUrl=function(e,t){return this.createImageUrl("https://i.ytimg.com/vi/",e,t)},F.prototype.createLongImageUrl=function(e,t){return this.createImageUrl("https://img.youtube.com/vi/",e,t)},s.bind(new F);var C=r.combineParams,M=r.getTime;function k(){this.provider="soundcloud",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={TRACK:"track",PLAYLIST:"playlist",APITRACK:"apitrack",APIPLAYLIST:"apiplaylist"}}k.prototype.parseUrl=function(e,t){var r=e.match(/(?:m\.)?soundcloud\.com\/(?:([\w-]+)\/(sets\/)?)([\w-]+)/i);return r?(t.channel=r[1],"playlists"===r[1]||r[2]?t.list=r[3]:t.id=r[3],t):t},k.prototype.parseParameters=function(e){return e.t&&(e.start=M(e.t),delete e.t),e},k.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},k.prototype.parse=function(e,t){var r={};if((r=this.parseUrl(e,r)).params=this.parseParameters(t),(r=this.parseMediaType(r)).id||r.list)return r},k.prototype.createLongUrl=function(e,t){var r="",i=t.start;if(delete t.start,e.mediaType===this.mediaTypes.TRACK&&e.id&&e.channel)r="https://soundcloud.com/"+e.channel+"/"+e.id;else if(e.mediaType===this.mediaTypes.PLAYLIST&&e.list&&e.channel)r="https://soundcloud.com/"+e.channel+"/sets/"+e.list;else if(e.mediaType===this.mediaTypes.APITRACK&&e.id)r="https://api.soundcloud.com/tracks/"+e.id;else{if(e.mediaType!==this.mediaTypes.APIPLAYLIST||!e.list)return;r="https://api.soundcloud.com/playlists/"+e.list}return r+=C(t),i&&(r+="#t="+i),r},k.prototype.createEmbedUrl=function(e,t){var r="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 r+=C(t)},s.bind(new k);var R=r.combineParams;function N(){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"}}N.prototype.parse=function(e,t){var r={};r.list=this.parsePlaylist(t),r.params=t;var i=e.match(/\/(audio|video|document|user\/channel|collection|group)\/(?:[\w-]+-)?(\w+)/);if(i)return r.mediaType=this.parseMediaType(i[1]),r.id=i[2],r},N.prototype.parsePlaylist=function(e){if(e["playlist-id"]){var t=e["playlist-id"];return delete e["playlist-id"],t}},N.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}},N.prototype.createLongUrl=function(e,t){if(e.id){var r="https://www.teachertube.com/";return e.list&&(t["playlist-id"]=e.list),e.mediaType===this.mediaTypes.CHANNEL?r+="user/channel/":r+=e.mediaType+"/",r+=e.id,r+=R(t)}},N.prototype.createEmbedUrl=function(e,t){if(e.id){var r="https://www.teachertube.com/embed/";if(e.mediaType===this.mediaTypes.VIDEO||e.mediaType===this.mediaTypes.AUDIO)return r+=e.mediaType+"/"+e.id,r+=R(t)}},s.bind(new N);var Y=r.combineParams;function H(){this.provider="tiktok",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}H.prototype.parse=function(e,t){var r={params:t,mediaType:this.mediaTypes.VIDEO},i=e.match(/@([^/]+)\/video\/(\d{19})/);if(i)return r.channel=i[1],r.id=i[2],r},H.prototype.createLongUrl=function(e,t){var r="";if(e.mediaType===this.mediaTypes.VIDEO&&e.id&&e.channel)return r+="https://www.tiktok.com/@".concat(e.channel,"/video/").concat(e.id),r+=Y(t)},s.bind(new H);var j=r.combineParams;function _(){this.provider="voomly",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}_.prototype.parseUrl=function(e){var t=e.match(/(?:v|embed)\/([\w-]+)/i);return t?t[1]:void 0},_.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},_.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=j(r)}},_.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.voomly.com/v/",e,t)},s.bind(new _);var Q=r.combineParams;function z(){this.provider="spotlightr",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}z.prototype.parseUrl=function(e){var t=e.match(/(?:watch|embed)\/([a-zA-Z\d]+)/i);return t?t[1]:void 0},z.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},z.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=Q(r)}},z.prototype.createLongUrl=function(e,t){return this.createUrl("https://videos.spotlightr.com/watch/",e,t)},s.bind(new z);var Z=r.combineParams;function K(){this.provider="bunny",this.alternatives=["bunnycdn","mediadelivery"],this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}K.prototype.parse=function(e,t){var r=e.match(/(?:play|embed)\/([a-zA-Z\d]+)\/([\w-]+)/i);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,library:r[1],id:r[2]};return i.id?i:void 0}},K.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.library+"/"+t.id;return i+=Z(r)}},K.prototype.createLongUrl=function(e,t){return this.createUrl("https://iframe.mediadelivery.net/embed/",e,t)},s.bind(new K);var x=r.combineParams;function B(){this.provider="canva",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}B.prototype.parse=function(e,t){var r=e.match(/\/design\/(.+)\/watch/);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:r[1]};return i.id?i:void 0}},B.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id+"/watch";return i+=x(r)}},B.prototype.createLongUrl=function(e,t){return this.createUrl("https://www.canva.com/design/",e,t)},s.bind(new B);var $=r.combineParams;function q(){this.provider="cloudflarestream",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}q.prototype.parseUrl=function(e){var t=e.match(/(?:https?:\/\/)?([^/]+\.cloudflarestream\.com)\/([a-f0-9]{32})(?:\/iframe)?/i);if(t)return{host:t[1],id:t[2]}},q.prototype.parse=function(e,t){var r=this.parseUrl(e);if(r)return{mediaType:this.mediaTypes.VIDEO,params:t,id:r.id,host:r.host}},q.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO&&t.host){var i="https://"+t.host+"/"+t.id+e;return i+=$(r)}},q.prototype.createLongUrl=function(e,t){return this.createUrl("",e,t)},q.prototype.createEmbedUrl=function(e,t){return this.createUrl("/iframe",e,t)},s.bind(new q);var G=r.combineParams;function J(){this.provider="descript",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}J.prototype.parse=function(e,t){var r=e.match(/(?:view|embed)\/([\w-]+)/i);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:r[1]};return i.id?i:void 0}},J.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=G(r)}},J.prototype.createLongUrl=function(e,t){return this.createUrl("https://share.descript.com/embed/",e,t)},s.bind(new J);var W=r.combineParams;function X(){this.provider="ted",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video",PLAYLIST:"playlist"}}X.prototype.parseUrl=function(e,t){var r=e.match(/\/(talks|playlists\/(\d+))\/([\w-]+)/i),i=r?r[1]:void 0;return i?(t.channel=i.split("/")[0],t.id=r[3],"playlists"===t.channel&&(t.list=r[2]),t):t},X.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},X.prototype.parse=function(e,t){var r={params:t};if(r=this.parseUrl(e,r),(r=this.parseMediaType(r)).id)return r},X.prototype.createLongUrl=function(e,t){var r="";if(e.mediaType===this.mediaTypes.VIDEO&&e.id)r+="https://ted.com/talks/"+e.id;else{if(e.mediaType!==this.mediaTypes.PLAYLIST||!e.id)return;r+="https://ted.com/playlists/"+e.list+"/"+e.id}return r+=W(t)},X.prototype.createEmbedUrl=function(e,t){var r="https://embed.ted.com/";if(e.mediaType===this.mediaTypes.PLAYLIST&&e.id)r+="playlists/"+e.list+"/"+e.id;else{if(e.mediaType!==this.mediaTypes.VIDEO||!e.id)return;r+="talks/"+e.id}return r+=W(t)},s.bind(new X);var ee=r.combineParams;function te(){this.provider="facebook",this.alternatives=[],this.defaultFormat="long",this.formats={long:this.createLongUrl,watch:this.createWatchUrl},this.mediaTypes={VIDEO:"video"}}te.prototype.parse=function(e,t){var r={params:t,mediaType:this.mediaTypes.VIDEO},i=e.match(/(?:\/(\d+))?\/videos(?:\/.*?)?\/(\d+)/i);if(i&&(i[1]&&(r.pageId=i[1]),r.id=i[2]),t.v&&!r.id&&(r.id=t.v,delete t.v,r.params=t),r.id)return r},te.prototype.createWatchUrl=function(e,t){var r="https://facebook.com/watch/";if(e.mediaType===this.mediaTypes.VIDEO&&e.id)return t={v:e.id},r+=ee(t)},te.prototype.createLongUrl=function(e,t){var r="https://facebook.com/";if(e.pageId&&(r+=e.pageId,e.mediaType===this.mediaTypes.VIDEO&&e.id))return r+="/videos/"+e.id,r+=ee(t)},s.bind(new te);var re=r.combineParams;function ie(){this.provider="bigcommand",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ie.prototype.parse=function(e,t){var r=e.match(/(?:watch)\/([\w-]+)/i);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,id:r[1]};return i.id?i:void 0}},ie.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=re(r)}},ie.prototype.createLongUrl=function(e,t){return this.createUrl("https://adilo.bigcommand.com/watch/",e,t)},s.bind(new ie);var ae=r.combineParams;function oe(){this.provider="brightcove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}oe.prototype.parse=function(e,t){var r=e.match(/(\d+)\/(\w+)_(\w+)+\/index.html\?videoId=(\d+)/);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,library:r[1],player:r[2],embed:r[3],id:r[4]};return i.id?i:void 0}},oe.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.library+"/"+t.player+"_"+t.embed+"/index.html";return i+=ae(r)}},oe.prototype.createLongUrl=function(e,t){return this.createUrl("https://players.brightcove.net/",e,t)},s.bind(new oe);var se=r.combineParams;function ne(){this.provider="google",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ne.prototype.parseUrl=function(e){var t=e.match(/\/d\/([\w-]+)/);return t?t[1]:void 0},ne.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},ne.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id+"/preview";return i+=se(r)}},ne.prototype.createLongUrl=function(e,t){return this.createUrl("https://drive.google.com/file/d/",e,t)},s.bind(new ne);var pe=r.combineParams;function de(){this.provider="groove",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}de.prototype.parse=function(e,t){var r=e.match(/(?:videopage)\/([\w-]+)\/([\w-]+)/i);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,library:r[1],id:r[2]};return i.id?i:void 0}},de.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.library+"/"+t.id;return i+=pe(r)}},de.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.groove.cm/groovevideo/videopage/",e,t)},s.bind(new de);var me=r.combineParams;function le(){this.provider="gumlet",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}le.prototype.parseUrl=function(e){var t=e.match(/(?:watch|embed)\/([\w]+)/i);return t?t[1]:void 0},le.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},le.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=me(r)}},le.prototype.createLongUrl=function(e,t){return this.createUrl("https://gumlet.tv/watch/",e,t)},le.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://play.gumlet.io/embed/",e,t)},s.bind(new le);var ce=r.combineParams;function he(){this.provider="streamable",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}he.prototype.parseUrl=function(e){var t=e.match(/com\/(?:e\/|streamable\/)?([\w-]+)/);return t?t[1]:void 0},he.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},he.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=ce(r)}},he.prototype.createLongUrl=function(e,t){return this.createUrl("https://streamable.com/",e,t)},s.bind(new he);var ue=r.combineParams;function ye(){this.provider="screenpal",this.defaultFormat="long",this.formats={long:this.createLongUrl,embed:this.createEmbedUrl},this.mediaTypes={VIDEO:"video"}}ye.prototype.parseUrl=function(e){var t=e.match(/watch\/([\w-]+)/i);return t?t[1]:void 0},ye.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},ye.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=ue(r)}},ye.prototype.createLongUrl=function(e,t){return this.createUrl("https://go.screenpal.com/watch/",e,t)},ye.prototype.createEmbedUrl=function(e,t){return this.createUrl("https://go.screenpal.com/watch/embed/",e,t)},s.bind(new ye);var fe=r.combineParams;function ve(){this.provider="searchie",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}ve.prototype.parseUrl=function(e){var t=e.match(/(?:watch)\/([\w-]+)/i);return t?t[1]:void 0},ve.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},ve.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=fe(r)}},ve.prototype.createLongUrl=function(e,t){return this.createUrl("https://app.searchie.io/watch/",e,t)},s.bind(new ve);var Te=r.combineParams;function Ue(){this.provider="tevello",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}Ue.prototype.parse=function(e,t){var r=e.match(/\/([a-zA-Z\d]+)\/([\w-]+)/i);if(r){var i={mediaType:this.mediaTypes.VIDEO,params:t,library:r[1],id:r[2]};return i.id?i:void 0}},Ue.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.library+"/"+t.id;return i+=Te(r)}},Ue.prototype.createLongUrl=function(e,t){return this.createUrl("https://video.tevello.com/",e,t)},s.bind(new Ue);var be=r.combineParams;function ge(){this.provider="veed",this.defaultFormat="long",this.formats={long:this.createLongUrl},this.mediaTypes={VIDEO:"video"}}return ge.prototype.parseUrl=function(e){var t=e.match(/view\/([\w-]+)/i);return t?t[1]:void 0},ge.prototype.parse=function(e,t){var r={mediaType:this.mediaTypes.VIDEO,params:t,id:this.parseUrl(e)};return r.id?r:void 0},ge.prototype.createUrl=function(e,t,r){if(t.id&&t.mediaType===this.mediaTypes.VIDEO){var i=e+t.id;return i+=be(r)}},ge.prototype.createLongUrl=function(e,t){return this.createUrl("https://veed.io/view/",e,t)},s.bind(new ge),e(s)}));
package/lib/index.js CHANGED
@@ -17,6 +17,7 @@ require('./provider/voomly');
17
17
  require('./provider/spotlightr');
18
18
  require('./provider/bunny');
19
19
  require('./provider/canva');
20
+ require('./provider/cloudflarestream');
20
21
  require('./provider/descript');
21
22
  require('./provider/ted');
22
23
  require('./provider/facebook');
@@ -26,6 +27,7 @@ require('./provider/googledrive');
26
27
  require('./provider/groove');
27
28
  require('./provider/gumlet');
28
29
  require('./provider/streamable');
30
+ require('./provider/screenpal');
29
31
  require('./provider/searchie');
30
32
  require('./provider/tevello');
31
33
  require('./provider/veed');
@@ -0,0 +1,14 @@
1
+ import { VideoInfo } from '../urlParser';
2
+
3
+ export interface CloudflareStreamUrlParameters {
4
+ [key: string]: any;
5
+ }
6
+
7
+ export type CloudflareStreamMediaTypes = 'video';
8
+
9
+ export interface CloudflareStreamVideoInfo extends VideoInfo<CloudflareStreamUrlParameters, CloudflareStreamMediaTypes> {
10
+ provider: 'cloudflarestream';
11
+ host: string;
12
+ }
13
+
14
+ export type CloudflareStreamParseResult = CloudflareStreamVideoInfo | undefined;
@@ -0,0 +1,61 @@
1
+ const { combineParams } = require('../util');
2
+
3
+ function CloudflareStream() {
4
+ this.provider = 'cloudflarestream';
5
+ this.defaultFormat = 'long';
6
+ this.formats = {
7
+ long: this.createLongUrl,
8
+ embed: this.createEmbedUrl,
9
+ };
10
+ this.mediaTypes = {
11
+ VIDEO: 'video',
12
+ };
13
+ }
14
+
15
+ module.exports = CloudflareStream;
16
+
17
+ CloudflareStream.prototype.parseUrl = function(url) {
18
+ // Match *.cloudflarestream.com/{32-char-hex-id} or .../id/iframe
19
+ var match = url.match(
20
+ /(?:https?:\/\/)?([^/]+\.cloudflarestream\.com)\/([a-f0-9]{32})(?:\/iframe)?/i
21
+ );
22
+ if (!match) {
23
+ return undefined;
24
+ }
25
+ return {
26
+ host: match[1],
27
+ id: match[2],
28
+ };
29
+ };
30
+
31
+ CloudflareStream.prototype.parse = function(url, params) {
32
+ var parsed = this.parseUrl(url);
33
+ if (!parsed) {
34
+ return undefined;
35
+ }
36
+ return {
37
+ mediaType: this.mediaTypes.VIDEO,
38
+ params: params,
39
+ id: parsed.id,
40
+ host: parsed.host,
41
+ };
42
+ };
43
+
44
+ CloudflareStream.prototype.createUrl = function(pathSuffix, vi, params) {
45
+ if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO || !vi.host) {
46
+ return undefined;
47
+ }
48
+ var url = 'https://' + vi.host + '/' + vi.id + pathSuffix;
49
+ url += combineParams(params);
50
+ return url;
51
+ };
52
+
53
+ CloudflareStream.prototype.createLongUrl = function(vi, params) {
54
+ return this.createUrl('', vi, params);
55
+ };
56
+
57
+ CloudflareStream.prototype.createEmbedUrl = function(vi, params) {
58
+ return this.createUrl('/iframe', vi, params);
59
+ };
60
+
61
+ require('../base').bind(new CloudflareStream());
@@ -0,0 +1,14 @@
1
+ import { VideoInfo } from '../urlParser';
2
+
3
+ export interface ScreenPalUrlParameters {
4
+ [key: string]: any;
5
+ }
6
+
7
+ export type ScreenPalMediaTypes = 'video';
8
+
9
+ export interface ScreenPalVideoInfo extends VideoInfo<ScreenPalUrlParameters, ScreenPalMediaTypes> {
10
+ provider: 'screenpal';
11
+ }
12
+
13
+ export type ScreenPalParseResult = ScreenPalVideoInfo | undefined;
14
+
@@ -0,0 +1,52 @@
1
+ const { combineParams } = require('../util');
2
+
3
+ function ScreenPal() {
4
+ this.provider = 'screenpal';
5
+ this.defaultFormat = 'long';
6
+ this.formats = {
7
+ long: this.createLongUrl,
8
+ embed: this.createEmbedUrl,
9
+ };
10
+ this.mediaTypes = {
11
+ VIDEO: 'video',
12
+ };
13
+ }
14
+
15
+ module.exports = ScreenPal;
16
+
17
+ ScreenPal.prototype.parseUrl = function(url) {
18
+ var match = url.match(
19
+ /watch\/([\w-]+)/i
20
+ );
21
+ return match ? match[1] : undefined;
22
+ };
23
+
24
+ ScreenPal.prototype.parse = function(url, params) {
25
+ var result = {
26
+ mediaType: this.mediaTypes.VIDEO,
27
+ params: params,
28
+ id: this.parseUrl(url),
29
+ };
30
+ return result.id ? result : undefined;
31
+ };
32
+
33
+ ScreenPal.prototype.createUrl = function(baseUrl, vi, params) {
34
+ if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
35
+ return undefined;
36
+ }
37
+
38
+ var url = baseUrl + vi.id;
39
+ url += combineParams(params);
40
+ return url;
41
+ };
42
+
43
+ ScreenPal.prototype.createLongUrl = function(vi, params) {
44
+ return this.createUrl('https://go.screenpal.com/watch/', vi, params);
45
+ };
46
+
47
+ ScreenPal.prototype.createEmbedUrl = function(vi, params) {
48
+ return this.createUrl('https://go.screenpal.com/watch/embed/', vi, params);
49
+ };
50
+
51
+ require('../base').bind(new ScreenPal());
52
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ormoshe/js-video-url-parser",
3
- "version": "0.5.36",
3
+ "version": "0.5.38",
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",