Yeah, appears to stop scraping from initial scrape, and the following been written and stale since.
Must be something I did on this particular setup, because I have a primary Mac mini m2 with same (assume) configuration and works fine, maybe how I got desktop docker path config I think, no worries weekend nuke and reset maybe.
Since he enabled scheduled scraping, I implemented it for my sources to spread the scrapes out
Source Interval Last Scraped Next Scrape
Distro TV 60m 2026-06-25 14:11 PDT 2026-06-25 15:10 PDT
Frndly TV 1440m 2026-06-25 05:02 PDT 2026-06-25 17:01 PDT
LG Channels 720m 2026-06-25 14:07 PDT 2026-06-25 15:06 PDT
Local Now 60m 2026-06-25 14:19 PDT 2026-06-25 15:18 PDT
Plex 60m 2026-06-25 14:24 PDT 2026-06-25 15:22 PDT
Pluto TV 60m 2026-06-25 14:27 PDT 2026-06-25 15:26 PDT
Samsung TV Plus 60m 2026-06-25 14:35 PDT 2026-06-25 15:34 PDT
STIRR 60m 2026-06-25 14:32 PDT 2026-06-25 15:30 PDT
TCL TV+ 60m 2026-06-25 14:42 PDT 2026-06-25 15:38 PDT
The Roku Channel 60m 2026-06-25 14:43 PDT 2026-06-25 15:42 PDT
Tubi TV 60m 2026-06-25 13:47 PDT 2026-06-25 14:46 PDT
Vidaa Free TV 60m 2026-06-25 13:52 PDT 2026-06-25 14:50 PDT
Vizio WatchFree+ 60m 2026-06-25 13:55 PDT 2026-06-25 14:54 PDT
Whale TV+ 720m 2026-06-25 03:07 PDT 2026-06-25 15:07 PDT
Xumo Play 60m 2026-06-25 13:59 PDT 2026-06-25 14:58 PDT
Yeah good plan, unfortunately I even nuked the FC container and database from Portainer and Docker Desktop, re-created my FC through Olivetin and once setup again I only selected few sources (Plex,Pluto,Hallmark) and did my initial scrape and feeds, came back a few hours later and those sources didn’t re-scrape, and logs didn’t show any scraping since initial manual run. I still see the channels and appears to be working on my channels DVR, just will get out of whack in a day or two without the scraping on those few channels.
Check the log to see if it's at least queueing up the scrapes
__main__: [scheduler] Enqueued
2026-06-25 14:06:58,323 INFO __main__: [scheduler] Enqueued lg-channels (cron=6 * * * *)
2026-06-25 14:10:58,306 INFO __main__: [scheduler] Enqueued distro (cron=10 * * * *)
2026-06-25 14:18:58,323 INFO __main__: [scheduler] Enqueued localnow (cron=18 * * * *)
2026-06-25 14:22:58,306 INFO __main__: [scheduler] Enqueued plex (cron=22 * * * *)
2026-06-25 14:26:58,311 INFO __main__: [scheduler] Enqueued pluto (cron=26 * * * *)
2026-06-25 14:30:58,318 INFO __main__: [scheduler] Enqueued stirr (cron=30 * * * *)
2026-06-25 14:34:58,315 INFO __main__: [scheduler] Enqueued samsung (cron=34 * * * *)
2026-06-25 14:38:58,328 INFO __main__: [scheduler] Enqueued tcl (cron=38 * * * *)
2026-06-25 14:42:58,313 INFO __main__: [scheduler] Enqueued roku (cron=42 * * * *)
2026-06-25 14:46:58,315 INFO __main__: [scheduler] Enqueued tubi (cron=46 * * * *)
2026-06-25 14:50:58,330 INFO __main__: [scheduler] Enqueued vidaa (cron=50 * * * *)
2026-06-25 14:54:58,327 INFO __main__: [scheduler] Enqueued vizio (cron=54 * * * *)
2026-06-25 14:58:58,317 INFO __main__: [scheduler] Enqueued xumo (cron=58 * * * *)
2026-06-25 15:06:58,328 INFO __main__: [scheduler] Enqueued lg-channels (cron=6 * * * *)
2026-06-25 15:07:58,335 INFO __main__: [scheduler] Enqueued whale (interval=720m, age=721m)
2026-06-25 15:10:58,306 INFO __main__: [scheduler] Enqueued distro (cron=10 * * * *)
Nope no sign of that,just a long run of the “ app.routes.tasks: XML artifact refresh already queued/running”
What does your Portainer stack compose look like?
services:
fastchannels:
# GitHub home for this project: https://github.com/kineticman/FastChannels
# Docker container home for this project: https://github.com/kineticman/FastChannels/pkgs/container/fastchannels
image: ghcr.io/kineticman/fastchannels:latest
container_name: fastchannels
environment:
# Set the timezone to your local timezone
- TZ=America/Los_Angeles
network_mode: "bridge"
ports:
- "5523:5523"
restart: unless-stopped
volumes:
- db_data:/data
volumes:
db_data:
services:
fastchannels:
# 2026.03.15
# GitHub home for this project with setup instructions: https://github.com/kineticman/FastChannels
# Docker container home for this project: https://github.com/kineticman/FastChannels/pkgs/container/fastchannels
image: ghcr.io/kineticman/fastchannels:${TAG:-latest}
container_name: fastchannels
dns_search: ${DOMAIN:-localdomain}
ports:
- ${HOST_PORT:-5523}:5523
environment:
- TZ=${TZ:-America/New_York}
- FASTCHANNELS_SERVER_URL=${FASTCHANNELS_SERVER_URL:-http://192.168.1.50:5523}
- CHANNELS_DVR_SERVER_URL=${CHANNELS_DVR_SERVER_URL:-http://192.168.1.60:8089}
volumes:
- db_data:/data
restart: unless-stopped
volumes:
db_data:
TAG=latest
DOMAIN=localdomain
HOST_PORT=5523
TZ=US/Eastern
FASTCHANNELS_SERVER_URL=http://192.168.68.210:5523
CHANNELS_DVR_SERVER_URL=http://192.168.68.210:8089
Change this to Continent/City form. Unfortunately, Country/Timezone has been deprecated.
Thank you Sir, appears to have started scraping, logs are updating… WOW
Thanks… may be all it needed.
Good detective work!
Adding defensive step to that field…
Maybe add a refence URL to look them up, like
which lists them in order by UTC offset, and mention to pick the Canonical – The primary, preferred zone name
Question:
When I add/delete channels, do I need to manually reload the M3U for each feed in Channels to pick up the changes? It doesn't look like Channels has an "update all" command (for the M3Us; there is an update-all for the EPG).
The brute-force way on Channels admin portal is Settings/Live TV & DVR/Guide Data then Delete & Recreate DB. You can also just go to Admin/Sources/then select your Source and hit Reload M3U. But, to ensure everything syncs, use the hammer.

Just installed this, looks great. Thank you for your efforts.
Looks just like a list of VOD ... It's an interesting idea to create "Virtual Custom Channels" .. I'll think about that one how/if it'd fit in.
I'm getting the following error message:
Channels DVR rejected the request when trying to update a feed:
DVR 403: {"error":"failed to load m3u: Get "http://192.168.68.120:5523/feeds/food/m3u/gracenote": dial tcp 192.168.68.120:5523: connect: connection refused"}
Any ideas on how to fix?



