FastChannels - FAST Channels aggregator/manager

if it was that easy. i am sure someone would have done so already. There are multiple threads dating years backs talking about it. Gracenote does not seem to be a public accessible thing that i can just load a web page, and search in, like zap2it was.
I think u have to eb a paid developer to even access their service.
All i can think to do is look at what is already populated by someone else.
And scarping mass amounts of data is something you already doing, should be super easy a thing to do and you experienced at it. Would think it be no trivial to you.

I exported the docker gracenote from Plex, trying my hand at MS CP to to scrape it and out put just the station id and relevant info... see what happens.

Either way, gonna be waiting until this awesome software of yours has a way to backup import/export user settings, so that i do not have to re-do all my sources and manual entry of ids etc.

wait...still working on this.

Think i grabbed the 3 fields that are relevant.
If this is good, and not all slaughtered by the AI processing, might make a new thread to post it in.

Edit seems Ai's will only give me the first 100, and will not generate a file with all 300+...grrr

You haven't tried this? https://tvlistings.gracenote.com/grid-affiliates.html?aid=cha

I don't have Channels DVR, so I found this tip... can someone confirm if it does work?
Or maybe I'm not pointing to something helpful?

To get the Gracenote station ID (tvc-guide-stationid) for a channel

  • Use the Channels DVR API : Access your local Channels DVR server via the API to retrieve station IDs. The endpoint http://<your-server-ip>:8089/dvr/guide/stations returns a list of stations with their stationId (Gracenote ID). For example, http://192.168.1.4:8089/dvr/guide/stations will list all stations in your lineup.

That just gives me a gudie page for charter spectrum and some zip code.
I can search but that populates shows...not channels.
Like Ghost Hunters, separate page for each year
Unless i am not seeing something obvious.
How do i get a master list of GN ids from that link then?

You need to pay for Channels DVR to get access to Gracenote guide data.

(post deleted by author)

You don't/can't.
There is no master list.
You can change location and put your zip code in and select a provider, just like zap2it.
There is no easy way.

That's why I only spend the time getting them for channels I want to record that don't already have one.

You have to pay for the Channels DVR service to use their documented and undocumented API's.
That DVR service includes the Gracenote guide data. And the undocumented API you reference will only give you the ID's in the lineup you assigned to the source. The other ID's in the list don't have a channel name, only a callsign.

(post deleted by author)

Well...this what i managed to do....no guarantees things don't go fubar at some point.
But the few i spot checked seemed to be right.
I only have like 15 Plex channels enabled in Channels, but wanted to see what i can extract from the full list the jgomez docker provides of 389 channels that have GN.

You can grab the ID's jgomez put in the Plex docker from his GitHub
https://github.com/jgomez177/plex-for-channels/blob/main/plex_tmsid.csv
https://github.com/jgomez177/plex-for-channels/blob/main/data/tmsid/plex_tmsid.csv

The Tubi file is on GitHub, too:
"tubi-for-channels/tubi_tmsid.csv at main · jgomez177/tubi-for-channels · GitHub"

