Tive necessidade de baixar um documento do Issuu. Segue um script simples que escrevi para baixar as páginas, convertê-las para PDF e mesclá-las. Ele não tem checagem de erros, mas pode ser útil para mais pessoas:
#!/bin/bash
if[ $# -lt 1]; then
echo "Uso: $0 <endereco_do_documento_no_issuu>"
exit
fi
tmp=$(mktemp -d)
echo "Baixando pagina HTML..."
wget -q "$1" -O $tmp/html
pageCount=$(cat $tmp/html | grep -o '"pageCount":[0-9]*' | sed 's/.*://')
model=$(cat $tmp/html | grep 'image_src' | sed 's/.*href="//; s/".*//')
title=$(cat $tmp/html | grep '<title>' | sed 's/.*<title>//; s/<\/title>.*//')
echo "-> Encontrado documento de $pageCount paginas"
echo "-> Primeira pagina: $model"for i in $(seq 1 $pageCount); do
download=$(echo $model | sed "s/page_1/page_$i/")
echo "Baixando pagina ${i}..."
wget -q "$download" -O "$tmp/page_${i}.jpg"done
echo "Convertendo paginas JPG -> PDF..."for i in $(ls $tmp/*.jpg); do
convert "$i""${i}.pdf"done
echo "Mesclando paginas..."
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="${title}.pdf" $tmp/page_*.pdf
rm -rf $tmp
echo "-> Pronto: '${title}.pdf'"
O script requer Bash, wget, GhostScript e ImageMagick. A maioria das distribuições de Linux já tem esses aplicativos, mas por via das dúvidas cheque se você tem o ImageMagick instalado.
Me acostumei a usar o legendas.tv para baixar legendas de filmes e acabei nunca me perguntando se haveria um jeito mais fácil de baixá-las. Hoje fui assistir um filme e, ao entrar no navegador para baixar sua legenda, me deparei com a mensagem de que o site estava fora do ar:
Mensagem do legendas.tv fora do ar.
A situação me obrigou a procurar outros sites e outras formas de baixar legendas. Minha primeira ideia foi usar o opensubtitles.org, que já havia usado algumas outras vezes. Chegando lá e procurando pelo filme que eu desejava, vi muitas opções e não estava muito claro que legenda baixar para a versão do filme que eu tinha.
Então resolvi dar uma fuçada na pesquisa avançada do site, onde acabei encontrando uma pesquisa por hash. Hash, em computação, é uma função que “resume” uma informação gigante (tipo um arquivo bem grande) numa informação bem pequena (tipo 16 caracteres) que o represente de forma única (ou quase única). A pesquisa por hash, no caso desse site, consiste em procurar uma legenda utilizando esse “ID” do arquivo (ou seja, não importa seu nome).
Achei a possibilidade tão legal que resolvi fazer um programa para nunca mais precisar abrir o navegador quando eu quiser baixar a legenda de um filme. Escrevi um minúsculo programa em C chamado oshash (de OpenSubtitles Hash) para calcular o hash de um filme de acordo com a especificação do site (que não requer nada, a não ser um compilador de C e a biblioteca padrão) e um script (bem tosco, mas funcional) chamado downloadsubtitle que usa o programa oshash (e pequenos programas que todo mundo tem, tipo grep, sed, wget e unzip) para baixar a legenda.
O funcionamento ficou bem fácil: para baixar uma legenda em qualquer língua, basta você digitar downloadsubtitle arquivo.avi para baixar a legenda do “arquivo.avi” (que já vai ser automaticamente nomeada como “arquivo.srt”). Se você quiser especificar uma língua (por exemplo, português do Brasil), é só digitar downloadsubtitle arquivo.avi pob (pob é o código do português do Brasil). Se você quiser baixar uma legenda em inglês ou espanhol, pode usar downloadsubtitle arquivo.avi eng,esp.
Exemplo de funcionamento
$ ls
Amelie [Amélie Poulain].2001.BRRip.x264.AAC[5.1]-VLiS.mkv
$ downloadsubtitle Amelie\ \[Amélie\ Poulain\].2001.BRRip.x264.AAC\[5.1\]-VLiS.mkv pob
Requested language: pob
Movie hash: bcdc90cf4873c09b
Subtitle ID: 4642726
Subtitle: Amelie [Amélie Poulain].2001.BRRip.x264.AAC[5.1]-VLiS.srt
$ ls
Amelie [Amélie Poulain].2001.BRRip.x264.AAC[5.1]-VLiS.mkv Amelie [Amélie Poulain].2001.BRRip.x264.AAC[5.1]-VLiS.srt
$
E aí o filme está pronto para você assistir com o mplayer ou com o seu programa favorito.
Código
Este é o código inicial. Está aqui para fins históricos. Não será atualizado. Use a próxima seção (Download) para baixar a última versão, com bugs corrigidos, tratamento de erros e possivelmente novas funcionalidades.
#include<stdio.h>#include<stdlib.h>voidusage(char*name) {
printf("Usage: %s <file>\n", name);
exit(1);
}
intmain(int argc, char*argv[]) {
unsignedlonglong buf[16384], c =0;
FILE *in;
int i;
if (argc !=2) {
usage(argv[0]);
}
in = fopen(argv[1], "rb");
if (in == NULL) {
usage(argv[0]);
}
fread(buf, 8192, 8, in);
fseek(in, -65536, SEEK_END);
fread(&buf[8192], 8192, 8, in);
for (i =0; i <16384; i++) {
c+= buf[i];
}
c+= ftell(in);
fclose(in);
printf("%016llx\n", c);
return0;
}
#!/bin/bash
usage(){
echo "Usage: $0 <file> [lang]"
echo "Examples:"
echo "$$0 movie.avi pob # brazilian portuguese"
echo "$$0 movie.avi por,pob # any portuguese"
echo "$$0 movie.avi eng # english"
echo "$$0 movie.avi all # any language"
exit
}if[ $# -lt 1]; then
usage
elif[ $# -gt 2]; then
usage
fiif[ $# =2]; then
lang=$2
else
lang="any"fi
echo "Requested language: $lang"
output=$(echo "$1" | sed 's/\.[^.]*$/.srt/')
oshash=$(oshash "$1")
echo "Movie hash: $oshash"
subid=$(wget "http://www.opensubtitles.org/en/search/sublanguageid-$lang/moviehash-$oshash/rss_2_00" -q -O - \
| grep '<link />.*en/subtitles' | sed 's|.*en/subtitles/||; s|/.*||' | head -n1)
echo "Subtitle ID: $subid"
wget "http://www.opensubtitles.org/en/subtitleserve/sub/$subid" -q -O - | gunzip > "$output" 2> /dev/null
echo "Subtitle: $output"
O programa ainda não está empacotado bonitinho (não tem nem Makefile ou instruções de instalação). Se futuramente vier a ter, este post será atualizado. Em resumo, basta compilar o código em C (digitando gcc oshash.c -o oshash) e colocar os arquivos oshash e downloadsubtitle numa pasta do seu $PATH (por exemplo, /usr/local/bin).
Como o Ibrahim e a mídia tradicional já noticiaram, o sétimo livro da série da autora J. K. Rowling, Harry Potter e as relíquias da morte (Harry Potter and the Deathly Hallows), já está inteiro disponível para download através de torrentsinternet a fora.
A editora Scholastic e a autora Joanne Kathleen Rowling não comentam sobre a autenticidade das cópias virtuais, o que é indício de que elas são mesmo reais. Eu passei os olhos pelo PDF e li algumas páginas (principalmente do final, como todo bom curioso) e acredito que este livro divulgado na internet é mesmo o verdadeiro livro 7 de Harry Potter.
Pelo o que eu entendi, Harry Potter não morre, o último capítulo é dezenove anos depois do resto da história, nas últimas páginas há um diálogo sobre a Sonserina (Slytherin), o diálogo entre Harry e Voldemort no penúltimo capítulo é super interessante (e não vou contar que é sobre a “morte” de Dumbledore e a “lealdade” de Snape) e há muitas mortes e “ressurreições”.
Diferentemente de fãs que vestem a roupa dos personagens e soltam feitiços pelas ruas, eu gosto bastante da série de Rowling, mas sou um leitor passivo. Eu adoro ler best-sellers (ex: Dan Brown), por mais que pessoas muito cultas digam que isso é perda de tempo e que não é literatura. Felizmente, eu não ligo pro que é literatura e não ligo por “perder” meu tempo para me divertir um pouquinho, então eu leio mesmo Harry Potter. Tenho todos os livros aqui em casa e vou esperar versões escaneadas (não fotografadas) do sétimo volume saírem na internet para baixar e ler com mais conforto.