{"appId":"demo-youtube-draft","generatedAt":"2026-08-10T00:16:41.376Z","status":"warning","fingerprint":"9164ea2dcf18b68ed1107697afff377f13352fa9e94d7e3b3f1bcae636a95110","stages":[{"id":"manifest","label":"Manifest validation","status":"passed","findings":[]},{"id":"assets","label":"Asset preflight","status":"passed","findings":[]},{"id":"analytics","label":"Analytics readiness","status":"passed","findings":[]},{"id":"security","label":"Embed security","status":"passed","findings":[]},{"id":"adapter","label":"WebTV adapter","status":"warning","findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."}]},{"id":"adapter","label":"android-tv adapter","status":"warning","findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."}]},{"id":"adapter","label":"roku adapter","status":"warning","findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."}]}],"summary":{"errors":0,"warnings":12,"assetsChecked":14,"adapterTargets":3,"webtvAdapterStatus":"warning"},"manifest":{"valid":true,"status":"valid","fingerprint":"9164ea2dcf18b68ed1107697afff377f13352fa9e94d7e3b3f1bcae636a95110","findings":[]},"assets":{"appId":"demo-youtube-draft","generatedAt":"2026-08-10T00:16:41.375Z","totals":{"assets":14,"ok":14,"warnings":0,"errors":0},"findings":[{"asset":{"id":"demo-youtube-draft.logo","type":"image","url":"https://placehold.co/512x512/101418/FF0033?text=YT","usage":"logo"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":153,"status":200},{"asset":{"id":"demo-youtube-draft.splash","type":"image","url":"https://placehold.co/1920x1080/101418/FFFFFF?text=Demo%20YouTube%20Draft","usage":"splash"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":144,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-intro.poster","type":"image","url":"https://placehold.co/960x540/101418/FF0033?text=Channel%20intro","usage":"poster","contentId":"demo-youtube-fixture-source-ump-fixture-intro"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":152,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-intro.background","type":"image","url":"https://placehold.co/1920x1080/101418/FFFFFF?text=Channel%20intro","usage":"background","contentId":"demo-youtube-fixture-source-ump-fixture-intro"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":140,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-intro.playback","type":"playback","url":"https://www.youtube.com/watch?v=ump-fixture-intro","usage":"playback","contentId":"demo-youtube-fixture-source-ump-fixture-intro"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"text/html; charset=utf-8","elapsedMs":102,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-latest.poster","type":"image","url":"https://placehold.co/960x540/101418/FF0033?text=Latest%20upload","usage":"poster","contentId":"demo-youtube-fixture-source-ump-fixture-latest"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":137,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-latest.background","type":"image","url":"https://placehold.co/1920x1080/101418/FFFFFF?text=Latest%20upload","usage":"background","contentId":"demo-youtube-fixture-source-ump-fixture-latest"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":136,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-latest.playback","type":"playback","url":"https://www.youtube.com/watch?v=ump-fixture-latest","usage":"playback","contentId":"demo-youtube-fixture-source-ump-fixture-latest"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"text/html; charset=utf-8","elapsedMs":100,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-featured.poster","type":"image","url":"https://placehold.co/960x540/101418/FF0033?text=Featured%20episode","usage":"poster","contentId":"demo-youtube-fixture-source-ump-fixture-featured"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":125,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-featured.background","type":"image","url":"https://placehold.co/1920x1080/101418/FFFFFF?text=Featured%20episode","usage":"background","contentId":"demo-youtube-fixture-source-ump-fixture-featured"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":145,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-featured.playback","type":"playback","url":"https://www.youtube.com/watch?v=ump-fixture-featured","usage":"playback","contentId":"demo-youtube-fixture-source-ump-fixture-featured"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"text/html; charset=utf-8","elapsedMs":105,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-shorts.poster","type":"image","url":"https://placehold.co/960x540/101418/FF0033?text=Short-form%20highlight","usage":"poster","contentId":"demo-youtube-fixture-source-ump-fixture-shorts"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":135,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-shorts.background","type":"image","url":"https://placehold.co/1920x1080/101418/FFFFFF?text=Short-form%20highlight","usage":"background","contentId":"demo-youtube-fixture-source-ump-fixture-shorts"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"image/svg+xml; charset=utf-8","elapsedMs":135,"status":200},{"asset":{"id":"demo-youtube-fixture-source-ump-fixture-shorts.playback","type":"playback","url":"https://www.youtube.com/watch?v=ump-fixture-shorts","usage":"playback","contentId":"demo-youtube-fixture-source-ump-fixture-shorts"},"severity":"ok","message":"Asset is reachable.","checkedWith":"HEAD","contentType":"text/html; charset=utf-8","elapsedMs":153,"status":200}]},"adapters":[{"adapterId":"webtv-reference","target":"browser-webtv","status":"warning","entryRoutes":{"portal":"/portal?project=demo-youtube-draft","preview":"/?project=demo-youtube-draft","manifest":"/api/app-manifest/current?project=demo-youtube-draft"},"supported":{"blockTypes":["hero","rail","grid","liveGuide","continueWatching","posterList","text","banner","actions","embed","searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"streamFormats":["mp4","external","youtube","hls","dash","webrtc"],"navigationModels":["browser","spatial","rowPriority"]},"findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."}]},{"adapterId":"android-tv-target","target":"android-tv","status":"warning","runtime":{"language":"Kotlin / Jetpack Compose for TV","rendererEntry":"native/android-tv/app/src/main/java/app/universalmedia/MainActivity.kt","packageRoot":"native/android-tv"},"supported":{"blockTypes":["hero","searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"nativeBlockTypes":["hero","searchKeyboard","searchResults","searchPreview","bundleOffer"],"fallbackBlockTypes":["providerLogoRail","promoMosaic"],"streamFormats":["hls","dash","mp4","external"],"billingProviders":["iap","external"]},"billing":{"entitlementEndpoint":"/api/subscription/entitlement?project=demo-youtube-draft","purchaseEndpoint":"/api/subscription/purchase","restoreEndpoint":"/api/subscription/restore","providerMode":"none"},"findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"android-tv-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."}]},{"adapterId":"roku-target","target":"roku","status":"warning","runtime":{"language":"BrightScript / SceneGraph","rendererEntry":"native/roku/source/main.brs","packageRoot":"native/roku"},"supported":{"blockTypes":["searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"nativeBlockTypes":["searchKeyboard","searchResults","searchPreview","bundleOffer"],"fallbackBlockTypes":["providerLogoRail","promoMosaic"],"streamFormats":["hls","dash","mp4","external"],"billingProviders":["iap","external"]},"billing":{"entitlementEndpoint":"/api/subscription/entitlement?project=demo-youtube-draft","purchaseEndpoint":"/api/subscription/purchase","restoreEndpoint":"/api/subscription/restore","providerMode":"none"},"findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"roku-target package cannot guarantee native playback for youtube; use fallback URL or platform player work."}]}],"webtvAdapter":{"adapterId":"webtv-reference","target":"browser-webtv","status":"warning","entryRoutes":{"portal":"/portal?project=demo-youtube-draft","preview":"/?project=demo-youtube-draft","manifest":"/api/app-manifest/current?project=demo-youtube-draft"},"supported":{"blockTypes":["hero","rail","grid","liveGuide","continueWatching","posterList","text","banner","actions","embed","searchKeyboard","searchResults","searchPreview","bundleOffer","providerLogoRail","promoMosaic"],"streamFormats":["mp4","external","youtube","hls","dash","webrtc"],"navigationModels":["browser","spatial","rowPriority"]},"findings":[{"severity":"warning","path":"$.content[0].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[1].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[2].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."},{"severity":"warning","path":"$.content[3].playback.streamFormat","message":"WebTV reference runtime can publish youtube, but native playback needs a platform adapter or fallback link."}]}}