Ir para conteúdo

POWERED BY:

Arquivado

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

Debukis Ondeteibou

[Resolvido] Capturando de vídeos do youtube

Recommended Posts

Tenho um formulário que pede o link do vídeo no youtube!

 

através desse link informado eu posso resgatar valores do vídeo, passando o seu código como parâmetro para alguma outra página que capture os dados dele? Tipo minutos, quantidade de votos, quem postou, etc.

 

já ouvi dizer que com xml dá pra fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

falae ted k!

valeu, já é meio caminho andado.

 

tem alguma dica de como eu procedo agora?

abraço.

 

---------

editado

---------

 

dando uma procurada eu consegui chegar nessa url:

http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_o

 

dentro das tags do xml tem tudo o que preciso:

tempo do video, thumbnail, titulo, descricao, etc...

porém como faço para capturar o conteúdo dessas tags e inseri-las no meu banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ai você configura de acordo com as tags que você quer puxar...

 

escolha um simples e posta aqui pra gente configurar junto!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
CODE
<%
' Script ASP Para leitura de arquivos de RSS.
url = "http://www.overbo.com.br/backend.php" 'Aqui vai o endereço do arquivo RSS, ou do arquivo "gerador"

' Criando Objeto XML
Set objXML = Server.CreateObject("msxml2.DOMDocument.3.0")
objXML.async = false
objXML.setProperty "ServerHTTPRequest", True

' Não validar o arquivo
objXML.validateOnParse =false' true

' Retirar espaços
objXML.preserveWhiteSpace = false

blnLoaded = objXML.Load(url)
If Not blnLoaded Then
Response.write "Nenhum notícia na fonte!"
Else
set objNodeList = objXML.getElementsByTagName("channel")

For Each objNode In objNodeList
For Each objNode2 In objNode.childNodes

Select Case objNode2.nodeName
Case "title"
html = html &"<tr><td><b>"
html = html &objNode2.firstChild.nodevalue
html = html &"</b></td></tr>"
Case "link"
html = html &"<tr><td><a target=_blank href="& objNode2.firstChild.nodevalue &">"
html = html & objNode2.firstChild.nodevalue
html = html &"</a></td></tr>"
Case "description" 'Está desabilitado para exibir apenas os links
html = html &"<tr><td><i>"
html = html & objNode2.firstChild.nodevalue
html = html &"</i></td></tr>"
End Select
Next
Next

html = html &"<tr><td><hr></td></tr>"

Set objNodeList = objXML.getElementsByTagName("item")
For Each objNode In objNodeList
For Each objNode2 In objNode.childNodes
Select Case objNode2.nodeName
Case "title"
strTitle = objNode2.firstChild.nodevalue
Case "link"
strURL = objNode2.firstChild.nodevalue
Case "description"
strDescription = objNode2.firstChild.nodevalue
End Select
Next

html = html &"<tr><td><li/><b><a target=_blank href="& strURL &">"& strTitle &"</a></b><br>"& strDescription &"</td></tr>"
strTitle = ""
strURL = ""
strDescription = ""
Next

html = "<table>"& html &"</table>"
set objNodeList = Nothing
End if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>

<body>
<%
Response.write (html)
%>
</body>
</html>


ta ai, vamos lá entao!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%
Function BinaryToString(xBinary)

Dim Binary
Dim RS, LBinary

If VarType(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Recordset")
LBinary = LenB(Binary)

If LBinary>0 Then
RS.Fields.Append "mBinary", adLongVarChar, LBinary
RS.Open
RS.AddNew
RS("mBinary").AppendChunk Binary
RS.Update
BinaryToString = RS("mBinary")
Else
BinaryToString = ""
End If

Set RS=Nothing

End Function
%>

<% Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "GET","http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_o", false 'Endereço onde recebo o arquivo
objXMLHTTP.Send

Response.Charset="ISO-8859-1"


xml = objXMLHTTP.Responsebody

response.write(BinaryToString(xml) & "<BR>" & publicado)

Set objXMLHTTP = Nothing
%>

consegui chegar a esse código!

mas quando eu coloco pra pegar o conteúdo da tag através do método 'getElementsByTagName' ele dá zebra e fala que não suporta!

 

como eu posso pegar o conteudo da tag que eu quiser??

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_o

 

essa url mostra o xml do vídeo...

porém, tenho um codigo que pega o conteudo da linha de acordo com o numero dela...

só que tem um problema:

o numero de linhas nesse xml varia, porque é uma linha pra cada tag, ou seja, não vai dar muito certo!!

 

galera, eu só quero pegar:

titulo -> ja consegui

descricao -> ja consegui

duracao -> quero conseguir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

1º - Encontre o elemento que possui os segundos;

2º - Com uso do Instr(), identifique a posicao da primeira aspa dupla;

3º - Quebre o texto usando Mid() para pegar a posicao da proxima aspa dupla, com outro Instr();

4º - Com o Mid() novamente, e as duas posições das aspas, pegue a duração em segundos.

Outra forma seria utilizando XML DOM (Inglês).

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%
' Script ASP Para leitura de arquivos de RSS.
url = "http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_o" 'Aqui vai o endereço do arquivo RSS, ou do arquivo "gerador"

' Criando Objeto XML
Set objXML = Server.CreateObject("msxml2.DOMDocument.3.0")
objXML.async = false
objXML.setProperty "ServerHTTPRequest", True

' Não validar o arquivo
objXML.validateOnParse =false' true

' Retirar espaços
objXML.preserveWhiteSpace = false

blnLoaded = objXML.Load(url)
If Not blnLoaded Then
		Response.write "Nenhum notícia na fonte!"
Else
		set objNodeList = objXML.getElementsByTagName("entry")
		set media = objXML.getElementsByTagName("media:group")

		For Each objNode In objNodeList
				For Each objNode2 In objNode.childNodes

				Select Case objNode2.nodeName
				Case "id"
						html = html &"<tr><td><b>"
						html = html &objNode2.firstChild.nodevalue
						html = html &"</b></td></tr>"
				Case "published"
						html = html &"<tr><td><a target=_blank href="& objNode2.firstChild.nodevalue &">"
						html = html & objNode2.firstChild.nodevalue
						html = html &"</a></td></tr>"
				Case "updated" 'Está desabilitado para exibir apenas os links
						html = html &"<tr><td><i>"
						html = html & objNode2.firstChild.nodevalue
						html = html &"</i></td></tr>"
				End Select
				Next
		Next
		
			   For Each media1 In media
				For Each media2 In media1.childNodes

				Select Case media2.nodeName
				Case "media:description"
						html = html &"<tr><td><b>"
						html = html &media2.firstChild.nodevalue
						html = html &"</b></td></tr>"
				Case "media:keywords"
						html = html &"<tr><td><a target=_blank href="& media2.firstChild.nodevalue &">"
						html = html & media2.firstChild.nodevalue
						html = html &"</a></td></tr>"
												Case "yt:duration"
'--> NESSA LINHA ESTÁ O ERRO html = media2.firstChild.nodevalue
				End Select
				Next
		Next
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>

<body>
<%
Response.write (html)
End If
%>
</body>
</html>

a linha do erro está comentada!

erro: Objeto necessário: '[object]'

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.