WebTorrent: Alternativní BitTorrent, který běží v čistém Javascriptu

  • WebTorrent běží přímo v prohlížeči
  • Díky WebRTC si vystačí s Javascriptem a HTML5
  • Napsali jsme si primitivní přehrávač videí z P2P

Před dvěma lety se na scéně objevil kontroverzní Popcorn Time, který obalil klasický bittorrentové klient rozhraním, které na první pohled připomínalo webové filmotéky jako třeba Netflix. Divák klepl na plakát filmu a za pár okamžiků se už odkudsi z internetu začal přehrávat film.

Nemusel tedy tušit, že se v nitru programu ve skutečnosti film streamuje od ostatních uživatelů, kteří jej mají zrovna na počítači a samotný divák jej stejně tak nabízí dalším zájemcům, což je ve většině vyspělého světa včetně České republiky ilegální.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Pirátský Popcorn Tiem způsobil v Hollywoodu šok. BitTorrentový klient najednou dokázal ovládat každý zelenáč, což bylo nebezpečné (pro obě strany).

Původní Popcorn Time si pro svoji jednoduchost získal ohromnou popularitu a rozeštval proti sobě Hollywood, který si to nenechal líbit, a brzy se mu podařilo přehrávač zlikvidovat. Jenže jakmile jedna verze programu zkolabovala, na scéně se brzy objevil nový funkční klon. Tak je tomu dodnes – poslední verze sídlí na adrese popcorntime.sh.

Webový BitTorrent poprvé

Ve stínu desktopového Popcorn Timu se loni na scéně objevilo i několik čistě webových verzí, které nevyžadovaly instalaci žádného speciálního softwaru. Jednou z nich byl i Browser Popcorn nebo PopcornInYourBrowser(oba už dávno neexistují), který přehrával filmy přímo pomocí HTML5 a k samotnému streamování používal službu Coinado, která již také utichla, nicméně jsem se o ní zavčas rozepsal v samostatném článku.

Klepněte pro větší obrázek Klepněte pro větší obrázek
PopcornInYourBrowser streamoval filmy z BitTorrentu skrze službu Coinado a HTML5

Coinado fungovalo jako jednoduchá HTTP brána do světa BitTorrentu. Samotný torrentový klient tedy běžel na serveru služby a vy jste po zadání identifikátoru torrentu získali přímo cílová data – třeba MP4 video. Server byl rychlý a prodleva před začátkem streamování do deseti sekund, nicméně i Coinado pochopitelně brzy utichlo, protože se jeho činnost nezamlouvala hostingové společnosti.

Klepněte pro větší obrázek
Stačilo znát ID torrentu a zkrze Coinado jste jej mohli stáhnout jako běžný soubor, nebo přímo streamovat do HTML5 tagu <video>

Webový BitTorrent podruhé

Jenže ani tím důvtip komunitních vývojářů neskončil, a tak jsme na začátku února psali o speciální plugin Torrents Time, kterou nainstalujete na PC, a pak budete moci v prohlížeči opět jednoduše streamovat video z torrentů. Aplikace v podstatě na počítač nainstalovala torrentový klient, který pak může webová stránka použít pro přehrávání v komponentě HTML5.

Klepněte pro větší obrázek
Torrents Time kdesi na půli cesty: Sledování uvnitř prohlížeče, ale po instalaci speciálního programu do počítače. To není elegantní řešení.

Webový "BitTorrent" potřetí a konečně kompletně v JS

I v předchozím případě se ale opět jedná o instalaci nějakého těžkého desktopového softwaru. Z hlediska designu je to vlastně cesta zpět. Co kdyby někdo napsal celý torrentový klient v Javascriptu? No, ono k tomu také už dávno došlo. Jedná se o JS knihovnu WebTorrent, která umožňuje jako stahování z alternativní torrentové P2P sítě, tak seedování a tedy sdílení dat dál, přestože to na rozdíl od klasického bittorrentového klientu nedělá automaticky.

WebTorrent má jedinou slabinu. Neumí komunikovat přímo se sítí BitTorrent a má tedy své vlastní torrenty.

Klepněte pro větší obrázek
Jednoduchý testovací přehrávač s využitím knihovny WebTorrent a streamování filmu Sintel, který se šíří pod svobodnou licencí

Programátorům se podařilo torrentový klient přepsat do Javascriptu hlavně díky využití multimediální P2P technologie WebRTC, se kterou si dnes poradí jak Chrome, tak Firefox, Opera a Microsoft Edge.  V nejnovějších verzích těchto prohlížečů by tedy měl WebTorrent fungovat.

