javascriptwebrtcwebtorrent

How to use webtorrent.io


https://webtorrent.io

https://github.com/feross/webtorrent

JavaScript to stream the following torrent in the browser

magnet:?xt=urn:btih:6A9759BFFD5C0AF65319979FB7832189F4F3C35D&dn=sintel.mp4&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80&tr=udp%3a%2f%2ftracker.internetwarriors.net%3a1337&tr=udp%3a%2f%2ftracker.leechers-paradise.org%3a6969&tr=udp%3a%2f%2ftracker.coppersurfer.tk%3a6969&tr=udp%3a%2f%2fexodus.desync.com%3a6969&tr=wss%3a%2f%2ftracker.webtorrent.io&tr=wss%3a%2f%2ftracker.btorrent.xyz&ws=https%3a%2f%2fwebtorrent.io%2ftorrents%2fsintel-1024-surround.mp4

I want a simple layout like

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="https://cdn.jsdelivr.net/webtorrent/latest/webtorrent.min.js"></script>
</head>
<body>
<script type="text/javascript">

var client = new WebTorrent()

var torrentId = 'magnet:?xt=urn:btih:6A9759BFFD5C0AF65319979FB7832189F4F3C35D'

client.add(torrentId, function (torrent) {
  var file = torrent.files[0]
  file.appendTo('body') // append the file to the DOM
})
</script>
</body>
</html>

But this doesn't work.


Solution

  • The code you posted doesn't work in web browser, because WebTorrent doesn't support trackerless magnet URIs in web browser environment (at least at this moment).

    Just add at least one WebRTC tracker to your magnet URI, e.g. wss://tracker.webtorrent.io:

    var torrentId = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&tr=wss%3A%2F%2Ftracker.webtorrent.io'
    

    or use HTTP(S) URL to *.torrent file:

    var torrentId = 'https://webtorrent.io/torrents/sintel.torrent'