Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/ui/video-service/src/services/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/ui/video-service/src/services/youtube.js

import { BaseService } from './base-service';

const YOUTUBE_MATCHER = /^((?:https?:)?\/\/)?((?:www|m)\.)?(youtube(-nocookie)?\.com|youtu\.be)(\/(?:[\w-]+\?v=|embed\/|shorts\/|live\/|v\/)?)(?<id>[\w-]+)(\S+)?$/;
const YOUTUBE_EMBEDDED = 'https://www.youtube-nocookie.com/embed/$<id>';

export class Youtube extends BaseService
{
	static matchByUrl(url: string): boolean
	{
		return YOUTUBE_MATCHER.test(url);
	}

	static getDomains(): string[]
	{
		return [
			'youtube.com',
			'youtu.be',
			'youtube-nocookie.com',
			'www.youtube-nocookie.com',
		];
	}

	getId(): string
	{
		return 'youtube';
	}

	getMatcher(): RegExp
	{
		return YOUTUBE_MATCHER;
	}

	getMatcherReplacement(): string | null
	{
		return YOUTUBE_EMBEDDED;
	}
}