FastChannels - FAST Channels aggregator/manager

Yea. i saw that option in Feeds in FastChanenls. But they are blank. Only Tubi works, cause i see the IDs in each channel under Channels tab. None of the other Sources have Gracenote ids in them.
Why i was wondering how to go about finding the catalog of them to search and match up to the dozen or two channels i use from Pluto etc.

Finding the correct gracenote station ID is time consuming.
You have to search for the correct network name or call sign, get the resulting station ID's and see which one has the correct programming for the channel.
I did this for a couple channels in Frndly TV to give you an idea.

1 Like

• FastChannels 1.8.0

  • Major memory usage improvements, especially around XML/EPG handling
  • XML rebuilds now stay out of the web request path, which reduces worker bloat and improves stability
  • More heavy work now runs through the background worker queue, helping reduce DB lock pressure
  • Added memory and CPU stats to /admin/settings
  • Reduced noisy logging for cached logos/posters
  • Added backend support for settings backup/restore, but I’m keeping it hidden from the UI for now until it gets more testing
  • Simplified image caching
  • Removed support for other regions for LG (only US works)
1 Like

Mem back to acceptable range...

Spoke too soon?

image

watch your logs - anything out of the ordinary? how many feeds do you have setup? just trying to find some common denominator ... mine is chilling ~300meg

here's the latest in the logs

2026-03-18 16:14:00,117 INFO __main__: Seeded 13 sources
2026-03-18 16:14:00,118 INFO __main__: Scheduler started — checking sources every 60s
2026-03-18 16:14:00,143 INFO __main__: Startup summary — enabled_sources=11 total_sources=13 enabled_feeds=5
2026-03-18 16:14:17,133 INFO __main__: [xml-cache] refreshed 6 XML artifact(s)
2026-03-18 16:14:17,261 INFO __main__: Worker listening on queue: scraper
2026-03-18 16:15:00,126 INFO __main__: [scheduler] Enqueued roku (interval=60m, age=1541m)
2026-03-18 16:15:00,182 INFO app.worker: FastChannels worker v1.8.0 starting
2026-03-18 16:15:00,190 INFO app.worker: [roku] Scrape job started
2026-03-18 16:15:01,572 INFO app.scrapers.roku: [roku] 794 channels fetched
2026-03-18 16:15:01,582 INFO app.scrapers.roku: [roku] EPG skip: 485/794 channels have fresh programs, skipping content proxy
2026-03-18 16:16:08,607 INFO app.scrapers.roku: [roku] description backfill: 992 unique IDs (504 cached, 488 fetched) → 1031 programs filled
2026-03-18 16:16:08,812 INFO app.scrapers.roku: [roku] prewarm seed: seeded osm_session from 483af83e821059b8b3f0825ae2d43e31
2026-03-18 16:16:08,812 INFO app.scrapers.roku: [roku] cache warm summary: play_id=698/794 selector=698/794 stream_url=0/794 retry_play=0 retry_selector=0
2026-03-18 16:16:08,812 INFO app.scrapers.roku: [roku] 1060 EPG entries fetched for 794 channels
10.89.3.26 "GET / HTTP/1.1" 302 201 0s
10.89.3.26 "GET /favicon.ico HTTP/1.1" 404 207 0s
2026-03-18 16:16:34,278 INFO app.worker: [xml-cache] refreshed 6 XML artifact(s)
2026-03-18 16:16:34,402 INFO app.worker: [roku] Scrape complete — 794 channels, 1060 programs (94.2s)
2026-03-18 16:16:34,413 INFO app.routes.images: [images] pre-warm starting: 794 URLs — 794 already fresh, 0 to fetch (8 workers)
2026-03-18 16:16:34,413 INFO app.routes.images: [images] pre-warm done: 0 cached, 794 already fresh, 0 failed (of 794 total)

4 custom feeds and the default
196 channels in 1 feed, 93, 104 and 27 in the other 3 feeds

and does the memory STAY at 1.32 GB usage, or did you just see a spike?

Nice addition!

at today's memory prices, are you Elon Musk?

on the restart, it was about 250MB and then it spiked to the 1.32GB and has been steady there, so about 5 mins now...

