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, но есть основания полагать, что именно за такими децентрализованными технологиями — будущее веба.
    Метки:
    Поделиться публикацией
    Комментарии 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
      Это ж Пегий Дудочник :)

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