Dis90 / plugin.video.discoveryplus

discovery+ add-on for Kodi
62 stars 13 forks source link

Add support for discoveryplus.com (US) #5

Closed Dis90 closed 3 years ago

Dis90 commented 3 years ago

Currently broken because of many differences. What I found so far is that unlike other countries US needs headers for requests. Because of geoblock and US version needing account, support for US version is probably not going to happen anytime soon.

api url: https://us1-prod-direct.discoveryplus.com realm: go headers: x-disco-params=realm=go,siteLookupKey=dplus_us

yeahme49 commented 3 years ago

I tested the version with .com support before you reverted and I got it load the frontpage link by adding

headers = { 'X-disco-params': 'realm=go,siteLookupKey=dplus_us' } data = json.loads(self.make_request(url, 'get', params=params, headers=headers))

It then lists categories but nothing appears underneath those catagories. Is there any data I can collect for you to try and add .com support? I can use fiddler everywhere to capture data when browsing discoveryplus.com if that would help.

Dis90 commented 3 years ago

I can get all json listings by using VPN but most difficult part is that I can't see what actual page looks like because I don't have account. Can you take couple screenshots of homepage and other pages where shows and categories is listed?

Dis90 commented 3 years ago

I used few hours to this and conclusion is that US version does many things little bit different than other versions. Because I don't have account to US it is unfortunately impossible for me add support for discoveryplus.com

yeahme49 commented 3 years ago

main browse show

Do these screenshots help at all? Can you post an example of the json files from a different region so they can be compared to the US version?

Dis90 commented 3 years ago

Yes those help a lot. It looks much different than EU versions.

Go to browse while developer tools open and search for file https://us1-prod-direct.discoveryplus.com/cms/routes/shows What params and headers is used? Headers are probably at least "x-disco-params: realm=go,siteLookupKey=dplus_us" is there anything else. And what about params? Those should be at least "include: default"

yeahme49 commented 3 years ago

x-disco-params: realm=go,siteLookupKey=dplus_us x-disco-client: WEB:UNKNOWN:dplus_us:0.0.1 are the only headers that stand out (everything else is standard headers)

include: default decorators: viewingHistory,isFavorite are the params

Dis90 commented 3 years ago

Can you go to some series page, example Gold Rush and look from developer tools something similar than /cms/routes/shows and save that .txt and paste here. What I'm looking for is file that contains details from shows. For some reason discovery+ US doesn't seem to include those on /shows

yeahme49 commented 3 years ago

https://us1-prod-direct.discoveryplus.com/cms/routes/shows?include=default&decorators=viewingHistory,isFavorite This is when clicking Browse

https://us1-prod-direct.discoveryplus.com/cms/collections/296530408644496528769435570882544597228?include=default&decorators=viewingHistory,isFavorite This is when clicking on the Food Network logo to just show Food Network shows

https://us1-prod-direct.discoveryplus.com/cms/routes/show/diners-drive-ins-and-dives?include=default&decorators=viewingHistory,isFavorite This is when choosing Diners, Drive-ins and Dives show

https://us1-prod-direct.discoveryplus.com/playback/v3/videoPlaybackInfo This is when choosing Episode 1 from Season 1 and the player loads

Hopefully these .txt files help. The URL show for each .txt is the URL that gets loaded for that JSON file

Dis90 commented 3 years ago

Thanks that helps a lot.

Dis90 commented 3 years ago

When you go to Food Network is there tabs named Trending, A-Z, Cooking competitions..? Can you click one of those and post url and content.

yeahme49 commented 3 years ago

There are tabs named Trending, A-Z etc but it does not load any new files while clicking on those

Dis90 commented 3 years ago

Okay that explains why I can't get those to work.

Dis90 commented 3 years ago

Actually that wasn't problem. Problem is that without login in for example Food Network listing is incomplete. All shows are missing just categories is listed. But I can use your files for testing.

When I go to address https://us1-prod-direct.discoveryplus.com/cms/routes/show/diners-drive-ins-and-dives?include=default&decorators=viewingHistory,isFavorite I got this error. Is there some headers used?

show with id diners-drive-ins-and-dives was filtered by validator, reasonCode=10

yeahme49 commented 3 years ago

x-disco-params: realm=go,siteLookupKey=dplus_us x-disco-client: WEB:UNKNOWN:dplus_us:0.0.1

those are the 2 headers, it looks like x-disco-params is not required to get that page to load but x-disco-client is required from my testing

Dis90 commented 3 years ago

Yeah some pages needs x-disco-params and some not. After adding x-disco-client to requests I now get full responses. Can you get urls and content of search and my list?

yeahme49 commented 3 years ago

https://us1-prod-direct.discoveryplus.com/cms/routes/my-list?include=default&decorators=viewingHistory,isFavorite https://us1-prod-direct.discoveryplus.com/cms/routes/search?include=default&decorators=viewingHistory,isFavorite https://us1-prod-direct.discoveryplus.com/cms/routes/search/result?include=default&decorators=viewingHistory,isFavorite&contentFilter[query]=mythbusters

Dis90 commented 3 years ago

I created branch dplus_us https://github.com/Dis90/plugin.video.discoveryplus/tree/dplus_us Could you try does login and video playback work? You know that login didn't work if you find line "Error logging in. Invalid Arkose token." from debug log.

Probably not working features:

yeahme49 commented 3 years ago

Video playback is not working. I tried watching episode 1 of airplane repo and get

2021-01-12 15:28:09.863 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Request URL: https://us1-prod-direct.discoveryplus.com/playback/v2/videoPlaybackInfo/89315 2021-01-12 15:28:09.864 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Method: get 2021-01-12 15:28:09.864 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Params: {'usePreAuth': 'true'} 2021-01-12 15:28:09.864 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Payload: None 2021-01-12 15:28:09.864 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Headers: {'x-disco-params': 'realm=go,siteLookupKey=dplus_us', 'x-disco-client': 'WEB:UNKNOWN:dplus_us:0.0.1'} 2021-01-12 15:28:09.888 T:19672 DEBUG : ------ Window Init (DialogBusy.xml) ------ 2021-01-12 15:28:10.058 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Response code: 404 2021-01-12 15:28:10.058 T:2724 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Response: b'{\n "errors" : [ {\n "status" : "404",\n "code" : "not.found",\n "id" : "vmHErKYwn6",\n "detail" : "No stream URL for video exists. Source: SONIC"\n } ]\n}'

No stream URL for video exists is the error I get inside Kodi as well.

Dis90 commented 3 years ago

So v2 videoPlayback doesn't exists .com. Try now.

yeahme49 commented 3 years ago

2021-01-12 15:57:01.979 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Request URL: https://us1-prod-direct.discoveryplus.com/playback/v3/videoPlaybackInfo/89315 2021-01-12 15:57:01.979 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Method: get 2021-01-12 15:57:01.979 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Params: {'usePreAuth': 'true'} 2021-01-12 15:57:01.979 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Payload: None 2021-01-12 15:57:01.980 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Headers: {'x-disco-params': 'realm=go,siteLookupKey=dplus_us', 'x-disco-client': 'WEB:UNKNOWN:dplus_us:0.0.1'} 2021-01-12 15:57:01.995 T:19672 DEBUG : ------ Window Init (DialogBusy.xml) ------ 2021-01-12 15:57:02.160 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Response code: 404 2021-01-12 15:57:02.160 T:19252 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Response: b'{\n "errors" : [ {\n "status" : "404",\n "code" : "missing.resource",\n "id" : "pYFPFKt2wv",\n "detail" : "v3 Version not supported"\n } ]\n}'

yeahme49 commented 3 years ago

Testing in browser, videoPlaybackInfo is a POST request with this JSON data

{ "deviceInfo": { "adBlocker": true, "hdrCapabilities": [ "SDR" ], "hwDecodingCapabilities": [], "player": { "width": 2630, "height": 1826 }, "screen": { "width": 3840, "height": 2160 }, "soundCapabilities": [ "STEREO" ] }, "videoId": "89315", "wisteriaProperties": { "advertiser": { "adId": "|92223167458192398905978408829301668405||161048906055868be2eed88099f0d06cc1209b623385b", "firstPlay": 0, "fwDid": "", "fwIsLat": 0, "fwNielsenAppId": "P5A0FD4DE-4AE6-4B22-811B-36B9BD091980", "gpaln": "" }, "appBundle": "", "device": { "language": "en", "make": "", "model": "", "name": "Chrome", "os": "Windows", "osVersion": "NT 10.0", "type": "desktop", "id": "2608fb0ce6c5d22839529b5f6019bb94" }, "platform": "desktop", "product": "dplus_us", "sessionId": "e029a1a5-27ed-4856-b1ba-e0281b86ece9", "streamProvider": { "suspendBeaconing": 0, "hlsVersion": 7, "pingConfig": 0 } } }

yeahme49 commented 3 years ago

Made some changes and video playback appears to work.

get_current_episode_info needs to send headers along with request

make_request i changed else: # post req = self.http_session.post(url, params=params, data=payload, headers=headers, json=jsonpayload) so that JSON can be sent with POST

this is the JSON that gets sent with the POST to get the video m3u8 {'deviceInfo': {'adBlocker': 'true'},'videoId': video_id,'wisteriaProperties':{'product':'dplus_us'}}

if self.locale_suffix == 'us': stream['hls_url'] = data_dict['attributes']['streaming'][0]['url'] stream['drm_enabled'] = data_dict['attributes']['streaming'][0]['protection']['drmEnabled']

needed [0] added

sorry this is kind of messy, just wanted to let you see. if you want a pull request instead i can do that

Dis90 commented 3 years ago

Please do pull request :)

I'm not sure yet how I pull this changes from dplus_us branch to master and matrix after everything US related is done. I'm little bit newbie with Git.

get_current_episode_info needs to send headers along with request

I guess get_next_episode_info also needs headers.

Did update_playback_progress work? It is used when playback is stopped.

Also can you check what url and parameters is used when adding and deleting favorites. In other regions it is {api_url}/users/me/favorites/shows/{show_id}

yeahme49 commented 3 years ago

Sorry for the delay, got the pull request created.

update_playback_progress does work, when I stopped a video it updated on the discovery plus website. Resuming videos doesn't work though. If I go to play a video, it will ask if I want to start at the beginning or the time that was left off, but it always starts at the beginning.

I will check adding/deleting favorites today. Also looking into an why some shows won't work, so far it seems like shows in the magnolia preview give an error when trying to show the episodes. If i can't figure out why I'll post some logs

EDIT: endpoint for favorites is the same and its POST for adding and DELETE for deleting

Dis90 commented 3 years ago

Thanks for pull request.

