Passes showing future airing of show as already recorded?

Just tried WSOP and it's showing it will record


I am having the same issue, I am trying to record ABC news - it recorded 3 episodes then showed the next future airdates as recorded.

Checked today and now this Sunday's CBS Morning show is showing recording queued but the following Sunday as recorded?

For CBS News Sunday Morning
You can check to see which ones Channels DVR thinks it recorded and tell you which recording it is.
For the 9/21, 9/28, 10/5 and 10/12 airings, look at http://127.0.0.1:8089/dvr/programs
Substitute the IP address and port of your DVR server
Search the JSON results for these program ID's, which are the 9/21, 9/28, 10/5 and 10/12 airings
EP000191281754
EP000191281755
EP000191281756
EP000191281757

It will tell you whether it was recorded, skipped or queued to record
Examples;

"EP000017620837": "skipped",               Airing was Skipped
"EP000017620878": "recorded-410",          Airing recorded to file 410
"EP000031631077": "queued-1759377600-103", Airing queued to record

For recorded, you can then look at the file 410 to see what it is
For queued it's the unix epoch time to start recording - rule# (pass)

Thanks for the above. Couldn't find any of those 4 program ids (curious where you find that info for future reference?) but I did find this:

  "CBS News Sunday Morning/47166e144771399012feb760975b5ccdcac5db08d8bbcc41f11c5d0dddb8e45d": "recorded-25931",
  "CBS News Sunday Morning/582234bc5ead7ef416f39c6217fe0fd01b9cf7ac23aca540407f0789b7308522": "queued-1759064370-196",
  "CBS News Sunday Morning/5b70a5e5283f959ff8d033d3150468a7c64b69f14c544981238e0b3d509d433a": "recorded-25364",
  "CBS News Sunday Morning/6813459bf0886d4403a45fd6dd38298b9abb29c09f58156754128ffba101488d": "recorded-25865",
  "CBS News Sunday Morning/6c4712ebb1ae9b539ff77c9cc1edd86dcf1508fbe2424b7b4a632d474d559510": "recorded-25330",
  "CBS News Sunday Morning/740d6279cd8758d50dc9de09e1053c8a665dcbf4253bb30dbfa5c9b5e3422ce0": "recorded-25817",
  "CBS News Sunday Morning/7415ab14744caadac3802b845285033bf6add2c1ed4f1a7474d694546771c1e0": "recorded-25450",
  "CBS News Sunday Morning/7c793cb925211dcd8996b01b53941c1d8fff582660fce9d91af218be81c53d24": "recorded-25495",
  "CBS News Sunday Morning/7ddf4c18e872915b1c68394aa9a35c00f2b78141f83b0f7d2609f1e6d860bd66": "recorded-25663",
  "CBS News Sunday Morning/85e93b65046ff2fb96eb1966f95540ad3c5f69adf5a2d9e29711ca1ce7775ee5": "recorded-25020",
  "CBS News Sunday Morning/91520ce749f48baf50caa1a93e73d757dd21900177c4bfc2dd13dbea6970ba1e": "recorded-25589",
  "CBS News Sunday Morning/9eac02288030d8c9ebcf31e0e5ba4f8c74c72b36567741c9092036a10d7ae820": "recorded-24867",
  "CBS News Sunday Morning/a2e7f3e340c0750cf8afa7ffa920b22b7e9fb5534dbda10c11b18cc4f123b58e": "recorded-25189",
  "CBS News Sunday Morning/b59de160bd5d231b6b0ca981833f775b2bc5492f1d8bbe9d8637e8bf8cfc69e5": "recorded-25118",
  "CBS News Sunday Morning/d1babf0fcbceb69760f4789f4a232d4160578912d4456d0df0cc6b38c89f0fa2": "recorded-25259",
  "CBS News Sunday Morning/d6f486421d8fd904708e8bed222f3310ef3765801f3e0042c5cc1c42cf914961": "recorded-26007",
  "CBS News Sunday Morning/fdc224e7e7f54bb31f6ab1c0700a8c27652f40b4c5d6138bc5ccadd68a2175b8": "recorded-25397",

I did find several thousand text strings similar to what you showed above, just don't have those 4 in my output.

What is your source for CBS News Sunday Morning and can you post the advanced tab of that pass.
It appears your source isn't using gracenote guide data.

I use my browser network inspector to see the raw data returned by Channels DVR when it displays the search results for the airings of the show

