FastChannels - FAST Channels aggregator/manager

Not running on desktop, running on Synology NAS Container Manager.

Portainer is a much better tool, and can be installed anywhere Docker runs, including Synology. Rather than messing with platform-specific tools, go with this cross-platform solution. Learn it once, use it everywhere. :slight_smile:

Here’s one of several guides on installing Portainer on Synology. Once you get it installed, install Olive Tin and Project One Click to make life much easier.

2 Likes

I'm not sure if it's me, but my Frndly channels in the favorites section will not show the current program, only the channel logos. The program information is in the guide, however.

Made no difference between the 3 settings. Hardware has always seemed to work the best for me over the years. If anything it's worse on Hybrid/Software.

YouTube channels no longer working.
brave_screenshot

Thanks for the reply

Appreciate the link, thanks

I tried Portainer for my initial install of this app, and even though I'd noted the password I'd set up, it wouldn't log me back in. Given that, I am in no hurry to try to set it up again.

1 Like

Your kitten factory isn't completly dead yet, but reading the YT-DLP github, it looks like it's a constant cat and mouse game (pun intended). Youtube now requires a bound-PO token and we tried web_safari, web, iOS (in order) and all of those are now dead. There is one that still works -- android_vr that I didn't have in the list. I just added it and it works. I'll push out a small update later.

Pushed 4.8.0

  • Fixed YouTube. Also, put in an auto-weekly updater inside the container to update YT-DLP (the program that controls YT integration).
  • Fixed tvg-chnum issue @jator

Just an FYI about this and another option you can explore:

1 Like

I assume you updated yt-dlp on your end as well, babson?

1 Like

More than updated; I generally keep myself on the bleeding edge daily edition, at least in development.

1 Like

Thanks.
Working again now.

Distro is missing channels on scrapes.
Since Midnight this morning, only getting 18 channels scraped, instead of 193.

