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: Wed, 29 Nov 2006 09:36:46 -0200

Ola

Dei uma diminuida no script.Por um lado o script esta mais 'magico',
por outro está mais leve e vc não precisa digitar toda a url, pode
digitar somente o video_id. O Youtube está fora do ar mas quando
voltar quero fazer uns testes.

#!/bin/bash
# youtube downloader
# usage: script <url or video_id>
# YouTube URL: http://www.youtube.com/watch?v=[video_id]
# YouTube download link:
http://youtube.com/get_video?video_id=[video_id]&t=[t_id]
[ -z "${1}" ] && { echo -e "Error! Missing url or video_id!" ; exit 1 ; }
[[ "${1}" =~ 'youtube' ]] && URL="${1}" ||
URL="http://www.youtube.com/watch?v=${1}";
wget -O - "${URL}" | grep -o -E 'video_id=.*&t=[^\"&]*' | head -1 |
awk -F= '{
   cmd = sprintf("wget -O %s.flv \"http://youtube.com/get_video?%s\"",$2,$0);
   system(cmd) # print "Debug: "cmd
}'

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






eu ainda vou ler o codigo, mas acho que terei que adaptar algumas coisas...
 o maior problema que tenho é que no meu trabalho a expressao *youtube.com* é
 bloqueada.
 Porém, se eu pegar o ip do site, via ping, consigo acessar normalmente no
 browser.

 Ocorre que alguns os videos do youtube ficam hospedados em diversos
 servidores, que seguem um padrao de nomenclatura mais ou menos assim:

 chi-vXX.chi.youtube.com
 lax-vXX.lax.youtube.com
 dentre outros
 alguns outros são
 youtube-XXX.algumacoisa

 esses que sao youtube-XXX.algumacoisa eu consigo assistir, mas, para
 assistir aos demais, preciso enviar o link para o keep vid, entao ele me da
 o download link (normalmente algo tipo
 http://chi-vxx.chi.youtube.com/lavaiummontedecodigo)
 entao tenho que dar um ping no chi-vXX blablabla, colar o
 ip/lavaiummontedecodigo no browser pra conseguir puxar o video e soh entao
 assisti-lo...
 é uma baita trabalheira, mas com o nosso graaaaaaaaaaande shell, vai ficar
 mais simples... so vou ter que implementar mais uns pings, greps e cuts...
 aí vai ficar uma maravilha e eu mando aqui pro pessoal ver :)

 On 11/28/06, Ricardo Acosta <address@hidden> wrote:
 >
 >   Olá Alfredo! e camaradas!
 >
 > aproveitando a carona no momento SEM SHELL SCRIPT
 > existe o software chamado: dowtube.
 >
 > é um programa feito em python.
 > funciona na linha de comando, com *unix!
 >
 > http://www.downtube.kit.net/index2.htm
 >
 > ...
 > a idéa por tras do código é exatamente a que o Tiago passou - com Shell!
 > com mais algumas funcionalidades!
 >
 > []s
 > acosta
 >
 > 2006/11/28, Alfredo Casanova <address@hidden<atcasanova%40gmail.com>
 > >:
 >
 > > deus do céu
 > > acho que eu nao ia dar conta de fazer isso hehehehe
 > > hora de ir embora, amanha vou ler com mais calma...
 > > de qualquer forma, muitíssimo obrigado, thiago!
 > >
 > > On 11/28/06, Tiago Barcellos Peczenyj 
<address@hidden<tiago.peczenyj%40gmail.com>>

 > wrote:
 > > >
 > > > 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<atcasanova%40gmail.com>
 > <atcasanova%40gmail.com>>
 > > > 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
 > > >
 > > >
 > >
 > >
 > >
 > > --
 > > []'s
 > > Alfredo Casanova
 > > Linux User #228230
 > > icq: 15793271
 > > msn: address@hidden <atcasanova%40gmail.com>
 > > aim: alfredotcasanova
 > > yim: atcasanova2
 > > tel: +55 61 84137319
 > > As aves têm na boca um dente chamado bico
 > >
 > >
 > > [As partes desta mensagem que não continham texto foram removidas]
 > >
 > >
 > >
 > > ----------------------------------------------------------
 > > Esta lista não admite a abordagem de outras liguagens de programação,
 > como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
 > prévio aviso.
 > > ----------------------------------------------------------
 > > Sair da lista: 
address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
 > > ----------------------------------------------------------
 > > Esta lista é moderada de acordo com o previsto em
 > http://www.listas-discussao.cjb.net
 > > ----------------------------------------------------------
 > > Servidor Newsgroup da lista: news.gmane.org
 > > Grupo: gmane.org.user-groups.programming.shell.brazil
 > >
 > >
 > > Links do Yahoo! Grupos
 > >
 > >
 > >
 >
 > --
 > __________________________
 > Ricardo Acosta
 > Laboratório de Clima e Biosfera
 > Depto. de Ciências Atmosféricas
 > Universidade de São Paulo
 >
 > Dê emoção à sua vida:
 > Faça pipocas com a panela aberta!
 >
 >
 >

 --
 []'s
 Alfredo Casanova
 Linux User #228230
 icq: 15793271
 msn: address@hidden
 aim: alfredotcasanova
 yim: atcasanova2
 tel: +55 61 84137319
 As aves têm na boca um dente chamado bico

 [As partes desta mensagem que não continham texto foram removidas]






--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

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