shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Enviar e receber dados de um site


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Enviar e receber dados de um site
Date: Tue, 28 Nov 2006 16:30:33 -0200

humm... vamos por partes

[momento sem shell script]

Vc pode dar uma olhada neste arquivo aqui:
http://www.joshkinberg.com/blog/files/youtube_to_me.user.js

Atente a estes comentarios:
* YouTube download link:
http://youtube.com/get_video?video_id=[video_id]&t=[t_id]
* YouTube URL: http://www.youtube.com/watch?v=[video_id]

para determinar os parametros necessários para o correto download do
video, recorremos à uma ação invasiva ao site youtube. Olhando o
codigo fonte do site encontramos algo como

"/watch_fullscreen?video_id=NINJQ5LRh-0&l=184&t=OEgsToPDskKfwz7vUjuWTJj-TneVUwhc&s=4A240C1D3B58E8CA:53C662DC848F75CD&fs=1&title="

[fim do momento sem shell script]

Logo, basta fazer umas linhas de shell...

Vou usar o wget 2 vezes,

1) para pegar os codigos necessarios para o download do video;
2) para baixar o video em si

de posse dos codigos, baixar o video é facil. Usando alguma tipo de
intuição eu vou montando as strings na 'força bruta', não achei muita
documentação sobre isso. É um desafio mesmo.

vou usar awk no meio do caminho pois para mim é obvio como deve ser
feito e o resultado é didatico - sed faria o mesmo de outra forma.

vou usar 2 splits e 1 "grep" do awk

Façam o teste (e melhorem, fiz só o basicão mesmo)

#!/bin/bash
# forma de uso
# ./script 'http://www.youtube.com/watch?v=[video_id]'
# sim, poderia funcionar tanto com a url completa quanto com o video_id
# mas isso fica por conta de vcs
# não garanto que funcione sempre, também... é uma gambiarra mas... tentem
URL="${1}"
wget "${URL}" -O -  | awk 'function wget(url,id){
       cmd = "wget -O "id".flv \""url"\"" # a url tem que estar
protegida entre aspas!
       print "Running:\n"cmd
       system(cmd);
}
/watch_fullscreen/{
       a=index($0,"watch_fullscreen");
       line=substr($0,17+a); # pega a linha com os codigos
       split(line,arr,"&");  # pega os pares chave=valor
       for(i in arr){
               split(arr[i],par,"="); # separa a chave do valor
               id = par[1]; value = par[2];
               vetor[id] = value;     # cria vetor explicito
       }
}
END{ # agora montamos a url e mandamos para o wget :)
       url = 
"http://youtube.com/get_video?video_id="vetor["video_id"]"&t="vetor["t";]
       wget(url, vetor["video_id"]);
}'
trap "" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
echo "* Fim do download *" ; sleep 10
echo "* Fim mesmo, ze-fi-ni *" ; sleep 20
echo "* Humm, ... *" ; sleep 30
echo "* Baixe outro video * " ; sleep 40
echo "* Vai ser legal, baixe!!! *" ; sleep 50

On 11/28/06, Alfredo Casanova <address@hidden> wrote:






Olá pessoal

 estou pensando em desenvolver um script pra baixar arquivos do YouTube, e
 estava pensando em utilizar o site www.keepvid.com para me auxiliar.

 Nesse site vc fornece o link do vídeo e ele te dá um link para puxar o
 arquivo .flv

 Porém, não sei como fazer para enviar o link do vídeo para o site... será
 que terei que sniffar o pacote e reproduzir num form?

 alguma ideia?

 --
 []'s
 Alfredo Casanova




--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

[Prev in Thread] Current Thread [Next in Thread]