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

Do you mean the generated m3u(s), or do you mean the input ones, or do you mean both?

I don't think this is possible currently. The input XML files are not stored in PLM and are dynamically called during the build cycle. If one is not called, it will not build that guide data. To change that would be a fundamental rewrite and a totally different approach. As such, I have to hard pass.

As an aside, even if the Distro XML guide data only updates every 6 hours, there is no danger in PLM reading and loading it every hour. The processing time is literally just a few milliseconds:

[DEBUG | 2024-11-11 13:30:27,265] - Starting new HTTP connection (1): localhost:7973
[DEBUG | 2024-11-11 13:30:45,570] - http://localhost:7973 "GET /distrotv/epg.xml HTTP/1.1" 200 859642

Keyboard jumps already work; you just have to type "station: " first, then the rest of your letters. You don't even have to be quick about it, either. I intentionally put the prefix so there would be no confusion with the "Ignore" and "Unassigned" values (as well as any other potential thing like this that hasn't come up yet), especially if someone were to name a parent something like "Ignore".

That said, if you want to check if a Parent exists, I'd just open up the Parent tab and take advantage of the filter functionality. That'd be much quicker!

I want to point out this poll in the SLM thread that mostly only impacts PLM:

Both, if feasible :slight_smile:

IMO, the more info displayable, the better.

Fofer had some great suggestions, I'm In the process of initial setup as well. I was thinking it would be nice to set all to ignore, then cherry pick the stations to put back. Let's face it most of them are ignores. IMHO Thanks

NIce work.


I think something can be done, like a pick from dropdown and button next to it that says "Set All".

1 Like

v2024.11.13.1347 has been release as stable. The PLM related items are:


MODIFIED: {PLM} m3u/XML retrieval code to retry if it reaches a timeout after 60 seconds or if non-200 code received from HTTP

This is an ongoing effort to deal with issues seen when loading certain playlists. Will continue to monitor.


ADDED: {PLM} Generated m3u(s) now show a station count in their labels

You can now see this for both for generated playlists:

And loaded/input ones:

* ADDED: {PLM} Input/Loaded m3u(s) now show a station count in a column

Just a heads up that newly added playlist is going to have zero stations until you update the station list!


ADDED: {PLM} In Unassigned and Assigned station lists, can now choose to 'set visible' to change the parents of multiple items at once, either through normal scrolling or filtering

This is now possible:

The caveat is that it will only make the assignment to stations that are visible. So if you have more than 100 stations you want to set, then you have to scroll down until the stations you want to set are loaded in.

Due to the same considerations, you can also use filtering to get a limited list to do this with:

This will also work with Modified Stations:


MODIFIED: {PLM} Unassigned, Assigned, and Parent station lists have been made 98% of potential width to make sure users do not get stuck in inner frame

By popular vote, the inner frame area has been made 98% of possible width, giving some space between the inner and outer scroll bars. You shouldn't have any more issues with this:


All other updates are SLM related:

At last, I reached my happy end-state today, so I thought I'd share what I set up!

First off are my sources:

Of note, I am now making a direct connection to my HDHR and I set up a standalone Channels Docker Container to just be a source for TVE. With these two things, my main Channel server will no longer be pulling double-duty both serving and playing/recording content. Other than that, I have a good collection of FAST providers with Plex, Pluto, Samsung TV+, Tubi, and Distro, plus the PBS docker because everything around these parts is on low VHF and I don't have an antenna for that, and finally the excellent EPlusTV docker linear option for getting NFL Network.

I then set my priority among the sources:

image

Basically, I have a preference for OTA over streaming, things with Gracenote guide data over XML-only guide data, and then finally length of guide data or stability of service.

Generally, no matter the source, I assigned all the same stations to a single parent, getting just one resulting station in the end:

However, there were occasions where I wanted separate ones for similar and even same stations. For instance, I receive ABC from two different markets on OTA plus one of them over TVE. I decided I wanted all of them as backups to each other:

Since I opted to connect to my HDHR directly, Channels would not be providing the Gracenote IDs unless I manually mapped stations. In order to avoid that, I put Gracenote ID overrides in for my OTA stations (as well as put in my own logos to make them be unique looking):

And despite my stated preferences for source order above, there were a few instances in which I wanted to use a different one. This most notably came up where my OTA reception isn't the best or the streams are actually higher quality:

With all my child assignments complete, I ended up keeping just 19% of available stations between all my sources, with nearly 70% of ignored entirely and another 11% totally redundant.

Based on those sources, I ended up with three playlists to load into Channels:

And I did exactly that, putting my Gracenote (MPEG-TS) as my top priority since that contains my OTA and streaming PBS stations, which I want to be thought of first over the TVE stations in the Gracenote (HLS) lineup when it comes to recording.

As you can see, I also chose not to put my Chrome Capture for Channels and Live Streams (mostly Kister YouTube streams) into PLM because I didn't see any value to do so. They are all one-off stuff, so I don't believe I'll ever have to use manual management and merging multiple children with parents. However, if I change my mind, I can always upload an m3u file:

Other than that, I do have the EPlusTV's Events option because that also didn't make sense to me to integrate into PLM as it is already doing everything it is ever going to need to with just a direct Channels connection; there is no need to put in an unnecessary middleman. Then, despite using a CURL command to remove my HDHR from Channels, it came back anyway, so I just made sure to remove its guide provider and disabled it as a source (a new option as of just a few days before writing this, how serendipitous!).

