• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/html_editor.php
  • Класс: CHTMLEditor
  • Вызов: CHTMLEditor::GetVideoOembed
static function GetVideoOembed($url = '')
{
	$output = array('result' => false, 'error' => "");
	if(empty($url))
	{
		return $output;
	}

	$metaData = BitrixMainUrlPreviewUrlPreview::fetchVideoMetaData($url);
	if($metaData && isset($metaData['EMBED']))
	{
		$output['result'] = true;
		$output['data'] = array(
			'html' => $metaData['EMBED'],
			'title' => $metaData['TITLE'],
			'provider' => $metaData['EXTRA']['PROVIDER_NAME'] ?? null,
			'width' => intval($metaData['EXTRA']['VIDEO_WIDTH'] ?? null),
			'height' => intval($metaData['EXTRA']['VIDEO_HEIGHT'] ?? null),
		);
	}
	else
	{
		if($metaData &&
			isset($metaData['EXTRA']['VIDEO']) &&
			!empty($metaData['EXTRA']['VIDEO']) &&
			$metaData['EXTRA']['VIDEO_TYPE'] != 'application/x-shockwave-flash'
		)
		{
			$output = self::getRemoteVideoUrlInfo($metaData['EXTRA']['VIDEO']);
			if($output['result'] == true)
			{
				unset($output['data']['local']);
				$output['data']['remote'] = true;
				$output['data']['title'] = $metaData['TITLE'];
				if(isset($metaData['EXTRA']['VIDEO_WIDTH']))
				{
					$output['data']['width'] = $metaData['EXTRA']['VIDEO_WIDTH'];
				}
				if(isset($metaData['EXTRA']['VIDEO_HEIGHT']))
				{
					$output['data']['height'] = $metaData['EXTRA']['VIDEO_HEIGHT'];
				}
				if(isset($metaData['EXTRA']['VIDEO_TYPE']))
				{
					$output['data']['mimeType'] = $metaData['EXTRA']['VIDEO_TYPE'];
				}
				return $output;
			}
		}
		$io = CBXVirtualIo::GetInstance();
		$path = $url;
		$serverPath = self::GetServerPath();

		if (mb_strpos($path, $serverPath) !== false)
		{
			$path = str_replace($serverPath, '', $path);
		}

		if ($io->FileExists($io->RelativeToAbsolutePath($path)))
		{
			$output['data'] = array(
				'local' => true,
				'path' => $path
			);
			$output['result'] = true;
		}
		else
		{
			$output = self::getRemoteVideoUrlInfo($url);
		}
	}
	return $output;
}