update_playback_progress does work, when I stopped a video it updated on the discovery plus website. Resuming videos doesn't work though. If I go to play a video, it will ask if I want to start at the beginning or the time that was left off, but it always starts at the beginning.

Weird it should work if it suggests to resume.

Also looking into an why some shows won't work, so far it seems like shows in the magnolia preview give an error when trying to show the episodes. If i can't figure out why I'll post some logs

Can you post name of those shows?

yeahme49 commented 3 years ago

I tried with Magnolia Table and Super Dad.

Here is snippet of log from Super Dad. It errors when doing Browse->Magnolia Network Preview->Trending->Super Dad-Episodes

2021-01-16 12:50:21.062 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Request URL: https://us1-prod-direct.discoveryplus.com/cms/routes/show/super-dad 2021-01-16 12:50:21.062 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Method: get 2021-01-16 12:50:21.062 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Params: {'decorators': 'viewingHistory', 'include': 'default'} 2021-01-16 12:50:21.062 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Payload: None 2021-01-16 12:50:21.062 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Headers: {'x-disco-params': 'realm=go,siteLookupKey=dplus_us', 'x-disco-client': 'WEB:UNKNOWN:dplus_us:0.0.1'} 2021-01-16 12:50:21.062 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: JSON Payload: None 2021-01-16 12:50:21.308 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Response code: 200 2021-01-16 12:50:21.309 T:20088 DEBUG : [plugin.video.discoveryplus-1.3.2+matrix.1]: Response: b'{"data":{"attributes":{\n "canonical" : true,\n "url" : "/show/super-dad"\n},"id":"164679836322950197988796807764660202509","relationships":{"target":{"data":{"id":"308953312918263275172030705745619495572","type":"page"}}},"type":"route"},"included":[{"attributes":{\n "alternateId" : "magnolia-network-preview",\n "channelCode" : "MGNP",\n "contentDescriptors" : [ ],\n "contentRatings" : [ ],\n "customAttributes" : { },\n "description" : " ",\n "hasLiveStream" : false,\n "identifiers" : { },\n "longDescription" : " ",\n "name" : "Magnolia Network Preview",\n "packages" : [ ]\n},"id":"107","relationships":{"images":{"data":[{"id":"channel_107_cb45a520-64ff-340c-bc35-17b797452990_default","type":"image"},{"id":"channel_107_ae9c38dd-c8af-3b90-8b5b-c7703ab46103_cover_artwork","type":"image"},{"id":"channel_107_d3f28f6f-7991-3810-a5ea-754297661fe2_logo_attribution","type":"image"},{"id":"channel_107_4ca703eb-9090-3226-b71e-a90054014c4c_logo","type":"image"},{"id":"channel_107_3d81f079-34b5-37bd-868a-ae1e92c6ee87_logo_alternate","type":"image"},{"id":"channel_107_13782b97-97df-32fe-a533-7fc1204ed4f4_logo_grayscale","type":"image"}]},"routes":{"data":[{"id":"851e8cba41ef26e3f7d9b98e0f422a38a0315633b9a3136f8845c7a47cf6bde5","type":"route"}]}},"type":"channel"},{"attributes":{\n "alternateId" : "animal-planet",\n "channelCode" : "APL",\n "contentDescriptors" : [ ],\n "contentRatings" : [ {\n "code" : "TV-PG",\n "system" : "US-TV"\n }, {\n "code" : "TV-PG",\n "system" : "US-TV"\n } ],\n "customAttributes" : { },\n "description" : " ",\n "hasLiveStream" : true,\n "identifiers" : {\n "ssaiVideoId" : "3e844fb7bd1a46e4b5512d288ad43377"\n },\n "longDescription" : " ",\n "name" : "Animal Planet",\n "packages" : [ "AnimalPlanet" ]\n},"id":"84","relationships":{"contentPackages":{"data":[{"id":"AnimalPlanet","type":"package"}]},"images":{"data":[{"id":"channel_84_a4599a71-5c01-376b-b158-e2b2a5cd49b1_default","type":"image"},{"id":"channel_84_059e967a-a580-3564-93e1-53f1638d5feb_cover_artwork","type":"image"},{"id":"channel_84_9fb1c51d-66f4-3f99-a56c-82ff8a22950b_logo_attribution","type":"image"},{"id":"channel_84_38627fbb-c07f-3660-9a2b-cc61ff4e2ee1_logo","type":"image"},{"id":"channel_84_a288a7a5-cc4d-344d-88ec-7668d3799f80_logo_grayscale","type":"image"},{"id":"channel_84_5abbe18b-e732-341d-a715-adcfb4f62bed_logo_alternate","type":"image"}]},"routes":{"data":[{"id":"b943b4eabcf8e6d887fc2b3e4918e0d27421c36dd83e9401c795827a3f7a642c","type":"route"}]}},"type":"channel"},{"attributes":{\n "alternateId" : "diy-network",\n "channelCode" : "DIY",\n "contentDescriptors" : [ ],\n "contentRatings" : [ {\n "code" : "TV-PG",\n "system" : "US-TV"\n }, {\n "code" : "TV-PG",\n "system" : "US-TV"\n } ],\n "customAttributes" : { },\n "description" : " ",\n "hasLiveStream" : true,\n "identifiers" : {\n "ssaiVideoId" : "480d1ff42e924413990ee0eeb693ce9f"\n },\n "longDescription" : " ",\n "name" : "DIY Network",\n "packages" : [ "DiyNetwork" ]\n},"id":"88","relationships":{"contentPackages":{"data":[{"id":"DiyNetwork","type":"package"}]},"images":{"data":[{"id":"channel_88_fc939454-642b-3fb3-92f7-dabb40f33d43_cover_artwork","type":"image"},{"id":"channel_88_b86a281f-ef75-3e38-ae93-7997a52d5b3b_default","type":"image"},{"id":"channel_88_619bf98d-a938-39f5-8814-4002b4389b95_logo_attribution","type":"image"},{"id":"channel_88_e118c8c7-1f79-361e-b667-160ace6b7c9f_logo","type":"image"},{"id":"channel_88_9fc2d809-182c-3e03-a4bb-ec932f826865_logo_grayscale","type":"image"},{"id":"channel_88_9904141b-9436-35cf-9404-894e7c509b97_logo_alternate","type":"image"}]},"routes":{"data":[{"id":"6f1a2bfb9123f5fefb2d7f254063634f7b8c39cc703d9d9f10e95056fb792000","type":"route"}]}},"type":"channel"},{"attributes":{\n "alias" : "show-extras-super-dad-web",\n "component" : {\n "id" : "tabbed-content",\n "templateId" : "primary"\n },\n "kind" : "automatic",\n "name" : "show-extras-super-dad-web",\n "published" : "2020-12-29T04:33:13.830746Z",\n "revision" : 0,\n "state" : "published",\n "title" : "Extras"\n},"id":"113592752147346451705052748709207041840","meta":{\n "itemsCurrentPage" : 1,\n "itemsPageSize" : 10,\n "itemsTotalPages" : 1\n},"relationships":{"items":{"data":[{"id":"9aebf7fc794c7c06b488bcd697bee52df18ef8adebfb9e4deff06b6dd170b564","type":"collectionItem"}]}},"type":"collection"},{"attributes":{\n "alias" : "show-about-super-dad",\n "component" : {\n "id" : "tabbed-component-details",\n "templateId" : "basic"\n },\n "kind" : "manual",\n "name" : "show-about-super-dad",\n "published" : "2020-12-29T04:33:46.312209Z",\n "revision" : 0,\n "state" : "published",\n "title" : "About the Show"\n},"id":"195259463153962764250523337809700033750","meta":{\n "itemsTotalPages" : 1\n},"relationships":{"items":{"data":[{"id":"6ef2b8f1a3cddb02188fbbdaf9e856225e3d619afe9df525607414c27b0a9169","type":"collectionItem"}]}},"type":"collection"},{"attributes":{\n "alias" : "show-hero-super-dad",\n "component" : {\n "id" : "hero",\n "templateId" : "secondary"\n },\n "kind" : "manual",\n "name" : "show-hero-super-dad",\n "published" : "2020-12-29T04:28:20.993666Z",\n "revision" : 0,\n "state" : "published"\n},"id":"235849961306540820283536216748337616075","meta":{\n "itemsTotalPages" : 1\n},"relationships":{"items":{"data":[{"id":"6d02dcba813a3307430c8046c98f1d9750b14162ebc2f9f876f4ebc05751df35","type":"collectionItem"}]}},"type":"collection"},{"attributes":{\n "alias" : "show-episodes-super-dad",\n "component" : {\n "filters" : [ {\n "id" : "seasonNumber",\n "initiallySelectedOptionIds" : [ "1" ],\n "l10nkey" : "seasonNumber",\n "multiSelect" : false,\n "options" : [ {\n "id" : "1",\n "parameter" : "pf[seasonNumber]=1",\n "value" : "1"\n } ]\n } ],\n "id" : "tabbed-content",\n "templateId" : "primary"\n },\n "kind" : "automatic",\n "name" : "show-episodes-super-dad",\n "published" : "2020-12-29T04:29:02.281333Z",\n "revision" : 0,\n "state" : "published",\n "title" : "Episodes"\n},"id":"2416925543383789611504437476075883317","meta":{\n "itemsCurrentPage" : 1,\n "itemsPageSize" : 100,\n "itemsTotalPages" : 1\n},"relationships":{"items":{"data":[{"id":"608e0147b6823990e8a1e8bf3f87e215bf014fcdbb7f4ad14703813f651eecbe","type":"collectionItem"}]}},"type":"collection"},{"attributes":{\n "alias" : "show-super-dad-tabbed-component",\n "component" : {\n "id" : "tabbed-component",\n "templateId" : "standard"\n },\n "kind" : "manual",\n "name" : "show-super-dad-tabbed-component",\n "published" : "2020-12-29T04:34:19.860156Z",\n "revision" : 0,\n "state" : "published"\n},"id":"275697655720519752855610743297963739823","meta":{\n "itemsTotalPages" : 1\n},"relationships":{"items":{"data":[{"id":"c9c5654a3f98088a14c4125180a960bd000d02ec0cedd26f54ea36e36f55c163","type":"collectionItem"},{"id":"3aee0515c614137bc541833a59df512c417c8bc6e859b92bc036dc8fc8978144","type":"collectionItem"},{"id":"e00059c3d2010493e6ecc02fd9ea681fab063576ef2db0e8af459ba7f5bbddcf","type":"collectionItem"},{"id":"0b22a214f392b1879f2107eb5c9758f2b67a58356e49c74304ad55625fb8dbeb","type":"collectionItem"}]}},"type":"collection"},{"attributes":{\n "alias" : "show-ymal-super-dad",\n "component" : {\n "id" : "content-grid",\n "templateId" : "poster-primary"\n },\n "kind" : "manual",\n "name" : "show-ymal-super-dad",\n "published" : "2020-12-29T03:02:08.970637Z",\n "revision" : 0,\n "state" : "published",\n "title" : "You May Also Like"\n},"id":"46581010971092095326043100630473008869","meta":{\n "itemsTotalPages" : 1\n},"relationships":{"items":{"data":[{"id":"97b084d6e53871f8aa92c25ba7347c3411db90cc34f8dfec34ac9c4de7f2c9ef","type":"collectionItem"},{"id":"b9c0a5e1b986979fc105430b6fdf809213ebc5a5c00b1d2e909812278d01c837","type":"collectionItem"},{"id":"fbf9db275f15e4d8e6fe4656cb40af1adc0b36e81da3bada7ae31c2993fcf4e1","type":"collectionItem"},{"id":"4d723ca8174b7fe26473156f97706c47eec53299089c78b7e1fcb25e72a3dc8f","type":"collectionItem"},{"id":"150936a1ca86485ec540c124d5c52865163b44d1a17b7972424e35785066cc29","type":"collectionItem"},{"id":"a6b2e7a2ef6170eca1662b16807af288566dc696d4a94ea6a6237084121150f3","type":"collectionItem"},{"id":"0c0cf0c276ab7c13e250c4f4748a3cadc71057ef36edba1f566fe55a5babde04","type":"collectionItem"},{"id":"7874a391fbfc04c3c9a66c3fece6d9805c1e1134c368da1efa8902a5cb1e5d55","type":"collectionItem"}]}},"type":"collection"},{"attributes":{\n "hidden" : false,\n "hints" : [ "hide-for-apps" ]\n},"id":"0b22a214f392b1879f2107eb5c9758f2b67a58356e49c74304ad55625fb8dbeb","relationships":{"collection":{"data":{"id":"46581010971092095326043100630473008869","type":"collection"}}},"type":"collectionItem"},{"attributes":{ },"id":"0c0cf0c276ab7c13e250c4f4748a3cadc71057ef36edba1f566fe55a5babde04","relationships":{"show":{"data":{"id":"2422","type":"show"}}},"type":"collectionItem"},{"attributes":{ },"id":"150936a1ca86485ec540c124d5c52865163b44d1a17b7972424e35785066cc29","relationships":{"show":{"data":{"id":"1719","type":"show"}}},"type":"collectionItem"},{"attributes":{\n "hidden" : false,\n "hints" : [ "hide-for-apps" ]\n},"id":"3aee0515c614137bc541833a59df512c417c8bc6e859b92bc036dc8fc8978144","relationships":{"collection":{"data":{"id":"113592752147346451705052748709207041840","type":"collection"}}},"type":"collectionItem"},{"attributes":{ },"id":"4d723ca8174b7fe26473156f97706c47eec53299089c78b7e1fcb25e72a3dc8f","relationships":{"show":{"data":{"id":"12841","type":"show"}}},"type":"collectionItem"},{"id":"608e0147b6823990e8a1e8bf3f87e215bf014fcdbb7f4ad14703813f651eecbe","relationships":{"video":{"data":{"id":"1166418","type":"video"}}},"type":"collectionItem"},{"attributes":{ },"id":"6d02dcba813a3307430c8046c98f1d9750b14162ebc2f9f876f4ebc05751df35","relationships":{"show":{"data":{"id":"12865","type":"show"}}},"type":"collectionItem"},{"attributes":{ },"id":"6ef2b8f1a3cddb02188fbbdaf9e856225e3d619afe9df525607414c27b0a9169","relationships":{"show":{"data":{"id":"12865","type":"show"}}},"type":"collectionItem"},{"attributes":{ },"id":"7874a391fbfc04c3c9a66c3fece6d9805c1e1134c368da1efa8902a5cb1e5d55","relationships":{"show":{"data":{"id":"12272","type":"show"}}},"type":"collectionItem"},{"attributes":{ },"id":"97b084d6e53871f8aa92c25ba7347c3411db90cc34f8dfec34ac9c4de7f2c9ef","relationships":{"show":{"data":{"id":"12842","type":"show"}}},"type":"collectionItem"},{"id":"9aebf7fc794c7c06b488bcd697bee52df18ef8adebfb9e4deff06b6dd170b564","relationships":{"video":{"data":{"id":"1166347","type":"video"}}},"type":"collectionItem"},{"attributes":{ },"id":"a6b2e7a2ef6170eca1662b16807af288566dc696d4a94ea6a6237084121150f3","relationships":{"show":{"data":{"id":"12402","type":"show"}}},"type":"collectionItem"},{"attributes":{ },"id":"b9c0a5e1b986979fc105430b6fdf809213ebc5a5c00b1d2e909812278d01c837","relationships":{"show":{"data":{"id":"12940","type":"show"}}},"type":"collectionItem"},{"attributes":{ },"id":"c9c5654a3f98088a14c4125180a960bd000d02ec0cedd26f54ea36e36f55c163","relationships":{"collection":{"data":{"id":"2416925543383789611504437476075883317","type":"collection"}}},"type":"collectionItem"},{"attributes":{ },"id":"e00059c3d2010493e6ecc02fd9ea681fab063576ef2db0e8af459ba7f5bbddcf","relationships":{"collection":{"data":{"id":"195259463153962764250523337809700033750","type":"collection"}}},"type":"collectionItem"},{"attributes":{ },"id":"fbf9db275f15e4d8e6fe4656cb40af1adc0b36e81da3bada7ae31c2993fcf4e1","relationships":{"show":{"data":{"id":"12832","type":"show"}}},"type":"collectionItem"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_grayscale",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/16/13782b97-97df-32fe-a533-7fc1204ed4f4.png",\n "width" : 500\n},"id":"channel_107_13782b97-97df-32fe-a533-7fc1204ed4f4_logo_grayscale","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_alternate",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/16/3d81f079-34b5-37bd-868a-ae1e92c6ee87.png",\n "width" : 500\n},"id":"channel_107_3d81f079-34b5-37bd-868a-ae1e92c6ee87_logo_alternate","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/16/4ca703eb-9090-3226-b71e-a90054014c4c.png",\n "width" : 500\n},"id":"channel_107_4ca703eb-9090-3226-b71e-a90054014c4c_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/30/ae9c38dd-c8af-3b90-8b5b-c7703ab46103.jpeg",\n "width" : 3000\n},"id":"channel_107_ae9c38dd-c8af-3b90-8b5b-c7703ab46103_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/30/cb45a520-64ff-340c-bc35-17b797452990.jpeg",\n "width" : 3840\n},"id":"channel_107_cb45a520-64ff-340c-bc35-17b797452990_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_attribution",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/16/d3f28f6f-7991-3810-a5ea-754297661fe2.png",\n "width" : 500\n},"id":"channel_107_d3f28f6f-7991-3810-a5ea-754297661fe2_logo_attribution","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/059e967a-a580-3564-93e1-53f1638d5feb.jpeg",\n "width" : 3000\n},"id":"channel_84_059e967a-a580-3564-93e1-53f1638d5feb_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/11/04/38627fbb-c07f-3660-9a2b-cc61ff4e2ee1.png",\n "width" : 843\n},"id":"channel_84_38627fbb-c07f-3660-9a2b-cc61ff4e2ee1_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_alternate",\n "src" : "https://us1-prod-images.disco-api.com/2020/11/04/5abbe18b-e732-341d-a715-adcfb4f62bed.png",\n "width" : 500\n},"id":"channel_84_5abbe18b-e732-341d-a715-adcfb4f62bed_logo_alternate","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_attribution",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/06/9fb1c51d-66f4-3f99-a56c-82ff8a22950b.png",\n "width" : 926\n},"id":"channel_84_9fb1c51d-66f4-3f99-a56c-82ff8a22950b_logo_attribution","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_grayscale",\n "src" : "https://us1-prod-images.disco-api.com/2020/11/04/a288a7a5-cc4d-344d-88ec-7668d3799f80.png",\n "width" : 843\n},"id":"channel_84_a288a7a5-cc4d-344d-88ec-7668d3799f80_logo_grayscale","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/a4599a71-5c01-376b-b158-e2b2a5cd49b1.jpeg",\n "width" : 3840\n},"id":"channel_84_a4599a71-5c01-376b-b158-e2b2a5cd49b1_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_attribution",\n "src" : "https://us1-prod-images.disco-api.com/2020/11/04/619bf98d-a938-39f5-8814-4002b4389b95.png",\n "width" : 1024\n},"id":"channel_88_619bf98d-a938-39f5-8814-4002b4389b95_logo_attribution","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_alternate",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/06/9904141b-9436-35cf-9404-894e7c509b97.png",\n "width" : 500\n},"id":"channel_88_9904141b-9436-35cf-9404-894e7c509b97_logo_alternate","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo_grayscale",\n "src" : "https://us1-prod-images.disco-api.com/2020/11/04/9fc2d809-182c-3e03-a4bb-ec932f826865.png",\n "width" : 809\n},"id":"channel_88_9fc2d809-182c-3e03-a4bb-ec932f826865_logo_grayscale","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/b86a281f-ef75-3e38-ae93-7997a52d5b3b.jpeg",\n "width" : 3840\n},"id":"channel_88_b86a281f-ef75-3e38-ae93-7997a52d5b3b_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 500,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/11/04/e118c8c7-1f79-361e-b667-160ace6b7c9f.png",\n "width" : 809\n},"id":"channel_88_e118c8c7-1f79-361e-b667-160ace6b7c9f_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/fc939454-642b-3fb3-92f7-dabb40f33d43.jpeg",\n "width" : 3000\n},"id":"channel_88_fc939454-642b-3fb3-92f7-dabb40f33d43_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/13/0920f84d-171a-345f-806e-2cd2cc2f9c29.jpeg",\n "width" : 2560\n},"id":"show_12272_0920f84d-171a-345f-806e-2cd2cc2f9c29_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/13/350b0d11-e883-3b3e-af13-02674db9d280.jpeg",\n "width" : 3000\n},"id":"show_12272_350b0d11-e883-3b3e-af13-02674db9d280_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/13/4bd99765-6ac4-38f9-b0e9-0c1023561f95.jpeg",\n "width" : 3840\n},"id":"show_12272_4bd99765-6ac4-38f9-b0e9-0c1023561f95_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 585,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/13/4ff363a6-f10e-30f0-a621-53fd87cef52d.png",\n "width" : 1800\n},"id":"show_12272_4ff363a6-f10e-30f0-a621-53fd87cef52d_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/13/eb1bf341-b159-3765-8f7e-7af6f138dd08.jpeg",\n "width" : 2560\n},"id":"show_12272_eb1bf341-b159-3765-8f7e-7af6f138dd08_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/25/0a07843b-1740-3816-971c-426c9d66e7be.jpeg",\n "width" : 2560\n},"id":"show_12402_0a07843b-1740-3816-971c-426c9d66e7be_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 680,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/25/2dca4697-6a77-3904-980a-4cfa4f91b187.png",\n "width" : 1800\n},"id":"show_12402_2dca4697-6a77-3904-980a-4cfa4f91b187_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/25/464c232e-59e4-3dde-a238-ee0c4e7f7a1a.jpeg",\n "width" : 3000\n},"id":"show_12402_464c232e-59e4-3dde-a238-ee0c4e7f7a1a_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/25/d768ccd5-7c83-377d-b103-69c70681ff35.jpeg",\n "width" : 2560\n},"id":"show_12402_d768ccd5-7c83-377d-b103-69c70681ff35_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/08/25/e5a08176-9425-3a97-be11-da5e0527f701.jpeg",\n "width" : 3840\n},"id":"show_12402_e5a08176-9425-3a97-be11-da5e0527f701_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 425,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/402e7053-b206-3e3e-ad6d-9eb58f574817.png",\n "width" : 1800\n},"id":"show_12832_402e7053-b206-3e3e-ad6d-9eb58f574817_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/77c25030-1733-3ebd-be0b-0cd1713e5f8d.jpeg",\n "width" : 2560\n},"id":"show_12832_77c25030-1733-3ebd-be0b-0cd1713e5f8d_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/92964489-4f62-32ab-8d7f-5380ab62126d.jpeg",\n "width" : 3840\n},"id":"show_12832_92964489-4f62-32ab-8d7f-5380ab62126d_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/9d238317-5fff-378f-93b7-96de7d0a9dab.jpeg",\n "width" : 2560\n},"id":"show_12832_9d238317-5fff-378f-93b7-96de7d0a9dab_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/e6d7092d-1d60-3fb4-b90f-829af12731f4.jpeg",\n "width" : 3000\n},"id":"show_12832_e6d7092d-1d60-3fb4-b90f-829af12731f4_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 900,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/1b1267c4-ca99-3184-aa78-8024713ad834.png",\n "width" : 1076\n},"id":"show_12841_1b1267c4-ca99-3184-aa78-8024713ad834_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/6f49d9b3-2923-34dc-8f06-d76ea303a111.jpeg",\n "width" : 3840\n},"id":"show_12841_6f49d9b3-2923-34dc-8f06-d76ea303a111_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/b2b4ea39-8038-32f3-931f-14dcd94f91cb.jpeg",\n "width" : 2560\n},"id":"show_12841_b2b4ea39-8038-32f3-931f-14dcd94f91cb_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/d5db9359-bb75-3dcf-b448-a8e6adca2c26.jpeg",\n "width" : 3000\n},"id":"show_12841_d5db9359-bb75-3dcf-b448-a8e6adca2c26_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/f4185ecf-0e8d-3c62-8245-a0b164affc45.jpeg",\n "width" : 2560\n},"id":"show_12841_f4185ecf-0e8d-3c62-8245-a0b164affc45_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/5a5551a9-cfdd-3c79-bdda-671e709fa32b.jpeg",\n "width" : 3000\n},"id":"show_12842_5a5551a9-cfdd-3c79-bdda-671e709fa32b_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/62a94a5a-db93-39cf-848b-b0ed1dd748d1.jpeg",\n "width" : 3840\n},"id":"show_12842_62a94a5a-db93-39cf-848b-b0ed1dd748d1_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 261,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/ddce6b99-4926-354b-83e8-e1feb98c8709.png",\n "width" : 1800\n},"id":"show_12842_ddce6b99-4926-354b-83e8-e1feb98c8709_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/e669dbf9-b498-3e24-b172-4f5e29320cdb.jpeg",\n "width" : 2560\n},"id":"show_12842_e669dbf9-b498-3e24-b172-4f5e29320cdb_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/23/eb2765db-b461-35b9-ace7-d7b2149d6d87.jpeg",\n "width" : 2560\n},"id":"show_12842_eb2765db-b461-35b9-ace7-d7b2149d6d87_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/24/176f3cf9-55b6-3590-a947-149994dcd650.jpeg",\n "width" : 3840\n},"id":"show_12865_176f3cf9-55b6-3590-a947-149994dcd650_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/24/4cbd738a-23cf-3660-bc84-45b8f030a8fd.jpeg",\n "width" : 2560\n},"id":"show_12865_4cbd738a-23cf-3660-bc84-45b8f030a8fd_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 900,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/24/871aeae1-5e6b-38e6-920e-83a2409db00d.png",\n "width" : 1287\n},"id":"show_12865_871aeae1-5e6b-38e6-920e-83a2409db00d_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/24/9a96b9fc-b198-3879-b76f-cf5e0093650d.jpeg",\n "width" : 3000\n},"id":"show_12865_9a96b9fc-b198-3879-b76f-cf5e0093650d_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/24/d0ae3502-e630-3593-9f69-2a03e8e90212.jpeg",\n "width" : 2560\n},"id":"show_12865_d0ae3502-e630-3593-9f69-2a03e8e90212_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/4f2463cd-2840-30d0-a1de-94752931a56d.jpeg",\n "width" : 3000\n},"id":"show_12940_4f2463cd-2840-30d0-a1de-94752931a56d_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/8485251e-eb73-3d59-8a11-2eff506e0b1c.jpeg",\n "width" : 3840\n},"id":"show_12940_8485251e-eb73-3d59-8a11-2eff506e0b1c_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/b6b04ceb-34a7-3cc5-ad1a-635b94a76bb5.jpeg",\n "width" : 2560\n},"id":"show_12940_b6b04ceb-34a7-3cc5-ad1a-635b94a76bb5_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/dbc97d5e-d853-372a-bed6-919e137ad5ab.jpeg",\n "width" : 2560\n},"id":"show_12940_dbc97d5e-d853-372a-bed6-919e137ad5ab_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 233,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/28/ff82fa03-dcd0-313b-858a-b2ca6200eb29.png",\n "width" : 1800\n},"id":"show_12940_ff82fa03-dcd0-313b-858a-b2ca6200eb29_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/07/01/09bbc8d0-4a8d-3369-91fe-199e58b62398.jpeg",\n "width" : 2560\n},"id":"show_1719_09bbc8d0-4a8d-3369-91fe-199e58b62398_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 684,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/07/01/0e6e42fb-29a7-36c6-b22e-0b793bccaed2.png",\n "width" : 1800\n},"id":"show_1719_0e6e42fb-29a7-36c6-b22e-0b793bccaed2_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/07/29/10cd7d6d-9aac-3c5a-bd35-607e69289c38.jpeg",\n "width" : 2560\n},"id":"show_1719_10cd7d6d-9aac-3c5a-bd35-607e69289c38_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/07/01/50f6999a-a5e5-341a-9eaa-e0b651002eb3.png",\n "width" : 3000\n},"id":"show_1719_50f6999a-a5e5-341a-9eaa-e0b651002eb3_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/07/01/9d8d025d-3270-3ecc-9f57-ba93db5f2ba8.jpeg",\n "width" : 3840\n},"id":"show_1719_9d8d025d-3270-3ecc-9f57-ba93db5f2ba8_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 2160,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/06/29/0ac17973-85c6-387a-bb82-dd92aac18a2d.jpeg",\n "width" : 3840\n},"id":"show_2422_0ac17973-85c6-387a-bb82-dd92aac18a2d_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster",\n "src" : "https://us1-prod-images.disco-api.com/2020/07/29/311d3f04-b1b9-33f2-83c3-7317ff7babe9.jpeg",\n "width" : 2560\n},"id":"show_2422_311d3f04-b1b9-33f2-83c3-7317ff7babe9_poster","type":"image"},{"attributes":{\n "default" : true,\n "height" : 490,\n "kind" : "logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/06/29/51f7a3be-7564-3d23-aa47-7e3d6d23353d.png",\n "width" : 1800\n},"id":"show_2422_51f7a3be-7564-3d23-aa47-7e3d6d23353d_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3000,\n "kind" : "cover_artwork",\n "src" : "https://us1-prod-images.disco-api.com/2020/06/29/b5b7f5ef-254c-3536-a1fb-94d853b982da.png",\n "width" : 3000\n},"id":"show_2422_b5b7f5ef-254c-3536-a1fb-94d853b982da_cover_artwork","type":"image"},{"attributes":{\n "default" : true,\n "height" : 3840,\n "kind" : "poster_with_logo",\n "src" : "https://us1-prod-images.disco-api.com/2020/06/29/c8c1079f-7f98-345e-87fd-6ffeb1bf06cd.jpeg",\n "width" : 2560\n},"id":"show_2422_c8c1079f-7f98-345e-87fd-6ffeb1bf06cd_poster_with_logo","type":"image"},{"attributes":{\n "default" : true,\n "height" : 1080,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2021/01/02/1b95f49b-92f2-3bd1-8312-09f06c44efcb.jpeg",\n "width" : 1920\n},"id":"video_1166347_1b95f49b-92f2-3bd1-8312-09f06c44efcb_default","type":"image"},{"attributes":{\n "default" : true,\n "height" : 1080,\n "kind" : "default",\n "src" : "https://us1-prod-images.disco-api.com/2020/12/26/0d0b76e2-2ed5-3f4d-8aa3-2441dbc52cfc.jpeg",\n "width" : 1920\n},"id":"video_1166418_0d0b76e2-2ed5-3f4d-8aa3-2441dbc52cfc_default","type":"image"},{"attributes":{\n "color" : "#ffffff",\n "labelPriority" : 1,\n "labelVisible" : false,\n "name" : "Magnolia Net Preview"\n},"id":"MagnoliaNetPreview","type":"package"},{"attributes":{\n "alias" : "show-page-super-dad",\n "component" : {\n "id" : "page",\n "templateId" : "primary"\n },\n "name" : "show-page-super-dad",\n "pageMetadataTitle" : "Super Dad",\n "published" : "2020-12-29T04:31:24.105437Z",\n "revision" : 0,\n "state" : "published",\n "title" : "Super Dad"\n},"id":"308953312918263275172030705745619495572","relationships":{"items":{"data":[{"id":"a54954ae982b387f98e7354e1a18e6b33ee71e72e916b116231f32801c13c5b5","type":"pageItem"},{"id":"da186180da5a45f7ebc7f9373d815f581ceeeab31060519e9c303e28acd4c939","type":"pageItem"}]},"routes":{"data":[{"id":"164679836322950197988796807764660202509","type":"route"}]}},"type":"page"},{"attributes":{ },"id":"a54954ae982b387f98e7354e1a18e6b33ee71e72e916b116231f32801c13c5b5","relationships":{"collection":{"data":{"id":"235849961306540820283536216748337616075","type":"collection"}}},"type":"pageItem"},{"attributes":{\n "hidden" : false,\n "hints" : [ "hide-for-connected-devices" ]\n},"id":"da186180da5a45f7ebc7f9373d815f581ceeeab31060519e9c303e28acd4c939","relationships":{"collection":{"data":{"id":"275697655720519752855610743297963739823","type":"collection"}}},"type":"pageItem"},{"attributes":{\n "canonical" : true,\n "url" : "/show/first-time-fixer"\n},"id":"15d96fe70423fc8fc766fb08f95f41bfc7c2e36e9b925183d76763883e6cb392","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/home-on-the-road-with-johnnyswim"\n},"id":"1d31408e4d2e6981eb6bd59afb7cace66eb8d555e6c883549e2ed50ba9530627","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/treehouse-masters"\n},"id":"2755576555b0d89a42fa94de190ec683a49a2f49b78426bdcab95dc1c714d57a","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/video/super-dad/super-dad-trailer"\n},"id":"29fabf5e5caf9c1f18ac0c0095478fc97a2009557266368ee2cb4816d271d4e3","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/super-dad"\n},"id":"2f7953f303607653ad754628a94a54e46b645d8e2e228fb2b15bb7f13097a276","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/video/super-dad/skate-ramp-for-six"\n},"id":"38af3976b9b35f949a47b72d5966823e0a856f0227311a3b5115d05d4ac59c4b","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/restoration-road-with-clint-harp"\n},"id":"43a8d01c673ad4348fc5d1e2897978801c7a8a3c6f46fe9ed3e2b02e7557c593","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/maine-cabin-masters"\n},"id":"50bac306a6a1638227f5ccae4305f5aeef45a69fb7f23855caf68cad0aad3b3e","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/the-fieldhouse"\n},"id":"5ab85fa21e1f98b121a13d79dd9f972e77235bfab6aa6f0f3fd7e1db612fc039","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/channel/diy-network"\n},"id":"6f1a2bfb9123f5fefb2d7f254063634f7b8c39cc703d9d9f10e95056fb792000","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/channel/magnolia-network-preview"\n},"id":"851e8cba41ef26e3f7d9b98e0f422a38a0315633b9a3136f8845c7a47cf6bde5","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/genre/home"\n},"id":"8673539d838cc4e2d63f84ccacbea439291b004277e544080b97b1e2cc009541","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/genre/lifestyle"\n},"id":"a8d2c0b0e9a4f879e7a6082557dce569f4676440f515c257744a130e12f8df83","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/channel/animal-planet"\n},"id":"b943b4eabcf8e6d887fc2b3e4918e0d27421c36dd83e9401c795827a3f7a642c","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/the-vanilla-ice-project"\n},"id":"bd7b3f725ae5beea4e36e8429e9697e1ca3b45149a1609af1c33286981cb50c7","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/genre/nature-animals"\n},"id":"bdb5cfe24dddee72ae805f23c154f984b2ebd7b83a84f2b499405d7ae9c67863","type":"route"},{"attributes":{\n "canonical" : true,\n "url" : "/show/stone-house-revival"\n},"id":"c025c29078244c798f24d02f885b0294a869b10b27a765bf944a5a4b26752264","type":"route"},{"attributes":{\n "alternateId" : "maine-cabin-masters",\n "analyticsId" : "go_12272",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "A family of builders restores abandoned cabins in the woods of Maine.",\n "episodeCount" : 63,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "Builder Chase Morrill teams up with his brother, sister and best friend to find and restore abandoned cabins buried deep in the remote woods of Maine.",\n "name" : "Maine Cabin Masters",\n "newestEpisodePublishStart" : "2020-05-25T04:00:00Z",\n "seasonNumbers" : [ 1, 2, 3, 4, 5 ],\n "subtitles" : [ ],\n "videoCount" : 63,\n "webExclusive" : false\n},"id":"12272","relationships":{"alternateChannels":{"data":[{"id":"84","type":"channel"},{"id":"76","type":"channel"},{"id":"90","type":"channel"}]},"images":{"data":[{"id":"show_12272_4bd99765-6ac4-38f9-b0e9-0c1023561f95_default","type":"image"},{"id":"show_12272_350b0d11-e883-3b3e-af13-02674db9d280_cover_artwork","type":"image"},{"id":"show_12272_eb1bf341-b159-3765-8f7e-7af6f138dd08_poster_with_logo","type":"image"},{"id":"show_12272_4ff363a6-f10e-30f0-a621-53fd87cef52d_logo","type":"image"},{"id":"show_12272_0920f84d-171a-345f-806e-2cd2cc2f9c29_poster","type":"image"}]},"primaryChannel":{"data":{"id":"88","type":"channel"}},"routes":{"data":[{"id":"50bac306a6a1638227f5ccae4305f5aeef45a69fb7f23855caf68cad0aad3b3e","type":"route"}]},"seasons":{"data":[{"id":"9934","type":"season"},{"id":"10181","type":"season"},{"id":"10201","type":"season"},{"id":"9931","type":"season"},{"id":"9896","type":"season"}]},"txGenres":{"data":[{"id":"682d2c52-ab9b-4033-ab49-6bfe2b3ef5ac","type":"taxonomyNode"},{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "treehouse-masters",\n "analyticsId" : "go_12402",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "Pete Nelson creates incredible homes and businesses in nature\'s canopy.",\n "episodeCount" : 98,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "Pete Nelson and his merry band of treehouse men make up a team of designers, carpenters and builders who create the most magnificent, whimsical, staggering, spectacular, and jaw-dropping treehouses all around the world.",\n "name" : "Treehouse Masters",\n "newestEpisodePublishStart" : "2020-12-01T16:00:00Z",\n "seasonNumbers" : [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ],\n "subtitles" : [ ],\n "videoCount" : 98,\n "webExclusive" : false\n},"id":"12402","relationships":{"alternateChannels":{"data":[{"id":"76","type":"channel"},{"id":"80","type":"channel"},{"id":"88","type":"channel"}]},"images":{"data":[{"id":"show_12402_464c232e-59e4-3dde-a238-ee0c4e7f7a1a_cover_artwork","type":"image"},{"id":"show_12402_e5a08176-9425-3a97-be11-da5e0527f701_default","type":"image"},{"id":"show_12402_d768ccd5-7c83-377d-b103-69c70681ff35_poster_with_logo","type":"image"},{"id":"show_12402_2dca4697-6a77-3904-980a-4cfa4f91b187_logo","type":"image"},{"id":"show_12402_0a07843b-1740-3816-971c-426c9d66e7be_poster","type":"image"}]},"primaryChannel":{"data":{"id":"84","type":"channel"}},"routes":{"data":[{"id":"2755576555b0d89a42fa94de190ec683a49a2f49b78426bdcab95dc1c714d57a","type":"route"}]},"seasons":{"data":[{"id":"10867","type":"season"},{"id":"10856","type":"season"},{"id":"10850","type":"season"},{"id":"10868","type":"season"},{"id":"10473","type":"season"},{"id":"10854","type":"season"},{"id":"10870","type":"season"},{"id":"10855","type":"season"},{"id":"10869","type":"season"},{"id":"10860","type":"season"},{"id":"10818","type":"season"}]},"txGenres":{"data":[{"id":"81adf4e4-89f2-4101-8368-8da4a0b7968b","type":"taxonomyNode"},{"id":"682d2c52-ab9b-4033-ab49-6bfe2b3ef5ac","type":"taxonomyNode"},{"id":"92bf811e-3469-4873-b78e-71013a333d1e","type":"taxonomyNode"},{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"},{"id":"4f21c426-2c4e-42e6-ba6f-56368b5817aa","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "the-fieldhouse",\n "analyticsId" : "go_12832",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "Justin Bane and his staff change lives at an Abilene, TX, fitness facility.",\n "episodeCount" : 1,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "At The Fieldhouse, physical and personal challenges are tackled head-on. Owner Justin Bane and his staff change lives by restoring and rehabilitating clients from the inside out at this cutting-edge fitness facility in Abilene, Texas.",\n "name" : "The Fieldhouse",\n "seasonNumbers" : [ 1 ],\n "subtitles" : [ ],\n "videoCount" : 2,\n "webExclusive" : false\n},"id":"12832","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"images":{"data":[{"id":"show_12832_e6d7092d-1d60-3fb4-b90f-829af12731f4_cover_artwork","type":"image"},{"id":"show_12832_92964489-4f62-32ab-8d7f-5380ab62126d_default","type":"image"},{"id":"show_12832_77c25030-1733-3ebd-be0b-0cd1713e5f8d_poster_with_logo","type":"image"},{"id":"show_12832_402e7053-b206-3e3e-ad6d-9eb58f574817_logo","type":"image"},{"id":"show_12832_9d238317-5fff-378f-93b7-96de7d0a9dab_poster","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"5ab85fa21e1f98b121a13d79dd9f972e77235bfab6aa6f0f3fd7e1db612fc039","type":"route"}]},"seasons":{"data":[{"id":"11974","type":"season"}]},"txGenres":{"data":[{"id":"4483ce3f-cd64-415b-a2cc-547eca3fb9cd","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "home-on-the-road-with-johnnyswim",\n "analyticsId" : "go_12841",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "Musical duo Johnnyswim shares the struggles and triumphs of life on tour.",\n "episodeCount" : 1,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "Abner Ramirez and Amanda Sudano Ramirez of the musical duo Johnnyswim document their three-month, cross-country tour while juggling their growing family and finding new adventures in each city along the way.",\n "name" : "Home on the Road with Johnnyswim",\n "seasonNumbers" : [ 1 ],\n "subtitles" : [ ],\n "videoCount" : 2,\n "webExclusive" : false\n},"id":"12841","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"images":{"data":[{"id":"show_12841_6f49d9b3-2923-34dc-8f06-d76ea303a111_default","type":"image"},{"id":"show_12841_d5db9359-bb75-3dcf-b448-a8e6adca2c26_cover_artwork","type":"image"},{"id":"show_12841_b2b4ea39-8038-32f3-931f-14dcd94f91cb_poster_with_logo","type":"image"},{"id":"show_12841_1b1267c4-ca99-3184-aa78-8024713ad834_logo","type":"image"},{"id":"show_12841_f4185ecf-0e8d-3c62-8245-a0b164affc45_poster","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"1d31408e4d2e6981eb6bd59afb7cace66eb8d555e6c883549e2ed50ba9530627","type":"route"}]},"seasons":{"data":[{"id":"11982","type":"season"}]},"txGenres":{"data":[{"id":"4483ce3f-cd64-415b-a2cc-547eca3fb9cd","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "restoration-road-with-clint-harp",\n "analyticsId" : "go_12842",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "Clint Harp gets hands-on renovating old structures across the US.",\n "episodeCount" : 1,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "Carpenter Clint Harp hits the road in search of incredible historical structures across the country that are in need of restoration, while exploring their origins and dreaming of their futures.",\n "name" : "Restoration Road With Clint Harp",\n "seasonNumbers" : [ 1 ],\n "subtitles" : [ ],\n "videoCount" : 2,\n "webExclusive" : false\n},"id":"12842","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"images":{"data":[{"id":"show_12842_62a94a5a-db93-39cf-848b-b0ed1dd748d1_default","type":"image"},{"id":"show_12842_5a5551a9-cfdd-3c79-bdda-671e709fa32b_cover_artwork","type":"image"},{"id":"show_12842_e669dbf9-b498-3e24-b172-4f5e29320cdb_poster_with_logo","type":"image"},{"id":"show_12842_ddce6b99-4926-354b-83e8-e1feb98c8709_logo","type":"image"},{"id":"show_12842_eb2765db-b461-35b9-ace7-d7b2149d6d87_poster","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"43a8d01c673ad4348fc5d1e2897978801c7a8a3c6f46fe9ed3e2b02e7557c593","type":"route"}]},"seasons":{"data":[{"id":"11983","type":"season"}]},"txGenres":{"data":[{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "super-dad",\n "analyticsId" : "go_12865",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "DIY expert Taylor Calmus helps dads realize their kids\' backyard dreams.",\n "episodeCount" : 1,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "Father and DIY expert Taylor Calmus, along with his team of skilled builders, help aspiring DIY dads turn their kids\' outrageous backyard dreams into playtime realities.",\n "name" : "Super Dad",\n "seasonNumbers" : [ 1 ],\n "subtitles" : [ ],\n "videoCount" : 2,\n "webExclusive" : false\n},"id":"12865","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"images":{"data":[{"id":"show_12865_9a96b9fc-b198-3879-b76f-cf5e0093650d_cover_artwork","type":"image"},{"id":"show_12865_176f3cf9-55b6-3590-a947-149994dcd650_default","type":"image"},{"id":"show_12865_d0ae3502-e630-3593-9f69-2a03e8e90212_poster_with_logo","type":"image"},{"id":"show_12865_871aeae1-5e6b-38e6-920e-83a2409db00d_logo","type":"image"},{"id":"show_12865_4cbd738a-23cf-3660-bc84-45b8f030a8fd_poster","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"2f7953f303607653ad754628a94a54e46b645d8e2e228fb2b15bb7f13097a276","type":"route"}]},"seasons":{"data":[{"id":"11997","type":"season"}]},"txGenres":{"data":[{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "first-time-fixer",\n "analyticsId" : "go_12940",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "First-time house renovators take their dreams into their own hands.",\n "episodeCount" : 1,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "With a little help from Chip and Joanna, first-time house renovators take their home renovation dreams into their own hands and experience the risk and reward that comes with trying something new.",\n "name" : "First Time Fixer",\n "seasonNumbers" : [ 1 ],\n "subtitles" : [ ],\n "videoCount" : 2,\n "webExclusive" : false\n},"id":"12940","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"images":{"data":[{"id":"show_12940_4f2463cd-2840-30d0-a1de-94752931a56d_cover_artwork","type":"image"},{"id":"show_12940_8485251e-eb73-3d59-8a11-2eff506e0b1c_default","type":"image"},{"id":"show_12940_dbc97d5e-d853-372a-bed6-919e137ad5ab_poster_with_logo","type":"image"},{"id":"show_12940_ff82fa03-dcd0-313b-858a-b2ca6200eb29_logo","type":"image"},{"id":"show_12940_b6b04ceb-34a7-3cc5-ad1a-635b94a76bb5_poster","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"15d96fe70423fc8fc766fb08f95f41bfc7c2e36e9b925183d76763883e6cb392","type":"route"}]},"seasons":{"data":[{"id":"12055","type":"season"}]},"txGenres":{"data":[{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "the-vanilla-ice-project",\n "analyticsId" : "go_1719",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "Pop icon Vanilla Ice and his crew of contractors renovate Florida mansions.",\n "episodeCount" : 105,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "Pop icon Vanilla Ice brings more than 15 years of home improvement experience to Florida as he and his crew of contractors renovate mansions in Palm Beach.",\n "name" : "The Vanilla Ice Project",\n "newestEpisodePublishStart" : "2019-08-31T04:00:00Z",\n "seasonNumbers" : [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],\n "subtitles" : [ ],\n "videoCount" : 105,\n "webExclusive" : false\n},"id":"1719","relationships":{"alternateChannels":{"data":[{"id":"80","type":"channel"},{"id":"90","type":"channel"}]},"images":{"data":[{"id":"show_1719_50f6999a-a5e5-341a-9eaa-e0b651002eb3_cover_artwork","type":"image"},{"id":"show_1719_9d8d025d-3270-3ecc-9f57-ba93db5f2ba8_default","type":"image"},{"id":"show_1719_09bbc8d0-4a8d-3369-91fe-199e58b62398_poster_with_logo","type":"image"},{"id":"show_1719_0e6e42fb-29a7-36c6-b22e-0b793bccaed2_logo","type":"image"},{"id":"show_1719_10cd7d6d-9aac-3c5a-bd35-607e69289c38_poster","type":"image"}]},"primaryChannel":{"data":{"id":"88","type":"channel"}},"routes":{"data":[{"id":"bd7b3f725ae5beea4e36e8429e9697e1ca3b45149a1609af1c33286981cb50c7","type":"route"}]},"seasons":{"data":[{"id":"4792","type":"season"},{"id":"4795","type":"season"},{"id":"2758","type":"season"},{"id":"4789","type":"season"},{"id":"2664","type":"season"},{"id":"4274","type":"season"},{"id":"4790","type":"season"},{"id":"4794","type":"season"},{"id":"4791","type":"season"}]},"txGenres":{"data":[{"id":"682d2c52-ab9b-4033-ab49-6bfe2b3ef5ac","type":"taxonomyNode"},{"id":"4d30d87d-2299-4efe-98c3-cf680a054df2","type":"taxonomyNode"},{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "stone-house-revival",\n "analyticsId" : "go_2422",\n "audioTracks" : [ ],\n "customAttributes" : { },\n "description" : "A master carpenter revives historic homes in Bucks County, PA.",\n "episodeCount" : 41,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "hasExpiringEpisodes" : false,\n "hasNewEpisodes" : false,\n "longDescription" : "In Bucks County, PA, where the structures are older than the country itself, master carpenter Jeff Devlin revives the charm of rundown homes and turns them into modern spaces, all while preserving their historical integrity.",\n "name" : "Stone House Revival",\n "newestEpisodePublishStart" : "2018-07-29T12:00:00Z",\n "seasonNumbers" : [ 1, 2, 3 ],\n "subtitles" : [ ],\n "videoCount" : 41,\n "webExclusive" : false\n},"id":"2422","relationships":{"alternateChannels":{"data":[{"id":"90","type":"channel"}]},"images":{"data":[{"id":"show_2422_b5b7f5ef-254c-3536-a1fb-94d853b982da_cover_artwork","type":"image"},{"id":"show_2422_0ac17973-85c6-387a-bb82-dd92aac18a2d_default","type":"image"},{"id":"show_2422_c8c1079f-7f98-345e-87fd-6ffeb1bf06cd_poster_with_logo","type":"image"},{"id":"show_2422_51f7a3be-7564-3d23-aa47-7e3d6d23353d_logo","type":"image"},{"id":"show_2422_311d3f04-b1b9-33f2-83c3-7317ff7babe9_poster","type":"image"}]},"primaryChannel":{"data":{"id":"88","type":"channel"}},"routes":{"data":[{"id":"c025c29078244c798f24d02f885b0294a869b10b27a765bf944a5a4b26752264","type":"route"}]},"seasons":{"data":[{"id":"4707","type":"season"},{"id":"4704","type":"season"},{"id":"4705","type":"season"}]},"txGenres":{"data":[{"id":"682d2c52-ab9b-4033-ab49-6bfe2b3ef5ac","type":"taxonomyNode"},{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"show"},{"attributes":{\n "alternateId" : "lifestyle",\n "kind" : "genres",\n "name" : "Lifestyle"\n},"id":"4483ce3f-cd64-415b-a2cc-547eca3fb9cd","relationships":{"routes":{"data":[{"id":"a8d2c0b0e9a4f879e7a6082557dce569f4676440f515c257744a130e12f8df83","type":"route"}]}},"type":"taxonomyNode"},{"attributes":{\n "alternateId" : "flipping-houses",\n "kind" : "home",\n "name" : "Flipping Houses"\n},"id":"4d30d87d-2299-4efe-98c3-cf680a054df2","type":"taxonomyNode"},{"attributes":{\n "alternateId" : "outdoor-spaces",\n "kind" : "home",\n "name" : "Outdoor Spaces"\n},"id":"4f21c426-2c4e-42e6-ba6f-56368b5817aa","type":"taxonomyNode"},{"attributes":{\n "alternateId" : "building-renovation",\n "kind" : "home",\n "name" : "Building & Renovation"\n},"id":"682d2c52-ab9b-4033-ab49-6bfe2b3ef5ac","type":"taxonomyNode"},{"attributes":{\n "alternateId" : "nature-animals",\n "kind" : "genres",\n "name" : "Nature & Animals"\n},"id":"81adf4e4-89f2-4101-8368-8da4a0b7968b","relationships":{"routes":{"data":[{"id":"bdb5cfe24dddee72ae805f23c154f984b2ebd7b83a84f2b499405d7ae9c67863","type":"route"}]}},"type":"taxonomyNode"},{"attributes":{\n "alternateId" : "home",\n "kind" : "genres",\n "name" : "Home"\n},"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","relationships":{"routes":{"data":[{"id":"8673539d838cc4e2d63f84ccacbea439291b004277e544080b97b1e2cc009541","type":"route"}]}},"type":"taxonomyNode"},{"attributes":{\n "alternateId" : "wildlife",\n "kind" : "nature-animals",\n "name" : "Wildlife"\n},"id":"92bf811e-3469-4873-b78e-71013a333d1e","type":"taxonomyNode"},{"attributes":{\n "airDate" : "2021-01-03T05:00:00Z",\n "alternateId" : "super-dad-trailer",\n "audioTracks" : [ "en" ],\n "availabilityWindows" : [ {\n "package" : "MagnoliaNetPreview",\n "playableEnd" : "2038-01-18T00:00:00Z",\n "playableStart" : "2020-12-23T05:00:00Z"\n } ],\n "clearkeyEnabled" : false,\n "contentDescriptors" : [ ],\n "contentRatings" : [ {\n "code" : "TV-G",\n "system" : "US-TV"\n } ],\n "customAttributes" : { },\n "description" : "DIY expert Taylor Calmus helps dads realize their kids\' backyard dreams.",\n "drmEnabled" : false,\n "earliestPlayableStart" : "2020-12-23T05:00:00Z",\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "identifiers" : {\n "adInventoryId" : "211315.001.695",\n "analyticsId" : "60283a7f-32ba-4249-955f-ef269f10a0ad",\n "freewheel" : "60283a7f-32ba-4249-955f-ef269f10a0ad",\n "originalMediaId" : "211315.001.01.695",\n "ssaiVideoId" : "2a64c876dad146e89343d697dec8b8ea"\n },\n "isExpiring" : false,\n "isNew" : false,\n "longDescription" : "Father and DIY expert Taylor Calmus, along with his team of skilled builders, help aspiring DIY dads turn their kids\' outrageous backyard dreams into playtime realities.",\n "name" : "Super Dad Trailer",\n "packages" : [ "MagnoliaNetPreview" ],\n "path" : "super-dad/super-dad-trailer",\n "publishEnd" : "2038-01-18T00:00:00Z",\n "publishStart" : "2020-12-23T05:00:00Z",\n "rights" : {\n "embeddable" : false\n },\n "sourceSystemId" : "60283a7f-32ba-4249-955f-ef269f10a0ad",\n "sourceSystemName" : "vdp",\n "subtitles" : [ ],\n "videoDuration" : 59759,\n "videoType" : "CLIP",\n "viewingHistory" : {\n "viewed" : false\n }\n},"id":"1166347","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"contentPackages":{"data":[{"id":"MagnoliaNetPreview","type":"package"}]},"images":{"data":[{"id":"video_1166347_1b95f49b-92f2-3bd1-8312-09f06c44efcb_default","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"29fabf5e5caf9c1f18ac0c0095478fc97a2009557266368ee2cb4816d271d4e3","type":"route"}]},"show":{"data":{"id":"12865","type":"show"}},"txGenres":{"data":[{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"video"},{"attributes":{\n "airDate" : "2021-01-03T05:00:00Z",\n "alternateId" : "skate-ramp-for-six",\n "audioTracks" : [ "en" ],\n "availabilityWindows" : [ {\n "package" : "MagnoliaNetPreview",\n "playableEnd" : "2038-01-18T00:00:00Z",\n "playableStart" : "2020-12-18T05:00:00Z"\n } ],\n "clearkeyEnabled" : false,\n "contentDescriptors" : [ ],\n "contentRatings" : [ {\n "code" : "TV-G",\n "system" : "US-TV"\n } ],\n "customAttributes" : { },\n "description" : "Taylor Calmus helps a widower build his kids an incredible skate ramp.",\n "drmEnabled" : false,\n "earliestPlayableStart" : "2020-12-18T05:00:00Z",\n "episodeNumber" : 1,\n "geoRestrictions" : {\n "countries" : [ "world" ],\n "mode" : "permit"\n },\n "identifiers" : {\n "adInventoryId" : "205751.003.695",\n "analyticsId" : "6eec7417-1565-40f3-9365-bffa2ea79dff",\n "freewheel" : "6eec7417-1565-40f3-9365-bffa2ea79dff",\n "originalMediaId" : "205751.003.01.695",\n "ssaiVideoId" : "2fe5753085224aa781b1fd574cc0ccbe"\n },\n "isExpiring" : false,\n "isNew" : false,\n "longDescription" : "Brandon Janous is adjusting to life following the passing of his wife. Wanting to give his three kids the backyard of their dreams, Brandon and Taylor build an epic skate ramp and climbing wall that includes a special tribute.",\n "name" : "Skate Ramp for Six",\n "packages" : [ "MagnoliaNetPreview" ],\n "path" : "super-dad/skate-ramp-for-six",\n "publishEnd" : "2038-01-18T00:00:00Z",\n "publishStart" : "2020-12-18T05:00:00Z",\n "rights" : {\n "embeddable" : false\n },\n "seasonNumber" : 1,\n "sourceSystemId" : "6eec7417-1565-40f3-9365-bffa2ea79dff",\n "sourceSystemName" : "vdp",\n "subtitles" : [ ],\n "videoDuration" : 1472037,\n "videoType" : "EPISODE",\n "viewingHistory" : {\n "completed" : false,\n "lastStartedTimestamp" : "2021-01-16T17:05:37Z",\n "position" : 2000,\n "viewed" : true\n }\n},"id":"1166418","relationships":{"alternateChannels":{"data":[{"id":"107","type":"channel"}]},"contentPackages":{"data":[{"id":"MagnoliaNetPreview","type":"package"}]},"images":{"data":[{"id":"video_1166418_0d0b76e2-2ed5-3f4d-8aa3-2441dbc52cfc_default","type":"image"}]},"primaryChannel":{"data":{"id":"107","type":"channel"}},"routes":{"data":[{"id":"38af3976b9b35f949a47b72d5966823e0a856f0227311a3b5115d05d4ac59c4b","type":"route"}]},"season":{"data":{"id":"11997","type":"season"}},"show":{"data":{"id":"12865","type":"show"}},"txGenres":{"data":[{"id":"869882fb-d7f5-4f15-9cbb-fb021b26c3f1","type":"taxonomyNode"}]}},"type":"video"}],"meta":{\n "site" : {\n "attributes" : {\n "brand" : "dplus_us",\n "theme" : "dplus_us",\n "websiteHostName" : ""\n },\n "id" : "dplus_us",\n "type" : "site"\n }\n}}' 2021-01-16 12:50:21.312 T:20088 ERROR : EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--

