For a site I've been working on, the client needs a torrent tracker for creative commons/public domain files. My initial approach was simply to write a ruby script to parse uploaded .torrent files, connect to the tracker and use simple iteration through the peers to figure out which were seeds.
The problem is, that only worked with torrents being hosted internally. The client has specified that he'd like the ability to add/track torrents from public trackers, and I've had issues getting such a thing to work.
Main approaches/problems:
Public torrents are not always encoded according to the original BitTorrent spec. I think most torrent clients are built to handle this but the ruby libraries were choking on a lot of public torrents. I don't know enough about how BEncoding works in the begin with to edit the library to read weirdly encoded files
Parsing the output of ctorrent worked great for internal torrents, but given that it hasn't been updated in a very long time it can't connect to several major trackers for compatibility reasons seemingly
After a few days trying to get Azureus running headless under linux, I'm still getting the same error about the Apache Commons CLI jar file not being found (it's in the right place, the classpath is correct). So nice dice on parsing the logs out of that to get good data.
Aside from trying a crapload of other console torrent clients and trying to parse the output, would anyone be able to give me any ideas how to get seed/peer information on an arbitrary torrent file, that can deal with the breaks in standards common to public trackers and torrents?
Thanks in advance.