blazy-8.x-2.x-dev/src/Media/Provider/Youtube.php
src/Media/Provider/Youtube.php
<?php
namespace Drupal\blazy\Media\Provider;
/**
* Provides Youtube utility.
*
* @internal
* This is an internal part of the Blazy system and should only be used by
* blazy-related code in Blazy module.
*/
class Youtube {
/**
* Returns the expected input URL, specific for Youtube.
*
* OEmbed Resource doesn't accept `/embed`, provides a conversion helper,
* normally seen at BlazyFilter with youtube embed copy/paste, without
* creating media entities. Or when given an embed code by VEF, etc.
*
* @param string $input
* The given url.
*
* @return string
* The input url.
*/
public static function fromEmbed($input): ?string {
if ($input && strpos($input, 'youtube.com/embed') !== FALSE) {
$search = '/youtube\.com\/embed\/([a-zA-Z0-9]+)/smi';
$replace = "youtube.com/watch?v=$1";
$input = preg_replace($search, $replace, $input);
}
return $input;
}
}
