Foros del Web » Programando para Internet » PHP »

api youtube y problemas con el xml

Estas en el tema de api youtube y problemas con el xml en el foro de PHP en Foros del Web. estoy jugueteando un poco con el api de youtube para poder obtener busquedas de videos y mostrarlas en una web como mejor me parezca nunca ...
  #1 (permalink)  
Antiguo 14/02/2011, 12:12
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
api youtube y problemas con el xml

estoy jugueteando un poco con el api de youtube para poder obtener busquedas de videos y mostrarlas en una web como mejor me parezca

nunca he tocado un xml desde php y estoy haciendo unas pruebas simples

digamos que quiero hacer un listado simplemente de los titulos obtenidos en este caso del titulo obtenido del video ya que solo busco uno

el php es el siguiente (no hay nada mas en el archivo en cuestion simplemente esto)
Código PHP:
Ver original
  1. <?php
  2.  
  3. // youtube interface
  4. $yt_urltot = "http://gdata.youtube.com/feeds/api/videos?";
  5. $yt_urltot.= "vq=buenafuente";
  6. $yt_urltot.= "&orderby=published";
  7. $yt_urltot.= "&start-index=1";
  8. $yt_urltot.= "&max-results=2";
  9. header('Content-Type: text/xml; charset=UTF-8');
  10. // ---------------
  11. $lineas = file($yt_urltot);
  12.  
  13. print("hola");
  14. ?>

y obtengo este error

Extra content at the end of the document

entonces como puedo recuperar valores del php y formatearlos como yo quiera si ahora mismo no me deja ni imprimir una simple cadena de texto?
  #2 (permalink)  
Antiguo 14/02/2011, 12:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: api youtube y problemas con el xml

Cita:
Extra content at the end of the document
y si quitas el "hola" del documento?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/02/2011, 12:33
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

ya se que si quito hola va perfectamente pero entonecs lo unico que puedo hacer es imprimir el xml

lo que pretendo es obtener un campo del xml y poder imprimirlo como me plazca y si no me deja imprimir hola dudo que me deje obtener el campo e imprimirlo entre etiquetas html
  #4 (permalink)  
Antiguo 14/02/2011, 12:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: api youtube y problemas con el xml

usa SimpleXML
http://php.net/simplexml
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/02/2011, 12:37
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

ya lo he intentado antes
Código PHP:
Ver original
  1. <?php
  2.  
  3. // youtube interface
  4. $yt_urltot = "http://gdata.youtube.com/feeds/api/videos?";
  5. $yt_urltot.= "vq=buenafuente";
  6. $yt_urltot.= "&orderby=published";
  7. $yt_urltot.= "&start-index=1";
  8. $yt_urltot.= "&max-results=2";
  9. header('Content-Type: text/xml; charset=UTF-8');
  10. // ---------------
  11. $lineas = file($yt_urltot);
  12. $xml = simplexml_load_string($lineas);
  13. ?>
da el mismo error
no se que haré mal o donde está el problema seguiré farolenado por la documentación a ver si saco algo en claro....
  #6 (permalink)  
Antiguo 14/02/2011, 12:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: api youtube y problemas con el xml

el problema es que haces cosas innecesarias...

si vas a tratar el XML a tu manera, ¿porque envías el header()?

caray... eso no es necesario, ¿porque lo haces? ¿sabes lo que haces? ¡farol!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 14/02/2011, 12:43
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

:S pues porque en el ejemplo que vi en una pagina estab el header pero con otra codificación y se veia incorrectamente y no pensaba que era prescindible y lo cambie a la que tocaba y lissto

ahora me da un warning jajaja esto salta siempre por algun lado
Warning: simplexml_load_string() expects parameter 1 to be string, array given in D:\wampi\www\youtube\toma.php on line 11

esto quiere decir que pide un string y le estoy mandando un array?
  #8 (permalink)  
Antiguo 14/02/2011, 12:46
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

listo
$yt_urltot = "http://gdata.youtube.com/feeds/api/videos?";
$yt_urltot.= "vq=buenafuente";
$yt_urltot.= "&orderby=published";
$yt_urltot.= "&start-index=1";
$yt_urltot.= "&max-results=2";
// ---------------
//$lineas = file($yt_urltot);
$xml = simplexml_load_file($yt_urltot);

o almenos eso parece por ahora
  #9 (permalink)  
Antiguo 14/02/2011, 12:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: api youtube y problemas con el xml

Cita:
Iniciado por juanito1712 Ver Mensaje
Warning: simplexml_load_string() expects parameter 1 to be string, array given in D:\wampi\www\youtube\toma.php on line 11

esto quiere decir que pide un string y le estoy mandando un array?
vaya, eres el primero que veo que lee los mensajes de error... y si, ¡exactamente eso dice!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 14/02/2011, 13:08
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

y ya la ultima pega

nunca habia visto en un xml un campo con ":" no se que sicnifica ni como acceder a ellos

tampoco se como puedo acceder a un campo que esté repetido

