transmission
Sep 08, 2007
Python Transmission client
From the "Good, clean fun!"-Department
I've been toying with the idea of writing a web frontend for BitTorrent for a while now (Grok looks like a likely contender for that) but since the 'official' python based implementation of BitTorrent is simply much too inefficient I had to first come up with a Python library to some other BitTorrent implementation. In the end, I wrote my own library for the highly commendable Transmission client. And after some clean-up and polish work today, I'm happy to announce a release candidate.
The README, the documentation and the tests live all in the same
document and the whole thing should be pretty straightforward to use. I'm curious, as to whether some other pythonistas might find this useful, too. We'll see.
Aug 26, 2007
building transmission-daemon on FreeBSD
And in other news: autoconf still sucks...
Transmission is the BitTorrent client. Period. All other implementations can go take a shower and watch the rest of the game from the bench, if you ask me ;-) (I know you didn't, but it's my blog, afterall...)
In Version 0.8.x transmission introduced a daemon, which listens on a local socket for commands such as adding, starting and stopping torrents. This means, you can simultaneously download multiple torrents from the terminal (you can't start multiple instances of theĀ 'normal' commandline version of transmission, as they all will try to compete for the same port). This comes in handy if you want to download torrents from a remote server (which most likely will have a much fatter pipe to the internet than your desktop machine or notebook).
There is a FreeBSD port for Transmission, but it disables the daemon by default (and the maintainer has told me, that he's not interested in adding or supporting that feature), so I decided to build it manually. This is actually pretty straightforward: just run the usual `./configure ; make install`, bingo! Exce-hept... Transmission uses autoconf to generate its initial configuration. And getting autoconf was the hardest part here for me. In the end it just boils down to installing these packages first, before executing Transmissions `autogen.sh`: libtool15, automake19, autoconf261 (all located in `/devel` in the ports tree).
After installation you can now simply start transmission-daemon (no further parameters necessary, it creates its socket in your home directory and you can - and should! - run it without elevated privileges). You can now user transmission-remote to add torrents and monitor and control their progress. For now, this already makes for a big improvement in regard to my (modest) torrent usage, but I've already written a python client library for transmission-daemon and am now toying with the idea of writing a grok based web fronted for it... anybody interested, perhaps?
