Realtime streaming from torrents in the browser
iflix.io
iflix.io
The project's goal is to build a browser BitTorrent client that requires no install (no plugin/extension/etc.) and fully-interoperates with the regular BitTorrent network. We use WebRTC Data Channels for peer-to-peer transport.
WebTorrent is designed to match the BitTorrent protocol as closely as possible, so when the time comes, existing BitTorrent clients can easily add WebRTC support and swarm with web-based torrent clients, "bridging" the web and non-web worlds.
WebTorrent is already working as a node.js bittorrent client (just do `npm install webtorrent -g` and use the `webtorrent` command), and as a web-based client (though the docs for this latter part are currently very lacking -- this will improve in the coming days!).
ps: your site seems down.
> Why not create a different protocol then if they're not yet compatible?
I want existing bittorrent clients to add WebRTC support. The task of convincing the existing clients to do this will be a lot easier if the protocol is unchanged except where absolutely necessary to accommodate the WebRTC signaling (peer introduction) process.
I don't want to get distracted by trying to improve the BitTorrent protocol itself. It works quite well, despite not being the most elegant for implementors.
And let's not even get started on the comparable differences in security (personal or code-wise) when running this all through Javascript training wheels, then through the browsers' secret optimization sauce, browser/plugin fracturing, then through the gamut of ads, fingerprinting, cookie drops, and who knows what else kind of tracking can be slipped in from here forward... Let's call it what it is; a cool, non-commercial, in-browser p2p file sharing protocol, not BitTorrent.
Bittorrent the network, now, lives because peers have an incentive to behave correctly and spread the content on nodes as much as possible. It's a specific use of the protocol, but not the only one. The problem is that many people (even technical) conflate the protocol with how it's used the most: spread stuff illegally. In order to do this there is a need for peers fetching parts out-of-order. But if, say, Netflix were to distribute its content over Bittorrent, it would be perfectly fine to stream in-order, because the Netflix peers all have all the content so there is no need to spread the content here.
And there already is an enhanced protocol, in the IETF pipeline: PPSP [0]. It integrates a lot of good things that were incompatible with Bittorrent yet desirable. It's also called swift (before it was cool), and has 2 implementations [1] [2].
[0] https://datatracker.ietf.org/doc/draft-ietf-ppsp-peer-protoc...
It's a handful of bytes per segment. Plus you can use SCTP with essentially no overhead. Emscripten uses it to emulate UDP.
If that's what these guys after, that's amazing :-)
In contrast NimbusVid was entirely client side. The drawback was that the source data needed to be a web friendly seekable format; you couldn't play an arbitrary video file.
It uses Bittorent's Torque plugin.
http://blog.bittorrent.com/2012/07/06/introducing-bittorrent...
Of course at that point you might as well install the real thing, rather than a plugin. It's a shame there isn't a standard web-based torrenting protocol. I imagine it's technically pretty hard to do, but even if it wasn't, now that MPAA is on W3C's board and owns it, and with Google, Microsoft and Apple also being in bed with them, there's slim to zero chance such a protocol will ever become reality.
Even if you think that, I don't think you should say it out loud. Lots of great things were created because people were dumb and tried to do the impossible. There's too much gloom and doom and I think that's putting people off. Not to say that we shouldn't highlight the issue, just more in a positive light i.e "X is really tough, but if it's done this could change the Y landscape"
Merely my opinion, of course.
WebTorrent makes BitTorrent work in the browser using WebRTC. It's designed to match the BitTorrent protocol as closely as possible, so when the time comes, existing BitTorrent clients can easily add support for this extension and peer with web-based torrent clients.
WebTorrent is already working as a node.js bittorrent client (just do `npm install webtorrent -g` and use the `webtorrent` command), and as a web-based client (though the docs for this latter part are currently very lacking -- working on it!).
One thing that's good that came from torque though is BitTorrent's RPC api (originally known as BtApp.js) , which I reverse-engineerd (Since it's some of the messiest JS code ever) into DuckieTorrent, it works just by passing your browser's torrent tasks to your already existing torrent client: http://github.com/SchizoDuckie/DuckieTorrent/
Maybe I should revive the VLC web plugin and the torrent input plugin :)
On the other hand, Popcorntime and other soft are getting installed by users, so maybe if plugins are easy to install, maybe they could work... (?)
Every plugin you install increases the surface area for attacks.
I still can't understand why this has been Bram Cohen's main focus for the last few years and he still doesn't have a working prototype.
I suspect he still doesn't have a working prototype he can safely monetize. I don't think the wants to move to China.
The service did nothing at all on Chrome with ad-block-plus installed.
On Firefox the service did show some very nice blue balls moving from left to right after I did a search on some common video content and selected it, but that was about it.
I run www.moviemagnet.net which surprisingly is hosted in the US, but hasn't been taken down yet.
Can I put a "Watch Live" link to iflix.io which would stream the specified torrent (known by it's hash) next to each torrent download button ?
I love the concept, and I think it's wonderful especially for mobile device users...
The only fear I have, as other have noted is that I do really see how you will be able to scale if it takes off, and how you will be motivated to maintain it if it does not :/
Cheers anyway ! :)
It wouldn't work for unpopular files.
This is not something new.
Chrome Failed to load resource: net::ERR_EMPTY_RESPONSE
in p0rn mode just shows the player and nothing is going on.
[0] https://forums.plex.tv/index.php/topic/102253-rel-bittorrent...
peerflix "magnet:?xt=urn:btih:44052304ac07aa461b4828c63c52a44f34df2ce7&dn=FIFA.World.Cup.2014.Group.B.Spain.vs.Netherlands.720p.HDTV.x264-&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337"
And then watch at http://localhost:8888 with your favorite player.(1) The BitTorrent protocol is not hospitable to linear downloading.
(2) Pirated video content is extremely incompatible with browser-based playback... stuff like MKV and AVI containers, DTS/AC3 audio, multiple audio tracks, segmented RAR files.
If this works even for vanilla MP4 content, I will be super impressed - but the browser is the wrong place for this type of media app right now.
e.g. for a video with a typical level of motion, if you want to achieve 1 Mbps, encoding at 854x480 is going to look significantly cleaner & sharper than encoding at 1280x720 (even when upscaled).
This is why adaptive streaming uses quality levels with varying dimensions. e.g. on Netflix, the low bandwidth streams are not 1920x1080, as that would look like garbage.
Do you have a pony in this race?
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://ec2-54-68-78-110.us-west-2.compute.amazonaws.com/deta.... This can be fixed by moving the resource to the same domain or enabling CORS.
What I have in mind would be some kind of mapping between magnet link and themoviedb (or tvdb, musicbrainz id, etc). Seems like an obvious feature for me...
Uncaught ReferenceError: React is not definedAt least use a server located in countries which US cannot freely exercise it's jurisdiction powers to buy you time. Hosting Digitalocean node in Singapore won't help.
they don't remember how to serve a warrant any other way.