mirror of
https://github.com/iptv-org/epg
synced 2025-12-16 10:26:41 -05:00
Merge pull request #2864 from thomraider12/master
Add vodafone.pt (help)
This commit is contained in:
Binary file not shown.
Binary file not shown.
1094
sites/vodafone.pt/__data__/content_0006.json
Normal file
1094
sites/vodafone.pt/__data__/content_0006.json
Normal file
File diff suppressed because it is too large
Load Diff
549
sites/vodafone.pt/__data__/content_0612.json
Normal file
549
sites/vodafone.pt/__data__/content_0612.json
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
845
sites/vodafone.pt/__data__/content_1218.json
Normal file
845
sites/vodafone.pt/__data__/content_1218.json
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
1654
sites/vodafone.pt/__data__/content_1824.json
Normal file
1654
sites/vodafone.pt/__data__/content_1824.json
Normal file
File diff suppressed because it is too large
Load Diff
19
sites/vodafone.pt/readme.md
Normal file
19
sites/vodafone.pt/readme.md
Normal file
@@ -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
|
||||||
|
```
|
||||||
163
sites/vodafone.pt/vodafone.pt.channels.xml
Normal file
163
sites/vodafone.pt/vodafone.pt.channels.xml
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTP1.pt" site_id="3028">RTP1</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTP2.pt" site_id="2825">RTP2</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SIC.pt" site_id="2670">SIC</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TVI.pt" site_id="2671">TVI</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SICNoticias.pt" site_id="2935">SIC Noticias</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTP3.pt" site_id="7187">RTP3</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CNNPortugal.pt" site_id="5678">CNN Portugal</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CMTV.pt" site_id="3414">CMTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="NewsNow.pt" site_id="8711">News Now</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RedeGlobo.br" site_id="3020">Globo</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Canal11.pt" site_id="5585">Canal 11</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="VPlusTVI.pt" site_id="8399">V+ TVI</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="PortoCanal.pt" site_id="2768">Porto Canal</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SICCaras.pt" site_id="2937">SIC Caras</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SICRadical.pt" site_id="2915">SIC Radical</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SICMulher.pt" site_id="2936">SIC Mulher</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTPMemoria.pt" site_id="2727">RTP Memória</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTVPlus.pt" site_id="2930">SportTV+</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV1.pt" site_id="2687">SportTV1</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV2.pt" site_id="2688">SportTV2</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV3.pt" site_id="2689">SportTV3</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV4.pt" site_id="2690">SportTV4</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV5.pt" site_id="2691">SportTV5</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV6.pt" site_id="7250">SportTV6</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportTV7.pt" site_id="8743">SportTV7</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Eurosport1.fr" site_id="2675">Eurosport 1</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Eurosport2.fr" site_id="5043">Eurosport 2</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="ABolaTV.pt" site_id="5583">A Bola TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="BenficaTV.pt" site_id="2852">BTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SportingTV.pt" site_id="3004">Sporting TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DAZN1.uk@Portugal" site_id="3885">DAZN 1</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DAZN2.uk@Portugal" site_id="3886">DAZN 2</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DAZN3.uk@Portugal" site_id="3887">DAZN 3</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DAZN4.uk@Portugal" site_id="3888">DAZN 4</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DAZN5.uk@Portugal" site_id="3889">DAZN 5</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DAZN6.uk@Portugal" site_id="3890">DAZN 6</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="WSport.za" site_id="8901">W-Sport</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FightNetwork.ca" site_id="2903">Fight Network</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FightBox.nl" site_id="2720">FightBox</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="NauticalChannel.it" site_id="2765">Nautical
|
||||||
|
Channel</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FUELTV.at" site_id="2692">Fuel TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="4862">SportTV NBA</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DisneyChannel.pt" site_id="3012">Disney Channel</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DisneyJunior.pt" site_id="7522">Disney Jr.</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="PandaKids.pt" site_id="7188">Panda Kids</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CartoonNetworkWesternEurope.uk@Portugal"
|
||||||
|
site_id="8006">Cartoon Network</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CanalPanda.pt" site_id="7185">Canal Panda</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="BabyTV.uk" site_id="8781">BabyTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SICK.pt" site_id="2938">SIC K</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Cartoonito.pt" site_id="8005">CARTOONITO</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Nickelodeon.pt" site_id="8645">Nickelodeon</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTLSuper.de" site_id="2860">Super RTL</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Biggs.pt" site_id="8636">Biggs</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TimelessDiziChannel.ro" site_id="8529">Dizi</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SICNovelas.pt" site_id="8735">SIC Novelas</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CanalHollywood.pt" site_id="3026">Canal
|
||||||
|
Hollywood</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CineMundo.pt" site_id="3027">CineMundo</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="StarMovies.pt" site_id="2677">STAR Movies</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="StarChannel.pt" site_id="2715">STAR Channel</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AXN.pt" site_id="2713">AXN</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="StarLife.pt" site_id="2717">STAR Life</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="StarCrime.pt" site_id="2847">STAR Crime</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="StarComedy.pt" site_id="2893">STAR Comedy</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AXNWhite.us@Portugal" site_id="2833">AXN White</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AXNMovies.pt" site_id="2700">AXN Movies</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Syfy.pt" site_id="2701">SyFy</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AMCEurope.uk@Portugal" site_id="2996">AMC</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Eurochannel.uk" site_id="3416">Eurochannel PT</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CanalQ.pt" site_id="2902">Canal Q</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="MTV.pt" site_id="2925">MTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="MTV00s.uk" site_id="2754">MTV 00s</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="MCMTop.fr" site_id="2779">MCM Top</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="MCMPop.fr" site_id="8646">MCM Pop</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="2743">CMusicTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Mezzo.fr" site_id="2761">Mezzo</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AfroMusicChannel.ao" site_id="8606">Afro Music</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TraceUrban.fr" site_id="3015">Trace Urban</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TraceToca.fr" site_id="2723">Trace Toca</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="MezzoLive.fr" site_id="2931">Mezzo Live</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="24Kitchen.us@Portugal" site_id="2844">24Kitchen</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CasaeCozinha.pt" site_id="7090">Casa e Cozinha</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FoodNetworkEMEA.us" site_id="2994">Food Network</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DiscoveryChannel.pt" site_id="2914">Discovery
|
||||||
|
Channel</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="NationalGeographic.pt" site_id="2741">National
|
||||||
|
Geographic</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="NationalGeographicWild.pt" site_id="2846">Nat
|
||||||
|
Geo Wild</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Historia.pt" site_id="8783">História</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Odisseia.pt" site_id="3016">Odisseia</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DocuBox.nl" site_id="2934">DocuBox</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AMCCrime.pt" site_id="8426">AMC Crime</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="InvestigationDiscoveryEurope.us" site_id="8776">Investigation
|
||||||
|
Discovery</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RecordTVEuropa.pt" site_id="2854">Record Europa</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AMCBreak.pt" site_id="3017">AMC Break</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TLC.pt" site_id="8398">TLC</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="2837">E!</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TravelChannel.us" site_id="2993">Travel Channel</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FashionTVEurope.fr" site_id="2706">Fashion</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="8775">HGTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="M6.fr" site_id="2856">M6</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FastFunBox.nl" site_id="2924">Fast & Fun Box</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="GINXTV.uk" site_id="8013">GINX ESports TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="LuxeTV.lu" site_id="2762">Luxe.tv</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="InsightTV.nl" site_id="2933">InSight TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="MyZenTV.fr" site_id="2708">My Zen TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Gametoon.nl" site_id="7075">GameToon</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="ARTV.pt" site_id="2736">ARTV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RecordNews.br" site_id="2812">Record News</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CNN.us" site_id="8396">CNN</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="EuronewsPortuguese.fr" site_id="2747">Euronews
|
||||||
|
PT</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="2998">Euronews</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="BloombergTV.us@Europe" site_id="2760">Bloomberg</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="SkyNewsInternational.uk" site_id="2849">SkyNews</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="BBCNews.uk@Europe" site_id="2746">BBC World News</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CNBCEurope.uk" site_id="2750">CNBC</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="AlJazeera.qa@English" site_id="2784">AlJazeera</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="2773">Rai News</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="24Horas.es" site_id="2749">24h</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="DW.de" site_id="2781">DW</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="France24.fr@French" site_id="2770">France 24
|
||||||
|
Français</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="France24.fr@English" site_id="2769">France 24
|
||||||
|
English</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TCVInternacional.cv" site_id="2884">TCV News</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="PhoenixCNEChannel.hk" site_id="2766">Phoenix</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTPMadeira.pt" site_id="8424">RTP Madeira</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTPAcores.pt" site_id="7084">RTP Açores</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="LocalVisaoTV.pt" site_id="2843">Localvisão TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTPAfrica.pt" site_id="2728">RTP África</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TPAi.ao" site_id="2751">TPA</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="Canal180.pt" site_id="2814">Canal 180</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="GaliciaTVEuropa.es" site_id="2710">Galicia</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TVEInternacionalEuropeAsia.es" site_id="2748">
|
||||||
|
TVE</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TV5MondeEurope.fr" site_id="2742">TV5Monde</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="2772">Rai 1</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="VOX.de" site_id="2861">Vox</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="RTL.de" site_id="2859">RTL</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="PROTVInternational.ro" site_id="2757">Pro TV
|
||||||
|
International</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="KBSWorld.kr" site_id="2897">KBS World</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="ArirangTV.kr" site_id="3019">Arirang</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="NHKWorldJapan.jp" site_id="2890">NHK World</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="CubavisionInternacional.cu" site_id="2785">
|
||||||
|
Cubavisión</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="FREEDOM.ua" site_id="5610">Freedom</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="TVCancaoNova.pt" site_id="2709">Canção Nova</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="UnifeTV.pt" site_id="8368">uniFÉ</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="KuriakosTV.pt" site_id="2927">Kuriakos TV</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="8598">BenficaTV Multicam 1</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="8599">BenficaTV Multicam 2</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="8600">BenficaTV Multicam 3</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="8601">BenficaTV Multicam 4</channel>
|
||||||
|
<channel site="vodafone.pt" lang="pt" xmltv_id="" site_id="8933">Conta Lá</channel>
|
||||||
|
</channels>
|
||||||
84
sites/vodafone.pt/vodafone.pt.config.js
Normal file
84
sites/vodafone.pt/vodafone.pt.config.js
Normal file
@@ -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
|
||||||
|
}
|
||||||
103
sites/vodafone.pt/vodafone.pt.test.js
Normal file
103
sites/vodafone.pt/vodafone.pt.test.js
Normal file
@@ -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)
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user