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 overridingPbsShow
metadata for all stations, andStationShow
: Station show metadata overridingShow
andPbsShow
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