WebTorrent: P2P videa v prohlížeči běhají překvapivě dobře

Roman Bořánek 19. 8. 2016

WebRTC nejsou jen videohovory. Nový projekt WebTorrent toto API používá pro P2P sdílení dat a nativní přehrávání videí v prohlížeči. Žádné pluginy netřeba, stačí jen HTML5 a JavaScript.

Protokol BitTorrent pro P2P sdílení souborů tento rok slaví 15. narozeniny a stále se těší velké popularitě. Na druhou stranu je pravda, že poslední roky už se nějak zvlášť nevyvíjí. Se zásadní, byť konceptuálně jednoduchou inovací teď přichází projekt WebTorrent. Jde o použití API WebRTC, které umožňuje torrenty streamovat přímo do prohlížeče namísto klasického spojení TCP/uTP.

O WebRTC se nejčastěji hovoří ve spojení s audio či videohovory přímo z prohlížeče, nicméně možnosti použití jsou mnohem širší. WebRTC umožňuje přímé spojení dvou prohlížečů a posílání v podstatě jakýchkoliv dat. A právě na tom staví WebTorrent. Projekt odstartoval Feross Aboukhadijeh a zaštiťuje ho společnost WebTorrent, která ho však podle slov autora nechce komercionalizovat. Tak jako tak, WebTorrent je svobodný software (licence MIT).

Co to je a jak to funguje?

Jako WebTorrent můžeme označovat víc věcí, primárně to ale je torrentový klient napsaný v JavaScriptu, který organizuje stahování zajišťuje navazování komunikace mezi peery. Samotný transport dat potom probíhá už přes zmíněné WebRTC. Peerové se hledají klasicky přes tracker protokol, který ale vzhledem k využití WebRTC musel být trochu poupraven. Autor tyto úpravy plánuje standardizovat prostřednictvím BEP (BitTorrent Enhancement Proposal).

V současnosti to tedy znamená, že BitTorrent a WebTorrent nejsou vzájemně kompatibilní. Dobrá zpráva je, že to do budoucna nebude představovat zásadní problém. Klienti mohou celkem snadno podporovat oba protokoly zároveň a uživatele rozdíl nemusí zajímat. Podporu WebTorrentu, resp. WebRTC, z významnějších klientů nabízí např. Vuze. Důležité je zmínit, že pro WebTorrent nemusíte mít odlišné torrenty. Na jednom torrentu mohou sedět BitTorrent a WebTorrent klienti a každý zkrátka bude komunikovat s tím, s kým to bude umět.

Znázornění (ne)kompatibility klientů pro BitTorrent a WebTorrent

Znázornění (ne)kompatibility klientů pro BitTorrent a WebTorrent

Pokud se WebTorrent alespoň trochu rozšíří, byla by hloupost, aby ho klienti nezačali podporovat. Ochuzovali by se tak o spojení s dalšími peery a typicky tedy i vyšší rychlost stahování. WebTorrent nelze brát jako konkurenci BitTorrentu, ale spíš jako vylepšení, které rozšiřuje možnosti využití. Navíc implementace WebRTC opravdu není nic světoborného, co by vyžadovalo mnoho prostředků, úsilí nebo co by snad mělo nepříznivý vliv na výkon klienta.

V rámci projektu vznikl také klient WebTorrent Desktop, dostupný pro Linux, Windows a OS X, který je právě hybridní – podporuje oba protokoly. Klient je napsaný v node.js, je opravdu jednoduchý a nemá téměř žádné možnosti nastavení. Ale funguje dobře. To se týká zejména integrovaného přehrávače videa, který zvládá také seekování. A překvapivě rychle. Při rychlosti stahování 20 Mbps přesun na vybranou (dosud nestaženou) pozici videa trval ani ne sekundu.

WebTorrent Desktop

WebTorrent Desktop

Webový klient = WebRTC + HTML5 + JavaScript