image

Then, to finalize my preferences for recording, I used the favorite button to make stations I have multiple version of be first choice:


All together, along with certain settings I made in my passes, got me the order for recording that I desired:

Beyond just recording, I took the opportunity to change my Channel Collections. They are now broken up by category instead of one giant list like I had before:

And that's about it! Using a mix of PLM and Channels tools has gotten me to finally be truly satisfied with my station management and has made it much easier for our household going forward!

2 Likes

Really cool! :sunglasses:

Thank you for sharing your process. I'm sure that will help a few people, including myself.

I'm intrigued by your channel collection "[06] Mindless Streams". What's in there? :laughing:

1 Like

That is a thing of beauty. I plan on diving in and getting things set up in a similar manner in the near future.

Couple of questions and pardon if this has been asked, how does it handle line up changes? Does it fall back to a child source if the primary disappears? If a new channel is added is it automatically added to the list or does it manually have to be added?

I'm also really interested in how others are using PLM and what their outcomes are!

All your questions are answered in the initial post, the linked Github repo, and the embedded video. Check them out!

2 Likes

@babsonnexus is there anyway to batch update logos or do we have to do 1 by 1?

:question: You can already make whatever changes you want to Parent stations en masse and then click save.

1 Like

I am in the beta playlist settings, and it does not work, that is being able to mass update. So is there another location I should be looking in, please let me know thanks.

There's no such place as "beta playlist settings", so I'm afraid you'll have to be a lot more specific. This is where you do it:

And it works, just as described:

Of course, you should put in actual links, like https://upload.wikimedia.org/wikipedia/commons/a/af/WCVB-TV_Logo.png. Also be sure you have read the Troubleshooting / FAQ when it comes to logos:

Unless you are saying you are literally trying to upload image files here:

In which case, that is not currently supported. As the title and instructions say, this is only for uploading m3u and XML files, nothing else. You'd also get a warning if you tried:

image

If you need a place to store images, I recommend using Channel's own image upload and storage location:

Or are you requesting to have somewhere to upload and store images in PLM? Without screen shots and full descriptions, I'm afraid I'm just guessing at what you are talking about. Are you even on the most recent version?

@babsonnexus yes those are the correct steps as you mention in your comments and screenshots, but when I input a url for a .png image file into [OPTIONAL]
Guide Logo (tvg-logo) Override, to mass update the logos, it does not save and also has no confirmation that it did save. Your program is excellent but trying to understand why the mass update logos dont work?

Well, once again, you need to provide details. You are having an issue that no one else has reported and that I can't replicate, thus I can't help you without a lot more. Let's start with some basics:

  1. What version of SLM are you using?

  2. Which installation method did you use?

  3. If you are using Docker, what is your host machine?

  4. Can you save any single item anywhere in SLM/PLM? What is working?

  5. Can you give some examples of your entries that are not saving? Is there something common between them, like a certain character?

  6. After you click save in Parents, what shows in the Logs? Are there any error messages, warnings, crashes, anything?

  7. Could security be an issue? SLM/PLM write to csv files in the program_files directory. Has security to those files been changed so they can't be written to, notably PlaylistManager_Parents.csv.

1 Like

@babsonnexus With your current setup of sending TVE from one channels server instance to SLM to another channels server instance have you experienced any noticable lag while tunning?

I want to set this up to power both my home and my vacation house over tailscale. My thinking is to use one server instance for TVE and ADBTuner to feed into SLM with my other sources.

Then put the result from SLM into a second channels instance. I would then feed the the into a local server instance at my vacation home over tailscale.

Seems a bit conveluted, but I think it should work.

Maybe half a second or so? I don't do a lot of live TV, so it hasn't been noticeable.

I'd think if you want to go down that path, just go TVE Channels Instance, ADBTuner, and other stuff to SLM, SLM into your main Channels instance, Tailscale on your main Channels instance to vacation home. Now reading that, maybe I'm saying the same thing? I guess I just don't see the need to have a local instance at your vacation home, but perhaps there's some benefit for you that I'm not aware of.

Thanks for the inspiration! I've been working on my Playlist consolidation, cleanup and curation for a couple of weeks now. I'm matching the recipe you've outlined pretty similarly, but I'm only using my FAST sources, no TVE or OTA in the mix. Unfortunately I've hit a snag in the past couple of days that I can't sort out, hoping you can help.

I am running the latest version: v2024.11.18.1135. The problem is, I can't get my final XML to update anymore, the alert stays on screen and doesn't go away:

I've left it sitting there for over 90 minutes and it never finishes anymore. I've tried using Chrome as well as Safari, the same issue happens with both browsers. And when I do manually refresh the page, the numbers for "Assigned" and "Ignored" don't change, even though I've certainly modified a bunch of those assignments since the last successful update.

"Updating Station List" works properly. It's only "Update M3U(S) & XML EPG(S)" that hangs and fails for me now, and this wasn't always the case.

Here are some other screenshots of my setup, if there's anything I'm missing, or other information I can share that will help, please let me know:

Because it's not updating, only the Gracenote channels (which start at channel 2500) are showing Guide Data:

And the EPG for the non-Gracenote channels (which start at channel 3000) is not populating anymore, the channel assignments are lost:

Thanks for any pointers or advice, I'd appreciate it!

Yes that would work as well. However, adding in the local server was more a convenience since I can enable tailscale on the server and give all the clients at the vacation home access instead of setting up a subnet router or adding each client individually.