webtorrent-cli

WebTorrent, the streaming torrent client. For the command line.

Github stars Tracking Chart

WebTorrent is the first BitTorrent client that works in the browser, but webtorrent-cli,
i.e. THIS PACKAGE, is for using WebTorrent from the command line.

webtorrent-cli is a simple torrent client for use in node.js, as a command line app. It
uses TCP and UDP to talk to other torrent clients.

NOTE: To connect to "web peers" (browsers) in addition to normal BitTorrent peers, use
webtorrent-hybrid which includes WebRTC
support for node.

To use WebTorrent in the browser, see webtorrent.

Features

  • Use WebTorrent from the command line!
  • Insanely fast
  • Pure Javascript (no native dependencies)
  • Streaming
    • Stream to AirPlay, Chromecast, VLC player, IINA, and many other devices/players
    • Fetches pieces from the network on-demand so seeking is supported (even before torrent is finished)
    • Seamlessly switches between sequential and rarest-first piece selection strategy
  • Supports advanced torrent client features

Install

To install a webtorrent command line program, run:

npm install webtorrent-cli -g

Usage

$ webtorrent --help
               _     _                            _
 __      _____, __, _ ___  _ __ _ __ ___ _ __, _
 \ \ /\ / / _ \ '_ \, __/ _ \, '__, '__/ _ \ '_ \, __, \ V  V /  __/, _), (_), __/, _
   \_/\_/ \___, _.__/ \__\___/, _, _, \___, _, _, \__, Usage:
  webtorrent [command] <torrent-id> <options>

Example:
  webtorrent download "magnet:..." --vlc

Commands:
  download <torrent-id...>  Download a torrent
  downloadmeta <torrent-id...> Download torrent metafile and save it usually from magnet link
  seed <file/folder...>     Seed a file or folder
  create <file/folder>      Create a .torrent file
  info <torrent-id>         Show info for a .torrent file or magnet uri

Specify <torrent-id> as one of:
  * magnet uri
  * http url to .torrent file
  * filesystem path to .torrent file
  * info hash (hex string)

Options (streaming):
  --airplay                 Apple TV
  --chromecast              Chromecast
  --dlna                    DLNA
  --mplayer                 MPlayer
  --mpv                     MPV
  --omx [jack]              omx [default: hdmi]
  --vlc                     VLC
  --iina                    IINA
  --xbmc                    XBMC
  --stdout                  standard out (implies --quiet)

Options (simple):
  -o, --out [path]          set download destination [default: current directory]
  -s, --select [index]      select specific file in torrent (omit index for file list)
  -t, --subtitles [path]    load subtitles file
  -v, --version             print the current version

Options (advanced):
  -p, --port [number]       change the http server port [default: 8000]
  -b, --blocklist [path]    load blocklist file/http url
  -a, --announce [url]      tracker URL to announce to
  -q, --quiet               don't show UI on stdout
  --pip                     enter Picture-in-Picture if supported by the player
  --not-on-top              don't set "always on top" option in player
  --keep-seeding            don't quit when done downloading
  --no-quit                 don't quit when player exits
  --on-done [script]        run script after torrent download is done
  --on-exit [script]        run script before program exit
  --verbose                 show torrent protocol details

To download a torrent:

$ webtorrent magnet_uri

To stream a torrent to a device like AirPlay or Chromecast, just pass a flag:

$ webtorrent magnet_uri --airplay

In addition to magnet uris, webtorrent supports many ways to specify a torrent:

  • magnet uri (string)
  • torrent file (buffer)
  • info hash (hex string or buffer)
  • parsed torrent (from parse-torrent)
  • http/https url to a torrent file (string)
  • filesystem path to a torrent file (string)

License

MIT. Copyright (c) Feross Aboukhadijeh and WebTorrent, LLC.

Main metrics

Overview
Name With Ownerwebtorrent/webtorrent-cli
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2016-03-11 05:49:36
Pushed At2025-03-15 12:04:34
Last Commit At2024-12-12 15:29:41
Release Count75
Last Release Namev5.1.3 (Posted on )
First Release Namev1.0.0 (Posted on 2016-03-10 22:38:26)
用户参与
Stargazers Count1.2k
Watchers Count21
Fork Count140
Commits Count600
Has Issues Enabled
Issues Count152
Issue Open Count6
Pull Requests Count127
Pull Requests Open Count2
Pull Requests Close Count45
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private