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 overridingPbsShowmetadata for all stations, andStationShow: Station show metadata overridingShowandPbsShowmetadata 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
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.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 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
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.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
Implemented By
SearchResult union