Log
2026-07-09 22:02:30,833 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-09 22:02:31,810 INFO     app.worker: [distro] Scrape job started
2026-07-09 22:02:32,203 INFO     app.scrapers.distro: [distro] parsed 90 channels for geo=US
2026-07-09 22:02:32,299 INFO     app.scrapers.distro: [distro] parsed 103 channels for geo=QQ
2026-07-09 22:02:32,299 INFO     app.scrapers.distro: [distro] parsed 193 channels across 2 geo feed(s)
2026-07-09 22:02:33,356 INFO     app.scrapers.distro: [distro] parsed 5617 EPG entries
2026-07-09 22:02:37,085 INFO     app.worker: [distro] Scrape complete — 193 channels, 5617 programs (5.3s)
2026-07-09 23:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-09 23:02:31,805 INFO     app.worker: [distro] Scrape job started
2026-07-09 23:02:32,167 INFO     app.scrapers.distro: [distro] parsed 63 channels for geo=US
2026-07-09 23:02:32,245 INFO     app.scrapers.distro: [distro] parsed 72 channels for geo=QQ
2026-07-09 23:02:32,246 INFO     app.scrapers.distro: [distro] parsed 135 channels across 2 geo feed(s)
2026-07-09 23:02:33,101 INFO     app.scrapers.distro: [distro] parsed 4012 EPG entries
2026-07-09 23:02:36,201 INFO     app.worker: [distro] Scrape complete — 135 channels, 4012 programs (4.4s)
2026-07-10 00:02:30,831 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 00:02:31,803 INFO     app.worker: [distro] Scrape job started
2026-07-10 00:02:32,123 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 00:02:32,191 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 00:02:32,192 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 00:02:32,245 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 00:02:32,810 INFO     app.scrapers.distro: [distro] parsed 764 EPG entries
2026-07-10 00:02:33,536 INFO     app.worker: [distro] Scrape complete — 18 channels, 764 programs (1.7s)
2026-07-10 01:02:30,831 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 01:02:31,810 INFO     app.worker: [distro] Scrape job started
2026-07-10 01:02:32,079 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 01:02:32,146 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 01:02:32,146 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 01:02:32,199 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 01:02:32,740 INFO     app.scrapers.distro: [distro] parsed 764 EPG entries
2026-07-10 01:02:33,536 INFO     app.worker: [distro] Scrape complete — 18 channels, 764 programs (1.7s)
2026-07-10 02:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 02:02:31,800 INFO     app.worker: [distro] Scrape job started
2026-07-10 02:02:32,061 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 02:02:32,128 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 02:02:32,128 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 02:02:32,181 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 02:02:32,775 INFO     app.scrapers.distro: [distro] parsed 764 EPG entries
2026-07-10 02:02:33,493 INFO     app.worker: [distro] Scrape complete — 18 channels, 764 programs (1.7s)
2026-07-10 03:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 03:02:31,814 INFO     app.worker: [distro] Scrape job started
2026-07-10 03:02:32,198 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 03:02:32,267 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 03:02:32,268 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 03:02:32,321 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 03:02:32,885 INFO     app.scrapers.distro: [distro] parsed 762 EPG entries
2026-07-10 03:02:33,494 INFO     app.worker: [distro] Scrape complete — 18 channels, 762 programs (1.7s)
2026-07-10 04:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 04:02:31,804 INFO     app.worker: [distro] Scrape job started
2026-07-10 04:02:32,234 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 04:02:32,301 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 04:02:32,301 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 04:02:32,354 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 04:02:32,930 INFO     app.scrapers.distro: [distro] parsed 762 EPG entries
2026-07-10 04:02:33,578 INFO     app.worker: [distro] Scrape complete — 18 channels, 762 programs (1.8s)
2026-07-10 05:02:30,831 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 05:02:31,828 INFO     app.worker: [distro] Scrape job started
2026-07-10 05:02:32,266 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 05:02:32,334 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 05:02:32,335 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 05:02:32,388 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 05:02:32,945 INFO     app.scrapers.distro: [distro] parsed 762 EPG entries
2026-07-10 05:02:33,685 INFO     app.worker: [distro] Scrape complete — 18 channels, 762 programs (1.9s)
2026-07-10 06:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 06:02:31,810 INFO     app.worker: [distro] Scrape job started
2026-07-10 06:02:32,167 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 06:02:32,241 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 06:02:32,242 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 06:02:32,295 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 06:02:32,860 INFO     app.scrapers.distro: [distro] parsed 778 EPG entries
2026-07-10 06:02:33,766 INFO     app.worker: [distro] Scrape complete — 18 channels, 778 programs (2.0s)
2026-07-10 07:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 07:02:31,796 INFO     app.worker: [distro] Scrape job started
2026-07-10 07:02:32,082 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 07:02:32,154 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 07:02:32,155 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 07:02:32,207 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 07:02:32,763 INFO     app.scrapers.distro: [distro] parsed 776 EPG entries
2026-07-10 07:02:33,595 INFO     app.worker: [distro] Scrape complete — 18 channels, 776 programs (1.8s)
2026-07-10 08:02:30,832 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 08:02:31,803 INFO     app.worker: [distro] Scrape job started
2026-07-10 08:02:32,069 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 08:02:32,132 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 08:02:32,133 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 08:02:32,185 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 08:02:32,772 INFO     app.scrapers.distro: [distro] parsed 774 EPG entries
2026-07-10 08:02:33,482 INFO     app.worker: [distro] Scrape complete — 18 channels, 774 programs (1.7s)
2026-07-10 09:02:30,833 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 09:02:31,826 INFO     app.worker: [distro] Scrape job started
2026-07-10 09:02:32,115 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 09:02:32,187 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 09:02:32,188 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 09:02:32,241 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 09:02:32,818 INFO     app.scrapers.distro: [distro] parsed 770 EPG entries
2026-07-10 09:02:33,815 INFO     app.worker: [distro] Scrape complete — 18 channels, 770 programs (2.0s)
2026-07-10 10:02:30,831 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 10:02:31,819 INFO     app.worker: [distro] Scrape job started
2026-07-10 10:02:32,075 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 10:02:32,139 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 10:02:32,139 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 10:02:32,379 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 10:02:33,046 INFO     app.scrapers.distro: [distro] parsed 772 EPG entries
2026-07-10 10:02:34,061 INFO     app.worker: [distro] Scrape complete — 18 channels, 772 programs (2.2s)
2026-07-10 11:02:30,831 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 11:02:31,814 INFO     app.worker: [distro] Scrape job started
2026-07-10 11:02:32,082 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 11:02:32,146 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 11:02:32,146 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 11:02:32,199 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 11:02:32,733 INFO     app.scrapers.distro: [distro] parsed 768 EPG entries
2026-07-10 11:02:33,623 INFO     app.worker: [distro] Scrape complete — 18 channels, 768 programs (1.8s)
2026-07-10 12:02:30,831 INFO     __main__: [scheduler] Enqueued distro (cron=2 * * * *)
2026-07-10 12:02:31,814 INFO     app.worker: [distro] Scrape job started
2026-07-10 12:02:32,098 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=US
2026-07-10 12:02:32,171 INFO     app.scrapers.distro: [distro] parsed 9 channels for geo=QQ
2026-07-10 12:02:32,171 INFO     app.scrapers.distro: [distro] parsed 18 channels across 2 geo feed(s)
2026-07-10 12:02:32,224 WARNING  app.worker: [distro] suspicious channel refresh collapse: existing_active=193 incoming=18 missing_active=175; preserving prior active rows
2026-07-10 12:02:32,776 INFO     app.scrapers.distro: [distro] parsed 764 EPG entries
2026-07-10 12:02:33,808 INFO     app.worker: [distro] Scrape complete — 18 channels, 764 programs (2.0s)
1 Like

i think it might be legit.. look at their website- only 9 channels listed. maybe they're falling apart. didn't we lose a bunch of channels a few months ago from them too?

1 Like

I lost most Pluto channels

Update: Docker was no longer running.......

Surprising that you didn’t lose ALL of them, then!