From 7dc51b514710076cb1650bf5335b8a5ec5671408 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 22:41:20 +0300
Subject: [PATCH 1/7] Fixes linter issues
---
sites/rikstv.no/readme.md | 42 +++----
sites/rikstv.no/rikstv.no.channels.xml | 166 ++++++++++++-------------
sites/rikstv.no/rikstv.no.config.js | 148 +++++++++++-----------
sites/rikstv.no/rikstv.no.test.js | 138 ++++++++++----------
4 files changed, 252 insertions(+), 242 deletions(-)
diff --git a/sites/rikstv.no/readme.md b/sites/rikstv.no/readme.md
index 31eb0b38..463a3282 100644
--- a/sites/rikstv.no/readme.md
+++ b/sites/rikstv.no/readme.md
@@ -1,21 +1,21 @@
-# rikstv.no
-
-https://play.rikstv.no/tv-guide
-
-### Download the guide
-
-```sh
-npm run grab --- --site=rikstv.no
-```
-
-### Update channel list
-
-```sh
-npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
-```
-
-### Test
-
-```sh
-npm test --- rikstv.no
-```
+# rikstv.no
+
+https://play.rikstv.no/tv-guide
+
+### Download the guide
+
+```sh
+npm run grab --- --site=rikstv.no
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/rikstv.no/rikstv.no.config.js --output=./sites/rikstv.no/rikstv.no.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- rikstv.no
+```
diff --git a/sites/rikstv.no/rikstv.no.channels.xml b/sites/rikstv.no/rikstv.no.channels.xml
index 96aebc97..8e9e46c9 100644
--- a/sites/rikstv.no/rikstv.no.channels.xml
+++ b/sites/rikstv.no/rikstv.no.channels.xml
@@ -1,83 +1,83 @@
-
-
- BBC News
- Discovery
- TLC
- Disney Channel
- Eurosport 1
- FEM
- Frikanalen
- REX
- National Geographic
- NRK Super/3
- NRK1
- NRK1 Tegnspråk
- NRK2
- SVT1
- TV 2 Livsstil
- TV 2 Direkte
- TV 2 Nyheter
- TV 2 Zebra
- TV3
- TVNorge
- TV3+
- Visjon Norge
- VOX
- Animal Planet
- BBC Nordic
- TV6
- History Channel
- Eurosport Norge
- Nick Jr.
- Nickelodeon
- TV 2 Danmark
- DR2
- DR1
- SVT2
- TV4
- CNN
- Discovery Science
- Investigation Discovery
- Norway Live
- V Sport +
- V Sport 1
- V Sport 2
- V Sport 3
- Hits
- Stars
- SF-kanalen
- TV 2 Sport 1
- TV 2 Sport 2
- Sky News
- CNBC
- Deutsche Welle
- France 24
- NRK1 Sørlandet
- NRK1 Nordland
- NRK1 Midtnytt
- NRK1 Vestfold og Telemark
- NRK1 Vestlandsrevyen
- NRK1 Nordnytt
- NRK1 Innlandet
- MTV00s
- TV Nord
- Travel Channel
- Food Network
- Euronews
- Auto Motor og Sport TV
- Rikstoto Direkte
- TV Øst
- NRK1 Rogaland
- NRK1 Møre og Romsdal
- NRK1 Lydtekst
- NRK2 Lydtekst
- NRK3 Super Lydtekst
- Heim TV
- V sport golf
- NRK1 Underteksting
- NRK2 Underteksting
- Naturkanal1
- V Film Action
- V Film Premiere
- V Series
-
+
+
+ BBC News
+ Discovery
+ TLC
+ Disney Channel
+ Eurosport 1
+ FEM
+ Frikanalen
+ REX
+ National Geographic
+ NRK Super/3
+ NRK1
+ NRK1 Tegnspråk
+ NRK2
+ SVT1
+ TV 2 Livsstil
+ TV 2 Direkte
+ TV 2 Nyheter
+ TV 2 Zebra
+ TV3
+ TVNorge
+ TV3+
+ Visjon Norge
+ VOX
+ Animal Planet
+ BBC Nordic
+ TV6
+ History Channel
+ Eurosport Norge
+ Nick Jr.
+ Nickelodeon
+ TV 2 Danmark
+ DR2
+ DR1
+ SVT2
+ TV4
+ CNN
+ Discovery Science
+ Investigation Discovery
+ Norway Live
+ V Sport +
+ V Sport 1
+ V Sport 2
+ V Sport 3
+ Hits
+ Stars
+ SF-kanalen
+ TV 2 Sport 1
+ TV 2 Sport 2
+ Sky News
+ CNBC
+ Deutsche Welle
+ France 24
+ NRK1 Sørlandet
+ NRK1 Nordland
+ NRK1 Midtnytt
+ NRK1 Vestfold og Telemark
+ NRK1 Vestlandsrevyen
+ NRK1 Nordnytt
+ NRK1 Innlandet
+ MTV00s
+ TV Nord
+ Travel Channel
+ Food Network
+ Euronews
+ Auto Motor og Sport TV
+ Rikstoto Direkte
+ TV Øst
+ NRK1 Rogaland
+ NRK1 Møre og Romsdal
+ NRK1 Lydtekst
+ NRK2 Lydtekst
+ NRK3 Super Lydtekst
+ Heim TV
+ V sport golf
+ NRK1 Underteksting
+ NRK2 Underteksting
+ Naturkanal1
+ V Film Action
+ V Film Premiere
+ V Series
+
diff --git a/sites/rikstv.no/rikstv.no.config.js b/sites/rikstv.no/rikstv.no.config.js
index 29c64be7..b897473b 100644
--- a/sites/rikstv.no/rikstv.no.config.js
+++ b/sites/rikstv.no/rikstv.no.config.js
@@ -1,72 +1,76 @@
-const dayjs = require('dayjs')
-const utc = require('dayjs/plugin/utc')
-const axios = require('axios')
-
-dayjs.extend(utc)
-
-module.exports = {
- site: 'rikstv.no',
- days: 3,
- request: {
- cache: {
- ttl: 60 * 60 * 1000 // 1 hour
- }
- },
- url({ channel, date }) {
- return `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`
- },
- parser: function ({ content }) {
- let data
- try {
- data = JSON.parse(content)
- } catch (error) {
- console.error('Error parsing JSON:', error)
- return []
- }
-
- const programs = []
-
- if (data && Array.isArray(data)) {
- data.forEach(item => {
- if (!item) return
- //const start = dayjs.utc(item.broadcastedTime)
- //const stop = dayjs.utc(item.broadcastedTimeEnd)
-
- programs.push({
- title: item.seriesName,
- sub_title: item.name,
- description: item.description || item.synopsis,
- season: item.season || null,
- episode: item.episode || null,
- category: item.genres,
- actors: item.actors,
- directors: item.director || item.directors,
- icon: item.imagePackUri,
- start: item.broadcastedTime,
- stop: item.broadcastedTimeEnd
- })
- })
- }
-
- return programs
- },
- async channels() {
- try {
- const response = await axios.get('https://play.rikstv.no/api/content-search/1/channel?includePrograms=false')
- if (!response.data || !Array.isArray(response.data)) {
- console.error('Error: No channels data found')
- return []
- }
- return response.data.map(item => {
- return {
- lang: 'no',
- site_id: item.channelId,
- name: item.serviceName
- }
- })
- } catch (error) {
- console.error('Error fetching channels:', error)
- return []
- }
- }
-}
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const axios = require('axios')
+
+dayjs.extend(utc)
+
+module.exports = {
+ site: 'rikstv.no',
+ days: 3,
+ request: {
+ cache: {
+ ttl: 60 * 60 * 1000 // 1 hour
+ }
+ },
+ url({ channel, date }) {
+ return `https://play.rikstv.no/api/content-search/1/channel/${
+ channel.site_id
+ }/epg/${date.format('YYYY-MM-DD')}`
+ },
+ parser: function ({ content }) {
+ let data
+ try {
+ data = JSON.parse(content)
+ } catch (error) {
+ console.error('Error parsing JSON:', error)
+ return []
+ }
+
+ const programs = []
+
+ if (data && Array.isArray(data)) {
+ data.forEach(item => {
+ if (!item) return
+ //const start = dayjs.utc(item.broadcastedTime)
+ //const stop = dayjs.utc(item.broadcastedTimeEnd)
+
+ programs.push({
+ title: item.seriesName,
+ sub_title: item.name,
+ description: item.description || item.synopsis,
+ season: item.season || null,
+ episode: item.episode || null,
+ category: item.genres,
+ actors: item.actors,
+ directors: item.director || item.directors,
+ icon: item.imagePackUri,
+ start: item.broadcastedTime,
+ stop: item.broadcastedTimeEnd
+ })
+ })
+ }
+
+ return programs
+ },
+ async channels() {
+ try {
+ const response = await axios.get(
+ 'https://play.rikstv.no/api/content-search/1/channel?includePrograms=false'
+ )
+ if (!response.data || !Array.isArray(response.data)) {
+ console.error('Error: No channels data found')
+ return []
+ }
+ return response.data.map(item => {
+ return {
+ lang: 'no',
+ site_id: item.channelId,
+ name: item.serviceName
+ }
+ })
+ } catch (error) {
+ console.error('Error fetching channels:', error)
+ return []
+ }
+ }
+}
diff --git a/sites/rikstv.no/rikstv.no.test.js b/sites/rikstv.no/rikstv.no.test.js
index b37143e2..ce0f0959 100644
--- a/sites/rikstv.no/rikstv.no.test.js
+++ b/sites/rikstv.no/rikstv.no.test.js
@@ -1,66 +1,72 @@
-const { parser, url } = require('./rikstv.no.config.js')
-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-01-14', 'YYYY-MM-DD').startOf('d')
-const channel = {
- site_id: '47',
- xmltv_id: 'NRK1.no'
-}
-
-describe('rikstv.no Module Tests', () => {
- it('can generate valid url', () => {
- expect(url({ date, channel })).toBe(`https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format('YYYY-MM-DD')}`)
- })
-
- it('can parse response', () => {
- const content = JSON.stringify([
- {
- seriesName: 'Vakre og ville Oman',
- name: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- genres: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- director: 'Stefania Muller',
- imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- broadcastedTime: '2025-01-13T23:00:00Z',
- broadcastedTimeEnd: '2025-01-13T23:55:00Z'
- }
- ])
-
- const result = parser({ content }).map(p => {
- p.start = dayjs(p.start).toISOString()
- p.stop = dayjs(p.stop).toISOString()
- return p
- })
-
- expect(result).toMatchObject([
- {
- title: 'Vakre og ville Oman',
- sub_title: 'Vakre og ville Oman',
- description: 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
- season: 1,
- episode: 1,
- category: ['Dokumentar', 'Fakta', 'Natur'],
- actors: ['Gergana Muskalla'],
- directors: 'Stefania Muller',
- icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
- start: '2025-01-13T23:00:00.000Z',
- stop: '2025-01-13T23:55:00.000Z'
- }
- ])
- })
-
- it('can handle empty guide', () => {
- const result = parser({
- content: '[]'
- })
- expect(result).toMatchObject([])
- })
-})
+const { parser, url } = require('./rikstv.no.config.js')
+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-01-14', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: '47',
+ xmltv_id: 'NRK1.no'
+}
+
+describe('rikstv.no Module Tests', () => {
+ it('can generate valid url', () => {
+ expect(url({ date, channel })).toBe(
+ `https://play.rikstv.no/api/content-search/1/channel/${channel.site_id}/epg/${date.format(
+ 'YYYY-MM-DD'
+ )}`
+ )
+ })
+
+ it('can parse response', () => {
+ const content = JSON.stringify([
+ {
+ seriesName: 'Vakre og ville Oman',
+ name: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ genres: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ director: 'Stefania Muller',
+ imagePackUri: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ broadcastedTime: '2025-01-13T23:00:00Z',
+ broadcastedTimeEnd: '2025-01-13T23:55:00Z'
+ }
+ ])
+
+ const result = parser({ content }).map(p => {
+ p.start = dayjs(p.start).toISOString()
+ p.stop = dayjs(p.stop).toISOString()
+ return p
+ })
+
+ expect(result).toMatchObject([
+ {
+ title: 'Vakre og ville Oman',
+ sub_title: 'Vakre og ville Oman',
+ description:
+ 'Oman er eit arabisk skattkammer av unike habitat og variert dyreliv. Rev, kvalhai, reptil og skjelpadder er blant skapningane du finn her.',
+ season: 1,
+ episode: 1,
+ category: ['Dokumentar', 'Fakta', 'Natur'],
+ actors: ['Gergana Muskalla'],
+ directors: 'Stefania Muller',
+ icon: 'https://imageservice.rikstv.no/hash/EC206C374F42287C0BDF850A7D3CB4D3.jpg',
+ start: '2025-01-13T23:00:00.000Z',
+ stop: '2025-01-13T23:55:00.000Z'
+ }
+ ])
+ })
+
+ it('can handle empty guide', () => {
+ const result = parser({
+ content: '[]'
+ })
+ expect(result).toMatchObject([])
+ })
+})
From 7891d9fa3bef532d637fa7ece43f8ee9334b1d40 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 23:02:29 +0300
Subject: [PATCH 2/7] Create content.json
---
sites/vivoplay.com.br/__data__/content.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 sites/vivoplay.com.br/__data__/content.json
diff --git a/sites/vivoplay.com.br/__data__/content.json b/sites/vivoplay.com.br/__data__/content.json
new file mode 100644
index 00000000..0af9b5da
--- /dev/null
+++ b/sites/vivoplay.com.br/__data__/content.json
@@ -0,0 +1 @@
+{"Content":[{"Pid":"LSC593436488","Title":"Reavivados para a Missão","Description":"Tudo sobre a missão com o Pastor Ted Wilson, líder mundial da Igreja Adventista do Sétimo Dia.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737244800,"End":1737246600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388013","EpgSerieId":5508436,"SeriesPid":"LSR168003","SeriesId":5508436,"SeasonPid":"LSE229579","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21190052_46294A7A7B0DF467.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465300","Title":"Fé em Ação","Description":"Acompanhe o ministério de Wagnér que desde a roça a ser jogador de basquete vem trazendo Jesus para adolescentes e atletas.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737246600,"End":1737248400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396523","EpgSerieId":4807485,"SeriesPid":"LSR18638","SeriesId":4807485,"SeasonPid":"LSE229569","SeasonNumber":25,"EpisodeNumber":2,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/46/16462958_F01B8B1E0F5E5CAA.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436441","Title":"NT Filmes","Description":"Faixa de exibição de filmes da TV Novo Tempo.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737248400,"End":1737250200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280260192","EpgSerieId":5512188,"SeriesPid":"LSR168831","SeriesId":5512188,"SeasonPid":"LSE227704","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN286"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21190044_14C76FC3A00E5A89.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436426","Title":"Retratos","Description":"Em Salvador, na Bahia, o projeto Mini Chef capacita crianças e adolescentes ensinando culinária e educação nutricional. Elas aprendem a estabelecer uma relação saudável com a comida, enquanto desenvolvem habilidades que contribuem para o seu futuro.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737250200,"End":1737252000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280290913","EpgSerieId":4879745,"SeriesPid":"LSR18615","SeriesId":4879745,"SeasonPid":"LSE67959","SeasonNumber":24,"EpisodeNumber":9,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/17/12/17128460_4B97D07EA89B234D.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436414","Title":"Semana Mente Feliz","Description":"A Bíblia pode ajudar a lidar com a ansiedade, depressão e traumas emocionais, ensinando o poder do perdão para seguir em frente, como gerir suas emoções e alcançar uma saúde emocional completa.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737252000,"End":1737255600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280387529","EpgSerieId":5182394,"SeriesPid":"LSR47766","SeriesId":5182394,"SeasonPid":"LSE65337","SeasonNumber":24,"EpisodeNumber":5,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/13/20132695_397AADDED9CDE893.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465292","Title":"Adoração : T25 EP8 - Especial","Description":"Acompanhe mensagens inspiradoras de apresentadores que farão seu dia melhorar.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737255600,"End":1737257400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396456","EpgSerieId":4807442,"SeriesPid":"LSR18628","SeriesId":4807442,"SeasonPid":"LSE223175","SeasonNumber":25,"EpisodeNumber":8,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/46/16462911_69739DEB35F80B7A.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465284","Title":"Arena do Futuro","Description":"No episódio de hoje, vamos estudar sobre o povo de Deus no tempo do fim.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737257400,"End":1737259200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396453","EpgSerieId":1578827,"SeriesPid":"LSR18609","SeriesId":1578827,"SeasonPid":"LSE229596","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/39/16399668_6635931861F971EA.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465293","Title":"Adoração : T25 EP8 - Especial","Description":"Acompanhe mensagens inspiradoras de apresentadores que farão seu dia melhorar.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737259200,"End":1737261000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396456","EpgSerieId":4807442,"SeriesPid":"LSR18628","SeriesId":4807442,"SeasonPid":"LSE223175","SeasonNumber":25,"EpisodeNumber":8,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/46/16462911_69739DEB35F80B7A.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436453","Title":"Fé para Hoje","Description":"Em momentos difíceis, ouve-se: \"Vai tudo ficar bem\". O padre Robson Aleixo explica sobre o tema.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737261000,"End":1737262800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280305659","EpgSerieId":4807491,"SeriesPid":"LSR18614","SeriesId":4807491,"SeasonPid":"LSE227703","SeasonNumber":25,"EpisodeNumber":2,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/48/16484862_5EB53BE90AFDABEC.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436501","Title":"Bíblia Fácil","Description":"O programa tem o objetivo de ensinar temas bíblicos da forma mais simples possível.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737262800,"End":1737266400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280354121","EpgSerieId":1578818,"SeriesPid":"LSR18625","SeriesId":1578818,"SeasonPid":"LSE223902","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/96/20967361_BC5FC1AFB070E2A8.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436475","Title":"Reavivados por Sua Palavra","Description":"O pastor Ronaldo de Oliveira explica um capítulo do livro sagrado e faz aplicações práticas para o dia a dia. O cronograma de estudos segue a mesma ordem dos livros e capítulos da Bíblia.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737266400,"End":1737268200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388007","EpgSerieId":2594093,"SeriesPid":"LSR18641","SeriesId":2594093,"SeasonPid":"LSE226906","SeasonNumber":25,"EpisodeNumber":16,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/94/20944583_F3C305AEDD622F38.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465273","Title":"Evidências","Description":"O programa apresenta fatos que comprovam a historicidade da Bíblia Sagrada. Escavações, visita a lugares bíblicos, curiosidades e informação confiável.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737268200,"End":1737270000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396469","EpgSerieId":1043841,"SeriesPid":"LSR18636","SeriesId":1043841,"SeasonPid":"LSE17583","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/95/20951653_0D58B494C09E6DAD.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465299","Title":"Viva uma Experiência Real","Description":"Mas afinal, diante do impossível, como podemos avançar com fé ao invés de recuar com medo.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737270000,"End":1737271800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396522","EpgSerieId":1578816,"SeriesPid":"LSR18624","SeriesId":1578816,"SeasonPid":"LSE224986","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/17/79/17794300_1EACD8BCFDB233F9.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436428","Title":"Retratos","Description":"Há 40 anos, a organização assistencial ADRA trabalha para melhorar a vida dos brasileiros. Entre os primeiros projetos, o Centro de Desenvolvimento na Aldeia Santa Isabel, no Tocantins, e a Clínica Móvel Odontológica, no Espírito Santo.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737271800,"End":1737273600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280387592","EpgSerieId":4879745,"SeriesPid":"LSR18615","SeriesId":4879745,"SeasonPid":"LSE67959","SeasonNumber":24,"EpisodeNumber":10,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/17/12/17128460_4B97D07EA89B234D.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436415","Title":"Adoração : T24 EP20 - Especial","Description":"Acompanhe mensagens inspiradoras de apresentadores que farão seu dia melhorar.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737273600,"End":1737277200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280387455","EpgSerieId":4807442,"SeriesPid":"LSR18628","SeriesId":4807442,"SeasonPid":"LSE17601","SeasonNumber":24,"EpisodeNumber":20,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/46/16462911_69739DEB35F80B7A.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436490","Title":"Reavivados por Sua Palavra","Description":"O pastor Ronaldo de Oliveira explica um capítulo do livro sagrado e faz aplicações práticas para o dia a dia. O cronograma de estudos segue a mesma ordem dos livros e capítulos da Bíblia.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737277200,"End":1737279000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388014","EpgSerieId":2594093,"SeriesPid":"LSR18641","SeriesId":2594093,"SeasonPid":"LSE226906","SeasonNumber":25,"EpisodeNumber":17,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/94/20944583_F3C305AEDD622F38.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465294","Title":"Adoração : T25 EP8 - Especial","Description":"Acompanhe mensagens inspiradoras de apresentadores que farão seu dia melhorar.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737279000,"End":1737280800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396456","EpgSerieId":4807442,"SeriesPid":"LSR18628","SeriesId":4807442,"SeasonPid":"LSE223175","SeasonNumber":25,"EpisodeNumber":8,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/46/16462911_69739DEB35F80B7A.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436481","Title":"ANN - Adventist News Network","Description":"Descubra as últimas notícias e eventos da Igreja Adventista do Sétimo Dia, em todo o mundo, com o Adventist News Network. Veja uma análise aprofundada das iniciativas humanitárias e histórias inspiradoras que impulsionam a missão adventista.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737280800,"End":1737282600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388011","EpgSerieId":4807454,"SeriesPid":"LSR18608","SeriesId":4807454,"SeasonPid":"LSE35409","SeasonNumber":0,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN1130"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/83/16839365_ED0BF9B14B162B69.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465296","Title":"Viaje Comigo : T25 EP3 - Peru","Description":"O Peru é um dos destinos mais incríveis da América do Sul. Nesse programa vamos começar conhecendo a capital Lima e os arredores da cidade. A capital peruana é berço e lar de uma cultura e gastronomia única.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737282600,"End":1737284400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396457","EpgSerieId":2001871,"SeriesPid":"LSR18626","SeriesId":2001871,"SeasonPid":"LSE229607","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN730"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/18/98/18989971_6207CA5D7ADECD00.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465290","Title":"A Mensagem por Elas","Description":"Seja bem-vinda ao programa A mensagem por elas. Hoje vamos aprender mais sobre a palavra de Deus com a apresentadora Wélida Dancini. Você é nossa convidada.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737284400,"End":1737286200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396455","EpgSerieId":4807446,"SeriesPid":"LSR18612","SeriesId":4807446,"SeasonPid":"LSE224990","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/80/16804317_E9724EF8683D798C.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465274","Title":"Evidências","Description":"O programa apresenta fatos que comprovam a historicidade da Bíblia Sagrada. Escavações, visita a lugares bíblicos, curiosidades e informação confiável.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737286200,"End":1737288000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396469","EpgSerieId":1043841,"SeriesPid":"LSR18636","SeriesId":1043841,"SeasonPid":"LSE17583","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/95/20951653_0D58B494C09E6DAD.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436509","Title":"Está Escrito","Description":"O programa analisa o impacto da ciência e tecnologia na vida moderna. Questiona se essas ferramentas só trazem benefícios, apesar de melhorarem diversos aspectos do cotidiano. Explora os potenciais ganhos de se desconectar periodicamente.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737288000,"End":1737289800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280354292","EpgSerieId":1578801,"SeriesPid":"LSR18640","SeriesId":1578801,"SeasonPid":"LSE223900","SeasonNumber":25,"EpisodeNumber":5,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/83/16836299_5CD8582BB984EFB6.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465285","Title":"Arena do Futuro","Description":"No episódio de hoje, vamos estudar sobre o povo de Deus no tempo do fim.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737289800,"End":1737291600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396453","EpgSerieId":1578827,"SeriesPid":"LSR18609","SeriesId":1578827,"SeasonPid":"LSE229596","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/39/16399668_6635931861F971EA.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436461","Title":"A Voz da Profecia","Description":"Gilson Brito, acompanhado do quarteto Arautos do Rei, apresenta o tradicional programa adventista.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737291600,"End":1737293400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280338922","EpgSerieId":3266239,"SeriesPid":"LSR18634","SeriesId":3266239,"SeasonPid":"LSE223170","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/11/85/11858853_70B3C5DE212B0049.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436446","Title":"Fé em Ação","Description":"Projetos sociais realizados com o apoio da Federação dos Empreendedores Adventistas do Brasil.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737293400,"End":1737295200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280305531","EpgSerieId":4807485,"SeriesPid":"LSR18638","SeriesId":4807485,"SeasonPid":"LSE229569","SeasonNumber":25,"EpisodeNumber":1,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/46/16462958_F01B8B1E0F5E5CAA.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436411","Title":"Origens","Description":"Busca de respostas para a origem das línguas por meio de seu principal registro: a escrita.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737295200,"End":1737297000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280387520","EpgSerieId":2309602,"SeriesPid":"LSR18616","SeriesId":2309602,"SeasonPid":"LSE24539","SeasonNumber":24,"EpisodeNumber":25,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/92/20927174_0379CF0F16F39163.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436492","Title":"NT Kids","Description":"Desenhos, youtubers, histórias e muita aventura transformam o dia das crianças.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737297000,"End":1737298800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388015","EpgSerieId":3266245,"SeriesPid":"LSR18631","SeriesId":3266245,"SeasonPid":"LSE220473","SeasonNumber":21,"EpisodeNumber":4,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN641","GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/08/21083141_6A24D41AFEA2945F.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436421","Title":"Histórias da Tia Cecéu","Description":"Um programa divertido, com muitas atrações diferentes em um mesmo programa. Divirta-se com artesanato, charadinhas, desenhos, clips, Cecéu News e Laboratório Maluco.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737298800,"End":1737300600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280387562","EpgSerieId":1578812,"SeriesPid":"LSR18620","SeriesId":1578812,"SeasonPid":"LSE65242","SeasonNumber":24,"EpisodeNumber":8,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN645"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/83/16835073_63E6D64BF3799526.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436485","Title":"Quem Sabe Prova","Description":"O programa apresenta provas que misturam habilidades físicas, mentais e espirituais.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737300600,"End":1737302400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388012","EpgSerieId":5508434,"SeriesPid":"LSR168002","SeriesId":5508434,"SeasonPid":"LSE229578","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN983"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21190050_D39E543D47CFCA05.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436462","Title":"A Voz da Profecia","Description":"Gilson Brito, acompanhado do quarteto Arautos do Rei, apresenta o tradicional programa adventista.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737302400,"End":1737304200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280338922","EpgSerieId":3266239,"SeriesPid":"LSR18634","SeriesId":3266239,"SeasonPid":"LSE223170","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/11/85/11858853_70B3C5DE212B0049.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436449","Title":"Bom de Bíblia","Description":"O game show mostra quem é bom de Bíblia, reunindo competidores de todo o Brasil.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737304200,"End":1737306000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280305657","EpgSerieId":3266259,"SeriesPid":"LSR18611","SeriesId":3266259,"SeasonPid":"LSE223172","SeasonNumber":25,"EpisodeNumber":7,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN983"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/11/83/11831692_98BE6024FD7D10F6.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436455","Title":"Bom de Bíblia","Description":"O game show mostra quem é bom de Bíblia, reunindo competidores de todo o Brasil.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737306000,"End":1737307800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280325359","EpgSerieId":3266259,"SeriesPid":"LSR18611","SeriesId":3266259,"SeasonPid":"LSE223172","SeasonNumber":25,"EpisodeNumber":8,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN983"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/11/83/11831692_98BE6024FD7D10F6.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436464","Title":"Bom de Bíblia","Description":"O game show mostra quem é bom de Bíblia, reunindo competidores de todo o Brasil.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737307800,"End":1737309600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280338923","EpgSerieId":3266259,"SeriesPid":"LSR18611","SeriesId":3266259,"SeasonPid":"LSE223172","SeasonNumber":25,"EpisodeNumber":9,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN983"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/11/83/11831692_98BE6024FD7D10F6.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436507","Title":"Bom de Bíblia","Description":"Competição entre os programas da TV Novo Tempo: \"Caixa de Música\" e \"Evidências\".","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737309600,"End":1737311400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280354291","EpgSerieId":3266259,"SeriesPid":"LSR18611","SeriesId":3266259,"SeasonPid":"LSE223172","SeasonNumber":25,"EpisodeNumber":10,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN983"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/11/83/11831692_98BE6024FD7D10F6.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436442","Title":"NT Filmes","Description":"Faixa de exibição de filmes da TV Novo Tempo.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737311400,"End":1737315000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280260192","EpgSerieId":5512188,"SeriesPid":"LSR168831","SeriesId":5512188,"SeasonPid":"LSE227704","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN286"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21190044_14C76FC3A00E5A89.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436391","Title":"Fora de Série","Description":"Acompanhe a vida de quatro adolescentes que vivem, cada um do seu jeito, os seus dilemas pessoais.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737315000,"End":1737316800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280352118","EpgSerieId":3266251,"SeriesPid":"LSR166889","SeriesId":3266251,"SeasonPid":"LSE224989","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN2","GEN6"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/15/21157871_F1F1E7ED451F2AA9.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436494","Title":"O Segredo","Description":"","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737316800,"End":1737318600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388016","EpgSerieId":5508437,"SeriesPid":"LSR168029","SeriesId":5508437,"SeasonPid":"LSE229580","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/16/21166584_0195A0D5CFA01808.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465275","Title":"Anjos da Esperança : T24 - Maratona de Domingo","Description":"O programa apresenta reportagens, histórias e participação de convidados que revelam resultados e novidades da Novo Tempo para os milhares de Anjos que ajudam a levar adiante uma mensagem de esperança.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737318600,"End":1737320400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396506","EpgSerieId":1157898,"SeriesPid":"LSR18618","SeriesId":1157898,"SeasonPid":"LSE17585","SeasonNumber":24,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/08/21084874_B3A8EC773CB57FD1.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436467","Title":"Docs NT","Description":"Faixa de exibição de documentários da TV Novo Tempo.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737320400,"End":1737322200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280354115","EpgSerieId":5524693,"SeriesPid":"LSR171650","SeriesId":5524693,"SeasonPid":"LSE231662","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/20/21201736_29D013CBEF4104C9.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436482","Title":"ANN - Adventist News Network","Description":"Descubra as últimas notícias e eventos da Igreja Adventista do Sétimo Dia, em todo o mundo, com o Adventist News Network. Veja uma análise aprofundada das iniciativas humanitárias e histórias inspiradoras que impulsionam a missão adventista.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737322200,"End":1737324000,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388011","EpgSerieId":4807454,"SeriesPid":"LSR18608","SeriesId":4807454,"SeasonPid":"LSE35409","SeasonNumber":0,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN1130"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/16/83/16839365_ED0BF9B14B162B69.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436486","Title":"Quem Sabe Prova","Description":"O programa apresenta provas que misturam habilidades físicas, mentais e espirituais.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737324000,"End":1737325800,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388012","EpgSerieId":5508434,"SeriesPid":"LSR168002","SeriesId":5508434,"SeasonPid":"LSE229578","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN983"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21190050_D39E543D47CFCA05.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436496","Title":"Animal Encounters","Description":"Explora a criação e narra histórias de pessoas que ajudam, resgatam, cuidam e preservam animais.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737325800,"End":1737327600,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280388017","EpgSerieId":5524701,"SeriesPid":"LSR171651","SeriesId":5524701,"SeasonPid":"LSE231663","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN660","GEN1125"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21192375_0A7ADA09312B17B4.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593465297","Title":"Viaje Comigo : T25 EP3 - Peru","Description":"O Peru é um dos destinos mais incríveis da América do Sul. Nesse programa vamos começar conhecendo a capital Lima e os arredores da cidade. A capital peruana é berço e lar de uma cultura e gastronomia única.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737327600,"End":1737329400,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280396457","EpgSerieId":2001871,"SeriesPid":"LSR18626","SeriesId":2001871,"SeasonPid":"LSE229607","SeasonNumber":25,"EpisodeNumber":3,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN730"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/18/98/18989971_6207CA5D7ADECD00.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}},{"Pid":"LSC593436430","Title":"A Máquina Humana","Description":"O documentário explora a complexidade e a perfeição do corpo humano por meio de uma série de analogias com máquinas, olhando para a questão da saúde através das perspectivas da ciência, tecnologia e espiritualidade.","ChannelName":"TV Novo Tempo","ChannelNumber":401,"CallLetter":"HDTVN","Start":1737329400,"End":1737331200,"LiveChannelPid":"LCH5554","LiveProgramPid":"LPR280205035","EpgSerieId":5336922,"SeriesPid":"LSR115343","SeriesId":5336922,"SeasonPid":"LSE160204","SeasonNumber":0,"EpisodeNumber":0,"LiveToVod":"","AgeRatingPid":"AGE84","Attributes":{"ca_cpvrDisable":["True"],"ca_descriptors":[],"ca_blackout_target":[],"ca_blackout_areas":[]},"Relations":{"GenrePids":["GEN271"]},"Images":{"VideoFrame":[{"Url":"http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/86/20864769_7DD013A4CCCF7899.jpg","SourceImageWidth":1920,"SourceImageHeight":1080,"SourceImageFormat":"Jpeg","ImageClass":"0"}]}}],"HttpStatusCode":200,"Severity":1,"StatusCode":0,"StatusMessage":"OK"}
\ No newline at end of file
From 3d8124b983e8a2fdc94d89678d3e0074002c2ac7 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 23:02:44 +0300
Subject: [PATCH 3/7] Create no_content.json
---
sites/vivoplay.com.br/__data__/no_content.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 sites/vivoplay.com.br/__data__/no_content.json
diff --git a/sites/vivoplay.com.br/__data__/no_content.json b/sites/vivoplay.com.br/__data__/no_content.json
new file mode 100644
index 00000000..dd757719
--- /dev/null
+++ b/sites/vivoplay.com.br/__data__/no_content.json
@@ -0,0 +1 @@
+{"StatusMessage":"An unexpected error has ocurred, please contact the administrator."}
\ No newline at end of file
From 56ce54c40668a89d4df6af4b461c59e167854477 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 23:03:00 +0300
Subject: [PATCH 4/7] Create vivoplay.com.br.test.js
---
sites/vivoplay.com.br/vivoplay.com.br.test.js | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 sites/vivoplay.com.br/vivoplay.com.br.test.js
diff --git a/sites/vivoplay.com.br/vivoplay.com.br.test.js b/sites/vivoplay.com.br/vivoplay.com.br.test.js
new file mode 100644
index 00000000..17d607ff
--- /dev/null
+++ b/sites/vivoplay.com.br/vivoplay.com.br.test.js
@@ -0,0 +1,61 @@
+const { parser, url } = require('./vivoplay.com.br.config.js')
+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-01-19', 'YYYY-MM-DD').startOf('d')
+const channel = {
+ site_id: 'lch5554',
+ xmltv_id: 'TVNovoTempo.br'
+}
+
+it('can generate valid url', () => {
+ expect(url({ channel, date })).toBe(
+ 'https://contentapi-br.cdn.telefonica.com/25/default/pt-BR/schedules?ca_deviceTypes=null%7C401&ca_channelmaps=779%7Cnull&fields=Pid,Title,Description,ChannelName,ChannelNumber,CallLetter,Start,End,LiveChannelPid,LiveProgramPid,EpgSerieId,SeriesPid,SeriesId,SeasonPid,SeasonNumber,EpisodeNumber,images.videoFrame,images.banner,LiveToVod,AgeRatingPid,forbiddenTechnology,IsSoDisabled&includeRelations=Genre&orderBy=START_TIME%3Aa&filteravailability=false&includeAttributes=ca_cpvrDisable,ca_descriptors,ca_blackout_target,ca_blackout_areas&starttime=1737244800&endtime=1737331200&livechannelpids=lch5554&offset=0&limit=1000'
+ )
+})
+
+it('can parse response', () => {
+ const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
+ let results = parser({ content }).map(p => {
+ p.start = p.start.toJSON()
+ p.stop = p.stop.toJSON()
+ return p
+ })
+
+ expect(results.length).toBe(44)
+ expect(results[0]).toMatchObject({
+ start: '2025-01-19T00:00:00.000Z',
+ stop: '2025-01-19T00:30:00.000Z',
+ title: 'Reavivados para a Missão',
+ description:
+ 'Tudo sobre a missão com o Pastor Ted Wilson, líder mundial da Igreja Adventista do Sétimo Dia.',
+ season: 25,
+ episode: 3,
+ images: [
+ 'http://media.gvp.telefonica.com/storageArea0/IMAGES/00/21/19/21190052_46294A7A7B0DF467.jpg'
+ ]
+ })
+ expect(results[43]).toMatchObject({
+ start: '2025-01-19T23:30:00.000Z',
+ stop: '2025-01-20T00:00:00.000Z',
+ title: 'A Máquina Humana',
+ description:
+ 'O documentário explora a complexidade e a perfeição do corpo humano por meio de uma série de analogias com máquinas, olhando para a questão da saúde através das perspectivas da ciência, tecnologia e espiritualidade.',
+ season: null,
+ episode: null,
+ images: [
+ 'http://media.gvp.telefonica.com/storageArea0/IMAGES/00/20/86/20864769_7DD013A4CCCF7899.jpg'
+ ]
+ })
+})
+
+it('can handle empty guide', () => {
+ const content = fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json'))
+ const results = parser({ content })
+ expect(results).toMatchObject([])
+})
From 0e45c85070256e62c7ee48734991d2a733744fc2 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 23:03:15 +0300
Subject: [PATCH 5/7] Create vivoplay.com.br.config.js
---
.../vivoplay.com.br/vivoplay.com.br.config.js | 68 +++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 sites/vivoplay.com.br/vivoplay.com.br.config.js
diff --git a/sites/vivoplay.com.br/vivoplay.com.br.config.js b/sites/vivoplay.com.br/vivoplay.com.br.config.js
new file mode 100644
index 00000000..97ee36db
--- /dev/null
+++ b/sites/vivoplay.com.br/vivoplay.com.br.config.js
@@ -0,0 +1,68 @@
+const axios = require('axios')
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const timezone = require('dayjs/plugin/timezone')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+
+dayjs.extend(utc)
+dayjs.extend(timezone)
+dayjs.extend(customParseFormat)
+
+module.exports = {
+ site: 'vivoplay.com.br',
+ days: 2,
+ url({ channel, date }) {
+ const starttime = date.unix()
+ const endtime = date.add(1, 'd').unix()
+
+ return `https://contentapi-br.cdn.telefonica.com/25/default/pt-BR/schedules?ca_deviceTypes=null%7C401&ca_channelmaps=779%7Cnull&fields=Pid,Title,Description,ChannelName,ChannelNumber,CallLetter,Start,End,LiveChannelPid,LiveProgramPid,EpgSerieId,SeriesPid,SeriesId,SeasonPid,SeasonNumber,EpisodeNumber,images.videoFrame,images.banner,LiveToVod,AgeRatingPid,forbiddenTechnology,IsSoDisabled&includeRelations=Genre&orderBy=START_TIME%3Aa&filteravailability=false&includeAttributes=ca_cpvrDisable,ca_descriptors,ca_blackout_target,ca_blackout_areas&starttime=${starttime}&endtime=${endtime}&livechannelpids=${channel.site_id}&offset=0&limit=1000`
+ },
+ parser: function ({ content }) {
+ let programs = []
+ const items = parseItems(content)
+ items.forEach(item => {
+ programs.push({
+ title: item['Title'],
+ description: item['Description'],
+ season: item['SeasonNumber'] > 0 ? item['SeasonNumber'] : null,
+ episode: item['EpisodeNumber'] > 0 ? item['EpisodeNumber'] : null,
+ images: parseImages(item),
+ start: dayjs.unix(item['Start']),
+ stop: dayjs.unix(item['End'])
+ })
+ })
+
+ return programs
+ },
+ async channels() {
+ const data = await axios
+ .get(
+ 'https://contentapi-br.cdn.telefonica.com/25/default/pt-BR/contents/all?ca_deviceTypes=401&contentTypes=LCH&ca_active=true&ca_requiresPin=false&includeAttributes=ca_channelmapnumber,ca_devicetypes_qualities,ca_deviceTypes_isPlayback,ca_deviceTypes_isStartOverEnabled,ca_deviceTypes_isPvrPlayback,ca_deviceTypes_isPvrManageable,ca_deviceTypes_isCatchup,ca_channelmaps&includeRelations=ProductDependencies,Media&fields=Pid,Name,ChannelNumber,Dvr,EpgLiveChannelReferenceId,CallLetter,ProviderChannel,LXDChannel,AdvancedCDNServices,CdnBuffer,DefaultLanguageOrders,DistributorId,IsLatencyKey,images.logo,images.icon,UxReference,HasPlaylistExperience,IsHomeBlocked,IsStoverFfwdDisabled,IsStoverRwdDisabled,IsCpvrFfwdDisabled,IsCpvrRwdDisabled,IsCatchupFfwdDisabled,IsCatchupRwdDisabled,IsCowatchEnabled,IsFastChannel,MaxLiveNowGap&orderBy=contentOrder&offset=0&limit=1000'
+ )
+ .then(r => r.data)
+ .catch(console.error)
+
+ return data['Content']['List'].map(channel => ({
+ lang: 'pt',
+ name: channel['Name'],
+ site_id: channel['Pid'].toLowerCase()
+ }))
+ }
+}
+
+function parseImages(item) {
+ return item['Images'] && Array.isArray(item['Images']['VideoFrame'])
+ ? item['Images']['VideoFrame'].map(vf => vf['Url'])
+ : []
+}
+
+function parseItems(content) {
+ try {
+ const data = JSON.parse(content)
+ if (!data || !Array.isArray(data['Content'])) return []
+
+ return data['Content']
+ } catch {
+ return []
+ }
+}
From 8efe4177cf55a2ef6aa3878bcf21c1d73cc97363 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 23:03:30 +0300
Subject: [PATCH 6/7] Create vivoplay.com.br.channels.xml
---
.../vivoplay.com.br.channels.xml | 392 ++++++++++++++++++
1 file changed, 392 insertions(+)
create mode 100644 sites/vivoplay.com.br/vivoplay.com.br.channels.xml
diff --git a/sites/vivoplay.com.br/vivoplay.com.br.channels.xml b/sites/vivoplay.com.br/vivoplay.com.br.channels.xml
new file mode 100644
index 00000000..9660993e
--- /dev/null
+++ b/sites/vivoplay.com.br/vivoplay.com.br.channels.xml
@@ -0,0 +1,392 @@
+
+
+ REDE 21
+ TV CÂMARA
+ TV Aberta
+ Canal Universitário
+ Discovery Theater
+ Disney HD
+ Canal Educação
+ ESPN 3
+ Eurochannel
+ STAR Channel
+ Modo Viagem
+ Globo SP HD
+ Gospel
+ GLOBO
+ TV JUSTIÇA
+ CBI
+ HBO Pop HD
+ Megapix HD
+ BIS HD
+ Canal Gov
+ Record HD
+ RedeTV! HD
+ TV SENADO
+ SBT HD
+ Space HD
+ Telecine Action HD
+ Telecine Pipoca HD
+ Telecine HD
+ TCM
+ Premiere
+ TNT
+ Adult Swim
+ Guia Vivo
+ Woohoo
+ Premiere 2
+ Band HD
+ ESPN 4
+ Gloob HD
+ History HD
+ A&E HD
+ OFF HD
+ Sony HD
+ Telecine Touch HD
+ Telecine Fun HD
+ Warner HD
+ AXN HD
+ HBO HD
+ Curta!
+ CNT
+ RIT
+ Tooncast
+ ESPN
+ Globo News HD
+ GNT HD
+ Multishow
+ Sportv
+ Sportv 2
+ Telecine Cult HD
+ HBO2
+ HBO Family HD
+ HBO Signature HD
+ HBO Plus HD
+ ESPN 2
+ Canal Teste 2
+ MTV HD
+ Comedy Central HD
+ TNT Novelas
+ Viva HD
+ Discovery HD
+ Discovery Kids HD
+ Discovery Home&Health HD
+ ID
+ Cartoon HD
+ FX
+ ESPN 5
+ Nat Geo HD
+ Band Campinas HD
+ EPTV Campinas HD
+ VTV SBT HD
+ Gazeta HD
+ TV Clube HD
+ Band Vale HD
+ EPTV Ribeirão HD
+ TV Vanguarda HD
+ Record Litoral HD
+ SBT Ribeirão HD
+ TVB Band HD
+ TV Câmara de Ribeirão
+ Boa Vontade SJC
+ TVB Campinas HD
+ TV Tribuna Santos HD
+ Rede Século 22
+ VTV SBT HD
+ Bandsports HD
+ Canal Brasil HD
+ Cultura HD
+ HBO Xtreme HD
+ Cinemax HD
+ HBO Mundi HD
+ Nickelodeon HD
+ Universal TV HD
+ Premiere 3
+ Paramount Network HD
+ SporTV 3
+ Combate
+ TVT SD
+ Discovery World
+ TLC HD
+ Discovery Turbo HD
+ Comutação
+ Record Interior HD
+ TV Thathi
+ Santa Cecília TV
+ Premiere 4
+ Premiere 5
+ Canal de Testes
+ SIC Internacional
+ Travel Box Brasil
+ Fox News
+ Lifetime HD
+ Chef TV
+ C3 TV
+ CNNi
+ DW
+ E! HD
+ Studio Universal
+ RAI
+ Record News
+ USA
+ TCM
+ Tooncast
+ TV5Monde
+ TVE
+ Woohoo
+ SIC Internacional
+ Animal Planet
+ Cinecanal
+ TV Osasco
+ Record Paulista HD
+ TV Sorocaba HD
+ TV TEM Sorocaba HD
+ TV Câmara Sorocaba
+ Canal Comunitário de Santos
+ TV Câmara Campinas
+ TV Camara de SJC
+ TV Câmara Piracicaba
+ TV Ativa
+ TV Câmara de Valinhos
+ TVR Regional
+ TV Câmara de Americana
+ Premiere 8
+ Premiere 6
+ Premiere 7
+ Bloomberg HD
+ TV RÁ Tim Bum
+ Prime Box Brazil HD
+ History 2
+ Polishop
+ Nick Jr. HD
+ Arte 1 HD
+ TNT Séries
+ Cartoonito
+ Bandnews
+ TV Univap SJC
+ HDCM2
+ Futura HD
+ Globo RPC HD
+ Rede Massa HD
+ SBT Rio HD
+ Globo Rio
+ Record Rio HD
+ Band Rio HD
+ RIC TV HD
+ Band Curitiba HD
+ CNT Americana
+ NGT
+ Rede Família
+ SBT Nova Friburgo
+ TV Rede Mais Varginha
+ TV Rio Sul HD
+ EPTV Sul de Minas
+ TV Diário Mogi das Cruzes HD
+ Band Minas BH HD
+ TV Alterosa
+ TV Tribuna HD
+ Band Brasília HD
+ Band Rio Interior HD
+ Band Paulista HD
+ TV TEM Bauru HD
+ Record Brasília HD
+ TV Clube
+ SBT Brasília HD
+ SBT Central HD
+ TV Jornal
+ TV TEM Itapetininga HD
+ TV TEM SJRP HD
+ Record TV Rio Preto HD
+ Record RS HD
+ Record TV Cabralia HD
+ Ulbra TV HD
+ Band RS HD
+ SBT Interior HD
+ RBS TV
+ SBT RS HD
+ TV Pampa HD
+ Band Bahia HD
+ SCC SBT HD
+ TV Cidade Verde HD
+ NSC TV HD
+ Band Teresina HD
+ TV Catarina HD
+ NDTV HD
+ TV Antena 10 HD
+ TV Capixaba HD
+ TV Gazeta HD
+ Rede TV! ES HD
+ TV Vitória HD
+ TV Tribuna HD
+ EPTV Central São Carlos HD
+ Discovery Science HD
+ RIC TV HD
+ TV Globo Belo Horizonte HD
+ Nordes TV HD
+ RPC HD
+ Record TV Minas BH
+ Fish TV
+ TV Alterosa HD
+ TV Goiás HD
+ TV Goiânia HD
+ Record TV Itapoan HD
+ TV Tambaú HD
+ TV Jornal HD
+ TV Cidade HD
+ TV Serra Dourada HD
+ TV Correio HD
+ TV Tarobá HD
+ TV Jangadeiro HD
+ TV Manaíra HD
+ TV Cidade HD
+ TV Alterosa HD
+ TV Aratu HD
+ Rede Século 21
+ TV Alterosa Leste HD
+ Inter TV dos Vales HD
+ TV Leste
+ TV Tibagi HD
+ RPC Maringá HD
+ RIC TV Maringá
+ TV Maringá HD
+ TV Campo Grande HD
+ Rede MS
+ TV Interativa
+ TV Gazeta Sul HD
+ RBS TV
+ FashionTV HD
+ ESPN 6
+ Rede Vida HD
+ NSC TV HD
+ NDTV HD
+ TV Integração
+ TV Aparecida HD
+ TV Brasil HD
+ NHK HD
+ Travel Box Brazil HD
+ Canção Nova
+ Curta! HD
+ Ideal
+ Chef TV
+ RBS TV
+ TV Alterosa HD
+ TV Integração HD
+ TV Sucesso HD
+ Band Cuiabá HD
+ TV Vila Real
+ Dog TV
+ SBT Cuiabá HD
+ TV Em Tempo
+ Record Manaus
+ Band Manaus
+ Globo - TV Fronteira President
+ SBT Tocantins HD
+ Record TV Tocantins HD
+ NSC TV HD
+ TV Pampa HD
+ NDTV HD
+ NSC TV HD
+ RBS TV HD
+ NDTV HD
+ RBS TV
+ TV Atalaia HD
+ NDTV HD
+ RBS TV Pelotas - TV Globo
+ TV Pampa Sul HD - Rede TV
+ SBT Belém HD
+ Record TV Belém HD
+ TV Difusora HD - SBT
+ TV Metropolitana HD - Band
+ TV Vitoriosa HD - SBT
+ TV Integração HD - TV Globo
+ TV Paranaíba HD - Record TV
+ Band Triângulo HD
+ SBT Vale
+ Record Tocantins
+ Gloobinho HD
+ Food Network
+ Food Network HD
+ Band Maceió HD
+ TV Ponta Verde HD
+ TV Pajuçara HD - Record
+ TV Tarobá Cascavel HD
+ TV Integração HD - TV Globo
+ Record - RIC TV OESTE
+ SBT - Rede Massa TV Naipi
+ TV Alterosa HD - SBT
+ RPC Paranavaí HD
+ TV Globo - RPC Cascavel
+ HGTV HD
+ TV Gazeta Noroeste
+ TV Gazeta Norte
+ Rede Massa HD - SBT
+ RPC HD - TV Globo
+ SBT Rondonópolis HD
+ TV Cidade Rondonópolis HD
+ Rede Brasil HD
+ CNN Brasil HD
+ REDETV HD
+ RPC Foz do Iguaçu HD - TV Globo
+ Inter TV Planicíe - TV Globo
+ RBS TV Santa Rosa - TV Globo
+ Globo - NSC TV Criciúma
+ TV Capital HD
+ TV Cidade de SINOP
+ Inter TV Alto Litoral - Globo HD
+ Trace Brasil
+ Agro+
+ MTV LIVE
+ TV Borborema HD
+ TV Gazeta HD
+ Inter TV Grande Minas
+ NSC TV Centro-Oeste - TV Globo
+ TV Ponta Negra HD - SBT
+ TV Tropical HD - Record
+ Band Natal HD
+ Music Box Brazil
+ TESTE 7
+ TESTE 8
+ TESTE 9
+ TESTE 10
+ Cultura HD
+ Sabor & Arte
+ Terra Viva
+ TV Novo Tempo
+ RPC Guarapuava HD - TV Globo
+ TV Integração HD - TV Globo
+ Jovem Pan News
+ Golf Channel
+ COM Brasil
+ BBC World
+ Eurochannel
+ AMC
+ Film & Arts
+ RBS TV Erechim- TV Globo
+ Dreamworks
+ Zoomoo
+ Box Kids
+ Premiere 9
+ RBS TV Bagé - Globo
+ Band
+ SBT
+ Rede TV
+ Record
+ Markket
+ Sportv 4K
+ Canal Rural
+ Canal do Criador
+ SONY Movies
+ BM&C
+ RBI
+ LMC+
+ CNN
+ Canal de Eventos
+ NSports
+ LIVE TV
+ TV Cultura Paulista
+ Universal Premiere
+ Universal Reality
+ CNN Money
+ TIMES EXCLUSIVO CNBC
+ UOL
+
From 50b14fedb69f9722fe539fc73306b9996200bb59 Mon Sep 17 00:00:00 2001
From: freearhey <7253922+freearhey@users.noreply.github.com>
Date: Thu, 16 Jan 2025 23:03:44 +0300
Subject: [PATCH 7/7] Create readme.md
---
sites/vivoplay.com.br/readme.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 sites/vivoplay.com.br/readme.md
diff --git a/sites/vivoplay.com.br/readme.md b/sites/vivoplay.com.br/readme.md
new file mode 100644
index 00000000..a967d9df
--- /dev/null
+++ b/sites/vivoplay.com.br/readme.md
@@ -0,0 +1,21 @@
+# vivoplay.com.br
+
+https://www.vivoplay.com.br/tv-guide/epg
+
+### Download the guide
+
+```sh
+npm run grab --- --site=vivoplay.com.br
+```
+
+### Update channel list
+
+```sh
+npm run channels:parse --- --config=./sites/vivoplay.com.br/vivoplay.com.br.config.js --output=./sites/vivoplay.com.br/vivoplay.com.br.channels.xml
+```
+
+### Test
+
+```sh
+npm test --- vivoplay.com.br
+```