What is torrra?
torrra is a Python tool that lets you find and download torrents without leaving your CLI. You can search for torrents and select indexers based on what you want to search. And download it to your system using libtorrent.
Features
- Search torrents from multiple indexers
- Fetch magnet links directly
- Download torrents via libtorrent
- Pretty CLI with Rich-powered progress bars
- Modular and easily extensible indexer architecture
Story behind torrra
I’m a kind of person who loves to do stuffs straight from the terminal. And yes I used to torrent using some torrent clients like qBittorrent. The flow was like, I go to some torrent search engine, copy the magnet uri, paste it in the client and hit download. You see that? it’s like 4 steps.
I wanted to simplify this, since I’m a terminal person- I found creating a CLI tool would be the best bet. And then torrra
was created.
ps: I’m just using this to download torrents send from my friends, yk.
Challenges
The biggest challenge I faced while creating torrra
was to find the right indexer. Because, I want the indexer to be server-rendered (SSR), only that way I can make this fast.
With a server-side rendered indexer page, I can easily scrape it using selectolax and httpx,
this combo is actually faster than bs4 with requests.
And the other one was anti-bot protection. If an indexer uses any kind of protection, for example- sites deployed on cloudflare has in-build anti-bot protection. This is not really good for us, and I tried cloudscraper, guess it’s not working now.
So the only solution to these are to find the perfect indexers which are server-rendered and has no anti-bot protection. That wasn’t easy- as most of the good ones has these measures. Finally I ended up with YTS.mx for movie torrents and magnetdl.hair for everything. And it went well!
How to install?
You can easily install this tool using pipx, with:
pipx install torrra
And boom! pipx installs torrra
in an isolated environment, also it installs libtorrent
in that same env. And finally you can run it by typing torrra
in the terminal.
There it is! just search something, select an indexer, select the torrent you want to download, enter the location and you will see a nice rich-progress bar showing the thing.
Contributing & Notes
This project is a weekend-hacker side project- built for fun and learning. It’s not a polished product (yet), but it works well enough for daily use!
If you run into any bugs, have suggestions, or want to help improve it, feel free to open an issue or even send a pull request. All contributions are welcome.