FastChannels - FAST Channels aggregator/manager

FastChannels

I wanted to share something I've been building called FastChannels — a self-hosted FAST channel aggregator that scrapes free ad-supported streaming services and delivers unified M3U playlists and XMLTV EPG guides for Channels DVR (and any other IPTV client).

Why FastChannels?

The problem it solves: Pluto TV, Tubi, The Roku Channel, Samsung TV Plus, Xumo, Plex, DistroTV, and dozens of other free streaming services each offer hundreds of live channels, but they're all siloed.

Getting them all into Channels DVR traditionally meant:

  • Maintaining multiple M3U sources
  • Dealing with stale stream URLs
  • Managing duplicate channels across providers
  • Fighting inconsistent guide data

FastChannels solves all of that in one place. It was designed with ease of use and low maintenance as the primary goals.

What It Does

Multi-Source Aggregation

20+ sources and growing.

Currently supports:

  • Pluto TV
  • Tubi
  • The Roku Channel
  • Samsung TV Plus
  • Xumo Play
  • Plex
  • DistroTV
  • STIRR
  • LG Channels
  • Vizio WatchFree+
  • TCL TV+
  • Vidaa Free TV
  • Whale TV+
  • Adult Swim
  • FreeCast
  • Local Now
  • Frndly TV
  • Fubo TV
  • Bally Sports
  • Hallmark
  • FreeLiveSports
  • Sling Freestream
  • Amazon Prime Free Channels
  • HDHomeRun TuneIn Channel Catalog

New sources are added regularly.

All channels and EPG data are unified into a single M3U playlist and XMLTV guide.

Always-Fresh Stream URLs

Streams are resolved at playback time rather than scrape time.

Tokens, JWTs, and session cookies are refreshed automatically, helping avoid broken or expired URLs.

Named Feeds

Create persistent filtered feeds (Sports, News, Kids, Spanish, etc.) with their own M3U and XMLTV URLs.

Each feed can:

  • Use its own channel number range
  • Filter by source
  • Filter by category
  • Filter by language

Guide Tab

A built-in grid view of your lineup showing:

  • What's on now
  • What's on next
  • Channel state
  • Filtering options

Perfect for spotting guide gaps without leaving FastChannels.

Image Proxy

Channel logos and program artwork are served through FastChannels.

Benefits:

  • Eliminates CDN 403 errors
  • Improves logo reliability in Channels DVR
  • Fixes common issues with providers like Roku

Stream Audit

Health-checks every channel and automatically identifies:

  • Dead streams
  • DRM-only streams
  • VOD masquerading as live channels

Channels that fail can be automatically disabled so they disappear from your feeds.

Duplicate Resolution Helper

Many channels appear on multiple providers (CBS News 24/7 is a great example).

The duplicate resolver:

  • Finds duplicate channels
  • Lets you prioritize sources
  • Automatically keeps the preferred copy
  • Disables the rest

Admin UI

A full web dashboard to:

  • Manage sources
  • Browse channels
  • Enable/disable channels
  • Create feeds
  • Monitor scrape status

No config files required.

Docker Deployment

Runs as a single Docker container and fits neatly into an existing home server stack.


Channels DVR Integration

Add FastChannels M3U and XMLTV URLs directly as a Custom Source in Channels DVR.

FastChannels also supports Gracenote-matched output as a separate M3U variant, allowing you to mix XMLTV and Gracenote guide sources cleanly.


Installation

Docker

If you're new to Docker, don't worry—it's easier than it looks. There are plenty of guides online, and your favorite chatbot can walk you through it.

No environment variables are required.

docker run -d \
  --name fastchannels \
  --restart unless-stopped \
  -p 5523:5523 \
  -v fastchannels_data:/data \
  ghcr.io/kineticman/fastchannels:latest

Portainer

Instructions available on GitHub.

Project One Click

Installation instructions coming soon from @bnhf.

First-Time Setup

