I've just gotten around to updating to the latest PMS (1.5.4.x) and it's borked a live streaming plugin.

It throws an error saying that my createChannelObject[] has an unexpected keyword argument of includeBandwidths

Adding it to my createChannelObject[] with value of either 0, 1 or False throws a second error on iOS complaing about no direct playback for HTTP, with container MP4, codec H264, audio codec AC3. The offending code appears to be:

video_codec = "H264",
audio_codec = "AAC",
container = "MP4",
protocols = "HTTPLiveStreaming",

(I'm using an @indirect playback method as I need to generate a URL when play is pressed)

If I remove video_codec, audio_codec and container it will play the stream, but:

  • I have no idea what a value of 0, 1 or False does to includeBandwidths as I don't know what it is
  • iOS complains the server is not fast enough to transcode on iOS

Prior to the updated PMS the plugin worked perfectly.


Instead of adding the exact "missing" parameters to my functions, I usually have added **kwargs (example) at the end of the function/parameters declaration. That way it'll keep working, even if anything new is (accidentally) added later in time.


Thanks @sander1 that helps.

It does still leave me not knowing what that argument does, and why the properties (video_codec etc.) now cause iOS to choke


To be honest I also don't know what includeBandwidths does. It doesn't seem to be a standard, at least not for channels.

The reason why some clients are choking could be the mixing of MP4 and HTTPLiveStreaming. Also HTTPLiveStreaming is not a valid protocol value. Try:

video_codec = VideoCodec.H264,
audio_codec = AudioCodec.AAC,
container = "mpegts",
protocols = "hls",


Thanks again @sander1 – will try the above.