Skip to main content

NormalizedShow

Station-normalized data for a show.

The Local Public data model has three types representing a show:

  • PbsShow: Base type, read-only and synced from PBS Media Manager,
  • Show: Global show metadata overriding PbsShow metadata for all stations, and
  • StationShow: Station show metadata overriding Show and PbsShow metadata for individual stations.

The NormalizedShow is a combination of all three types for a specific station and country.

type NormalizedShow {
contentRating: ContentRating
createdAt: DateTime
creators: [NormalizedShowCreator]
descriptionLong: String
descriptionShort: String
earliestFullLengthContentAvailableAt: DateTime
expiresAt: DateTime
featuredPublicVideo: NormalizedVideo
featuredVideo(
viewerId: String
): NormalizedVideo
for: NormalizedShowFor
funderMessage(
stripHtml: Boolean
): String
genre: NormalizedShowGenreVibe
genreVibes: [NormalizedShowGenreVibe]
hasAvailableFullLengthContent: Boolean
hasFullLengthContentAvailable: Boolean @deprecated
hasSubtitles: Boolean
id: String
image(
profile: String!
): ImageWithProfile
images: [ImageWithProfile]
isAvailable: Boolean
isLocal: Boolean
isNotAvailableReason: String
language: String
languageName: String
latestFullLengthContentAvailableAt: DateTime
localOriginal: Boolean
passportLevel: ShowPassportLevel
productionLocale: String
productionLocaleFlag(
formats: [CountryFlagFormat!]!
sizes: [CountryFlagSize!]!
): [CountryFlag]
productionLocaleFlagTemplate: String
runtime: Int
seasonPremiereMode: Boolean
seasons(
sortOrder: Order
): [NormalizedShowSeason]
showType: ShowType
slug: String
sort: EpisodesSortOrder
title: String
trailer: NormalizedVideo
tvScheduleIds: [String]
upNextDuration: Int
upNextStart: Int
updatedAt: DateTime
videoTotals: NormalizedShowVideoTotals
}

Fields

NormalizedShow.contentRating ● ContentRating enum references

NormalizedShow.createdAt ● DateTime scalar references

NormalizedShow.creators ● [NormalizedShowCreator] list object references

Show creators metadata

**Not yet implemented!**

NormalizedShow.descriptionLong ● String scalar references

NormalizedShow.descriptionShort ● String scalar references

NormalizedShow.earliestFullLengthContentAvailableAt ● DateTime scalar references

Earliest availability start date of a full length video belonging to this show.

This data is used to signify a show "start date".

Does _not_ account for country availability.

NormalizedShow.expiresAt ● DateTime scalar references

Latest availability end date of a full length video belonging to this show.

This data is used to signify a show "expire date".

Does _not_ account for country availability.

NormalizedShow.featuredPublicVideo ● NormalizedVideo object references

Featured public video.

This video may be set by an admin user or calculated based on NormalizedShow.sort.

Video will always been public available.

NormalizedShow.featuredVideo ● NormalizedVideo object references

Featured video.

This video may be set by an admin user or calculated based on NormalizedShow.sort.

Video may or may not be public available.

NormalizedShow.featuredVideo.viewerId ● String scalar references

NormalizedShow.for ● NormalizedShowFor object references

Provides context of what station, country, and source this show is normalized for.

NormalizedShow.funderMessage ● String scalar references

Funder message from source content (if set).

**Cannot be modified.**

NormalizedShow.funderMessage.stripHtml ● Boolean scalar references

NormalizedShow.genre ● NormalizedShowGenreVibe object references

"Primary" genre from source content (if set).

**Cannot be modified.**

NormalizedShow.genreVibes ● [NormalizedShowGenreVibe] list object references

Calculated GenreVibes values from all three show levels, including station level exclusions.

NormalizedShow.hasAvailableFullLengthContent ● Boolean scalar references

Whether the show currently has any full length content available.

NormalizedShow.hasFullLengthContentAvailable ● Boolean deprecated scalar references

DEPRECATED

Replaced by hasAvailableFullLengthContent

Whether the show currently has any full length content available.

NormalizedShow.hasSubtitles ● Boolean scalar references

NormalizedShow.id ● String scalar references

NormalizedShow.image ● ImageWithProfile object references

Single, transformable image from raw \NormalizedShow.images\\ for the provided profile name.

NormalizedShow.image.profile ● String! non-null scalar references

NormalizedShow.images ● [ImageWithProfile] list object references

Show images data from all three show levels.

NormalizedShow.isAvailable ● Boolean scalar references

Whether the show is available now.

See: NormalizedShow.isNotAvailableReason

NormalizedShow.isLocal ● Boolean scalar references

Whether the show is considered local to the station (based on source metadata).

**Cannot be modified.**

NormalizedShow.isNotAvailableReason ● String scalar references