Once installed:

  1. Open a browser and navigate to:

    http://YOUR-SERVER:5523/admin

  2. Grab a cup of coffee and let the scrapers do their thing.

  3. Go to Settings:

    • Set the local IP address of your FastChannels server.
    • Set your Channels DVR address.
  4. Go to Sources:

    • Enable or disable sources.
    • Configure Pluto credentials if desired.
    • Set passwords where applicable.

Stream Audit — Find DRM and Dead Channels

Once your sources finish scraping, I highly recommend running a Stream Audit on each source.

The audit checks every channel and identifies:

  • Dead streams
  • DRM-protected streams
  • VOD-only channels

Problem channels are automatically disabled.

Running a Stream Audit

  1. Open Sources
  2. Find a source card
  3. Click the Stream Audit button

You'll see:

  • Live progress
  • Channels checked
  • DRM count
  • Dead channel count

Audits can take several minutes depending on source size.

Which Sources Have the Most DRM?

Generally:

  • The Roku Channel: Most DRM issues
  • Tubi: Usually cleaner
  • Samsung TV Plus: Usually cleaner
  • Plex: Usually cleaner

Results vary by region, so auditing is the best way to know for sure.

After the audit finishes, disabled channels are automatically removed from your feeds.

No further action is required.


The Channels Page

The Channels page is your command center.

After scraping (and ideally after running Stream Audits), this is where you'll spend most of your time refining your lineup.

What You'll See

Every channel from every enabled source, including:

  • Name
  • Logo
  • Source
  • Category
  • Language
  • Channel Number
  • Gracenote ID
  • Stream Health

Channels disabled by audits are clearly marked and can be re-enabled at any time.

Filtering & Searching

Filter channels by:

  • Name
  • Source
  • Category
  • Language
  • Enabled/Disabled status
  • Stream health
  • Gracenote coverage
  • Duplicate status

Duplicate Management

The Duplicates Only filter is especially useful.

If you've scraped Pluto, Roku, Plex, and others, you'll likely have many duplicate channels.

Click Resolve Duplicates to:

  • Reorder source priority with drag-and-drop
  • Prefer channels with better Gracenote coverage
  • Disable lower-priority duplicates in bulk

You can always override the results manually later.

Per-Channel Actions

Enable / Disable

  • Removes channels from feeds without deleting them.

Edit Gracenote IDs

  • Click a Gracenote field to edit it inline.
  • Changes save automatically.

Preview (Eye Icon)

  • Shows current and upcoming programs.
  • Includes an in-browser stream preview.

Inspector (Magnifying Glass)

  • Performs a live stream test.

  • Identifies:

    • Live
    • DRM
    • Dead
    • VOD
    • No data

Great for spot-checking a single channel.

Bulk Actions

Select channels and:

  • Enable in bulk
  • Disable in bulk

Perfect for quickly removing unwanted categories or languages.

Sorting

Every column can be sorted.

The channel number column is especially useful for visualizing your final lineup order.


Setting Up Feeds

Feeds control what channels are exposed through each M3U/XMLTV endpoint.

A Default feed is always available, but custom feeds let you create specialized channel groups.

Think of feeds as custom channel bundles rather than separate streaming services.

Creating a Feed

Go to:

Admin → Feeds → New Feed

Configure:

  • Name
  • Sources
  • Categories
  • Languages
  • Gracenote status
  • Manual channel selections

Supported filters include:

Sources

Include channels only from selected providers.

Examples:

  • Pluto TV
  • Roku
  • Plex

Categories

Examples:

  • Sports
  • News
  • Movies

Languages

Examples:

  • English (en)
  • Spanish (es)

Gracenote Coverage

Create a "Guide Ready" feed containing only channels with matched guide data.

Manual Selection

Hand-pick exactly which channels belong in a feed.

As filters are applied, FastChannels shows how many channels will be included.

Channels DVR Recommendation

Try to keep feeds under roughly 750 channels.

