- Модуль: 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;
}