Understanding Plex Channel Code

So I’m in the process of teaching myself some Android development and wanted to try working with Tablo a bit. I was looking over the Plex-Channel Github code and trying to reconstruct the URL for a live channel.

In the playlive section I see the URL:
video_url = “http://” + Dict[‘CPES’][tablo_server_id][‘PRIVATE_IP’] + ‘/’ + result[‘result’][‘relativePlaylistURL’]

And in working backwards I think it goes something like this…
http:// local tablo IP:18080/player/watchLive/channelid:objectID ; with the last two found on the plex ch_epg?id

The url only returns an error code, and I’m sure I need to get to the m3u8 file. Any ideas/help as to my missing step? Hoping to use the code that exists to work on some AndroidTV development (and for fun).


The Tablo needs to receive an HTTP request with a URL of
and have a message body that contains what you want to do. For tuning to a Live channel (we’ll use channel 50) it would be like this:
{"jsonrpc":"2.0","id":"1","method":"/player/watchLive","params":{"channelid": 50}}

It will return a result like:
{"jsonrpc":2.0,"id":1,"result":{ "relativePlaylistURL":"/stream/pl.m3u8?9KliUCNF5nn6_L4zt1yq2w"}}

Use the relativePlaylistURL like this:
to play the Live TV video stream.

Edit: this is just what I’ve picked up from looking at the Plex Channel code.

Thanks. That helped me understand it a bit better. In reality have no idea how to do anything you typed, but understand that I want that relativePlaylistURL. :slightly_smiling:

I know there’s no documentation on the API (yet), but I can’t figure out what you did to get the output. I am very “green”, and can basically follow a published API (ex. Maps, YouTube). Alas, might have to wait until the official one is released.