Jump to content
pünktchen

API epg.html returns programs for not existing channels

Recommended Posts

pünktchen

If i call api/epg.html? with only a start and end date but without the channel parameter,

it returns programs with a Channel Epg Id that don't even exist in my channel lineup that i get from api/getchannelsxml.html?

How can this happen?

Share this post


Link to post
Griga

Example required.

Share this post


Link to post
pünktchen

Sorry for the really long delay. I couldn't reproduce it myself, but the user @D3ltorohd has exactly this problem.

If he calls http://127.0.0.1:8089/api/epg.html?lvl=2&channel=#####&start=43261.14236111&end=43264.14236111

with the one and only "FOX" channel epgid from his channels.xml intead of #####, he gets following output: https://1drv.ms/t/s!AsZVfH8wmdhLkEXEhvAEJ--5Z0gq

 

Just search for <title>Hawaii Five-0</title> and you will see all programs for this show are doubled.

One time with

channel="563521184202764"

but also with

channel="563521184202768"

How can this happen?

Share this post


Link to post
Griga

The EPG data has been received with two different service IDs.

 

The EPG Channel IDs converted to hex and split into parts -> TunerType | NetworkID | TransportstreamID | ServiceID:

563521184202764 = 2|0085|0002|000C
563521184202768 = 2|0085|0002|0010

and converted back do decimal yields Satellite (Astra 19°E), Network ID = 133 (Beta Digital/SKY), Transportstream ID = 2 (11759 H), Service ID = 12 (NatGeo Wild) and Service ID = 16 (Fox Serie).

 

Note: The Network ID, Transportstream ID and Service ID values in the  /api/epg.html  output are part of the broadcasted EPG data. They serve as a kind of "path" to the channel to which the data belongs. The DMS uses it internally for assigning EPG data to channels. If the values that were received with the EPG data match the corresponding values in the channel list (retrieved by a channel search), the DMS knows that the data belongs to this channel.

 

Share this post


Link to post
pünktchen

Okay, that's a nice explanation for the theory, but the main questions are still there:

 

Why do we get two identical program entries with two different channel epgid's?

Why has the channel epgid 563521184202764 (NatGeo Wild) the program description of the channel epgid 563521184202768 (Fox)?

Why do we get two different channel epgid's at all? If i query the api for guide data from channel AB, i expect it to return only entries for this channel and not also for channel XY!

 

Line 658:

<programme start="20180611145500" stop="20180611154000" channel="563521184202768">
	<eventid>1288402656</eventid>
	<content>21</content>
	<charset>255</charset>
	<titles>
		<title>Hawaii Five-0</title>
	</titles>
	<events>
		<event>S2E10 Falsche Fährte</event>
	</events>
	<descriptions>
		<description>Jenna Kaye taucht bei Steve auf und bittet ihn um Hilfe: Sie will ihren Verlobten aus Nordkorea holen, und Steve soll bei dem riskanten Unternehmen behilflich sein. Während das restliche Team den Mord an einer Journalistin untersucht, finden Chin und Kono heraus, dass Jenna mit der ermordeten Journalistin Kontakt hatte - doch Steve ist bereits in Nordkorea in der Gewalt von Wo Fat, für den Jenna arbeitet. Das Team macht sich unter Leitung von Joe White auf, um ihn zu befreien...
					 Cast: Alex O'Loughlin (Steve McGarrett) (Steve McGarrett), Scott Caan (Danny "Danno" Williams) (Danny "Danno" Williams), Daniel Dae Kim (Chin Ho Kelly) (Chin Ho Kelly), Grace Park (Kono Kalakaua) (Kono Kalakaua), Masi Oka (Dr. Max Bergman) (Dr. Max Bergman), Lauren German (Lori Weston) (Lori Weston), Jimmy Buffett (Frank Bama) (Frank Bama), Mark Dacascos (Wo Fat) (Wo Fat), Larisa Oleynik (Jenna Kaye) (Jenna Kaye), William Sadler (Jack McGarrett) (Jack McGarrett).
					 Director: Kate Woods.
					 soap/melodrama/folkloric Length: 45m
					 Ratings: 0/FSK 0/FSK
					 USA 2011
		</description>
	</descriptions>
</programme>

 

Line 31097:

<programme start="20180611145500" stop="20180611154000" channel="563521184727164">
	<eventid>1288402656</eventid>
	<content>21</content>
	<charset>255</charset>
	<titles>
		<title>Hawaii Five-0</title>
	</titles>
	<events>
		<event>S2E10 Falsche Fährte</event>
	</events>
	<descriptions>
		<description>Jenna Kaye taucht bei Steve auf und bittet ihn um Hilfe: Sie will ihren Verlobten aus Nordkorea holen, und Steve soll bei dem riskanten Unternehmen behilflich sein. Während das restliche Team den Mord an einer Journalistin untersucht, finden Chin und Kono heraus, dass Jenna mit der ermordeten Journalistin Kontakt hatte - doch Steve ist bereits in Nordkorea in der Gewalt von Wo Fat, für den Jenna arbeitet. Das Team macht sich unter Leitung von Joe White auf, um ihn zu befreien...
					 Cast: Alex O'Loughlin (Steve McGarrett) (Steve McGarrett), Scott Caan (Danny "Danno" Williams) (Danny "Danno" Williams), Daniel Dae Kim (Chin Ho Kelly) (Chin Ho Kelly), Grace Park (Kono Kalakaua) (Kono Kalakaua), Masi Oka (Dr. Max Bergman) (Dr. Max Bergman), Lauren German (Lori Weston) (Lori Weston), Jimmy Buffett (Frank Bama) (Frank Bama), Mark Dacascos (Wo Fat) (Wo Fat), Larisa Oleynik (Jenna Kaye) (Jenna Kaye), William Sadler (Jack McGarrett) (Jack McGarrett).
					 Director: Kate Woods.
					 soap/melodrama/folkloric Length: 45m
					 Ratings: 0/FSK 0/FSK
					 USA 2011
		</description>
	</descriptions>
