Remapping channel numbers

I don't disable any of the sources in the server itself, just the clients. Since the server sources "feed" or maybe said better "backfeed" into my "Master" Source which is just my custom M3U file I posted above, enabling just the Master M3U source in my clients gives me access to all my channels (HDHR, Fubo TVE, Fubo Project, etc) without those sources specific channel numbers showing up in my clients.

As an example, my NBC off HDHR is 8.1, but with my Master M3U, I mapped it to Channel 1 and because I "hide" my HDHR in my clients, all the clients see is Channel 1 for my NBC which is sourced from my HDHR.

But I realize my solution is specific to my needs and may not fit others, so just sharing an option people can consider if they are hesitate like me to try and do a lot of tweaking to a docker environment.

@Jean0987654321 , curious what holes you are seeing? No offense to the comment, just curious (tinkering means I'm constantly looking to improve upon). TIA.

EDIT I actually can't pull in Pluto into my Master Source as I don't have a way to pull in the guide using the Master Source that directly linked each channel to it's guide source, thus I have a second source for just select Pluto Movie and TV shows and I map those channels within that source and point the guide to the XML file in my docker.

1 Like

Well...there's no native support (non-docker) solution for windows guys like me...and you need to run multiple instances of channels which can put a strain on your computer.

I see I'm not explaining things well. Here's what I am working with:

  • 1 Channels DVR sits on my NAS Server
  • 1 HDHR Tuner is on the Network
  • 1 FuboTV Subscription resulting in
    • 1 TVE Source
    • 1 Supplemental Source (FuboTV Project in Docker) for channels not found on TVE. This is Optional

The NAS Based Channels DVR uses (in the example above) 4 Sources. Those sources are configured in the typical configuration settings for their respective sources in the NAS Channel DVR. So for example, my NBC, CBS, ESPN are on channels 8.1, 2.1 & 6140 respectively.

However, I don't want my clients display those channels but I want to remap them to channels 1, 2 & 10 respectively (see screenshots I previously posted).

To do that, I create a new Custom Channel Source called "Master" and then I use the text entry to enter my sources so that they now use my preferred channel # (and in some cases, my preferred logos). Here's the code for the NBC, CBS & ESPN sources (along with some other channels I mapped):

#EXTM3U

#EXTINF:-1 tvg-id="1" channel-number="1" tvg-logo="https://imgx.fubo.tv/station_logos/wgal_c.png" tvc-guide-stationid="25544" tvg-name="WGALDT" group-title="Favorites",NBC
http://192.168.0.29:5004/auto/v8.1

#EXTINF:-1 tvg-id="2" channel-number="2"  tvg-logo="https://imgx.fubo.tv/station_logos/whp_c.png" tvc-guide-stationid="30783" tvg-name="WHPDT" group-title="Favorites",CBS
http://192.168.0.29:5004/auto/v21.1

#EXTINF:-1 tvg-id="3"  channel-number="3" tvg-logo="https://upload.wikimedia.org/wikipedia/en/7/74/Abc27-dot-com-website-logo_%281%29.png" tvg-name="WHTMDT"  tvc-guide-stationid="11534" group-title="Favorites",ABC
http://192.168.0.29:5004/auto/v27.1

#EXTINF:-1 tvg-id="4" channel-number="4" tvg-logo="https://imgx.fubo.tv/station_logos/wpmt_c.png" tvc-guide-stationid="32629" tvg-name="WPMTDT" group-title="Favorites",FOX
http://192.168.0.29:5004/auto/v43.1

#EXTINF:-1 tvg-id="5" channel-number="5" tvg-logo="https://image.pbs.org/stations/witf-color-cobranded-logo-bUWb4nH.png" tvc-guide-stationid="19610" tvg-name="WITFDT" group-title="HD",PBS
http://192.168.0.29:5004/auto/v33.1

#EXTINF:-1 tvg-id="131" tvg-logo="https://1000logos.net/wp-content/uploads/2023/01/PBS-Kids-Logo-2009.png" channel-number="131" tvc-guide-stationid="103004" tvg-name="WITFK" group-title="SD",PBSK
http://192.168.0.29:5004/auto/v33.2

#EXTINF:-1 channel-id="espn1" tvg-chno="10" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/ESPN%27s_Old_Logo.png/220px-ESPN%27s_Old_Logo.png" tvc-guide-stationid="32645" tvg-name="ESPNHD" group-title="HD",ESPN1
http://127.0.0.1:8089/devices/ANY/channels/6140/stream.mpg?codec=copy&format=ts

#EXTINF:-1 channel-id="espn2" tvg-chno="11" tvg-logo="https://qph.cf2.quoracdn.net/main-qimg-12dcc67d36cf4c33d59bf67642ef136d-lq" tvc-guide-stationid="45507" tvg-name="ESPN2HD" group-title="HD",ESPN2
http://127.0.0.1:8089/devices/ANY/channels/6141/stream.mpg?codec=copy&format=ts

#EXTINF:-1 channel-id="espnu" tvg-chno="12" tvg-logo="https://seeklogo.com/images/E/espnu-logo-4F2415EA6A-seeklogo.com.png" tvc-guide-stationid="60696" tvg-name="ESPN2HD" group-title="HD",ESPNU
http://127.0.0.1:8089/devices/ANY/channels/6142/stream.mpg?codec=copy&format=ts

This Master Source has 78 channels currently mapped within it. Since the Master Source is basically just pulling either the feed from my HDHR (192.168.0.29:5004) or my TVE Source (127.0.0.1:8089), it's all self contained within the one Channels DVR itself.

I do have some channels that are pulling from the Pluto TV Project source (127.0.0.1:7777) that is contained within a Docker, but not everyone uses Dockers as a source. And even if you do like me, you are still pulling it into the single Channels DVR server, so no additional "PC" resources are really needed. I agree, Docker on Windows isn't as easy to work with and one of the reasons I use a NAS to host my Channels implementation.

And to ensure my clients don't show multiple entries of the same channels (ESPN on channel 10 & 6120), I disable the non-Master Sources in the clients and viola, I have my mapped channels.

The above solution works for all platforms including windows, Docker is only needed if you need to map things you can't otherwise get via HDHR or TVE (in my case, AXSTV, USA, SYFY, Bravo, etc).

Here's how I have my server sources setup and which ones are disabled in the clients. Basically the Master is a remap of HDHR, Fubo-TV, FProjSel (Fubo TV Project). The Virtual Channels, PlutoSel, and SumsungTV are specific channels that I have mapped to specific channel numbers to align with the channel assignment I have in the Master Source. And since I disable those ones in red, no duplicate listings.

1 Like

Interesting so you export the channels streams and make another customs channels and hide the original sources all within one instance? Ahh...that's probably doable. I'll try that later

what are you referring to with your "solution" bit? the OP or one of the recent comments?

native support would be great, but like i said this has been requested for more than half a decade. it's obvious they're not giving us native support for it.

1 Like

two questions: 1) are you running the frontend in docker? and 2) if yes, are you running both frontend and the backend (and the channel mapper for that matter) on the same machine?

