[mythtv] Services API: Does Dvr/AddRecordSchedule work?

Bill Meek keemllib at gmail.com
Sun Oct 14 17:34:07 UTC 2018

On 10/13/2018 12:17 PM, John P Poet wrote:
> Good to know.  I had not thought of retrieving a template first.  That
> seems like a good approach.
> Has anyone written a set of python tools for controlling Myth with the
> services API, that has been published somewhere?  The documentation is
> currently somewhat sparse, and examples might be helpful.

Hey John,

This was my attempt at a cookbook. It builds up from simple examples to a
full program with arguments. Since I don't speak fluent Python, I wanted
to show how to use the returned values from the API (and I'd guess that
you were using some of it.)


I've been looking at putting the Python Services API *next to* the existing
Python bindings. That's where mine is installed. I'm not clear on how to
incorporate it into the build process.

Unless we're living in parallel universes, you're using


and that was my idea of a tool. My original plan was to create a library of
things that could be imported. Like: Capture.py/Content.py/Guide.py...Video.py.
Plus one Connection.py that the others used.

But they were essentially the same, all returning a dictionary with the returned
parameters. And so the more generic backend.send(...) is what I decided on.

I do have a tool just for testing (cleverly named 'api') and it's --help looks
like this:

$ api --help
usage: api [-h] [--debug] [--digest <user:pass>] [--host <host> [<host> ...]]
            --endpoint <ep> [--noetag] [--nogzip] [--oneline] [--port <port>]
            [--postdata <pd> [<pd> ...] | --rest <rest> [<rest> ...]] [--quiet]
            [--timeout <seconds>] [--usexml] [--version] [--wrmi]

Services API Tester

optional arguments:
   -h, --help            show this help message and exit
   --debug               output additional information (False)
   --digest <user:pass>  digest username:password
   --noetag              tell the backend not to return a ETag (False)
   --nogzip              tell the backend not to return gzipped data (False)
   --oneline             print the response on one line, no formatting (False)
   --port <port>         back/frontend port (6544)
   --postdata <pd> [<pd> ...]
                         Tag=Value *
   --rest <rest> [<rest> ...]
                         Tag=Value *
   --quiet               don't print any responses (False)
   --timeout <seconds>   seconds to wait for a response (10)
   --usexml              ask for an XML response (False)
   --version             show program's version number and exit
   --wrmi                allows postdata to be sent to the server (False)

required arguments:
   --host <host> [<host> ...]
                         server hostname(s) or IP address(s)
   --endpoint <ep>       endpoint to test

* E.g. Id=1 TitleRegEx=\*News\*. Default values are in ()s.


More information about the mythtv-dev mailing list