Samotná JS knihovna nabízí hromadu pokročilejších funkcí, ale i naprosto primitivní použití, kdy dokážete streamovat třeba video z P2P sítě opravdu jen s několika málo řádky kódu a to bez jakéhokoliv doplňku, či instalace speciálního pluginu.

Přehrávač na obrázku výše pohání tento jendoduchý kód. Veškerou pokročilou práci provádí javascriptová knihovna WebTorrent: 

var client = new WebTorrent();
 
function init(){
 // Po klepnutí na ENTER zpracuj odkaz na torrent
 document.getElementById("torrentlink").onkeyup = function(e){
 if(e.keyCode == 13){
 // Odkazem na torrent může být URL nebo třeba magnetický link
 var torrentlink = document.getElementById("torrentlink").value;
 // Předám torrent klientu
 client.add(torrentlink, function(torrent){
 // Zvolím z torrentu první (hlavní) soubor
 var file = torrent.files[0];
 // Začnu jej stahovat a připojím jej do značky <video> s identifikátorem #player
 file.renderTo("#player");
 // Každé tři sekundy zobrazím rychlost stahování
 setInterval(function(){
 document.getElementById("status").innerHTML = "Rychlost: " + 
 Math.round(torrent.downloadSpeed*8/1E6) + " Mb/s" + 
 " Staženo: " + Math.round(torrent.downloaded/1E6) + " MB";
 }, 3000);
 });
 }
 };
}

Hollywoodu se nejspíše tato technologie opět nebude líbit, nicméně jde opravdu jen a pouze o technologii a ta je zcela legální. Ostatně i distribuovaný systém BitTorrentu, ve kterém se WebTorrent inspiroval, je sám o sobě zcela legální a byla by osudová chyba na něj koukat skrz prsty jen proto, že je zprofanovaný warezem, který bez jakýchkoliv debat tvoří drtivou většinu jeho současného využití.

WebTorrent je pak ukázkou výborného a funkčního skloubení dvou technologií – multimediální WebRTC z rodiny HTML5 a obří distribuované komunitní sítě, nad kterou nemá naprosto nikdo kontrolu – jen její samotní členové.

A nakonec krátká ukázka (video je zdánlivě trhané, protože jsem obrazovku snímal při 15/fps)

Diskuze (8) Další článek: Týden Živě: Když se myš nechtěně promění v klávesnici

Témata článku: Web, Technologie, Hudba, filmy, seriály, Programování, Torrent, Pirátství, BitTorrent, Java, Javascript, Bit, Speciální program, Legální streamování, Ohromná obrazovka, Jednoduchý test, Plak, Hlavní soubor, Hollywood, Blender, Běžný soubor, Torrents, Plakát, Půl cesty, Popcorn, Krátká ukázka, Elegantní řešení


Určitě si přečtěte

WALL-E vyfotil Zemi ze vzdálenosti 1 milionů km

WALL-E vyfotil Zemi ze vzdálenosti 1 milionů km

** Malá sonda s přezdívkou WALL-E pořídila fotografii Země a Měsíce ze vzdálenosti 1 milionů km ** CubeSat letí se sondou InSight k Marsu ** InSight přistane na Marsu 26. listopadu

Petr Kubala | 4

Proč autopilot Tesly bourá? Test dává odpověď: může za to řidič!

Proč autopilot Tesly bourá? Test dává odpověď: může za to řidič!

** Britové otestovali Teslu v režimu autopilota ** Skončilo to nárazem Tesly do stojícího auta ** Kdo je na vině? Řidič

Karel Kilián | 55

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

** Teplotní extrémy dokážou překvapit. Seznamte se s rekordy v Česku i ve světě ** Rekordní hodnoty jsou mnohdy až k neuvěření ** Zjistěte, kdy ke bylo největší horko, zima, déšť či vítr

Karel Kilián | 7

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

** Total Commander je na Windows takřka legendou ** Licence však stojí více než tisíc korun ** Našli jsme pro vás deset alternativ dostupných zdarma

Karel Kilián | 125

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

** Systém Windows 10 umí spoustu užitečných drobností ** O mnoha praktických funkcích pravděpodobně ani nevíte ** Poznejte užitečné tipy, které se vám mohou hodit každý den

Vladislav Kluska | 33

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28


Aktuální číslo časopisu Computer

Kdy necháme řídit chytrá auta?

6 Wi-Fi Mesh systémů ve velkém testu

Srovnali jsme 7 sportovních kamer

Znáte pravidla pro létání s drony?