headers: Accept-Language: de-DE,de;q=0.8 User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36 DMOST/2.0.0 (; LGE; webOSTV; WEBOS6.3.2 03.34.95; W6_lm21a;) endpoints: graphql: https://api.zdf.de/graphql ptmd_base: https://api.zdf.de meta: # Known options: # ngplayer_2_5 (Web player - H.264 1080p + VP9 1080p)) # smarttv_6 (HBBTV - H.264 1080p + H.265 HLG 2160p) # smarttv_7 (Unknown - same formats as smarttv_6) # android_native_5 (Android - H.264 1080p + VP9 1080p + H.265 HLG 2160p) player_types: - android_native_5 queries: VideoByCanonical: | query VideoByCanonical($canonical: String!, $first: Int) { videoByCanonical(canonical: $canonical) { id canonical contentType title editorialDate streamingOptions { ad ut dgs ov ks fsk } episodeInfo { episodeNumber seasonNumber } structuralMetadata { isChildrenContent publicationFormInfo { original transformed } visualDimension { moods(first: $first) { nodes { mood } } } } smartCollection { id canonical title collectionType structuralMetadata { contentFamily publicationFormInfo { original transformed } } } seo { title } availability { fskBlocked } currentMediaType subtitle webUrl publicationDate currentMedia { nodes { ptmdTemplate ... on VodMedia { duration aspectRatio visible geoLocation highestVerticalResolution streamAnchorTags { nodes { anchorOffset anchorLabel } } skipIntro { startIntroTimeOffset stopIntroTimeOffset skipButtonDisplayTime skipButtonLabel } vodMediaType label contentType } ... on LiveMedia { geoLocation tvService title start stop editorialStart editorialStop encryption liveMediaType label } id } } } }