1 Like

Hi @crackers8199

  1. The frontend is native (no docker) install on Ubuntu 22.04.3 LTS server.
  2. Yes, same machine for all 3 (native front end, backend and channel mapper).
  • I did try the internalExternal branch but didnt get anywhere (similar error message).
  • I also tried hard coding the CHANNELS_SERVER_IP inside ChannelsBackendService.php file, line 29 to http://192.168.1.233:8090, as when I ran the internalExternal branch, even though I had put the .env file to the backend server ip, it appears that line 29 is a bit mixed by using the frontend port but backend variable? I discovered this file by viewing the differences in branches on GH.
  • I also tried using Goldfish64 PR which was submitted March last year as it mentioned the update to Debian Bullseye due to the php issues as seen in post Remapping channel numbers - #98 by crackers8199

UPDATE:
So I switched off my native Channels instance (systemctl stop channels-dvr) and then reran all the scripts/install. I edited the .env file to point to the correct Docker IP. I edited the docker-compose.yml file so the mapper app is on port 8080 rather than 80. Ran the install script and still get the 'Connection timed out' error after a couple of minutes on the mapper app. I then went into the backend Channels version and added HDHR as a device just in case that was the issue. Still the same error message in mapper app after restarting mapper and db containers :frowning:

i will try to take a look at this tomorrow. my guess is that something in the way the docker container is trying to communicate with the backend is getting wires crossed somewhere, somehow.

1 Like

@jator did you use OliveTin For Channels to help build out the master list? Looks like there is a script in there to help grab the info from your sources

I've looked a little at the @jator method for creating a custom M3U with your own channels numbers, and you should definitely be able to use OliveTin-for-Channels.

I'd suggest first creating a named Channel Collection, then you can use OliveTin to generate an M3U based on that collection. From there, it seems to me, all you'd need to do is change the channel numbers in the generated M3U.

After that you can either paste it in as new source using the text method @jator described, or you could host it using the static-file-server container, so it'd be available via URL. I'm doing this myself using Plex as an IPTV source, with the M3U modified with my unique Plex token.

2 Likes

@bnhf that definitely would be a time savor vs. my approach. I created a text file and just started pasting from downloaded m3u files from my various sources and then tweaked as necessary.

1 Like

Ok...I almost forgot that I could just use m3u4u to remap my IPTV list channel numbers and import that into channels. I sorted it out to make it match DTV's channel number (on top of making a list off of Fubo-TVE/bridge) and it looks good