Редактор «Гиктаймс»
733,2
рейтинг
14 декабря 2015 в 15:32

WebTorrent: торренты через браузер. Без плагинов, чистый JavaScript



Теперь для скачивания и просмотра фильмов с торрентов не нужен отдельный торрент-клиент. Также как и для раздачи файлов по протоколу BitTorrent тоже не нужен отдельный клиент. Достаточно обычного браузера, поддерживаются Chrome, Firefox и Opera (десктоп и Android).

Всё это благодаря WebTorrent — гибриду BitTorrent и WebRTC. Скачивание и раздача происходят прямо через сайт. Встроенный плеер начинает показ фильма, как только скачано несколько процентов.

Для указания файлов на загрузку или раздачу работает сайт https://instant.io/. Там указывается магнет-ссылка или хеш для скачивания (например, как в заблокированных раздачах RuTracker).

Как вариант, стандартный интерфейс торрент-клиента реализован в неофициальном проекте βTorrent.



WebTorrent — детище стэнфордского выпускника, программиста Феросса Абухадиеха (Feross Aboukhadijeh). Это довольно известный разработчик, раньше он уже выступал с несколькими неординарными проектами. Например, показывал эксплойт HTML5 Fullscreen API для фишинговой атаки. В этом случае браузер жертвы принудительно переводят в полноэкранный режим, в котором отрисован интерфейс такого же браузера.

До этого разработчик создал пиринговую сеть доставки контента PeerCDN, которую продал Yahoo в 2013 году.

Последний проект Феросса может вдохнуть новую жизнь в торренты, потому что многие современные пользователи, пресыщенные онлайновыми видеосервисами в стиле Netflix, уже ленятся скачать торрент-клиент и не хотят раздавать файлы. WebTorrent делает это в фоновом режиме, незаметно доля человека, через обычный браузер, с помощью технологии WebRTC.

Может быть, в будущем с помощью протокола WebTorrent люди будут раздавать не только отдельные файлы, но и целые веб-сайты. Такие сайты, которые хостятся на компьютерах тысяч пользователей, нельзя будет ни закрыть, ни заблокировать.

WebTorrent — первый торрент-клиент, который работает в вебе, не требует плагинов, расширений или установки другого дополнительного ПО. Он полностью написан на JavaScript и использует WebRTC для честной пиринговой передачи данных.

Первые сырые версии WebTorrent появились пару лет назад, но к настоящему времени технология уже созрела для серьёзного использования. Более того, полгода назад даже сам Netflix в одном из job application указал знание WebTorrent как одно из желаемых требований к кандидату. Это значит, что даже большие компании рассматривают P2P-стриминг как потенциальную бизнес-возможность.

В самом деле, такая технология способна значительно сократить расходы на трафик и даже улучшить качество сервиса.



«Если бы Netflix использовал WebTorrent, пользователи получили бы видеопоток лучшего качества в пиковые часы, — говорит автор. — WebTorrent даёт возможность клиентам одного интернет-провайдера обмениваться видеофрагментами друг с другом, не покидая сеть провайдера. Это гарантирует наилучшее качество даже когда канал между провайдером и Netflix полностью забит».