Ale teď k tomu hlavnímu. WebTorrent vznikl hlavně proto, aby dostal P2P video do webového prohlížeče. A to se mu daří náramně. Na webu projektu najdete ukázkové video, volně dostupný film Sintel. Tváří se jako klasické video v HTML5 hostované na nějakém serveru, ale místo toho se stahuje od X různých lidí, kteří video na stránce také přehrávají nebo těch peerů, kteří provozují klienta s podporou WebTorrentu.

Na webu je i pěkně znázorněno, jak se lehký javascriptový klient připojuje k dalším peerům a dostává od nich data. Ale kdyby tam takové znázornění nebylo, ani byste nepoznali, že defacto používáte BitTorrent. Se streamováním videa často bývají různé problémy, ale v tomto případě jsem se s žádným nesetkal. A to jsem vzhledem k tomu, jak je technologie nová, čekal spíš kostrbaté technologické demo. I v tomto případě je seekování velmi svižné.

Různé prohlížeče nepodporují všechny vlastnosti WebRTC, ale WebTorrent využívá pouze základní vlastnosti tohoto API, které by měly být podporovány všude. Chrome, Firefox, Opera, Edge a v podstatě každý další moderní prohlížeč, na který si vzpomenete, si s WebTorrentem poradí. Výjimkou je zatím Safari, nicméně i pro něj se podpora WebRTC připravuje. Na mobilních systémech je situace podobná a WebRTC zvládají téměř všechny oblíbené prohlížeče.

Vložení videa na webovou stránku je opravdu snadné. Stačí nalinkovat javascriptový klient a přidat adresu torrentu, případně rovnou jeho magnet URL. Opět připomeňme, že nemusí jít o torrent vytvořený pro WebTorrent, ale musí být k dispozici aspoň jeden seed, který WebTorrent podporuje, aby video v prohlížeči běželo. Autoři projektu se zaměřují hlavně na video, ale teoreticky není žádný problém technologii použít pro sdílení jakýchkoliv souborů.

Možnosti využití

Je to hezké, ale k čemu to je? Na tuto otázku neexistuje úplně snadná odpověď. Technologii samozřejmě mohou využít piráti, aby sdílení (a sledování) obsahu ještě usnadnili, ale to tu rozebírat nebudeme. WebTorrent by se celkem mohl hodit pro přehrávání videí v malém a středním rozsahu. Stačí založit torrent, spustit na jednom počítači s rozumnou konektivitou seedování a máte vystaráno. Nemusíte řešit hosting ani případné škálování, s tím už vypomohou návštěvníci.

widgety

Pak se ale nabízí otázka, proč radši nevyužít YouTube, Vimeo nebo nějaký další známý videoserver? WebTorrent bude spíš vyplňovat mezírky na trhu a používat se ve specifických případech, protože použití YouTube je přece jen snazší: nahrajete video a o nic dalšího se nemusíte starat. To ale vůbec nevadí. WebTorrent není služba, která by potřebovala určité množství uživatelů, aby přežila. Je to prostě otevřená a celkem jednoduchá technologie, která je a bude k dispozici.

Jisté omezení samozřejmě představuje fakt, že operátoři někdy rádi omezují P2P spojení. A někdy třeba nechcete odesílat data, abyste si nečerpali datový limit nebo omezovali jiné datové přenosy. Ale to by mělo jít v prohlížeči konfigurovat. WebTorrent ještě musí trochu dozrát, ale už nyní je zřejmé, že jde o povedený projekt, který dál rozšiřuje možnosti webových prohlížečů a který si své využití najde.

Našli jste v článku chybu?
Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle

120na80.cz: Pálení žáhy: která jídla ne a co nás uzdraví?

Pálení žáhy: která jídla ne a co nás uzdraví?

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Vitalia.cz: Pryč se zastaralým stravováním ve školách

Pryč se zastaralým stravováním ve školách

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Vitalia.cz: Fyzioterapeutka: Chůze naboso? Rozhodně ano!

Fyzioterapeutka: Chůze naboso? Rozhodně ano!