Reason the show is not available (if it is not available).

See: NormalizedShow.isAvailable

NormalizedShow.language ● String scalar references

ISO-639-1 language code of the show primary language.

NormalizedShow.languageName ● String scalar references

Full name of the show primary language.

NormalizedShow.latestFullLengthContentAvailableAt ● DateTime scalar references

Latest availability start date of a full length video belonging to this show.

This data is used to signify a show "recency".

Does _not_ account for country availability.

NormalizedShow.localOriginal ● Boolean scalar references

Whether the show has been marked as "Local" at the StationShow level.

NormalizedShow.passportLevel ● ShowPassportLevel enum references

Calculated show "Passport level" based on PBS Passport restrictions for show videos.

NormalizedShow.productionLocale ● String scalar references

ISO 3166-1 alpha-2 country code of primary production country.

NormalizedShow.productionLocaleFlag ● [CountryFlag] list object references

Country flag representing the production locale.

Results will include all combinations of requested formats and sizes.

Example:

query NormalizedShow {
normalizedShow(
id: "403a792e-3890-43ac-9325-c731c62049ae"
stationId: "93c39d90-e15f-4cf3-b719-f22296eb853a"
) {
productionLocale
productionLocaleFlag(formats: [SVG, PNG, JPG, WEBP], sizes: [H20, W20]) {
countryCode
format
size
url
}
}
}
{
"data": {
"normalizedShow": {
"productionLocale": "GB",
"productionLocaleFlag": [
{
"countryCode": "GB",
"format": "SVG",
"size": null,
"url": "https://flagcdn.com/gb.svg"
},
{
"countryCode": "GB",
"format": "PNG",
"size": "H20",
"url": "https://flagcdn.com/h20/gb.png"
},
{
"countryCode": "GB",
"format": "PNG",
"size": "W20",
"url": "https://flagcdn.com/w20/gb.png"
},
{
"countryCode": "GB",
"format": "JPG",
"size": "H20",
"url": "https://flagcdn.com/h20/gb.jpg"
},
{
"countryCode": "GB",
"format": "JPG",
"size": "W20",
"url": "https://flagcdn.com/w20/gb.jpg"
},
{
"countryCode": "GB",
"format": "WEBP",
"size": "H20",
"url": "https://flagcdn.com/h20/gb.webp"
},
{
"countryCode": "GB",
"format": "WEBP",
"size": "W20",
"url": "https://flagcdn.com/w20/gb.webp"
}
]
}
},
"extensions": {}
}

_Flag image API by Flagpedia.net._

NormalizedShow.productionLocaleFlag.formats ● [CountryFlagFormat!]! non-null enum references

All formats to generated flag URLs for.

NormalizedShow.productionLocaleFlag.sizes ● [CountryFlagSize!]! non-null enum references

All sizes to generated flag URLs for.

NormalizedShow.productionLocaleFlagTemplate ● String scalar references

RFC 6570 compliant URL template for an image of the flag of the production locale country.

See Flagpedia CDN API documentation for available size and format values.

NormalizedShow.runtime ● Int scalar references

Title runtime of all full length content belonging to the show (for movies).

NormalizedShow.seasonPremiereMode ● Boolean scalar references

Whether the show has been marked as being in "season premiere mode" by an admin.

NormalizedShow.seasons ● [NormalizedShowSeason] list object references

Seasons information for all available videos belonging to the show.

NormalizedShow.seasons.sortOrder ● Order enum references

NormalizedShow.showType ● ShowType enum references

NormalizedShow.slug ● String scalar references

NormalizedShow.sort ● EpisodesSortOrder enum references

Sort order for show videos.

NormalizedShow.title ● String scalar references

NormalizedShow.trailer ● NormalizedVideo object references

Trailer video for the show.

NormalizedShow.tvScheduleIds ● [String] list scalar references

Combined list of known TV Schedule IDs that have been used for the show.

**Customization not yet implemented at Show or StationShow!**

NormalizedShow.upNextDuration ● Int scalar references

Number of seconds to display an "up next" prompt for show videos.

NormalizedShow.upNextStart ● Int scalar references

Number of seconds before the end of a video to begin displaying an "up next" prompt for show videos.

NormalizedShow.updatedAt ● DateTime scalar references

NormalizedShow.videoTotals ● NormalizedShowVideoTotals object references

Aggregate video metadata for all currently available show videos.

Returned By

normalizedShow query ● normalizedShows query ● searchShows query ● similarShows query ● trendingShows query

Member Of

Hero object ● HomeScreenHero object ● Like object ● LivestreamScheduleItem object ● MyList object ● NormalizedCollectionItem object ● NormalizedPromo object ● NormalizedShowSearchResults object ● NormalizedVideo object ● RecommendedShows object ● ScheduleItem object ● WatchHistory object