Yea. I figured. I already am seeing Ghost Hunters Channel on Plex that uses Gracenote is not correct Guide data. Episode not match what guide says...so far thats the only issue i have come across splitting up Plex using jgmoz container.
As for FastChannels, guide data isn't quite there and lacks GN ids for all but Tubi.
Hopefully, that can be improved in the future.
Cause, i very much would like to migrate to this in the future.

I only spend the time finding the GN ids for channels I want to record (very few) from FAST sources.
What's nice about the FastChannels project is it lets you put a GN ID in the Channels tab, saves it and it comes out in your feed. So as you find the correct one, just plug it in.

bumped again...

the very last entry in the log is from 16:16

2026-03-18 16:16:34,413 INFO app.routes.images: [images] pre-warm done: 0 cached, 794 already fresh, 0 failed (of 794 total)

Version 1.8.0 ?
What do the system stats look like on the Settings tab

Hang on... working on something with KineticMan

As previously mentioned. Guide Data parsing needs attention at some point.
Comparing to Pluto and Plex to existing dockers, there is some issues.

Pluto, i see issues with programs using todays date for episode date/release date, season ep number.
So that data field may not being processed right in FastChannels.

Plex. Show name and episode info fields are reversed.
Also see a few channels(i do not have enabled though) with the same issue of todays date for episode info, like with Pluto.

Those just examples that show it best, the show preview window thing.
The data still is like this in the normal guide page horizontal rows.
All the data shows fine, just is either wrong place, or just has different data (like todays date instead of ep premier date)

1 Like

I'm seeing very short spikes (looks acceptable) only during scrapes so far.


Spikes are at 19:55:03

2026-03-18 19:54:56,069 INFO     __main__: [scheduler] Enqueued localnow (interval=360m, age=361m)
2026-03-18 19:54:56,715 INFO     app.worker: FastChannels worker v1.8.0 starting
2026-03-18 19:54:56,742 INFO     app.worker: [localnow] Scrape job started
2026-03-18 19:54:56,747 INFO     app.scrapers.localnow: [localnow] bootstrapping runtime config from homepage
2026-03-18 19:54:57,289 INFO     app.scrapers.localnow: [localnow] runtime bootstrapped host=data-store-trans-cdn.api.cms.amdvids.com dma=862 market=caSacramento,pbs-kvie token_exp=2026-04-13T09:05:03+00:00
2026-03-18 19:55:00,190 INFO     app.scrapers.localnow: [localnow] fetched 430 channels from live EPG
2026-03-18 19:55:00,228 INFO     app.scrapers.localnow: [localnow] 424 channels fetched
2026-03-18 19:55:00,385 INFO     app.scrapers.localnow: [localnow] 2120 EPG entries fetched
2026-03-18 19:55:00,519 INFO     app.worker: [localnow] preserved 2 existing EPG rows across 1 channels with no now coverage (sample channel_ids=1056)
2026-03-18 19:55:06,921 INFO     app.worker: [xml-cache] refreshed 5 XML artifact(s)
2026-03-18 19:55:06,931 INFO     app.worker: [localnow] Scrape complete — 424 channels, 2120 programs (10.2s)
2026-03-18 19:55:06,960 INFO     app.routes.images: [images] pre-warm starting: 424 URLs — 424 already fresh, 0 to fetch (8 workers)
2026-03-18 19:55:06,961 INFO     app.routes.images: [images] pre-warm done: 0 cached, 424 already fresh, 0 failed (of 424 total)

@Waffles put me to work tonight. Pushed 1.8.1 .. we think we got the memory bug squashed. stupid Roku scraper.

1 Like

@waffles
My gblg has them
but offline at the moment with some issues

#EXTINF:-1 tvg-logo="https://img.platform.wurl.dev/channel/1517/lg/980216/LG-Logo-PNG-100x100_v2.png",1510 Autentic Travel
https://0317aa59be904633bd9a7ae4d5419bb8.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/LG-gb_AutenticTravel/playlist.m3u8
#EXTINF:-1 tvg-logo="https://img.platform.wurl.dev/channel/1501/lg/3fe535/LG-Logo-PNG-100x100_v2.png",1583 Autentic History
https://b964b70ba343416aab54f1d990e55d04.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/LG-gb_AutenticHistory/playlist.m3u8