├── .gitignore ├── README.md ├── demo.png ├── index.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/* 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## What 2 | 3 | A torrent client for iOS which runs on [play.js](https://playdotjs.com/) - without sideloading or jailbreaking! It's a simple wrapper around the excellent [WebTorrent](https://github.com/webtorrent/webtorrent) library. 4 | 5 | [Demo downloading Big Buck Bunny](demo.png) 6 | 7 | ## Installing 8 | 9 | 1. Install play.js from the [App Store](https://itunes.apple.com/us/app/play-js/id1423330822). It's a paid app (worth it, IMHO), but I'm not affiliated with them in any way. 10 | 2. Create a new project (tap on the Editor), name it WebTorrent, type Node.js (default), and check "Clone from git repository". Tap Create. 11 | 3. In the remote settings, fill in this repository's address (https://github.com/nneonneo/iOS-Torrent-Client) under Address. Leave username and password blank. Tap Clone. 12 | 13 | ## Using 14 | 1. Launch play.js and select the WebTorrent project. 15 | 2. Paste the magnet link you want to download in place of `magnet:paste-magnet-link-here`. 16 | 3. Press the play button. The first time you run the project you will be prompted to resolve dependencies; accept and wait a bit while WebTorrent is downloaded. 17 | 4. Sit back and watch the torrent download. When it's all done, you can use the Files app to copy or move your downloaded file anywhere you like. 18 | 19 | ## Why 20 | 21 | My [iOS SOCKS Server](https://github.com/nneonneo/iOS-SOCKS-Server) makes it possible to do a lot of things on my computer through a faketethered mobile data connection, but torrenting doesn't work terribly well (even if you somehow manage to convince the torrent client to use the proxy). So, instead, I came up with this silly hack to get torrents to work on iOS. 22 | 23 | Of course, it's probably not a great idea to use this for anything real, especially over mobile data. So, consider it a proof-of-concept. 24 | 25 | ## Tips 26 | 27 | - Safari doesn't apparently support copying magnet links, so as a workaround you can use Firefox (not Firefox Focus) for iOS and copy links by long-pressing them and selecting copy from the popup menu. 28 | -------------------------------------------------------------------------------- /demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nneonneo/iOS-Torrent-Client/3e17419c0268b2a4afba7e68e4671b3eb635f3b3/demo.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | link = 'magnet:paste-magnet-link-here'; 2 | process.argv = ["cli", "download", link, "--keep-seeding"]; 3 | require('./node_modules/webtorrent-cli/bin/cmd'); 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "WebTorrent-iOS", 3 | "version": "1.0.1", 4 | "dependencies": { 5 | "webtorrent": "0.107.0", 6 | "webtorrent-cli": "3.0.1" 7 | } 8 | } 9 | --------------------------------------------------------------------------------