[RELEASE] Stream Link/File Manager for Channels [Streaming Library Manager Extension]

@babsonnexus Having a weird issue. My setup is I have a standalone linux Channels server @192.168.12.30. My Linux Docker server is @192.168.12.42 and has a couple of Channels servers, Frndly, ESPN+, etc.

I do have a "shim" interface that allows a loopback so that containers can communicate to the host (put in place for macvlan containers but works for all networking in docker).

When I setup SLM Playlists I have to use the internal IP of the Channels server (docker container) when communicating with slm. This works fine, slm picks up the m3u with no issue.

The problem:
When I look at the slm generated m3u, it contains the internal private docker IP's

(http://172.18.0.109:8089/devices/M3U-BBC/channels/9002/stream.mpg?format=ts)

The issue is that my main Channels server (192.168.12.30) cannot talk to (172.18.0.109). So I changed the playlist IP for the Docker Channels server in slm to http://192.168.12.42:8093. With my "shim" in place it should be fine except... The docker channels server is throwing a 403 error because of the networking change in Channels a while back.

[DEBUG | 2024-11-02 19:12:11,893] - Starting new HTTP connection (1): 192.168.12.42:8093
[DEBUG | 2024-11-02 19:12:11,896] - http://192.168.12.42:8093 "GET /devices/M3U-BBC/channels.m3u?format=ts HTTP/11" 403 707

So I'm kind of in a rock and a hard place. I dont know if this is possible but if there was a way to override the source address in the slm generated m3u it would allow this to work.

In the example below if there were an override field in the playlist manager, I would substitute 192.168.12.42:8093 for 172.18.0.109:8089. Then when my main channels server tunes to the m3u it will be able to communicate with the source.

#EXTINF:-1 tvc-guide-title="BBC Four" channel-id="plm_0003" tvg-id="9002" tvg-name="BBC4" tvg-logo="https://tmsimg.fancybits.co/assets/s20684_ll_h15_ab.png?w=360&h=270" tvg-chno="10003" channel-number="10003" tvg-description="No description available..." tvc-guide-description="No description available..." group-title="HD" tvc-guide-stationid="20684" tvc-guide-art="" tvc-guide-tags="" tvc-guide-genres="" tvc-guide-categories="" tvc-guide-placeholders="" tvc-stream-vcodec="" tvc-stream-acodec="",BBC Four
http://172.18.0.109:8089/devices/M3U-BBC/channels/9002/stream.mpg?format=ts

Ok, so finally got most everything figured out between figuring out how to install and use Olivetin (what a freaking life saver that is!) and with the help of @bnhf, I have the dvr setup correctly and now slm can easily use the correct folders for the streamlink files.

Now, a new odd issue popped up that I haven't had before. For some reason, slm won't use the channels dvr URL anymore. It was using it fine earlier today when I would test it but it suddenly isn't working.

Here is a screenshot from slm web UI:

That is the correct URL for my server and was working earlier at that same address as I mentioned above.

Anything else I can provide that may help you tell me what I am doing wrong?

See if the Docker internal gateway works for you, which should be 172.17.0.1:8089

Unfortunately that didn't work either.

Could you post a screenshot of your Portainer-Networks page? It should look something like this:

@jasonmcroy I had issues with the address too and this is what worked for me:

Hmmm..., I can't find a network tab anywhere. Here is a screenshot of my UI:

host.docker.internal is primarily a WIndows thing, and is the hostname version of the IP address I'm trying to figure out for @jasonmcroy. Not to say it couldn't be set in a specialized environment like Unraid, but it's not typical.

Unfortunately that didn't work for me.

Ah OK, thank you for the clarification. :slightly_smiling_face:

You need to click on the local environment first, and then you'll see the Networks option.

lol - I am so new at this! Thanks for your patience.

No worries. 172.17.0.1:8089 should have worked as that's the gateway address of your bridge network. I'd try restarting the slm container first, and then try the actual IP address in slm settings, followed by the internal gateway address. Something is not working as it should here...

EDIT: You may want to change your Channels DVR container to use host networking so that it's discoverable on your network by CDVR clients, don't you? If so, let me know, and I'll walk you through that change.

EDIT2: Does your Unraid server have Intel Quick Sync (i.e. a modern Intel GPU)? If so, we should enable that too.

I restarted the container and that didn't change anything. Still not working. Not too big of a deal right now as it only affects being able to update channels from within the slm UI. I just just update from the channel dvr UI.

Regarding the host networking thing. I was noticing that when I installed the container and saw the option to choose bridge vs host and got a bit confused as to which one to select. The way it's set up now I don't seem to have any issues using the channels app on my Apple TV, iPad, iPhone or MacBook.

RE: Edit2: No, I have an AMD processor.

If you look at your SLM stack, do you have the path set correctly based on the changes we made to your Channels DVR container? Specifically your CHANNELS_FOLDER value? You'd want that set to /mnt/user/dvr or /mnt/user/whatever based on the directory name you used for your CDVR data.

Oh, that's a good point. I didn't do anything with that. Having a look now.

Actually, it looks like I did make some of those changes. At least the streamlinks are going into the correct folders to be picked up and seen by the Channels DVR.

I took a screenshot:

That's the Channels stack, I'm asking about the SLM stack -- assuming you're managing it through Portainer of course.

OMG! It's really late. I should probably go to sleep! lol

Let's try that again:


It might be if I add a mapping functionality like for SLM, but before going down that path, I'm curious about something. It looks like you are using Channels as an intermediary for some other m3u source? Have you tried putting the m3u source directly into PLM? This is what I discussed here: