Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Creedence

Pagina com videos do Youtube

Recommended Posts

Boa tarde !

 

Nossa empresa tem um canal no youtube mas gostaria de visualizar os videos num template próprio e não do Youtube.

O Youtube me parece permite customizar uma tela até certo ponto. O que não tem atendido o pessoal.

O que precisariamos seria filtrar os videos de nossa conta no Youtube e jogar num template que criariamos, como se esses videos estivem num banco de dados nosso por exemplo.

 

É possível acessar os arquivos que estão lá como numa query sql por exemplo ?

 

Obrigado,

 

Creedence



Só pra complementar, esse acesso seria via ASP.

 

Obrigado,

 

Creedence

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem um código que coloquei no fórum que faz a listagem dos vídeos e vc pode formatar e exibi-las como quiser



Olha este exemplo:

 

<%

Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"


%>


<%
dim objHTTP
dim objXML
dim objXSL

' set-up XMLHTTP

set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")

' obter os dados XML solicitado a partir do local remoto
'Mudar o URL como por sua alimentação.
objHTTP.open "GET", "http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=ID DEVELOPER AQUI&id=ID PLAYLIST AQUI", false
'Youtube também tem uma opção que inclui a paginação que não foi testada, http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=dev_id&id=id&page=page&per_page=per_page
objHTTP.send

' salvar o XML em objXML como XML
set objXML = objHTTP.responseXML

If objXML.parseError.errorCode <> 0 Then
response.write "Oops, I can't load the XML file, sorry."
End If

Set objLst = objXML.getElementsByTagName("video") 'HERE


noOfHeadlines = objLst.length
response.write "<center><b>Existem  " & noOfHeadlines & " Vídeos nesta lista de reprodução.</center></b>"


CONST adFldIsNullable = &H00000020
CONST adVarChar = 200
CONST adDate = 7
CONST adOpenDynamic = 2
CONST adUseClient = 3


if noOfHeadlines > 0 then
Set rs = CreateObject("ADODB.recordset")

'declarar variáveis
Dim Currpage, pageLen, lastNumber, PageRem, PageTen
Dim connection, rs, sSQL, sConnString, next10, prev10, P
Dim RSPrevPage, RSNextPage, start
'pega a página atual que o usuário está ligado, se é a primeira vez que
'visita e a variável 'PageNo' é vazio, então 'CurrPage "fica definida a 1
'Senão a variável página atual "CurrPage' é definida como o número da página solicitada
If IsEmpty(Request.Querystring("PageNo")) then
CurrPage = 1
Else
CurrPage = Cint(Request.Querystring("PageNo"))
End If

'as duas funções abaixo retornam os próximos 10 e número anterior página 10
Function getNext10(num)
pageLen = len(num)
If pageLen = 1 Then
next10 = 10
Else If pageLen>1 Then
pageRem = 10
pageTen = right(num, 1)
next10 = num + pageRem - pageTen
End If
End If
getNext10 = next10
End Function

Function getPrev10(num)
pageLen = len(num)
If pageLen = 1 then
prev10 = 1
Else If pageLen>1 then
lastNumber = right(num, 1)
prev10 = num - lastNumber - 10
End If
End If
If prev10 = 0 then
prev10 = 1
End If
getPrev10 = prev10
End Function


With rs
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
'.Fields.Append "VIDEO", adVarChar, 255, adFldIsNullable
'.Fields.Append "ID", adDate, 32, adFldIsNullable


.Fields.Append"author",adVarChar,255,adFldIsNullable
.Fields.Append"id",adVarChar,255,adFldIsNullable
.Fields.Append"title",adVarChar,255,adFldIsNullable
.Fields.Append"length_seconds",adVarChar,255,adFldIsNullable
.Fields.Append"rating_avg",adVarChar,255,adFldIsNullable
.Fields.Append"rating_count",adVarChar,255,adFldIsNullable
.Fields.Append"description",adVarChar,255,adFldIsNullable
.Fields.Append"view_count",adVarChar,255,adFldIsNullable
.Fields.Append"upload_time",adVarChar,255,adFldIsNullable
.Fields.Append"comment_count",adVarChar,255,adFldIsNullable
.Fields.Append"tags",adVarChar,255,adFldIsNullable
.Fields.Append"url",adVarChar,255,adFldIsNullable
.Fields.Append"thumbnail_url",adVarChar,255,adFldIsNullable
.Fields.Append"embed_id",adVarChar,255,adFldIsNullable


.open


on error resume next
'Set objHdl = objLst.item

      '  For i = 0 To (noOfHeadlines) 
For i = 0 To (noOfHeadlines)-1 


Set objHdl = objLst.item(i)

.AddNew

.Fields("author") = (objHdl.childNodes(0).text)
.Fields("id") = (objHdl.childNodes(1).text)
.Fields("title") = (objHdl.childNodes(2).text)
.Fields("length_seconds") = (objHdl.childNodes(3).text)
.Fields("rating_avg") = (objHdl.childNodes(4).text)
.Fields("rating_count") = (objHdl.childNodes(5).text)
.Fields("description") = (objHdl.childNodes(6).text)
.Fields("view_count") = (objHdl.childNodes(7).text)
.Fields("upload_time") = (objHdl.childNodes(8).text)
.Fields("comment_count") = (objHdl.childNodes(9).text)
.Fields("tags") = (objHdl.childNodes(10).text)
.Fields("url") = (objHdl.childNodes(11).text)
.Fields("thumbnail_url") = (objHdl.childNodes(12).text)
.Fields("embed_id") = (objHdl.childNodes(13).text)

.update


' lista alfabeticamente

.Sort = "title ASC"
.MoveFirst

.sort
next


set folder = nothing
set fso = nothing
'Pagesize é usado para definir o número de registros que serão
'Exibido em cada página. Para os nossos propósitos 10 registros é o que queremos
rs.PageSize = 15
%>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Youtube Playlist XML </title>
</head>

<body>
<p align="center">Aqui está a lista XML que queremos analisar, formatar e exibir:
<a target="_blank" href="http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=zpsaJ4q4Yo0&id=F48E2331F43A70C3">
APHA World Show 2007 Videos</a>.</p>
<div align="center">
<table border="0" width="600">
<tr>

<%
'ficar os próximos 10 e número anterior página 10
next10 = getNext10(CurrPage)
prev10 = getPrev10(CurrPage)

'Se não há registros
If rs.EOF Then
Response.write "No records to display"

Else
'Isso move o ponteiro do registro para o primeiro registro da página atual
rs.AbsolutePage = CurrPage


'loop até que todos os registros da página atual foram Exibido ou que tenha alcançado o fim do rs
Do Until rs.AbsolutePage <> CurrPage OR rs.Eof


x=x +1

'function unUDate(intTimeStamp) to convert Unix timestamp to regular date
mydate = DateAdd("s", rs("upload_time"), "01/01/2010 00:00:00")
'End Function


response.write "<tr><td><BR>"
if NOT rs("id") = "" then 

Response.Write "<br>"& "<BR>" &_
("Author: ")& rs("author") & "<BR>" &_
("Id: ") & rs("id") & "<BR>" &_
"Title: " & rs("title") & "<BR>" &_
"Length: " & rs("length_seconds") & "<BR>" &_
"Rating Avg: " & rs("rating_avg") & "<BR>" &_
"Rating Count: " & rs("rating_count")& "<BR>" &_
"Description: " & rs("description") & "<BR>" &_
"View Count: " & rs("view_count") & "<BR>" &_
"Upload Time: " & mydate & "<BR>" &_
"Comments: " & rs("comment_count") & "<BR>" &_
"Tags: " & rs("tags") & "<BR>" &_
"URL: " & "<a target=_blank href=" & rs("url") & ">" & rs("url") & "</a><BR>" &_
"Thumbnail: " & "<img src=" & rs("thumbnail_url") & "><BR>" &_
"Embed ID: " & rs("embed_id")

