Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala Pessoal!!
Essa semana fiz uma pesquisas na internet sobre como Capturar imagem thumb do video do Youtube.
Dai fiz um script para poder gravar isso num banco de dados. Aqui está a solução para quem quiser usar!!
Observações:
Para Pegar miniatura thumbnails do Youtube observe as urls abaixo:
url do youtube padrão
servidor do youtube com a imagem
http://i1.ytimg.com/vi/qjmTav1HkNo/default.jpg
agora o script:
<?php
include "../conexao.php";
// campos vindos de um form de cadastro de vídeos
$vdtitulo = $_POST["vdtitulo"];
$vdurl = $_POST["vdurl"];
//No na variável foto eu usei a função substr para capturar parte da URL do vídeo que será usada para gravar no banco a url da imagem.
$vdfoto = substr($_POST["vdurl"],31,11);
// Na variável foto $foto_link usei a url padrão do youtube e acrescentei a url capturada do vídeo que ficou armazenada na variavel $vdfoto,
// Em seguida fiz a concatenção e pronto.
$foto_link = "[http://i1.ytimg.com/vi/"."$vdfoto"."/default.jpg";](http://i1.ytimg.com/vi/)
/* verifica se os dados obrigatórios foram informados */
if (trim($HTTP_POST_VARS["vdtitulo"]) == "") {
echo "<br><br><center>Problemas ao efetuar cadastro: <b>TITULO DO VÍDEO</b> é um campo obrigatório!</center>";
exit();
} elseif (trim($HTTP_POST_VARS["vdurl"]) == "") {
echo "<br><br><center>Problemas ao efetuar cadastro: <b>URL DO VÍDEO</b> é um campo obrigatório!</center>";
exit();
} else {
$sql = "INSERT INTO videos (vdid,vdtitulo,vdurl,vdfoto) VALUES ('$vdid','$vdtitulo','$vdurl','$foto_link')";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
echo "<script>window.location='Cadastrar_videos.php';</script>";
}
?>
Bem Pessoal,
Espero que isto ajude!
Clayton Lima
Não seria mais fácil gravar apenas o "id" do video (qjmTav1HkNo)?
Economizaria 1 campo do sql e era só aplicar o endereço do servidor de imagens, na hora de exibir os videos cadastrados...
<?php
include "../conexao.php";
$serverImage = "http://i4.ytimg.com/vi/";
$qry = mysql_query("SELECT * FROM `videos` ORDER BY `vdid` DESC");
if(mysql_num_rows($qry) > 0) {
while($x = mysql_fetch_assoc($qry)) {
echo "<a href='videos.php?id=".$x["vdid"]."' title='".$x["vdtitulo"]."'>
<img src='{$serverImage}".$x["vdurl"]."/default.jpg' alt='".$x["vdtitulo"]."' /><br />
</a>\n";
}
} else {
echo "Não há videos cadastrados!";
}
?>
Tirando isso ta bem legal!
Atendendo a pedidos!
Segue o script do banco:
CREATE TABLE `videos` (
`vdid` int(11) NOT NULL auto_increment,
`vdtitulo` text NOT NULL,
`vdurl` varchar(150) NOT NULL default '',
`vdfoto` text NOT NULL,
PRIMARY KEY (`vdid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
--
-- Extraindo dados da tabela videos
--
INSERT INTO videos VALUES (20, 'Asas da Alva', 'http://www.youtube.com/watch?v=LCLCJWj2s5A', 'http://i1.ytimg.com/vi/LCLCJWj2s5A/default.jpg');
>
Não seria mais fácil gravar apenas o "id" do video (qjmTav1HkNo)?
Economizaria 1 campo do sql e era só aplicar o endereço do servidor de imagens, na hora de exibir os videos cadastrados...
<?php
include "../conexao.php";
$serverImage = "http://i4.ytimg.com/vi/";
$qry = mysql_query("SELECT * FROM `videos` ORDER BY `vdid` DESC");
if(mysql_num_rows($qry) > 0) {
while($x = mysql_fetch_assoc($qry)) {
echo "<a href='videos.php?id=".$x["vdid"]."' title='".$x["vdtitulo"]."'>
<img src='{$serverImage}".$x["vdurl"]."/default.jpg' alt='".$x["vdtitulo"]."' />
</a>\n";
}
} else {
echo "Não há videos cadastrados!";
}
?>
Tirando isso ta bem legal!
Não seria mais fácil gravar apenas o "id" do video (qjmTav1HkNo)? [2]
O YouTube usa quatro servidores para gravar thumb.
http://i1.ytimg.com
http://i2.ytimg.com
http://i3.ytimg.com
http://i4.ytimg.com
O ótimo script só prevê o primeiro. Mas valeu!
Mais e o script do banco?
mais vlw pela intenção
Siga-Me Plo Twitter :@danielhsantos