Create a Web-Seeded Torrent in qBittorrent
Create a torrent with an HTTP web seed in qBittorrent. Set the correct file paths, check byte-range support, and test before publishing.

To create a torrent with a web seed, host an identical copy of your files on a web server, then add its URL to the torrent creator’s Web seed URLs field. Publish the resulting .torrent file so downloaders receive both the torrent metadata and the web-seed address.
A web seed supplies file data over HTTP rather than through a BitTorrent peer connection. Supporting clients can combine those bytes with pieces from peers; the server does not need special BitTorrent software or a seeding script. This guide uses the BEP 19 “GetRight-style” web seed, stored in the torrent’s url-list field. BEP 19
Only distribute files you have permission to share, and use hosting you control or are authorized to use.
1. Host the exact files at stable URLs
Keep a complete local copy for torrent creation and upload an identical copy to your web host. Use direct file URLs—not a download page, login screen or share-preview page. Prefer a stable address without expiring access tokens.
The important distinction is whether you select a file or a folder when creating the torrent.
Single-file torrent
For a local file named open-data.zip, enter the full hosted file URL:
https://downloads.example.org/releases/open-data.zip
A URL ending in / instead tells the client to append the torrent’s name. Using the explicit file URL avoids that ambiguity.
Multi-file torrent
Suppose you select this local folder:
open-data/
README.txt
tables/data.csv
Host the files at these paths:
https://downloads.example.org/releases/open-data/README.txt
https://downloads.example.org/releases/open-data/tables/data.csv
Enter this parent-directory URL as the web seed:
https://downloads.example.org/releases/
The client appends the torrent’s root name, open-data, and each relative file path. Entering /releases/open-data/ would duplicate the root folder in the constructed path. These single-file and multi-file rules come from BEP 19 and libtorrent’s torrent-creation documentation.
2. Check HTTP byte-range support
Web-seed clients need to retrieve portions of files. Test the actual public file URL, including any CDN in front of your host, with a small range request. For a file larger than 1,024 bytes:
curl -L -D - --range 0-1023 --output range.bin \
'https://downloads.example.org/releases/open-data.zip'
Look at the final response after any redirects. A successful response should contain 206 Partial Content and a matching header such as:
Content-Range: bytes 0-1023/5000000
The number after / is the full file size; yours will differ. A 200 OK response with the entire file means that request was not served as a partial response. Fix range handling before relying on the host as a web seed. HTTP range requests
For a folder torrent, test the individual file URLs—not just the directory URL.
3. Create the torrent in qBittorrent
The following controls are present in the qBittorrent 5.3 desktop Torrent Creator:
- Open Torrent Creator, then choose Select file or Select folder.
- Select the local content whose bytes match the hosted copy.
- If Torrent format is available, choose V1 for this example. Leave Piece size at Auto.
- Review Ignore dotfiles. If enabled, names beginning with
.are excluded; disable it if those files belong in your release. - For ordinary public distribution, leave Private torrent unchecked. Put any tracker announce addresses you are authorized to use in Tracker URLs, not in the web-seed field.
- Enter the hosted address in Web seed URLs. Put each additional mirror on its own line, using the same layout and identical content.
- Enable Start seeding immediately if you also want your local client to seed.
- Click Create Torrent, choose where to save the
.torrentfile, and wait for hashing to finish.
The creator interface defines these fields; its implementation accepts one web-seed URL per line and adds the torrent for seeding when requested. Creating the torrent hashes the local files—it does not upload them to your web host. Torrent-creation code
4. Test, then publish the .torrent file
Before announcing the release publicly, stop your original BitTorrent seeder and load the saved .torrent into a separate client with an empty destination. Confirm that it downloads successfully and that your web server’s access logs show requests for the expected files. For a web-seed-only test, confirm that no BitTorrent peers supply data during the download; otherwise, completion alone does not prove the web seed can supply the whole release. This tests the published torrent rather than a manually added source in your own client.
Publish that .torrent alongside your release. Do not rely on a bare info-hash magnet link to preserve the web seed. BEP 19 places url-list outside the info dictionary, while peer metadata exchange transfers only that dictionary. The original web-seed list therefore does not travel through ordinary metadata exchange. BEP 19 · BEP 9
If you also offer a magnet, keep the .torrent download available. See how magnet links retrieve metadata for the distinction.
If the test fails
- 404 errors: Check the constructed path, especially a duplicated root folder in a multi-file torrent.
- 403 errors or HTML responses: Use an authorized direct-file endpoint that does not require login, cookies or browser-only access.
- Hash failures: Compare the hosted copy with the local original. BEP 19 requires clients to close the connection when a downloaded piece fails verification and says the URL should be discarded.
- No HTTP requests: Confirm that the saved torrent contains the URL and that the downloading client supports web seeds.
Keep published files unchanged. If the release content changes, create and publish a new torrent; replacing bytes at an existing URL breaks the old torrent’s verification. BEP 19