Remapping channel numbers

makes me sad that it’s been how many years now…. and letting a user define their own channel numbers natively still isn’t a thing.

3 Likes

Yep. Doesn't make sense to me. It's not deal breaking tho as I tend to use Channels Collections often instead

1 Like

i had been asking for it for at least two years before writing this post, too...so you're talking about probably 5-6+ years since it was initially requested.

4 Likes

I just tried to install this and get it working (already having a working frontend server, followed the instructions from the linked site (including adding php:8.0.16-apache-buster to the DockerFile, however I get the following error when I browse to the mapper address:


I can browse to http://192.168.1.233:8090/devices and get a page of data - @crackers8199 would you be able to help?

I won't lie, this is probably a quicker solution, but having to do more than a simple load of a program into Docker kept me from trying this solution.

Instead, I just created a custom channel configuration and manually mapped each channel from the various sources I had into a single "master" source. I then hid the non-master sources in my clients to get the preferred channels I was wanting.

This gives me the added flexibility to modify the channel logos (see broadcast channels as well as ESPN/ESPN2 as examples).

I had originally planned to use a 2nd Channels Server in a Virtual NAS environment to be the original source of channels, export into xTeve, remap the channels and then import that into my main Channels Server, but that seeded like a lot of hand offs and potential failure points so I finally came up with the single Channels Server solution.

My only real gripe is that I use an Android environment and can't "automate" the suppression of the non-used sources in my clients through server side setting as that specific feature is only available in the Apple clients (along with downloads :angry:). But once I got everything setup the way I wanted, it was a once and done activity for 6 TVs, so I can live with that.

I'm sure there's a quicker, easier way to do this but for me this checks all the boxes I was looking for.


1 Like

Thank you @jator for the suggestion. I don’t think this would work for me as I use a HDHR as well as Sat>IP sources. Disabling a HDHR source in Channels has the downside of disabling the channel in HDHR itself :frowning: and the main reason I’m doing this is because I prefer the Sky channel guide (starting at 101) compared to OTA starting at 1.
I’m currently using xTeve (well, the new implementation called Threadfin) but would like to get away from using that

This "solution" has some holes in it. I probably would use this if I'm passing Channels over to JF via Threadfin (or Kodi using the export m3us) tho

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