</programme>

 

Share this post


Link to post
Griga
32 minutes ago, pünktchen said:

Why do we get two identical program entries with two different channel epgid's? 

 

Probably the broadcaster's fault.

 

Quote

If i query the api for guide data from channel AB, i expect it to return only entries for this channel and not also for channel XY!

 

Where is the problem? Obviously the epg.fox.txt output has not been filtered by specifying an EPG Channel ID.

 

Share this post


Link to post
pünktchen
53 minutes ago, Griga said:

Probably the broadcaster's fault.

As far as i know it's not the broadcasters guide data but from xEPG.

 

Quote

Where is the problem? Obviously the epg.fox.txt output has not been filtered by specifying an EPG Channel ID.

The problem is the filter is already in the api call

http://127.0.0.1:8089/api/epg.html?lvl=2&channel=563521184202768&start=43261.14236111&end=43264.14236111

but the DMS also returns data for channel=563521184202764

Share this post


Link to post
Griga
4 minutes ago, pünktchen said:

The problem is the filter is already in the api call 

http://127.0.0.1:8089/api/epg.html?lvl=2&channel=563521184202768&start=43261.14236111&end=43264.14236111

but the DMS also returns data for channel=563521184202764

 

I'm still waiting for a proof that this can happen. The epg.fox.txt has not been created with this API call. It contains a lot of different EPG Channel IDs.

 

I can't reproduce it here with the broadcasted EPG data from Fox Serie. Maybe the xEPG import contained a wrong Service ID.

 

Share this post


Link to post
pünktchen
12 minutes ago, Griga said:

I'm still waiting for a proof that this can happen. The epg.fox.txt has not been created with this API call. It contains a lot of different EPG Channel IDs

I can't answer this, because @D3ltorohd was the one that created the output based on my instructions.

What happens if the epgid for http://127.0.0.1:8089/api/epg.html?lvl=2&channel=####&start=####&end=#### doesn't exist?

Does DMS return all guide data for all channels then? If so, then that is bad design.

 

Btw. this whole thread wouldn't even exist

if there were only one unique id for a channel and not two (channel id & channel epgid)

or if we could query the guide data with the channel id also

or if the guide data would list the channel id also

or if we could create timers with the channel epgid also.

This mixture - sometimes we have to use the channel id for a api call, other times we have to use the channel epgid - is the real problem!!!

Share this post


Link to post
Griga
35 minutes ago, pünktchen said:

I can't answer this, because @D3ltorohd was the one that created the output based on my instructions. 

 

Of course you can. It's so obvious. Do you really think an API call fot getting the EPG data of a single channel can yield a 10.3 MB file?

 

35 minutes ago, pünktchen said:

What happens if the epgid for http://127.0.0.1:8089/api/epg.html?lvl=2&channel=####&start=####&end=#### doesn't exist?  Does DMS return all guide data for all channels then?

 

No. Simply try.

 

However, in case of a typo like channels=#### the DMS would ignore the parameter.

 

35 minutes ago, pünktchen said:

if there were only one unique id for a channel and not two (channel id & channel epgid) 

 

There are good reasons for using differents types of IDs for different purpose. In a nutshell: The EPG ID and how EPG data is assigend to channels is dictated by the DVB specifications. The other channel ID is designed for practical needs in the DVBViewer/DMS, e.g. for distinguishing audio tracks of a channel, which isn't possible with the EPG ID.

 

Share this post


Link to post
pünktchen
15 minutes ago, Griga said:

However, in case of a typo like channels=#### the DMS would ignore the Parameter.

That would explain the output. User error...

 

Quote

There are good reasons for using differents types of IDs for different purpose. In a nutshell: The EPG ID and how EPG data is assigend to channels is dictated by the DVB specifications. The other channel ID is designed for practical needs in the DVBViewer/DMS, e.g. for distinguishing audio tracks of a channel, which isn't possible with the EPG ID.

So are you saying that a channel with two audio tracks also has two different channel ID's? I've never seen this in the channels.xml

If only one ID is shown and the second ID is hidden from users, how can i create a timer to get also the second audio track?

You will say it doesn't matter because we're recording all audio tracks anyway. Then i have to ask again: Why can't we set a timer with the channel EPGID then,

if DVBViewer doesn't distinguish between different audio tracks for recording and only is interested in the channel itself?

Also what's the purpose to output the timers also with a channel EPGID, if we cannot use the same number to create/edit timers?

 

I do not care at all what ID is used for what internal function. DVBViewer knows from both ID's which channel is requested.

So why can i as an enduser/plugin developer not use the one or the other?

I know also other tv backend API's, but DMS is the only one where two different ID's have to be used in different situations!

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×