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

I think I see the issue and how to fix it, should have a fix soon.

EDIT: v2025.04.11.1411 has been released with the fix, and some other stuff......

Hi, I'm having trouble adding the m3u link for a HDHR. I can fully access the link myself, and confirmed the link and m3u file are accessible over the network within the docker container, but I get 0 stations. Same outcome using either the full IP or hdhomerun.local.

Just to make sure, have you run Update Station List yet? Because you'll have zero stations until you do. This is essentially the "Import into PLM" function.

Also @rpaulmerrell and everyone else I've lost track of...

Currently as of prerelease v2025.05.22.1726, there is a new feature called Child Station Mappings. As the name implies, you can modify anything about the base loaded stations using testing criteria. However, I have also expanded this functionality to include the ability to automatically assign parents (including making parents) and setting stream format overrides, both of which are especially helpful for rapidly changing m3u's. Full details are available here:

Again, this is only available in prerelease right now because I'd like to get some other people to kick the tires first before moving to a general release. As you can imagine, the the potential possibilities of how you'd want to set this up can be near infinite, and as such I have not been able to verify even a broad batch of scenarios. I'd greatly appreciate some feedback and experiences!


EDIT: This is now available as of v2025.05.26.1617. That said, I'm still in the monitoring game to see if there are any hangups. Otherwise, it's available to everyone now!

Hey I believe this would solve my one request.. my m3u occasionally adds new channels for events (like sporting events) and deletes the channel after the event. I noticed when they do this, I have to hop into PLM and assign the channel.

Would this automation solve this to automatically assign as a parent and push to non gracenote custom source?
**edit - I have it setup to test. I followed the WIKI and believe this is what i'm looking for.

Also just a thought - once these channels delete from my source, do I need to manually prune my channel list to delete them? I suppose no harm leaving?

Yep, no harm in leaving them, just would be dead parents without children. The processing time is almost nothing when it's building playlists, so I wouldn't worry too much. Or you could delete them later at some point. Don't forget that you can filter on a common criteria like "vs" or "@" and then just set the Preferred Playlist to Delete. When you save, it will delete all those parents en masse. Also remember that you have the ability to refresh m3u's in Channels at whatever interval/time you want:

Was going to say this exact example use case is in the Wiki, so you should be all good!

1 Like

What is the recommended way to handle this situtation? One of my M3U sources provides an XML link, but the XML is missing guide data for a handful of channels. Most of them I setup with Gracenote IDs, but these handful I had to find an alternative XML source (with a URL).

couple thoughts I was going to experiment with:

  1. Do I just add a second playlist under "Manage Playlists" to add the secondary XML file and duplicate the M3U link from provider?
  2. I see an option under "internal playlists" but looks like it wouldn't automatically download the XML daily
  3. do I just go into Channels and manually edit the channel mapping using another XML source?

Maybe it's something simple I'm overlooking too!

Actually, just use a dummy empty m3u, or none at all. You can put some random text in that field and it will fail trying to load stations from it, but that's not an issue. Then, in the parent, add the Guide ID from the secondary XML source.

image

After that, they'll match up, just like they do for the Gracenote ones.

1 Like

works perfect, thanks!

*edit - just a suggestion-- might be handy feature for this use case. what if in that "Alternate XML EPG Guide ID (tvg-id) Override" field, a popup would come up with a listing of the XML guide ids that exists in your manual XML data and you could select from that.

not a huge deal of course - just make manually associating channels slightly easier.

Well, the XML guide data doesn't really exist inside of PLM that it can be pulled up on the fly; they are always just called dynamically when needed. However, I can create a report that does this functionality:

This will be made available in the next release!

as always, solid work! thanks for the quick reply. trying to read large EPG XML files is a chore...

just another thought- not sure if it'd ever come up, but how would PLM handle it if there was a duplicate EPG guide id- like "1234" was in both EPG data sources?

While the chances are extremely, extremely low, it'd be bad, m'kay?

As of v2025.06.02.1803, you can now run a scan when updating stations that checks if the child station is HLS, MPEG-TS, or not working at all. This information is then used to later assign each to final playlists (or not at all) appropriately. As you can imagine, this means you no longer need to hunt down and check if a station's stream format is different than its base source playlist (although overrides still take priority); everything will just work in Channels without having to think about it at all! Complete details can be seen on the Wiki here:

Note that if you were already using Check Station Status, you might want to re-evaluate your buffer time with the automation schedule. This process takes somewhat longer than the original version (~30%). I've also opened up an issue to also add "Disabled" to the summary chart on the Final Playlists page, so that should be coming soon.

Special thanks to @eric for helping me understand what Channels is doing in the backend during its own detection process so I could figure out a way to make it happen in PLM.

MPEG-TS is the only format needed. Just assign it to all playlists and do not bother with HLS at all.

Some stuff like TVE and SPLUS tv still use HLS. The fast channels we get through the docker all use HLS.
Thanks for the great work.

It is just not necessary to specify HLS format for a custom M3U. MPEG-TS always works and relieves the user from having to worry about specifying the right format.

Most of the stuff i play via different streaming is mpeg-ts.
Glad to have everything working.

Per that last time this topic came up:

Therefore, I will respectfully disagree and recommend that users continue to separate HLS and MPEG-TS, and use PLM to help make it easy to do so!

2 Likes

We could use this opportunity and reward the developers for admitting to being wrong for the very first time. A small price to pay for not having to worry what the playlist contains.

As far as I understand it, downgrading HLS-capable streams to MPEG-TS loses their adaptive bitrate streaming capability. In that case, doesn't knowing what the playlist contains make a difference?