
Realtime streaming from torrents in the browser - 0x4139
http://iflix.io/
======
feross
This is neat, but what we really need is BitTorrent over WebRTC, for actual
decentralized BitTorrent in the browser. See
[http://webtorrent.io](http://webtorrent.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!).

~~~
sktrdie
Nice! Why not create a different protocol then if they're not yet compatible?
Adoption for a browser-based p2p streaming tool should be seamless. If the
only problem is BitTorrent integration, go your own way.

ps: your site seems down.

~~~
feross
Site is back up! I set up TLS today and made DNS changes. :)

> 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.

~~~
sktrdie
Would you happen to have a working demo of the webtorrent.js in the browser?

~~~
feross
Check out [http://instant.io](http://instant.io) which is powered by
WebTorrent

------
nimbusvid
I created (and later closed) a similar service using mega.co.nz instead of
torrents. The main problem I see with your approach is that you serve video
from your server (and presumably do the torrent fetch server side). This opens
you up to liability, makes you responsible for DMCA take downs and puts the
workload on the server.

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.

~~~
higherpurpose
This one is client-side:

[http://www.popcornexpress.me/](http://www.popcornexpress.me/)

It uses Bittorent's Torque plugin.

[http://blog.bittorrent.com/2012/07/06/introducing-
bittorrent...](http://blog.bittorrent.com/2012/07/06/introducing-bittorrent-
torque/)

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.

~~~
philtar
" 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.

~~~
feross
I am building a browser-based bittorrent client. Check it out:
[https://github.com/feross/webtorrent](https://github.com/feross/webtorrent)

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!).

------
caractacus
China is so far ahead of the west in real-time (and live) peer to peer
streaming. Look at video systems like QVOD (now dying after state
intervention), Xigua, JJVod: they all have a central tracker and use swarms of
users to supply realtime video streaming. PopcornTime was a decent example of
this but China's been doing it for _years_ \- it was live television streaming
over p2p first with PPLive, PPS, Sopcast, etc and this then morphed into
streaming of films and television. All use a slightly modified version of
bittorrent. Most use bittorrent hashes to mark content.

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.

~~~
toyg
_> 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.

~~~
caractacus
Safe is the word but BitTorrent Inc have a habit of throwing things at the
wall to see what sticks. They've released so many little products over the
years. Sync is one of the few examples that has gained some traction. I'd have
expected some kind of live streaming beta if there was a decent example
around. But from what I've read, he seems to want to market it to legit
networks and distributors and they are not going to do business with
BitTorrent Inc.

------
stefan_kendall3
Guys I just broke into some guy's house that's known to be suuuuuper
litigious. Check out all my selfies!

------
alkimie2
Just a couple of not-very-deep comments:

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.

~~~
0x4139
[http://i.imgur.com/EGQAKbt.png](http://i.imgur.com/EGQAKbt.png)

------
TD-Linux
What could possibly go wrong?

------
cantbecool
Awesome idea, but I don't see how this will last very long. I expect your host
will pull the plug in a few days to a week, especially if you're opening
yourself up to downloading and then hosting the content.

I run www.moviemagnet.net which surprisingly is hosted in the US, but hasn't
been taken down yet.

------
IMTDb
Creator of [http://tormovies.org](http://tormovies.org) and
[http://tv.tormovies.org](http://tv.tormovies.org) here.

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 ! :)

~~~
0x4139
sure thing dude, go ahead :), don't worry this is the least of my concerns, i
hope it will take off ^^

------
shmerl
BitTorrent doesn't order file fragments by design. So how can you stream it
without downloading the whole thing first (to the server at least)? Which
defeats the purpose of streaming really.

~~~
Macuyiko
You can. BitTorrent doesn't order file fragments by design, but clients can
choose to ignore this and request pieces in order. See Popcorn time and many
other implementations out there.

~~~
cbhl
Why don't the other clients in the swarm penalize the client for this
behaviour? Downloading all the fragments in order means that if the initial
uploader drops off, everyone is stuck.

~~~
rakoo
It kinda works here because the shared files are already very popular, and
there's a lot of seeders (ie peers who have 100% of the file and can share any
part).

It wouldn't work for unpopular files.

------
lukasm
In FF: 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...](http://ec2-54-68-78-110.us-
west-2.compute.amazonaws.com/details/6d27cf0d539339241c4597331ca6a56946d3bdfe).
This can be fixed by moving the resource to the same domain or enabling CORS.

Chrome Failed to load resource: net::ERR_EMPTY_RESPONSE

in p0rn mode just shows the player and nothing is going on.

~~~
0x4139
cors is enabled but sometimes it just hangs because of the traffic
[http://i.imgur.com/EGQAKbt.png](http://i.imgur.com/EGQAKbt.png)

------
malvosenior
Haven't got this to work yet. I'd love to see a BT streaming solution not as a
centralized service, but as a locally running app. Does such a thing exist?

~~~
0x4139
the machine is a 10 dollar digital ocean droplet, it's curently at it's peak,
this can be packed(and it will be) with node webkit

~~~
malvosenior
I would enthusiastically use this product. Please allow for specifying any
BitTorrent file and not just searching Pirate Bay. Kat.ph is much better :)

------
m0dest
Hosed. Getting timeouts for /details. 2 issues in general, though:

(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.

~~~
0x4139
EZTV YIFI and many more don't pack anymore the data inside rar files, and it
works, you can watch silicon valley from an EZTV torrent from here
[http://iflix.io/#/play/ef87a3f97c653d487dece0e6ea8e60b7731a5...](http://iflix.io/#/play/ef87a3f97c653d487dece0e6ea8e60b7731a5c24/0)

~~~
aroch
Yify torrents are total garbage at any rate, you'd be better off just not
watching whatever you wanted to watch rather than stare at the eyesore that is
Yify. Seriously, Yify encodes are like watching something through a window
coated in vaseline.

[http://screenshotcomparison.com/comparison.php?id=87460](http://screenshotcomparison.com/comparison.php?id=87460)

[http://screenshotcomparison.com/comparison.php?id=10115](http://screenshotcomparison.com/comparison.php?id=10115)

~~~
roghummal
Looks okay to me.

Do you have a pony in this race?

~~~
aroch
No...I'd rather not watch something fuzzy. If you think it looks OK, then you
may as well download proper SD rips. They'll look better with less
artifacting.

------
drdaeman
Doesn't work for me, even if I allow Facebook CDN. Search works, but then...

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...](http://ec2-54-68-78-110.us-
west-2.compute.amazonaws.com/details/$hash). This can be fixed by moving the
resource to the same domain or enabling CORS.

~~~
0x4139
try again, resized the machine, too many users

------
rglullis
Don't mean to hijack the thread, but has any of these stream-from-torrents-
services developed any kind of "magnet link metadata database"? By metadata, I
do not mean the common torrent metadata, but some kind of queryable index.

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...

------
benjymau5
When I can get the page to load (which i assume is due to the HN DDOS of love)
i still get "video format or mime type not supported" on Firefox 32.

------
jpdelatorre
There's another service that I use that exactly do the same thing and it works
well. [http://put.io](http://put.io)

~~~
0x4139
it's not the samething, iflix.io streams almost instantly (if it wasn't for
the huge load)

~~~
jpdelatorre
Well technically it's not but I think the objective is quite the same. It lets
me stream video from a torrent.

------
SimeVidas
I can confirm that it works in Chrome. (I tried with a Korra episode. It
started playing almost instantly, with a few image glitches here and there.)

~~~
atmosx
For me worked only for 'porn' which had a huge load of seeders. Not for
anything meaningful (which doesn't have 2500 seeders...)

------
ris
Nicely done. A(nother) webapp that refuses to do anything unless you allow it
to load facebook's javascript.

~~~
0x4139
it's just react nothing more

~~~
k__
I guess an app like this would be better off, if it didn't use the FB servers
at all.

~~~
0x4139
i can just take the react lib to host it on my own

~~~
k__
that's what I wanted to say :)

------
rotub
Searched and started playing an episode of the Simpsons on my iPhone within a
minute. Impressive!

------
nimbusvid
Can you use magnet links?

~~~
0x4139
yes, the id that you see in /details /play is the magnet link unique id

------
rileyjshaw

      Uncaught ReferenceError: React is not defined

~~~
fizerkhan
Make sure facebook is not blocked. Same problem for me since i am running self
control.

------
notastartup
How long until the creator gets arrested with a full military gear tactical
swat team and paraded before CNN as an evil technical mastermind hurting the
country's entertainment industry and an interview with MPAA ?

At 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.

~~~
roghummal
To be fair to our protectors,

they don't remember how to serve a warrant any other way.

------
imaginenore
I hope you have good lawyers.

