Send download links directly to your qBittorrent instance (including Docker containers) with a simple right-click!
- 🖱️ Right-click context menu on any link
- 🐳 Works with qBittorrent in Docker containers
- 🔒 Securely stores your credentials
- 🔔 Desktop notifications for success/failure
- ✅ Built-in connection tester
- 🎯 Supports torrents, magnet links, and direct downloads
- 🍪 Cookie authentication for private trackers (including Cloudflare-protected sites like IPTorrents)
- ⚡ One-time setup, works forever (until cookies expire)
- Download all extension files to a folder on your computer
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (toggle in top-right corner)
- Click "Load unpacked"
- Select the folder containing the extension files
- Open qBittorrent
- Go to Tools → Options → Web UI
- Enable "Web User Interface (Remote control)"
- Set a username and password (if not already set)
- Note the port (default is 8080)
- Click OK
Your docker-compose.yml should expose the Web UI port, for example:
version: "3"
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- WEBUI_PORT=8080
volumes:
- ./config:/config
- ./downloads:/downloads
ports:
- 8080:8080 # Web UI port
- 6881:6881 # Torrent port
- 6881:6881/udp
restart: unless-stoppedMake sure:
- The Web UI port is exposed (e.g.,
8080:8080) - You can access the Web UI at
http://localhost:8080orhttp://YOUR_SERVER_IP:8080 - You know the username and password (default is usually
admin/adminpass, but check your container logs)
- Click the extension icon in Chrome toolbar
- Click "Open Settings"
- Enter your details:
- URL:
http://localhost:8080(or your Docker host IP) - Username: Your qBittorrent Web UI username
- Password: Your qBittorrent Web UI password
- URL:
- Click "Test Connection" to verify it works
- Click "Save Settings"
- Right-click any download link on a webpage
- Select "Send to qBittorrent" from the context menu
- A notification will confirm the download was added (or show an error)
- Check qBittorrent to see your download!
- ✅ Torrent files (
.torrent) - ✅ Magnet links (
magnet:?xt=...) - ✅ Direct download links (qBittorrent will handle them)
This is usually a CORS (Cross-Origin Resource Sharing) issue. qBittorrent needs to be configured to allow the Chrome extension to access it.
Fix for qBittorrent (non-Docker):
- Open qBittorrent
- Go to Tools → Options → Web UI
- Under "Cross-origin resource sharing (CORS)" section:
- Add
chrome-extension://*to the allowed origins - Or set it to
*to allow all (less secure)
- Add
- Click Apply and OK
- Restart qBittorrent
Fix for qBittorrent in Docker:
Add environment variable to your docker-compose.yml:
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
environment:
- WEBUI_CORS_ENABLED=true
- WEBUI_CORS_ORIGINS=chrome-extension://*
# ... rest of your configOr you can modify the qBittorrent config file directly in your Docker volume:
- Find your config:
./config/qBittorrent/qBittorrent.conf - Under
[Preferences]section add:WebUI\CSRFProtection=false WebUI\HostHeaderValidation=false - Restart the container:
docker restart qbittorrent
Alternative: Use HTTP instead of checking in browser
If you're accessing via localhost, try:
http://127.0.0.1:8080instead ofhttp://localhost:8080- Make sure it's
http://nothttps://
-
Check qBittorrent is running:
- Docker:
docker ps | grep qbittorrent - Normal: Check if qBittorrent is open
- Docker:
-
Verify Web UI is accessible:
- Open
http://localhost:8080in your browser - You should see the qBittorrent Web UI login page
- Open
-
Check Docker port mapping:
docker port qbittorrent
Should show:
8080/tcp -> 0.0.0.0:8080 -
Firewall issues:
- If using a remote server, ensure the port is open
- For Docker, check your firewall isn't blocking the port
-
Check credentials:
- Try logging into the Web UI manually with your username/password
- For Docker, check logs:
docker logs qbittorrent | grep password
- Double-check your username and password
- For Docker containers, the default is often
admin/adminpass - Try resetting credentials in qBittorrent settings
- Right-click on an actual link (not just text or images)
- Some websites block context menus - try a different site
- Reload the extension in
chrome://extensions/
- Check qBittorrent's download location settings
- Verify disk space is available
- Check qBittorrent logs for errors
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' qbittorrentcurl -i http://localhost:8080/api/v2/app/versiondocker logs qbittorrent 2>&1 | grep -i password- Credentials are stored securely using Chrome's sync storage
- They're encrypted by Chrome and synced across your devices
- HTTPS is recommended for remote connections
- Consider using a strong password for qBittorrent Web UI
qbittorrent-extension/
├── manifest.json # Extension configuration
├── background.js # Handles API calls and context menu
├── options.html # Settings page UI
├── options.js # Settings page logic
├── popup.html # Extension popup UI
├── popup.js # Popup logic
├── icon16.png # Extension icons
├── icon48.png
├── icon128.png
└── README.md # This file
This extension uses the qBittorrent Web API v2. Key endpoints:
/api/v2/auth/login- Authentication/api/v2/torrents/add- Add torrents/downloads
For more details: qBittorrent Web API Documentation
- This extension only communicates with YOUR qBittorrent instance
- No data is sent to any third-party servers
- Credentials are stored locally in Chrome's encrypted storage
- No analytics or tracking
Feel free to modify and improve this extension! Some ideas:
- Add download category selection
- Support for sequential downloading
- Pause/resume from extension
- View download progress
- Support for other torrent clients
Free to use and modify. No warranty provided.
If you encounter issues:
- Check the troubleshooting section above
- Verify qBittorrent Web UI works in browser first
- Check Chrome's extension logs (chrome://extensions/ → Details → Errors)
- Review qBittorrent logs for API errors
Made for easy torrenting! 🚀