yeahme49 commented 3 years ago

Testing resume again, I started a show in Kodi, skipped ahead and then stopped. Started again and it resumed properly. Stopped it again and resumed it on discoveryplus.com. Skipped ahead on the site and stopped playback. Loaded the show in Kodi again, it shows the same resume point as the website, but when I resume it resumes at the spot I had stopped last in Kodi. So it seems like there is a resume time in the Kodi database that is overriding the one from the site, even though the addon is showing the proper resume time from the site.

If it works properly for you, are you using Kodi Leia or Matrix?

I wonder if there is a way to update the database resume time before starting playback?

Dis90 commented 3 years ago

Season listing should now be fixed.

I actually rarely watch anything using discovery+ website. So that can be reason why I haven't found this issue. Have to do tests but reason is probably resume time in Kodi database.

I wonder if there is a way to update the database resume time before starting playback?

Maybe thru Kodi json rpc?

yeahme49 commented 3 years ago

jsonrpc worked. submitted pull request to add that

season listing works now for the episodes that didn't work before. i think everything is working now. can you think of anything else that should be tested?

Dis90 commented 3 years ago

Thanks. I'm thinking that is maybe bug in Kodi. Something similar was fixed by Netflix plugin author in Kodi Matrix. But that bug caused episodes to start from beginning.

