Um de meus projetos necessitou a criação de um player de vídeos e agora estou compartilhando a idéia, ai tu me diz: ok Andrews, um player é simples de se fazer, só arrastar um componente e configurar a url do vídeo FLV! porém, o desafio era fazer um player com vídeos vindos diretos do YouTube e de forma randômica, que por sua vez a url destes vídeos estariam cadastrados em um banco de dados.

Então mãos a obra e vamos fazer este player, :)

Construindo a tabela para abrigar as url’s. Usaremos o MySQL como base de dados para abrigar estas url’s.

/* CRIANDO A TABELA */
CREATE TABLE `videos` (
          `vid_codigo` int(10) NOT NULL auto_increment,
          `vid_url` varchar(300) default NULL,
          PRIMARY KEY  (`vid_codigo`)
        )
 
/* INSERINDO URL'S DO YOUTUBE */
insert  into
  `videos`(`vid_codigo`, `vid_url`)
values
  (1,'http://br.youtube.com/watch?v=DJZUrTXPIBE'),
  (2,'http://br.youtube.com/watch?v=NfxtAcjYbX0'),
  (3,'http://br.youtube.com/watch?v=TGBZfhLsljY');

Criada a tabela, partiremos agora para o php, onde criaremos uma consulta para buscar as url’s dos vídeos nesta tabela. Também criaremos a função que faz a conversão da url do vídeo do YouTube, para que tenhamos a url final/verdadeira do vídeo FLV. Esta conversão se faz necessária devido a url apresentada quando estamos vendo o vídeo no YouTube não ser a url final/verdadeira do vídeo FLV, então se colocarmos esta url o player que criaremos não conseguirá encontrar o vídeo, caracterizando assim uma url inválida.

Criando a função para conexão com o banco de dados. Após escrever a função, salve-a com o nome de conexao.php.

function conexao() {
    $cnx = mysql_connect('nome-do-servidor', 'nome-do-usuario', 'senha');
    mysql_select_db('nome-da-tabela', $cnx);
    return $cnx;
}

Criaremos então a função para selecionar a url na tabela, e fazer a conversão para a url final/verdadeira do vídeo FLV. Após escrever a função, salve-a com o nome de video_url.php.

/* INCLUINDO O ARQUIVO DE CONEXAO*/
require_once('conexao.php');
 
/* VARIAVEL DE CONEXAO COM O DB */
$cnx = conexao();
 
/* CONSULTA TABELA VIDEOS */
$SQL_video = "SELECT vid_url FROM videos ORDER BY rand() LIMIT 1";
$q_video   = mysql_query($SQL_video, $cnx) or die(mysql_error());
$row_video = mysql_fetch_array($q_video);
 
   /* PASSANDO URL SELECIONADA PARA VARIAVEL */
   $url = $row_video['vid_url'];
 
   // ATIVADA (UPDATE EM 29-01-2009)
   $data = implode("", file($url));
 
   /* FUNCTION CRIADA DEVIDO A MEU SERVER BLOQUEAR A FUNCTION file() ACIMA,
    * ENTAO curl FAZ O SERVICO DO file() E TRAZ A URL EXTERNA.
    *
    * EXPERIMENTE TESTAR EM SEU SERVER A LINHA ACIMA, SE FUNCIONAR
    * PODE REMOVER O BLOCO DE CODIGO ONDE UTILIZA AS curl
    */
 
   // DESATIVADA (UPDATE EM 29-01-2009)
   /*$ch = curl_init();
   curl_setopt ($ch, CURLOPT_URL, $url);
   curl_setopt ($ch, CURLOPT_HEADER, 1);
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
   $data = curl_exec($ch);
   curl_close($ch);*/
 
   if (preg_match_all("/&t=[^&]*/", $data, $matches)) {
      $t = $matches[0][0];
      $t = preg_split("/=/", $t);
      $t = $t[1];
 
      $v = $url;
 
      // DESATIVADA (UPDATE EM 29-01-2009)
      //$v = preg_split("/?v=/", $v);
 
      $v = explode("?v=", $v);
      $v = $v[1];
      echo "&Path=http://www.youtube.com/get_video.php?video_id=".$v . "&t=".$t . "&.flv";
   } else {
      echo "null";
   }
 
mysql_free_result($q_video);

Ja temos a função do php que faz a ponte para trazer as url’s verdadeiras pronta. Agora partiremos para o flash, onde faremos o player para tocar o vídeo.
Crie um novo arquivo no flash, podendo deixá-lo com os tamanhos padrões 550 x 400 pixels.
Agora, renomei a Layer 1 para “player”, arraste um componente “FLVPlayback” para o palco e para o nome de instância digite “my_vid”.

Player para vídeos do YouTube

Agora vamos criar as action que serão responsáveis por fazer a ligação com o arquivo php.
Crie uma nova Layer com o nome de “Action”, clique no Frame 1 e precissione a tecla F9.

Agora iremos escrever o código actionscript a seguir para que nosso player funcione.

// INFORMANDO AO FLASH QUE A COMUNICACAO (ARQUIVO) ESTA EM OUTRO DOMINIO
System.security.allowDomain("*");
var myvar:LoadVars = new LoadVars();
// CARREGANDO O ARQUIVO PHP
myvar.load("video_url.php");
myvar.onLoad = function() {
	// PASSANDO A URL VERDADEIRA DO YOUTUBE PARA O PLAYER
	my_vid.contentPath = myvar.Path + "&t=" + myvar.t + "&.flv";
};

Pronto! agora salve e compile seu arquivo flash, e pode testá-lo em seu servidor.

Veja aqui o player em funcionamento. Clique no botão de refresh para ver os vídeos de forma randômica.

Abraço. Espero que tenham aproveitado.