The Torrent API

What it does

The Torrent API brings torrent downloading to the ruby language. It allows for searching numerous torrent websites using an easy-to-use ruby DSL.

How it does it

Using Nokogiri or Hpricot, it takes a search term (and sometimes a category) and grabs the page and parses through the HTML to scrape the results, leaving you with just the most important information.

Usage

Search the default service (the pirate bay)

t = TorrentApi.new
t.search_term = 'james and the giant peach'
results = t.search

Query all torrent websites and work with those torrents

torrents = TorrentApi.new(:all, 'the royal tenenbaums')
torrent = torrents.first
torrent.name
=> "The.Royal.Tenenbaums.XviD.DVD-Rip"
torrent.seeds
=> 128
torrent.size # size is returned in bytes
=> 702840000.0

Torrent methods

:name, :seeds, :leeches, :category, :link, :magnet_link, :status, :size
t = TorrentApi.new
t.service = :demonoid
t.search_term = 'james and the giant peach'
results = t.search

Shorthand query all

TorrentApi.new(:all, "james and the giant peach")`

Available services

  • TorrentReactor
  • The Piratey Bay
  • Demonoid

How to help

Add more torrent sites!

To do

  • Refactor all three search engines to use a shared torrent model
  • More search engines!
  • Need to add/remove dependencies - awesome_print and nokogiri
  • Improve the ability to select a category (I think it defaults to a movie category right now)