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, но есть основания полагать, что именно за такими децентрализованными технологиями — будущее веба.
    Поделиться публикацией
    Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

    Зачем оно вам?
    Реклама
    Комментарии 22
    • 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
                                Это ж Пегий Дудочник :)

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