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
countriesWithAvailableVideos: [CountryCode!]
createdAt: DateTime
creators: [NormalizedShowCreator]
descriptionLong: String
descriptionShort: String
earliestFullLengthContentAvailableAt: DateTime
endAt: 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
startAt: DateTime
title: String
trailer: NormalizedVideo
tvScheduleIds: [String]
upNextDuration: Int
upNextStart: Int
updatedAt: DateTime
videoTotals: NormalizedShowVideoTotals
}

Fields​

NormalizedShow.contentRating ● ContentRating enum references​

NormalizedShow.countriesWithAvailableVideos ● [CountryCode!] list scalar references​

Countries the show is available in (if available).

See: NormalizedShow.isAvailable

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 all full length video of the show.

This data is used to signify a show "start date" by ignoring non-full length content (clips, previews, etc.).

Does _not_ account for country availability.

NormalizedShow.endAt ● DateTime scalar references​

**PLACEHOLDER: NOT CURRENTLY IMPLEMENTED**

Latest availability end date of all videos of the show.

This date represents _any_ content type (episode, preview, clip, etc.).

NormalizedShow.expiresAt ● DateTime scalar references​

Latest availability end date of all full length videos of the show.

This data is used to signify a show "expire date" by ignoring non-full length content (clips, previews, etc.).

Does _not_ account for country availability.

Featured public video.

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

Video will always been public available.

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.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! non-null scalar references​

NormalizedShow.sort ● EpisodesSortOrder enum references​

Sort order for show videos.

NormalizedShow.startAt ● DateTime scalar references​

**PLACEHOLDER: NOT CURRENTLY IMPLEMENTED**

Earliest availability start date of all videos of the show.

This date represents _any_ content type (episode, preview, clip, etc.).

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​

Latest updatedAt date, including all sources.

NormalizedShow.videoTotals ● NormalizedShowVideoTotals object references​

Aggregate video metadata for all currently available show videos for the normalized country.

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 ● TvScheduleListing object ● WatchHistory object