DVEO REST API wrapper for Python¶
This module tries to make using the DVEO REST API easier to use with Python.
Example of usage:
>>> from dveo import API
>>> dveo = API('203.0.113.12', 'p455w0rd')
>>> dveo.system_status()['system']['uptime']
OrderedDict([('days', '20'), ('hours', '7'), ('mins', '51')])
>>> dveo.list_inputs()
['net_stream1', 'net_stream2', 'net_stream3', 'net_stream4', ...]
>>> dveo.input_config('net_stream2')['inputname']
'BigTV'
>>> dveo.input_by_output_param('rtmptargeturi', 'acme', partial=True, include_value=True)
[('net_stream1', 'rtmp://vid1.acme.net/stream'), ('net_stream2', 'rtmp://stream10.acme.com/rtmp'), ('net_stream3', 'rtmp://stream11.acme.com/rtmp'), ...]
Check out the variables and commands of your DVEO device API on
http(s)://YOURDVEODEVICE:25599/metadata
. The URL isn’t protected.
The port is set in the DVEO configuration.
Installation¶
$ pipenv install dveo
Example scripts¶
In the examples
directory you’ll find some implementation examples.
retrieve_stream_settings.py
loads input and output settings for one or more encoders and prints them and writes them to a json file.
Tested platforms¶
This code has been tested against the following devices:
- MultiStreamer DIG/IP
- Brutus II
- Brutus III
If you have tested this on another device, please let me know.
How to enable API¶
To enable the REST API on your DVEO device, follow these steps:
Log in to web interface.
Click on the
SYSTEM SETUP
tab.Open the
Web Server Setup
menu on the left.Select the
API Web Server
submenu.Check the
Enable API Web Server
box.If you choose to set
Enable User Security
toYes
:Fill in a password at
API User Password (apiuser)
.Click the
Update
button.Restart
the service in theService Control
menu to the right. If it’s stopped it’ll be started.
Package contents¶
dveo package¶
Module contents¶
-
class
dveo.
API
(address, password, username='apiuser', port='25599', https=False, data_format='json')[source]¶ Bases:
object
Instantiate a single DVEO API container object.
Parameters: - address (str) – IP address or hostname of encoder.
- password (str) – Password for the apiuser account, if user security is disabled anything is valid, like ‘’.
- username (str) – (optional) apiuser username is usually locked to apiuser.
- port (str or int) – (optional) Port number configured for the API webserver, defaults to 25599.
- https (bool) – (optional) Enable https instead of http connections, defaults to False.
- data_format (str) – (optional) Choose between json and xml format. Older firmwares have problems with the JSON output format, defaults to json.
-
_request
(operation, payload={})[source]¶ Send request to API, return result data.
Parameters: - operation (str) – Operation to request from the API.
- payload (dict) – Dict key:value pairs to send as POST data to API.
-
input_by_input_name
(input_name)[source]¶ Lookup input_id (e.g. net_stream1) by configure input name.
-
input_by_output_param
(output_param_name, output_param_value, partial=False, include_value=False)[source]¶ Lookup input_id by output config paramater.
Parameters: - output_param_name (str) – Name of output config parameter
- output_param_value (str) – Value of parameter
- partial (bool) – (optional) Allow for partial matches, defaults to False
- include_value – (optional) Include param value(s) in output, useful with partial, defaults to False