Can you go to url https://us1-prod-direct.discoveryplus.com/users/me/favorites?include=default and check is your favorites listed there? That listing is used in addon to check if show is already added to favorites or not (context menu options).

Dplus_us decorators in requests is "viewingHistory, isFavorite" and that makes me think is US version using different method to check if show is added to favorites.

yeahme49 commented 3 years ago

https://us1-prod-direct.discoveryplus.com/users/me/favorites

I have one show in my favorites, Airplane Repo, and it shows up on that page.

I tested adding a show to favorites through context menu and originally got an error. When I updated add_or_delete_favorite to send self.site_headers, it worked. So that needs to be updated to send headers.

Did find another bug. When listing a category A-Z, it doesn't list all the shows. It looks like the 1st 16 shows are listed, but no more and no option to load page 2 or anything.

Dis90 commented 3 years ago

There's no pagination in addon. Params 'page[items.number]': 1, 'page[items.size]': 100 worked in Finnish discovery+ to get more items to listings.

Please check what params website uses to load more content. It is possible that US version doesn't support larger listings than 16 items. Parameter page[items.size] is not used by any discovery+ websites but I guessed it since 'page[size]' was used in first version of Dplay website.

yeahme49 commented 3 years ago

Initial loading of /shows (Browse) it loads https://us1-prod-direct.discoveryplus.com/cms/collections/263961364688425944705602256853549055046?include=default&decorators=viewingHistory,isFavorite which had the 1st 16 shows for each different channel.