Channels DVR performance can degrade with very large lineups.

One-Click DVR Registration

If you've configured your Channels DVR address in Settings, an Add to Channels DVR button appears on each feed card.

No copy/paste required.

Example Feeds

  • Sports Only
  • English Channels
  • Guide Ready
  • Pluto Everything
  • Anime
  • Movies

Caveats

Roku

Roku is extremely Cloudflare-sensitive.

Sometimes:

  • Scrapes receive 403 errors
  • Initial setup may require re-running a scrape
  • Streams may occasionally fail

If this happens:

  • Don't hammer the service
  • Wait a bit
  • Try again later

Caching minimizes the issue, but it's ultimately outside FastChannels' control.

DRM Sources

Amazon Prime Free Channels and Sling Freestream are DRM-only.

They generally require DRM-capable clients and are disabled by Stream Audit by default.

They're still included because:

  • Some users have compatible playback devices
  • Their guide data can be useful for EPG enrichment

EPG Data Quality

Guide information is only as good as the source providing it.

FastChannels makes a best effort with:

  • Categories
  • Languages
  • Metadata

But occasional inaccuracies should be expected.


Big thanks to @bnhf, @babsonnexus , @matthuisman, and this whole community.

FastChannels GitHub

18 Likes

First of all, I want to say this is a great idea, and nice work! I haven't seen it yet but based on the description, it sounds really good!

This one is tricky.
I think the best copy may not necessarily be dependent on the source priority.

For example, source A may have a channel in 1080p 8mbps, and source B may have the same at 720p 3mbps. In this case, my choice would be source A.
However, there may be another channel that is better quality in source B so I would want that one instead.

Not easy.

Which makes me think that it would be useful if there was a way to see a list if channels with their sources and technical details. That would make it easier to pick the best ones.

Food for thought. :wink:

2 Likes

You have my attention! This sounds really great and can't wait to deploy it over here. Thanks!

1 Like

I probably didn’t word that the best. That function is just a helper - you can go back and override any channel on/off as you decide. It only runs when you tell it to. You’ll see what I mean.

3 Likes

Looks exciting!!

2 Likes

A new Project One-Click Action for FastChannels is ready to deploy, as soon as you formally publish -- including full Project WebUI+ support from the jump!

1 Like

I like this. With this, I would be able to knock out multiple docker containers on hand

yea honestly - thats one of my main reasons for doing this. I kind of lost track of how many Docker containers I had going. New users walking into this wonderful community can get overwhelmed pretty quickly and hopefully this helps more people get interested in these plug-ins.

3 Likes

I'm an OG user who gets easily overwhelmed by all the Fast Channel options. I'm really looking forward to this project.

1 Like

Maybe you can consider adding Stirr.

2 Likes

@KineticMan will this support multiple regions (Canada, UK, etc.)?

1 Like

Stirr is still a thing? I thought it was all VOD?

Si.

2 Likes

Nope, still a thing. Sinclair just sold it off

1 Like

Is LG Channels part of this? Curious about adding them to Channels.

1 Like

Never even heard of it, but I’ll take a look.

I suspect at some point it’ll be diminishing returns adding more services because these FAST services repackage a lot of same stuff. But I like a challenge

1 Like

Pluto has the most channels I care about, but is 720p. Samsung and Plex are 1080p, but Samsung is not great for Guide data, very short, and a lot shows just show the current date for episode name etc.
never seen LG Channels either, but was messing with the app a friends tv yesterday... curious what they offer.

Can't wait to try it out. Would eliminate 5 or 6 containers, not to mention make maintaining all those channels so much easier.

2 Likes

I'm looking forward to seeing the stuff conbined through this project.
Not having to run so many dockers is a huge plus.

1 Like

ok released .. I updated first post with some instructions. GitHub updated, and One-Click instructions coming soon too, but this one is a simple Docker install.

tested on Windows and Ubuntu. I'm guessing our NAS/Apple friends might need some tweeks.

1 Like