NAME
Net::BitTorrent::Tracker::WebSeed - HTTP/FTP Seeding (BEP 19)
SYNOPSIS
use Net::BitTorrent::Tracker::WebSeed;
my $ws = Net::BitTorrent::Tracker::WebSeed->new(
url => "https://archive.org/download/my_torrent/"
);
# Fetch a piece using segments mapped by the storage layer
my $data = $ws->fetch_piece([
{ rel_path => "file1.bin", offset => 0, length => 16384 }
]);
say "Successfully fetched piece" if $data;
DESCRIPTION
Net::BitTorrent::Tracker::WebSeed implements BEP 19 (WebSeeding). It allows a client to download pieces of a torrent from a standard HTTP or FTP server. This is highly effective for ensuring swarm availability when no regular BitTorrent seeders are online.
METHODS
fetch_piece( $segments )
Attempts to fetch a piece from the web seed.
Expected parameters:
$segments: An arrayref of segment hashrefs (mapped by Net::BitTorrent::Storage).
Uses HTTP Range requests to fetch only the specific bytes required for the piece. Automatically follows up to 5 redirects. Handles 410 Gone status codes by permanently disabling the web seed instance.
disabled( )
Returns true if the web seed has been disabled due to a 410 Gone error or persistent failures.
url( )
Returns the base URL of the web seed.
Architecture
For multi-file torrents, if the URL ends in a slash (/), the module automatically appends the relative path of each file within the swarm to build the target URL.
This module is designed to be called by Net::BitTorrent::Torrent when a piece cannot be found in the P2P swarm.
Specifications
BEP 19: WebSeed - HTTP/FTP Seeding (GetRight style)
AUTHOR
Sanko Robinson <sanko@cpan.org>
COPYRIGHT
Copyright (C) 2008-2026 by Sanko Robinson.
This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.