Identificar videos do YouTube em publicacoes de usuarios

  • Autor Autor perafan18
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
P

perafan18

Alfa
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola Betas 🙂
estoy haciendo una web donde los usuarios pueden hacer publicaciones y compartir vídeos de Youtube pero el problema es que no se como hacer un función o algo que me ayude a detectar si un vídeo es de youtube.

Alguien sabe como se puede hacer?
lo que tengo ahorita es esto..
PHP:
 <?
 if(isset($_POST['videoenviado']))
 {
 if($_POST['video']!=NULL){
 $video = $_POST['video'];
 $video = substr("$video",31,11);
 
 $status ='
<center><div style="float:left;margin-top:10px;margin-bottom:10px;margin-left:45px;width:600px;text-align:center;">
<iframe width="472" height="354" src="http://www.youtube.com/embed/'.$video.'" frameborder="0" allowfullscreen></iframe>
</div>
<hr width=590>
</center><br/>';
//insertar en base de datos
 $sql= mysql_query("INSERT INTO status SET status='$status'");
 }
 }
 ?>
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Primero te diría que no guardes toda esa información en la base de datos, con tan sólo guardar el ID del video alcanza, luego esa información puedes imprimirla al momento de mostrar el video, utilizando el ID guardado en la base de datos.

Además la forma en que "extraes" el id de la url no es correcta, debes hacerlo con expresiones regulares (puede que alguien ponga la url con o son www, entre otras variantes).

Y por último para ver si un video existe la mejor forma me parece que es utilizando la API de YouTube.

Saludos!
 
Si, coincido lo mismo que lucianoche, te vendría mas fácil revisar la API que YouTube para facilitarte el trabajo. Mira el siguiente link ahi esta todo: YouTube - Broadcast Yourself
 
Muchas gracias! pero sigo teniendo mi duda no hay alguna forma de que yo pueda detectar que el URL es de Youtube? Por que los usuarios podrían poner un URL que no sea de Youtube y eso generaría un error.
 
Una opción sería usar la función strstr() para comprobar que la URL contenga youtube.com/watch?v= y la función strlen() para comprobar que la ID del video sea de 11 caracteres:

PHP:
<?php
function isValidYoutubeURL($URL) {
	if ((strstr($URL,"youtube.com/watch?v=")) && (strlen(strstr($URL,"watch?v=")) == "19")) {
		return true;
	} else {
		return false;
	}
}

if (isValidYoutubeURL("http://www.youtube.com/watch?v=lETmskoqh30")) {
echo "La URL pertenece a un video de YouTube :)";
} else {
echo "La URL no pertenece a un video de YouTube :(";
}
?>
 
Con esto, no te puedes quejar lo hize hace tiempo para un proyecto que se perdio :/ mp3deyoutube.com :sorrow:

PHP:
<?php

 function verificar_yt($url) { 
   /* programador jpmaster.net@gmail.com */
    preg_match('#^(?:https?://)?(?:www\.)?(?:youtube\.com(?:/embed/|/v/|/watch\?v=))([\w-]{11})(?:.+)?$#x', $url, $r); 
    //print_r($r);
    return (isset($r[1]) && !empty($r[1])) ? $r[1] : false; 
 
 }
 
 /*
 Funciona con todas estas urls
 http://www.youtube.com/embed/g-SsgHUzc10
 http://www.youtube.com/v/g-SsgHUzc10
 http://www.youtube.com/watch?v=g-SsgHUzc10
 http://www.youtube.com/watch?v=g-SsgHUzc10&feature=g-all-lik

 */
 
 $link = 'http://www.youtube.com/watch?v=g-SsgHUzc10&feature=g-all-lik';
 if(verificar_yt($link)){
    printf('id extraida : <b>%s</b>', verificar_yt($link));
 }else{
    die('**** error xD');
 }
 
Última edição:
Voltar
Topo