Skip to main content

NormalizedVideo

Station-normalized data for a video.

The Local Streaming data model has three types repsenting a video:

  • PbsVideo: Base type, read-only and synced from PBS Media Manager,
  • Video: Global video metadata overriding PbsVideo metadata for all stations, and
  • StationVideo: Station video metadata overriding Video and PbsVideo metadata for individual stations.

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

type NormalizedVideo {
availabilities: NormalizedVideoAvailabilities
contentAdvisory: String
contentDescriptors: [ContentDescriptor]
contentRating: ContentRating
createdAt: DateTime
descriptionLong: String
descriptionShort: String
duration: Int
embedCodeVideoId: String
episodeNumber: Int
exclude: Boolean
for: NormalizedVideoFor
funderMessage(
stripHtml: Boolean
): String
googleAdManagerVastAdTagUrl: URL
id: String
image(
profile: String!
): ImageWithProfile
images: [ImageWithProfile]
isAvailable: Boolean
isNotAvailableReason: String
isPublicAvailable: Boolean
normalizedShow(
country: CountryCode
stationId: UUID
): NormalizedShow
pbsVideoPlaybackFiles(
forPassport: Boolean!
): NormalizedPbsVideoPlaybackFiles
premiereDate: DateTime
season: Int
showId: String
skipSponsorship: Boolean
slug: String
title: String
titleShort: String
tvScheduleIds: [String]
upNextDuration: Int
upNextStart: Int
updatedAt: DateTime
videoType: VideoType
watchPosition(
viewerId: String!
): NormalizedVideoWatchPosition
}

Fields

NormalizedVideo.availabilities ● NormalizedVideoAvailabilities object references

Detailed video availability information by availability window.

NormalizedVideo.contentAdvisory ● String scalar references

NormalizedVideo.contentDescriptors ● [ContentDescriptor] list enum references

NormalizedVideo.contentRating ● ContentRating enum references

NormalizedVideo.createdAt ● DateTime scalar references

NormalizedVideo.descriptionLong ● String scalar references

NormalizedVideo.descriptionShort ● String scalar references

NormalizedVideo.duration ● Int scalar references

Total video duration in seconds.

NormalizedVideo.embedCodeVideoId ● String scalar references

ID for PBS Media Manager content embeds with PBS Partner Player.

NormalizedVideo.episodeNumber ● Int scalar references

NormalizedVideo.exclude ● Boolean scalar references

Whether this video should be excluded from presentation.

This is for reference only. See NormalizedVideo.isAvailable for true availability.

NormalizedVideo.for ● NormalizedVideoFor object references

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

NormalizedVideo.funderMessage ● String scalar references

Funder message from source content (if set).

Cannot be modified.

NormalizedVideo.funderMessage.stripHtml ● Boolean scalar references

NormalizedVideo.googleAdManagerVastAdTagUrl ● URL scalar references

Base Google Ads VAST URL for PBS video preroll.

Consumers must still add the following search parameters to the URL:

  • correlator: random interger (IAM SDK handle this automatically where available)
  • ppid: client ID alphanumeric characters only (use Viewer ID (without dashes) if available, otherwise an anonymous client ID).
  • cust_params: URL encoded search string of additional parameters.
    • apptype: StationApp
    • station: Station call sign, uppercase
    • deviceID: Device model name (not ID) (e.g., "Roku Premiere")
    • OTTDevice: Device type (e.g., ROKU, IOS, TVOS, etc.)
    • PBSuser: "yes" or "no" for whether the viewer of the video is logged in to a PBS account.
    • passport: "yes" or "no" for whether the viewer of the video has Passport.

Comlete example URL:

https://pubads.g.doubleclick.net/gampad/ads
?ad_rule=1
&ciu_szs=728x90
&cmsid=2588203
&env=vp
&gdfp_req=1
&impl=s
&output=vmap
&sz=400x300
&unviewed_position_start=1
&iu=/22540141786/n6735.pbs/PBS_Video_National
&vid=3092213789
&correlator=1246120129220136
&ppid=53e2d614896d4c9083d53da7bf7050be
&cust_params=apptype%3DStationApp%26station%3DKCTS%26deviceID%3D04490af1-ccf1-5edb-b4f2-b7c4a8150c3c%26OTTDevice%3DRoku%26PBSuser%3Dyes%26passport%3Dno

NormalizedVideo.id ● String scalar references

NormalizedVideo.image ● ImageWithProfile object references

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

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

NormalizedVideo.images ● [ImageWithProfile] list object references

Video images data from all three video levels.

NormalizedVideo.isAvailable ● Boolean scalar references

Whether the video is available now.

See: NormalizedVideo.isNotAvailableReason

NormalizedVideo.isNotAvailableReason ● String scalar references

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

See: NormalizedVideo.isAvailable

NormalizedVideo.isPublicAvailable ● Boolean scalar references

Whether the video is available to non-members now.

NormalizedVideo.normalizedShow ● NormalizedShow object references

Station-normalized parent show.

NormalizedVideo.normalizedShow.country ● CountryCode scalar references
NormalizedVideo.normalizedShow.stationId ● UUID scalar references

NormalizedVideo.pbsVideoPlaybackFiles ● NormalizedPbsVideoPlaybackFiles object references

Video playback files for PBS video content.

NormalizedVideo.pbsVideoPlaybackFiles.forPassport ● Boolean! non-null scalar references

Whether to get the Passport playback files.

Will select "all members" or "station members" based on whether the parent show is local.

See: NormalizedShow.isLocal

NormalizedVideo.premiereDate ● DateTime scalar references

NormalizedVideo.season ● Int scalar references

NormalizedVideo.showId ● String scalar references

NormalizedVideo.skipSponsorship ● Boolean scalar references

Whether to skip sponsorship preroll check for this video.

See: NormalizedVideo.googleAdManagerVastAdTagUrl

NormalizedVideo.slug ● String scalar references

NormalizedVideo.title ● String scalar references

NormalizedVideo.titleShort ● String scalar references

NormalizedVideo.tvScheduleIds ● [String] list scalar references

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

Customization not yet implemented at Video or StationVideo!

NormalizedVideo.upNextDuration ● Int scalar references

Number of seconds to display an "up next" prompt.

NormalizedVideo.upNextStart ● Int scalar references

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

NormalizedVideo.updatedAt ● DateTime scalar references

NormalizedVideo.videoType ● VideoType enum references

NormalizedVideo.watchPosition ● NormalizedVideoWatchPosition object references

Watch position information for a specific viewer based on watch history.

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

NormalizedVideo.watchPosition.viewerId ● String! non-null scalar references

Returned By

nextVideoForPlayback query ● normalizedVideo query ● normalizedVideos query ● searchVideos query

Member Of

ContinueWatchingVideo object ● LivestreamScheduleItem object ● NormalizedCollectionItem object ● NormalizedShow object ● ScheduleItem object ● WatchHistory object