Display TV Show Air Date instead of Season Date

I use an HDHomeRun QUATRO (1250ED69) to record OTA tv shows.

Is it possible to change the way that TV shows display the date? I watch a soap that is on 5 days a week. As you can see from the screenshots, they all say "January 1, 2023", which is not that useful.

When drilling into a particular episode it does show "Yesterday, 6:59pm", but again, the "January 1, 2023" is a little pointless (I guess "2023" would be useful).

Is this something that I can adjust?

Pretty sure that's coming from the guide data for your source.
Normally it would display the OAD (Original Air Date), maybe your guide source has that as the OAD for all the episodes?

Thanks, yeah I wondered if it was just poor guide data. Especially if Channels is displaying the OAD field, it must be a guide data issue.

Do you have any idea how to view the raw guide data from an HDHomeRun source?

This is the case. It IS showing the original air date, it's just bad data.

This is common for shows that are aired daily like local news and soap operas. The providers are just sloppy.

This is data from Gracenote, not from Silicon Dust. Though, theirs would be the same as they use Gracenote as well.

Reminder that you can always edit the metadata with the Metadata Editor. But obviously that would be tedious to keep up with daily. Apparently the broadcasters think the same thing about these episodes :rofl:

1 Like

Must be a different tms id. This is all I could find at zap2it
https://tvlistings.zap2it.com/overview.html?programSeriesId=SH02728624
Look at the Episode Guide tab

Thanks that's great info. I don't mind doing something myself using the API to perhaps update them automatically - and just use the recording date, or something similar.

I'll check out the Metadata Editor too - thanks for the help!

In that screenshot, the information displayed is:
Title
Sub-title/Episode Title
Season, Episode • Original air date
Duration Recording date/time Channel logo

In your example, it appears the guide data has both the episode title and the OAD as the same thing.

1 Like

Oh - I see the API is preview and doesn't allow any PUT type operations just yet. Is the database format opensource or proprietary? I know that would be at my own risk, but I'd be keen to have a bit of a look.

I'm pretty sure it's Bolt, which is a key-value database. Direct access is not documented, and probably shouldn't be accessed.

Your best bet is to make operations in the web UI, and inspect the queries via the browser's dev tools.

1 Like

The public server API is read only right now, as documented.

Please do not open the database and try to mutate it, we won't help you if you break something that way.

If you need to hack, just watch the queries from the web inspector. If you break something this way we won't help you either, heh. We don't mind you using it, we don't protect it. But you're on your own. And we reserve the right to change it any time we want without notifying anyone.

1 Like

:rofl: Thanks - yes the dev tools will be helpful. It's all good, I am happy to have a play with no expectations of help if I break it! Appreciate the advice.

Oh cool - that was super easy. Worked a treat. Thanks so much for the help, I'm going to write myself a nice little script to fix up the OTA recordings.

In case anyone else wants to do anything similar, this worked nicely for me. This is powershell and use at your own risk!

$shows = Invoke-RestMethod http://<your_server_url>:8089/api/v1/all

$showTitle = "7 Days"

$shows | Where-Object title -eq $showTitle | ForEach-Object {
    $airDate = ([datetime](Get-Date 01.01.1970)+([System.TimeSpan]::FromMilliseconds($_.created_at))).ToLocalTime()
    $id = $_.id

    $_.title
    $airDate
    $id

    $jsonString = '{"Airing":{"Summary":"Viliami makes a shocking discovery.","EpisodeNumber":7792,"SeasonNumber":2023,"Genres":["Drama","Soap"],"OriginalDate":"2023-10-03","ReleaseYear":2023,"ContentRating":"PG"}}'
    $jsonObject = ConvertFrom-Json -InputObject $jsonString

    $jsonObject.Airing.ContentRating = $_.content_rating
    $jsonObject.Airing.Summary = $_.summary
    $jsonObject.Airing.EpisodeNumber = $_.episode_number
    $jsonObject.Airing.SeasonNumber = $_.season_number
    $jsonObject.Airing.ReleaseYear = $_.season_number
    $jsonObject.Airing.Genres = $_.genres
    $jsonObject.Airing.OriginalDate = $airDate.ToString("yyyy-MM-dd")

    $jsonObject.Airing

    $putUrl = "http://<your_server_url>:8089/dvr/files/$id"
    Invoke-RestMethod $putUrl -Method Put -Body ($jsonObject | ConvertTo-Json -Depth 3)
}

I'm having this problem with Movies, but this seems to ChannelsDVR issue as opposed to a guide data issue, my guide data shows the year of the movie and yet Channels is reading it as January 1st of that year which is wrong, if only the Year and that's already part of the Title then why do we need to see the date again on Movies?

	<programme start="20240312075700 +0000" stop="20240312101800 +0000" channel="10241.zap2it.com">
		<title lang="en">Godzilla</title>
		<desc lang="en">Nuclear testing in the South Pacific produces a giant mutated lizard that wreaks havoc upon New York City.</desc>
		<date>1998</date>
		<category lang="en">Movie</category>
		<length units="minutes">141</length>
		<icon src="https://zap2it.tmsimg.com/assets/p21028_p_v13_ac.jpg" />
		<url>https://tvlistings.zap2it.com//overview.html?programSeriesId=xxxxx&amp;tmsId=xxxxx</url>
		<episode-num system="dd_progid">xxxxxxx</episode-num>
		<premiere>Premiere</premiere>
		<subtitles type="teletext" />
	</programme>

The date element is generally supposed to be YYYYMMDD. In the example you provided, there is no month or day provided, so the generic "1 Jan" is used.

(Well, technically no specific guidance or format is given in the DTD, but the published example is YYYYMMDD.)

This is just a UI Bug, it should be showing the Director there. It’s very tricky getting the right element for all the different types of content that channels can have

So, technically it’s not a bug, it’s that Channels is set to fall back to showing the Original Air Date when it can’t use anything else that it should for that field. In your case, your data doesn’t have directors set for this movie. And the original air date is derived from the year of the movie.

Go ahead and use Fix Match on it and it will pull metadata from TMDB and give your movie better metadata than what was provided by your source’s data.