[RELEASE] Playlist Manager for Channels [Streaming Library Manager Extension]

It would be more accurate to say that PLM is a "Custom Channels" "Source" for Channels DVR, but as a replacement from needing to have many disconnected "Sources" to only having one or a few streamlined integrated "Sources".

I noticed in the YouTube video that you had brought Channels (OTA) into PLM as a "custom channel" as you call it. Does that preclude having the HDHR OTA tuner as a standard source in the Channels DVR server setup? Does that basically mean that there are no "sources" at all in the standard Channels DVR server setup?

Yes! That's what worked for me. :sweat_smile:
I tried all other suggestions, including the actual IP address of the server, and nothing worked.

Thank you.

Will do, thanks. :slight_smile:

That will be great! I'm looking forward to the time this is functional! :smiley:

:clap: :clap: :clap:

2 Likes

@babsonnexus I don't know if you can do anything about this but the drop-down widgets on the Manage Parent Stations page don't resize nicely when the whole window is resized.

If I make the whole window wider, it looks fine.

Ah, thanks for that. Maybe this is just a macOS/Safari thing but with a trackpad to click and hold and scroll right while reading, this text is not very accessible. Anything that would reveal it in a larger text block or popup would help.

Thanks for the consideration of my other feature requests. I'll follow your tips and get cranking on my channels curation and cleanup.

I hereby nominate SLM+PLM as Channels DVR Add-On of the Year :trophy:

4 Likes

+1 !

Last year, it was OliveTin for Channels.

What will it be next year? :grin:

3 Likes

Yeah, I've seen this before, too, and not just there. Something about the dropdown boxes always wants to stay the entire width of the largest value in it. I'll see if something can be done about all of them!

There can never be zero sources, it just means that PLM would be the sources in Channels and that's it. That is, if you choose to go down that path. That might not work or be necessary for everyone. It's totally up to the end user how far they want to take this! For instance, there is no great replacement for how Channels handles TVE (unless you have Frndly or use ADBTuner or CC4C for every station), so I'll have to keep that as a source no matter what, just at a lower priority so it is not used by default.

Also, if I use Channels OTA as a source, I can't remove it. However, if I use the HDHR directly by using this:

http://hdhomerun.local/lineup.m3u

or...

http://[IP_ADDRESS_OF_HDHR]/lineup.m3u

Then I don't need the Channels OTA source and can remove it. Yet, if I do that, I'll want to put the manual Gracenote ID override in at the Parent level. Channels is going to be way more responsive to changes in lineups than PLM. On the other hand, PLM won't allow sudden changes without the user intervening!

The bottom line is that there is no right way to approach this; PLM is a tool to use as you please, with thousands of possibilities on what you might want to do. Give it a try, play around, and see what happens. There's no danger in just starting it up!

1 Like

Looks pretty great!

I was secretly hoping that this was a workaround method for something like adbtuner, but rolled right into the Channels DVR interface.

Was able to tame the beast a bit

Just reduced my channel list to just under 100 (bar TVE, Eplus non-linear and HDHR).

I'm gonna try using the tool for TVE and HDHR now. Could be quite useful to output the channels collection to Threadfin/Kodi too. So far, loving it

I think i put too many sources in to Playlist manager.
How do i clear out the entries or edit them?
When i start the docker, it tries to process the update and it eventually crashes.
Your help is appreciated.

2 Likes

My internet went out overnight knocking out some of the sources. I had dumb luck getting it to work :rofl::joy:

During startup, the only thing PLM related is checking to see if it on or not. There's nothing related to it that should be causing any crashes at that point. Please provide your Docker logs, but this sounds like something totally unrelated.

I don't think that is possible. All it will do is take more time when processing them. They are basically treated individually, not as a group.

