FastChannels - FAST Channels aggregator/manager

Oh the Gracenote Community Map window, in addition to the "Apply All" button, could we also have the option to "Reset All" or possibly selectively reset individual channels through this interface?

I was also thinking that as more members add to this database and refine the accuracy of matches, it would be nice to be able to have individual "Update" or "Update All" buttons which might overwrite previous erroneous entries.

Yea good feedback. Still wrestling with ideas. Testing a webhook site that will allow you guys to hit submit suggestions (via the helper) and it ties into a Google Sheets doc. Got it working. But absolutely the receiving end needs polishing.

Also someone requested a report showing new/disappearing channels. I liked that idea. I think I accidentally shipped the prototype in last push so don’t put too stock into that if you find it. Idea is to show a dashboard of new channels and channels disappearing over a certain time frame.

When I clicked the "Apply All" for the Gracenote IDs, it turned those stations from "Auto" to "Manual":

Based on the changes you've made so far, I'm not sure what the difference is anymore and if "Auto" does anything. Since I don't want to go back and change all the Manuals back to Auto (like I had to do a few versions back when all 600+ changes from Auto to Off), I'll await further updates and clarifications.

Added FastChannels to the Community page on the site, and highlighted it :tada:

10 Likes

this place moves fast! haven't watched pluto for a little less than a month, then noticed it wasn't working, then learned about a whole new project! Thanks @KineticMan !!

1 Like

When you try to save a feed filtered on region, it's not saving the feed correctly. It doesn't save it with the selected region and reverts to all regions.

Also, can you add a Region column into the Channels tab/section, including when working on removing duplicate channels? This will help when the same channels exist for two different regions on the same service. It will allow us to select the duplicate channel for the region we want and disable the duplicate channel for the other region(s).

I can't give enough thanks for this project!

I wanted to check this out and had put it behind a local Traefik proxy and ran into a funny issue where all the generated URLs contained a custom port, but I was exposing it on the standard https port. Is there a trick to get it to not specify a custom port in the URLs in the m3u?

I just installed this great project and when I try to search for my city in "Local Now" it says not found and I get the following in the log:

2026-03-31 11:14:10,937 INFO app.scrapers.localnow: [localnow] bootstrapping runtime config from homepage
2026-03-31 11:14:11,200 WARNING urllib3.connectionpool: Retrying (Retry(total=2, connect=3, read=2, redirect=None, status=2)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)'))': /
2026-03-31 11:14:13,330 WARNING urllib3.connectionpool: Retrying (Retry(total=1, connect=3, read=2, redirect=None, status=2)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)'))': /
2026-03-31 11:14:17,473 WARNING urllib3.connectionpool: Retrying (Retry(total=0, connect=3, read=2, redirect=None, status=2)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)'))': /
2026-03-31 11:14:17,491 WARNING app.worker: [localnow] Scrape skipped after 6.6s due to transient network failure: Network unavailable: transient connectivity failure. FastChannels will retry automatically.

I'm running v2.7.0 using podman on Oracle Linux v10.1. Googling the error a possible fix for a debian/ubuntu image (I'm not sure if applies to the fastchannels image) is installing ca-certifcates in the dockerfile.

I don't know a lot about docker so I may be way off. Is anyone else seeing this or know what I can try?

@miceli Not sure if this is the issue but I guess it's worth a try...It may be because you entered an incorrect location?
Go to the www.localnow.com web page...
At the top right, click the My City Drop pin icon to bring up the search page...
Enter your zip and it will list the closest city for you to try in FastChannels...

@Waffles Thanks for the post. I did that and it my market does show up with the city. I've tried in the past big cities like NYC and LA and they all return the same. I feel the issue is there is a Certificate Authority configuration problem with the container so it can't verify the website's signing authority which is Amazon. Although, I could be wrong since many people are using this project and no one has reported it except me. I know I'm always peculiar since most people aren't running on Oracle Linux and many are probably using docker and not podman. Although, containers are supposed to be agnostic to the host OS (like java, etc) so really that shouldn't matter.

@miceli I am running Fedora with Podman... Sorry, but I haven't ran into this cert issue so I can't help...Let's see is someone else can provide any assistance...

@Waffles Oh that's promising someone else is running a RH OS with podman. Most people have shunned away from RH and are using other flavors of linux especially after IBM bought them and they're charging for everything. Thanks for the post and let's see if anyone else has any ideas since it's weird that it's working for everyone else but me.

@miceli Just to give you an idea of what I see when the localnow scraper runs:

2026-03-31 06:10:53,560 INFO     __main__: [scheduler] Enqueued localnow (interval=60m, age=61m)
2026-03-31 06:10:53,861 INFO     app.worker: [localnow] Scrape job started
2026-03-31 06:10:53,863 INFO     app.worker: [localnow] scraper init starting
2026-03-31 06:10:53,863 INFO     app.worker: [localnow] scraper init complete
2026-03-31 06:10:53,863 INFO     app.worker: [localnow] bootstrap starting
2026-03-31 06:10:53,863 INFO     app.worker: [localnow] bootstrap complete
2026-03-31 06:10:53,864 INFO     app.worker: [localnow] channel fetch starting
2026-03-31 06:10:53,864 INFO     app.scrapers.localnow: [localnow] bootstrapping runtime config from homepage
2026-03-31 06:10:54,382 INFO     app.scrapers.localnow: [localnow] runtime bootstrapped host=data-store-trans-cdn.api.cms.amdvids.com dma=744 market=hiHawaii,pbs-khet token_exp=2026-04-28T01:36:12+00:00
2026-03-31 06:10:57,174 INFO     app.scrapers.localnow: [localnow] fetched 427 channels from live EPG
2026-03-31 06:10:57,180 INFO     app.scrapers.localnow: [localnow] 422 channels fetched
2026-03-31 06:10:57,180 INFO     app.worker: [localnow] channel fetch complete
2026-03-31 06:10:57,180 INFO     app.worker: [localnow] EPG fetch starting
2026-03-31 06:10:57,193 INFO     app.scrapers.localnow: [localnow] 2110 EPG entries fetched
2026-03-31 06:10:57,193 INFO     app.worker: [localnow] EPG fetch complete
2026-03-31 06:10:58,649 INFO     app.worker: [xml-cache] enqueued refresh job
2026-03-31 06:10:58,649 INFO     app.worker: [localnow] Scrape complete β€” 422 channels, 2110 programs (4.8s)
2026-03-31 06:10:58,655 INFO     app.routes.images: [images] pre-warm starting: 422 URLs β€” 422 already fresh, 0 to fetch (4 workers)
2026-03-31 06:10:58,655 INFO     app.routes.images: [images] pre-warm done: 0 cached, 422 already fresh, 0 failed (of 422 total)
2026-03-31 06:11:49,623 INFO     app.worker: [artifacts] refreshed 6 XML artifact(s) and 12 M3U artifact(s)

Make sure your date/time/time zone are correct. Certs won't work correct if the date or time are off.

@Rojma Thanks for the post. Yup, I totally understand. My time on the host is correct. I figured if it was something major like that then most of the container's accesses would fail since most insecure http traffic gets redirected to secure https traffic for the last couple years.

In my case everything is working great except for the localnow lookup.

Will fix next version

Never tested but I’ll add support (assume you mean external port)

Ah, thank you!!!!!! And let me add to everyone else's accolades that this is a phenomenal project. It must be since the Dev's highlighted it on their community project page. :slight_smile:

This port number

in the playback URL's?

Thanks @Waffles Here's hoping after the new version comes out that I see something similar in the logs for my local area!