Scrolling then loads https://us1-prod-direct.discoveryplus.com/cms/collections/92495789997044244789744437364785494204?include=default&decorators=viewingHistory,isFavorite&page[items.number]=2&page[items.size]=16 (92495789997044244789744437364785494204 changes depending on which channel you choose)

I tested and items.size max is 100

Dis90 commented 3 years ago

I tested and items.size max is 100

Does it display more than 16 shows?

yeahme49 commented 3 years ago

Yes if I use items.size=100 it shows 100 shows

Dis90 commented 3 years ago

That is weird why addon doesn't get more than 16 shows although page[items.size] is 100? I don't understand.

yeahme49 commented 3 years ago

I noticed in the logs that when going to browse->HGTV->A-Z in kodi, this is what's being accessed

XFILE::CPluginDirectory::StartScript - calling plugin discovery+('plugin://plugin.video.discoveryplus/','6','?action=list_collection_items&collection_id=161374980142915215278619398379069832686&collection_id_main=263961364688425944705602256853549055046','resume:false')

https://us1-prod-direct.discoveryplus.com/cms/collections/263961364688425944705602256853549055046 is then used. This URL only has the first 16 episodes listed, no matter if items.size is passed along. But https://us1-prod-direct.discoveryplus.com/cms/collections/161374980142915215278619398379069832686?include=default&page[items.number]=1&page[items.size]=100 does allow you to change the number of items.size.

