Problem to scrub playback when HLS Manifest has Subtitle with attribute `FORCED=YES`

The problem:

When HLS Manifest has subtitle with attribute FORCED=YES scrubbing pushes the playback to 34 sec.
It’s relevant for Bitmovin Player UI control and for seeking by code.

I also put my manifest into Bitmovin Test Player - the same problem.

How was defined:

I’d been removing attributes one-by-one in Manifest. And ONLY after removing FORCED=YES playback starts to seek in other time-points.
If I change FORCED=YES => FORCED=TRUE or FORCED=NO player works correctly.

Version: 8.105.0
OS: Windows (Mac as well)
Browser: Chrome (not specific to browser)

Thanks for getting in contact.
I tried to reproduce the problem by modifying one of our sample manifests to force one of the subtitle tracks, however, seeking seems to work fine even when doing so.

It could possibly be an issue with your subtitle variant stream, which could cause the player not to be able to play parts of it. This is only an hypothesis, since I don’t have access to your stream.

Please feel fee to share your test stream here or to file a ticket with all the informations we need to reproduce the behaviour, and we will happily investigate.


Hello there,

Thank you for your previous response. I have reviewed your message and understand that in the your sample manifest, all attributes “FORCED” have the value “NO”.

From manifest:


Unfortunately, with any value except “YES” Player works fine. And only in case “FORCED=YES” the player loses the function of playback scrubbing/seeking.

To help diagnose the issue, could you please try changing the “FORCED” attribute in the manifest to “YES” and see if the issue persists?

Thank you for your assistance in resolving this issue.

HI @dmytro.honcharov,
This is correct, subtitles are not forced in our manifest, so as an attempt to reproduce the behaviour you are describing, I used the Bitmovin Player Network API to override the manifest and force one of the tracks. However, everything played correctly when doing so, so there might be something else to investigate that is specifically related to your stream.

Example : = {
                preprocessHttpResponse: function(type, data) {
                    if (type === "manifest/hls/master") {
                        data.body = data.body.replaceAll('#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",URI="subtitles_de.m3u8"', '#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=YES,AUTOSELECT=YES,FORCED=YES,LANGUAGE="de",URI="subtitles_de.m3u8"')
                    return Promise.resolve(data)

If you can try to reproduce this way, or alternatively, share your stream URL (either here or in a ticket with our support team), it would allow me to keep investigating if needed.