diff --git a/sites/shahid.mbc.net/shahid.mbc.net.config.js b/sites/shahid.mbc.net/shahid.mbc.net.config.js
index f3ac9087..599af98c 100644
--- a/sites/shahid.mbc.net/shahid.mbc.net.config.js
+++ b/sites/shahid.mbc.net/shahid.mbc.net.config.js
@@ -24,8 +24,8 @@ module.exports = {
description: item.description,
session: item.seasonNumber,
episode: item.episodeNumber,
- start: dayjs.tz(item.actualFrom, 'Asia/Riyadh').toISOString(),
- stop: dayjs.tz(item.actualTo, 'Asia/Riyadh').toISOString()
+ start: dayjs.tz(item.actualFrom, 'UTC').toISOString(),
+ stop: dayjs.tz(item.actualTo, 'UTC').toISOString()
}
})
@@ -34,24 +34,28 @@ module.exports = {
async channels({ lang = 'en' }) {
const axios = require('axios')
const items = []
- let page = 0
- while (true) {
- const result = await axios
- .get(
- `https://api2.shahid.net/proxy/v2.1/product/filter?filter=%7B"pageNumber":${page},"pageSize":100,"productType":"LIVESTREAM","productSubType":"LIVE_CHANNEL"%7D&country=SA&language=${lang}&Accept-Language=${lang}`
- )
- .then(response => response.data)
- .catch(console.error)
- if (result.productList) {
- items.push(...result.productList.products)
- if (result.productList.hasMore) {
- page++
- continue
+ const countryCodes = ['EG', 'SA', 'US']
+ for (let country of countryCodes) {
+ let page = 0
+ while (true) {
+ const result = await axios
+ .get(
+ `https://api2.shahid.net/proxy/v2.1/product/filter?filter=%7B"pageNumber":${page},"pageSize":100,"productType":"LIVESTREAM","productSubType":"LIVE_CHANNEL"%7D&country=${country}&language=${lang}&Accept-Language=${lang}`
+ )
+ .then(response => response.data)
+ .catch(console.error)
+ if (result.productList) {
+ items.push(...result.productList.products)
+ if (result.productList.hasMore) {
+ page++
+ continue
+ }
}
+ break
}
- break
}
- const channels = items.map(channel => {
+ const uniqueItems = Array.from(new Map(items.map(item => [item.id, item])).values())
+ const channels = uniqueItems.map(channel => {
return {
lang,
site_id: channel.id,
diff --git a/sites/shahid.mbc.net/shahid.mbc.net.test.js b/sites/shahid.mbc.net/shahid.mbc.net.test.js
index c804fa44..3105e388 100644
--- a/sites/shahid.mbc.net/shahid.mbc.net.test.js
+++ b/sites/shahid.mbc.net/shahid.mbc.net.test.js
@@ -25,8 +25,8 @@ it('can parse response', () => {
expect(result).toMatchObject([
{
- start: '2023-11-10T21:00:00.000Z',
- stop: '2023-11-10T21:30:00.000Z',
+ start: '2023-11-11T00:00:00.000Z',
+ stop: '2023-11-11T00:30:00.000Z',
title: "Menassaatona Fi Osboo'",
description:
"The presenter reviews the most prominent episodes of news programs produced by the channel's team on a weekly basis, which include the most important global updates and developments at all levels."
diff --git a/sites/shahid.mbc.net/shahid.mbc.net_ar.channels.xml b/sites/shahid.mbc.net/shahid.mbc.net_ar.channels.xml
index ccc6a926..eb75c83f 100644
--- a/sites/shahid.mbc.net/shahid.mbc.net_ar.channels.xml
+++ b/sites/shahid.mbc.net/shahid.mbc.net_ar.channels.xml
@@ -7,27 +7,20 @@
قناة الكبير أوي
قناة العاصوف
قناة مسرح مصر
- قناة مرايا
قناة اللعبة
قناة سيلفي
- قناة واي فاي
- إذاعة خزامى
- Arabs Got Talent Channel
- كوميدي خليجي
Red Bull TV
- رمضان معانا مسلسلات
قناة سكة سفر
- قناة ستوديو
- قناة سين
- رمضان معانا خليجي
- قناة فريج
- الصدمة
+ قناة البودكاسترز
+ قناة الحصن
+ حكايات بعد الفصل
عبدالمجيد عبدالله
أفلام
العربية
العربية Business
الإخبارية
الحدث
+ إذاعة خزامى
القرآن الكريم
السعودية
السعودية الآن
@@ -36,31 +29,35 @@
Asharq Documentary
الشرق
قناة باب الحارة
- بداية
Big Time Plus
+ فيروز
ماجد المهندس
- MBC1
+ قناة مرايا
+ MBC1
+ MBC1
MBC2
MBC3
+ MBC3
MBC4
MBC5
MBC Action
MBC Bollywood
MBC Drama
+ MBC Drama
MBC FM
MBC Iraq
MBC Masr2
MBC Masr
مصر دراما
+ MBC Masr
MBC MAX
MBC Persia
MBC Plus Drama
محمد عبده
Movies Action
Movies Thriller
- Nature Time
Panorama FM
- رامز
+ رابح صقر
راشد الماجد
الثقافية
SBC
diff --git a/sites/shahid.mbc.net/shahid.mbc.net_en.channels.xml b/sites/shahid.mbc.net/shahid.mbc.net_en.channels.xml
index 3b6e099f..035732c2 100644
--- a/sites/shahid.mbc.net/shahid.mbc.net_en.channels.xml
+++ b/sites/shahid.mbc.net/shahid.mbc.net_en.channels.xml
@@ -7,27 +7,20 @@
El Kebeer Awi Channel
Al Asouf Channel
Masrah Masr Channel
- Maraya Channel
El Le'ba Channel
Selfie Channel
- Wifi Channel
- Alkhuzama Radio
- Arabs Got Talent Channel
- Gulf Comedy
Red Bull TV
- Ramadan Ma’na Series
Sikkat Safar Channel
- Studio Channel
- Seen Channel
- Ramadan Ma’na GCC
- Freej channel
- Al Sadma
+ El-Podcasters Channel
+ Al Hisn Channel
+ Hikayat Ba'ed Alfasl
Abdul Majeed Abdullah
Aflam
Al Arabiya
Al Arabiya Business
Alikhbariya
Al Hadath
+ Alkhuzama Radio
Al Quraan al Kareem
AlSaudia
KSA Now
@@ -36,31 +29,36 @@
Asharq Documentary
Asharq
Bab Al Hara Channel
- Bedaya TV
Big Time Plus
+ Fairuz
Majid Almohandis
+ Maraya Channel
MBC1
+ MBC1
+ MBC1
MBC2
MBC3
+ MBC3
MBC4
MBC5
MBC Action
MBC Bollywood
MBC Drama
+ MBC Drama
MBC FM
MBC Iraq
MBC Masr2
MBC Masr
MBC Masr Drama
+ MBC Masr
MBC MAX
MBC Persia
MBC Plus Drama
Mohammed Abdu
Movies Action
Movies Thriller
- Nature Time
Panorama FM
- Ramez
+ Rabeh Saqer
Rashed Al-Majed
AlThaqafeya
SBC
diff --git a/sites/shahid.mbc.net/shahid.mbc.net_fr.channels.xml b/sites/shahid.mbc.net/shahid.mbc.net_fr.channels.xml
index 1e0d6471..c38cc39f 100644
--- a/sites/shahid.mbc.net/shahid.mbc.net_fr.channels.xml
+++ b/sites/shahid.mbc.net/shahid.mbc.net_fr.channels.xml
@@ -7,27 +7,20 @@
El Kebeer Awi Channel
Al Asouf Channel
Masrah Masr Channel
- Maraya Channel
El Le'ba Channel
Selfie Channel
- Wifi Channel
- Alkhuzama Radio
- Arabs Got Talent Channel
- Gulf Comedy
Red Bull TV
- Ramadan Ma’na Series
Sikkat Safar Channel
- Studio Channel
- Seen Channel
- Ramadan Ma’na GCC
- Freej channel
- Al Sadma
+ El-Podcasters Channel
+ Al Hisn Channel
+ Hikayat Ba'ed Alfasl
Abdul Majeed Abdullah
Aflam
Al Arabiya
Al Arabiya Business
Alikhbariya
Al Hadath
+ Alkhuzama Radio
Al Quraan al Kareem
AlSaudia
KSA Now
@@ -36,31 +29,36 @@
Asharq Documentary
Asharq
Bab Al Hara Channel
- Bedaya TV
Big Time Plus
+ Fairuz
Majid Almohandis
+ Maraya Channel
MBC1
+ MBC1
+ MBC1
MBC2
MBC3
+ MBC3
MBC4
MBC5
MBC Action
MBC Bollywood
MBC Drama
+ MBC Drama
MBC FM
MBC Iraq
MBC Masr2
MBC Masr
MBC Masr Drama
+ MBC Masr
MBC MAX
MBC Persia
MBC Plus Drama
Mohammed Abdu
Movies Action
Movies Thriller
- Nature Time
Panorama FM
- Ramez
+ Rabeh Saqer
Rashed Al-Majed
AlThaqafeya
SBC
diff --git a/sites/vodafone.pt/__data__/content_0006.json b/sites/vodafone.pt/__data__/content_0006.json
new file mode 100644
index 00000000..4b6cdc09
--- /dev/null
+++ b/sites/vodafone.pt/__data__/content_0006.json
@@ -0,0 +1,1094 @@
+{
+ "result": {
+ "objectType": "KalturaAssetListResponse",
+ "totalCount": 4,
+ "objects": [
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Taís decide contar à avó a verdade sobre a morte de Teresa. Catarina aumenta a chantagem com Arthur e pede-lhe um apartamento em Nova Iorque para continuar a encontrar-se com ele. Arthur aceita a proposta. Lígia conta a Eduardo que a conta bancária de Arthur tem levantamentos astronómicos.[S]",
+ "endDate": 1758676501,
+ "externalId": "223403622_imi:110_88370239",
+ "id": 201100895,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "0eb23fca81c0411eab54c1b144499bc9",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/0eb23fca81c0411eab54c1b144499bc9/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "3647ca57ed0442ed967f822c72295543",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/3647ca57ed0442ed967f822c72295543/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 00:19:18"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 01:15:01"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H55M43S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H55M43S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "episode num": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "72"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS1099983H"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS1099983H"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS1099983H_152908"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "223403622"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Balacobaco",
+ "relatedEntities": {},
+ "startDate": 1758673158,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Telenovela"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Filmes e séries"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1510"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Juliana Silveira"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Roger Gobeth"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Letícia Medina"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Bruno Ferrari"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Barbara Borges"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Roberta Gualda"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Victor Pecoraro"
+ }
+ ]
+ },
+ "director": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Edson Spinello"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "12"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BR"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "223403622",
+ "epgChannelId": 3028,
+ "epgId": "223403622_imi:110_88370239",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Pensado a partir da essência da apresentadora, Tânia Ribas de Oliveira, o programa \"A Nossa Tarde\" tem, por isso, um lado mais emocional, com base em histórias com final feliz, e um lado muito divertido, ou não fosse a nossa Tânia uma pessoa que gosta de dar umas belas e sonoras gargalhadas.",
+ "endDate": 1758683631,
+ "externalId": "588370241_imi:110_88370241",
+ "id": 201100896,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "def9b5a85bce4d089fec377039ddf0c5",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/def9b5a85bce4d089fec377039ddf0c5/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "5843e2a8b8ba420683bbbbdcacf07370",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/5843e2a8b8ba420683bbbbdcacf07370/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 01:15:01"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 03:13:51"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H58M50S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H58M50S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23312925"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23312925"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23312925_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 02:15"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588370241"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "A Nossa Tarde",
+ "relatedEntities": {},
+ "startDate": 1758676501,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Talk Show"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Entretenimento"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "3300"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Tânia Ribas de Oliveira"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588370241",
+ "epgChannelId": 3028,
+ "epgId": "588370241_imi:110_88370241",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Todos os dias, um espaço dedicado a vendas por televisão, em que são feitas demonstrações dos produtos.",
+ "endDate": 1758689997,
+ "externalId": "588370245_imi:110_88370245",
+ "id": 201100897,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "b91a455ea5074c729908993637d6dbf2",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/b91a455ea5074c729908993637d6dbf2/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "30815462a65e459aae3c0378e88ed922",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/30815462a65e459aae3c0378e88ed922/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 03:13:51"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 04:59:57"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H46M06S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H46M06S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "235523"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "235523"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "235523_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 04:14"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588370245"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Televendas",
+ "relatedEntities": {},
+ "startDate": 1758683631,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Televendas"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "A600"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588370245",
+ "epgChannelId": 3028,
+ "epgId": "588370245_imi:110_88370245",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "O Bom Dia Portugal é um programa de informação apresentado por João Tomé de Carvalho e Carla Trafaria. Todos os dias, o Bom Dia Portugal dedica espaços específicos às notícias da atualidade nacional e internacional, desporto, meteorologia, trânsito e economia.[S]",
+ "endDate": 1758704284,
+ "externalId": "588376034_imi:110_88376034",
+ "id": 201100898,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "0657dffe77e54654a105a0003c7b612e",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/0657dffe77e54654a105a0003c7b612e/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "4d2e6a8c245b4fa89a1c37c01842342b",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/4d2e6a8c245b4fa89a1c37c01842342b/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 04:59:57"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 08:58:04"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT03H58M07S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT03H58M07S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326300"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326300"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326300_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 06:00"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376034"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Bom Dia Portugal",
+ "relatedEntities": {},
+ "startDate": 1758689997,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Notícias"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2000"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "João Tomé de Carvalho"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Carla Trafaria"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376034",
+ "epgChannelId": 3028,
+ "epgId": "588376034_imi:110_88376034",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sites/vodafone.pt/__data__/content_0612.json b/sites/vodafone.pt/__data__/content_0612.json
new file mode 100644
index 00000000..2c136b40
--- /dev/null
+++ b/sites/vodafone.pt/__data__/content_0612.json
@@ -0,0 +1,549 @@
+{
+ "result": {
+ "objectType": "KalturaAssetListResponse",
+ "totalCount": 2,
+ "objects": [
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Jorge Gabriel e Sónia Araújo dão-lhe as boas vindas à Praça da Alegria! Porque sabemos que gosta da nossa companhia, oferecemos boa disposição até à hora de almoço! De segunda a sexta-feira, a Praça da Alegria leva até si a melhor música, as últimas tendências da moda e conselhos úteis.",
+ "endDate": 1758715145,
+ "externalId": "588376035_imi:110_88376035",
+ "id": 201100899,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "3001e4d3e5ef4fbdb702160fef74eea6",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/3001e4d3e5ef4fbdb702160fef74eea6/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "5c46aaaa49014c9c9c7dca2d1886031b",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/5c46aaaa49014c9c9c7dca2d1886031b/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 08:58:04"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 11:59:05"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT03H01M01S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT03H01M01S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "true"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23284266"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23284266"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23284266_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 10:00"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376035"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Praça da Alegria",
+ "relatedEntities": {},
+ "startDate": 1758704284,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Talk Show"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Entretenimento"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "3300"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Jorge Gabriel"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Sónia Araújo"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376035",
+ "epgChannelId": 3028,
+ "epgId": "588376035_imi:110_88376035",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Todos os dias, às 13 horas, a sua hora de almoço é completada com a atualização das notícias que marcam a atualidade nacional e mundial, desde a política, a economia, a sociedade e o desporto. Reportagens no local, entrevistas em direto e sempre a isenção e o respeito pela verdade.[S]",
+ "endDate": 1758720514,
+ "externalId": "588376037_imi:110_88376037",
+ "id": 201100900,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "b0b25552f0144f1782381c7fa6d56d72",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/b0b25552f0144f1782381c7fa6d56d72/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "d49334a417d945cf8f651cfb044cda6e",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/d49334a417d945cf8f651cfb044cda6e/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 11:59:05"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 13:28:34"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H29M29S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H29M29S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "true"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23319459"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23319459"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23319459_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 12:59"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376037"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Jornal da Tarde",
+ "relatedEntities": {},
+ "startDate": 1758715145,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Notícias"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2000"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Carlos Daniel"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Hélder Silva"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Sandra Fernandes Pereira"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376037",
+ "epgChannelId": 3028,
+ "epgId": "588376037_imi:110_88376037",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sites/vodafone.pt/__data__/content_1218.json b/sites/vodafone.pt/__data__/content_1218.json
new file mode 100644
index 00000000..117ad786
--- /dev/null
+++ b/sites/vodafone.pt/__data__/content_1218.json
@@ -0,0 +1,845 @@
+{
+ "result": {
+ "objectType": "KalturaAssetListResponse",
+ "totalCount": 3,
+ "objects": [
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Violeta garante a Plínio que vai descobrir identidade de Marcelona. Norberto exige que Diva minta e diga a Isabel que é cúmplice de Eduardo há muito tempo. Dóris não gosta do plano. Eduardo vai a casa de Abigail, acompanhado pela polícia e por um oficial de justiça, e exige ver a sua filha.[S]",
+ "endDate": 1758723797,
+ "externalId": "223404039_imi:110_88376039",
+ "id": 201100901,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "4b7924534a4d448d933dd91e5fed7378",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/4b7924534a4d448d933dd91e5fed7378/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "3647ca57ed0442ed967f822c72295543",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/3647ca57ed0442ed967f822c72295543/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 13:28:34"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 14:23:17"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H54M43S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H54M43S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "episode num": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "73"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS1099983H"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS1099983H"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS1099983H_152908"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "223404039"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Balacobaco",
+ "relatedEntities": {},
+ "startDate": 1758720514,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Telenovela"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Filmes e séries"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1510"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Juliana Silveira"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Roger Gobeth"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Letícia Medina"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Bruno Ferrari"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Barbara Borges"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Roberta Gualda"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Victor Pecoraro"
+ }
+ ]
+ },
+ "director": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Edson Spinello"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "12"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BR"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "223404039",
+ "epgChannelId": 3028,
+ "epgId": "223404039_imi:110_88376039",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Pensado a partir da essência da apresentadora, Tânia Ribas de Oliveira, o programa \"A Nossa Tarde\" tem, por isso, um lado mais emocional, com base em histórias com final feliz, e um lado muito divertido, ou não fosse a nossa Tânia uma pessoa que gosta de dar umas belas e sonoras gargalhadas.",
+ "endDate": 1758731404,
+ "externalId": "588376040_imi:110_88376040",
+ "id": 201100902,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "def9b5a85bce4d089fec377039ddf0c5",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/def9b5a85bce4d089fec377039ddf0c5/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "5843e2a8b8ba420683bbbbdcacf07370",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/5843e2a8b8ba420683bbbbdcacf07370/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 14:23:17"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 16:30:04"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT02H06M47S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT02H06M47S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "true"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23312925"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23312925"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23312925_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 15:22"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376040"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "A Nossa Tarde",
+ "relatedEntities": {},
+ "startDate": 1758723797,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Talk Show"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Entretenimento"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "3300"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Tânia Ribas de Oliveira"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376040",
+ "epgChannelId": 3028,
+ "epgId": "588376040_imi:110_88376040",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "A atualidade diária do nosso país. \"Portugal em Direto\" é um espaço de informação nacional apresentado pela jornalista Dina Aguiar, que aposta na atualidade nacional, sempre atenta aos problemas das populações, contando para isso com o empenhamento e colaboração dos centros regionais da RTP.[S]",
+ "endDate": 1758737231,
+ "externalId": "588376042_imi:110_88376042",
+ "id": 201100903,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "2c2cccad63a84a0ea7b00b5110d6cca9",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/2c2cccad63a84a0ea7b00b5110d6cca9/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "171c2d78bf14495f9221844320d263ad",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/171c2d78bf14495f9221844320d263ad/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 16:30:04"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 18:07:11"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H37M07S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H37M07S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "true"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326250"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326250"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326250_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 17:30"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376042"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Portugal em Direto",
+ "relatedEntities": {},
+ "startDate": 1758731404,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Notícias"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2000"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Dina Aguiar"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376042",
+ "epgChannelId": 3028,
+ "epgId": "588376042_imi:110_88376042",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sites/vodafone.pt/__data__/content_1824.json b/sites/vodafone.pt/__data__/content_1824.json
new file mode 100644
index 00000000..9b242f00
--- /dev/null
+++ b/sites/vodafone.pt/__data__/content_1824.json
@@ -0,0 +1,1654 @@
+{
+ "result": {
+ "objectType": "KalturaAssetListResponse",
+ "totalCount": 6,
+ "objects": [
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "No \"Preço Certo\", as emoções são garantidas! Há mais de uma década em emissão na RTP1, \"O Preço Certo\" é o gameshow de maior longevidade da televisão mundial. Estreado pela primeira vez em 1956 nos Estados Unidos, já foi transmitido em mais de 30 países.",
+ "endDate": 1758740344,
+ "externalId": "588376044_imi:110_88376044",
+ "id": 201100904,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "9e8d517bd1d14b6091a42c6047d964b7",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/9e8d517bd1d14b6091a42c6047d964b7/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "728a26c719f14c4890632ed398075dae",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/728a26c719f14c4890632ed398075dae/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 18:07:11"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 18:59:04"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H51M53S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H51M53S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23319449"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23319449"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "23319449_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 19:06"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376044"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "O Preço Certo",
+ "relatedEntities": {},
+ "startDate": 1758737231,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Concurso"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Entretenimento"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "3100"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Fernando Mendes"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376044",
+ "epgChannelId": 3028,
+ "epgId": "588376044_imi:110_88376044",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "A mais rigorosa seleção de notícias, todos os dias às 20h00. De segunda a domingo, João Adelino Faria, José Rodrigues dos Santos e Ana Lourenço mostram-lhe o que de mais relevante se passou o país e no mundo. Se é importante está no Telejornal.[S]",
+ "endDate": 1758744101,
+ "externalId": "588376046_imi:110_88376046",
+ "id": 201100905,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "11d6de8e6a394dd0a10e45239d624e94",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/11d6de8e6a394dd0a10e45239d624e94/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "36b06f1ec73f4eb885e7d00869c34fc1",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/36b06f1ec73f4eb885e7d00869c34fc1/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 18:59:04"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 20:01:41"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H02M37S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H02M37S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "true"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326252"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326252"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2326252_1"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "qua 24-set, 19:59"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "588376046"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Telejornal",
+ "relatedEntities": {},
+ "startDate": 1758740344,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Notícias"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2000"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "João Adelino Faria"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "José Rodrigues dos Santos"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Ana Lourenço"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "588376046",
+ "epgChannelId": 3028,
+ "epgId": "588376046_imi:110_88376046",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Cada um de nós tem uma história para contar e para partilhar. Em cada uma destas reportagens ficaremos a conhecer a história de três pessoas: duas menos conhecidas do grande público e uma com elevada notoriedade que, por alguma razão, têm uma história interessante e surpreendente para contar.[S]",
+ "endDate": 1758746065,
+ "externalId": "223397390_imi:110_88275275",
+ "id": 201100906,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "89ec4967762740ba8ffc1f43cd214cd9",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/89ec4967762740ba8ffc1f43cd214cd9/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "3baecaf4d63946ad960dac69e146de2f",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/3baecaf4d63946ad960dac69e146de2f/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 20:01:41"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 20:34:25"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H32M44S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H32M44S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "episode num": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "11"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS284267H"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS284267H"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS284267H_146883"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "8"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "episode name": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Bafatá a Minha Casa; Minha Cozinha, Meu Laboratório"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "223397390"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Outras Histórias",
+ "relatedEntities": {},
+ "startDate": 1758744101,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Reportagem"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Sociedade e Economia"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Notícias"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "8122"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2000"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "223397390",
+ "epgChannelId": 3028,
+ "epgId": "223397390_imi:110_88275275",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Vasco Palmeirim apresenta o Joker, o concurso favorito dos portugueses. Um concorrente, com a ajuda de 7 Jokers e do Super Joker, responde a 12 perguntas com um só objetivo em mente: Conquistar os 50 000 euros do prémio máximo![S]",
+ "endDate": 1758749744,
+ "externalId": "223404042_imi:110_88376049",
+ "id": 201100907,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "2167919cfcef47278e3918b60fc6f3b7",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/2167919cfcef47278e3918b60fc6f3b7/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "fa3831457b144d1fbc076a1e41d7af07",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/fa3831457b144d1fbc076a1e41d7af07/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 20:34:25"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 21:35:44"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H01M19S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H01M19S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "episode num": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "142"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS277461H"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS277461H"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "IPS277461H_151406"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "9"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "223404042"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Joker",
+ "relatedEntities": {},
+ "startDate": 1758746065,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Concurso"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Entretenimento"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Série"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "3100"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF02"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Vasco Palmeirim"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "6"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "223404042",
+ "epgChannelId": 3028,
+ "epgId": "223404042_imi:110_88376049",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "Lucas, o cozinheiro, seduz América, a estrela de televisão e candidata presidencial. Ele entrará clandestinamente em casa dela para a seduzir com incríveis refeições, provocando o cruzamento improvável do destino do cozinheiro com o da Presidente.[S]",
+ "endDate": 1758756480,
+ "externalId": "21976385_imi:110_88376050",
+ "id": 201100908,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "bf9e0a2f84cb4d7d84f19e82f9603dac",
+ "imageTypeId": 92,
+ "imageTypeName": "ca",
+ "ratio": "ca",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/bf9e0a2f84cb4d7d84f19e82f9603dac/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "ed6c597dd203429a91c910c74f335b7c",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/ed6c597dd203429a91c910c74f335b7c/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "9e836e1f185a4307a32cebe368846b9d",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/9e836e1f185a4307a32cebe368846b9d/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 21:35:44"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 23:28:00"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H52M16S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT01H52M16S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2023"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "21976385"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "A Bela América",
+ "relatedEntities": {},
+ "startDate": 1758749744,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Comédia"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Filmes e séries"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Filme"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "1400"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "BF00"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "São José Correia"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Estêvão Antunes"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Custódia Gallego"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Daniela Claro"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "João Castro Gomes"
+ }
+ ]
+ },
+ "director": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "António Ferreira"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "12"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "21976385",
+ "epgChannelId": 3028,
+ "epgId": "21976385_imi:110_88376050",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ },
+ {
+ "objectType": "KalturaProgramAsset",
+ "createDate": 1758758403,
+ "description": "O Janela Indiscreta é o seu programa de cinema! Apresenta, em primeira mão, estreias cinematográficas e entrevistas exclusivas aos protagonistas das produções nacionais e internacionais, dando a conhecer curiosidades e histórias de bastidores.[S]",
+ "endDate": 1758759060,
+ "externalId": "223404043_imi:110_88376052",
+ "id": 201100909,
+ "images": [
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "250072dc6e5649eeba3b17a887baef5f",
+ "imageTypeId": 93,
+ "imageTypeName": "cc",
+ "ratio": "cc",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/250072dc6e5649eeba3b17a887baef5f/version/0",
+ "version": 0
+ },
+ {
+ "objectType": "KalturaMediaImage",
+ "id": "0c3796e1280f496a8cd5175aaf531107",
+ "imageTypeId": 91,
+ "imageTypeName": "bg",
+ "ratio": "bg",
+ "url": "https://3038.images-vfp2.ott.kaltura.com/Service.svc/GetImage/p/3038/entry_id/0c3796e1280f496a8cd5175aaf531107/version/0",
+ "version": 0
+ }
+ ],
+ "indexStatus": "Ok",
+ "metas": {
+ "onAir start time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/24/2025 23:28:00"
+ },
+ "onAir end time": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "09/25/2025 00:11:00"
+ },
+ "channel ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "110"
+ },
+ "display duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H43M00S"
+ },
+ "actual duration": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT00H43M00S"
+ },
+ "sign language available": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "false"
+ },
+ "episode num": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "39"
+ },
+ "series ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "26686"
+ },
+ "unifiedSeriesID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "26686"
+ },
+ "season ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "26686_146634"
+ },
+ "season number": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "17"
+ },
+ "year": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2025"
+ },
+ "program unique ID": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "223404043"
+ },
+ "catchupInHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "catchupOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "startOver": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "allowRecording": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "downloadable": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "liveTVOutOfHome": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ },
+ "timeShifting": {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "yes"
+ }
+ },
+ "name": "Janela Indiscreta",
+ "relatedEntities": {},
+ "startDate": 1758756480,
+ "tags": {
+ "genre": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Magazine de notícias"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Notícias"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Celebridades"
+ }
+ ]
+ },
+ "genre_desc": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2200"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "2010"
+ }
+ ]
+ },
+ "actors": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "Mário Augusto"
+ }
+ ]
+ },
+ "subtitles available": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "POR"
+ }
+ ]
+ },
+ "parental Rating": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "0"
+ }
+ ]
+ },
+ "country of production": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "PT"
+ }
+ ]
+ },
+ "contentTags": {
+ "objectType": "KalturaMultilingualStringValueArray",
+ "objects": [
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_rec=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "g_cu_rb=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "s_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_live_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_restart_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_catchup_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "m_npvr_ooh=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_en=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_live=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_restart=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_catchup=1"
+ },
+ {
+ "objectType": "KalturaMultilingualStringValue",
+ "value": "w_npvr=1"
+ }
+ ]
+ }
+ },
+ "type": 0,
+ "updateDate": 1758758403,
+ "enableCatchUp": true,
+ "enableCdvr": false,
+ "crid": "223404043",
+ "epgChannelId": 3028,
+ "epgId": "223404043_imi:110_88376052",
+ "externalOfferIds": "",
+ "linearAssetId": 636403,
+ "relatedMediaId": 0,
+ "enableStartOver": true,
+ "enableTrickPlay": false
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sites/vodafone.pt/readme.md b/sites/vodafone.pt/readme.md
new file mode 100644
index 00000000..a015f0b1
--- /dev/null
+++ b/sites/vodafone.pt/readme.md
@@ -0,0 +1,19 @@
+# vodafone.pt
+
+### Download the guide
+
+```sh
+npm run grab --- --site=vodafone.pt
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/vodafone.pt/vodafone.pt.config.js --output=./sites/vodafone.pt/vodafone.pt.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- vodafone.pt
+```
diff --git a/sites/vodafone.pt/vodafone.pt.channels.xml b/sites/vodafone.pt/vodafone.pt.channels.xml
new file mode 100644
index 00000000..05bf0cdd
--- /dev/null
+++ b/sites/vodafone.pt/vodafone.pt.channels.xml
@@ -0,0 +1,163 @@
+
+
+ RTP1
+ RTP2
+ SIC
+ TVI
+ SIC Noticias
+ RTP3
+ CNN Portugal
+ CMTV
+ News Now
+ Globo
+ Canal 11
+ V+ TVI
+ Porto Canal
+ SIC Caras
+ SIC Radical
+ SIC Mulher
+ RTP Memória
+ SportTV+
+ SportTV1
+ SportTV2
+ SportTV3
+ SportTV4
+ SportTV5
+ SportTV6
+ SportTV7
+ Eurosport 1
+ Eurosport 2
+ A Bola TV
+ BTV
+ Sporting TV
+ DAZN 1
+ DAZN 2
+ DAZN 3
+ DAZN 4
+ DAZN 5
+ DAZN 6
+ W-Sport
+ Fight Network
+ FightBox
+ Nautical
+ Channel
+ Fuel TV
+ SportTV NBA
+ Disney Channel
+ Disney Jr.
+ Panda Kids
+ Cartoon Network
+ Canal Panda
+ BabyTV
+ SIC K
+ CARTOONITO
+ Nickelodeon
+ Super RTL
+ Biggs
+ Dizi
+ SIC Novelas
+ Canal
+ Hollywood
+ CineMundo
+ STAR Movies
+ STAR Channel
+ AXN
+ STAR Life
+ STAR Crime
+ STAR Comedy
+ AXN White
+ AXN Movies
+ SyFy
+ AMC
+ Eurochannel PT
+ Canal Q
+ MTV
+ MTV 00s
+ MCM Top
+ MCM Pop
+ CMusicTV
+ Mezzo
+ Afro Music
+ Trace Urban
+ Trace Toca
+ Mezzo Live
+ 24Kitchen
+ Casa e Cozinha
+ Food Network
+ Discovery
+ Channel
+ National
+ Geographic
+ Nat
+ Geo Wild
+ História
+ Odisseia
+ DocuBox
+ AMC Crime
+ Investigation
+ Discovery
+ Record Europa
+ AMC Break
+ TLC
+ E!
+ Travel Channel
+ Fashion
+ HGTV
+ M6
+ Fast & Fun Box
+ GINX ESports TV
+ Luxe.tv
+ InSight TV
+ My Zen TV
+ GameToon
+ ARTV
+ Record News
+ CNN
+ Euronews
+ PT
+ Euronews
+ Bloomberg
+ SkyNews
+ BBC World News
+ CNBC
+ AlJazeera
+ Rai News
+ 24h
+ DW
+ France 24
+ Français
+ France 24
+ English
+ TCV News
+ Phoenix
+ RTP Madeira
+ RTP Açores
+ Localvisão TV
+ RTP África
+ TPA
+ Canal 180
+ Galicia
+
+ TVE
+ TV5Monde
+ Rai 1
+ Vox
+ RTL
+ Pro TV
+ International
+ KBS World
+ Arirang
+ NHK World
+
+ Cubavisión
+ Freedom
+ Canção Nova
+ uniFÉ
+ Kuriakos TV
+ BenficaTV Multicam 1
+ BenficaTV Multicam 2
+ BenficaTV Multicam 3
+ BenficaTV Multicam 4
+ Conta Lá
+
\ No newline at end of file
diff --git a/sites/vodafone.pt/vodafone.pt.config.js b/sites/vodafone.pt/vodafone.pt.config.js
new file mode 100644
index 00000000..ec7eee41
--- /dev/null
+++ b/sites/vodafone.pt/vodafone.pt.config.js
@@ -0,0 +1,84 @@
+const { DateTime } = require('luxon')
+const axios = require('axios')
+
+const API_ENDPOINT = 'https://cdn.pt.vtv.vodafone.com/epg'
+
+const headers = {
+ Origin: 'https://www.vodafone.pt',
+ Referer: 'https://www.vodafone.pt/',
+ 'User-Agent': 'Mozilla/5.0 (compatible; tv_grab_pt_vodafone)',
+ Accept: 'application/json, text/javascript, */*; q=0.01',
+ 'Accept-Language': 'pt-PT,pt;q=0.9,en;q=0.8'
+}
+
+module.exports = {
+ site: 'vodafone.pt',
+ days: 2,
+ request: {
+ headers
+ },
+ url: function ({ channel, date }) {
+ const datetime = DateTime.fromJSDate(date.toDate()).setZone('Europe/Lisbon')
+ const formattedMonth = datetime.month < 10 ? `0${datetime.month}` : datetime.month
+ const formattedDay = datetime.day < 10 ? `0${datetime.day}` : datetime.day
+ return `${API_ENDPOINT}/${channel.site_id}/${date.year()}/${formattedMonth}/${formattedDay}/00-06`
+ },
+ async parser({ content, date, channel }) {
+ let programs = []
+ let items = parseItems(content)
+ if (items.length === 0) return programs
+
+ const datetime = DateTime.fromJSDate(date.toDate()).setZone('Europe/Lisbon')
+ const formattedMonth = datetime.month < 10 ? `0${datetime.month}` : datetime.month
+ const formattedDay = datetime.day < 10 ? `0${datetime.day}` : datetime.day
+
+ // Fetch the remaining 3 periods to get a full day schedule
+ const promises = [
+ axios.get(`${API_ENDPOINT}/${channel.site_id}/${date.year()}/${formattedMonth}/${formattedDay}/06-12`, { headers }),
+ axios.get(`${API_ENDPOINT}/${channel.site_id}/${date.year()}/${formattedMonth}/${formattedDay}/12-18`, { headers }),
+ axios.get(`${API_ENDPOINT}/${channel.site_id}/${date.year()}/${formattedMonth}/${formattedDay}/18-00`, { headers })
+ ]
+
+ await Promise.allSettled(promises).then(results => {
+ results.forEach(r => {
+ if (r.status === 'fulfilled') {
+ items = items.concat(parseItems(r.value.data))
+ }
+ })
+ })
+
+ for (let item of items) {
+ if (!item.startDate || !item.endDate) continue
+ let start = DateTime.fromSeconds(item.startDate, { zone: 'UTC' }).toUTC()
+ let stop = DateTime.fromSeconds(item.endDate, { zone: 'UTC' }).toUTC()
+ if (stop < start) {
+ stop = stop.plus({ days: 1 })
+ }
+ const prog = {
+ title: item.name || 'Sem título',
+ start,
+ stop
+ }
+ if (item.description) prog.description = item.description
+ if (item.metas?.year?.value) prog.year = item.metas.year.value
+ if (item.tags?.genre?.objects) {
+ prog.category = item.tags.genre.objects.map(g => g.value)
+ }
+ programs.push(prog)
+ }
+ return programs
+ }
+}
+
+function parseItems(content) {
+ let json
+ try {
+ json = typeof content === 'string' ? JSON.parse(content) : content
+ } catch {
+ return []
+ }
+ if (!json || !json.result) return []
+ const { result } = json
+ if (!Array.isArray(result.objects)) return []
+ return result.objects
+}
\ No newline at end of file
diff --git a/sites/vodafone.pt/vodafone.pt.test.js b/sites/vodafone.pt/vodafone.pt.test.js
new file mode 100644
index 00000000..3f08e781
--- /dev/null
+++ b/sites/vodafone.pt/vodafone.pt.test.js
@@ -0,0 +1,103 @@
+import { parser, url, request } from './vodafone.pt.config.js'
+const axios = require('axios')
+const fs = require('fs')
+const path = require('path')
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+dayjs.extend(customParseFormat)
+dayjs.extend(utc)
+
+const date = dayjs.utc('2025-09-24', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: '3028',
+ xmltv_id: 'RTP1.pt'
+}
+
+const headers = {
+ Origin: 'https://www.vodafone.pt',
+ Referer: 'https://www.vodafone.pt/',
+ 'User-Agent': 'Mozilla/5.0 (compatible; tv_grab_pt_vodafone)',
+ Accept: 'application/json, text/javascript, */*; q=0.01',
+ 'Accept-Language': 'pt-PT,pt;q=0.9,en;q=0.8'
+}
+
+jest.mock('axios')
+
+it('can generate valid url', () => {
+ expect(url({ channel, date })).toBe(
+ 'https://cdn.pt.vtv.vodafone.com/epg/3028/2025/09/24/00-06'
+ )
+})
+
+it('can generate valid request headers', () => {
+ expect(request.headers).toMatchObject(headers)
+})
+
+it('can parse response', async () => {
+ const content = fs.readFileSync(path.resolve(__dirname, '__data__/content_0006.json'), 'utf8')
+
+ axios.get.mockImplementation((url, config) => {
+ if (
+ url ===
+ 'https://cdn.pt.vtv.vodafone.com/epg/3028/2025/09/24/06-12' &&
+ JSON.stringify(config.headers) === JSON.stringify(headers)
+ ) {
+ return Promise.resolve({
+ data: fs.readFileSync(path.resolve(__dirname, '__data__/content_0612.json'), 'utf8')
+ })
+ } else if (
+ url ===
+ 'https://cdn.pt.vtv.vodafone.com/epg/3028/2025/09/24/12-18' &&
+ JSON.stringify(config.headers) === JSON.stringify(headers)
+ ) {
+ return Promise.resolve({
+ data: fs.readFileSync(path.resolve(__dirname, '__data__/content_1218.json'), 'utf8')
+ })
+ } else if (
+ url ===
+ 'https://cdn.pt.vtv.vodafone.com/epg/3028/2025/09/24/18-00' &&
+ JSON.stringify(config.headers) === JSON.stringify(headers)
+ ) {
+ return Promise.resolve({
+ data: fs.readFileSync(path.resolve(__dirname, '__data__/content_1824.json'), 'utf8')
+ })
+ } else {
+ return Promise.resolve({ data: '' })
+ }
+ })
+
+ let results = await parser({ content, channel, date })
+ results = results.map(p => {
+ p.start = p.start.toJSON()
+ p.stop = p.stop.toJSON()
+ return p
+ })
+
+ // first set has 15 programs, check first and last
+ expect(results).toHaveLength(15)
+
+ expect(results[0]).toMatchObject({
+ start: '2025-09-24T00:19:18.000Z',
+ stop: '2025-09-24T01:15:01.000Z',
+ title: 'Balacobaco',
+ description:
+ 'Taís decide contar à avó a verdade sobre a morte de Teresa. Catarina aumenta a chantagem com Arthur e pede-lhe um apartamento em Nova Iorque para continuar a encontrar-se com ele. Arthur aceita a proposta. Lígia conta a Eduardo que a conta bancária de Arthur tem levantamentos astronómicos.[S]',
+ })
+
+ expect(results[14]).toMatchObject({
+ start: '2025-09-24T23:28:00.000Z',
+ stop: '2025-09-25T00:11:00.000Z',
+ title: 'Janela Indiscreta',
+ description: 'O Janela Indiscreta é o seu programa de cinema! Apresenta, em primeira mão, estreias cinematográficas e entrevistas exclusivas aos protagonistas das produções nacionais e internacionais, dando a conhecer curiosidades e histórias de bastidores.[S]',
+ })
+})
+
+it('can handle empty guide', done => {
+ parser({content:'{}', channel, date})
+ .then(result => {
+ expect(result).toMatchObject([])
+ done()
+ })
+ .catch(done)
+})