Foros del Web » Programando para Internet » Javascript »

Generar una ID aleatoria de un vídeo de Youtube con Javascript

Estas en el tema de Generar una ID aleatoria de un vídeo de Youtube con Javascript en el foro de Javascript en Foros del Web. Hola a todos, estoy intentando mostrar vídeos de Youtube al azar, por lo que he creado una función que genera una ID aleatoria. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 21/10/2010, 16:35
zant95
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Generar una ID aleatoria de un vídeo de Youtube con Javascript

Hola a todos, estoy intentando mostrar vídeos de Youtube al azar, por lo que he creado una función que genera una ID aleatoria.
Código Javascript:
Ver original
  1. function generateUrl() {
  2.   var allowChar = 'a,b,c,d,e,f,g,h,i,j,k,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,M,N,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,-,_';
  3.   var arrayChar = new Array(64);
  4.   arrayChar = allowChar.split(',');
  5.   var length = 11, i = 0, j, randomChars = "";
  6.   do {
  7.     var randscript = -1
  8.     while (randscript < 1 || randscript > arrayChar.length || isNaN(randscript)) {
  9.       randscript = parseInt(Math.random() * arrayChar.length)
  10.     }
  11.     j = randscript;
  12.     randomChars = randomChars + arrayChar[j];
  13.     i = i + 1;
  14.   } while (i < length)
  15.   document.getElementById('globalValue').value = randomChars
  16. }
El problema es que hay 64^11 combinaciones posibles y de todas las veces que lo he probado nunca genera una ID que exista todavía.

¿Alguien sabe de donde podría sacar esos enlaces con Javascript en vez de generarlos aleatoriamente?

He visto que ytroulette.com puede hacerlo, pero por más que miro su código lo único que saco en claro es que se vale de JQuery y la API de Youtube.
http://gdata.youtube.com/demo/index.html

Saludos.
  #2 (permalink)  
Antiguo 21/10/2010, 17:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Generar una ID aleatoria de un vídeo de Youtube con Javascript

Hola:

Generar claves al azar puede ser mmuy "azaroso": Fíjate en este artículo: Ponga comentarios en su web, en el apartado Ejemplo de generación de claves... si refrescas la página, los valores son otros...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 22/10/2010, 00:31
zant95
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Generar una ID aleatoria de un vídeo de Youtube con Javascript

Gracias por contestar.

Pero no es lo que busco exactamente, porque generar una serie de caracteres esperando que coincidan con alguna ID no funciona el 99% de las veces.
Lo que creo que sería más viable es lo que dije en el primer comentario, usar la API de Youtube, que es lo que hace ytroulette.com, pero no sé muy bien como usarla.
Si alguien revisase el código de esa página y me explicase como funciona se lo agradecería eternamente, porque yo por más que miro no sé de donde saca la ID de los vídeos.

Para que vean el motivo de mi pregunta os dejo lo que estoy haciendo:
http://dl.dropbox.com/u/5146699/RandomTube/RandomTube.html

Saludos.
  #4 (permalink)  
Antiguo 22/10/2010, 00:49
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: Generar una ID aleatoria de un vídeo de Youtube con Javascript

Lo que normalmente se hace en esos casos es tomar el rss del canal de youtube que quieras y tomar los datos desde ahí. Una vez que tengas la información, no te será difícil mostrar lo que quieras randomizando el orden.
Un ejemplo basado en lenguaje de servidor:
Código PHP:
<?php 
$titulo
=array();
$imagenes=array();
$descripcion=array();
$swf=array();
$sxmlsimplexml_load_file('http://gdata.youtube.com/feeds/api/users/bicentenariolab/uploads');
foreach(
$sxml->entry as $entry){
    
$media $entry->children('http://search.yahoo.com/mrss/');
      
      
// get video player URL
      
$attrs $media->group->content[0]->attributes();
      
$watch $attrs['url']; 
      
      
// get video thumbnail
      
$attrs $media->group->thumbnail[0]->attributes();
      
$thumbnail $attrs['url']; 
            
      
// get <yt:duration> node for video length
      
$yt $media->children('http://gdata.youtube.com/schemas/2007');
      
$attrs $yt->duration->attributes();
      
$length $attrs['seconds']; 
      
      
// get <yt:stats> node for viewer statistics
      
$yt $entry->children('http://gdata.youtube.com/schemas/2007');
      
$attrs $yt->statistics->attributes();
      
$viewCount $attrs['viewCount']; 
      
      
// get <gd:rating> node for video ratings
      
$gd $entry->children('http://schemas.google.com/g/2005'); 
      if (
$gd->rating) {
        
$attrs $gd->rating->attributes();
        
$rating $attrs['average']; 
      } else {
        
$rating 0
      } 
    
$titulo[]=$media->group->title;
     
$imagenes[] = $thumbnail;
    
$fecha_unix strtotime($entry->published);
    
$hoy=time();
    
$fecha='<span style="color:#848585"> hace '.ceil(($hoy-$fecha_unix)/(24*60*60)).' d&iacute;as</span>';
    
$descripcion[]='<span style="color:#848585">Subido por</span> <span style="color:#0d3046">'.$entry->author->name.'</span> '.$fecha;
    
$w=explode('?',$watch);
    
$swf[]= $watch[0];
}
?>
<pre><?php print_r($swf);?></pre>
  #5 (permalink)  
Antiguo 22/10/2010, 12:49
zant95
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Generar una ID aleatoria de un vídeo de Youtube con Javascript

Gracias por la respuesta, pero lo he puesto en mi servidor y me da error. Todavía se poco de PHP, así que no sé si estaré haciendo algo mal.

Si alguien pudiese pasar ese código a algún lenguaje por parte del cliente me resultaría más fácil trabajar con él.

Saludos.

EDITO:

He estado consultando la información que Google ofrece sobre la API de Youtube y he descubierto que existen feeds genéricos de los vídeos más vistos, más recientes...
http://goo.gl/PkCO

Con ello y JQuery podría hacer una función para obtener los vídeos ¿A alguien se le ocurre?

Saludos.

Última edición por zant95; 22/10/2010 a las 17:31

Etiquetas: api, víedos, youtube, aleatoria
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 18:42.