Login
Andre Publicado em 30/11/2020, atualizado em 25/01/2021
Snippets

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 get_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!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *