This is a Stremio addon that provides movies and series indexed by Zooqle from RARBG, KAT, YTS, MegaTorrents and other torrent trackers.
- Includes 36,000+ movies and 1,600+ series from 2,200+ trackers
- Many videos include audio tracks in different languages
- Formats stream titles in a user-friendly way (see the screenshot)
- Works in Stremio v4 and v3.6
- Supports Docker out of the box
- Caches results in memory or Redis
- Limits the number of concurrent requests to avoid overloading the API
- Supports HTTPS proxy
- Configurable via environment variables
- Prints a nicely formatted status message when run
The addon is a web server that fetches torrent files from Zooqle, which indexes them from various trackers. It uses environment variables for configuration and includes a handful of npm scripts to run with or without Docker.
IMPORTANT: it requires a Zooqle account to scrape magnet links from movie pages. Before starting the addon, register on Zooqle and then set the STREMIO_ZOOQLE_USERNAME
and STREMIO_ZOOQLE_PASSWORD
environment variables to the corresponding values.
To install and quickly start the addon, do:
git clone https://github.com/naughty-doge/stremio-zooqle
cd stremio-zooqle
yarn # or `npm install`
yarn start # or `npm start`
By default the server starts on localhost:80
in development mode and doesn't announce itself to the Stremio addon tracker. To add the addon to Stremio app, open its endpoint in the browser and click the Install button, or enter the URL in the app's Addons section.
In order for the addon to work publicly, the following environment variables must be set in addition to the account variables:
NODE_ENV
toproduction
STREMIO_ZOOQLE_ENDPOINT
to a public URL of the addonSTREMIO_ZOOQLE_ID
to a non-default value
Note: since this addon scrapes pages, it is recommended to run it behind a proxy and use Redis caching.
The code is written in ES7 and then transpiled with Babel. It is covered by a suite of Jest tests, and the staged files are automatically linted with ESLint. The transpiled files are included in the repository: this makes for quicker start and eases deployment to different environments such as Docker and Heroku.
Each of these scripts can be used with yarn <script>
or npm run <script>
:
start
launches the addonprod
setsNODE_ENV
toproduction
and launches the addondev
setsNODE_ENV
todevelopment
and launches the addon with node inspector activatedtest
to run tests with Jestbuild
builds the addon in thedist
dir (add-w
to watch)
docker-build
builds the Docker imagedocker-start
launches the addon in astremio-zooqle
Docker containerdocker-dev
setsNODE_ENV
todevelopment
and launches the addon in astremio-zooqle
Docker containerdocker-prod
setsNODE_ENV
toproduction
and launches the addon in astremio-zooqle
Docker containerdocker-stop
stops the Docker container
When run in Docker using these scripts, the variables from the current shell are passed to the Docker container.
To configure the addon, set the following environment variables before running it:
NODE_ENV
— when set toproduction
, the addon will announce its endpoint to the Stremio addon trackerSTREMIO_ZOOQLE_USERNAME
— Zooqle username, required (unset by default)STREMIO_ZOOQLE_PASSWORD
— Zooqle password, required (unset by default)STREMIO_ZOOQLE_ID
— addon identifier, must be non-default in production mode (defaults tostremio_zooqle
)STREMIO_ZOOQLE_ENDPOINT
— base URL to use in the endpoint, must be public in production mode (defaults tohttp://localhost
)STREMIO_ZOOQLE_PORT
— port to listen to (defaults to80
)STREMIO_ZOOQLE_EMAIL
— email address that can be used to contact you (unset by default)STREMIO_ZOOQLE_PROXY
— HTTPS proxy address to route all the outbound requests to (unset by default)STREMIO_ZOOQLE_CACHE
— 0 to turn caching off, 1 to cache in memory, or a Redis URL (e.g.redis://example.com:6379
) to cache in Redis (defaults to 1)
The addon also respects environment variables commonly used by many hosting providers (e.g. Heroku):
PORT
— fallback forSTREMIO_ZOOQLE_PORT
EMAIL
— fallback forSTREMIO_ZOOQLE_EMAIL
HTTPS_PROXY
— fallback forSTREMIO_ZOOQLE_PROXY
REDIS_URL
— fallback forSTREMIO_ZOOQLE_CACHE