reklama

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)

Témata článku: Web, Technologie, Programování, Hudba, filmy, seriály, Pirátství, Torrent, BitTorrent, Javascript, HTML5, Popcorn, Torrents, Blender, Hollywood

7 komentářů

Nejnovější komentáře

  • Patrik Jerčík 9. 3. 2016 13:59:33
    No v první řadě jsou torrent clienty v prohlížeči už docela klasika....
  • lubokubo76 7. 3. 2016 12:41:42
    Načo je torrent?
  • Josef Řepil 7. 3. 2016 11:20:56
    A sakra, já myslel, že tahle levá už dávno neexistuje, že se tady vždycky...
reklama
Určitě si přečtěte

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

** V Brně byl velký výpadek služeb UPC ** Důvodem je překopnutý páteřní kabel ** V některých lokalitách služby stále nefungují

5.  12.  2016 | Jakub Čížek | 104

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

** Zmizí klasické vyhledávače ** Budeme programovat buňky ** Kvantové počítače překonají šifry

6.  12.  2016 | Jakub Čížek | 36

11 tipů na dobrý stolní počítač: od základu po herní mašiny

11 tipů na dobrý stolní počítač: od základu po herní mašiny

** Postavte si stolní počítač! Máme pro vás 11 vzorových sestav s rozpisem komponent ** Většina tipů cílí na hráče, věnujeme se ale i základnímu PC a počítačům na střih videa ** Nadělte si nový počítač třeba pod stromeček

5.  12.  2016 | Adam Kahánek | 74

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

** V notebooku s cenou nad 20 tisíc nesmí chybět kvalitní displej a rychlé úložiště ** Za dalších deset tisíc můžete dostat navíc styl nebo výkonnější komponenty ** Vybírat můžete z různých velikostí i konstrukcí

8.  12.  2016 | Stanislav Janů | 85


reklama