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

I'm getting the same warning message with all the sources I added.

2024-10-29 22:50:17.984083:  Starting combination of playlists...
[DEBUG | 2024-10-29 22:50:17,992] - Starting new HTTP connection (1): 127.0.0.1:8089

2024-10-29 22:50:17.994250:  WARNING: m3u URL not found for 'DirecTV (TVE)'. Skipping...
[DEBUG | 2024-10-29 22:50:17,995] - Starting new HTTP connection (1): 127.0.0.1:8089

2024-10-29 22:50:17.995509:  WARNING: m3u URL not found for 'EPlusTV (Linear Channels)'. Skipping...
[DEBUG | 2024-10-29 22:50:17,995] - Starting new HTTP connection (1): 127.0.0.1:8089

2024-10-29 22:50:17.996207:  WARNING: m3u URL not found for 'Frndly TV (Gracenote EPG)'. Skipping...
[DEBUG | 2024-10-29 22:50:17,997] - Starting new HTTP connection (1): 127.0.0.1:8089

2024-10-29 22:50:17.997295:  WARNING: m3u URL not found for 'Frndly TV (No Gracenote)'. Skipping...
[DEBUG | 2024-10-29 22:50:17,997] - Starting new HTTP connection (1): 127.0.0.1:8089

2024-10-29 22:50:17.997831:  WARNING: m3u URL not found for 'PBS (VLC Bridge)'. Skipping...

2024-10-29 22:50:17.997856:  WARNING: No data to compare, skipping adding and removing rows in PlaylistManager_Combinedm3us.csv.


2024-10-29 22:50:17.997956:  Finished combination of playlists.

FYI, for each source, I got the URLs from Settings > Sources:

Change the first part of the URL to have your local IP, not the remote access one.

That would be http://localhost:port/
or
http://<serverIP>:port/

These are working for me:

This is a phenomenal development. Thanks once again @babsonnexus. You're the real MVP!

2 Likes

This fixed my issue! Turns out I needed to switch from using "localhost" to "[computer-name].local".

First, awesome job!

Second, what would be the best way to handle this scenario. I have 4 HDHR's, TVE, and Frndly. I prefer stations like metv and mvies on Frndly because they are higher quality than OTA. Right now i put all of the ota stations i want to keep and the frndly replacements in a channel collection. The problem (or annoyance) is that the channels go like 4.1, 4.2, 5592, 4.4, 5388 etc. I am loving the prospect of using this tool to renumber some of my channels easily and use the OTA equivalent as a backup. However, I'm not grasping how to use this with OTA and TVE. Would i just need an intermediate Channels server that would house my 4 HDHR's and TVE, then that would feed my main Channels server via m3u? Then the only source in my main DVR would be the PLM playlists?

Im just not grasping how to do this without a middleware DVR (which is no problem)

Another thing that might work is this:

Just use host.docker.internal in place of localhost, the machine name, or IP address. You can also use the the Test button in the Channels URL setting and make sure the link works first. Shouldn't harm anything unless you click Save!

2 Likes

For anything that Channels doesn't create innately (i.e., OTA, TVE), I'd just use the direct links you are already putting in. Like for the EPlusTV (Linear Channels), I'd just use the same links in PLM as what you put in Channels; Channels doesn't have to be the middleman for everything.

The end-goal is to only need to put PLM links into Channels, so those other ones should go away. Obviously, I'm not there yet, either, but damn close!

Here's what I'm thinking:

  • Get the 4 HDHR and TVE links from your main Channels setup

  • Get the Frndly links directly from that container

  • Make sure METV and MVIES are not clicked as favorites for the OTA and TVE

  • In PLM, create a Parent for each version you want to keep. So "METV (Frndly)", "METV (TVE)", "METV (4.1)", etc... and assign the children accordingly

  • If you create them in order or preference, by default they will end up with Channel numbers in that order. So, if those I listed above were the 12th, 13th, and 14th parents you created, and you kept the default starting station number of 10000, they would be 10012, 10013, 10014.

  • Conversely, you could manually assign them any number in any order you want

  • Either way, put your favorite in Channels on the PLM Frndly one so it will be the default for recording

  • Also make the PLM source higher priority than all the other sources in Channels.

  • These actions combined together should be able to get you the order you want to see. So you'll end up with something like 10012, 100013, 10014, 4.1, 4.2, 5592, etc...

Just a heads up, too, with Channels-based OTA and TVE stations (or any stations that you pull the playlists from Channels): when you run a PLM station, it will also run the equivalent Channels station. So for me, if I tune to this PLM station:

image

Channels also tunes to the internal HDHR station:

image

For that reason and that reason alone, I might consider setting up an intermediate Channels server so it is not pulling double-duty while watching/recording. I'm also thinking about pulling my HDHR directly and doing the Gracenote mapping function.

I've been messing with PLM...and yeah...I got a lot of channels in there and it's sluggish. Tough to mass ignore a lot of the channels I don't want. I wonder if it's just the limitation of python... :thinking:

I second that, this sound very interesting.

This is an amazing, gamechanger of a utiliity. It will take me awhile to get there, but I'm going through a combined list of about 2000 FAST channels and hope to end up with tight, clean list.

My first question is about channels that I only have a single version of. They are "unassigned" by default, and therefore aren't included in the final output, along with any I've "ignored." So do I need to make each of those a "parent" too (but without any child versions) to include them in the final list? Is there an easier way to handle this? I'm scrolling for duplicates and triplicates but there are also hundreds that are singles so making them all childless parents doesn't seem like the best answer here. Am I wrong?

I also have three "quality of life" improvements that I think would make this curation a lot easier.

  1. with the channels that have descriptions, the field is so small that I can only read the first 4-5 words. A pop-up that reveals the entire description when hovering or clicking, would be greatly appreciated

  2. How about a search/filter field, so we can type a few characters like "21 jump" to quickly see the channels that match?

3). when I am clicking "make parent" it refreshes the page and then brings me back up to the top of the page, then I have to scroll down and find the children to assign. This would be a lot easier if the scroll position persisted we could continue with the assignments, and not have to scroll down all the way down back to where we just were.

Thanks again for this fantastic and thoughtful utility. It’ll supercharge and streamline the Channels interface with our previously-overwhelming list of available channels, allowing us to “clean it up” in a way I hadn't conceived possible. It’ll certainly make selecting what to watch when channel surfing easier too!

This seems pretty awesome, just trying to get my head around it. Would it be accurate to think of "Playlist Manager" as a list of what Channels DVR currently refers to as "Sources?"

Most likely not the Python because it's returning what's necessary in microseconds, but really the html/javascript, or at least how I'm using it. I probably need to invest some time into lazy/partial loading so it doesn't try to render all several thousand cells at once and just does them in batches of 100 or something. There was an earlier version where everything was one page instead of four and it took forever to load. Separating them made the pages without thousands comes back pretty instant. In the background, though, the Python is preparing all the PLM pages at once, so I'm quite confident its on the html-side.

1 Like

Yes, Parents are the the final list of stations, so they need at least one child to show up. When you are going through the list, just choose the Make Parent option on those single ones:

image

The new Parent will be created and the child will be assigned to that Parent. You can do that en masse, so just do all hundreds of them at once and you'll be all set!

Just a heads up that you can click into them and scroll over.

image

But I'll look into being able to put pop-up hovers on all fields like this. Could be good on the SLM side, too!

Maybe... this isn't a table (even though it looks like one), so not as easy, but might be a possibility.

Hmmmm... dynamic anchoring, sounds tricky...

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!