[Rio-pm] Problemas com download

Aureliano Guedes guedes_1000 em hotmail.com
Segunda Outubro 29 08:20:03 PDT 2012


Eduardo, obrigado pela resposta.

O modulo que faz o download(WWW::YouTube::Download) ja instrue que o arquivo é binario, esse modulo exclue a necessidade que fazer um 'open OUT, ...;' pois ele ja contem esse comando, inclusive passando em modo binario:
 99    open my $wfh, '>', $file or Carp::croak $file, " $!";
100    binmode $wfh;
Date: Sun, 28 Oct 2012 23:38:55 -0300
From: maia em eduardomaia.com
To: rio-pm em pm.org
Subject: Re: [Rio-pm] Problemas com download

Olá, Aureliano, tudo bom?

Não costumo ter tempo de ver emails do grupo, nem de participar dos encontros. Lamentável.

Mas a ausência de respostas dessa thread, aliado a um eventual whisky descompromissado na frente do PC, fez eu estar aqui respondendo :)


Desconheço os módulos que você está usando, nunca precisei deles. Mas dei uma olhada no seu código, e duas coisas chamaram minha atenção:

1. Você disse ter problemas para salvar um arquivo binário em ambiente Windows.


2. Você passou o seguinte código:
open IN, $ARGV[0] or die $!;
save_vd (vdid($_)) foreach (<IN>);

Sendo que essa save_vd não tem uma instrução binmode. Tá com cara que você precisa dar um binmode. Vou explicar...


Quando precisamos salvar em disco um arquivo binário dentro de um "not Windows", a gente escreve o arquivo e pronto. Dentro de um Windows, não basta escrever o arquivo, tem que colocar uma instrução (após o open) dizendo que o arquivo é binário. Tipo isso:

open (OUT, ">video.flv");
binmode(OUT);
print OUT $bytes;
close(OUT);

Já segue o link para o Perldoc :)
http://perldoc.perl.ourg/fnctions/binmode.html


Perl Forever!!!!

Um abraço.



2012/10/28 Aureliano Guedes <guedes_1000 em hotmail.com>





Ola Monges,
Mais uma vez venho incomodar com meus problemas.

Aparentemente o modulo WWW::YouTube::Download não tem nenhum problema, mas quando eu uso em ambiente Windows ele salva o arquivo com defeitos, de forma que acaba não sendo lido pelos reprodutores de audio e video.


meu codigo -> http://pastebin.com/k7v6rWCr

Ja estou sem ideia de o que fazer. Imagino que isso se deva porque o Perl do Windows (como ja havia dito o Stanislaw) subistitui o CR por CRLF, isso deveria ser contornado usando binmode no filehandle.

No caso deste modulo, isso já é feito:
 99    open my $wfh, '>', $file or Carp::croak $file, " $!";
100    binmode $wfh;

ref: https://metacpan.org/source/XAICRON/WWW-YouTube-Download-0.41/lib/WWW/YouTube/Download.pm



Não entendo portanto porque o arquivo vem com problemas.

Sera que se eu abrir o arquivo em modo binario e trocar todos CRLF por CR funcionaria?? Se sim como fazer isso??
 		 	   		  

_______________________________________________

Rio-pm mailing list

Rio-pm em pm.org

http://mail.pm.org/mailman/listinfo/rio-pm



_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121029/6b4f80f3/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm