Função para pegar a ID de um vídeo no YouTube ou Vimeo, usando apenas a URL da página do vídeo.
/**
* get youtube or vimeo video id from URL
* @author Difluir
* @link https://code.difluir.com/
*/
function difluir_get_youtube_vimeo_video_id( $url ) {
if ( ! isset($url) or empty($url) ) {
return;
}
$output = array();
$url = esc_url( $url );
if ( strpos($url,'youtube') !== false ) {
$url_components = parse_url( $url );
parse_str( $url_components['query'], $params );
if ( isset($params['v']) && !empty($params['v']) ) {
$output['youtube'] = $params['v'];
}
}
elseif ( strpos($url,'vimeo') !== false ) {
$url = esc_url( $url );
$url = trim( $url );
$video_id = str_replace( array( 'https://', 'http://', 'player.vimeo.com/video/', 'vimeo.com/'), '', $url );
$output['vimeo'] = $video_id;
}
return $output;
}
Usando a função:
$video_url = 'https://www.youtube.com/watch?v=ibWbJHLu7IY';
$video_id = difluir_get_youtube_vimeo_video_id( $video_url );
if ( isset($video_id['youtube']) && !empty($video_id['youtube']) ) {
echo 'youtube video id: '.$video_id['youtube'];
} elseif ( isset($video_id['vimeo']) && !empty($video_id['vimeo']) ) {
echo 'vimeo video id: '.$video_id['vimeo'];
}