O WebTorrent é um cliente de torrent de streaming do Node.js e o navegador . Sim, está certo. O navegador. Está escrito completamente no JavaScript - o idioma da Web - então o mesmo código funciona em ambos os tempos de execução.
No Node.js, este módulo é um cliente simples de torrent, usando TCP e UDP para conversar com outros clientes torrent.
No navegador, o WebTorrent usa o WebRTC (canais de dados) para transporte ponto a ponto. Pode ser usado sem plugins, extensões ou instalações do navegador. É apenas JavaScript ™. Nota: O WebTorrent não suporta pares UDP/TCP no navegador.
Basta incluir o script webtorrent.min.js em sua página para começar a buscar arquivos sobre o WebRTC usando o protocolo BitTorrent ou import WebTorrent from 'webtorrent' com o BrowSerify ou Webpack. Veja aplicativos de demonstração e exemplos de código abaixo.
Para fazer o BitTorrent trabalhar sobre o WebRTC (que é o único transporte P2P que funciona na Web), fizemos algumas alterações no protocolo. Portanto, um cliente WebTorrent baseado em navegador ou "pareço" pode se conectar apenas a outros clientes que suportam o WebTorrent/WebRTC.
Para semear arquivos para colegas da Web, use um cliente que suporta WebTorrent, por exemplo, WebTorrent Desktop, um cliente de desktop com uma interface do usuário familiar que pode se conectar a pares da Web, WebTorrent-Hybrid, um programa de linha de comando ou instant.io, um site. Clientes de torrent estabelecidos como a Vuze já adicionaram suporte à WebTorrent para que possam se conectar aos colegas normais e na web. Esperamos que outros clientes sigam.
<video> ( webm, mkv, mp4, ogv, mov, etc (AV1, H264, HEVC*, VP8, VP9, AAC, FLAC, MP3, OPUS, Vorbis, etc) ) Para instalar o WebTorrent para uso no nó ou no navegador com import WebTorrent from 'webtorrent' , execute:
npm install webtorrent Para instalar um programa de linha de comando webtorrent , execute:
npm install webtorrent-cli -gPara instalar um aplicativo WebTorrent Desktop para Mac, Windows ou Linux, consulte o WebTorrent Desktop.
#webtorrent para ajudar no desenvolvimento ou sair com alguns hackers de ciências loucos :)Muitas pessoas!
Leia a documentação completa da API.
O WebTorrent é o primeiro cliente BitTorrent que funciona no navegador, usando padrões da Web Open (sem plugins, apenas HTML5 e WebRTC)! É fácil começar!
import WebTorrent from 'webtorrent'
const client = new WebTorrent ( )
const magnetURI = '...'
client . add ( magnetURI , torrent => {
// Got torrent metadata!
console . log ( 'Client is downloading:' , torrent . infoHash )
for ( const file of torrent . files ) {
document . body . append ( file . name )
}
} ) import dragDrop from 'drag-drop'
import WebTorrent from 'webtorrent'
const client = new WebTorrent ( )
// When user drops files on the browser, create a new torrent and start seeding it!
dragDrop ( 'body' , files => {
client . seed ( files , torrent => {
console . log ( 'Client is seeding:' , torrent . infoHash )
} )
} )Existem mais exemplos no Docs/Get-Started.md.
O WebTorrent funciona muito bem com o BrowSerify, um pacote NPM que permite usar o estilo de nó requer () para organizar o código do navegador e os módulos de carga instalados pelo NPM (como visto nos exemplos anteriores).
O WebTorrent também funciona com o Webpack, outro pacote de módulo. No entanto, o WebPack requer configuração extra que você possa encontrar na configuração do pacote webpack usada pelo WebTorrent.
Ou você pode usar a versão pré-construída via import WebTorrent from 'webtorrent/dist/webtorrent.min.js' e pular a configuração da webpack.
O WebTorrent também está disponível como um script independente ( webtorrent.min.js ), que expõe WebTorrent no objeto window , para que possa ser usado apenas com uma tag de script:
< script type =' module ' >
import WebTorrent from 'webtorrent.min.js'
</ script >O script WebTorrent também é hospedado em infraestrutura de CDN rápida e confiável (Cloudflare e Maxcdn) para facilitar a inclusão em seu site:
< script type =' module ' >
import WebTorrent from 'https://esm.sh/webtorrent'
</ script > Se você deseja usar o WebTorrent em um aplicativo Chrome, pode incluir o seguinte script:
< script type =' module ' >
import WebTorrent from 'webtorrent.chromeapp.js'
</ script > Certifique -se de ativar as permissões chrome.sockets.udp e chrome.sockets.tcp !
O WebTorrent também funciona no Node.js, usando o mesmo pacote NPM! É uma ciência louca!
NOTA : Para conectar-se a "pares da web" (navegadores), além dos colegas normais do BitTorrent, use WebTorrent-Hybrid, que inclui suporte do WebRTC para o Node.
O WebTorrent também está disponível como um aplicativo de linha de comando. Veja como usá -lo:
$ npm install webtorrent-cli -g
$ webtorrent --helpPara baixar um torrent:
$ webtorrent magnet_uriPara transmitir uma torrente para um dispositivo como o AirPlay ou Chromecast , basta passar uma bandeira:
$ webtorrent magnet_uri --airplayExistem muitas opções de streaming suportadas:
--airplay Apple TV
--chromecast Chromecast
--mplayer MPlayer
--mpv MPV
--omx [jack] omx [default: hdmi]
--vlc VLC
--xbmc XBMC
--stdout standard out [implies --quiet]Além do Magnet Uris, o WebTorrent suporta muitas maneiras de especificar uma torrente.
A maior parte do desenvolvimento ativo está acontecendo dentro de pequenos pacotes NPM que são usados pelo WebTorrent.
"Quando as aplicações são bem feitas, elas são apenas o resíduo salobrado realmente específico de aplicativos que não pode ser tão facilmente abstraído. Todos os componentes agradáveis e reutilizáveis se sublimam no Github e NPM, onde todos podem colaborar para avançar no Commons". - Substitua de "Como eu escrevo módulos"
Estes são os principais módulos que compõem o WebTorrent:
| módulo | testes | versão | descrição |
|---|---|---|---|
| WebTorrent | cliente de torrent (este módulo) | ||
| BitTorrent-dht | Cliente de tabela de hash distribuído | ||
| BitTorrent-Peerid | Identifique o nome/versão do cliente | ||
| BitTorrent-protocolo | fluxo de protocolo BitTorrent | ||
| BitTorrent-Racker | BitTorrent Tracker Server/Client | ||
| BitTorrent-LSD | descoberta de serviço local de BitTorrent | ||
| Criar-Torrent | Crie arquivos .Torrent | ||
| ímã-uri | Parse ímã Uris | ||
| Parse-Torrent | Identificadores de torrent parse | ||
| Discoveria de torrent | Encontre colegas via DHT, Tracker e LSD | ||
| ut_metadata | Metadados para URIs de ímã (extensão de protocolo) | ||
| ut_pex | Descoberta por pares (extensão do protocolo) |
No nó , ative os logs de depuração definindo a variável de ambiente DEBUG para o nome do módulo que você deseja depurar (por exemplo, bittorrent-protocol ou * para imprimir todos os logs ).
DEBUG= * webtorrentNo navegador , ative os logs de depuração executando isso no console do desenvolvedor:
localStorage . setItem ( 'debug' , '*' )Desative ao executar o seguinte:
localStorage . removeItem ( 'debug' )Mit. Copyright (C) Feross Aboukhadijeh e Webtorrent, LLC.