What is collection_id_main and why is that used instead of collection_id? If it can be changed to use https://us1-prod-direct.discoveryplus.com/cms/collections/161374980142915215278619398379069832686?include=default&page[items.number]=1&page[items.size]=100 then it would work for more than just the first 16.

https://us1-prod-direct.discoveryplus.com/cms/collections/161374980142915215278619398379069832686?include=default&page[items.number]=1&page[items.size]=100

Dis90 commented 3 years ago

Thanks for investigating. Using collection_id instead collection_id_main which is example HGTV's collection_id should work.

collection_id_main is used because otherwise json output doesn't list collections in 'included' section and list_collection_items fails to list anything without that. This was only used in US version of dplus like list_collections()

But I'm now thinking that list_videos should work in this situation because that also lists single collection in 'data' section. Have to think good name for list_videos and add support for listing shows. Maybe list_collection() because it lists single collection? list_collection_items parses pages that contains multiple collections but we only want list content of one. That is why we use collection_id.

Dis90 commented 3 years ago

Should work now :)

Dis90 commented 3 years ago

@yeahme49 Can you test that everything works? I'm almost 100% sure login doesn't work. If you want test that, save cookie_file from userdata/addon_data/plugin.video.discoveryplus to somewhere and delete it from addon_data.

yeahme49 commented 3 years ago