К сожалению, пока не все браузеры поддерживают WebRTC, но есть основания полагать, что именно за такими децентрализованными технологиями — будущее веба.
Анатолий Ализар @alizar
карма
681,6
рейтинг 733,2
Редактор «Гиктаймс»
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (22)

  • 0
    А вот про распределенные сайты было бы поинтереснее почитать. Главным образом, как разослать уведомление по сети, что часть контента обновилась и кому именно её доставить? Это далеко не такая тривиальная задача, как потоковое скачивание пачки файлов, пускай и со сложной структурой. Получается должны распределятся, скорее, инструкции в какую-то исполняемую среду, но тут сотни векторов для эксплоитов и простой песочницей уже не обойтись. Хорошо внедрим подписывание сертификатами и каждому участнику сети нагенерим каких-нибудь отпечатков и будем их сверять: как сделать этот процесс распределенным? Блокчейн, ну тоже все далеко не самоочевидно. Для каждого сайта по блокчейну?

    В общем я все это к тому, что к распределенному вебу идти из этой технологии, как до холодного синтеза из нынешних технологий!
    • 0
    • 0
      • 0
        Так это все еще объединить нужно еще. Вы будете смеяться, но что-то мне видится в объединение этих технологий гипертекстовый фидонет!
  • +7
    Круто, а раздавать кто будет? Пушкин?
    • 0
      Пока смотришь раздаешь,
      возможно какую-то часть в кеш смогут закинуть и раздавать когда снова страницу откроешь в браузере.
      Нагенерят кучу ифреймов и под каждый кусочек локалсторадж заюзают.
  • +1
    Ждем поддержки webtorrents в uTorrent и rTorrent 9точнее libtorrent) тогда станет реально круто.
  • 0
    Пользуюсь instant.io, чтобы скидывать файлы сразу большу числу получаталей (до 10-15).
    Меня устраивает
  • +5
    Как удержать клиента в табе после завершения просмотра? То есть для стриминга видео с центрального хостинга — конфетка, а не технология. А вот для старых добрых торрентов не очень. Потому что там самым важным является наличие сидов долгое время. Долгое — это месяцы и годы.

    Самый длинный торрент, который я сидил (какие-то лекции по физике, выложенные русским университетом) у меня раздавались примерно месяцев 10 (потом мне понадобилось место, извините).

    Вторым вопросом является: где данные хранятся-то? В localstorage? Эм… В памяти? Эм2
    • 0
      webtorrent, пока не будут решены вопросы, озвученные вами, пока только как инструмент уменьшения локальных нагрузок на сайт, не для хранения файлов в p2p-облаке.
      но, если будет предложено адекватное решение по хранению файлов (доступ из браузеру к файловой системе, пусть ограниченный хотя бы типами файлов и каталогом) то да
      приложение 'в табе' возможно переедет в приложение в браузере (без таба) по типу тех же месседженеров (как работает hangout в chromium).
    • 0
      Как удержать клиента в табе после завершения просмотра?
      Например, смотришь очередной фильм = раздаёшь все уже просмотренные.
      • 0
        И тогда мы переходим к тому, где браузер «всё просмотренное» хранит. Хотя как идея — очень хорошо. На современных интернетах люди смотрят дольше, чем скачивание, так что рейт раздачи будет выше 1, плюс постоянность клиента сделает его ценным сидом, который в сети иногда появляется (такие сиды ценны, если у них редкие вещи).

        Но вопрос хранения совершенно открыт, потому что фильмотека на сотню фильмов — это явно не localstorage в браузере.
        • 0
          Хранит в blob' ах похоже. Т.е. в памяти.
  • 0
    Не могу понять, это можно использовать для лайв стриминга?
    • 0
      Нет. Это для онлайн просмотра торрентов.
  • 0
    Такие сайты, которые хостятся на компьютерах тысяч пользователей, нельзя будет ни закрыть, ни заблокировать.
    Ну, с этим вы, к сожалению, погорячились…
  • 0
    Залип на визуальной «молекуле» подключений
  • 0
    Произвольный торрент из Bittorrent в Webtorrent не грузится. Видимо гибриды его тоже должны грузить (Я думал они как прокси для любого торрента работают). WebTorrent похоже использует WebSeed.
  • 0
    И как оно будет ворочать BD-Remuxы по 35Гб? Особенно если на системном разделе осталось всего 10Гб, а сайт не предлагает другой путь для сохранения файлов?
    У меня кстати не заработало на совсем даже небольших файлах, после добавления магнета с rutor (в том числе и укороченного) просто ничего не происходит. Ссылку на открытый торрент с rutor тоже не смог съесть со словами Failed to fetch.
    • 0
      Это отдельная сеть. Для того чтобы через неё скачать в раздаче должны участвовать гибриды. Либо кто то должен перераздать сразу в ней. Как это сделать не создавая нового торрента я не понял. Хотя если указать WebSeed то данные загрузятся с него и будут раздаваться в WebTorrent.
  • 0
    Есть похожий проект jstorrent.com Работает как расширение в хроме. Можно выбирать куда качать. В общем создан по образу и подобию uTrorrent
  • 0
    Это ж Пегий Дудочник :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.