Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aborting playback in the event of commercial breaks or X-discontinuity with the inputstream.adaptive addon #1507

Closed
2 of 7 tasks
werimail opened this issue Mar 11, 2024 · 110 comments · Fixed by #1532
Closed
2 of 7 tasks

Comments

@werimail
Copy link

werimail commented Mar 11, 2024

Bug report

Describe the bug

Here is a clear and concise description of what the problem is:
Hi @CastagnaIT I noticed that the stream from DAZN Darts x PlutoTV simply stops after a certain time and you end up back in the Kodi main menu. It doesn't matter which Kodi version is used. According to the responsible developer @matthuisman , this is due to the lack of full support for ad breaks or X-discontinuity in the inputstream.adaptive addon. (matthuisman/slyguy.addons#673 (comment))
For the same stream: https://pluto.tv/de/live-tv/64b67f0424ade50008a3be17, playback via browser works without any problems.

Expected Behavior

Here is a clear and concise description of what was expected to happen:
The stream should run through without stopping after a certain time.

Actual Behavior

The stream from DAZN Darts x PlutoTV simply stops and ends up back in the Kodi main menu.

Possible Fix

To Reproduce

Steps to reproduce the behavior:

  1. Start Kodi
  2. Play Stream: https://r.mjh.nz/PlutoTV/64b67f0424ade50008a3be17-alt.m3u8 with IPTV Simple Client (with activated option to use HLS streams via the inputstream.adaptive Addon under "Advanced")

Debuglog

The debuglog can be found here:
https://github.com/matthuisman/slyguy.addons/files/14551853/kodi.log

MPD/M3U8s/ISM

An example or copy of a manifest (or manifests for HLS - master and variants) can be found here:
https://r.mjh.nz/PlutoTV/64b67f0424ade50008a3be17-alt.m3u8

Screenshots

Here are some links or screenshots to help explain the problem:

Additional context or screenshots (if appropriate)

Here is some additional context or explanation that might help:

Your Environment

Used Operating system:

  • Android

  • iOS

  • tvOS

  • Linux

  • OSX

  • Windows

  • Windows UWP

  • Operating system version/name: Android 10 / Windows 10

  • Kodi version: 18/19/20/21.0-BETA3

  • inputstream.adaptive version: inputstream.adaptive v21.4.3 or similar

note: Once the issue is made we require you to update it with new information should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.

@CastagnaIT
Copy link
Collaborator

as specified on wiki "WIP" page ADS support is not well supported
atm im working to improve MPD live manifest support that in theory should allow also a better ADS support

but atm i have no plan to improve HLS atm
good to have a free stream that can be used in future for test

@werimail
Copy link
Author

as specified on wiki "WIP" page ADS support is not well supported atm im working to improve MPD live manifest support that in theory should allow also a better ADS support

but atm i have no plan to improve HLS atm good to have a free stream that can be used in future for test

Ok @CastagnaIT there is currently no short-term solution to the problem in the event of commercial breaks or X-discontinuity (ADS-streams).
However, I also noticed that the stream stops pretty quickly without warning, even outside of the commercial break. Maybe there is also a general error in the HLS component?

Greetings Weri

@mtr81
Copy link

mtr81 commented Mar 12, 2024

I had the same problem in one of my addons. Solution is using proxy (HTTP server) and removing X-discontinuity tags from manifest.

@CastagnaIT
Copy link
Collaborator

CastagnaIT commented Mar 12, 2024

However, I also noticed that the stream stops pretty quickly without warning, even outside of the commercial break. Maybe there is also a general error in the HLS component?

looks like that sometime the provider send an empty child manifest update
like the following:

#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-VERSION:3
#EXT-X-ENDLIST
#PLUTO-VERSION:2.75.2-production-stitcher-green

no segments and EXT-X-ENDLIST signalled,
this seem to be the cause that stop the playback

on Kodi 21 you should read the log error
adaptive::CHLSTree::ParseChildManifest: No segments parsed.

EDIT: usually EXT-X-ENDLIST is used to signal the end of the stream

@werimail
Copy link
Author

However, I also noticed that the stream stops pretty quickly without warning, even outside of the commercial break. Maybe there is also a general error in the HLS component?

looks like that sometime the provider send an empty child manifest update like the following:

#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-VERSION:3
#EXT-X-ENDLIST
#PLUTO-VERSION:2.75.2-production-stitcher-green

no segments and EXT-X-ENDLIST signalled, this seem to be the cause that stop the playback

on Kodi 21 you should read the log error adaptive::CHLSTree::ParseChildManifest: No segments parsed.

EDIT: usually EXT-X-ENDLIST is used to signal the end of the stream

Ok @CastagnaIT that sounds plausible to me. Is there a way to work around the problem in Kodi so that the stream continues running even though there is a signal to stop?

Greetings Weri

@CastagnaIT
Copy link
Collaborator

CastagnaIT commented Mar 13, 2024

by reading specs seem that our parser forgot to check EVENT value to playlist type
immagine
since EXT-X-PLAYLIST-TYPE tag is missing on manifest data above we should as i have understood ignore EXT-X-ENDLIST
so imo its possible make an attempt

EDIT:
Ok then if
VOD or EVENT with EXT-X-ENDLIST: not fetch update manifests == no live

but if EXT-X-ENDLIST is signalled its not so clear to me if its right or not ignore it on live streams,
if ignored could cause the stream to never end? @glennguy

im not so expert but for now sound like a provider encoder bug

@werimail
Copy link
Author

werimail commented Mar 13, 2024

EDIT: Ok then if VOD or EVENT with EXT-X-ENDLIST: not fetch update manifests == no live

but if EXT-X-ENDLIST is signalled its not so clear to me if its right or not ignore it on live streams, if ignored could > cause the stream to never end? @glennguy

@CastagnaIT , @glennguy For me it wouldn't be bad if a live stream never ended. In my opinion, it even makes sense that I consciously stop a live stream if I no longer want to watch it.

Greetings Weri

@CastagnaIT
Copy link
Collaborator

not all live shows are like "TV" so endless stream, there are streams that end when the live is finished
i would like to avoid stall in a perpetual buffering the video player

@werimail
Copy link
Author

not all live shows are like "TV" so endless stream, there are streams that end when the live is finished
i would like to avoid stall in a perpetual buffering the video player

Well @CastagnaIT I understand. Maybe it makes sense to initially limit the workaround to the provider “Pluto.TV”. If necessary, this could then be expanded to include additional providers if an encoder bug also exists there.

Would it be possible to provide a temporary fix for testing purposes? I could then test the behavior during live streams with different providers.

Greetings Weri

@matthuisman
Copy link
Contributor

matthuisman commented Mar 13, 2024 via email

@werimail
Copy link
Author

I can proxy Pluto add-on to make any changes we think are needed

That doesn't sound bad @matthuisman I'm happy to make myself available for testing purposes.

Greetings Weri

@CastagnaIT
Copy link
Collaborator

i would wait @glennguy answer that he could know better HLS

maybe a kind of workaround could be,
if no segments and EXT-X-ENDLIST signalled, then, ignore EXT-X-ENDLIST,
perhaps this way there is less chance to broken regularly finished live streams, but i cant confirm

@glennguy
Copy link
Contributor

Sorry for the delay in getting involved

I think that the playlist refresh shown above is some sort of error and not a valid playlist... don't know if it's technically invalid according to RFC but it still makes no sense.

if no segments and EXT-X-ENDLIST signalled, then, ignore EXT-X-ENDLIST,

This could certainly work around this situation but it's a very specific hack of sorts. Maybe something more generic like a playlist property to ignore the endlist tag? The problem then becomes if a live playlist actually ends we are stuck forever. Not a problem with Pluto most likely, but for example with Matt's Kayo Sports add-on it would be. Then do we add a further condition to check if there has been X amount of refreshes or Y time passed with no segment updates to abort playback? Is this good or bad design?

I'm not tied to anything in particular. If we can somewhat agree on a solution that resolves the issue in some way and isn't too hard to maintain then I'm all good :)

@CastagnaIT
Copy link
Collaborator

considering the maintenance aspect a property to ignore endlist tag is much easier to implement,
otherwise you need to save at least one or more states between representation and manifest updates code thats seem quite chaotic

however, there is a consideration of stopping updates (and playback) if we don't receive more segments after some updates
it is still necessary to implement an additional check to stop updates (so playback) if no more segments are received after a number of updates (more likely after 2 updates, not to make you wait too long due to interval time update)