If you have a pass and scheduled recordings you can also get the ProgramID from the the scheduled jobs at http://127.0.0.1:8089/dvr/jobs (or use the DVR web UI, API & Feed Explorer for Jobs)

  {
    "ID": "1759064400-855",
    "Name": "CBS News Sunday Morning",
    "Time": 1759064400,
    "Duration": 5400,
    "Channels": [
      "713"
    ],
    "Channel": "",
    "DeviceID": "",
    "RuleID": "855",
    "Serial": 1758991541,
    "FileID": "",
    "Skipped": false,
    "Failed": false,
    "Dead": false,
    "Error": "",
    "Airing": {
      "Source": "tms",
      "Channel": "713",
      "OriginalDate": "2025-09-28",
      "Time": 1759064400,
      "Duration": 5400,
      "Title": "CBS News Sunday Morning",
      "Summary": "Actors Keanu Reeves and Alex Winter; singer and actress Jennifer Lopez; members of The Zombies.",
      "FullSummary": "Actors Keanu Reeves and Alex Winter; singer and actress Jennifer Lopez; members of The Zombies; David Kaczynski; Eli Sharabi; crickets; Calder Gardens in Philadelphia.",
      "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&h=540",
      "Categories": [
        "Episode",
        "Series"
      ],
      "Genres": [
        "Talk",
        "Newsmagazine"
      ],
      "Tags": [
        "CC",
        "HD 1080i",
        "HDTV",
        "New",
        "Stereo"
      ],
      "SeriesID": "185497",
      "ProgramID": "EP000191281755",
      "EpisodeNumber": 37,
      "Cast": [
        "Jane Pauley",
        "Mo Rocca",
        "Keanu Reeves"
      ],
      "ReleaseYear": 2025,
      "Raw": {
        "startTime": "2025-09-28T13:00Z",
        "endTime": "2025-09-28T14:30Z",
        "duration": 90,
        "channels": [
          "713"
        ],
        "stationId": "21214",
        "qualifiers": [
          "CC",
          "HD 1080i",
          "HDTV",
          "New",
          "Stereo"
        ],
        "program": {
          "tmsId": "EP000191281755",
          "rootId": "30711074",
          "seriesId": "185497",
          "entityType": "Episode",
          "subType": "Series",
          "title": "CBS News Sunday Morning",
          "titleLang": "en",
          "episodeNum": 37,
          "releaseYear": 2025,
          "releaseDate": "2025-09-28",
          "origAirDate": "2025-09-28",
          "descriptionLang": "en",
          "shortDescription": "Actors Keanu Reeves and Alex Winter; singer and actress Jennifer Lopez; members of The Zombies.",
          "longDescription": "Actors Keanu Reeves and Alex Winter; singer and actress Jennifer Lopez; members of The Zombies; David Kaczynski; Eli Sharabi; crickets; Calder Gardens in Philadelphia.",
          "topCast": [
            "Jane Pauley",
            "Mo Rocca",
            "Keanu Reeves"
          ],
          "genres": [
            "Talk",
            "Newsmagazine"
          ],
          "preferredImage": {
            "uri": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&h=540",
            "height": "540",
            "width": "720",
            "primary": "true",
            "category": "Banner-L1",
            "text": "yes",
            "tier": "Season"
          }
        }
      }
    },
    "UpdatedAt": 1758991542798
  },

Thx for this - I found the XML for my ABC news - its weird I checked the Passes->Matches screen and 4 matches all reporting recorded.

here is the xml

[
  {
    "ID": "1759098600-ch9000",
    "Name": "ABC World News Tonight With David Muir",
    "Time": 1759098600,
    "Duration": 1800,
    "Channels": [
      "9000"
    ],
    "Channel": "",
    "DeviceID": "",
    "RuleID": "",
    "Serial": 0,
    "FileID": "",
    "Skipped": false,
    "Failed": false,
    "Dead": false,
    "Error": "",
    "Airing": {
      "Source": "xmltv:m3u4u",
      "Channel": "9000",
      "Time": 1759098600,
      "Duration": 1800,
      "Title": "ABC World News Tonight With David Muir",
      "Summary": "The latest news from America, as reported by the ABC television network.",
      "SeriesID": "ABC World News Tonight With David Muir",
      "ProgramID": "ABC World News Tonight With David Muir/fd25fa7d56df78f84488f0ea23baa6c510804850272674610fec717926a7a80b",
      "Raw": {
        "xmltv": "\u003Ctv generator-info-name=\"m3u4u\" generator-info-url=\"https://m3u4u.com/\"\u003E\n\u003Cchannel id=\"WABC.us\"\u003E\r\n\u003Cdisplay-name\u003ENY | New York | ABC 7 WABC\u003C/display-name\u003E\r\n\t\u003Clcn\u003E9000\u003C/lcn\u003E\n\u003C/channel\u003E\n\n\u003Cprogramme start=\"20250928223000 +0000\" stop=\"20250928230000 +0000\" channel=\"WABC.us\"\u003E\r\n\u003Ctitle lang=\"en\"\u003EABC World News Tonight With David Muir\u003C/title\u003E\r\n\u003Cdesc lang=\"en\"\u003EThe latest news from America, as reported by the ABC television network.\u003C/desc\u003E\r\n\u003C/programme\u003E\u003C/tv\u003E"
      }
    },
    "UpdatedAt": 1758890161709
  },
  {
    "ID": "1759185000-ch9000",
    "Name": "ABC World News Tonight With David Muir",
    "Time": 1759185000,
    "Duration": 1800,
    "Channels": [
      "9000"
    ],
    "Channel": "",
    "DeviceID": "",
    "RuleID": "",
    "Serial": 0,
    "FileID": "",
    "Skipped": false,
    "Failed": false,
    "Dead": false,
    "Error": "",
    "Airing": {
      "Source": "xmltv:m3u4u",
      "Channel": "9000",
      "Time": 1759185000,
      "Duration": 1800,
      "Title": "ABC World News Tonight With David Muir",
      "Summary": "The latest news from America, as reported by the ABC television network.",
      "SeriesID": "ABC World News Tonight With David Muir",
      "ProgramID": "ABC World News Tonight With David Muir/fd25fa7d56df78f84488f0ea23baa6c510804850272674610fec717926a7a80b",
      "Raw": {
        "xmltv": "\u003Ctv generator-info-name=\"m3u4u\" generator-info-url=\"https://m3u4u.com/\"\u003E\n\u003Cchannel id=\"WABC.us\"\u003E\r\n\u003Cdisplay-name\u003ENY | New York | ABC 7 WABC\u003C/display-name\u003E\r\n\t\u003Clcn\u003E9000\u003C/lcn\u003E\n\u003C/channel\u003E\n\n\u003Cprogramme start=\"20250929223000 +0000\" stop=\"20250929230000 +0000\" channel=\"WABC.us\"\u003E\r\n\u003Ctitle lang=\"en\"\u003EABC World News Tonight With David Muir\u003C/title\u003E\r\n\u003Cdesc lang=\"en\"\u003EThe latest news from America, as reported by the ABC television network.\u003C/desc\u003E\r\n\u003C/programme\u003E\u003C/tv\u003E"
      }
    },
    "UpdatedAt": 1758890163862
  }
]