por ejemplo
Código XML:
Ver original
  1. <?xml version='1.0' encoding='UTF-8'?>
  2.     <feed>
  3.         <entry>
  4.             <id></id>
  5.            
  6.             <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/>
  7.             <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='People' label='Gente y blogs'/>
  8.             <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='buenafuente'/>
  9.             <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='la sexta'/>
  10.             <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='andreu buenafuente'/>
  11.             <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='gala goya'/>
  12.            
  13.             <media:group>
  14.                 <media:category label='Gente y blogs' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>People</media:category><media:content url='http://www.youtube.com/v/cEyFx_rVChk?f=videos&amp;app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='133' yt:format='5'/>
  15.                 <media:content url='rtsp://v5.cache5.c.youtube.com/CiILENy73wIaGQkZCtX6x4VMcBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='133' yt:format='1'/>
  16.                 <media:content url='rtsp://v4.cache2.c.youtube.com/CiILENy73wIaGQkZCtX6x4VMcBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='133' yt:format='6'/>
  17.                 <media:description type='plain'></media:description>
  18.                 <media:keywords>buenafuente, la sexta, andreu buenafuente, gala goya</media:keywords>
  19.                 <media:player url='http://www.youtube.com/watch?v=cEyFx_rVChk&amp;feature=youtube_gdata_player'/>
  20.                 <media:thumbnail url='http://i.ytimg.com/vi/cEyFx_rVChk/0.jpg' height='240' width='320' time='00:01:06.500'/>
  21.                 <media:thumbnail url='http://i.ytimg.com/vi/cEyFx_rVChk/1.jpg' height='90' width='120' time='00:00:33.250'/>
  22.                 <media:thumbnail url='http://i.ytimg.com/vi/cEyFx_rVChk/2.jpg' height='90' width='120' time='00:01:06.500'/>
  23.                 <media:thumbnail url='http://i.ytimg.com/vi/cEyFx_rVChk/3.jpg' height='90' width='120' time='00:01:39.750'/>
  24.                 <media:title type='plain'>Buenafuente encargado de presentar los Goya</media:title>
  25.                 <yt:duration seconds='133'/>
  26.             </media:group>
  27.         </entry>
  28.     </feed>

como se que campo category quiero o como accedo al term del primer category ?

eso de los <media:group> como se accede ?

hasta ahora lo hago asi
Código PHP:
Ver original
  1. $xml = simplexml_load_file($yt_urltot);
  2. foreach ($xml->entry as $message)
  3. print("<p style='color:red;'>".$message->title.'</p>');
  4. print("<p style='color:red;'>".$message->content.'</p>');
  5. print("<p style='color:red;'>".$message->author->name.'</p>');
  #11 (permalink)  
Antiguo 14/02/2011, 16:46
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: api youtube y problemas con el xml

http://php.net/manual/en/simplexmlelement.attributes.php
http://www.php.net/manual/en/simplexmlelement.getnamespaces.php
  #12 (permalink)  
Antiguo 14/02/2011, 18:59
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

http://www.php.net/manual/en/simplex...namespaces.php

vale con eso obtengo los namespaces utilizados en el documento...

pero como obtengo un dato de una etiqueta que utiliza un namesapace
  #13 (permalink)  
Antiguo 14/02/2011, 19:12
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: api youtube y problemas con el xml

http://www.php.net/manual/es/simplexmlelement.registerxpathnamespace.php

ojala que te sirva
  #14 (permalink)  
Antiguo 14/02/2011, 19:23
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

al fiiiin

si ves las horas de los posts podras comprender el estado de desesperacion al que estaba ya, viendo que el resultado mas esoperanzador que habia obtenido era este
Array()

al fin imprimo esto
Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [label] => People & Blogs [scheme] => http://gdata.youtube.com/schemas/2007/categories.cat ) [0] => People ) )
aun no he llegado donde quiero pero ya vuelvo a avanzar un poco mas

muchisimas gracias mogurbon
  #15 (permalink)  
Antiguo 14/02/2011, 20:12
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

ultimo punto
por mas que miro ya no le encuentro el modo a esto

Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [url] => http://www.youtube.com/v/cEyFx_rVChk?f=videos&app=youtube_gdata ) ) )

este es el resultado de esto

Código PHP:
Ver original
  1. $prueba=$xml->xpath("//c:group//c:content[@type='application/x-shockwave-flash']/@url");
  2. print_r($prueba);

como recupero el atributo url que está en esa misma etiqueta con atributo type='application/x-shockwave-flash'
  #16 (permalink)  
Antiguo 15/02/2011, 00:32
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: api youtube y problemas con el xml

Yo por eso prefiero usar JSON, mucho MUCHO mas fácil de manipular. (alt=json)
  #17 (permalink)  
Antiguo 15/02/2011, 03:50
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: api youtube y problemas con el xml

Que tal juanito1712, deberias utilizar SimpleXMLElement::attributes.

Código PHP:
Ver original
  1. ...
  2. echo $node->attributes()->url;

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #18 (permalink)  
Antiguo 15/02/2011, 08:01
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: api youtube y problemas con el xml

pero esque resulta que tienen espaciadores de campos y no se como se accede a elllos de esa forma

Etiquetas: api, xml, youtube
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:48.