BETA: Custom Channels via M3U Playlists

To confirm, "channel-id=" needs to match?

1 Like

Question regarding TVHeadEnd.

I've noticed at least on the mobile app, not the website. I will tune to a channel and get a No Tuner Available. If I try tuning to the channel a second time it will work.

Is this an issue on Channels or TVHeadEnd?

This happens usually because of a timeout. I notice this when trying to playback remotely and my drive is asleep, and doesn't wake in time before Channels times out. Or, if a TVE channel needs to reauthorize, and it doesn't happen before it times out.

In your case, it's probably because Tvheadend is taking a little extra time to tune, and Channels doesn't wait long enough. The second time around Tvheadend has already warmed up, so it connects without issue.

Anything we can do to increase timeout.

Lastly, I see this happen in some cases 5 seconds.

Correct. The channel-id tag in the #EXTINF line of the playlist needs to match the id attribute in the channel element of the XMLTV. That's the only way Channels knows which channels from the XMLTV correspond to the channels from the playlist. Without it, there is no mapping or relationship between the two.

1 Like

We would need diagnostics from the app right after the error to see which timeout is causing the issue.

2 Likes

Racmeron would you mind showing an example of a m3u playlist using only the tvc-guide-stationid tag that Channels would recognize pls.. Thxs!!

1 Like
…
#EXTINF:-1 channel-id="kabcdt" tvc-guide-stationid="108604",KABC
…

(Remember, the channel-id tag is mandatory. Also, I would imagine it must be unique, as well.)

4 Likes

@tmm1 If the station ID is used for the playlist, does Channels use the channel name/logo from the Gracenote data? Or will the playlist item's name be listed as the channel name/call sign?

1 Like

It will appear as any other gracenote linked channel, i.e. with channel logos and guide data

I believe it uses the guide name over tuner call sign but I am not sure.

2 Likes

Good to know, thanks. That's what I assumed, but haven't bothered to try it out.

@tmm1 is it possible to do this?

No way to do that right now.

1 Like

thanks! wanted to make sure i wasn't missing something obvious.

How do you discover the Gracenote ID for a channel? I'd like to explore including them in my M3U lists for better matching.

1 Like

I pulled that one from the guide data associated with a recording of mine. I believe there are ways to get the IDs from looking at the underlaying HTML and requests when browsing Zap2it's guide (they use Gracenote data, so the stationIDs are the same).

Another option is to subscribe to Schedules Direct—they offer month-to-month plans and a free trial—and use a client to query their service for stationIDs.

There are myriad ways to find the info, those are just a few suggestions.

1 Like

I'm wondering if these "missing images" in webUI (where my custom channel logos are supposed to be) are a result of my own improper formatting as I create the PNGs, or is it a matter of the DVR simply being beta... and not supporting this yet?

I'm on the latest pre-release. As mentioned earlier the channel logos appear perfectly and beautifully (in 4:3 format) in the client apps on AppleTV, iOS and iPadOS, just not at all in the webUI in any browser I've tried. Not a big deal, I've just paused my personalized channel logo art creation in the meantime :laughing:

Make sure that the location where the images reside is accessible from the DVR using the same location. For instance, if you are serving a local static file from your harddrive, make sure the path where it's located is where the DVR server can find it, not the computer you wrote the playlist on. (Also, ensure that the DVR server has permissions to access the files.)

If it's an HTTP/S address, ensure that the DVR can resolve the address where the images are hosted. As a test, use curl to download the images, running it from the same computer that hosts the DVR. Also, make sure you run the command as the user that the DVR is running as. (For example, on my server, I would do something like sudo -u channels-dvr curl -SL http://…, because channels-dvr is the same of the user account that the DVR server runs under.)

Ah, thanks for that pointer. I uploaded these PNGs to my personal webspace at MediaTemple via FTP.
I have been using this for years to host images publicly. I can display them via HTTP (for example: http://www.fofer.com/channels-logos-fofertv/adultpoplogo.png ) but the Channels DVR webUI is apparently looking for them at HTTPS only. I would need to pay annually for a security certificate to add to my webhost subscription for HTTPS addresses to work and I'd like to avoid extra expenses for this if possible.

If I can just keep these channel logos stored on the local Channels DVR server instead, and they'd still display everywhere, that'd be ideal. Can't believe I didn't think of that, lol. What's the proper syntax for locally stored files? My Channels DVR is installed on a Mac, if that matters.

I would try using file:// as the protocol, followed by the absolute path to the images. So if you saved the images to /usr/local/share/logos/abc.png, the tag in your playlist should be tvg-logo="file:///usr/local/share/logos/abc.png". (Note there are 3 slashes, 2 for the protocol, and one to denote the root of the filesystem. Also, don't forget to check permissions.)