You're using m3u4u to generate the EPG XML.
It's not giving you a unique identifier for each episode airing

"ProgramID": "ABC World News Tonight With David Muir/fd25fa7d56df78f84488f0ea23baa6c510804850272674610fec717926a7a80b",
"Raw": {
  "xmltv": 
  "<tv generator-info-name="m3u4u" generator-info-url="https://m3u4u.com/">
    <channel id="WABC.us">
      <display-name>NY | New York | ABC 7 WABC</display-name>
      <lcn>9000</lcn>
    </channel>
    <programme start="20250929223000 +0000" stop="20250929230000 +0000" channel="WABC.us">
      <title lang="en">ABC World News Tonight With David Muir</title>
      <desc lang="en">The latest news from America, as reported by the ABC television network.</desc>
    </programme>
  </tv>"
}

so Channels DVR thinks they're all the same episode and assigns them the same ProgramID
Once it records one of them, the rest (with the same ProgramID) will not be recorded, because they appear as duplicates.

recommend a better way to edit playlists? to cut down a playlist being brought into channels. thx for the help

1 Like

Just stop using their EPG and manually map your channels to use the built in guide data. Third party EPG is usually sub-par, and it almost never has the data Channels expects, which gives you the best experience.

Thx Maddox - I was using my providers EPG - just was using m3u4u to clean up the playlists - I will have a look to see if I did something wrong.

1 Like

Sorry, was traveling a lot the last couple of weeks so just having time to sit down and try and work on this again.

All my guide info comes from Channels. I have a CDVR (Backend) fed into Threadfin to enable me to modify logo and channel numbers, and then feed that back into another CDVR (Frontend) where my extenders and passes are scheduled from.

Here's the feed from the Backend CDVR to Threadfin:

#EXTINF:-1 channel-id="21.1" tvg-id="21.1" tvg-chno="21.1" tvg-logo="https://tmsimg.fancybits.co/assets/s28711_h3_ba.png?w=360&h=270" tvc-guide-stationid="30783" tvg-name="WHPDT" group-title="Favorites",CBS
http://192.168.0.2:8088/devices/ANY/channels/21.1/stream.mpg?collection=1&format=ts&codec=copy

And here's the M3U from Threadfin to Front End Channels DVR:

#EXTINF:0 channelID="x-ID.2" tvg-chno="2" tvg-name="CBS" tvg-id="2" tvg-logo="https://res.cloudinary.com/dndea4kmd/image/upload/v1757686808/tv-logos/jwqoaz6vl1j8jghke5kf.png" group-title="Favorites",CBS
http://192.168.0.2:34400/stream/91dbf5cafcf0a6861b637fb59b771751

The Guide info comes through the XML file. I searched through the Threadfin XML file and came up with this:

<programme channel="2" start="20251012130000 +0000" stop="20251012143000 +0000">
          <title lang="">CBS News Sunday Morning</title>
          <desc lang="">News, features, weather and commentary.</desc>
          <category lang="">Episode</category>
          <category lang="">Series</category>
          <category lang="">Talk</category>
          <category lang="">Newsmagazine</category>
          <episode-num system="onscreen">E39</episode-num>
          <episode-num system="tms">EP000191281757</episode-num>
          <icon height="" src="https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&amp;h=540" width=""></icon>
          <credits>
              <actor>Jane Pauley</actor>
              <actor>Mo Rocca</actor>
          </credits>
          <video>
              <quality>HDTV</quality>
          </video>
          <date>20251012</date>
          <new></new>
      </programme>

And this is the guide info from the Backend Server to Threadfin:

<programme start="20251012130000 +0000" stop="20251012143000 +0000" channel="21.1">
    <title>CBS News Sunday Morning</title>
    <desc>News, features, weather and commentary.</desc>
    <category>Episode</category>
    <category>Series</category>
    <category>Talk</category>
    <category>Newsmagazine</category>
    <icon src="https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&amp;h=540"></icon>
    <series-id system="tms">185497</series-id>
    <date>20251012</date>
    <episode-num system="onscreen">E39</episode-num>
    <episode-num system="tms">EP000191281757</episode-num>
    <new></new>
    <credits>
      <actor>Jane Pauley</actor>
      <actor>Mo Rocca</actor>
    </credits>
    <video>
      <quality>HDTV</quality>
    </video>
  </programme>

Here's the screenshot of the advanced tab and still seeing "recorded" on future episodes:


This needs to be corrected
channelID="x-ID.2"
Channels DVR needs that to be
channel-id="x-ID.2"
Refer to Channels Support - Add Custom Channels with M3U Playlists

Okay
Look at your DVR endpoint /dvr/programs and see if EP000191281757 appears in it.
i.e. http://127.0.0.1:8089/dvr/programs
If so, what does it show, queued or recorded?

Examples

  "EP023465150482": "queued-1761256800-46",
  "EP023465150535": "recorded-3084",

Don't think I can manipulate the output of Threadfin. I can try installing a newer version to see if that is a bug that has been fixed. Will work on this weekend.

In terms of searching for that program ID, couldn't find it in the programs link:
image

Look at the file json for the last one it recorded and see what the ProgramID is
DVR > Manage and find the Recording
Options > View Details
Click on the underlined File ID number
Example
"ProgramID" : "EP042863690262"

