Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve docs #694

Closed
wants to merge 10 commits into from
@@ -142,12 +142,10 @@ standards (no plugins, just HTML5 and WebRTC)! It's easy to get started!
##### Downloading a file is simple:

```js
var WebTorrent = require('webtorrent')
var client = new WebTorrent()
var magnetURI = '...'
var torrentId = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4'

This comment has been minimized.

Copy link
@rom1504

rom1504 Mar 25, 2016

Member

That's a magnet uri. What is a torrent id ?

This comment has been minimized.

Copy link
@FluorescentHallucinogen

FluorescentHallucinogen Mar 25, 2016

Author Contributor

@rom1504

Please look at client.add API: client.add(torrentId, [opts], [function ontorrent (torrent) {}])

Every magnet URI is torrent id. But not every torrent id is magnet URI.

torrentId can be one of:

  • 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)

E.g. you can change
var magnetURI = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d'
to
var magnetURI = 'https://webtorrent.io/torrents/sintel.torrent'
in this example and the resulting code will still work, bacause torrentId argument of client.add is not limited only to magnet URIs, but in this case using magnetURI as a name of variable is not a good idea, because actually it is not a magnet URI, it is URL to *.torrent file.

client.add(magnetURI, function (torrent) {
client.add(torrentId, function (torrent) {
// Got torrent metadata!
console.log('Client is downloading:', torrent.infoHash)
@@ -161,10 +159,15 @@ client.add(magnetURI, function (torrent) {

##### Seeding a file is simple, too:

```js
var dragDrop = require('drag-drop')
var WebTorrent = require('webtorrent')
This example uses the [`drag-drop`][drag-drop] package, to make the HTML5 Drag and
Drop API easier to work with.

To start using `drag-drop`, simply include the
`dragdrop.min.js` script on your page. This exports a `dragDrop` function on `window`.
If you use [browserify](http://browserify.org), you can
`npm install drag-drop` and then use like this `var dragDrop = require('drag-drop')`.

```js
var client = new WebTorrent()
// When user drops files on the browser, create a new torrent and start seeding it!
@@ -266,7 +269,14 @@ There are many supported streaming options:
--stdout standard out [implies --quiet]
```

In addition to magnet uris, webtorrent supports [many ways to specify a torrent](#clientaddtorrentid-opts-function-ontorrent-torrent-).
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](https://github.com/feross/parse-torrent))
- http/https url to a torrent file (string)
- filesystem path to a torrent file (string)

### Modules

@@ -298,9 +298,10 @@ Here is a usage example:

```js
var client = new WebTorrent()
var magnetURI = 'magnet: ...'
var torrentId = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4'
var port = 5003
client.add(magnetURI, function (torrent) {
client.add(torrentId, function (torrent) {
// create HTTP server for this torrent
var server = torrent.createServer()
server.listen(port) // start the server listening to a port
@@ -36,8 +36,6 @@ var WebTorrent = require('webtorrent')
### Downloading a torrent (in the browser)

```js
var WebTorrent = require('webtorrent')
var client = new WebTorrent()
// Sintel, a free, Creative Commons movie
@@ -63,10 +61,25 @@ the needed torrent pieces from the network on-demand.

### Creating a new torrent and seed it (in the browser)

This example uses the [`drag-drop`][drag-drop] package, to make the HTML5 Drag and
Drop API easier to work with.

It works in the browser with [browserify](http://browserify.org).

```
npm install drag-drop
```

Then use `drag-drop` like this:

```js
var dragDrop = require('drag-drop')
var WebTorrent = require('webtorrent')
```

**Note:** If you do not use browserify, use the included standalone file
`dragdrop.min.js`. This exports a `DragDrop` function on `window`.

```js
var client = new WebTorrent()
// When user drops files on the browser, create a new torrent and start seeding it!
@@ -77,9 +90,6 @@ dragDrop('body', function (files) {
})
```

This example uses the [`drag-drop`][drag-drop] package, to make the HTML5 Drag and
Drop API easier to work with.

### Download and save a torrent (in Node.js)

```js
@@ -88,9 +98,9 @@ var fs = require('fs')
var client = new WebTorrent()
var magnetURI = 'magnet:...'
var torrentId = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4'
client.add(magnetURI, function (torrent) {
client.add(torrentId, function (torrent) {
torrent.files.forEach(function (file) {
console.log('Started saving ' + file.name)
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.