If you truly want to go down this path (and I don't recommend doing so), if you go into your Volumes in Docker, for your SLM one, you should see something like this:

image

The PLM files all begin with "PlaylistManager" and are plain text. You can edit them, remove everything but the header row, and save. That will resent them to baseline.

Once again, though, I don't believe you should need to do this, ever.

Hi there,
I got the Stream link manager up and running again. Do you have a link where i can edit the urls added?
I just need to remove some stuff that contains https. links.
I grabbed some addresses that seem to have really messed up Playlist manager.
https://apsattv.com/
I had grabbed a tclplus link and roku link and the system appears to be hanging really bad.
If i try to see the playlists it will just create a lot of disk activity and eventually the docker will crash.

He made a video showing all the new features including the one you asked about.

v2024.11.02.0936 has been released as stable. Most of the updates are related to PLM, which is why I'm posting it here.


MODIFIED: {GEN} Added pop-up boxes to various fields so values can be seen by hovering over them

Hovering pop-up info boxes are now all over the place, not just in PLM. Check them out!

image

Let me know if there are other fields where I didn't put this that would be useful. They are very easy to add now.


FIXED: {GEN} Drop down boxes now stay in their column and expand to full-size when you select them

This is now resolved all over the place, not just in PLM:

image

Please let me know if there is another dropdown somewhere I missed. This is a very easy fix now!


FIXED: {PLM} Added infinite scrolling to station lists (unassigned, assigned, parents) for faster loading

This is now resolved where for Unassigned, Assigned, and Parent stations, it will load just 100 lines at a time and add more as you scroll downward.

Let me know if there are other areas this might be useful. This is not very easy to implement, so I'd rather only do it where required for performance reasons, not just everywhere for visual reasons. I didn't come across anywhere else where I thought it would make a noticeable difference, but you never know someone else's use case!


MODIFIED: {PLM} Moved "Add Parent" to the top, minor formatting updates

While adding the infinite scroll from above, it became clear that it would be better if the "add" function were on top, so it is:


FIXED: {PLM} Potential workaround solution for malformed m3u and XML sources that occasionally give errors like 'broken pipe'

A potential solution has been implemented. You may see warnings one to several times in the notifications and logs while it is trying to attach to services like these. Since I can't guarantee if this is fixed, we'll just be monitoring for the time being. Please let me know if you receive the ERROR message and it says it can't load. Providing logs will be very helpful if what I have put in place has not resolved this!


@rpaulmerrell, as you can see, a number of performance improvement have been added in this version. Please upgrade and see if your issues are resolved. If you still cause the program to crash, grab the log file and your PlaylistManager... files from the directory I showed above and send them to me. Also, tell me step-by-step exactly what you did to cause the crash so I can replicate. I need the info from the logs and what you've specifically done to understand what might be happening and address.

1 Like

Just wanted to report that my problem was solved.
I removed the offending links i'm now sorting out all my fast channels.
I'm so glad to have SLM going.

@babsonnexus OK so I put my containers on a macvlan so that they can be seen by slm. This all works fine. My issue now is for my xml guide sources, slm will not create an xml file no matter what I do.

I added my source

The epg is from channels, it opens fine in the browser

However it never generates a xmlepg for mpeg-ts

Looking at the logs it appears that is downloading it (192.168.12.33 is my other Channels server and 192.168.12.8 is my frndly container) When i added the frndly epg xml it worked great, I added the channels as parent stations and then the xml link appeared. Not so much luck with the other Channels source. I have tried using:
http://192.168.12.33:8089/devices/M3U-AUFreeview/guide/xmltv?duration=1209600 (Channels Server)
https://i.mjh.nz/nz/epg.xml (Guide xml as configured on the Channels Server)
https://raw.githubusercontent.com/matthuisman/i.mjh.nz/e2c6e58798b3583db18513ea088478da01fd5e08/nz/epg.xml (cname it resolves to)

None of them work and slm just ignores them.
Any insight you could provide would be very helpful :slight_smile:
Thanks!

[DEBUG | 2024-11-04 16:38:06,186] - Starting new HTTP connection (1): 192.168.12.33:8089
[DEBUG | 2024-11-04 16:38:06,197] - http://192.168.12.33:8089 "GET /devices/M3U-AUFreeview/guide/xmltv HTTP/11" 200 None
[DEBUG | 2024-11-04 16:38:06,214] - Encoding detection: utf_8 is most likely the one.
[DEBUG | 2024-11-04 16:38:06,215] - Starting new HTTP connection (1): 192.168.12.8:80
[DEBUG | 2024-11-04 16:38:06,329] - http://192.168.12.8:80 "GET /epg.xml?gracenote=exclude HTTP/10" 200 None
[DEBUG | 2024-11-04 16:38:06,684] - Encoding detection: utf_8 is most likely the one.
[DEBUG | 2024-11-04 16:38:06,685] - Starting new HTTPS connection (1): raw.githubusercontent.com:443
[DEBUG | 2024-11-04 16:38:06,710] - https://raw.githubusercontent.com:443 "GET /matthuisman/i.mjh.nz/e2c6e58798b3583db18513ea088478da01fd5e08/nz/epg.xml HTTP/11" 200 1130329

I have no issue getting MPEG-TS guides:

However, you won't get an XML Guide under any circumstances if there is a Gracenote ID in the source playlist, or any of the child stations under a shared parent. Even if you set your preferred playlist as one with XML guide data, if some child under that parent has a Gracenote ID, it is going to be used and end up under a Gracenote m3u, and hence no XML guide data. Since your source m3u appears to be coming from Channels, if you mapped stations in there, then those stations will have a Gracenote ID.

Actually, your logs indicate the complete opposite. PLM successfully loaded the XML into a temporary file. The next step in the process says that if a station is in a Non-Gracenote m3u, then search for matching XML guide data in the temp file and copy that to the corresponding Non-Gracenote XML. But that only applies to Non-Gracenote m3u(s). Be sure to check the output of your m3u's to see where your stations are. My bet is that they are in the Gracenote (MPEG-TS) [01] one. As such, they would not get an XML guide. This is also covered on the repo:

P.S.
Speaking of the repo, you don't have to open up a conversation there and here. One or the other is fine. I'm mostly using the Issues area of the repo for bug/request tracking. I'm fine if anyone want to put in requests there, though, instead of here; but for general help, here is probably better.

@babsonnexus ok so there weren't any gracenote id's in there but there is data:

#EXTINF:-1 channel-id="2002" tvg-id="2002" tvg-chno="2002" tvg-logo="https://i.mjh.nz/.images/7mate-syd.png" tvc-guide-stationid="mjh-7mate-syd" tvg-name="7mate" group-title="HD",7mate http://192.168.12.33:8089/devices/M3U-AUFreeview/channels/2002/hls/master.m3u8

then when I look at the xml, it appears that it uses the tvc-guide-stationid to match it with the station.

  <channel id="mjh-7mate-syd">
    <display-name>7mate</display-name>
    <lcn>74</lcn>
    <icon src="https://i.mjh.nz/.images/7mate-syd.png"/>
  </channel>

Is there any way you could set the logic to not generate an xml guide if there are numeric characters in the tvc-guide-stationid field and only generate an xml file if there are alphanumeric characters?

The only other workaround I can see is to download the m3u, then do a find and replace and change the channel id in the m3u to match the xml. Then delete the tvc-guide-stationid section for each channel in the m3u. The upload it to slm... Just kind of defeats the dymanic factor of slm when stuff is hardcoded in..