DevSecOps

10 jul, 2009

TorrentFlux: um cliente web para BitTorrent

Publicidade

Poucos provedores de internet admitem
oficialmente, mas na prática todos sabem que as operadoras do mundo
todo vêm há alguns anos fazendo o chamado “traffic-shapping
pra restringir o uso de redes p2p por parte de seus clientes. Aqui em
Vitória/ES, o meu provedor NetJá, aparentemente, é um dos que recorrem a
essa prática, uma vez que eu raramente consigo mais que ridículos 15
kb/s de taxa de download no bit torrent.

O resultado prático disso é que já há
alguns anos eu não uso redes p2p como a do Emule, e raramente tenho
paciência de deixar algo baixando via torrents. No ano passado, cheguei
até a fazer uma assinatura do rapidshare
para conseguir baixar mais rapidamente os seriados que gosto de
assistir (e a propósito, eu só comecei a fazer isso depois que a Fox,
em 2007, tomou a decisão estúpida de só exibir os seriados dublados. Eu
nem ligava de assistir tudo um ano depois dos americanos, mas aceitar
dublagens toscas já é demais). Só que em fevereiro minha assinatura do
Rapidshare terminou, eu não qui$ renovar, e voltei a ter que ficar
esperando muitas horas pra conseguir fazer esses downloads. Neste final
de semana, porém, enxerguei a luz: o TorrentFlux.

Como o pequeno servidor que alugo no SliceHost
pra hospedar esse blog fica quase o tempo todo ocioso, me ocorreu que
eu poderia instalar nele um cliente bit torrent pra baixar os arquivos
que eu quisesse, e posteriormente baixar esses arquivos do meu servidor
para meu computador pessoal. Como esse servidor tem um link de 10Mbps,
e obviamente não sofre traffic-shapping, a idéia é que baixar os
torrents pra ele será bem rápido, e posteriormente o download para
minha máquina também viria à taxa máxima da minha conexão. Magavilha
né!?

A minha primeira idéia pra botar isso
em prática foi encontrar um cliente bit torrent que pudesse ser rodado
por linha de comando. Isso foi simples: a maioria das distros contam
com um pacote “bittorrent” nos seus gerenciadores de pacotes,
possibilitando a instalação rápida e sem complicações. Uma vez
instalado esse pacote, os downloads podem ser feitos com o programa
“bittorrent-console” (que fica exibindo o progresso do download através
de intermináveis mensagens – o melhor é redirecionar a saída dele pra
um arquivo de log) ou com “bittorrent-curses”, que usa a biblioteca
ncurses pra exibir uma interface gráfica em modo texto. Este post dá o caminho das índias pra usar o bittorrent-curses.

Usei o bittorrent-console pra fazer um
download, mas não fiquei plenamente satisfeito com a solução. Não sou
grande fã de ficar digitando comandos no console, e se quisesse
acompanhar o progresso do download eu teria que ficar conectado via ssh
o tempo todo, usar uma solução como o screen
para contornar esse problema, ou acompanhar pelo arquivo de log. Pensei
então em procurar uma classe em php que fizesse o parsing desse log, e
aí eu faria uma interface web simples pra exibir o status dos
downloads. Foi aí que me deparei, googlando por “torrent php”, com o TorrentFlux.com.

O TorrentFlux é um cliente bit torrent
totalmente baseado na web, e que demanda apenas um servidor com os
softwares da plataforma LAMP + Python instalados pra fazer sua mágica.
Baixei o software, instalei em questão de 5 minutos e fui testá-lo.
Resultado: eu não poderia estar mais feliz 🙂 Apesar de a interface não
ser lá um primor de beleza, a aplicação é muito completa: é possível,
por exemplo, criar contas de usuários e restringir quotas de download.

Baixar e monitorar um torrent pelo
TorrentFlux é tão fácil quanto em qualquer cliente desktop: na página
inicial da app, existe a opção de fazer upload de um .torrent, apontar
uma url ou fazer uma busca no google, piratebay, mininova e outros. A
tela exibe o status completo dos downloads, quanto espaço em disco você
ainda tem disponível e permite limitar a banda de download/upload,
escolher se você quer fazer seeding ou não, dentre outras vastas
opções. E quando um download torrent se completa, um link fica à
disposição pra você já baixar o arquivo do servidor.

Uma das coisas que mais me impressionou
no TorrentFlux foi o fato de que cada processo dele consume menos da
metade da memória e cpu que um processo do torrent-console. Para uma
aplicação rodando na web, isso é sensacional.  São softwares como esse
que reforçam a convicção de que de fato no futuro um browser será tudo
que um computador necessitará. Nem todo mundo tem um servidor na web
com acesso root via ssh por isso o TorrentFlux é pra pouca gente. Pra
essas poucas pessoas, porém, eu recomendo e muito. É só tomar cuidado
pra não estourar a banda contratada 🙂