As far as I can tell, everything is working properly. I submitted a pull request that adds pagenation.

I removed my cookie_file and login does not work. After trying to log in on the website after removing the cookie_file, i now have to do the captcha, which I never had to do before. So something about doing a new login through the plugin needing a new cookie triggered something on arkose end. Putting my old cookie_file back and it works fine.

Dis90 commented 3 years ago

Thanks for adding pagenation 😄

Are we ready to merge this changes to master and matrix?

I will add support to use exported cookies.txt after these changes.

yeahme49 commented 3 years ago

Made the couple changes you mentioned for the pull request, should be ready to merge now and add to master and matrix

Dis90 commented 3 years ago

Support added #10

Dis90 commented 2 years ago

@yeahme49 can you check what are current headers in d+ US? Previously: x-disco-params: realm=go,siteLookupKey=dplus_us x-disco-client: WEB:UNKNOWN:dplus_us:0.0.1

Also check what is in POST data to videoPlaybackInfo and channelPlaybackInfo (if that is used in USA)

yeahme49 commented 2 years ago

x-disco-client: WEB:UNKNOWN:dplus_us:27.9.0 x-disco-params: realm=go,siteLookupKey=dplus_us

POST videoPlaybackInfo: {"deviceInfo":{"adBlocker":true,"drmSupported":true,"hdrCapabilities":["SDR"],"hwDecodingCapabilities":[],"player":{"width":2630,"height":1479},"screen":{"width":3840,"height":2160},"soundCapabilities":["STEREO"]},"videoId":"2093355","wisteriaProperties":{"advertiser":{"adId":"|51516834747805739624932105135765523553||163926863916344a7e4ca179724a6edd4902c461a0156","firstPlay":0,"fwDid":"","fwGdprConsent":"","fwIsLat":0,"fwNielsenAppId":"P5A0FD4DE-4AE6-4B22-811B-36B9BD091980","gpaln":"","interactiveCapabilities":["brightline"]},"appBundle":"","device":{"browser":{"name":"chrome","version":"96.0.4664.45"},"language":"en","make":"","model":"","name":"Chrome","os":"Windows","osVersion":"NT 10.0","type":"desktop","id":"846c8d576fcf9844841c961e8da98118","player":{"name":"Discovery Player Web","version":"27.9.0"}},"gdpr":0,"siteId":"dplus_us","platform":"desktop","playbackId":"498263b4-ed01-4c46-b097-edd4af102acd","product":"dplus_us","sessionId":"f1b72d44-8c6a-4844-a589-f5e2222a5c64","streamProvider":{"suspendBeaconing":0,"hlsVersion":7,"pingConfig":0,"version":"1.0.0"}}}

