RestTorrent is BitTorrent Restful API and Socket.IO Server based Libtorrent.
RestTorrent is released under the MIT-license.
- Install libtorrent
Ubuntu
apt-get install python-libtorrent
ArchLinux
yaourt -S python-libtorrent-rasterbar
Mac
brew install libtorrent-rasterbar --with-python
Install Python Requirements
pip install -r requirements.txt
WSGI Application
resttorrent.wsgi:application
Run Debug Mode
python debug.py
HTTP Restful API
POST /v1/sessions
JSONP parameter name : callback
CORS(Access-Control-Allow-Origin) Header : *
Socket.IO
socket.emit('v1', { t_id:'1', command:'create_session', ports:[6881] });
- GET /v1/sessions
Request
Name Require Description t_id socket.io only Transaction ID command socket.io only get_session_list Response
{ "status": "success", "sessions": [ { "id": "2d4c54303130302d655f38397933685052467163", "port": 6881 } ] }- POST /v1/sessions
Request
Name Require Description port_range option Listen Range (default: 6881,6891) memory_only option default:1 t_id socket.io only Transaction ID command socket.io only create_session Response
{ "status": "success", "session": { "id": "2d4c54303130302d655f38397933685052467163", "port": 6881 } }{ "status": "fail", "message": "bind failed address already in use" }- GET /v1/sessions/<session_id>
Response
{ "status": "success", "id": "2d4c54303130302d655f38397933685052467163", "port": 6881 }- DELETE /v1/sessions/<session_id>
Response
{ "status": "success" }- POST /v1/sessions/<session_id>/torrents
Request
+----------------+------------+-----------------------+ | Name | Require | Description | +================+============+=======================+ | file | select one | Torrent Metainfo File | +----------------+ +-----------------------+ | magnet | | Torrent Magnet URL | +----------------+ +-----------------------+ | url | | download torrent url | +----------------+------------+-----------------------+ | save_path | require | Save Target Path | +----------------+------------+-----------------------+ | autostart | option | autostart (default:1) | +----------------+------------+-----------------------+ | storage_mode | option | default: sparse | +----------------+------------+-----------------------+ | memory_only | option | default:session value | +----------------+------------+-----------------------+
Response
{ "status": "success", "info_hash": "6f8cd699135b491513e65d967a052a7087750d9c", "download_rate": 0, "num_peers": 0, "progress": 0, "state": "checking_resume_data", "upload_rate": 0 }- GET /v1/sessions/<session_id>/torrents
Response
{ "status": "success", "torrents": [ { "info_hash": "6f8cd699135b491513e65d967a052a7087750d9c", "download_rate": 0, "num_peers": 5, "progress": 0.0037299999967217445, "state": "downloading", "upload_rate": 116 } ] }