JohnDoee / deluge-streaming

Streaming plugin for deluge, making it possible to read torrents and download required parts on-demand.
Other
139 stars 15 forks source link
deluge python stream tidalstream torrent

Streaming Plugin

https://github.com/JohnDoee/deluge-streaming

(c)2020 by Anders Jensen johndoee@tridentstream.org

Description

This plugin adds a new entry to the file list context menu that enables the user to stream a file using HTTP.

Technically, it tries to download the part of a file the user requests and downloads ahead, this enables seeking in video files.

Where to download

You can download this release on Github. Look for the "releases" tab on the repository page. Under that tab, eggs for Python 2.6 and 2.7 should exist.

How to use

If you want to stream from a non-local computer, e.g. your seedbox, you will need to change the IP in option to the external server ip.

Open directly in your video player

By using a small tool it is possible to it's possible to open streams directly in VLC or another media player.

Motivation

The plugin is not meant to be used as a right-click to stream thing. The idea is to make Deluge an abstraction layer for the Tidalstream project, i.e. torrents to http on demand.

The allow remote option is to allow remote add and stream of torrents.

Todo

Important Deluge 2 information

While developing the Deluge 2 version of this plugin I hit a few problems that might be visible for you too.

HTTP API Usage

Prerequisite

Install and enable the plugin. Afterwards, head into Streaming settings and enable "Allow remote control". The URL found in the "Remote control url" field is where the API can be reached. The auth used is Basic Auth.

Usage

There is only one end-point and that is where a torrent stream can be requested.

Both return the same responses and all responses are JSON encoded. All successfully authenticated responses have status code 200.

POST /streaming/stream

POST body must be the raw torrent you want to stream. No form formatting or anything can be used.

List of URL GET Arguments

GET /streaming/stream

Success Response

{
    "status": "success", # Always equals this
    "filename" "horse.mkv", # Filename of the streamed torrent
    "url": "http://example.com/" # URL where the file can be reached by e.g. a media player
}

Error Response

{
    "status": "error", # Always equals this
    "message" "Torrent failed" # description for why it failed
}

Version Info

Version 0.12.2

Version 0.12.1

Version 0.12.0

Version 0.11.0

Version 0.10.5

Version 0.10.4

Version 0.10.3

Version 0.10.2

Version 0.10.1

Version 0.10.0

Version 0.9.0

Version 0.8.1

Version 0.8.0

Version 0.7.1

Version 0.7.0

Version 0.6.1

Version 0.6.0

Version 0.5.0

Version 0.4.1

Version 0.4.0

Version 0.3

Version 0.2

Version 0.1