Btapp.js: BitTorrent in the browser
btappjs.com
btappjs.com
Not impressed.
We currently only support OS X Lion.
Enter your email below and we'll let you know when
support is available.
Could there be a more user-hostile useragent detect script?In any case; it's not a JS app, it's a plugin.
Source: I've ported most of the whole thing to pure angular.js. The code is riddled with UI elements directly being injected based on events, where it could have been a service API.
The browser could ask for permission (and possibly disable access to cookies or saved credentials for this tab), and it would be pretty safe. You can do that with a signed Java applet, and I believe it was possible with Flash and a couple other techniques, but they have all been killed or are on the way out.
Imagine what you could do... Bittorrent clients, something like Popcorn Time, Anonymous P2P, Anonymous instant messaging, Tor in the browser, ... or less nefariously, Mail clients, Mashups, ... all in simple HTML files, hosted anonymously on a free webhoster. You can build awesome stuff, but can't be hold accountable by your domain name, etc..
puts tinfoil hat on The paranoid part of me thinks the restriction is on purpose, to prevent this kind of app in the browser. Apple, Google & co. control the walled gardens of their App stores. They don't control the "open" web, but they have subtly pushed it in a direction where it is very powerful, but has very specific weaknesses.
There's a risk for DDOS though, which have a high cost. But XSS is a risk too, so I don't see why js sockets would be so dangerous.
That's not true about javascript.
Also the DDoS attack risk is low, it would happens only as people would visit infected websites or with XSS attacks. You can't have a botnet with js if the browser isn't turned on on an infected webpage.
BtApp.js itself runs on Torque, Bittorent's attempt at a headless version of uTorrent, that provides some browser interactions over the btapp.js api.
The thing is: Torque is kind of a black box. I've installed it and then quickly got rid of it as soon as I noticed it ran an 80mb process in the background of which i couldn't tell if it was downloading torrents or not. A headless torrent client is nice, but not if you can't see what it's doing.
The cool thing about this though it is that the api can connect to uTorrent (v3.3+)/BitTorrent client and that that's completely working in production already (at least on windows systems)
Just last week I've reverse engineered the protocol and made an angular.js implementation of this that removes all the dependencies to backbone and cleans up the code, separating UI-elements from the actual communication service. I've dropped support for Torque though.
Thus, born was DuckieTorrent:
Github:
https://github.com/SchizoDuckie/DuckieTorrent
Live demo:
http://schizoduckie.github.io/DuckieTorrent/
You can authenticate it to your local uTorrent/Bittorrent account, it'll slurp in and process all information it receives and you can control your torrents, start streaming them via HTML5, even launch your uTorrent's configured player, wether thats the internal one or VLC, no problem.
The whole trust could be built client side and the servers used only for handshaking clients. We could then imagine clients that are aware of multiple servers and distribute both the client webApp & server on different URLs and the whole network could somehow connect in a yet to be defined network structure for efficient traversal.
The one part missing is a w3c standard allowing web of trust signing of the packaged webApp, debian keyring style, to be able to host it anywhere and still trust some set of developers.
Can I download torrents directly in the browser? Is it an UI to some underlying service? Can I seed with pure JS?
Last time I checked there was no torque support for Linux (yet).
I do agree, they are terrible at explaining what they have.
Why you wouldn't just use the transmission API is beyond me.
Have you looked at the tabs on the top of the screen? (Getting started, code snippets, etc.)? There is even a video of live coding with it.