Pegar apenas o ID do vídeo da URL do YouTube com PHP
Durante do desenvolvimento de um plugin WordPress para um cliente – eu precisei pegar apenas o ID do vídeo da URL do YouTube de um campo de ACF.
Como eu estou desenvolvendo em AMP com o componente amp-youtube, apenas o ID é necessário.
E vamos ser sinceros, é chato pedir para que o cliente extraia manualmente o ID do vídeo… é mais fácil apenas copiar e colar o URL e pronto.
Exemplo:
- URL: https://www.youtube.com/watch?v=OpXrSc3Yie0
- ID: OpXrSc3Yie0
Não demorei muito para encontrar o código escrito pelo Goran Halusa neste link.
preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match);
Code language: PHP (php)
Coloque no lugar da variável $url o link completo do YouTube.
Pronto! Agora dê um var_dump( $match ) e você terá uma array com dois itens.
Por exemplo, se a variável $url = ‘https://www.youtube.com/watch?v=OpXrSc3Yie0’
$match[0] = 'youtube.com/watch?v=OpXrSc3Yie0'
$match[1] = 'OpXrSc3Yie0'
Code language: PHP (php)
Você pode utilizar esse código em uma função da seguinte maneira:
// Pegar apenas o ID do vídeo da URL do YouTube
function pegar_id_youtube( $url ) {
preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match);
return $match[1];
}
Code language: PHP (php)
Pegar apenas o ID do vídeo da URL do Vimeo com PHP
Em outro projeto precisei fazer a mesma coisa – só que ao invés de ser um vídeo do YouTube era do Vimeo.
Pesquisei no Google e encontrei esta postagem no Stack Overflow e fiz a seguinte função utilizando a resposta do zeckdude:
// Pegar apenas o ID do vídeo da URL do Vimeo
function pegar_id_vimeo( $url ) {
preg_match("/(https?:\/\/)?(www\.)?(player\.)?vimeo\.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/", $url, $match);
return $match[5];
}
Code language: PHP (php)
Tenho certeza que vou precisar desses códigos em outros projetos, então é melhor anotar para lembrar mais rápido da próxima vez. 😉
Espero que tenha te ajudado também! Valeu!
Olã yuotubebr