9 ms·
Webtorrent – BitTorrent over WebRTC
- ChrisCinelli 11y agoFerros did a great job with this. Full stop
- BenoitP 11y agoServer down
- njaremko 11y agoThat was fast
- mburns 11y agohttps://github.com/feross/webtorrent https://github.com/feross/webtorrent
- CzarSpider 11y agoLatest archive.org crawl: https://web.archive.org/web/20150922121717/https://webtorrent.io/ https://web.archive.org/web/20150922121717/https://webtorren... Google cache (appears broken): http://webcache.googleusercontent.com/search?q=cache:https://webtorrent.io/ http://webcache.googleusercontent.com/search?q=cache:https:/... Edit: It appears that the OP's link was changed. Original was https://webtorrent.io/ https://webtorrent.io/
- mikemoka 11y ago"a browser-based WebTorrent client or "web peer" can only connect to other clients that support WebTorrent/WebRTC" until every torrent client supports it is not as useful as it could potentially be
- voltagex_ 11y agohttps://github.com/feross/webtorrent/issues/168 https://github.com/feross/webtorrent/issues/168 needs to happen first.
- J_Darnley 11y agoWhy would I ever want to do this in my browser? I cannot think of a larger waste of resources except for pdf.js.
- rmac 11y agochromeos
- sonthonax 11y agoIt's a proof of concept.
- tracker1 11y agoPDF.js allows for an inline/controlled display of a PDF, where you can control the interaction in a browser. Given, this is of limited use, and there are other solutions. That said, the browser will not return to only acting as a display conduit with no interactivity despite what some people would like to see... If you want a better platform than the browser for server-driven interactive applications not requiring you to install extra applications, then build one. To date, there hasn't been a better, more open option.
- kibwen 11y agoThe stronger argument for pdf.js is that you get to leverage the Javascript sandbox instead of having to sandbox a native code binary (or worse, support a plugin interface and hand over the keys to the system).
- revelation 11y agoExcept they, naturally, found that all this sandboxing was a tad too restrictive, and ended up adding Apple-esque exceptions for their own code. And in doing so, a critical vulnerability: https://www.mozilla.org/en-US/security/advisories/mfsa2015-78/ https://www.mozilla.org/en-US/security/advisories/mfsa2015-7...
- 11y ago
- guilamu 11y agoDown.
- striking 11y agoReinventing the wheel. Rather than restricting what browsers can send and making kludgy workarounds that waste resources, why don't we just allow browsers to send whatever they want?
- pjc50 11y agoSadly, that weaponises the browser into a tool for portscanning and exploiting the user's local network.
- striking 11y agoAnd you can't gate it behind a permissions dialog like Geolocation or something? Please.
- MichaelGG 11y agoThe WebRTC guys were really, really, against this. They wanted P2P data channels to always be available, saying that a permissions dialog would confuse people and be too pervasive. But when I asked for a concrete example that doesn't involve audio or video, I literally got "suppose you are using the web UI on a refrigerator, you might want a data channel to go direct to the fridge instead of to the webserver". At least BitTorrent is a more reasonable example. Furthermore, data channels break the security model of a browser just using HTTP as configured, as WebRTC bypasses your proxy settings without notice. WebRTC data channels should NOT be enabled by default and should cause a dialog, as shitty as that is. My approach is to disable it and stick my head in the sand and hope it'll go away, but people seem irrationally excited about it. Basically WebRTC right now is shittier than NetMeeting (1996) but "cool".
- striking 11y agoThank you for succinctly explaining most of the reasons I dislike WebRTC. Now if someone could explain why I'm getting downvoted to hell... 10 points gone so far. I've never experienced this. Are people really that uncomfortable with opinions? Perhaps I've slain someone's sacred cow :)
- griffinmb 11y agoIf anyone feels like testing it out, I was actually just playing with webtorrent a couple days ago: https://stark-springs-9580.herokuapp.com/ https://stark-springs-9580.herokuapp.com/ It's very basic, and doesn't have proper error messaging. Would recommend only attempting to stream mp4 (h264) if you're giving it a shot.
- Fastidious 11y agoDo you have this code on GitHub? Would love to take a look!
- griffinmb 11y agoI don't, unfortunately. The webtorrent docs are very straightforward though. And if you check their npm, they provide a link to cdn hosted source! Note: sorry for any grammar issues, on mobile now
- vital 11y agoLooking forward to a WebTorrent-based Popcorn-Time app, itself hosted over WebTorrent...
- diegorbaquero 11y agoWebTorrent's creator doesn't want it to be related to piracy. On the other hand I shared Inside Out to my whole Uni with WebTorrent. It worked.
- finnn 11y agohttp://popcorninyourbrowser.net http://popcorninyourbrowser.net used to be a thing using this. As you can see, it's down, but it's certainly a possibility
- chc4 11y agoI've been using https://instant.io/ https://instant.io/ a bit to share files with people. You don't have to care about captchas or size thresholds because you aren't storing anything on the server, except for the tracker file. The more people that download and stay on the page, the faster it will be for everyone else too. Of course, it's not perfect. It appears to try and load the entire file to memory to seed, which makes sense, but that means you can't transfer a 1GB file without using 1GB of RAM...
- diegorbaquero 11y agoCheck my client http://diegorbaquero.com/bTorrent/ http://diegorbaquero.com/bTorrent/ The help me seed it is not working atm, but the idea is that you don't have to stay seeding it.
- wdewind 11y agoI use http://www.put.io http://www.put.io for this and highly recommend it. If someone has already downloaded the tracker you are trying to get you get it instantly, so for anything even vaguely popular you are able to get it (or after the first person downloads the file the rest are just pulling directly from S3). They also have great customer service, ios and chromecast apps etc.
- toomuchtodo 11y agoSomeone has a swank Mac menubar app for Putio that's a browser helper; any magnet or regular torrent file gets added to your put.io queue simply by clicking the link within your browser.
- wdewind 11y agoOh I didn't know that, sounds like this: https://github.com/nicoSWD/put.io-adder/blob/master/README.md https://github.com/nicoSWD/put.io-adder/blob/master/README.m... thanks, I'll try it out.
- 11y ago
- jacquesm 11y agoCould a website use this to host/download torrents in the background unknown to the user?
- MichaelGG 11y agoYep that's basically what WebRTC data channels do. And the NYT was abusing it to get your "real" IP to fingerprint users better. WebRTC should always be gated behind permissions. Most uses are video/audio, which already require a prompt, so no problem. Other websites shouldn't have this capability, so annoying users is no problem. But that's not very palatable, as it means acknowledging that WebRTC data doesn't really belong on the wider web. Honestly, what are the real good uses for it outside of media? Games? WebTorrent? I'm rather annoyed that such a feature was deployed, giving any webpage the ability to override my proxy settings or otherwise change the normal browser networking behaviour.
- jacquesm 11y agoThat's a pretty bad risk then. In some countries downloading a torrent or hosting one can get you booted off the net or in even deeper trouble.
- MichaelGG 11y agoDownloading isn't a concern, as websites can already force you to download a file. <img src=...> The new risk is P2P connections that bypass HTTP settings, and perhaps uploading. (You could already upload by making a POST, so it's only in combination with P2P stuff that this is novel.) If WebRTC prompted or forced use of the HTTP connection settings in the browser, I'd have no issue with it.
- jacquesm 11y agoThat's true but this combination allows for first downloading then serving up illegal content to many consumers and the penalties for that are much harsher. A post would go to one place only (normally speaking) and would not suddenly allow your browser to become server, making you a point of distribution.
- raffomania 11y agoThere is a gratipay account for WebTorrent if you want to support them: https://gratipay.com/webtorrent/ https://gratipay.com/webtorrent/
- nyan4 11y agoBrowsers are some of the most complex and [therefore] vulnerable applications. Implementing more functionalities into them is really bad for security.
- Fastidious 11y agoPlease excuse my ignorance. Is Node required for this to work?
- griffinmb 11y agoNope! Just plain JS.
- avinassh 11y agoI have another question. Is it possible to write this in Python?
- zanny 11y agoYou can use a native webrtc library in Python to implement the webtorrent protocol. Half the goal of the project is that desktop torrent clients can eventually support it through webrtc helper libraries so they can act as hybrid clients that can seed to both browser and native participants.
- jd3 11y agosort of reminds me of that torrenttornado javascript extension by one of my favorite Mozilla add-on developers https://addons.mozilla.org/en-US/seamonkey/addon/torrent-tornado/ https://addons.mozilla.org/en-US/seamonkey/addon/torrent-tor...
- anarcat 11y agothis reminds me of http://ipfs.io/ http://ipfs.io/ although IPFS doesn't run natively in the browser (it's a go app) and has much wider objectives (ie. the whole web site is loaded from the swarm, not just specific media objects, and it is trackerless, essentially).
- Ir0nMan 11y agoQuite a nice file sharing implementation done here: https://file.pizza/ https://file.pizza/
- pepijndevos 11y agoI see one issue here. Who is going to seed? Someone keeping a web page open after they got the download is even less likely that someone keeping their torrent client running after they are done downloading.
- diegorbaquero 11y agoI'm working on a client that helps you seed the file for a while http://diegorbaquero.com/bTorrent/ http://diegorbaquero.com/bTorrent/ it's still on alpha stage