Your own torrent search in 3 minutes. Free.
One readable file goes into a Cloudflare account you control, and you have a private search across several public indexes at a URL only you know.
- Free
- MIT licensed
- No card or domain
- Nothing installed
- Works on a phone
Before you start
- A Cloudflare account. Free. An email address and a password. No card, no domain.
- About three minutes, and a browser you can open a second tab in.
- Keep this page open. Every step opens Cloudflare in a new tab, so you can come back here.
You do not need to prepare anything else. Your key is being made in this browser right now, and both your key and your URL are shown at the end, in step 4.
Deploy it
One step at a time. Finish one, press the button at the bottom of it, and the next one opens.
-
1Sign in to Cloudflare
Open Cloudflare in a new tab and sign in. If you do not have an account, the same link creates one, and it is free.
Open Cloudflare in a new tabDo this before step 2, not after. If you are signed out when you press Deploy, Cloudflare sends you to a login page first, and the file does not survive that trip. You would arrive at an empty editor and wonder what went wrong.
-
2Deploy it to your account
This opens Cloudflare's deploy screen in a new tab with the file already loaded and your key already in it. Nothing to copy, nothing to paste.
Deploy to Cloudflare for freebuilding your linkOn that screen the file is shown under Code preview, so you can read it before you run it, and a name is filled in for you. Press Deploy. Cloudflare may add words to the name, which is fine.
The link has your key inside it, so treat it like a password and do not send it to anyone.
-
3Open your new URL
When the deploy finishes, Cloudflare shows your URL as a link. It ends in
.workers.dev. Open it.Your Worker answers with a small page of its own that says it is live, and it has a Finish setup button. Press that button.
It brings your URL back to this page, so you never have to read a long web address off one screen and type it into another. Nothing about your Worker is sent to any server on the way: the URL travels in the part of a link after the
#, which browsers keep to themselves. -
4Your URL and key
Your Worker sent its URL back. Both halves are below. Copy them somewhere you will still have next week.
This browser no longer has the key. Your URL arrived but the key that went into it did not. Saved keys are dropped after a week, and a different browser never had it.
It is not lost. Open that Worker in Cloudflare, press Edit code, and read the line near the top that starts
const API_KEY. The key shown below is a new one and belongs to no Worker yet.making oneBuild something on it
That answer is the whole API. Three routes, one header, JSON out.
/api/v1/searchThe search. Takes q, and optionallycat,limit,offset,sort,min_seeders,engines. Returnstorrentswith names, sizes, seeders, leechers andmagnetlinks./api/v1/enginesWhich indexes this Worker runs. Add ?probe=1and it asks each one and reports what came back./healthzWhether it is well, and which indexes are answering. Needs no key. Send the key as an
X-API-Keyheader on the first two. Everything is GET and returns JSON, so a fetch call is the whole integration. The full reference lists every field.Run it from a terminal
curl -H "X-API-Key: YOUR-KEY" \ "https://your-url.workers.dev/api/v1/search?q=big+buck+bunny&limit=5"
The Deploy button did not work
The link is long, because the whole file is inside it. This route works in every browser and ends at exactly the same Worker.
- Make an empty Worker. At dash.cloudflare.com, find Workers & Pages, which newer accounts call Compute. Then Create, the Workers tab, Start with Hello World. Name it, and press Deploy.
- Replace the code. Press Edit code, click inside the editor, select everything with Ctrl+A or ⌘+A, paste, and press Deploy again.
- Carry on from step 3.
Run it before you deploy it
The same file in Cloudflare's playground: an editor with a live preview
beside it, where you can type /healthz and watch it answer
before anything reaches your account.
Do not trust this. Verify it.
A stranger on the internet is asking you to put their code into your cloud account. Being suspicious of that is correct. Everything you need to check it is below, and all of it can be done before you deploy anything.
If you read code
- It is one file, and you can read all of it. No dependencies, no build step, no minifier, no bundler. What you deploy is what you read. About a few hundred KB, version unknown.
- Check it is what was published. Its SHA‑256, before your key is written in, is below. The identical file is served from this site at worker.js, and a public GitHub Actions run built it from worker/src/worker.js, which you can read in the repository. Download it and run
shasum -a 256 worker.js. - Search the file for
fetch(. Every outbound request goes to a torrent index in the engine list, or to this project's own version and feed files on GitHub Pages. There is no other host in there, and no telemetry. - Your key never leaves your browser. It comes from
crypto.getRandomValues, gets written into the copy of the file that goes into the deploy link, and sits after the#, which browsers do not send to servers. This page makes no network requests at all. Open your browser's network tab and watch.
SHA‑256 of the file, before your key is added
unknown
Show me the whole file
loading
If you do not read code
- Nothing is installed on your computer. There is no app, no extension, and no download. You are pasting one file into a website you control.
- It goes into an account you own and can wipe. You create the Cloudflare account, you can open the file inside it and read it, and you can delete the whole thing with one button whenever you like. See below.
- It cannot see anything of yours. A Cloudflare Worker is a small program that only answers web requests sent to its own URL. It has no access to your computer, your files, your other accounts, or anything else in your Cloudflare account.
- It downloads nothing. It asks public torrent sites the same question you would type into their search boxes, and hands you back the list. The links it returns are opened by whatever torrent app you already have, if you choose to open them.
- There is nothing to bill you for. The free plan covers 100,000 requests a day and no card is involved.
- Nobody else gets your URL. There is no public instance of this and no directory of other people's. The only one that exists is the one you make, and it needs your key to answer anything.
How to delete it
In Cloudflare, open Workers & Pages, click your Worker, then Settings, then Delete. It is gone immediately and the URL stops answering. Deleting the Cloudflare account itself removes everything at once.
What it does not promise
| Not anonymity | The indexes see your query and Cloudflare carries it. No search log is kept and request logging is switched off in the file on purpose, but that is a statement about logging and nothing more. |
|---|---|
| Not a client | It hosts nothing, stores nothing and transfers no file. It returns names, sizes, swarm counts and links. |
| Not perfect | Public indexes move domain, rate limit, and go down. /healthz tells you which ones are answering right now and which are not. |
Your responsibility, and the licence
Laws about what you may download differ from country to country, and so do the terms of the sites this queries. Complying with both is yours to do. Plenty of what moves over BitTorrent is meant to, including Linux and BSD images, Internet Archive material, public domain film, Creative Commons music and video, and large open scientific datasets, and the examples used here are Big Buck Bunny and Ubuntu for that reason.
This software is published under the MIT licence. That means, in the words of the licence itself, it is provided without warranty of any kind, express or implied, and the authors are not liable for any claim, damages or other liability arising from it or from its use. Nothing on this page is legal advice. You deploy it, you run it, and it is yours.