Skip to main content

NormalizedShow

Station-normalized data for a show.

The Local Streaming data model has three types repsenting 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]
hasFullLengthContentAvailable: Boolean
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]
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 signifgy 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 signifgy 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.

Note that including this field makes the response uncacheable. Consider only requesting it when needed separately from other fields.

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.hasFullLengthContentAvailable ● Boolean scalar references

Whether the show currently have any full length content available right now.

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 signifgy a show "receny".

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.runtime ● Int scalar references

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

NormalizedShow.seasonPremiereMode ● Boolean scalar references

Whether the show has been marlked 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

missingMetadataShows query ● newShows query ● normalizedShow query ● normalizedShows query ● recommendedShows query ● searchShows query ● similarShows query ● trendingShows query

Member Of

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