And if you're running his Plex docker you can find them (tmsid) in the file channels_by_geo.json in the /app/data directory

        "63e63f20abacad42ed3d1acf": {
            "call_sign": null,
            "slug": "baywatch",
            "name": "Baywatch",
            "logo": "https://provider-static.plex.tv/epg/cms/production/dda6e0f8-0807-417b-b30f-1f67dc5084d6/BAYWATCH_PLEX_LOGO_COLOR_DarkBkg_1500x1000_-_Elaine_De_Santiago.png",
            "id": "5e20b730f2f8d5003d739db7-63e63f20abacad42ed3d1acf",
            "key": "/library/parts/5e20b730f2f8d5003d739db7-63e63f20abacad42ed3d1acf.m3u8",
            "gridKey": "63e63f20abacad42ed3d1acf",
            "group": [
                "Classics"
            ],
            "tmsid": "120491"

Whelp....that makes it easy....to compare to what i spent too much time on trying to make.
:laughing:

Something may still be up with Plex Guide data.
With jgomez docker, getting a few days of data for the few non GN channels enabled.
With Fast, getting 5hrs.
Manually re-scraped. No change.

If this question is too far off topic, please direct me to the correct place to post.

The one and only BYUTV channel has no program information but the m3u is fine. I plugged the stationid from the Frndly source into FASTchannels and the EPG clearly did not match. I’m hoping there are other gracenote id’s for BYUTV. If so where might I find them?

I found Global Channel Search and it's actually very easy to use. Even allows you to integrate with Emby, Channels and Dispatcharr. Don't trust most of the Pluto entries however, those seem to be dead IDs as they don't return values when used to feed into channels through the M3U.

nothing up .. plex grabs 24hr scrapes right now. maybe look when your last ran. gomez looks like his scrapes a long time frame which i could look into

1 Like

Manual scrape results in the same thing only getting five hours of guide data for Plex.
Wonder if related to the time zone thing since that also is exactly 5 hours ahead of time might be a correlation or just coincidence.

EDIT: Removed the environment TZ thing from the Compose. No effect.
Not sure why, i can't seem to get more than 5hrs of Guide data from Plex.

2026-03-20 15:13:46,112 INFO     app.routes.tasks: Enqueued scrape for plex (force full)
2026-03-20 15:13:46,161 INFO     app.worker: [plex] Scrape job started
2026-03-20 15:13:46,162 INFO     app.worker: [plex] scraper init starting
2026-03-20 15:13:46,163 INFO     app.worker: [plex] scraper init complete
2026-03-20 15:13:46,163 INFO     app.worker: [plex] bootstrap starting
2026-03-20 15:13:46,163 INFO     app.worker: [plex] bootstrap complete
2026-03-20 15:13:46,164 INFO     app.worker: [plex] channel fetch starting
2026-03-20 15:13:47,474 INFO     app.scrapers.plex: [plex] live-tv RSC fetched in 1.3s (3214647 bytes)
2026-03-20 15:13:47,739 INFO     app.scrapers.plex: [plex] 685 channels fetched from 1 RSC objects in 1.6s
2026-03-20 15:13:47,741 INFO     app.worker: [plex] channel fetch complete
2026-03-20 15:13:47,741 INFO     app.worker: [plex] EPG fetch starting
2026-03-20 15:13:47,750 INFO     app.scrapers.plex: [plex] grid fetch starting: channels=685 windows=3 span_hours=24
2026-03-20 15:14:00,410 INFO     app.scrapers.plex: [plex] grid window 1/3 fetched in 12.7s: metadata=5346 cumulative_programs=5773 seen_airings=5773
2026-03-20 15:14:13,168 INFO     app.scrapers.plex: [plex] grid window 2/3 fetched in 12.8s: metadata=5345 cumulative_programs=5777 seen_airings=5777
2026-03-20 15:14:24,609 INFO     app.scrapers.plex: [plex] grid window 3/3 fetched in 11.4s: metadata=5346 cumulative_programs=5782 seen_airings=5782
2026-03-20 15:14:24,610 INFO     app.scrapers.plex: [plex] 5782 EPG entries fetched from grid API in 36.9s
2026-03-20 15:14:24,619 INFO     app.worker: [plex] EPG fetch complete
2026-03-20 15:14:24,830 INFO     app.worker: [xml-cache] enqueued refresh job
2026-03-20 15:14:24,830 INFO     app.worker: [plex] Scrape complete — 685 channels, 5782 programs (38.7s)
2026-03-20 15:14:24,840 INFO     app.routes.images: [images] pre-warm starting: 685 URLs — 685 already fresh, 0 to fetch (4 workers)
2026-03-20 15:14:24,840 INFO     app.routes.images: [images] pre-warm done: 0 cached, 685 already fresh, 0 failed (of 685 total)
2026-03-20 15:14:25,057 INFO     app.worker: [artifacts] refreshed 3 XML artifact(s) and 6 M3U artifact(s)