Foros del Web » Programando para Internet » PHP »

videos youtube

Estas en el tema de videos youtube en el foro de PHP en Foros del Web. Hola me gustaria que la gente agregara la direccion de un video de youtube por un formulario. pero como verifico que ese video existe??...
  #1 (permalink)  
Antiguo 29/05/2010, 15:01
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
videos youtube

Hola me gustaria que la gente agregara la direccion de un video de youtube por un formulario. pero como verifico que ese video existe??
  #2 (permalink)  
Antiguo 29/05/2010, 15:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: videos youtube

Puedes verificar los encabezados con get_headers y si existe te debe dar un 200, si no, entonces, te debe dar un 404. Haz varias pruebas para que veas diferentes resultados y así tengas una idea.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/05/2010, 15:50
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
Respuesta: videos youtube

ok thanks ;) mira e logrado eso mismo y me dice segun el id del video si existe o no, pero ahora el segundo paso que este ya no tengo ni idea por el codigo, no sabria sacarlo. Si alguien añade la direccion completa del video como desgloso la direccion para sacar el id

ejemplo:
ingresan: http://www.youtube.com/watch?v=f9IvUS4ipZk
y yo quiero: f9IvUS4ipZk

como se puede hacwer eso?
  #4 (permalink)  
Antiguo 29/05/2010, 16:02
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: videos youtube

Código PHP:
Ver original
  1. function YouID($i){
  2.     $r='';
  3.     $i=explode('?',$i);
  4.     if(count($i)>1){
  5.         $i=explode('&',$i[1]);
  6.         foreach($i As $v){if(substr($v,0,2)=='v='){$r=substr($v,2);break;}}
  7.     }
  8.     return $r;}
  9.  
  10. //uso:
  11. $str='http://www.youtube.com/watch?v=f9IvUS4ipZk';
  12. echo YouID($str);//regresa: f9IvUS4ipZk
  13.  
  14. echo YouID('http://www.youtube.com/watch?v=JwbVOcysUaQ&feature=player_embedded');//regresa: JwbVOcysUaQ
  #5 (permalink)  
Antiguo 29/05/2010, 16:02
Avatar de Jason512  
Fecha de Ingreso: marzo-2008
Mensajes: 14
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: videos youtube

Puedes usar la funcion substr, ejemplo:

Código PHP:
<form action="youtube.php" method="post">
Introduce tu enlace de youtube, el formato debe ser (http://www.youtube.com/watch?v=f9IvUS4ipZk):<br>
<input name="link" type="text"><br>
<input value="Enviar" type="submit">
</form></center>
<?php
$link 
$_POST["link"];

echo 
"<center>" substr("$link",31) . "</center>";
?>
Pero como el substr cuenta el numero de caracteres, deberias de pedir un formato del link que se insertara con http:// o sin el por ejemplo.
  #6 (permalink)  
Antiguo 29/05/2010, 16:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: videos youtube

Eso lo puedes desglosar con parse_url luego con explode puedes tomar el valor final. También podrías usar Expresiones Regulares.

Edito:
Retomando la idea de Jason512, podrías hacerlo de esta forma
Código PHP:
Ver original
  1. <?php
  2. $url = 'http://www.youtube.com/watch?v=f9IvUS4ipZk';
  3. var_dump(substr($url, strrpos($url, 'v=') + 2));
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 29/05/2010 a las 16:19
  #7 (permalink)  
Antiguo 29/05/2010, 16:12
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
Respuesta: videos youtube

OK gracias, me habeis servido de mucha ayuda de veras ;)
  #8 (permalink)  
Antiguo 29/05/2010, 16:17
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
Respuesta: videos youtube

Por si a alguien le interesa e elaborado con vuestra ayuda el siguiente codigo que agregando la direccion del video de youtube te devuelve si el video existe o no y te lo pone a funcionar:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $url = 'http://www.youtube.com/watch?v=f9IvUS4ipZk';
  5.  
  6. function YouID($i){
  7.     $r='';
  8.     $i=explode('?',$i);
  9.     if(count($i)>1){
  10.         $i=explode('&',$i[1]);
  11.         foreach($i As $v){if(substr($v,0,2)=='v='){$r=substr($v,2);break;}}
  12.     }
  13.     return $r;}
  14.  
  15. ///VERIFICAR ID YOUTUBE///
  16. $id=YouID($url);//recogemos id
  17. if(strlen($id)=='11'){//si es igual a 11 seguimos
  18.     $url='http://i2.ytimg.com/vi/'.$id.'/default.jpg';//pasamos el id a url
  19.     if($conex= @fopen($url,"rt")) {$siono=true;}//si existe hacemos true
  20.     else{$siono=false;}//si no, false
  21. }
  22. else{$siono=false;}//si es mayor que 11 false
  23. ///VERIFICAR ID YOUTUBE///
  24.  
  25. ///IMPRIMIR///
  26. if($siono){echo'<span style="color:green;"><strong>El video si existe</strong></span><br /> <object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/'.$id.'&hl=es_ES&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$id.'&hl=es_ES&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>';}
  27. else{echo'<span style="color:red;"><strong>El video no existe</strong></span>';}
  28. ///IMPRIMIR///
  29. ?>

Etiquetas: youtube, video
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.