-
-
Notifications
You must be signed in to change notification settings - Fork 995
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebTorrent support #4123
WebTorrent support #4123
Conversation
0c1e768
to
b06d2f3
Compare
is there any info on which clients are already working with it (webtorrent)? |
It's not released yet, more info in the previous messages. |
I hope in progress of this integration, this world need an implementation to share web-based p2p content. |
is webtorrent support built as a default feature, or does it need to be specified with some build flags? Can't find anything in Build Features or any examples on how to enable webtorrent. |
Is there a time frame for a new release with webtorrent support?
…--
Happy hacking
Petter Reinholdtsen
|
[Andrew]
Any updates on the timeframe for this PR? Would be great to see this
out! :)
Yeah. I hope it will bring webtorrent support to the VLC bittorrent
plugin, <URL: https://github.com/johang/vlc-bittorrent >. :)
…--
Happy hacking
Petter Reinholdtsen
|
Any news on when we'll get this build flag enabled by default in a release? |
hello friends ! it seems peertube is having trouble finding bandwidth and storage in these hard times. webtorrent support in mainstream clients may be a great step towards decentralized video hosting, which is arguably very needed when traditionnal models such as youtube are beginning to show their limits. seeing the code is already there, please make an official release with this support if you can! i am willing to help if any more development is needed. anyway, thanks for making this awesome software and making the world a better place. cheers!~ |
Unfortunately, PeerTube 6 (out now) has dropped WebTorrent support.
https://framablog.org/2023/11/28/peertube-v6-is-out-and-powered-by-your-ideas/ |
oof |
[Leo]
Unfortunately, PeerTube 6 (out now) has dropped WebTorrent support.
> We needed to settle a technical debt : v6 removes support for
> WebTorrent to focus on HLS (with WebRTC P2P). Both are technical
> bricks used to get peer-to-peer streaming in web browsers, but HLS is
> more fitted to what we are doing (and plan to do) with PeerTube
https://framablog.org/2023/11/28/peertube-v6-is-out-and-powered-by-your-ideas/
It will take a while before PeerTube 6 is deployed everywhere, and
PeerTube is not the only use of Webtorrent, so it would still be useful
with WebTorrent support in libtorrent.
But I am not quite sure I understand the difference between Webtorrent
and WebRTC P2P. If I understand Peertube using Webtorrent correctly, it
provide more available bandwidth per user and improved availability the
more users are looking at the same video. HLS with WebRTC P2P seem to
provide less available bandwidth per user and reduced availability the
more users are looking at the same video, but the description I found so
far was a bit unclear so I am not sure.
…--
Happy hacking
Petter Reinholdtsen
|
I would still love to see WebTorrent support included in the default builds of libtorrent, of course. The functionality has already been developed. It would be nice to get that enabled. |
I agree. I eagerly await a VLC bittorrent plugin with WebTorrent support in Debian, and this depend on a release of libtorrent with WebTorrent support. |
This PR suggests an implementation of the WebTorrent protocol inside libtorrent. With this add-on, libtorrent can be used to run hybrid peers seamlessly.
WebTorrent peers use the same application protocol as classic peers but with WebRTC Data Channels as underlying transport instead of uTP or TCP, allowing to run peers in web browsers. Due to the necessary connection signaling, WebTorrent peers require a specific WebSocket tracker to connect.
Since documentation seems to be lacking, I implemented the WebTorrent signaling protocol the best I could guess by looking at existing code. You can find useful information and the reference Javascript implementation here: https://github.com/webtorrent/webtorrent
The implementation requires two external dependencies added as submodules:
This PR does not add new external dependencies to libtorrent (it only requires OpenSSL or GnuTLS depending on the compilation option).
To test, you need a torrent file with at least one WebSocket tracker, for instance
wss://tracker.openwebtorrent.com
.You can find such a torrent file here: https://ageneau.org/upload/sintel.torrent
You can also run a web browser peer on this page: https://webtorrent.io/