POST channelPlaybackInfo: {"channelId":"118","deviceInfo":{"adBlocker":true,"drmSupported":true,"hdrCapabilities":["SDR"],"hwDecodingCapabilities":[],"player":{"width":2630,"height":1479},"screen":{"width":3840,"height":2160},"soundCapabilities":["STEREO"]},"wisteriaProperties":{"advertiser":{"adId":"|51516834747805739624932105135765523553||16392688054506041cd55780fa97a64a5409b45fadffe","firstPlay":0,"fwDid":"","fwGdprConsent":"","fwIsLat":0,"fwNielsenAppId":"P5A0FD4DE-4AE6-4B22-811B-36B9BD091980","gpaln":"","interactiveCapabilities":["brightline"]},"appBundle":"","device":{"browser":{"name":"chrome","version":"96.0.4664.45"},"language":"en","make":"","model":"","name":"Chrome","os":"Windows","osVersion":"NT 10.0","type":"desktop","id":"846c8d576fcf9844841c961e8da98118","player":{"name":"Discovery Player Web","version":"27.9.0"}},"gdpr":0,"siteId":"dplus_us","platform":"desktop","playbackId":"f4f20228-e827-4872-ae09-7b49408bdab7","product":"dplus_us","sessionId":"f1b72d44-8c6a-4844-a589-f5e2222a5c64","streamProvider":{"suspendBeaconing":0,"hlsVersion":7,"pingConfig":1,"version":"1.0.0"}}}

Dis90 commented 2 years ago

Is framerate correct in master.mpd? If it is wrong I probably need to modify proxy.

Edit. please check headers from something else than videoplayback. They seem to be same as in EU.

yeahme49 commented 2 years ago

Headers for tabbed-home: x-disco-client: WEB:UNKNOWN:dplus_us:1.25.0 x-disco-params: realm=go,siteLookupKey=dplus_us,bid=dplus,hn=www.discoveryplus.com,features=ar

Framerate in mpd is 30. Not sure if the video files that are served from mpd are now actually 30fps or if they are 29.970 still like when using the m3u8 file. You could update to use mpd and skip the proxy and if the blank screen issue comes back I can submit a pull request with an updated proxy

Dis90 commented 2 years ago

Thanks. Please try with current master. Is Ultra HD streams working at all? Is .mpd used in UHD streams?

yeahme49 commented 2 years ago

Trying to play video results in: 2021-12-12 12:03:38.049 T:21924 ERROR : EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--

{
  "data" : {
    "attributes" : {
      "markers" : {
        "videoAboutToEnd" : 2500895
      },
      "reportProgressInterval" : 60000,
      "ssaiInfo" : {
        "forecastTimeline" : [ {
          "event" : {
            "action" : "streamInitiate",
            "schema" : "playback"
          },
          "time" : {
            "contentPosition" : 0.0,
            "streamPosition" : 0.0
          },
          "triggerTime" : 0.0
        }, {
          "event" : {
            "action" : "start",
            "schema" : "playback"
          },
          "time" : {
            "contentPosition" : 0.0,
            "streamPosition" : 0.0
          },
          "triggerTime" : 0.001
        }, {
          "event" : {
            "action" : "start",
            "duration" : 2530.895,
            "position" : 0,
            "schema" : "chapter"
          },
          "time" : {
            "contentPosition" : 0.0,
            "streamPosition" : 0.0
          },
          "triggerTime" : 0.002
        }, {
          "event" : {
            "action" : "complete",
            "duration" : 2530.895,
            "position" : 0,
            "schema" : "chapter"
          },
          "time" : {
            "contentPosition" : 2530.895,
            "streamPosition" : 2530.895
          },
          "triggerTime" : 2530.895
        }, {
          "event" : {
            "action" : "complete",
            "schema" : "playback"
          },
          "time" : {
            "contentPosition" : 2530.895,
            "streamPosition" : 2530.895
          },
          "triggerTime" : 2530.896
        }, {
          "event" : {
            "action" : "streamComplete",
            "schema" : "playback"
          },
          "time" : {
            "contentPosition" : 2530.895,
            "streamPosition" : 2530.895
          },
          "triggerTime" : 2530.897
        } ],
        "vendorAttributes" : {
          "breaks" : [ ],
          "interstitialUrl" : "",
          "nonLinearAds" : [ ],
          "pingUrl" : "",
          "sessionId" : "c77e158a-fc3b-4de1-96dc-1871ecd3466e"
        }
      },
      "streaming" : [ {
        "cdn" : "Verizon",
        "fallback" : false,
        "protection" : {
          "clearkeyEnabled" : false,
          "drmEnabled" : true,
          "schemes" : {
            "widevine" : {
              "certificateUrl" : "",
              "licenseUrl" : "https://content-discovery.uplynk.com/wv"
            }
          }
        },
        "provider" : "wisteria",
        "streamMode" : "VOD",
        "type" : "dash",
        "url" : "https://content-discovery.uplynk.com/4ef89646fc3b48b3a9da14e73abb2c13.mpd?cid=4ef89646fc3b48b3a9da14e73abb2c13&ct=a&drm_policy_name=Prod_5April2021&exp=1639332609&rays=cdefghiba&rmt=wv&rn=5353259563291162093&tc=1&sig=0aa3d1cfacf3d05f459f0dda5400997912446d2de5814963d0ecd335b0268f86"
      } ],
      "userInfo" : {
        "packages" : [ "Free", "Registered", "MotorTrend", "TheDodo", "DiscoveryLife", "Science", "Tlc", "History", "OprahWinfrey", "DiscoveryFamilyGo", "Travel", "Popsugar", "Bbc", "FoodNetwork", "InvestigationDiscovery", "Cooking", "HomeAndGarden", "AnimalPlanet", "Seeker", "DiscoveryEnEspanol", "DiyNetwork", "DiscoveryFamilia", "NowThis", "DestinationAmerica", "DPlusOriginals", "Lifetime", "Unbranded", "Thrillist", "AmericanHeroes", "Discovery", "MagnoliaNetPreview", "AeNetwork" ]
      },
      "viewingHistory" : {
        "completed" : false,
        "lastStartedTimestamp" : "2021-12-12T16:35:11Z",
        "position" : 2000,
        "viewed" : true
      }
    },
    "id" : "2093355",
    "type" : "videoPlaybackInfo"
  },
  "meta" : {
    "site" : {
      "attributes" : {
        "brand" : "dplus_us",
        "brandId" : "dplus",
        "mainTerritoryCode" : "us",
        "theme" : "dplus_us",
        "websiteHostName" : ""
      },
      "id" : "dplus_us",
      "type" : "site"
    }
  }
}

This is videoPlaybackInfo when I view a video on the website

Ultra HD still doesn't work. When I worked on it last, if I set drmSupported to true, it would give an mpd file. If set to false it was m3u8. But it wouldn't work either way. drmSupported = true the file wouldn't play at all, false it would stop after 4 seconds. Created an issue with ISA and no resolution. One person said Widevine on Windows doesn't support HEVC, so that may be why drmSupported = true fails. Not sure about the issue when drmSupported is set to false. I haven't had much time to try and gather any more info for them to try and troubleshoot more. I've been meaning to try it on my Chromecast with Google TV device to see if it works any better.