xteve-project / xTeVe

M3U Proxy for Plex DVR and Emby Live TV
MIT License
1.73k stars 228 forks source link

Available Streams 0 if not using filter #214

Open gomezpt opened 3 years ago

gomezpt commented 3 years ago

Hello,

I dont want to use the filter, as my main purpose is to merge several free playlists.

Is that possible ? I tried with regex but still 0 streams.

Thanks and regards.

mar-mei commented 3 years ago

The filter must be used for more than 480 streams. The reason for this is Plex.

13steinj commented 3 years ago

@mar-mei I keep seeing this 480 number all over the place-- is it a Plex limitation (with a source somewhere), a bug (possibly because of how they render the page as you said in the link), or just a matter of "some people can handle more depending on their browser"? Depending on the answer it may be as simple as opening a request with Plex on their forums to paginate the channels.

Further, how does this limit work with two plex servers pointed at two different sets of 480 channels? How does xTeVe handle channels which are the same, but just different qualities?

mar-mei commented 3 years ago

The Plex Limit has more to do with the number of EPG entries. The more EPG entries, the fewer channels are displayed in the Plex Guide. Many tests have shown that more than 500 channels with EPG for 5 days were missing channels in the Plex. In xTeVe the number of channels does not matter, the filter only has to be used if there are more than 480, more than 480 channels can also be filtered, there is then just a warning in the log.

I'm not sure how the Plex client will behave when you have multiple Plex servers with DVR. But I suspect that the limit is per server

xTeVe does not use a video framework, so it cannot see which channel has which quality. It just searches the M3U, similar to the search function in a text editor xTeVe only uses the channel name as fallback. If the channel in the M3U has a unique ID, this ID is used for matching and then channels with the same name are also possible.

M3U without ID, the name is used:

#EXTM3U
#EXTINF:0,Channel SD
http://xxx.xxx.xxx.xxx/channel_sd.ts
#EXTINF:0,Channel HD
http://xxx.xxx.xxx.xxx/channel_hd.ts

If the channel name changes, the mapping is lost and is processed like a new channel.

With ID, the ID is used:

#EXTM3U
#EXTINF:0 CUID="1000",Channel
http://xxx.xxx.xxx.xxx/channel_sd.ts
#EXTINF:0 CUID="1001",Channel
http://xxx.xxx.xxx.xxx/channel_hd.ts

Since the ID is different, the name can be the same and xTeVe processes both channels as different channels. If the channel name changes, this change will also be passed on to Plex. However, it is advisable to have information about the quality in the channel name, otherwise both have the same name in Plex and you don't know which is which.

13steinj commented 3 years ago

The Plex Limit has more to do with the number of EPG entries. The more EPG entries, the fewer channels are displayed in the Plex Guide. Many tests have shown that more than 500 channels with EPG for 5 days were missing channels in the Plex. In xTeVe the number of channels does not matter, the filter only has to be used if there are more than 480, more than 480 channels can also be filtered, there is then just a warning in the log.

Interesting, have you (or whoever has noticed such) considered filing a bug report on the Plex forums? Is this true even when using something like a pure HDHomeRun with many channels and nothing else?

xTeVe does not use a video framework, so it cannot see which channel has which quality. It just searches the M3U, similar to the search function in a text editor xTeVe only uses the channel name as fallback. If the channel in the M3U has a unique ID, this ID is used for matching and then channels with the same name are also possible.

M3U without ID, the name is used:

#EXTM3U
#EXTINF:0,Channel SD
http://xxx.xxx.xxx.xxx/channel_sd.ts
#EXTINF:0,Channel HD
http://xxx.xxx.xxx.xxx/channel_hd.ts

If the channel name changes, the mapping is lost and is processed like a new channel.

With ID, the ID is used:

#EXTM3U
#EXTINF:0 CUID="1000",Channel
http://xxx.xxx.xxx.xxx/channel_sd.ts
#EXTINF:0 CUID="1001",Channel
http://xxx.xxx.xxx.xxx/channel_hd.ts

Okay. For context I have entries such as the following:

#EXTINF:-1 tvg-id="ABCNews.us" tvg-name="ABC News" tvg-country="US" tvg-language="English" tvg-logo="" group-title="News",ABC News (720p)
http://xxx.xxx.xxx.xxx/channel/uuid1.m3u8
#EXTINF:-1 tvg-id="ABCNews.us" tvg-name="ABC News" tvg-country="US" tvg-language="English" tvg-logo="" group-title="News",ABC News (1080p)
http://xxx.xxx.xxx.xxx/channel/uuid2.m3u8

I just want to make sure this is handled like I think it is-- they have the same ID, so they are treated as the same channel by xTeVe-- how does Plex see this? As separate channels?

mar-mei commented 3 years ago

I stopped reporting bugs to Plex, either it took me forever to get an answer or there was never one at all. I use a Fritz DVB-C repeater as a TV tuner, but it doesn't have 500 channels. But an M3U export which is perfect for xTeVe.

The tvg-id is only used for the assignment of the EPG data from the XMLTV file. In your example, both channels are displayed as separate channels in xTeVe, which use the same EPG data. Everything OK. xTeVe turns that it into two streams and two EPG entries in the xteve.xml file. Internally, Plex uses the channel number for the EPG assignment and the same EPG data cannot be assigned to several Steams. Since xTeVe has a number for each channel and this is unique, several EPG channels can be generated and Plex is happy.

Here you can see what kind of information Plex sees:

http://xteve.ip:34400/lineup.json
13steinj commented 3 years ago

I stopped reporting bugs to Plex, either it took me forever to get an answer or there was never one at all.

Incredibly unfortunate. I'll report anyway, and depending on the bug (if I find it) I might write a binary patch myself ala the recent GTA Online perf bug depending on how annoyed I am.

xTeVe turns that it into two streams and two EPG entries in the xteve.xml file. Internally, Plex uses the channel number for the EPG assignment and the same EPG data cannot be assigned to several Steams. Since xTeVe has a number for each channel and this is unique, several EPG channels can be generated and Plex is happy.

Here you can see what kind of information Plex sees:

http://xteve.ip:34400/lineup.json

Gotcha. I'll look into the details soon enough and check out anything regarding m3u / tuner specifications that make this "better" and put it in a private fork for testing (and pull request if wanted after I figure everything out).