WebTorrent adalah klien streaming torrent untuk node.js dan browser . Ya, itu benar. Browser. Ini ditulis sepenuhnya dalam JavaScript - bahasa web - sehingga kode yang sama berfungsi di kedua runtime.
Di Node.js, modul ini adalah klien torrent sederhana, menggunakan TCP dan UDP untuk berbicara dengan klien torrent lainnya.
Di browser, WebTorrent menggunakan WebRTC (saluran data) untuk transportasi peer-to-peer. Ini dapat digunakan tanpa plugin, ekstensi, atau instensi browser. Ini hanya JavaScript ™. Catatan: WebTorrent tidak mendukung rekan UDP/TCP di browser.
Cukup sertakan skrip webtorrent.min.js di halaman Anda untuk mulai mengambil file melalui WEBRTC menggunakan protokol BitTorrent, atau import WebTorrent from 'webtorrent' dengan Browserify atau Webpack. Lihat aplikasi demo dan contoh kode di bawah ini.
Untuk membuat BitTorrent bekerja melalui WEBRTC (yang merupakan satu -satunya transportasi P2P yang berfungsi di web) kami membuat beberapa perubahan protokol. Oleh karena itu, klien webtorrent berbasis browser atau "rekan web" hanya dapat terhubung ke klien lain yang mendukung WebTorrent/WebRTC.
Untuk menyemai file ke peer web, gunakan klien yang mendukung WebTorrent, misalnya WebTorrent Desktop, klien desktop dengan UI yang akrab yang dapat terhubung ke rekan web, webtorrent-hybrid, program baris perintah, atau instan.io, sebuah situs web. Klien torrent yang mapan seperti Vuze telah menambahkan dukungan webtorrent sehingga mereka dapat terhubung ke rekan normal dan web. Kami berharap klien lain akan mengikuti.
<video> ( webm, mkv, mp4, ogv, mov, etc (AV1, H264, HEVC*, VP8, VP9, AAC, FLAC, MP3, OPUS, Vorbis, etc) ) Untuk menginstal WebTorrent untuk digunakan di Node atau browser dengan import WebTorrent from 'webtorrent' , jalankan:
npm install webtorrent Untuk menginstal program baris perintah webtorrent , jalankan:
npm install webtorrent-cli -gUntuk menginstal aplikasi desktop WebTorrent untuk Mac, Windows, atau Linux, lihat WebTorrent Desktop.
#webtorrent untuk membantu pengembangan atau untuk bergaul dengan beberapa peretas sains gila :)Banyak orang!
Baca dokumentasi API lengkap.
WebTorrent adalah klien Bittorrent pertama yang bekerja di browser, menggunakan standar web terbuka (tidak ada plugin, hanya html5 dan webrtc)! Mudah untuk memulai!
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 )
} )
} )Ada lebih banyak contoh dalam Docs/Get-Started.md.
WebTorrent bekerja sangat baik dengan Browserify, paket NPM yang memungkinkan Anda menggunakan Node-style membutuhkan () untuk mengatur kode browser Anda dan memuat modul yang diinstal oleh NPM (seperti yang terlihat pada contoh sebelumnya).
WebTorrent juga berfungsi dengan Webpack, bundler modul lain. Namun, Webpack memerlukan konfigurasi tambahan yang dapat Anda temukan di konfigurasi bundel webpack yang digunakan oleh WebTorrent.
Atau, Anda bisa menggunakan versi pra-dibangun melalui import WebTorrent from 'webtorrent/dist/webtorrent.min.js' dan lewati konfigurasi webpack.
WebTorrent juga tersedia sebagai skrip mandiri ( webtorrent.min.js ) yang memperlihatkan WebTorrent pada objek window , sehingga dapat digunakan hanya dengan tag skrip:
< script type =' module ' >
import WebTorrent from 'webtorrent.min.js'
</ script >Script WebTorrent juga di -host pada infrastruktur CDN yang cepat dan andal (CloudFlare dan MaxCDN) untuk dimasukkan dengan mudah di situs Anda:
< script type =' module ' >
import WebTorrent from 'https://esm.sh/webtorrent'
</ script > Jika Anda ingin menggunakan WebTorrent di aplikasi Chrome, Anda dapat menyertakan skrip berikut:
< script type =' module ' >
import WebTorrent from 'webtorrent.chromeapp.js'
</ script > Pastikan untuk mengaktifkan izin chrome.sockets.udp dan chrome.sockets.tcp !
WebTorrent juga berfungsi di Node.js, menggunakan paket NPM yang sama! Ini Ilmu Gila!
CATATAN : Untuk terhubung ke "rekan web" (browser) selain rekan bittorrent normal, gunakan WebTorrent-Hybrid yang mencakup dukungan WEBRTC untuk Node.
WebTorrent juga tersedia sebagai aplikasi baris perintah. Inilah cara menggunakannya:
$ npm install webtorrent-cli -g
$ webtorrent --helpUntuk mengunduh torrent:
$ webtorrent magnet_uriUntuk mengalirkan torrent ke perangkat seperti AirPlay atau Chromecast , lulus saja bendera:
$ webtorrent magnet_uri --airplayAda banyak opsi streaming yang didukung:
--airplay Apple TV
--chromecast Chromecast
--mplayer MPlayer
--mpv MPV
--omx [jack] omx [default: hdmi]
--vlc VLC
--xbmc XBMC
--stdout standard out [implies --quiet]Selain Magnet URI, WebTorrent mendukung banyak cara untuk menentukan torrent.
Sebagian besar pengembangan aktif terjadi di dalam paket NPM kecil yang digunakan oleh WebTorrent.
"Ketika aplikasi dilakukan dengan baik, mereka hanyalah residu payau khusus aplikasi yang tidak dapat dengan mudah diabstraksi. Semua komponen yang bagus dan dapat digunakan kembali menyublim ke GitHub dan NPM di mana semua orang dapat berkolaborasi untuk memajukan Commons." - Substack dari "How I Write Modules"
Ini adalah modul utama yang membentuk WebTorrent:
| modul | tes | versi | keterangan |
|---|---|---|---|
| WebTorrent | klien torrent (modul ini) | ||
| BitTorrent-Dht | klien tabel hash terdistribusi | ||
| Bittorrent-peerid | Identifikasi nama/versi klien | ||
| Bittorrent-Protocol | Aliran Protokol Bittorrent | ||
| Bittorrent-Tracker | Server/Klien Pelacak Bittorrent | ||
| BitTorrent-LSD | Penemuan Layanan Bittorrent Lokal | ||
| create-torrent | Buat file .torrent | ||
| Magnet-Uri | parse magnet uris | ||
| Parse-torrent | Parse Torrent Identifiers | ||
| Torrent-Discovery | Temukan rekan melalui DHT, pelacak, dan LSD | ||
| UT_METADATA | Metadata untuk Magnet URI (ekstensi protokol) | ||
| UT_PEX | Peer Discovery (ekstensi protokol) |
Di Node , aktifkan log debug dengan mengatur variabel lingkungan DEBUG dengan nama modul yang ingin Anda debug (misalnya bittorrent-protocol , atau * untuk mencetak semua log ).
DEBUG= * webtorrentDi browser , aktifkan log debug dengan menjalankan ini di konsol pengembang:
localStorage . setItem ( 'debug' , '*' )Nonaktifkan dengan menjalankan ini:
localStorage . removeItem ( 'debug' )Mit. Hak Cipta (C) Feross Aboukhadijeh dan WebTorrent, LLC.