Only thing I can find in the JSON file (I think that's what I am searching through) is:

  "CBS 21 News at 11/20250927030000 +0000": "recorded-26134",
  "CBS News Sunday Morning/47166e144771399012feb760975b5ccdcac5db08d8bbcc41f11c5d0dddb8e45d": "recorded-25931",
  "CBS News Sunday Morning/582234bc5ead7ef416f39c6217fe0fd01b9cf7ac23aca540407f0789b7308522": "recorded-26153",
  "CBS News Sunday Morning/5b70a5e5283f959ff8d033d3150468a7c64b69f14c544981238e0b3d509d433a": "recorded-25364",
  "CBS News Sunday Morning/6813459bf0886d4403a45fd6dd38298b9abb29c09f58156754128ffba101488d": "recorded-25865",
  "CBS News Sunday Morning/6c4712ebb1ae9b539ff77c9cc1edd86dcf1508fbe2424b7b4a632d474d559510": "recorded-25330",
  "CBS News Sunday Morning/740d6279cd8758d50dc9de09e1053c8a665dcbf4253bb30dbfa5c9b5e3422ce0": "recorded-25817",
  "CBS News Sunday Morning/7415ab14744caadac3802b845285033bf6add2c1ed4f1a7474d694546771c1e0": "recorded-25450",
  "CBS News Sunday Morning/7c793cb925211dcd8996b01b53941c1d8fff582660fce9d91af218be81c53d24": "recorded-25495",
  "CBS News Sunday Morning/7ddf4c18e872915b1c68394aa9a35c00f2b78141f83b0f7d2609f1e6d860bd66": "recorded-25663",
  "CBS News Sunday Morning/85e93b65046ff2fb96eb1966f95540ad3c5f69adf5a2d9e29711ca1ce7775ee5": "recorded-25020",
  "CBS News Sunday Morning/91520ce749f48baf50caa1a93e73d757dd21900177c4bfc2dd13dbea6970ba1e": "recorded-25589",
  "CBS News Sunday Morning/9eac02288030d8c9ebcf31e0e5ba4f8c74c72b36567741c9092036a10d7ae820": "recorded-24867",
  "CBS News Sunday Morning/a2e7f3e340c0750cf8afa7ffa920b22b7e9fb5534dbda10c11b18cc4f123b58e": "recorded-25189",
  "CBS News Sunday Morning/b59de160bd5d231b6b0ca981833f775b2bc5492f1d8bbe9d8637e8bf8cfc69e5": "recorded-25118",
  "CBS News Sunday Morning/d1babf0fcbceb69760f4789f4a232d4160578912d4456d0df0cc6b38c89f0fa2": "recorded-25259",
  "CBS News Sunday Morning/d6f486421d8fd904708e8bed222f3310ef3765801f3e0042c5cc1c42cf914961": "recorded-26007",
  "CBS News Sunday Morning/f0a520f8015b0a26a759dbd20fe744465e9863f1c47d100f143a1277aea5c77d": "recorded-26223",
  "CBS News Sunday Morning/fdc224e7e7f54bb31f6ab1c0700a8c27652f40b4c5d6138bc5ccadd68a2175b8": "recorded-25397",

Also found this in the View Details, File ID 26223 hyperlink under the lone recording I still have in my library:

"root":{
"ID":"26223"
"JobID":"1759669170-196"
"RuleID":"196"
"GroupID":"CBS News Sunday Morning"
"Path":"TV/CBS News Sunday Morning/CBS News Sunday Morning 2025-10-05-0859.mpg"
"Checksum":"wR_0nlpCuOQMtRO9esYLnAneG7oG1Lp-YDK-UD0WKfA"
"CreatedAt":1759669170
"FileSize":5326558112
"Duration":5460.259566
"Commercials":[
0:0
1:49.42
2:302.67
3:454.86
4:857.9
5:950.09
6:988.86
7:1110.71
8:1662.87
9:1748.79
10:2203.71
11:2333.27
12:2493.7
13:2644.85
14:2809.68
15:2931.63
16:3383.65
17:3503.24
18:3700.74
19:3899.37
20:4280.81
21:4565.5
22:5082.12
23:5219.32
24:5291.99
25:5460.06
]
"Completed":true
"Processed":true
"Airing":{
"Source":"xmltv:Threadfin - 1.2.35"
"Channel":"2"
"OriginalDate":"2025-10-05"
"Time":1759669200
"Duration":5400
"Title":"CBS News Sunday Morning"
"Summary":"Miley Cyrus; Cat Stevens; Daniel Day-Lewis; Ronan Day-Lewis; celebrating Broadway's George M. Cohan."
"Image":"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&h=540"
"Categories":[
0:"Series"
]
"Genres":[
0:"Episode"
1:"Talk"
2:"Newsmagazine"
]
"Tags":[
0:"New"
1:"HD"
2:"Dolby Digital"
3:"CC"
]
"SeriesID":"CBS News Sunday Morning"
"ProgramID":"CBS News Sunday Morning/f0a520f8015b0a26a759dbd20fe744465e9863f1c47d100f143a1277aea5c77d"
"Cast":[
0:"Jane Pauley"
1:"Mo Rocca"
2:"Miley Cyrus"
]
"ReleaseYear":2025
}
"ChannelNumber":"2"
"DeviceID":"M3U-Threadfin"
"UpdatedAt":1759674965112
"Version":22
"JobTime":1759669170
"JobDuration":5460

I'm not sure why you're getting that type of SeriesID and ProgramID
It doesn't match the tms/gracenote SeriesID and ProgramID

It does appear that Threadfin XML has the tms/gracenote ProgramID

But it's not passing the tms/gracenote SeriesID through, so maybe that's why?

@tmm1
Ideas?

One of the developers will have to chime in with the answer.

Did a quick test creating a new custom m3u source.

#EXTM3U
#EXTINF:-1 channel-id="x-ID.2" tvg-chno="2" tvg-name="CBS" tvg-id="2" tvg-logo="https://res.cloudinary.com/dndea4kmd/image/upload/v1757686808/tv-logos/jwqoaz6vl1j8jghke5kf.png" group-title="Favorites",CBS
http://192.168.0.2:34400/stream/91dbf5cafcf0a6861b637fb59b771751

Even providing the series-id in the EPG XML doesn't cause it to use the tms ProgramID.

Summary
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv generator-info-name="me.at.home">
    <channel id="2">
        <display-name>CBS</display-name>
        <icon src="https://res.cloudinary.com/dndea4kmd/image/upload/v1757686808/tv-logos/jwqoaz6vl1j8jghke5kf.png"/>
    </channel>
    <programme channel="2" start="20251012130000 +0000" stop="20251012140000 +0000">
        <title>CBS News Sunday Morning</title>
        <desc>News, features, weather and commentary.</desc>
        <category>Episode</category>
        <category>Series</category>
        <category>Talk</category>
        <category>Newsmagazine</category>
        <series-id system="tms">185497</series-id>
        <episode-num system="onscreen">E39</episode-num>
        <episode-num system="tms">EP000191281757</episode-num>
        <icon src="https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&amp;h=540"/>
        <credits>
            <actor>Jane Pauley</actor>
            <actor>Mo Rocca</actor>
        </credits>
        <video>
            <quality>HDTV</quality>
        </video>
        <date>20251012</date>
        <new/>
    </programme>
    <programme channel="2" start="20251012140000 +0000" stop="20251012150000 +0000">
        <title>CBS News Sunday Morning</title>
        <desc>News, features, weather and commentary.</desc>
        <category>Episode</category>
        <category>Series</category>
        <category>Talk</category>
        <category>Newsmagazine</category>
        <series-id system="tms">185497</series-id>
        <episode-num system="onscreen">E40</episode-num>
        <episode-num system="tms">EP000191281758</episode-num>
        <icon src="https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&amp;h=540"/>
        <credits>
            <actor>Jane Pauley</actor>
            <actor>Mo Rocca</actor>
        </credits>
        <video>
            <quality>HDTV</quality>
        </video>
        <date>20251012</date>
        <new/>
    </programme>
    <programme channel="2" start="20251012150000 +0000" stop="20251012160000 +0000">
        <title>CBS News Sunday Morning</title>
        <desc>News, features, weather and commentary.</desc>
        <category>Episode</category>
        <category>Series</category>
        <category>Talk</category>
        <category>Newsmagazine</category>
        <series-id system="tms">185497</series-id>
        <episode-num system="onscreen">E41</episode-num>
        <episode-num system="tms">EP000191281759</episode-num>
        <icon src="https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720&amp;h=540"/>
        <credits>
            <actor>Jane Pauley</actor>
            <actor>Mo Rocca</actor>
        </credits>
        <video>
            <quality>HDTV</quality>
        </video>
        <date>20251012</date>
        <new/>
    </programme>
</tv>

Here's what it shows in Channels DVR.

Summary
[{
        "Channels": ["2"],
        "Source": "xmltv:me.at.home",
        "Channel": "2",
        "OriginalDate": "2025-10-12",
        "Time": 1760274000,
        "Duration": 3600,
        "Title": "CBS News Sunday Morning",
        "Summary": "News, features, weather and commentary.",
        "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026h=540",
        "Categories": ["Series"],
        "Genres": ["Episode", "Talk", "Newsmagazine"],
        "Tags": ["New", "HDTV"],
        "SeriesID": "185497",
        "ProgramID": "185497/d6f486421d8fd904708e8bed222f3310ef3765801f3e0042c5cc1c42cf914961",
        "Cast": ["Jane Pauley", "Mo Rocca"],
        "ReleaseYear": 2025,
        "SearchScore": 0.7535065606504698,
        "Raw": {
            "xmltv": "\u003ctv generator-info-name=\"me.at.home\"\u003e\n\u003cchannel id=\"2\"\u003e\u003cdisplay-name\u003eCBS\u003c/display-name\u003e\u003cicon src=\"https://res.cloudinary.com/dndea4kmd/image/upload/v1757686808/tv-logos/jwqoaz6vl1j8jghke5kf.png\"/\u003e\t\u003clcn\u003e2\u003c/lcn\u003e\n\u003c/channel\u003e\n\n\u003cprogramme channel=\"2\" start=\"20251012130000 +0000\" stop=\"20251012140000 +0000\"\u003e\u003ctitle\u003eCBS News Sunday Morning\u003c/title\u003e\u003cdesc\u003eNews, features, weather and commentary.\u003c/desc\u003e\u003ccategory\u003eEpisode\u003c/category\u003e\u003ccategory\u003eSeries\u003c/category\u003e\u003ccategory\u003eTalk\u003c/category\u003e\u003ccategory\u003eNewsmagazine\u003c/category\u003e\u003cseries-id system=\"tms\"\u003e185497\u003c/series-id\u003e\u003cepisode-num system=\"onscreen\"\u003eE39\u003c/episode-num\u003e\u003cepisode-num system=\"tms\"\u003eEP000191281757\u003c/episode-num\u003e\u003cicon src=\"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540\"/\u003e\u003ccredits\u003e\u003cactor\u003eJane Pauley\u003c/actor\u003e\u003cactor\u003eMo Rocca\u003c/actor\u003e\u003c/credits\u003e\u003cvideo\u003e\u003cquality\u003eHDTV\u003c/quality\u003e\u003c/video\u003e\u003cdate\u003e20251012\u003c/date\u003e\u003cnew/\u003e\u003c/programme\u003e\u003c/tv\u003e"
        },
        "Score": 0
    }, {
        "Channels": ["2"],
        "Source": "xmltv:me.at.home",
        "Channel": "2",
        "OriginalDate": "2025-10-12",
        "Time": 1760277600,
        "Duration": 3600,
        "Title": "CBS News Sunday Morning",
        "Summary": "News, features, weather and commentary.",
        "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026h=540",
        "Categories": ["Series"],
        "Genres": ["Episode", "Talk", "Newsmagazine"],
        "Tags": ["New", "HDTV"],
        "SeriesID": "185497",
        "ProgramID": "185497/d6f486421d8fd904708e8bed222f3310ef3765801f3e0042c5cc1c42cf914961",
        "Cast": ["Jane Pauley", "Mo Rocca"],
        "ReleaseYear": 2025,
        "SearchScore": 0.7015792899689737,
        "Raw": {
            "xmltv": "\u003ctv generator-info-name=\"me.at.home\"\u003e\n\u003cchannel id=\"2\"\u003e\u003cdisplay-name\u003eCBS\u003c/display-name\u003e\u003cicon src=\"https://res.cloudinary.com/dndea4kmd/image/upload/v1757686808/tv-logos/jwqoaz6vl1j8jghke5kf.png\"/\u003e\t\u003clcn\u003e2\u003c/lcn\u003e\n\u003c/channel\u003e\n\n\u003cprogramme channel=\"2\" start=\"20251012140000 +0000\" stop=\"20251012150000 +0000\"\u003e\u003ctitle\u003eCBS News Sunday Morning\u003c/title\u003e\u003cdesc\u003eNews, features, weather and commentary.\u003c/desc\u003e\u003ccategory\u003eEpisode\u003c/category\u003e\u003ccategory\u003eSeries\u003c/category\u003e\u003ccategory\u003eTalk\u003c/category\u003e\u003ccategory\u003eNewsmagazine\u003c/category\u003e\u003cseries-id system=\"tms\"\u003e185497\u003c/series-id\u003e\u003cepisode-num system=\"onscreen\"\u003eE40\u003c/episode-num\u003e\u003cepisode-num system=\"tms\"\u003eEP000191281758\u003c/episode-num\u003e\u003cicon src=\"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540\"/\u003e\u003ccredits\u003e\u003cactor\u003eJane Pauley\u003c/actor\u003e\u003cactor\u003eMo Rocca\u003c/actor\u003e\u003c/credits\u003e\u003cvideo\u003e\u003cquality\u003eHDTV\u003c/quality\u003e\u003c/video\u003e\u003cdate\u003e20251012\u003c/date\u003e\u003cnew/\u003e\u003c/programme\u003e\u003c/tv\u003e"
        },
        "Score": 0
    }, {
        "Channels": ["2"],
        "Source": "xmltv:me.at.home",
        "Channel": "2",
        "OriginalDate": "2025-10-12",
        "Time": 1760281200,
        "Duration": 3600,
        "Title": "CBS News Sunday Morning",
        "Summary": "News, features, weather and commentary.",
        "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026h=540",
        "Categories": ["Series"],
        "Genres": ["Episode", "Talk", "Newsmagazine"],
        "Tags": ["New", "HDTV"],
        "SeriesID": "185497",
        "ProgramID": "185497/d6f486421d8fd904708e8bed222f3310ef3765801f3e0042c5cc1c42cf914961",
        "Cast": ["Jane Pauley", "Mo Rocca"],
        "ReleaseYear": 2025,
        "SearchScore": 0.7015792899689737,
        "Raw": {
            "xmltv": "\u003ctv generator-info-name=\"me.at.home\"\u003e\n\u003cchannel id=\"2\"\u003e\u003cdisplay-name\u003eCBS\u003c/display-name\u003e\u003cicon src=\"https://res.cloudinary.com/dndea4kmd/image/upload/v1757686808/tv-logos/jwqoaz6vl1j8jghke5kf.png\"/\u003e\t\u003clcn\u003e2\u003c/lcn\u003e\n\u003c/channel\u003e\n\n\u003cprogramme channel=\"2\" start=\"20251012150000 +0000\" stop=\"20251012160000 +0000\"\u003e\u003ctitle\u003eCBS News Sunday Morning\u003c/title\u003e\u003cdesc\u003eNews, features, weather and commentary.\u003c/desc\u003e\u003ccategory\u003eEpisode\u003c/category\u003e\u003ccategory\u003eSeries\u003c/category\u003e\u003ccategory\u003eTalk\u003c/category\u003e\u003ccategory\u003eNewsmagazine\u003c/category\u003e\u003cseries-id system=\"tms\"\u003e185497\u003c/series-id\u003e\u003cepisode-num system=\"onscreen\"\u003eE41\u003c/episode-num\u003e\u003cepisode-num system=\"tms\"\u003eEP000191281759\u003c/episode-num\u003e\u003cicon src=\"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540\"/\u003e\u003ccredits\u003e\u003cactor\u003eJane Pauley\u003c/actor\u003e\u003cactor\u003eMo Rocca\u003c/actor\u003e\u003c/credits\u003e\u003cvideo\u003e\u003cquality\u003eHDTV\u003c/quality\u003e\u003c/video\u003e\u003cdate\u003e20251012\u003c/date\u003e\u003cnew/\u003e\u003c/programme\u003e\u003c/tv\u003e"
        },
        "Score": 0
    }
]

All episode airings from the XML show the same ProgramID 185497/d6f486421d8fd904708e8bed222f3310ef3765801f3e0042c5cc1c42cf914961
So Channels DVR thinks they're all the same episode.

UPDATE: I thought maybe having all 3 airings on the same data was causing the problem, so I changed my EPG XML to show them on the next three Sundays and changed the <date> on each. Same issue still. So I changed the descriptions <desc> slightly and now each one has a unique ProgramID.

Summary
[{
        "Channels": ["2"],
        "Source": "xmltv:me.at.home",
        "Channel": "2",
        "OriginalDate": "2025-10-12",
        "Time": 1760274000,
        "Duration": 3600,
        "Title": "CBS News Sunday Morning",
        "Summary": "News, features, weather and commentary. Episode 39.",
        "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026h=540",
        "Categories": ["Series"],
        "Genres": ["Episode", "Talk", "Newsmagazine"],
        "Tags": ["New", "HDTV"],
        "SeriesID": "185497",
        "ProgramID": "185497/1d6bd9b00382a2e788bdc5159339d3fa943a00c4acf3dae37536fa8635ac0bac",
        "Cast": ["Jane Pauley", "Mo Rocca"],
        "ReleaseYear": 2025,
        "SearchScore": 0.7535065606504698,
        "Raw": {
            "xmltv": "\u003ctv generator-info-name=\"me.at.home\"\u003e\n\u003cchannel id=\"2\"\u003e\r\n        \u003cdisplay-name\u003eCBS\u003c/display-name\u003e\r\n        \u003cicon src=\"https://tmsimg.fancybits.co/assets/s10098_ll_h15_ac.png?w=360\u0026amp;h=270\"/\u003e\r\n    \t\u003clcn\u003e2\u003c/lcn\u003e\n\u003c/channel\u003e\n\n\u003cprogramme channel=\"2\" start=\"20251012130000 +0000\" stop=\"20251012140000 +0000\"\u003e\r\n        \u003ctitle\u003eCBS News Sunday Morning\u003c/title\u003e\r\n        \u003cdesc\u003eNews, features, weather and commentary. Episode 39.\u003c/desc\u003e\r\n        \u003ccategory\u003eEpisode\u003c/category\u003e\r\n        \u003ccategory\u003eSeries\u003c/category\u003e\r\n        \u003ccategory\u003eTalk\u003c/category\u003e\r\n        \u003ccategory\u003eNewsmagazine\u003c/category\u003e\r\n        \u003cseries-id system=\"tms\"\u003e185497\u003c/series-id\u003e\r\n        \u003cepisode-num system=\"onscreen\"\u003eE39\u003c/episode-num\u003e\r\n        \u003cepisode-num system=\"tms\"\u003eEP000191281757\u003c/episode-num\u003e\r\n        \u003cicon src=\"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540\"/\u003e\r\n        \u003ccredits\u003e\r\n            \u003cactor\u003eJane Pauley\u003c/actor\u003e\r\n            \u003cactor\u003eMo Rocca\u003c/actor\u003e\r\n        \u003c/credits\u003e\r\n        \u003cvideo\u003e\r\n            \u003cquality\u003eHDTV\u003c/quality\u003e\r\n        \u003c/video\u003e\r\n        \u003cdate\u003e20251012\u003c/date\u003e\r\n        \u003cnew/\u003e\r\n    \u003c/programme\u003e\u003c/tv\u003e"
        },
        "Score": 0
    }, {
        "Channels": ["2"],
        "Source": "xmltv:me.at.home",
        "Channel": "2",
        "OriginalDate": "2025-10-12",
        "Time": 1760277600,
        "Duration": 3600,
        "Title": "CBS News Sunday Morning",
        "Summary": "News, features, weather and commentary. Episode 40.",
        "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026h=540",
        "Categories": ["Series"],
        "Genres": ["Episode", "Talk", "Newsmagazine"],
        "Tags": ["New", "HDTV"],
        "SeriesID": "185497",
        "ProgramID": "185497/280247b349b32f687956bb81e1a9444333e91ae3ebaa264038375d96d70da3a0",
        "Cast": ["Jane Pauley", "Mo Rocca"],
        "ReleaseYear": 2025,
        "SearchScore": 0.7015792899689737,
        "Raw": {
            "xmltv": "\u003ctv generator-info-name=\"me.at.home\"\u003e\n\u003cchannel id=\"2\"\u003e\r\n        \u003cdisplay-name\u003eCBS\u003c/display-name\u003e\r\n        \u003cicon src=\"https://tmsimg.fancybits.co/assets/s10098_ll_h15_ac.png?w=360\u0026amp;h=270\"/\u003e\r\n    \t\u003clcn\u003e2\u003c/lcn\u003e\n\u003c/channel\u003e\n\n\u003cprogramme channel=\"2\" start=\"20251012140000 +0000\" stop=\"20251012150000 +0000\"\u003e\r\n        \u003ctitle\u003eCBS News Sunday Morning\u003c/title\u003e\r\n        \u003cdesc\u003eNews, features, weather and commentary. Episode 40.\u003c/desc\u003e\r\n        \u003ccategory\u003eEpisode\u003c/category\u003e\r\n        \u003ccategory\u003eSeries\u003c/category\u003e\r\n        \u003ccategory\u003eTalk\u003c/category\u003e\r\n        \u003ccategory\u003eNewsmagazine\u003c/category\u003e\r\n        \u003cseries-id system=\"tms\"\u003e185497\u003c/series-id\u003e\r\n        \u003cepisode-num system=\"onscreen\"\u003eE40\u003c/episode-num\u003e\r\n        \u003cepisode-num system=\"tms\"\u003eEP000191281758\u003c/episode-num\u003e\r\n        \u003cicon src=\"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540\"/\u003e\r\n        \u003ccredits\u003e\r\n            \u003cactor\u003eJane Pauley\u003c/actor\u003e\r\n            \u003cactor\u003eMo Rocca\u003c/actor\u003e\r\n        \u003c/credits\u003e\r\n        \u003cvideo\u003e\r\n            \u003cquality\u003eHDTV\u003c/quality\u003e\r\n        \u003c/video\u003e\r\n        \u003cdate\u003e20251012\u003c/date\u003e\r\n        \u003cnew/\u003e\r\n    \u003c/programme\u003e\u003c/tv\u003e"
        },
        "Score": 0
    }, {
        "Channels": ["2"],
        "Source": "xmltv:me.at.home",
        "Channel": "2",
        "OriginalDate": "2025-10-12",
        "Time": 1760281200,
        "Duration": 3600,
        "Title": "CBS News Sunday Morning",
        "Summary": "News, features, weather and commentary. Episode 41.",
        "Image": "https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026h=540",
        "Categories": ["Series"],
        "Genres": ["Episode", "Talk", "Newsmagazine"],
        "Tags": ["New", "HDTV"],
        "SeriesID": "185497",
        "ProgramID": "185497/0fec778d4f26a2c2f00af5af4d07bbeaa15109e890f13056bd970b00458fdf63",
        "Cast": ["Jane Pauley", "Mo Rocca"],
        "ReleaseYear": 2025,
        "SearchScore": 0.7015792899689737,
        "Raw": {
            "xmltv": "\u003ctv generator-info-name=\"me.at.home\"\u003e\n\u003cchannel id=\"2\"\u003e\r\n        \u003cdisplay-name\u003eCBS\u003c/display-name\u003e\r\n        \u003cicon src=\"https://tmsimg.fancybits.co/assets/s10098_ll_h15_ac.png?w=360\u0026amp;h=270\"/\u003e\r\n    \t\u003clcn\u003e2\u003c/lcn\u003e\n\u003c/channel\u003e\n\n\u003cprogramme channel=\"2\" start=\"20251012150000 +0000\" stop=\"20251012160000 +0000\"\u003e\r\n        \u003ctitle\u003eCBS News Sunday Morning\u003c/title\u003e\r\n        \u003cdesc\u003eNews, features, weather and commentary. Episode 41.\u003c/desc\u003e\r\n        \u003ccategory\u003eEpisode\u003c/category\u003e\r\n        \u003ccategory\u003eSeries\u003c/category\u003e\r\n        \u003ccategory\u003eTalk\u003c/category\u003e\r\n        \u003ccategory\u003eNewsmagazine\u003c/category\u003e\r\n        \u003cseries-id system=\"tms\"\u003e185497\u003c/series-id\u003e\r\n        \u003cepisode-num system=\"onscreen\"\u003eE41\u003c/episode-num\u003e\r\n        \u003cepisode-num system=\"tms\"\u003eEP000191281759\u003c/episode-num\u003e\r\n        \u003cicon src=\"https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540\"/\u003e\r\n        \u003ccredits\u003e\r\n            \u003cactor\u003eJane Pauley\u003c/actor\u003e\r\n            \u003cactor\u003eMo Rocca\u003c/actor\u003e\r\n        \u003c/credits\u003e\r\n        \u003cvideo\u003e\r\n            \u003cquality\u003eHDTV\u003c/quality\u003e\r\n        \u003c/video\u003e\r\n        \u003cdate\u003e20251012\u003c/date\u003e\r\n        \u003cnew/\u003e\r\n    \u003c/programme\u003e\u003c/tv\u003e"
        },
        "Score": 0
    }
]

@tmm1
What is being hashed to come up with these ProgramID's?

Done playing with this for the day.
I see the exact same problem even when sourcing guide data from my HDHR Prime source in Channels DVR.

XMLTV Guide Data
<programme start="20251026130000 +0000" stop="20251026143000 +0000" channel="713">
    <title>CBS News Sunday Morning</title>
    <desc>News, features, weather and commentary.</desc>
    <category>Episode</category>
    <category>Series</category>
    <category>Talk</category>
    <category>Newsmagazine</category>
    <icon src="https://tmsimg.fancybits.co/assets/p28692973_b_h9_aa.jpg?w=720\u0026amp;h=540"/>
    <series-id system="tms">185497</series-id>
    <date>20251026</date>
    <episode-num system="onscreen">E41</episode-num>
    <episode-num system="tms">EP000191281759</episode-num>
    <new/>
    <credits>
        <actor>Jane Pauley</actor>
        <actor>Mo Rocca</actor>
    </credits>
    <video>
        <quality>HDTV</quality>
    </video>
</programme>


Yet the same pass will record the next three airings on my DVR with the HDHR Prime source

It appears that Gracenote no longer keeps track of the Seasons for the show (which were year numbers) and only provides episode numbers.

This episode number is in the exported Channels DVR XML guide data.

<episode-num system="onscreen">E40</episode-num>
<episode-num system="tms">EP000191281758</episode-num>

But Channels DVR is ignoring it when importing that same XML guide data (using it as a source).

So even though each airing has a unique episode number, Channels DVR isn't using that from the imported XML guide data.
If it did, it would know the airings are unique and record each episode.

@jator Wanted to bump this before the topic auto closes in 5 days, but it won't let me reply (no more than 3 consecutive posts allowed), so I had to edit this post.

I did make a feature request here Use available unique episode-num data from XMLTV guide data
But no further response to either one of these.

Thanks for all your research on this @chDVRuser, you have a much deeper understanding of this than I do. I was thinking perhaps my use of Threadfin as a "manipulation level" between my backend CDVR server (port 8088) and my frontend server (port 8089) was causing the issue, even though all i was doing was exporting backend server XML into Threadfin and then exportin from Threadfin into the frontend (doing so enables me to use custom logos and individual channel numbers). But it appears this has broader implications to what you have uncovered, so I am assuming this isn't just a one-off fix for me, but should be considered for other potential issues.

I realize the devs have a lot going on (multi-view, ongoing chasing of fixes for streaming site modifications, etc), but hopefully this makes it to a future update in the not-too-distant future. I find the same problem with WSOP episodes and also College Game Day, I have to go in and tell it to re-record even though they are listed as new episodes.

@eric, @maddox & @tmm1, any insight into your perspective on this would be very much appreciated.