WebTorrent – BitTorrent over WebRTC
webtorrent.io
webtorrent.io
Curmudgeony security issues aside, this undeniably feels like The Future™ and a big deal to watch out for. It's also one of those cases where a creator / maintainer makes a huge difference for long term viability in my opinion. Feross is crazy smart and has been working with all the related tech for a while now (via PeerCDN, Instant.io, etc, etc), and is just an all around respectful, nice guy, which is important for the continued development / community aspect.
You could have an onion routing protocol derived from tor or i2p that uses the webrtc data channel. You could even, like webtorrent, have the concept of hybrid nodes that existing network to the new webrtc-based one.
It is reasonable to consider that "web" maybe should not have this capability, and web browsers should provide intuitive UI controls for users to enable/disable the ability for sites to do this to you.
So maybe browsers should offer a setting to cap the data retrieved from each individual domain on metered connections, unless instructed otherwise on a domain-by-domain basis?
I noticed though that the video continued downloading even though I had hit pause.
Good news, though! Looks like we can use detect users on a metered connection with `navigator.connection`, or worst case look for a mobile user agent. Thanks for the feedback!
It seems to be done as a demo right now. Why not just add a big red "click here for a demo" thing?
There are very few things that you can reliably find out over the web. Whether or not a connection is metered isn't one of them.
It would be better to use a manual approval rather than a automated detection.
When I visit youtube, I know that the video is going to start immediately but that wasn't the case with this.
Please don't. There's nothing special about mobile devices that inherently makes them metered, so please do not assume this.
A demo that starts working immediately with no input required is a LOT more impressive and impactful than something behind a "try" button.
129.24 MiB is actually really small for a 15min video.
This is also not different (on desktop) from visiting a Youtube channel page which has an auto-play "intro" video. I just hope this at least tries to detect device/connection type before starting on cellphone. Wonder if there is an HTTP 'connection-metered' header or something like that...
Crazy
Edit: changed "your" to "you're" ;)
URL box -> about:config <RET>
Set _media.peerconnection.enabled_ to false.
EDIT: funny, even though I disabled WebRTC using it, the torrent from the site still automatically downloads...
It's a cool piece of technology and has a lot of neat uses.
http://caniuse.com/#feat=stream
http://caniuse.com/#feat=rtcpeerconnection
We're really at the mercy of open platform-minded engineers at Google, Apple and Microsoft though! I wonder what we can do to help support those folks.
Do you get a claim against your browser maker ?
Whereas loading a 150MB image from their server is using their bandwidth (that they're paying for) to serve you.
Legally, I have no idea. Morally, it'd be nice if they at least asked and actually had a working site if you say "no".
Unfortunately, after a certain file size it'll just crash your browser. It'd be great if there was a way to work with large (+2GB) files.
- Where is the downloaded data being stored? With a traditional bittorrent client I the data is written to disk. Since JS doesn't make raw disk access available, I'm assuming it's being kept track of in through some js api that tells the browser to store this data. What API is it using?
- Even when I finish downloading the video, the player doesn't allow me to seek to random positions in the video. It displays a "this is how much is buffered"[0] bar that is way smaller than the green bar at the top of the page indicating download progress. Why is this the case?
- As you can see in the screenshot[0], there's lots of nodes that are labeled with ip addresses that are not visible to my computer at all. Is this because the displayed ip addresses are self reported?
[0] - http://nacr.us/media/pics/screenshots/screenshot--17-46-37-2...
Not sure what the deal on your end is but I can seek immediately on page load, and the video begins there after buffer.
I'm not sure why you can't seek to random positions. It seemed to work for me, after a few second delay (presumably to issue commands to start downloading different blocks).
Those IP addresses are private network addresses. The machine you are connected to is probably behind a NAT and is connected to you through a different address. The UI is probably just showing the local address that that node reports.
Anther question: How do I open the file once downloaded ? (I use ublock, should the file be displayed in the rectangular area next to the graph ?
media.peerconnection.video.h264_enabled => true
C/D letters come with a 200-1000 € fee depending on the content and now it's trivial to make someone download stuff illegally in the background.
One big website in your country could implement this in the background with a list of know "C/D letters" triggering torrents, and the business model of these C/D letter writing laywers would be broken in half a year. Because if they target people that really didn't download anything knowingly, they will get lawyers themselves and go to court. And when the courts figure out that the old way of "proving" a download doesn't work any more, the business modell is broken.
Unfortunately there is collateral damage :/
There was a similar case last year that, fortunately, went very badly for the copyright attourneys. Thousands of users were redirected from an ad to copyrighted porn videos and then C/D'd. The attourneys got into a lot of trouble and even lost their license, but their clients still ran off with the money.
The case was only reviewed when it got media attention, but using torrents makes it even more difficult to prove the scam.
Still, you're right. This would only work at scale, after quite a long time and cause a lot of damage on the way. The website implementing this would probably also get sued into the ground.
Better get a Netflix subscription and/or install Kodi on some FireTV thingie...
Correct me if I'm wrong, but this poses a problem if you ever want to take WebRTC further (i.e. in a self-hosted mesh network).
I didn't see that you mentioned UPnP in the OP though, sorry. I'd assume downloading metadata from a signalling server if you don't need it for traversal is completely optional - most P2P networks have an initial list of peers to connect to to bootstrap new clients.
2 looked at network traffic and it seems to open separate TLS sessions per transferred data packet, not the most optimal thing to do, might be an artefact of being hosted on https. Probably a cpu bottleneck right there.
3 doesnt store anywhere (local/session storage).
My idea was a browser-plugin for youtube, that would take the downloaded video and start seeding it. On the other side, if a video has been blocked by YT, it would automatically use the torrent version.
- No support even in modern browsers by default [1]
- Don't want to [maybe] get into legal troubles if it's wrongly used
[1] http://caniuse.com/#search=webrtc
PS, apparently the caniuse info was wrong, since now it appears in green
Funny, Fx44 does support WebRTC
You can tag or organize the data locally and cache it, or return it sorted to the nodes which serve it to others. People don't give a shit about webpages for search, they care about information. The web is a big rss feed, and our old feedreader "google" stopped doing that well, and also we pay a massive privacy tax for that now.
I see this happening in ~2 years for really techie people and being standard in 5.
edit: elastic search, webkit, real time, distributed file systems, apache spark, google tensor flow. These ingredients will be used to make the new browser which browses information and returns that information not the actual web pages.
Complains it cannot play the file for not having Chrome with Mediasource. Why not serve an ogg or webm for crying out loud?
Also, why auto-start the download?!
After the download is finished, where can I watch the video? There's no link for watching it anywhere.
If I refresh the page the download starts again.
I realise this is just an experiment and kudos for that, but the author could have made some better choices re above.