webtorrentは、 node.jsおよびブラウザー用のストリーミングトレントクライアントです。うん、そうです。ブラウザ。これは、Webの言語であるJavaScriptで完全に書かれているため、同じコードが両方のランタイムで機能します。
node.jsでは、このモジュールは、TCPとUDPを使用して他のトレントクライアントと通信する単純なトレントクライアントです。
ブラウザでは、WeBtorrentはピアツーピアトランスポートにWeBRTC (データチャネル)を使用しています。ブラウザプラグイン、拡張機能、またはインストールなしで使用できます。 JavaScript™です。注:Webtorrentは、ブラウザでUDP/TCPピアをサポートしていません。
ページにwebtorrent.min.jsスクリプトを含めて、Bittorrentプロトコルを使用してWebrtcを介してファイルの取得を開始するか、browserifyまたはwebpackを使用してimport WebTorrent from 'webtorrent' 。以下のデモアプリとコードの例を参照してください。
Webrtc(Webで機能する唯一のP2Pトランスポート)でBitTorrentを機能させるために、プロトコルの変更を行いました。したがって、ブラウザベースのWebtorrentクライアントまたは「Webピア」は、WeBtorrent/Webrtcをサポートする他のクライアントのみに接続できます。
ファイルをWebピアにシードするには、Webtorrent Desktop、Webtorrent Desktop、Webピア、Webtorrent-Hybrid、コマンドラインプログラム、またはinstant.io、Webサイトに接続できるデスクトップクライアントなどのWebtorrentデスクトップをサポートするクライアントを使用します。 Vuzeのような確立されたトレントクライアントは、通常のピアとWebピアの両方に接続できるように、すでにWebtorrentサポートを追加しています。他のクライアントが従うことを願っています。
<video>タグ( webm, mkv, mp4, ogv, mov, etc (AV1, H264, HEVC*, VP8, VP9, AAC, FLAC, MP3, OPUS, Vorbis, etc)import WebTorrent from 'webtorrent'をインストールするには、実行してください。
npm install webtorrent webtorrentコマンドラインプログラムをインストールするには、実行してください。
npm install webtorrent-cli -gMac、Windows、またはLinux用のWebtorrentデスクトップアプリケーションをインストールするには、Webtorrentデスクトップを参照してください。
#webtorrentのギッターまたはFreeNodeで私たちに参加して、開発を支援したり、狂った科学ハッカーと付き合ったりします:)たくさんの人!
完全なAPIドキュメントをお読みください。
WeBtorrentは、オープンWeb標準(プラグインなし、HTML5とWeBRTCのみ)を使用して、ブラウザで動作する最初のBitTorrentクライアントです!簡単に始めるのは簡単です!
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 )
} )
} )Docs/get-started.mdにはその他の例があります。
webtorrentは、ノードスタイルのrequire()を使用してブラウザコードとnpmでインストールされたロードモジュールを整理できるnpmパッケージであるbrowserifyでうまく機能します(前の例に見られるように)。
Webtorrentは、別のモジュールバンドラーであるWebpackでも動作します。ただし、Webpackには、WeBtorrentが使用するWebpackバンドル構成で見つけることができる追加の構成が必要です。
または、 import WebTorrent from 'webtorrent/dist/webtorrent.min.js'事前に構築されたバージョンを使用して、Webpack構成をスキップすることができます。
Webtorrentは、 windowオブジェクトにWebTorrentを公開するスタンドアロンスクリプト( webtorrent.min.js )としても利用できます。そのため、スクリプトタグで使用できます。
< script type =' module ' >
import WebTorrent from 'webtorrent.min.js'
</ script >Webtorrentスクリプトは、サイトに簡単に含めるために、高速で信頼性の高いCDNインフラストラクチャ(CloudFlareおよびMaxCDN)でホストされています。
< script type =' module ' >
import WebTorrent from 'https://esm.sh/webtorrent'
</ script > ChromeアプリでWeBtorrentを使用する場合は、次のスクリプトを含めることができます。
< script type =' module ' >
import WebTorrent from 'webtorrent.chromeapp.js'
</ script > chrome.sockets.udpおよびchrome.sockets.tcp許可を有効にしてください!
webtorrentは、同じNPMパッケージを使用して、node.jsでも動作します!それは狂った科学です!
注:「Webピア」(ブラウザ)に接続するには、通常のBitTorrentピアに加えて、NodeのWeBRTCサポートを含むWeBtorrent-Hybridを使用します。
Webtorrentは、コマンドラインアプリとしても利用できます。使用方法は次のとおりです。
$ npm install webtorrent-cli -g
$ webtorrent --helpトレントをダウンロードするには:
$ webtorrent magnet_uriAirPlayやChromecastなどのデバイスにトレントをストリーミングするには、フラグを渡すだけです。
$ webtorrent magnet_uri --airplayサポートされている多くのストリーミングオプションがあります。
--airplay Apple TV
--chromecast Chromecast
--mplayer MPlayer
--mpv MPV
--omx [jack] omx [default: hdmi]
--vlc VLC
--xbmc XBMC
--stdout standard out [implies --quiet]Magnet Urisに加えて、Webtorrentは急流を指定する多くの方法をサポートしています。
アクティブ開発のほとんどは、Webtorrentが使用する小さなNPMパッケージ内で行われています。
「アプリケーションがうまく行われると、それらは非常に簡単に抽象化することはできない、アプリケーション固有の汽水残基です。すべての素晴らしい、再利用可能なコンポーネントは、誰もがコモンズを前進させるために協力できるGithubとNPMに昇華します。」 - 「モジュールの書き方」からのサブサック
これらは、webtorrentを構成する主要なモジュールです。
| モジュール | テスト | バージョン | 説明 |
|---|---|---|---|
| webtorrent | トレントクライアント(このモジュール) | ||
| Bittorrent-dht | 分散ハッシュテーブルクライアント | ||
| Bittorrent-Peerid | クライアント名/バージョンを識別します | ||
| Bittorrent-Protocol | BitTorrentプロトコルストリーム | ||
| BitTorrent-Tracker | BitTorrentトラッカーサーバー/クライアント | ||
| Bittorrent-lsd | BitTorrent Local Service Discovery | ||
| TREATE-TORRENT | .torrentファイルを作成します | ||
| マグネットウリ | 磁石ウリスを解析します | ||
| パーストレント | 解析トレント識別子を解析します | ||
| トレント発見 | DHT、トラッカー、およびLSDを介してピアを見つけます | ||
| ut_metadata | マグネットウリスのメタデータ(プロトコル拡張) | ||
| UT_PEX | ピアディスカバリー(プロトコル拡張) |
ノードでは、 DEBUG変数をデバッグするモジュールの名前に設定してデバッグログを有効にします(たとえば、 bittorrent-protocol 、または*すべてのログを印刷する)。
DEBUG= * webtorrentブラウザでは、開発者コンソールでこれを実行してデバッグログを有効にします。
localStorage . setItem ( 'debug' , '*' )これを実行して無効にします:
localStorage . removeItem ( 'debug' )mit。 Copyright(c)Feross Aboukhadijeh and Webtorrent、LLC。