webtorrent/parse-torrent

BitTorrent v2 Support

leoherzog opened this issue · 11 comments

What version of this package are you using?
9.1.0

What problem do you want to solve?
I want to be able to detect the SHA-256 v2 hash of a v2 Torrent that is parsed with parse-torrent. This also means detecting btmh in addition to btih in Magnet links.

What do you think is the correct solution to this problem?
Adding a infoHashv2 key (or similar) to the resulting object that is generated by parse-torrent

Are you willing to submit a pull request to implement this change?
I will try and learn how parse-torrent works and see what I can do

It looks like we'd need to update magnet-uri upstream, as well as find an equivalent to simple-sha1 for SHA256?

Of course, @feross already beat us to it 😆

https://github.com/feross/simple-sha256

We'd accept a PR that added support for this. @leoherzog Are you interested in sending a PR? I just noticed that there's a PR for this already sent to magnet-uri, though it needs some work: webtorrent/magnet-uri#43

@feross What things need work still in webtorrent/magnet-uri#43 from your perspective?

webtorrent/magnet-uri#43 has been merged, and magnet-uri correctly passes in an infoHashv2 key to parse-torrent. The remaining scope for this issue (and future pull request) would be to add support for Torrent files, as Magnet URLs are now covered.

How is the status here?

v2 .torrent file support added?

I haven't had much time to look at or improve this, but feel free to contribute to the pull request

#91

I haven't had much time to look at or improve this, but feel free to contribute to the pull request

#91

Ok. Cool

milahu commented

parse-torrent 11.0.14 throws an error on v2-only torrents

Error: Torrent is missing required field: info.pieces

edit:

related: webtorrent/node-bencode#94

When this project was converted to an ESM package (https://github.com/webtorrent/parse-torrent/releases/tag/v10.0.0), my pull request #91 became pretty irrelevant. My work here would have to be thrown out and rewritten to add compatibility with v2 torrents and I don't have time to dive in and learn what would need to be done... but if someone's willing to take that on, that would be nice. Don't expect to hear much from the maintainers though. It was awaiting review for over a year and never heard anything regarding feedback or pull request status, then they moved forward with converting to ESM instead.

#91 (comment)