aussieaddons/plugin.video.sbs

Bandwidth settings occasionally broken by unexpected stream URLs

Opened this issue · 0 comments

Occasionally, SBS on Demand returns a stream URL that is not in the standard format. For example, Das Boot S1, E7.

The URL for Das Boot S1, E6 is, as expected, http://sbsvodns-vh.akamaihd.net/i/vod/SBS_Production/managed/2018/12/10/630546_,1500,1000,512,128,K.mp4.csmil/master.m3u8?__b__=500&b=0-2000&__a__=off&set-akamai-hls-revision=5

However, the URL for Das Boot S1, E7 is http://videocdn.sbs.com.au/u/video/SBS_Production/managed/2018/12/10/630547_1500K.mp4

The URL for E7 does not include a &b=n-nnnn field, and so breaks bandwidth selection.

A way around this is to replace the 1500 at the end of the URL with the size of the stream you want. So, if you want Das Boot S1 E7 in 512Kb/s, the revised URL would be http://videocdn.sbs.com.au/u/video/SBS_Production/managed/2018/12/10/630547_512K.mp4

Including something like the following in play.py would probably fix it:

    if ('videocdn' in stream_url):    #and/or '&b=' not in stream_url?
        if bandwidth == '0':                                                                                         
            stream_url = re.sub(r'_\d{3,4}K\.mp4', '_512K.mp4', stream_url)                                            
        elif bandwidth == '1':                                                                                         
            stream_url = re.sub(r'_\d{3,4}K\.mp4', '_1000K.mp4', stream_url)

I have no idea how often this happens, or whether - when it does - it is consistent.

Cheers,
Nik