unified-video-framework 1.4.275 → 1.4.277
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.
- package/package.json +1 -1
- package/packages/web/dist/ads/GoogleAdsManager.d.ts +5 -0
- package/packages/web/dist/ads/GoogleAdsManager.d.ts.map +1 -1
- package/packages/web/dist/ads/GoogleAdsManager.js +68 -0
- package/packages/web/dist/ads/GoogleAdsManager.js.map +1 -1
- package/packages/web/dist/utils/YouTubeExtractor.d.ts.map +1 -1
- package/packages/web/dist/utils/YouTubeExtractor.js +1 -1
- package/packages/web/dist/utils/YouTubeExtractor.js.map +1 -1
- package/packages/web/src/ads/GoogleAdsManager.ts +95 -0
- package/packages/web/src/utils/YouTubeExtractor.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.277",
|
|
4
4
|
"description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
|
|
5
5
|
"main": "packages/core/dist/index.js",
|
|
6
6
|
"types": "packages/core/dist/index.d.ts",
|
|
@@ -20,6 +20,8 @@ export declare class GoogleAdsManager {
|
|
|
20
20
|
private adsLoader;
|
|
21
21
|
private adDisplayContainer;
|
|
22
22
|
private isAdPlaying;
|
|
23
|
+
private isMuted;
|
|
24
|
+
private unmuteButton;
|
|
23
25
|
constructor(video: HTMLVideoElement, adContainer: HTMLElement, config: GoogleAdsConfig);
|
|
24
26
|
initialize(): Promise<void>;
|
|
25
27
|
private loadIMASDK;
|
|
@@ -35,6 +37,9 @@ export declare class GoogleAdsManager {
|
|
|
35
37
|
resize(width: number, height: number): void;
|
|
36
38
|
setVolume(volume: number): void;
|
|
37
39
|
isPlayingAd(): boolean;
|
|
40
|
+
private showUnmuteButton;
|
|
41
|
+
private toggleAdMute;
|
|
42
|
+
private hideUnmuteButton;
|
|
38
43
|
destroy(): void;
|
|
39
44
|
}
|
|
40
45
|
//# sourceMappingURL=GoogleAdsManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleAdsManager.d.ts","sourceRoot":"","sources":["../../src/ads/GoogleAdsManager.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAE9B,QAAQ,EAAE,MAAM,CAAC;IAIjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAGH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,WAAW,CAAS;
|
|
1
|
+
{"version":3,"file":"GoogleAdsManager.d.ts","sourceRoot":"","sources":["../../src/ads/GoogleAdsManager.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAE9B,QAAQ,EAAE,MAAM,CAAC;IAIjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAGH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,YAAY,CAA4B;gBAEpC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe;IAShF,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,cAAc;IAqCtB,UAAU,IAAI,IAAI;IAiClB,sBAAsB,IAAI,IAAI;IAW9B,OAAO,CAAC,kBAAkB;IAyD1B,OAAO,CAAC,wBAAwB;IA+EhC,OAAO,CAAC,SAAS;IAmBjB,KAAK,IAAI,IAAI;IASb,MAAM,IAAI,IAAI;IASd,IAAI,IAAI,IAAI;IASZ,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS/B,WAAW,IAAI,OAAO;IAOtB,OAAO,CAAC,gBAAgB;IA0DxB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,IAAI,IAAI;CAehB"}
|
|
@@ -4,6 +4,8 @@ export class GoogleAdsManager {
|
|
|
4
4
|
this.adsLoader = null;
|
|
5
5
|
this.adDisplayContainer = null;
|
|
6
6
|
this.isAdPlaying = false;
|
|
7
|
+
this.isMuted = true;
|
|
8
|
+
this.unmuteButton = null;
|
|
7
9
|
this.video = video;
|
|
8
10
|
this.adContainer = adContainer;
|
|
9
11
|
this.config = config;
|
|
@@ -133,6 +135,9 @@ export class GoogleAdsManager {
|
|
|
133
135
|
skippable: ad.getSkipTimeOffset() !== -1,
|
|
134
136
|
title: ad.getTitle(),
|
|
135
137
|
});
|
|
138
|
+
if (this.isMuted) {
|
|
139
|
+
this.showUnmuteButton();
|
|
140
|
+
}
|
|
136
141
|
});
|
|
137
142
|
this.adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, () => {
|
|
138
143
|
console.log('Ad completed');
|
|
@@ -185,7 +190,70 @@ export class GoogleAdsManager {
|
|
|
185
190
|
isPlayingAd() {
|
|
186
191
|
return this.isAdPlaying;
|
|
187
192
|
}
|
|
193
|
+
showUnmuteButton() {
|
|
194
|
+
if (this.unmuteButton) {
|
|
195
|
+
this.unmuteButton.remove();
|
|
196
|
+
}
|
|
197
|
+
this.unmuteButton = document.createElement('div');
|
|
198
|
+
this.unmuteButton.className = 'ad-unmute-button';
|
|
199
|
+
this.unmuteButton.style.cssText = `
|
|
200
|
+
position: absolute;
|
|
201
|
+
top: 50%;
|
|
202
|
+
left: 50%;
|
|
203
|
+
transform: translate(-50%, -50%);
|
|
204
|
+
z-index: 9999;
|
|
205
|
+
`;
|
|
206
|
+
const button = document.createElement('button');
|
|
207
|
+
button.style.cssText = `
|
|
208
|
+
padding: 12px 24px;
|
|
209
|
+
background: rgba(0, 0, 0, 0.7);
|
|
210
|
+
color: white;
|
|
211
|
+
border: 2px solid white;
|
|
212
|
+
border-radius: 4px;
|
|
213
|
+
font-size: 16px;
|
|
214
|
+
font-weight: bold;
|
|
215
|
+
cursor: pointer;
|
|
216
|
+
transition: all 0.3s ease;
|
|
217
|
+
display: flex;
|
|
218
|
+
align-items: center;
|
|
219
|
+
gap: 8px;
|
|
220
|
+
`;
|
|
221
|
+
button.innerHTML = `
|
|
222
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" style="flex-shrink: 0;">
|
|
223
|
+
<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.26 2.5-4.02z"/>
|
|
224
|
+
</svg>
|
|
225
|
+
Tap to Unmute
|
|
226
|
+
`;
|
|
227
|
+
button.addEventListener('mouseover', () => {
|
|
228
|
+
button.style.background = 'rgba(0, 0, 0, 0.9)';
|
|
229
|
+
});
|
|
230
|
+
button.addEventListener('mouseout', () => {
|
|
231
|
+
button.style.background = 'rgba(0, 0, 0, 0.7)';
|
|
232
|
+
});
|
|
233
|
+
button.addEventListener('click', () => this.toggleAdMute());
|
|
234
|
+
this.unmuteButton.appendChild(button);
|
|
235
|
+
this.adContainer.appendChild(this.unmuteButton);
|
|
236
|
+
console.log('Unmute button displayed');
|
|
237
|
+
}
|
|
238
|
+
toggleAdMute() {
|
|
239
|
+
this.isMuted = !this.isMuted;
|
|
240
|
+
if (this.adsManager) {
|
|
241
|
+
this.adsManager.setVolume(this.isMuted ? 0 : 1);
|
|
242
|
+
console.log(`Ad ${this.isMuted ? 'muted' : 'unmuted'}`);
|
|
243
|
+
}
|
|
244
|
+
if (!this.isMuted && this.unmuteButton) {
|
|
245
|
+
this.unmuteButton.remove();
|
|
246
|
+
this.unmuteButton = null;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
hideUnmuteButton() {
|
|
250
|
+
if (this.unmuteButton) {
|
|
251
|
+
this.unmuteButton.remove();
|
|
252
|
+
this.unmuteButton = null;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
188
255
|
destroy() {
|
|
256
|
+
this.hideUnmuteButton();
|
|
189
257
|
if (this.adsManager) {
|
|
190
258
|
this.adsManager.destroy();
|
|
191
259
|
this.adsManager = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleAdsManager.js","sourceRoot":"","sources":["../../src/ads/GoogleAdsManager.ts"],"names":[],"mappings":"AAmCA,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"GoogleAdsManager.js","sourceRoot":"","sources":["../../src/ads/GoogleAdsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YouTubeExtractor.d.ts","sourceRoot":"","sources":["../../src/utils/YouTubeExtractor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"YouTubeExtractor.d.ts","sourceRoot":"","sources":["../../src/utils/YouTubeExtractor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAgH;IACrJ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAyC;IAKrF,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOzC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;WASpC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAClD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAmCF,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM;WAc7D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+BlG,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAUtB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM;;;;;;;;;;;;;CA2BxE;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -83,7 +83,7 @@ export class YouTubeExtractor {
|
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
YouTubeExtractor.YOUTUBE_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/|v\/)?([a-zA-Z0-9_-]{11})/;
|
|
86
|
+
YouTubeExtractor.YOUTUBE_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/|v\/|live\/)?([a-zA-Z0-9_-]{11})/;
|
|
87
87
|
YouTubeExtractor.YOUTUBE_NOEMBED_API = 'https://noembed.com/embed?url=';
|
|
88
88
|
YouTubeExtractor.YOUTUBE_API_ENDPOINT = 'https://www.youtube.com/oembed?url=';
|
|
89
89
|
export default YouTubeExtractor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YouTubeExtractor.js","sourceRoot":"","sources":["../../src/utils/YouTubeExtractor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"YouTubeExtractor.js","sourceRoot":"","sources":["../../src/utils/YouTubeExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,8 @@ export class GoogleAdsManager {
|
|
|
41
41
|
private adsLoader: any = null;
|
|
42
42
|
private adDisplayContainer: any = null;
|
|
43
43
|
private isAdPlaying = false;
|
|
44
|
+
private isMuted = true;
|
|
45
|
+
private unmuteButton: HTMLElement | null = null;
|
|
44
46
|
|
|
45
47
|
constructor(video: HTMLVideoElement, adContainer: HTMLElement, config: GoogleAdsConfig) {
|
|
46
48
|
this.video = video;
|
|
@@ -257,6 +259,11 @@ export class GoogleAdsManager {
|
|
|
257
259
|
skippable: ad.getSkipTimeOffset() !== -1,
|
|
258
260
|
title: ad.getTitle(),
|
|
259
261
|
});
|
|
262
|
+
|
|
263
|
+
// Check if ad is muted and show unmute button
|
|
264
|
+
if (this.isMuted) {
|
|
265
|
+
this.showUnmuteButton();
|
|
266
|
+
}
|
|
260
267
|
}
|
|
261
268
|
);
|
|
262
269
|
|
|
@@ -364,10 +371,98 @@ export class GoogleAdsManager {
|
|
|
364
371
|
return this.isAdPlaying;
|
|
365
372
|
}
|
|
366
373
|
|
|
374
|
+
/**
|
|
375
|
+
* Show unmute button overlay
|
|
376
|
+
*/
|
|
377
|
+
private showUnmuteButton(): void {
|
|
378
|
+
// Remove existing button if any
|
|
379
|
+
if (this.unmuteButton) {
|
|
380
|
+
this.unmuteButton.remove();
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Create unmute button container
|
|
384
|
+
this.unmuteButton = document.createElement('div');
|
|
385
|
+
this.unmuteButton.className = 'ad-unmute-button';
|
|
386
|
+
this.unmuteButton.style.cssText = `
|
|
387
|
+
position: absolute;
|
|
388
|
+
top: 50%;
|
|
389
|
+
left: 50%;
|
|
390
|
+
transform: translate(-50%, -50%);
|
|
391
|
+
z-index: 9999;
|
|
392
|
+
`;
|
|
393
|
+
|
|
394
|
+
// Create button with SVG speaker icon
|
|
395
|
+
const button = document.createElement('button');
|
|
396
|
+
button.style.cssText = `
|
|
397
|
+
padding: 12px 24px;
|
|
398
|
+
background: rgba(0, 0, 0, 0.7);
|
|
399
|
+
color: white;
|
|
400
|
+
border: 2px solid white;
|
|
401
|
+
border-radius: 4px;
|
|
402
|
+
font-size: 16px;
|
|
403
|
+
font-weight: bold;
|
|
404
|
+
cursor: pointer;
|
|
405
|
+
transition: all 0.3s ease;
|
|
406
|
+
display: flex;
|
|
407
|
+
align-items: center;
|
|
408
|
+
gap: 8px;
|
|
409
|
+
`;
|
|
410
|
+
|
|
411
|
+
// Add SVG speaker icon
|
|
412
|
+
button.innerHTML = `
|
|
413
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" style="flex-shrink: 0;">
|
|
414
|
+
<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.26 2.5-4.02z"/>
|
|
415
|
+
</svg>
|
|
416
|
+
Tap to Unmute
|
|
417
|
+
`;
|
|
418
|
+
|
|
419
|
+
button.addEventListener('mouseover', () => {
|
|
420
|
+
button.style.background = 'rgba(0, 0, 0, 0.9)';
|
|
421
|
+
});
|
|
422
|
+
button.addEventListener('mouseout', () => {
|
|
423
|
+
button.style.background = 'rgba(0, 0, 0, 0.7)';
|
|
424
|
+
});
|
|
425
|
+
button.addEventListener('click', () => this.toggleAdMute());
|
|
426
|
+
|
|
427
|
+
this.unmuteButton.appendChild(button);
|
|
428
|
+
this.adContainer.appendChild(this.unmuteButton);
|
|
429
|
+
console.log('Unmute button displayed');
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Toggle ad mute state
|
|
434
|
+
*/
|
|
435
|
+
private toggleAdMute(): void {
|
|
436
|
+
this.isMuted = !this.isMuted;
|
|
437
|
+
|
|
438
|
+
if (this.adsManager) {
|
|
439
|
+
this.adsManager.setVolume(this.isMuted ? 0 : 1);
|
|
440
|
+
console.log(`Ad ${this.isMuted ? 'muted' : 'unmuted'}`);
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// Hide button if unmuted
|
|
444
|
+
if (!this.isMuted && this.unmuteButton) {
|
|
445
|
+
this.unmuteButton.remove();
|
|
446
|
+
this.unmuteButton = null;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Hide unmute button
|
|
452
|
+
*/
|
|
453
|
+
private hideUnmuteButton(): void {
|
|
454
|
+
if (this.unmuteButton) {
|
|
455
|
+
this.unmuteButton.remove();
|
|
456
|
+
this.unmuteButton = null;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
367
460
|
/**
|
|
368
461
|
* Cleanup
|
|
369
462
|
*/
|
|
370
463
|
destroy(): void {
|
|
464
|
+
this.hideUnmuteButton();
|
|
465
|
+
|
|
371
466
|
if (this.adsManager) {
|
|
372
467
|
this.adsManager.destroy();
|
|
373
468
|
this.adsManager = null;
|
|
@@ -13,7 +13,7 @@ export interface YouTubeVideoInfo {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export class YouTubeExtractor {
|
|
16
|
-
private static readonly YOUTUBE_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/|v\/)?([a-zA-Z0-9_-]{11})/;
|
|
16
|
+
private static readonly YOUTUBE_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/|v\/|live\/)?([a-zA-Z0-9_-]{11})/;
|
|
17
17
|
private static readonly YOUTUBE_NOEMBED_API = 'https://noembed.com/embed?url=';
|
|
18
18
|
private static readonly YOUTUBE_API_ENDPOINT = 'https://www.youtube.com/oembed?url=';
|
|
19
19
|
|