for the new prop probably the best thing is add a generic "manifest_config" where contains a json dict value,
so that can be extensible for other use cases, more likely this is a good place where move also live delay prop

but before doing this is necessary the merge of the PR rework also make a release because there are really too much changes

@werimail
Copy link
Author

werimail commented Mar 30, 2024

Hi @CastagnaIT maybe it's also a bit offtopic... but I had to notice that after the release of the rework with ISA version 21.4.4 the fix #1459 no longer "works". I used now Kodi 21RC2. The subtitles on the German broadcasters ARD and ZDF are displayed within the HLS streams no longer output. Did something “slip out” here (see also #1109 ) ??? With ISA version 21.4.3 this still works as usual! Greetings Weri

@CastagnaIT
Copy link
Collaborator

I expected some regression big changes and too much to test...
i will try take a look

@CastagnaIT
Copy link
Collaborator

however not depends from PR #1459
at least not directly because reverting that PR subs dont works anyway...

something dont work with pts, the following code

{
if (!res || streamReader->DTSorPTS() < res->GetReader()->DTSorPTS())
{

compare DTSorPTS from the sub reader and on the other side of < the audio/video readers, and so on

but sub pts value come from manifest and pts from a/v come from a/v packet itself that have another kind of value
these two diffferent pts's cant be compared as want to do the above code

happen for example
1711890077000 < 16107247155
1711890077000 is the sub pts and will be never lower than the others so the sub packet will be never sent to kodi
ofc hacking it to be lower subs works

atm i have i dont remember how was working before, i need to find the last working commit and place some debug lines

@CastagnaIT
Copy link
Collaborator

compiled previous release 21.4.3 and subtitle "works",
i can notice following pts

2024-03-31 16:20:22.311 T:18844   debug <general>: AddOnLog: inputstream.adaptive: COMPARE: 10788000000 < 20835247155
2024-03-31 16:20:22.313 T:18844   debug <general>: AddOnLog: inputstream.adaptive: COMPARE: 20837327155 < 20835247155

the 10788000000 pts is from subtitles reader,
this means that this problem was already present from old ISA versions, but hiddened, basically takes all the packets without taking pts into account, the comparator is useless is not consistent in this case

10788000000 and 20837327155 pts's arent comparable
the situation is similar to the current 21.4.4, but since i have introduced EXT-X-PROGRAM-DATE-TIME to read the pts, has shown the problem because the pts is higher than pts of video reader...

@glennguy seem i found another old ISA bug

@werimail
Copy link
Author

werimail commented Apr 1, 2024

compiled previous release 21.4.3 and subtitle "works", i can notice following pts

2024-03-31 16:20:22.311 T:18844   debug <general>: AddOnLog: inputstream.adaptive: COMPARE: 10788000000 < 20835247155
2024-03-31 16:20:22.313 T:18844   debug <general>: AddOnLog: inputstream.adaptive: COMPARE: 20837327155 < 20835247155

the 10788000000 pts is from subtitles reader, this means that this problem was already present from old ISA versions, but hiddened, basically takes all the packets without taking pts into account, the comparator is useless is not consistent in this case

10788000000 and 20837327155 pts's arent comparable the situation is similar to the current 21.4.4, but since i have introduced EXT-X-PROGRAM-DATE-TIME to read the pts, has shown the problem because the pts is higher than pts of video reader...

@glennguy seem i found another old ISA bug

Hi @CastagnaIT , that sounds to me like there is a solution to the problem of subtitles not being displayed for the current ISA version?! Is a separate issue required for this or is it fixed straight away? Greetings Weri

@CastagnaIT
Copy link
Collaborator

i have two ideas to solve the "new-old" problem

  1. replace streamReader->DTSorPTS from code above linked by using only manifest pts values. since it is just a packet selector based on the older pts, in theory (since there are to check what happens with multiple periods) should not make any difference, except that it would have consistent comparison pts. As i can see .ts package files, have stand-alone pts that seem not to correlate with periods/chapters. But for this change needs closer inspection, so before do something like this, i would like before a feedback from @glennguy.
  2. a middle step before a possible point 1 solution. Consist in to remove period start pts from subtitle segment pts, this in theory should restore the previous situation where the pts are always lower than video pts. Not a solution but again a workaround.

Is the initial problem about ad breaks or X-discontinuity abort playback still present?

@werimail
Copy link
Author

werimail commented Apr 1, 2024

Is the initial problem about ad breaks or X-discontinuity abort playback still present?

Do you mean the current ISA version 21.4.4? Have you changed anything about this in the new version?

EDIT: I just tested with the current ISA version 21.4.4 and Kodi 21RC2. Unfortunately, the initial problem about ad breaks or X-discontinuity abort playback still occurs there.

Greetings Weri

@CastagnaIT
Copy link
Collaborator

i was testing more the original issue problem but i found new stream weirdness
not only the EXT-X-ENDLIST is signalled in the middle of the live stream
but noticed weird buffering behaviour because some segments are skipped

Problem 1: EXT-X-PROGRAM-DATE-TIME sometime is not precise, so incosistent, the same segment with X pts, after a manifest update dont keep the same X pts
Problem 2: By "disabling" the uses of EXT-X-PROGRAM-DATE-TIME as segment startPTS, i have found that still skip segments, this time caused by inconsistent EXT-X-MEDIA-SEQUENCE values between manifest updates

i have attached some manifest updates to show the problems:
manifests.zip

on the first manifest "manifest_1712578185_child-video.txt" the EXT-X-MEDIA-SEQUENCE is "6"
on next files the value increase as it should, but,
on file "manifest_1712578212_child-video.txt" become inconsistent, is "1", why not "11" ??

on next file from "manifest_1712578212_child-video.txt" become "2",
then on next "manifest_1712578231_child-video.txt" there is the weird EXT-X-ENDLIST signal
and on next last manifest the EXT-X-MEDIA-SEQUENCE have again an inconsistent value of "1"

i am pretty confused... this dont seem to be a regular HLS

@werimail
Copy link
Author

werimail commented Apr 8, 2024

i was testing more the original issue problem but i found new stream weirdness not only the EXT-X-ENDLIST is signalled in the middle of the live stream but noticed weird buffering behaviour because some segments are skipped

Problem 1: EXT-X-PROGRAM-DATE-TIME sometime is not precise, so incosistent, the same segment with X pts, after a manifest update dont keep the same X pts Problem 2: By "disabling" the uses of EXT-X-PROGRAM-DATE-TIME as segment startPTS, i have found that still skip segments, this time caused by inconsistent EXT-X-MEDIA-SEQUENCE values between manifest updates

i have attached some manifest updates to show the problems: manifests.zip

on the first manifest "manifest_1712578185_child-video.txt" the EXT-X-MEDIA-SEQUENCE is "6" on next files the value increase as it should, but, on file "manifest_1712578212_child-video.txt" become inconsistent, is "1", why not "11" ??

on next file from "manifest_1712578212_child-video.txt" become "2", then on next "manifest_1712578231_child-video.txt" there is the weird EXT-X-ENDLIST signal and on next last manifest the EXT-X-MEDIA-SEQUENCE have again an inconsistent value of "1"

i am pretty confused... this dont seem to be a regular HLS

O @CastagnaIT that doesn't look good at all...in my opinion, the example stream is also officially offered by Pluto.TV.

By the way...have you made any progress with the problem regarding the missing subtitles in the current ISA version 21.4.4? Has @glennguy commented on this before?

Greetings Weri

@CastagnaIT
Copy link
Collaborator

By the way...have you made any progress with the problem regarding the missing subtitles in the current ISA version 21.4.4? Has @glennguy commented on this before?

i opened a new PR to "add back" again the old workaround
since a complete fix solution needs more time
unfurnately glennguy seem not available on these days so all PR are still awaiting approval

@werimail
Copy link
Author

werimail commented Apr 8, 2024

By the way...have you made any progress with the problem regarding the missing subtitles in the current ISA version 21.4.4? Has @glennguy commented on this before?

i opened a new PR to "add back" again the old workaround since a complete fix solution needs more time unfurnately glennguy seem not available on these days so all PR are still awaiting approval

Ah ok, I must have missed @CastagnaIT , sorry... the first tests with PR #1522 are also positive, the subtitles are now displayed correctly again! Thanks for the dismantling and greetings Weri

@glennguy
Copy link
Contributor

glennguy commented Apr 9, 2024

Apologies for my delays. I did start typing up a big reply to this thread on the weekend and forgot to finish it :/

@werimail
Copy link
Author

werimail commented Apr 10, 2024

By the way...have you made any progress with the problem regarding the missing subtitles in the current ISA version 21.4.4? Has @glennguy commented on this before?

i opened a new PR to "add back" again the old workaround since a complete fix solution needs more time unfurnately glennguy seem not available on these days so all PR are still awaiting approval

Ah ok, I must have missed @CastagnaIT , sorry... the first tests with PR #1522 are also positive, the subtitles are now displayed correctly again! Thanks for the dismantling and greetings Weri

Hi @CastagnaIT Unfortunately, another tests have shown that the subtitles are only displayed for a short period of time (a few seconds) and then disappear again. Is this also related to the problem here: #24777?

EDIT: further testing has shown that this only applies to HLS streams like https://mcdn.daserste.de/daserste/de/master.m3u8. DASH streams (http://mcdn.daserste.de/daserste/dash2/manifest.mpd) are not affected by this phenomenon. As a basis I used the current stable Kodi version 21.0 with the current ISA version from here: https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.adaptive/detail/PR-1522/1/artifacts

EDIT2: another note... with ISA version 21.4.3 and fix #1496 and Kodi version 21.0, the subtitle display also works permanently with the HLS streams?!

Greetings Weri

@CastagnaIT
Copy link
Collaborator

CastagnaIT commented Apr 11, 2024

this is a side effect of two problems

  1. the problem already mentioned above, about wrong comparison DTSorPTS, that cause to fire the subtitle reader without control
  2. an oversight on "if/else" conditions from a my recent PR that i forgot to fix

fix on #1526

PS. CI builds for android are broken, due to recent changes on xbmc repo

@werimail
Copy link
Author

werimail commented Apr 26, 2024

the problem seem to be due to

2024-04-26 09:41:56.108 T:6220 warning : AddOnLog: inputstream.adaptive: Cannot create sample reader due to unhandled representation container type

but its not clear to me how this can happen, i have tested again more times but im not able to replicate this

with the log only im not able to understand the situation if you enable "save manifests" from ISA expert settings you can provide all manifest files with the related log

Ok @CastagnaIT, here are the manifest files for the mentioned protocol
manifests.zip

Edit: by the way...this morning I temporarily switched back to the previous version 1532/7. This has been working for me without any problems so far...

Greetings Weri

@CastagnaIT
Copy link
Collaborator

@werimail by reading manifests+log looks similar to mine
i tried again on m y pc but unfurnately im not able to replicate your problem

i have rerun the CI builds, i can suggest to try reinstall the binary
to be sure that you are running the last PR change
https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.adaptive/detail/PR-1532/9/artifacts

@tmm1
Copy link
Contributor

tmm1 commented Apr 27, 2024

Happens when you use the same url as another person. The sid= argument must be unique

@CastagnaIT
Copy link
Collaborator

if i tried to play that link, after 2-3 manifests the server send only empty manifests with #EXT-X-ENDLIST
then the stream become unplayable, however in my case i have no crashes
could be one of the reasons of this video service behaviour is what @tmm1 said,
anyway this is not related to this issue

@MajinLugia
Copy link

Pluto TV is sure a complex platform, the Roku url header results in freezes and shutters every few seconds but the stream doesn't crash while the Samsung and Vizio headers work fine. Each to their own I guess...

@werimail
Copy link
Author

@werimail by reading manifests+log looks similar to mine i tried again on m y pc but unfurnately im not able to replicate your problem

i have rerun the CI builds, i can suggest to try reinstall the binary to be sure that you are running the last PR change https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.adaptive/detail/PR-1532/9/artifacts

Thanks @CastagnaIT so far the new version is working quite well for me. I will continue testing in various environments (Windows, Android) over the next few days, hopefully with positive results.

Greetings Weri

@CastagnaIT
Copy link
Collaborator

a new ISA version has been released with the patches

@ksooo
Copy link
Member

ksooo commented May 2, 2024

Cool, then i will do a release for pvr.plutotv utilizing the new properties.

@matthuisman
Copy link
Contributor

ill also update my pluto addon to set this new properties.
I assume older versions the properties just get ignored so no need to check IA version before adding them?

@CastagnaIT
Copy link
Collaborator

they should be ignored by old versions

@matthuisman
Copy link
Contributor

something changed recently? seems pluto playback is again pretty unstable

@ksooo
Copy link
Member

ksooo commented Jul 10, 2024

seems pluto playback is again pretty unstable

Same for pvr.plutotv

@CastagnaIT
Copy link
Collaborator

you can try enable/disable workarounds introduced for pluto
{"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}

since has malformed manifests that corrupt the playlist in any possible way
there is a scary mess with segments on timeline and broken periods,
they replace them by invalidating existing ones also with diffierents PTS,
this causes impossibility even in determining the current period in playing from the manifest update
this usually happens when they add ADS periods with also interlude break with "pluto logo"

the interlude break "pluto logo" often is added not caring if it does not match the current period / segments PTS

on last ISA release (of 2 weeks ago) there are no changes that affect it

@MajinLugia
Copy link

Is it possible to have a workaround for whenever you switch to channel while ads are playing? Most Pluto TV channels don't load unless ads are done playing so its a little annoying waiting game.

@CastagnaIT
Copy link
Collaborator

as said on my previous comment, some pluto channels are out-of-specs, so customized by the provider

If someone is able to improve the situation, you are free to propose a code change as long as it does not affect the standard HLS behaviour, acceptable if the change is not too large and can be enabled/disabled as the others workarounds

I've already spent a week on it to implement the workarounds for pluto, from my part i won't waste any more time for a single provider that provides out-of-spec streams

@ksooo
Copy link
Member

ksooo commented Oct 24, 2024

from my part i won't waste any more time for a single provider

I completely understand that. However, pluto is one of the biggest providers imo, many people are using pluto, esp. as it is free to use.

@MajinLugia
Copy link

from my part i won't waste any more time for a single provider

I completely understand that. However, pluto is one of the biggest providers imo, many people are using pluto, esp. as it is free to use.

Huge fact, many channels from other regions can also be used which makes this possibly the biggest provider. The workarounds also do not stick when using playlist editors that makes life a whole lot easier when adding a new channel.

@CastagnaIT
Copy link
Collaborator

CastagnaIT commented Oct 24, 2024

if you use playlist editors with STRM or M3U8 files,
you have to make sure that these playlist files include also ISA properties to enable the workarounds to each channel, otherwise is useless

just to make it clear HLS workarounds will never be enabled by default

@MajinLugia
Copy link

Unless I’m doing something wrong, I don’t see any difference in the streams with the workarounds or does iptvmerge ignore KODIPROP? @matthuisman

@matthuisman
Copy link
Contributor

IPTV merge should bring through the Kodi props. You can easily look at the output playlist to confirm....

@MajinLugia
Copy link

IPTV merge should bring through the Kodi props. You can easily look at the output playlist to confirm....

That's where I'm not sure what is going on.

The output iptvmerge playlist simply shows this line for the Pokemon channel.
#EXTINF:-1 group-title="Kids" tvg-chno="27" tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" , Pokémon
plugin://plugin.program.iptv.merge/?_=play_channel&slug=18.jjwF%2Fw

This is the line from the pluto tv playlist I added to iptvmerge.
#EXTINF:-1 tvg-id="6675c7868768aa0008d7f1c7"tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png"tvg-chno="27"group-title="Kids",Pokémon
#KODIPROP:inputstream.adaptive.manifest_config={"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}
https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/6675c7868768aa0008d7f1c7/master.m3u8?deviceType=vizio-watchfreeplus&deviceMake=vizio&deviceModel=vizio&deviceVersion=unknown&appVersion=unknown&deviceLat=0&deviceLon=0&deviceDNT=%7BTARGETOPT%7D&deviceId=%7BPSID%7D&advertisingId=%7BPSID%7D&us_privacy=1YNY&vizio_app_domain=%7BAPP_DOMAIN%7D&vizio_app_name=%7BAPP_NAME%7D&profileLimit=&profileFloor=&embedPartner=vizio-watchfreeplus

Feedback is appreciated.

@matthuisman
Copy link
Contributor

matthuisman commented Oct 24, 2024 via email

@matthuisman
Copy link
Contributor

matthuisman commented Oct 24, 2024 via email

@MajinLugia
Copy link

MajinLugia commented Oct 24, 2024

Oh wait. In IPTV merge turn off use merge proxy setting. When it uses that it adds Kodi props internally

On Fri, 25 Oct 2024, 06:43 MajinLugia, @.> wrote: IPTV merge should bring through the Kodi props. You can easily look at the output playlist to confirm.... That's where I'm not sure what is going on. The output iptvmerge playlist simply shows this line for the Pokemon channel. #EXTINF:-1 group-title="Kids" tvg-chno="27" tvg-id="6675c7868768aa0008d7f1c7" tvg-logo=" https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" , Pokémon plugin://plugin.program.iptv.merge/?_=play_channel&slug=18.jjwF%2Fw This is the line from the pluto tv playlist I added to iptvmerge. #EXTINF:-1 tvg-id="6675c7868768aa0008d7f1c7"tvg-logo=" https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png"tvg-chno="27"group-title="Kids",Pokémon #KODIPROP:inputstream.adaptive.manifest_config={"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true} https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/6675c7868768aa0008d7f1c7/master.m3u8?deviceType=vizio-watchfreeplus&deviceMake=vizio&deviceModel=vizio&deviceVersion=unknown&appVersion=unknown&deviceLat=0&deviceLon=0&deviceDNT=%7BTARGETOPT%7D&deviceId=%7BPSID%7D&advertisingId=%7BPSID%7D&us_privacy=1YNY&vizio_app_domain=%7BAPP_DOMAIN%7D&vizio_app_name=%7BAPP_NAME%7D&profileLimit=&profileFloor=&embedPartner=vizio-watchfreeplus Feedback is appreciated. — Reply to this email directly, view it on GitHub <#1507 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPQAKNIPYEFD4WG4VXHERDZ5EWT5AVCNFSM6AAAAABEQBC44CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZVHE2TONRSHE . You are receiving this because you were mentioned.Message ID: @.>

Not really sure if its my tv but when I turn off the proxy, it doesn't want to play some channels including Samsung channels. Weird.
Appears to be an IPTV Simple problem after starting Kodi fresh....

@matthuisman
Copy link
Contributor

matthuisman commented Oct 24, 2024

i tested with the below

#EXTINF:-1 tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" tvg-chno="27" group-title="Kids",Pokémon
#KODIPROP:inputstream.adaptive.manifest_config={"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}
https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/6675c7868768aa0008d7f1c7/master.m3u8?deviceType=vizio-watchfreeplus&deviceMake=vizio&deviceModel=vizio&deviceVersion=unknown&appVersion=unknown&deviceLat=0&deviceLon=0&deviceDNT=%7BTARGETOPT%7D&deviceId=%7BPSID%7D&advertisingId=%7BPSID%7D&us_privacy=1YNY&vizio_app_domain=%7BAPP_DOMAIN%7D&vizio_app_name=%7BAPP_NAME%7D&profileLimit=&profileFloor=&embedPartner=vizio-watchfreeplus

Without IPTV Merge proxy enabled, I got the output playlist as

#EXTM3U

#EXTGRP:

#EXTINF:-1 group-title="Kids" tvg-chno="27" tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" , Pokémon
#KODIPROP:inputstream.adaptive.manifest_config={"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}
https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/6675c7868768aa0008d7f1c7/master.m3u8?deviceType=vizio-watchfreeplus&deviceMake=vizio&deviceModel=vizio&deviceVersion=unknown&appVersion=unknown&deviceLat=0&deviceLon=0&deviceDNT=%7BTARGETOPT%7D&deviceId=%7BPSID%7D&advertisingId=%7BPSID%7D&us_privacy=1YNY&vizio_app_domain=%7BAPP_DOMAIN%7D&vizio_app_name=%7BAPP_NAME%7D&profileLimit=&profileFloor=&embedPartner=vizio-watchfreeplus

Which looks fine. With the IPTV Merge proxy I got

#EXTM3U

#EXTGRP:

#EXTINF:-1 group-title="Kids" tvg-chno="27" tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" , Pokémon
plugin://plugin.program.iptv.merge/?_=play_channel&slug=6.jjwF%2Fw

I then confirmed when I play that merge path, the kodi properties are still set as expected
AddOnLog: inputstream.adaptive: Property found "inputstream.adaptive.manifest_config" value: {"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}

This is because IPTV Merge stores them and adds them itself when its called to play that channel slug

So I see no issue with IPTV Merge and Kodi properties

Also, if you dont have that Merge proxy enabled, you won't get the default user-agent I add which is not a Kodi user-agent.
So, maybe thats why some channels don't play without it.. Not sure sorry

UPDATE:
Yes, its the user-agent that is the issue.
You can set user-agent to OKHTTP in IPTV Simple advanced settings
You'll also need to enable Inputstream Adaptive for HLS in IPTV Simple advanced settings otherwise itll use ffmpeg
(or can add the inputstreamaddon=inpustream.adaptive kodi property)

(IPTV Merge proxy does these automatically)

@MajinLugia
Copy link

MajinLugia commented Oct 24, 2024

i tested with the below

#EXTINF:-1 tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" tvg-chno="27" group-title="Kids",Pokémon
#KODIPROP:inputstream.adaptive.manifest_config={"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}
https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/6675c7868768aa0008d7f1c7/master.m3u8?deviceType=vizio-watchfreeplus&deviceMake=vizio&deviceModel=vizio&deviceVersion=unknown&appVersion=unknown&deviceLat=0&deviceLon=0&deviceDNT=%7BTARGETOPT%7D&deviceId=%7BPSID%7D&advertisingId=%7BPSID%7D&us_privacy=1YNY&vizio_app_domain=%7BAPP_DOMAIN%7D&vizio_app_name=%7BAPP_NAME%7D&profileLimit=&profileFloor=&embedPartner=vizio-watchfreeplus

Without IPTV Merge proxy enabled, I got the output playlist as

#EXTM3U

#EXTGRP:

#EXTINF:-1 group-title="Kids" tvg-chno="27" tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" , Pokémon
#KODIPROP:inputstream.adaptive.manifest_config={"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}
https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/6675c7868768aa0008d7f1c7/master.m3u8?deviceType=vizio-watchfreeplus&deviceMake=vizio&deviceModel=vizio&deviceVersion=unknown&appVersion=unknown&deviceLat=0&deviceLon=0&deviceDNT=%7BTARGETOPT%7D&deviceId=%7BPSID%7D&advertisingId=%7BPSID%7D&us_privacy=1YNY&vizio_app_domain=%7BAPP_DOMAIN%7D&vizio_app_name=%7BAPP_NAME%7D&profileLimit=&profileFloor=&embedPartner=vizio-watchfreeplus

Which looks fine. With the IPTV Merge proxy I got

#EXTM3U

#EXTGRP:

#EXTINF:-1 group-title="Kids" tvg-chno="27" tvg-id="6675c7868768aa0008d7f1c7" tvg-logo="https://images.pluto.tv/channels/6675c7868768aa0008d7f1c7/colorLogoPNG.png" , Pokémon
plugin://plugin.program.iptv.merge/?_=play_channel&slug=6.jjwF%2Fw

I then confirmed when I play that merge path, the kodi properties are still set as expected AddOnLog: inputstream.adaptive: Property found "inputstream.adaptive.manifest_config" value: {"hls_ignore_endlist":true,"hls_fix_mediasequence":true,"hls_fix_discsequence":true}

This is because IPTV Merge stores them and adds them itself when its called to play that channel slug

So I see no issue with IPTV Merge and Kodi properties

Also, if you dont have that Merge proxy enabled, you won't get the default user-agent I add which is not a Kodi user-agent. So, maybe thats why some channels don't play without it.. Not sure sorry

Yeah this is an odd problem, I have opened an issue over at iptv simple and for some reason I see in the log that I get HTTP error 403 Forbidden, definitely didn’t happen months ago….
However since the Kodi Prop is indeed enabled with the proxy on then I guess the workarounds aren’t really effective.
Always seem to be running into one problem after another, just my luck lol.

@matthuisman
Copy link
Contributor

See my update to my last comment :)

@MajinLugia
Copy link

See my update to my last comment :)

I swear you are the best! Thank you so much for the help! Got it working now!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
8 participants