Tabs Tab 1 of 1 Card Nuori Morse (12) Pointer: yle-tv1.json (player) 1 control, 3 labels Card JSON{
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-tv1.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle TV1",
"id": "13-85-4e2bde41d41047e2824ac2283145cda9",
"version": "1787736321"
},
"labels": [
{
"formatted": "12.25–13.15",
"type": "generic"
},
{
"raw": "2026-08-26T12:25:00+03:00/2026-08-26T13:15:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle TV1",
"raw": "yle-tv1",
"type": "broadcastService"
}
],
"overlayLogoImage": {
"alt": "Yle TV1",
"id": "yle-tv1_vt",
"version": "1750676272"
},
"pointer": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-tv1.json?language=fi&v=10&client=yle-areena-web"
},
"presentation": "broadcastCard",
"title": "Nuori Morse (12)",
"type": "card"
} Card Saariston sankarit Pointer: yle-tv2.json (player) 1 control, 3 labels Card JSON{
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-tv2.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle TV2",
"id": "13-85-d9c50a4d0b56463cb2951159696d87d9",
"version": "1787736050"
},
"labels": [
{
"formatted": "12.20–12.50",
"type": "generic"
},
{
"raw": "2026-08-26T12:20:31+03:00/2026-08-26T12:50:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle TV2",
"raw": "yle-tv2",
"type": "broadcastService"
}
],
"overlayLogoImage": {
"alt": "Yle TV2",
"id": "yle-tv2_vt",
"version": "1750676272"
},
"pointer": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-tv2.json?language=fi&v=10&client=yle-areena-web"
},
"presentation": "broadcastCard",
"title": "Saariston sankarit",
"type": "card"
} Card Punalyhdyistä parrasvaloihin (7) Pointer: yle-teema-fem.json (player) 1 control, 3 labels Card JSON{
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-teema-fem.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Teema Fem",
"id": "13-85-923d85df16594b44abc0b44bd97f1a2c",
"version": "1787734817"
},
"labels": [
{
"formatted": "12.00–13.41",
"type": "generic"
},
{
"raw": "2026-08-26T12:00:00+03:00/2026-08-26T13:41:11+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Teema Fem",
"raw": "yle-teema-fem",
"type": "broadcastService"
}
],
"overlayLogoImage": {
"alt": "Yle Teema Fem",
"id": "yle-teema_vt",
"version": "1750676272"
},
"pointer": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-teema-fem.json?language=fi&v=10&client=yle-areena-web"
},
"presentation": "broadcastCard",
"title": "Punalyhdyistä parrasvaloihin (7)",
"type": "card"
}
List JSON{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/schedules/now.json?service=yle-tv1,yle-tv2,yle-teema-fem&transmissionlimit=1&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "16:9",
"layout": "horizontal",
"size": "medium"
},
"title": "TV-kanavat",
"type": "list"
} Card response meta JSON{
"analytics": {
"context": {
"yle": {
"source_ref": "schedules.now"
}
}
},
"count": 3,
"expand": "",
"expandlimit": 10,
"expires": "2026-08-26T12:50:00+03:00",
"lastModified": "2026-08-26T12:25:00+03:00",
"limit": 3,
"offset": 0,
"service": "yle-tv1,yle-tv2,yle-teema-fem",
"transmissionlimit": 1
} Card RF urheilulive enkooderitesti Description: Urheilulähetys(laatu1080p50) ROBOTTITESTITKÄYTTÄÄ-->ÄLÄPOISTA! 0 controls, 4 labels Card JSON{
"description": "Urheilulähetys(laatu1080p50) ROBOTTITESTITKÄYTTÄÄ-->ÄLÄPOISTA!",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"labels": [
{
"formatted": "Ke 2.9. klo 4.31–6.31",
"type": "generic"
},
{
"raw": "1-74547736",
"type": "itemId"
},
{
"formatted": "Yle Areena",
"raw": "yle-areena",
"type": "broadcastService"
},
{
"backgroundColor": "#B3000000",
"formatted": "ke 2.9. klo 4.31",
"type": "overlay"
}
],
"pointer": {
"type": "program",
"uri": "yleareena://items/1-74547736"
},
"presentation": "broadcastCard",
"title": "RF urheilulive enkooderitesti",
"transmissions": [
{
"broadcastStatus": "upcoming",
"description": "Urheilulähetys(laatu1080p50) ROBOTTITESTITKÄYTTÄÄ-->ÄLÄPOISTA!",
"endTime": "2026-09-02T06:31:00+03:00",
"formattedStartTime": "4.31",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"ondemandStatus": "upcoming",
"pointer": {
"type": "program",
"uri": "yleareena://items/1-74547736"
},
"startTime": "2026-09-02T04:31:00+03:00",
"title": "RF urheilulive enkooderitesti"
}
],
"type": "card"
}
List JSON{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/content/list?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb3VyY2UiOiJodHRwczovL3Byb2dyYW1zLmFwaS10ZXN0LnlsZS5maS92My9zY2hlbWEvdjMvcGFja2FnZXMvMzAtMTA2MC9jdXJyZW50LW9yLWZ1dHVyZS1saXZlIiwiY2FyZE9wdGlvbnNUZW1wbGF0ZSI6InVwY29taW5nIn0.GNfuBgKDnFfxWFfIAstxvxPgpicAloDYclmSUdRVqrk&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "16:9",
"layout": "horizontal",
"size": "medium"
},
"title": "Urheilu",
"type": "list"
} JWT payload{
"cardOptionsTemplate": "upcoming",
"source": "https://programs.api-test.yle.fi/v3/schema/v3/packages/30-1060/current-or-future-live"
} Card response meta JSON{
"analytics": {
"context": {
"yle": {
"source_url": "https://programs.api-test.yle.fi/v3/schema/v3/packages/30-1060/current-or-future-live?offset=0&limit=3"
}
}
},
"cardOptionsTemplate": "upcoming",
"count": 1,
"expires": "2026-08-26T09:50:34Z",
"limit": 3,
"offset": 0,
"refreshAt": "2026-09-02T04:31:50+03:00"
} Card Pieleen mennyt historia: Hometaloja ja tonnikaupalla jätettä – miksi rakentaminen meni mönkään? 1 control, 3 labels Card JSON{
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-1.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio 1",
"id": "yle-radio-1_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.05–12.50",
"type": "generic"
},
{
"raw": "2026-08-26T12:05:00+03:00/2026-08-26T12:50:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio 1",
"raw": "yle-radio-1",
"type": "broadcastService"
}
],
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-p89RepWE0"
},
"presentation": "broadcastCard",
"title": "Pieleen mennyt historia: Hometaloja ja tonnikaupalla jätettä – miksi rakentaminen meni mönkään?",
"type": "card"
} Card Uuden musiikin X: Sonny Kylä-Liuhala 1 control, 3 labels Card JSON{
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/ylex.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "YleX",
"id": "ylex_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "10.00–14.00",
"type": "generic"
},
{
"raw": "2026-08-26T10:00:00+03:00/2026-08-26T14:00:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "YleX",
"raw": "ylex",
"type": "broadcastService"
}
],
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-JAprnp7W2"
},
"presentation": "broadcastCard",
"title": "Uuden musiikin X: Sonny Kylä-Liuhala",
"type": "card"
} Card Yle Radio Suomi 0 controls, 0 labels Card JSON{
"cards": [
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-helsinki.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Helsinki",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-helsinki",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-turku.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Turku",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-turku",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-pori.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Pori",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-pori",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-jyvaskyla.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Jyväskylä",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-jyvaskyla",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-tampere.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Tampere",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-tampere",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-lahti.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Lahti",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-lahti",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-hameenlinna.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Hämeenlinna",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-hameenlinna",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-lappeenranta.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Lappeenranta",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-lappeenranta",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-kotka.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Kotka",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-kotka",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-kuopio.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Kuopio",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-kuopio",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-mikkeli.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Mikkeli",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-mikkeli",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-joensuu.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Joensuu",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-joensuu",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-seinajoki.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Seinäjoki",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-seinajoki",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-vaasa.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Vaasa",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-vaasa",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-kokkola.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Kokkola",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-kokkola",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-oulu.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Oulu",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-oulu",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-kajaani.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Kajaani",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-kajaani",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
},
{
"color": "#21b8e8",
"controls": [
{
"backgroundColor": "#E90E43",
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/yle-radio-suomi-rovaniemi.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"alt": "Yle Radio Suomi Rovaniemi",
"id": "yle-radio-suomi_channel",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.45–12.55",
"type": "generic"
},
{
"raw": "2026-08-26T12:45:00+03:00/2026-08-26T12:55:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"formatted": "Yle Radio Suomi",
"raw": "yle-radio-suomi",
"type": "broadcastService"
}
],
"persistentState": {
"id": "yle-radio-suomi-rovaniemi",
"key": "yle-radio-suomi"
},
"pointer": {
"type": "package",
"uri": "yleareena://packages/57-3gO4bl7J6"
},
"presentation": "broadcastCard",
"title": "Merisää",
"type": "card"
}
],
"image": {
"id": "yle-radio-suomi",
"version": "1750676272"
},
"persistentState": {
"key": "yle-radio-suomi"
},
"presentation": "broadcastDeck",
"title": "Yle Radio Suomi",
"type": "card"
}
List JSON{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/schedules/now.json?service=yle-radio-1,ylex,yle-radio-suomi,yle-radio-suomi-helsinki,yle-radio-suomi-turku,yle-radio-suomi-pori,yle-radio-suomi-jyvaskyla,yle-radio-suomi-tampere,yle-radio-suomi-lahti,yle-radio-suomi-hameenlinna,yle-radio-suomi-lappeenranta,yle-radio-suomi-kotka,yle-radio-suomi-kuopio,yle-radio-suomi-mikkeli,yle-radio-suomi-joensuu,yle-radio-suomi-seinajoki,yle-radio-suomi-vaasa,yle-radio-suomi-kokkola,yle-radio-suomi-oulu,yle-radio-suomi-kajaani,yle-radio-suomi-rovaniemi,yle-radio-vega,radio-vega-huvudstadsregionen,radio-vega-vastnyland,radio-vega-aboland,radio-vega-osterbotten,radio-vega-ostnyland,yle-x3m,yle-klassinen,yle-sami-radio&transmissionlimit=1&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "1:1",
"layout": "horizontal",
"size": "medium"
},
"title": "Radiokanavat",
"type": "list"
} Card response meta JSON{
"analytics": {
"context": {
"yle": {
"source_ref": "schedules.now"
}
}
},
"count": 7,
"expand": "",
"expandlimit": 10,
"expires": "2026-08-26T12:50:00+03:00",
"lastModified": "2026-08-26T12:45:00+03:00",
"limit": 3,
"offset": 0,
"service": "yle-radio-1,ylex,yle-radio-suomi,yle-radio-suomi-helsinki,yle-radio-suomi-turku,yle-radio-suomi-pori,yle-radio-suomi-jyvaskyla,yle-radio-suomi-tampere,yle-radio-suomi-lahti,yle-radio-suomi-hameenlinna,yle-radio-suomi-lappeenranta,yle-radio-suomi-kotka,yle-radio-suomi-kuopio,yle-radio-suomi-mikkeli,yle-radio-suomi-joensuu,yle-radio-suomi-seinajoki,yle-radio-suomi-vaasa,yle-radio-suomi-kokkola,yle-radio-suomi-oulu,yle-radio-suomi-kajaani,yle-radio-suomi-rovaniemi,yle-radio-vega,radio-vega-huvudstadsregionen,radio-vega-vastnyland,radio-vega-aboland,radio-vega-osterbotten,radio-vega-ostnyland,yle-x3m,yle-klassinen,yle-sami-radio",
"transmissionlimit": 1
} Card FEENIX SHARED SOURCE TEST 1 control, 5 labels Card JSON{
"controls": [
{
"destination": {
"authentication": [
"yle-api"
],
"type": "player",
"uri": "https://areena.api-test.yle.fi/v1/ui/players/1-78516485.json?language=fi&v=10&client=yle-areena-web"
},
"icon": {
"id": "icon-play",
"version": "1750676272"
},
"tag": "play",
"type": "navigator"
}
],
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"labels": [
{
"formatted": "12.00–13.00",
"type": "generic"
},
{
"raw": "2026-08-26T12:00:00+03:00/2026-08-26T13:00:00+03:00",
"rawType": "interval",
"type": "progress"
},
{
"backgroundColor": "#E90E43",
"color": "#F8F9FA",
"formatted": "SUORA",
"type": "highlight"
},
{
"raw": "1-78516485",
"type": "itemId"
},
{
"formatted": "Yle Areena",
"raw": "yle-areena",
"type": "broadcastService"
}
],
"pointer": {
"type": "program",
"uri": "yleareena://items/1-78516485"
},
"presentation": "broadcastCard",
"title": "FEENIX SHARED SOURCE TEST",
"traits": {
"streamable": {
"playFromStart": true
}
},
"transmissions": [
{
"broadcastStatus": "current",
"endTime": "2026-08-26T13:00:00+03:00",
"formattedStartTime": "12.00",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"ondemandStatus": "norights",
"pointer": {
"type": "program",
"uri": "yleareena://items/1-78516485"
},
"startTime": "2026-08-26T12:00:00+03:00",
"title": "FEENIX SHARED SOURCE TEST"
}
],
"type": "card"
} Card Ylen aamu Description: RF-suora suomi-audiolla 0 controls, 4 labels Card JSON{
"description": "RF-suora suomi-audiolla",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"labels": [
{
"formatted": "Tänään klo 14.22–14.37",
"type": "generic"
},
{
"raw": "1-78516658",
"type": "itemId"
},
{
"formatted": "Yle Areena",
"raw": "yle-areena",
"type": "broadcastService"
},
{
"backgroundColor": "#B3000000",
"formatted": "tänään klo 14.22",
"type": "overlay"
}
],
"pointer": {
"type": "program",
"uri": "yleareena://items/1-78516658"
},
"presentation": "broadcastCard",
"title": "Ylen aamu",
"transmissions": [
{
"broadcastStatus": "upcoming",
"description": "Luo Livet Audioraidalla: Robot Framework testailee integraatioita livelle.",
"endTime": "2026-08-26T14:37:00+03:00",
"formattedStartTime": "14.22",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"ondemandStatus": "norights",
"pointer": {
"type": "program",
"uri": "yleareena://items/1-78516658"
},
"startTime": "2026-08-26T14:22:00+03:00",
"title": "RF-suora suomi-audiolla"
}
],
"type": "card"
} Card Ylen aamu Description: RF livetesti 202608260424 0 controls, 4 labels Card JSON{
"description": "RF livetesti 202608260424",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"labels": [
{
"formatted": "To 27.8. klo 23.30–23.35",
"type": "generic"
},
{
"raw": "1-78516656",
"type": "itemId"
},
{
"formatted": "Yle Areena",
"raw": "yle-areena",
"type": "broadcastService"
},
{
"backgroundColor": "#B3000000",
"formatted": "to 27.8. klo 23.30",
"type": "overlay"
}
],
"pointer": {
"type": "program",
"uri": "yleareena://items/1-78516656"
},
"presentation": "broadcastCard",
"title": "Ylen aamu",
"transmissions": [
{
"broadcastStatus": "upcoming",
"description": "Robot Framework testin pitkä kuvaus: åö130 ja erikoismerkit !\"#¤%&/()=?de*'<>||-_,.; - 202608260424",
"endTime": "2026-08-27T23:35:00+03:00",
"formattedStartTime": "23.30",
"image": {
"id": "yle-areena",
"version": "1750676272"
},
"ondemandStatus": "upcoming",
"pointer": {
"type": "program",
"uri": "yleareena://items/1-78516656"
},
"startTime": "2026-08-27T23:30:00+03:00",
"title": "RF livetesti 202608260424"
}
],
"type": "card"
}
List JSON{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/content/list?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb3VyY2UiOiJodHRwczovL3Byb2dyYW1zLmFwaS10ZXN0LnlsZS5maS92My9zY2hlbWEvdjMvc2NoZWR1bGVzL25vdz9zZXJ2aWNlPXlsZS1hcmVlbmEmcHVibGljYXRpb25fdHlwZT13ZWJjYXN0IiwiY2FyZE9wdGlvbnNUZW1wbGF0ZSI6InVwY29taW5nIn0.eMv11eEzBTE1V6KvlC3fJW0xQNyBPnLgc47cza7uopE&crop=20&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "16:9",
"layout": "horizontal",
"size": "medium"
},
"title": "Katso vain Areenassa",
"type": "list"
} JWT payload{
"cardOptionsTemplate": "upcoming",
"source": "https://programs.api-test.yle.fi/v3/schema/v3/schedules/now?service=yle-areena&publication_type=webcast"
} Card response meta JSON{
"analytics": {
"context": {
"yle": {
"source_url": "https://programs.api-test.yle.fi/v3/schema/v3/schedules/now?service=yle-areena&publication_type=webcast&offset=0&limit=3"
}
}
},
"cardOptionsTemplate": "upcoming",
"count": 20,
"expires": "2026-08-26T09:50:34Z",
"limit": 3,
"offset": 0,
"refreshAt": "2026-08-26T13:00:50+03:00"
}
Tab JSON{
"content": [
{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/schedules/now.json?service=yle-tv1,yle-tv2,yle-teema-fem&transmissionlimit=1&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "16:9",
"layout": "horizontal",
"size": "medium"
},
"title": "TV-kanavat",
"type": "list"
},
{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/content/list?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb3VyY2UiOiJodHRwczovL3Byb2dyYW1zLmFwaS10ZXN0LnlsZS5maS92My9zY2hlbWEvdjMvcGFja2FnZXMvMzAtMTA2MC9jdXJyZW50LW9yLWZ1dHVyZS1saXZlIiwiY2FyZE9wdGlvbnNUZW1wbGF0ZSI6InVwY29taW5nIn0.GNfuBgKDnFfxWFfIAstxvxPgpicAloDYclmSUdRVqrk&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "16:9",
"layout": "horizontal",
"size": "medium"
},
"title": "Urheilu",
"type": "list"
},
{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/schedules/now.json?service=yle-radio-1,ylex,yle-radio-suomi,yle-radio-suomi-helsinki,yle-radio-suomi-turku,yle-radio-suomi-pori,yle-radio-suomi-jyvaskyla,yle-radio-suomi-tampere,yle-radio-suomi-lahti,yle-radio-suomi-hameenlinna,yle-radio-suomi-lappeenranta,yle-radio-suomi-kotka,yle-radio-suomi-kuopio,yle-radio-suomi-mikkeli,yle-radio-suomi-joensuu,yle-radio-suomi-seinajoki,yle-radio-suomi-vaasa,yle-radio-suomi-kokkola,yle-radio-suomi-oulu,yle-radio-suomi-kajaani,yle-radio-suomi-rovaniemi,yle-radio-vega,radio-vega-huvudstadsregionen,radio-vega-vastnyland,radio-vega-aboland,radio-vega-osterbotten,radio-vega-ostnyland,yle-x3m,yle-klassinen,yle-sami-radio&transmissionlimit=1&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "1:1",
"layout": "horizontal",
"size": "medium"
},
"title": "Radiokanavat",
"type": "list"
},
{
"controls": [],
"filters": [],
"source": {
"authentication": [
"yle-api"
],
"uri": "https://areena.api-test.yle.fi/v1/ui/content/list?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb3VyY2UiOiJodHRwczovL3Byb2dyYW1zLmFwaS10ZXN0LnlsZS5maS92My9zY2hlbWEvdjMvc2NoZWR1bGVzL25vdz9zZXJ2aWNlPXlsZS1hcmVlbmEmcHVibGljYXRpb25fdHlwZT13ZWJjYXN0IiwiY2FyZE9wdGlvbnNUZW1wbGF0ZSI6InVwY29taW5nIn0.eMv11eEzBTE1V6KvlC3fJW0xQNyBPnLgc47cza7uopE&crop=20&language=fi&v=10&client=yle-areena-web"
},
"style": {
"image": "16:9",
"layout": "horizontal",
"size": "medium"
},
"title": "Katso vain Areenassa",
"type": "list"
}
],
"type": "tab"
} |