magnex

This library helps you search for torrents from multiple popular websites and APIs on the web.


Keywords
api, bittorrent, p2p, search-engine, torrent
License
Apache-2.0

Documentation

Magnex

This library helps you search for torrents from multiple popular websites and APIs on the web.

Dependencies

This library uses Erlang's built in httpc http/1.1 client to perform all web requests.

A JSON parser, which you will configure in your app and tell Magnex about.

A HTML parser, Floki.

Setup

Add the library

Add the library to your mix.exs file.

{:magnex, "~> 0.1.0"}

Tell Magnex about your JSON parser.

Because Magnex has no dependencies, you need to install your own JSON parser. Chances are you already have one set up in your mix.exs file. (I recommend Jason)

In your config.exs tell Magnex about your json parser. Here's an example using Jason:

config :magnex, json_library: Jason

Set your environment variable MAGNEX_APP_NAME.

We ask for this environment variable to allow Magnex to tell websites and APIs who is requesting the data. This value will be your app name.

Here's an example using a .env file.

export MAGNEX_APP_NAME=mycoolapp

Then just source .env in your terminal to load the environment variable.

You're good to go!

Examples

View our docs to see all supported features, but mostly you'll interact with these two functions.

  • latest/0

  • search/1

Here's an example for rarbg.

iex> Magnex.Crawlers.Rarbg.latest
iex> {:ok, [%Torrent{}...]}

iex> Magnex.Crawlers.Rarbg.search("big buck bunny")
iex> {:ok, [%Torrent{}...]}

Supported Websites/APIs

Here's a list of supported sites and APIs. If one isn't working, open up an issue for us.

  • rarbg
  • leetx
  • yts.am