[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