webtorrent / parse-torrent

Parse a torrent identifier (magnet uri, .torrent file, info hash)
https://webtorrent.io
MIT License
441 stars 82 forks source link

BitTorrent v2 Support #88

Open leoherzog opened 3 years ago

leoherzog commented 3 years ago

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

leoherzog commented 3 years ago

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

leoherzog commented 3 years ago

Of course, @feross already beat us to it :laughing:

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

feross commented 3 years ago

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: https://github.com/webtorrent/magnet-uri/pull/43

leoherzog commented 3 years ago

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

leoherzog commented 3 years ago

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.

B1773rm4n commented 2 years ago

How is the status here?

mepanko91 commented 2 years ago

v2 .torrent file support added?

leoherzog commented 2 years ago

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

https://github.com/webtorrent/parse-torrent/pull/91

mepanko91 commented 2 years ago

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 1 year ago

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

Error: Torrent is missing required field: info.pieces

edit:

related: https://github.com/webtorrent/node-bencode/pull/94

leoherzog commented 1 year ago

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.

https://github.com/webtorrent/parse-torrent/pull/91#issuecomment-1194491669