Bitlove

Peer-to-Peer Love for Your Podcast Downloads.

API

Contents

Crawling the site

We try to put all publicly available data back into feeds and OPML resources. That way you can reuse standard software. You may create an issue if you need more functionality.

Torrent data by enclosure URL

Obtain torrent (and source) information by URL of the original podcast files. The endpoint allows multiple URLs to be processed at once. They query key must start with url and you should URL-escape the values for safety.

$ curl "http://api.bitlove.org/by-enclosure.json?url=http%3A%2F%2Fspaceboyz.net%2F~astro%2Fbitlove-show%2Fbl001-introduction.webm&url=http%3A%2F%2Fspaceboyz.net%2F~astro%2Fbitlove-show%2Fbl001-introduction.subs.mkv"

{ "https://spaceboyz.net/~astro/bitlove-show/bl001-introduction.webm": {
    "info_hash": "4cb67059ed6bd08362da625b3ae77f6f4a075705",
    "size": 19211729,
    "seeders": 11,
    "leechers": 0,
    "upspeed": 0,
    "downspeed": 0,
    "downloaded": 284,
    "sources": [{
        "torrent": "https://bitlove.org/astro/bitlove-show/bl001-introduction.webm.torrent",
        "permalink": "https://bitlove.org/astro/bitlove-show#bl001",
        "item.id": "bl001",
        "item.title": "BL001 Introduction",
        "item.published": "2012-05-04T19:30:00",
        "item.homepage": "https://bitlove.org/astro/bitlove-show#bl001",
        "item.payment": "https://flattr.com/thing/662636/Torrent-for-BL001-Introduction-on-Bitlove",
        "item.image": "https://bitlove.org/static/logo.svg",
        "feed.title": "The Bitlove Home Show"
    }]
  },
  "https://spaceboyz.net/~astro/bitlove-show/bl001-introduction.subs.mkv": {
    "info_hash": "d28e2a638c5a895f607cfb6a4967b91653a75070",
    "size": 19181967,
    "seeders": 3,
    "leechers": 0,
    "upspeed": 0,
    "downspeed": 0,
    "downloaded": 133,
    "sources": [{
        "torrent": "https://bitlove.org/astro/bitlove-show/bl001-introduction.subs.mkv.torrent",
        "permalink": "https://bitlove.org/astro/bitlove-show#bl001",
        "item.id": "bl001",
        "item.title": "BL001 Introduction",
        "item.published": "2012-05-04T19:30:00",
        "item.homepage": "https://bitlove.org/astro/bitlove-show#bl001",
        "item.payment": "https://flattr.com/thing/662636/Torrent-for-BL001-Introduction-on-Bitlove",
        "item.image": "https://bitlove.org/static/logo.svg",
        "feed.title":"The Bitlove Home Show"
    }]
}}

This API is CORS-enabled and in actual use by the widgets.

Torrent data by GUID

Are your file URLs non-predictable? Starting January 2015 you may tag like that:

<!-- RSS -->
<enclosure url="..."
           xmlns:bitlove="http://bitlove.org"
           bitlove:guid="6afe059f5b2ff7ba5590d5eb54be6c24" />
<!-- ATOM -->
<link rel="enclosure"
      href="..."
      xmlns:bitlove="http://bitlove.org"
      bitlove:guid="6afe059f5b2ff7ba5590d5eb54be6c24" />

If you don't provide per-enclosure GUIDs we'll just use RSS' <guid/> or ATOM's <id/> . Please be aware that this mechanism follows the definition of user-supplied input very closely. Anyone could lookup your GUIDs and put them in their own Bitlove-fed feeds.

Use by replacing url= with guid= in the API call.

Feed lookup by URL

Discover the URL of public feeds with their enclosures mapped to torrents:

$ curl "http://api.bitlove.org/feed-lookup.json?url=http%3A%2F%2Fc3d2.de%2Fpentaradio.xml&url=http%3A%2F%2Fc3d2.de%2Fnews-rss.xml"
{ "https://c3d2.de/news-rss.xml": [
    "https://bitlove.org/c3d2/news/feed"
  ],
  "https://c3d2.de/pentaradio.xml": [
    "https://bitlove.org/c3d2/pentaradio/feed"
  ]
}