-
Notifications
You must be signed in to change notification settings - Fork 0
Usage Examples
Jacky He edited this page Jun 14, 2026
·
3 revisions
from torrentlib import Peer, Torrent, TorrentStatus
from torrentlib.Tracker import Query
info_hash = "1234567890abcdef1234567890abcdef12345678"
tracker_url = "udp://tracker.opentrackr.org:1337/announce"
peer_id = "-robots-testing12345"
torrent = Torrent(info_hash=info_hash, event=TorrentStatus.STARTED)
response = Query.single(
torrent=torrent,
url=tracker_url,
peer_id=peer_id,
port=6881,
)
for peer_addr in response.get("peers", [])[:5]:
try:
with Peer(peer_addr, torrent, peer_id) as peer:
if peer.metadata_size is None:
continue
peer.request_all_metadata()
peer.read_all()
if torrent.has_metainfo:
print(torrent)
files = torrent.get_files_info()
if files:
for _, file_info in files.items():
print(file_info["name"], file_info["length"])
break
except Exception:
continue