jwheels
jwheels

Reputation: 527

Torrent Tracker info hash GET Request- Python

I'm trying to connect to a torrent tracker to receive a list of peers to play bit torrent with, however I am having trouble forming the proper GET request.

As far as I understand, I must obtain the 20 byte SHA1 hash of the bencoded 'info' section from the .torrent file. I use the following code:

h = hashlib.new('sha1')
h.update(bencode.bencode(meta_dict['info']))
info_hash =  h.digest()

This is where I am stuck. I can not figure out how to create the proper url-encoded info_hash to stick into a URL string as a parameter.

I believe it involves some combination of urllib.urlencode and urllib.quote, however my attempts have not worked so far.

Upvotes: 2

Views: 2136

Answers (2)

Thanos Mitsiou
Thanos Mitsiou

Reputation: 194

well a bit late but might help someone.

Using module requests encodes the url by it's self. First you need to create a dictionary with the parameters (info_hash, peer_id etc). Then you only have to do a get request

response = requests.get(tracker_url, params=params)

Upvotes: 1

Armin Rigo
Armin Rigo

Reputation: 12900

I think that urllib.quote_plus() is all you need.

Upvotes: 0

Related Questions