Getting started with BitTorrent + RSS in Radio [BETA]
by Andrew Grumet on 11 March, 2004
This document describes how to install bitTorrentIntegration.root, a Radio
tool that automates download of BitTorrent enclosures.
If you're looking for a way to publish .torrent enclosures to your blog, you might want to check out WritTorrent.
Update: Bugfix release 0.3 on 6 May 2004 at 10:45pm Eastern time. Fixed a bug where the tool would stop working after restarting Radio.
Comments and Further Reading
Comments, bug reports, fixes etc. go here.
To read further about RSS and BitTorrent, please see this overview article on the Technology at Harvard Law site, or this Wired article.
Installation Instructions
This is beta software. It works with Windows only. I have
suggestions for making it work with OS X, but haven't had time to do
it. See Stuff we might add below. If you want to make it work
and write it up, I'll be happy to include your code in the next
version.
- Enable automatic downloading of RSS enclosures in Radio. This is
a two-step process. You must a) check the checkbox, and b) set the
Stop downloading at: value to something greater than the Start
downloading at: value. Click here to
view your RSS enclosure settings in Radio.
- Download and install the Windows BitTorrent
client. The current version as of this writing is named
bittorrent-3-4.exe. Note The first time BitTorrent is launched
there will be a popup window to ask if you've donated, and wait. This
means your first night's downloads won't start until the next morning
when you click "Yes". If you want to route around the popup, go here, decide
if you want to make a donation, and then create an empty file called
"donated", with no extension, in C:\Program Files\BitTorrent.
- If you're behind a firewall/NAT, consider forwarding TCP on ports
6881-6889 to your desktop machine. The FAQs say this will give you
better download speed. I suspect it helps other peoples' downloads as
well. See Brian's
BitTorrent FAQ and Guide on the topic.
- Download bitTorrentIntegration.root
and put it in your Tools folder, typically located at C:\Program Files\Radio Userland\Tools .
- Bring the Radio application to the front. This is a little tricky
on Windows: In the system toolbar, usually at the bottom of the
screen, you'll see Radio's icon, a blue dot in a white
rectangle. Right-click on the icon, and choose Open Radio from the
popup menu. The Radio application should open and come to the
front. It's normally an invisible memory-resident program to make it
easy for people to edit their weblog in a browser, but it has a rich
graphical environment, with a built-in outliner. (This item
copied from #2 of these
instructions.)
- From the Tools menu in Radio, choose the BitTorrentIntegration
sub-menu, then choose the Set Up command. Set the hourToStartScan to
a value greater than the hour at which enclosure downloads begin.
Click here to
view your RSS enclosure settings in Radio.
Set the hourToStopScan to
a value greater than hourToStartScan.
- Subscribe to a feed that has BitTorrent enclosures. LegalTorrents.Com
has a compatible BitTorrent enclosure
feed.
- On the next sweep, the tool will launch BitTorrent for up to
maxPerDay new .torrent files. BitTorrent will leave one window on
your desktop for each new file. You will have to close the windows
manually. The downloaded files will be in your enclosures directory
(C:\Program Files\Radio Userland\enclosures\YYYY-MM-DD), having the
same name as the .torrent file, minus the .torrent extension.
Design Notes
-
Newly downloaded enclosures are tracked with a callback to
bitTorrentIntegrationSuite.callbacks.radio.downloadEnclosureCallback
that occurs just prior to each download. This callback adds a row to
bitTorrentIntegrationData.torrentQueue for each download whose
filename ends in ".torrent". [Yes we could use the mime type instead,
but other parts of the code assume a ".torrent" extension. We
won't be ready to handle files ending in other extensions
until we write code to inspect the .torrent file contents.]
-
We scan for new torrents from
bitTorrentIntegrationSuite.downloadTorrents, which runs every
minute between hourToStartScan and hourToStopScan. When a new
.torrent file is encountered, this proc checks that maxPerDay
hasn't been exceeded, launches BitTorrent on the file and sends
the output to the filename minus ".torrent", and then logs the
download.
Stuff we might add
- Should we have a browser-based front end?
- We can use file.bytesInFolder() to limit growth of the enclosures folder.
- Support OS X by putting an appropriate call to sys.unixShellCommand() in bitTorrentIntegrationSuite.osspecific.launchBT.
- Better-integrated BitTorrent clients? What is btdownloadheadless?
aegrumet@alum.mit.edu