response.write "<hr>"
end if

response.write "</td><td>"
if x = 5 then ' this is if you want multiple columns
response.write "</tr><tr>"
x = 0
end if
rs.MoveNext

Loop

end if
%>
</tr>
</table>
</div>
<div align="center" style="font-size: 12pt; font-weight: bold">
<%
'as próximas 2 linhas configura o número de página para os links "anterior" e "próximo"
RSPrevPage = CurrPage -1
RSNextPage = CurrPage + 1

'Descobrir o número de páginas retornadas no rs
'Se o número da página Next10 é maior que o número de páginas rs
'Defina Next10 ao pagecount rs
If Next10 > rs.PageCount Then
Next10 = rs.PageCount
End If

'O início variável determina onde iniciar o número da página de navegação
' 1, 10, 20, 30...
If prev10 = 1 AND next10 - 1 < 10 Then
start = 1
Else
start = Next10 - 10
If right(start, 1) > 0 Then
start = replace(start, right(start, 1), "0")
start = start + 10
End If
End If

'Isso verifica para certificar-se que há mais de uma página de resultados
If rs.PageCount > 1 Then
'para mostrar os últimos 10 '<<'
If currpage > 1 Then
response.write("<a href=""list.asp?PageNo=" & Prev10 & """><<</a> ")
End If
'para demonstrar o vínculo anterior" <"
If NOT RSPrevPage = 0 then
response.write("<a href=""list.asp?PageNo=" & RSPrevPage & """><</a> ")
End If

'Loop através do número da página de navegação usando P como variável loopcounter
For P = start to Next10

If NOT P = CurrPage then
response.write("<a href=""list.asp?PageNo=" & P & """>" & P & "</a> ")
Else
'hiperlink o número da página atual
response.write(" <b>" & P & " </b>")
End If
Next
'este faz o mesmo que o link "anterior", mas para o link "próxima"
If NOT RSNextPage > rs.PageCount Then
response.write("<a href=""list.asp?PageNo=" & RSNextPage & """>></a> ")
End If

'Exercite-se para mostrar os 10 Seguinte '>>'
If NOT Next10 = rs.PageCount Then
response.write(" <a href=""list.asp?PageNo=" & Next10 & """>>></a>")
End If
End If

' fecha rs e conexao
rs.Close
Set rs =Nothing
end with
end if
%>
</div>
</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites
Xanburzun, em primeiro lugar agradeço pelo apoio.Estou tentando utilizar o codigo que me forneceu. Criei meu ID de desenvolvedor no Youtube e informei no codigo abaixo onde pede "ID DEVELOPER AQUI".Não coloquei ID PLAYLIST pois não sei exatamente do que se trata.Ao tentar rodar a rotina dá msg que existem 0 videos nesta lista de reprodução e erro de redefinição nas constantes.Conforme informado, eu gostaria de filtrar os videos de minha conta no youtube pra visualiza-los num layout proprio.Mais uma vez, obrigado !Creedence***********' obter os dados XML solicitado a partir do local remoto 'Mudar o URL como por sua alimentação. objHTTP.open "GET", "http://www.youtube.com/api2_rest?method=youtube.videos.list_by_playlist&dev_id=ID DEVELOPER AQUI&id=ID PLAYLIST AQUI", false objHTTP.send

*****************

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso este em Jquery - http://webdesign.emp.br/webdesign/jquery.youtubeplaylist/

 

E já fiz ele usando um cadastro em asp com sistema de busca http://www.ib7r.com.br/videos.asp

 

<%

Call AbreConn ()

Vid = request.QueryString("pesquisa")

if Vid = "" then

sql = "Select * From videos where ID<>'0' "

else

sql = "Select * From videos where ID<>'0' "

titulo = request.form("titulo")


	
	if materia <> "" then

	sql = sql + " and titulo LIKE '%"&titulo&"%'  "
	
	end if
	
	
end if

sql = sql + " order by ID desc"

Set rs = conn.Execute(sql)

'response.write sql
%>
          <form action="videos.asp?pesquisa=normal" method="post" name="pesquisa" id="pesquisa">
              <table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">
                <tr>
                  <td width="8%" align="right" class="texto14"><label>Pesquisar<span class="texto1">: </span></label>
                      <label></label></td>
                  <td width="92%" valign="top"><input name="titulo" type="text" class="form" id="materia" />
                      <input name="button22" type="submit" class="bt" id="button22" value=" Pesquisar" /></td>
                </tr>
              </table>
          </form>

<div class="yt_holder">
              <div id="ytvideo2"></div>
            <ul class="demo2">
                <%While Not rs.Eof%>
                <li><a href="<%=rs("video")%>"><%=rs("titulo")%></a></li>
              <% rs.MoveNext : Wend %>
              </ul>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro ele gera ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gera a msg que não existem video para essa lista de reprodução e (talvez por conta disto) msg de runtime error . Segue abaixo:

 

***********************************************************************************

 

Existem 0 Vídeos nesta lista de reprodução.

Microsoft VBScript runtime error '800a0411'

Name redefined: 'adFldIsNullable'

/youtube.asp, line 38

 

***********************************************************************************

Eu entrei no meu login do youtube, criei o id e informei no codigo. onde pede "ID DEVELOPER AQUI".

E tentei rodar.

Estou pesquisando outras possibilidades de qualquer forma.

 

Obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a linha 38 ?

 

e vc também pode fazer isso com jQuery

Compartilhar este post


Link para o post
Compartilhar em outros sites
Linha 38 : CONST adFldIsNullable = &H00000020

Linha 39 : CONST adVarChar = 200

Linha 40 : CONST adDate = 7


De qualquer forma me parece que não está encontrando registros baseado no ID que eu gerei e informei. Por isso a msg de "0 videos nesta lista de reprodução".

Com relação a JQuery estou verificando também até por conta da msg que o outro colaborador the Jhunior postou.


Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Exemplo plugin jquery playlist youtube</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.youtubeplaylist.js"></script>
<script type="text/ecmascript">
	$(function() {
		$("ul.demo1").ytplaylist();
		$("ul.demo2").ytplaylist({addThumbs:true, autoPlay: false, holderId: 'ytvideo2'});
	});
</script>

<style type="text/css">
#ytvideo,
#ytvideo2 {
    float: left;
	margin-right:10px;
}
.yt_holder {
    background: #f3f3f3;
    padding: 10px;
    float: left;
    border: 1px solid #e3e3e3;
	margin-bottom:15px;
}
ul {
    float: left;
    margin: 0;
    padding: 0;
    width: 220px;
}
ul li {
    list-style-type: none;
    display:block;
    background: #f1f1f1;
    float: left;
    width: 216px;
    margin-bottom: 5px;
	padding:2px;

}
ul li img {
    width: 120px;
    float: left;
    margin-right: 5px;
    border: 1px solid #999;
}
ul li a {
    font-family: georgia;
    text-decoration: none;
    display: block;
    color: #000;
}
.currentvideo {
	background: #e6e6e6;
}	
</style>

</head>

<body>
	<div id="page">
        <h1>Exemplo plugin jquery playlist youtube</h1>

        
<div class="yt_holder">
    <div id="ytvideo"></div>
    <ul class="demo1">
        <li><a href="
">Video 1</a></li> <li><a href="
">Video 2</a></li> <li><a href="
">Video 3</a></li> </ul> </div> <div class="yt_holder"> <div id="ytvideo2"></div> <ul class="demo2"> <li><a href="
">Video 1</a></li> <li><a href="
">Video 2</a></li> <li><a href="
">Video 3</a></li> </ul> </div> </div> </body> </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.