From cc78a87d380104ce876fca930125b4259ecc095b Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk <7253922+freearhey@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:48:28 +0300 Subject: [PATCH 01/10] Update SITES.md --- SITES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SITES.md b/SITES.md index fb7a10c8..997d57f4 100644 --- a/SITES.md +++ b/SITES.md @@ -75,7 +75,7 @@ | [mediaset.it](sites/mediaset.it) | 🟢 | | | [melita.com](sites/melita.com) | 🟢 | | | [meo.pt](sites/meo.pt) | 🟢 | | -| [meuguia.tv](sites/meuguia.tv) | 🔴 | https://github.com/iptv-org/epg/issues/2275 | +| [meuguia.tv](sites/meuguia.tv) | 🟢 | | | [mewatch.sg](sites/mewatch.sg) | 🟢 | | | [mi.tv](sites/mi.tv) | 🟢 | | | [mncvision.id](sites/mncvision.id) | 🟢 | | From 5ac1b0a0cf3e321984c21c655e7485a79bb90a4d Mon Sep 17 00:00:00 2001 From: Toha Date: Mon, 11 Dec 2023 22:53:22 +0700 Subject: [PATCH 02/10] Update rotana.net guide. This site now uses separate XHR request to fetch program description. --- sites/rotana.net/__data__/content_ar.html | 224 +++--------------- sites/rotana.net/__data__/content_en.html | 224 +++--------------- sites/rotana.net/__data__/program_ar.html | 240 ++++++++++++++++++++ sites/rotana.net/__data__/program_en.html | 240 ++++++++++++++++++++ sites/rotana.net/rotana.net.config.js | 145 +++++++----- sites/rotana.net/rotana.net.test.js | 86 +++---- sites/rotana.net/rotana.net_ar.channels.xml | 7 + sites/rotana.net/rotana.net_en.channels.xml | 7 + 8 files changed, 707 insertions(+), 466 deletions(-) create mode 100644 sites/rotana.net/__data__/program_ar.html create mode 100644 sites/rotana.net/__data__/program_en.html diff --git a/sites/rotana.net/__data__/content_ar.html b/sites/rotana.net/__data__/content_ar.html index 4c72c90d..fb783989 100644 --- a/sites/rotana.net/__data__/content_ar.html +++ b/sites/rotana.net/__data__/content_ar.html @@ -1,203 +1,51 @@
-
+
+

- السبت - 11/11/2023 + الأحد + 2023-12-10

+
-
-
+ +
+
+
- 02:00 + + 00:36 - حريم كريم + + كتكوت
- + +
+
+ +
+
+ +
+ + 02:46 + + + عيار ناري +
+
+ + +
+
\ No newline at end of file diff --git a/sites/rotana.net/__data__/content_en.html b/sites/rotana.net/__data__/content_en.html index 893fd79c..9a9e9ecf 100644 --- a/sites/rotana.net/__data__/content_en.html +++ b/sites/rotana.net/__data__/content_en.html @@ -1,203 +1,51 @@
-
+
+

- Saturday - 11/11/2023 + Sunday + 2023-12-10

+
-
-
+ +
+
+
- 02:00 + + 00:36 - Harim Karim + + Katkout
- + +
+
+ +
+
+ +
+ + 02:46 + + + Gunshot +
+
+ + +
+
\ No newline at end of file diff --git a/sites/rotana.net/__data__/program_ar.html b/sites/rotana.net/__data__/program_ar.html new file mode 100644 index 00000000..2da8a525 --- /dev/null +++ b/sites/rotana.net/__data__/program_ar.html @@ -0,0 +1,240 @@ +
+
+ كتكوت +
+
+
+ +
+
+
+ + diff --git a/sites/rotana.net/__data__/program_en.html b/sites/rotana.net/__data__/program_en.html new file mode 100644 index 00000000..ba3f772c --- /dev/null +++ b/sites/rotana.net/__data__/program_en.html @@ -0,0 +1,240 @@ +
+
+ Katkout +
+
+
+ +
+
+
+ + diff --git a/sites/rotana.net/rotana.net.config.js b/sites/rotana.net/rotana.net.config.js index 22dd63a9..0528a966 100644 --- a/sites/rotana.net/rotana.net.config.js +++ b/sites/rotana.net/rotana.net.config.js @@ -1,8 +1,10 @@ +const axios = require('axios') const cheerio = require('cheerio') const dayjs = require('dayjs') const timezone = require('dayjs/plugin/timezone') const utc = require('dayjs/plugin/utc') const customParseFormat = require('dayjs/plugin/customParseFormat') +const debug = require('debug')('site:rotana.net') dayjs.extend(timezone) dayjs.extend(utc) @@ -11,80 +13,100 @@ dayjs.extend(customParseFormat) const headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0' } +const cookies = {} module.exports = { site: 'rotana.net', days: 2, url({ channel }) { - return `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}` + return `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}&tz=` }, request: { headers, timeout: 15000 }, - parser({ content, date }) { + async parser({ content, headers, channel, date }) { const programs = [] + if (!cookies[channel.lang]) { + cookies[channel.lang] = parseCookies(headers) + } const items = parseItems(content, date) - items.forEach(item => { - const info = item.find('.iq-accordion-block > .iq-accordion-title .big-title span') - if (info.length) { - const details = item.find('.trending-info div > span') - const [ time, title ] = info.text().split('\n') - const [ _, duration, description ] = details.text().split('\n') - if (duration) { - const start = dayjs.tz(`${date.format('YYYY-MM-DD')} ${time.trim()}`, 'YYYY-MM-DD HH:mm', 'Asia/Riyadh') - const stop = addDuration(start, duration.trim()) - - programs.push({ - title: title.trim(), - description: description.trim(), - start: start.toISOString(), - stop: stop.toISOString() - }) - } + for (const item of items) { + const program = await parseProgram(item, channel) + if (program) { + programs.push(program) } - }) + } return programs }, - async channels({ lang = 'en'}) { - const axios = require('axios') - const options = {headers} + async channels({ lang = 'en' }) { const result = await axios - .get(`https://rotana.net/${lang}/streams`, options) + .get(`https://rotana.net/api/channels`) .then(response => response.data) .catch(console.error) - const $ = cheerio.load(result) - const items = $('#channels-list a').toArray() - const channels = items.map(item => { - const $item = $(item) - const data = $item.attr('href').match(/channel=([A-Za-z0-9]+)/) - - return { - lang, - site_id: data[1], - name: $item.text().trim() - } - }) - - return channels - } + return result.data.map(item => { + return { + lang, + site_id: item.id, + name: item.name[lang] + } + }) + } } -function addDuration(date, duration) { - const matches = duration.matchAll(/(\d+)(h|m|s|ms)/g) - while (true) { - const m = matches.next() - if (!m.value) { - break +async function parseProgram(item, channel, options = {}) { + options = options || {} + const deep = options.deep !== undefined ? options.deep : true + const raw = options.raw !== undefined ? options.raw : false + const top = item.find('.iq-accordion-block') + const info = top.find('.iq-accordion-title .big-title span') + if (info.length) { + const [ time, title ] = info.text().split('\n') + const [ d, m, y ] = item._date.split('-') + const start = dayjs.tz(`${y}-${m}-${d} ${time.trim()}`, 'YYYY-MM-DD HH:mm', 'Asia/Riyadh') + let description, icon, stop + if (deep) { + const pid = top.attr('id').split('-')[1] + if (pid) { + const url = `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}&itemId=${pid}` + const params = { + headers: Object.assign({}, headers, { 'X-Requested-With': 'XMLHttpRequest' }), + Cookie: cookies[channel.lang] + } + debug(`fetching description ${url}`) + const result = await axios + .get(url, params) + .then(response => response.data) + .catch(console.error) + + const $ = cheerio.load(result) + const details = $('.trending-info div > span') + if (details.length) { + description = details.text().split('\n')[3].trim() + } + const img = $('.row > div > img') + if (img.length) { + icon = img.attr('src') + } + } + if (item._next) { + const next = await parseProgram(item._next, channel, { deep: false, raw: true }) + if (next.start) { + stop = next.start + } + } } - if (m.value[1] && m.value[2]) { - date = date.add(parseInt(m.value[1]), m.value[2]) + return { + title: title?.trim(), + description: description?.trim(), + icon: icon, + start: raw ? start : start?.toISOString(), + stop: raw ? stop : stop?.toISOString() } } - return date } function parseItems(content, date) { @@ -93,14 +115,35 @@ function parseItems(content, date) { const expectedId = `item-${date.format('DD-MM-YYYY')}` let lastId - $('.hour > div').toArray().forEach(item => { + $('.hour > div').each((_, item) => { const $item = $(item) if ($item.hasClass('bg')) { lastId = $item.attr('id') - } else if ($item.hasClass('iq-accordion') && lastId === expectedId) { - result.push($item) + } else if ($item.hasClass('iq-accordion')) { + $item._date = lastId.substr(lastId.indexOf('-') + 1) + // is date match? + if (lastId === expectedId) { + // set next item + if (result.length) { + result[result.length - 1]._next = $item; + } + result.push($item) + } else if (result.length && !result[result.length - 1]._next) { + // set next item + result[result.length - 1]._next = $item + } } }) return result } + +function parseCookies(headers) { + const cookies = [] + if (headers && Array.isArray(headers['set-cookie'])) { + headers['set-cookie'].forEach(cookie => { + cookies.push(cookie.split('; ')[0]) + }) + } + return cookies.length ? cookies.join('; ') : null +} \ No newline at end of file diff --git a/sites/rotana.net/rotana.net.test.js b/sites/rotana.net/rotana.net.test.js index 7fedef29..cb64373c 100644 --- a/sites/rotana.net/rotana.net.test.js +++ b/sites/rotana.net/rotana.net.test.js @@ -1,4 +1,7 @@ const { parser, url, request } = require('./rotana.net.config.js') +const fs = require('fs') +const path = require('path') +const axios = require('axios') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') const customParseFormat = require('dayjs/plugin/customParseFormat') @@ -6,17 +9,30 @@ const customParseFormat = require('dayjs/plugin/customParseFormat') dayjs.extend(customParseFormat) dayjs.extend(utc) -const date = dayjs.utc('2023-11-11').startOf('d') +jest.mock('axios') + +const date = dayjs.utc('2023-12-10').startOf('d') const channel = { lang: 'en', site_id: '439', xmltv_id: 'RotanaCinemaMasr.sa' } -const channelAr = { - lang: 'ar', - site_id: '439', - xmltv_id: 'RotanaCinemaMasr.sa' -} +const channelAr = Object.assign({}, channel, { lang: 'ar' }) + +axios.get.mockImplementation((url, opts) => { + if (url === 'https://rotana.net/en/streams?channel=439&itemId=239849') { + return Promise.resolve({ + data: fs.readFileSync(path.resolve(__dirname, '__data__/program_en.html')) + }) + } + if (url === 'https://rotana.net/ar/streams?channel=439&itemId=239849') { + return Promise.resolve({ + data: fs.readFileSync(path.resolve(__dirname, '__data__/program_ar.html')) + }) + } + + return Promise.resolve({ data: '' }) +}) it('can use defined user agent', () => { const result = request.headers['User-Agent'] @@ -27,56 +43,48 @@ it('can use defined user agent', () => { it('can generate valid english url', () => { const result = url({ channel, date }) - expect(result).toBe('https://rotana.net/en/streams?channel=439') + expect(result).toBe('https://rotana.net/en/streams?channel=439&tz=') }) it('can generate valid arabic url', () => { const result = url({ channel: channelAr, date }) - expect(result).toBe('https://rotana.net/ar/streams?channel=439') + expect(result).toBe('https://rotana.net/ar/streams?channel=439&tz=') }) -it('can parse english response', () => { - const fs = require('fs') - const path = require('path') - - const result = parser({ +it('can parse english response', async () => { + const result = await parser({ channel, date, content: fs.readFileSync(path.join(__dirname, '/__data__/content_en.html')) }) - expect(result).toMatchObject([ - { - start: '2023-11-10T23:00:00.000Z', - stop: '2023-11-11T01:00:00.000Z', - title: 'Harim Karim', - description: - 'Karim and Jihan separate after a year of marriage due to her discovering his betrayal in her home. Karim tries to get his wife back, but she refuses. Karim calls his old colleague Maha to help him. Ho...' - } - ]) + expect(result[0]).toMatchObject({ + start: '2023-12-09T21:36:00.000Z', + stop: '2023-12-09T23:46:00.000Z', + title: 'Katkout', + description: + 'In a comic framework, the events of the film revolve around (Katkoot) Al-Saedi, whose aunt, the eldest of the Al-Saedi family, tries to force him to kill himself in order to ransom his family. A time...', + icon: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max' + }) }) -it('can parse arabic response', () => { - const fs = require('fs') - const path = require('path') - - const result = parser({ - channelAr, +it('can parse arabic response', async () => { + const result = await parser({ + channel: channelAr, date, content: fs.readFileSync(path.join(__dirname, '/__data__/content_ar.html')) }) - expect(result).toMatchObject([ - { - start: '2023-11-10T23:00:00.000Z', - stop: '2023-11-11T01:00:00.000Z', - title: 'حريم كريم', - description: - 'كريم وجيهان ينفصلا بعد عام من الزواج بسبب اكتشافها لخيانته في منزلها، يحاول كريم استعادة زوجته، لكنها ترفض، فيتصل كريم بزميلته القديمة مها، لتساعده، لكن متاعب تحدث بين مها وزوجها، فتأتي لتعيش مع كريم،...' - } - ]) + expect(result[0]).toMatchObject({ + start: '2023-12-09T21:36:00.000Z', + stop: '2023-12-09T23:46:00.000Z', + title: 'كتكوت', + description: + 'في إطار كوميدي تدور أحداث الفيلم، حول (كتكوت) الصعيدي الذي تحاول عمته كبيرة العائلة الصعيدية إجباره على تقديم نفسه للقتل ليفدي عائلته، ولكنه يهرب وتخطفه جهة أمنية لاكتشاف شبه كبير بينه وبين (يوسف خوري...', + icon: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max' + }) }) -it('can handle empty guide', () => { - const result = parser({ +it('can handle empty guide', async () => { + const result = await parser({ content: '', date, channel diff --git a/sites/rotana.net/rotana.net_ar.channels.xml b/sites/rotana.net/rotana.net_ar.channels.xml index c3d360c2..6082c909 100644 --- a/sites/rotana.net/rotana.net_ar.channels.xml +++ b/sites/rotana.net/rotana.net_ar.channels.xml @@ -1,10 +1,15 @@ + روتانا أتش دي + روتانا سينما فرنسا الرساله قناة رسالة الدولية ضحك وبس إل بي سي + M+ HD رومانس + روتانا أفلام + روتانا أمريكا روتانا سينما مصر روتانا سينما السعودية روتانا كلاسيك @@ -12,5 +17,7 @@ روتانا كوميدي روتانا دراما روتانا خليجية + روتانا كيدز + روتانا موسيقي سيدة الشاشة diff --git a/sites/rotana.net/rotana.net_en.channels.xml b/sites/rotana.net/rotana.net_en.channels.xml index b28cfdcf..43b72ef2 100644 --- a/sites/rotana.net/rotana.net_en.channels.xml +++ b/sites/rotana.net/rotana.net_en.channels.xml @@ -1,10 +1,15 @@ + Rotana HD + Rotana Cinema France Al Resalah Al Resalah International Dahk wa Bass LBC + M+ HD Romance + Rotana Aflam + Rotana USA Rotana Cinema Masr Rotana Cinema KSA Rotana Classic @@ -12,5 +17,7 @@ Rotana Comedy Rotana Drama Rotana Khalijea HD + Rotana Kids + Rotana Music Sayedat Alshasha From d639ed991f997e1846cc80766e65c15850679a1f Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk <7253922+freearhey@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:03:33 +0300 Subject: [PATCH 03/10] Update SITES.md --- SITES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SITES.md b/SITES.md index 997d57f4..0da3919d 100644 --- a/SITES.md +++ b/SITES.md @@ -114,7 +114,7 @@ | [raiplay.it](sites/raiplay.it) | 🟢 | | | [reportv.com.ar](sites/reportv.com.ar) | 🟢 | | | [rev.bs](sites/rev.bs) | 🔴 | https://github.com/iptv-org/epg/issues/2255 | -| [rotana.net](sites/rotana.net) | 🔴 | https://github.com/iptv-org/epg/issues/2256 | +| [rotana.net](sites/rotana.net) | 🟢 | | | [rtb.gov.bn](sites/rtb.gov.bn) | 🔴 | https://github.com/iptv-org/epg/issues/2257 | | [rthk.hk](sites/rthk.hk) | 🟢 | | | [rtmklik.rtm.gov.my](sites/rtmklik.rtm.gov.my) | 🟢 | | From 826099ebf135fb277a6a8f1c8d062eaec336ab2b Mon Sep 17 00:00:00 2001 From: Toha Date: Tue, 12 Dec 2023 00:56:32 +0700 Subject: [PATCH 04/10] Update tv.trueid.net guide. This site only provides guides for today at current time, so it is necessary to get the guide at proper time (0:00 of Asia/Bangkok) to get the complete guides. Signed-off-by: Toha --- sites/tv.trueid.net/__data__/data.json | 1 + sites/tv.trueid.net/readme.md | 20 +- sites/tv.trueid.net/tv.trueid.net.config.js | 70 ++--- sites/tv.trueid.net/tv.trueid.net.test.js | 53 ++-- .../tv.trueid.net_en.channels.xml | 136 +++++++++ ...nels.xml => tv.trueid.net_th.channels.xml} | 271 +++++++++--------- 6 files changed, 351 insertions(+), 200 deletions(-) create mode 100644 sites/tv.trueid.net/__data__/data.json create mode 100644 sites/tv.trueid.net/tv.trueid.net_en.channels.xml rename sites/tv.trueid.net/{tv.trueid.net.channels.xml => tv.trueid.net_th.channels.xml} (65%) diff --git a/sites/tv.trueid.net/__data__/data.json b/sites/tv.trueid.net/__data__/data.json new file mode 100644 index 00000000..dff30854 --- /dev/null +++ b/sites/tv.trueid.net/__data__/data.json @@ -0,0 +1 @@ +{"pageProps":{"currentLang":{"country":"th","lang":"en"},"isBotPerformance":false,"titleH1":"Watch Live TV Online 24 hours","metaData":{"title":"ดูทีวีออนไลน์ True Movie Hits - TrueID TV","description":"Watch Live TV Online 24 hours, Thai Drama, Full HD","imageURL":"https://cms.dmpcdn.com/livetv/2023/04/28/45345d10-e599-11ed-86b8-bb40638e3c49_webp_original.png","currentUrl":"https://tv.trueid.net/th-en/live/true-movie-hits","metaTitle":"ดูทีวีออนไลน์ True Movie Hits - TrueID TV"},"channelList":[{"id":"nQlqONGyoa4","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/5ff3e270-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","slug":"ch3-hd","title":"Channel 3","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca","content_provider":"","channel_code":"c03","content_rights":null,"channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ 3 HD","channel_name_eng":"CH3 HD","channel_name_mm":"CH3 HD","channel_name_th":"ช่อง 3 HD"},"views":96184,"isLiveChat":false},{"id":"wKngqJ2Vqnl","thumb":"https://cms.dmpcdn.com/livetv/2019/01/10/35a35017-8473-4953-8474-5c58d805b74a.png","slug":"mono29","title":"MONO 29","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|movies-series-ca","content_provider":"","channel_code":"d43","content_rights":null,"channel_info":{"channel_name_cbd":"មូណូ ធីវី","channel_name_eng":"Mono 29","channel_name_mm":"Mono 29","channel_name_th":"โมโน 29"},"views":33721,"isLiveChat":false},{"id":"8v732AYomo9","thumb":"https://cms.dmpcdn.com/livetv/2023/07/18/7dc7a180-2515-11ee-b8b2-77e2a8f4c31e_webp_original.webp","slug":"thairathtv-hd","title":"Thairath TV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|news-ca","content_provider":"","channel_code":"d05","content_rights":null,"channel_info":{"channel_name_cbd":"ថៃរ៉ាត់ ធីវី HD","channel_name_eng":"Thairath TV HD","channel_name_mm":"Thairath TV HD","channel_name_th":"ไทยรัฐ ทีวี HD"},"views":17228,"isLiveChat":false},{"id":"9O54lyP5Rqx","thumb":"https://cms.dmpcdn.com/livetv/2023/07/19/212d15e0-25e7-11ee-bfc1-85e95548413c_webp_original.webp","slug":"ch7-hd","title":"Channel 7HD","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca","content_provider":"","channel_code":"c07","content_rights":null,"channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍​ 7","channel_name_eng":"CH 7HD","channel_name_mm":"Channel 7","channel_name_th":"ช่อง 7HD"},"views":12092,"isLiveChat":false},{"id":"0z4lvq6Xwoa","thumb":"https://cms.dmpcdn.com/livetv/2019/01/16/396384be-35dc-4d11-bf04-06c9546ec7bc.png","slug":"one-hd","title":"One31","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca","content_provider":"","channel_code":"d56","content_rights":null,"channel_info":{"channel_name_cbd":"វ័ន HD","channel_name_eng":"One HD","channel_name_mm":"One HD","channel_name_th":"วัน HD"},"views":10182,"isLiveChat":false},{"id":"vqbr1WgEnGQ","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/5408a390-5377-11ee-8e1b-194edbb69638_webp_original.webp","slug":"ch8","title":"Channel 8","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca","content_provider":"","channel_code":"d62","content_rights":null,"channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ 8","channel_name_eng":"CH8","channel_name_th":"ช่อง 8"},"views":8295,"isLiveChat":false},{"id":"OVKwZle4eop","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/84504210-5377-11ee-aaa1-7d584d8ca7a4_webp_original.webp","slug":"true4u","title":"True4U","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca|movies-series-ca","content_provider":"","channel_code":"207","content_rights":null,"channel_info":{"channel_name_cbd":"ទ្រូ4យូ","channel_name_chi":"True4U","channel_name_eng":"True4U","channel_name_mm":"True4U","channel_name_rus":"True4U","channel_name_th":"ทรูโฟร์ยู","channel_name_vie":"True4U"},"views":6489,"isLiveChat":false},{"id":"OBb6NzoJX7O","thumb":"https://cms.dmpcdn.com/livetv/2023/10/02/d2ec4b30-60f1-11ee-92a4-8597bcef0049_webp_original.webp","slug":"amarintv-hd","title":"Amarin TV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca","content_provider":"","channel_code":"da0","content_rights":null,"channel_info":{"channel_name_cbd":"អាម៉ារិន","channel_name_eng":"Amarin TV","channel_name_mm":"Amarin TV","channel_name_th":"อมรินทร์"},"views":6407,"isLiveChat":false},{"id":"yYk6PvXwXDb","thumb":"https://cms.dmpcdn.com/livetv/2023/11/17/2a1de990-852d-11ee-bf98-41acc8fd04fc_webp_original.webp","slug":"workpointtv","title":"WorkPoint TV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca","content_provider":"","channel_code":"d83","content_rights":null,"channel_info":{"channel_name_cbd":"វើកភ័ញ គ្រីអ៊ែតធិវ ធីវី​","channel_name_eng":"Workpoint TV","channel_name_mm":"Workpoint TV","channel_name_th":"เวิร์คพอยท์ ทีวี"},"views":6075,"isLiveChat":false},{"id":"qvgeWLPGMY6","thumb":"https://cms.dmpcdn.com/livetv/2020/11/19/ed873d50-2a22-11eb-bed4-0972e345f90c_original.png","slug":"gmm25","title":"GMM 25","content_type":"livetv","category":"livetv-ca|digitaltv-ca|entertainment-ca|freetv-ca","content_provider":"","channel_code":"d76","content_rights":null,"channel_info":{"channel_name_cbd":"GMM 25","channel_name_eng":"GMM 25","channel_name_mm":"GMM 25","channel_name_th":"จีเอ็มเอ็ม 25"},"views":4861,"isLiveChat":false},{"id":"zMLBpX7AWmk","thumb":"https://cms.dmpcdn.com/livetv/2023/09/09/9c6f59c0-4ebe-11ee-99a7-832609069236_webp_original.webp","slug":"nationtv","title":"Nation TV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|news-ca","content_provider":"","channel_code":"d78","content_rights":null,"channel_info":{"channel_name_cbd":"Nation TV 22","channel_name_chi":"Nation TV 22","channel_name_eng":"Nation TV 22","channel_name_mm":"Nation TV 22","channel_name_rus":"Nation TV 22","channel_name_th":"เนชั่น ทีวี","channel_name_vie":"Nation TV 22"},"views":4733,"isLiveChat":false},{"id":"QNBwOpdaxpQ","thumb":"https://cms.dmpcdn.com/livetv/2023/08/28/012eed00-458a-11ee-bd2b-6734a2d9e428_webp_original.webp","slug":"pptv-hd","title":"PPTV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca","content_provider":"","channel_code":"da7","content_rights":null,"channel_info":{"channel_name_cbd":"ភីភីធីវី","channel_name_eng":"PPTV","channel_name_mm":"PPTV","channel_name_th":"พีพีทีวี"},"views":4723,"isLiveChat":false},{"id":"xqY73dWBoZye","thumb":"https://cms.dmpcdn.com/livetv/2023/05/03/ba425a00-e966-11ed-be07-cbff4c6d2c94_webp_original.png","slug":"truepremierfootballhd1","title":"True Premier Football 1","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht111","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 1","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 1"},"views":3123,"isLiveChat":true},{"id":"QRP2K658b7G","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/ab170410-5377-11ee-8e1b-194edbb69638_webp_original.webp","slug":"thaipbs","title":"Thai PBS","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|news-ca","content_provider":"","channel_code":"c12","content_rights":null,"channel_info":{"channel_name_cbd":"ធីភីបីអេស","channel_name_eng":"TPBS","channel_name_mm":"TPBS","channel_name_th":"ไทยพีบีเอส"},"views":2526,"isLiveChat":false},{"id":"OZeq8ZLPldY","thumb":"https://cms.dmpcdn.com/livetv/2023/10/02/75023d90-60f1-11ee-935a-5d4eba985103_webp_original.webp","slug":"tnn16","title":"TNN 16","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|news-ca|tvsnow|tvsnews","content_provider":"true_vision","channel_code":"135","content_rights":null,"channel_info":{"channel_name_cbd":"ធីអិនអិន 16","channel_name_eng":"TNN​ 16","channel_name_mm":"TNN​ 16","channel_name_th":"ทีเอ็นเอ็น 16"},"views":2444,"isLiveChat":false},{"id":"LY2j6Pyxbla","thumb":"https://cms.dmpcdn.com/livetv/2023/10/02/4a2afc60-60f1-11ee-a78e-f70ba0052fab_webp_original.webp","slug":"nbt","title":"NBT","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca","content_provider":"","channel_code":"c11","content_rights":null,"channel_info":{"channel_name_cbd":"អិនបីធី​","channel_name_eng":"NBT","channel_name_mm":"์NBT","channel_name_th":"เอ็นบีที"},"views":2043,"isLiveChat":false},{"id":"Z9E4LnAbgjKy","thumb":"https://cms.dmpcdn.com/livetv/2021/06/15/3e4e0540-cdb4-11eb-9a22-7958179a38a7_original.png","slug":"jkn18","title":"JKN 18","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca","content_provider":"","channel_code":"d11","content_rights":null,"channel_info":{"channel_name_eng":"JKN 18","channel_name_mm":"JKN 18","channel_name_th":"เจเคเอ็น 18"},"views":1725,"isLiveChat":false},{"id":"rBWOx89v9Rk","thumb":"https://cms.dmpcdn.com/livetv/2023/09/09/9cc40970-4ebe-11ee-9801-97f95b5eed9a_webp_original.webp","slug":"9mcot-hd","title":"9 MCOT","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca","content_provider":"","channel_code":"c09","content_rights":null,"channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ 9 HD","channel_name_eng":"9 MCOT HD","channel_name_mm":"9 MCOT HD","channel_name_th":"9 เอ็มคอต HD"},"views":1323,"isLiveChat":false},{"id":"5PKobQk5gLOP","thumb":"https://cms.dmpcdn.com/livetv/2023/07/05/b74a2460-1b05-11ee-8ce6-b102b53cb4a2_webp_original.webp","slug":"boomerang-hd","title":"Boomerang","content_type":"livetv","category":"livetv-ca|freetv-ca|kids-ca","content_provider":"","channel_code":"i007","content_rights":null,"channel_info":{"channel_name_eng":"Boomerang","channel_name_th":"บูมเมอแรง"},"views":707,"isLiveChat":false},{"id":"KEN52vz3o6M","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/296e96a0-e593-11ed-8507-4fc0b025fedb_webp_original.png","slug":"truesport-hd-3","title":"True Sports 3","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht117","content_rights":null,"channel_info":{"channel_name_cbd":"True Sports 3","channel_name_chi":"True Sports 3","channel_name_eng":"True Sports 3","channel_name_mm":"True Sports 3","channel_name_rus":"True Sports 3","channel_name_th":"ทรูสปอร์ต 3","channel_name_vie":"True Sports 3"},"views":652,"isLiveChat":true},{"id":"1KDEkNJDZ9r","thumb":"https://cms.dmpcdn.com/livetv/2023/07/18/7e060a10-2515-11ee-864f-a52221dad038_webp_original.webp","slug":"ch5","title":"TV5 HD","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|news-ca","content_provider":"","channel_code":"c05","content_rights":null,"channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ 5","channel_name_eng":"CH 5","channel_name_mm":"နံပါတ္ 5 အစီအစဥ","channel_name_th":"ช่อง 5"},"views":648,"isLiveChat":false},{"id":"NopZ5gjkGmE","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/45345d10-e599-11ed-86b8-bb40638e3c49_webp_original.png","slug":"true-movie-hits","title":"True Movie Hits","content_type":"livetv","category":"livetv-ca|movies-series-ca|trueunlock-ca|tvsnow|movieseries","content_provider":"true_vision","channel_code":"057","content_rights":null,"channel_info":{"channel_name_cbd":"True Movie Hits","channel_name_chi":"True Movie Hits","channel_name_eng":"True Movie Hits","channel_name_mm":"True Movie Hits","channel_name_rus":"True Movie Hits","channel_name_th":"True Movie Hits","channel_name_vie":"True Movie Hits"},"views":640,"isLiveChat":false},{"id":"9xQq7Yk7Jzr","thumb":"https://cms.dmpcdn.com/livetv/2023/07/18/7d74eda0-2515-11ee-864f-a52221dad038_webp_original.webp","slug":"realitychannel-hd","title":"Reality","content_type":"livetv","category":"livetv-ca|education-ca|entertainment-ca|freetv-ca|kids-ca|truelittlemonk|tvsnow|entertainment","content_provider":"true_vision","channel_code":"107","content_rights":null,"channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ រែលអាលីធី","channel_name_eng":"Reality","channel_name_mm":"ထရူး ပူပန္ယာ","channel_name_th":"เรียลลิตี้"},"views":518,"isLiveChat":false},{"id":"GPVMYwpnzKv","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/f63723d0-e595-11ed-abcb-c792e696f885_webp_original.png","slug":"truesport-7","title":"True Sports 7","content_type":"livetv","category":"livetv-ca|sports-ca|trueunlock-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"105","content_rights":null,"channel_info":{"channel_name_cbd":"True Sports 7","channel_name_chi":"True Sports 7","channel_name_eng":"True Sports 7","channel_name_mm":"True Sports 7","channel_name_rus":"True Sports 7","channel_name_th":"ทรูสปอร์ต 7","channel_name_vie":"True Sports 7"},"views":499,"isLiveChat":true},{"id":"RN8ALdyRovrj","thumb":"https://cms.dmpcdn.com/livetv/2022/02/10/e00c0e00-8a3c-11ec-8f9e-831d2ccecc69_webp_original.png","slug":"t-sports-7-sd","title":"T Sports 7","content_type":"livetv","category":"livetv-ca|digitaltv-ca|freetv-ca|sports-ca","content_provider":"","channel_code":"t514","content_rights":null,"channel_info":{"channel_name_eng":"T Sports 7","channel_name_th":"สถานีโทรทัศน์เพื่อการท่องเที่ยวและกีฬา"},"views":484,"isLiveChat":false},{"id":"AlPo3NzNZa62","thumb":"https://cms.dmpcdn.com/livetv/2023/05/03/ba4c4510-e966-11ed-896e-69ce273284a6_webp_original.png","slug":"truepremierfootballhd2","title":"True Premier Football 2","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht112","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 2","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 2"},"views":449,"isLiveChat":true},{"id":"PanRBOzKovQ","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/43f28e40-e599-11ed-844f-795506bf0bf9_webp_original.png","slug":"true-film-hd","title":"True Film 1","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|movies-series-ca|trueidtv-movies-series|tvsnow|movieseries","content_provider":"true_vision","channel_code":"176","content_rights":null,"channel_info":{"channel_name_cbd":"True Film 1","channel_name_chi":"True Film 1","channel_name_eng":"True Film 1","channel_name_mm":"True Film 1","channel_name_rus":"True Film 1","channel_name_th":"True Film 1","channel_name_vie":"True Film 1"},"views":388,"isLiveChat":false},{"id":"GNd67OBJ6pv","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/46f1c480-e599-11ed-96ec-4d05b9e2ca86_webp_original.png","slug":"thai-film","title":"True Thai Film","content_type":"livetv","category":"livetv-ca|movies-series-ca|trueunlock-ca|tvsnow|movieseries","content_provider":"true_vision","channel_code":"094","content_rights":null,"channel_info":{"channel_name_cbd":"True Thai Film","channel_name_chi":"True Thai Film","channel_name_eng":"True Thai Film","channel_name_mm":"True Thai Film","channel_name_rus":"True Thai Film","channel_name_th":"True Thai Film","channel_name_vie":"True Thai Film"},"views":359,"isLiveChat":false},{"id":"a0k7zw9OPrr0","thumb":"https://cms.dmpcdn.com/livetv/2020/07/14/72c22620-c5aa-11ea-a8d3-2b56c8ce453d_original.png","slug":"altv","title":"ALTV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|education-ca|freetv-ca","content_provider":"","channel_code":"dum024","content_rights":null,"channel_info":{"channel_name_eng":"ALTV","channel_name_th":"เอแอลทีวี"},"views":255,"isLiveChat":false},{"id":"9WmoQMj0NOp","thumb":"https://cms.dmpcdn.com/livetv/2023/11/22/932dbce0-8919-11ee-820d-0ff332ca746f_webp_original.webp","slug":"trueplookpanya","title":"True Plook Panya","content_type":"livetv","category":"livetv-ca|documentary-ca|tvsnow|documentary","content_provider":"true_vision","channel_code":"139","content_rights":null,"channel_info":{"channel_name_cbd":"ទ្រូបណ្តុះគំណិត","channel_name_eng":"True Plookpanya","channel_name_mm":"True Plookpanya","channel_name_th":"ทรู ปลูกปัญญา"},"views":242,"isLiveChat":false},{"id":"KlW9OymBRqrD","thumb":"https://cms.dmpcdn.com/livetv/2023/09/25/c3898e20-5b4f-11ee-a599-1d1a4f7c1125_webp_original.webp","slug":"trueid-sports","title":"TrueID Sports","content_type":"livetv","category":"livetv-ca|sports-ca","content_provider":"","channel_code":"he003","content_rights":null,"channel_info":{"channel_name_eng":"TrueID Sports","channel_name_th":"ทรูไอดี สปอร์ต"},"views":240,"isLiveChat":true},{"id":"Vwz1j7XVRkdn","thumb":"https://cms.dmpcdn.com/livetv/2023/08/02/89262f60-30e1-11ee-b445-3703761d6f4d_webp_original.webp","slug":"true-ball-thai-1","title":"True Ball Thai 1","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"vc01","content_rights":null,"channel_info":{"channel_name_eng":"True Ball Thai 1","channel_name_th":"True Ball Thai 1"},"views":234,"isLiveChat":false},{"id":"YmaygkwgE6Lm","thumb":"https://cms.dmpcdn.com/livetv/2023/10/02/75023d90-60f1-11ee-935a-5d4eba985103_webp_original.webp","slug":"tnn16-hd","title":"TNN 16 HD","content_type":"livetv","category":"livetv-ca|news-ca|tnn|tvsnow|tvsnews","content_provider":"true_vision","channel_code":"t516","content_rights":null,"channel_info":{"channel_name_eng":"TNN​ 16 HD","channel_name_th":"TNN 16 HD"},"views":233,"isLiveChat":false},{"id":"GdgqaeMewGp4","thumb":"https://cms.dmpcdn.com/livetv/2023/05/03/baf9ea30-e966-11ed-a3d3-f3f98ac7a1a1_webp_original.png","slug":"truepremierfootballhd3","title":"True Premier Football 3","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht113","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 3","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 3"},"views":199,"isLiveChat":true},{"id":"A36nrdXGn3V","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/47a53600-e599-11ed-94a2-8feec94a4a3b_webp_original.png","slug":"true-asian-more","title":"True Asian More","content_type":"livetv","category":"livetv-ca|movies-series-ca|trueunlock-ca|tvsnow|movieseries","content_provider":"true_vision","channel_code":"081","content_rights":null,"channel_info":{"channel_name_cbd":"True Asian More","channel_name_chi":"True Asian More","channel_name_eng":"True Asian More","channel_name_mm":"True Asian More","channel_name_rus":"True Asian More","channel_name_th":"True Asian More","channel_name_vie":"True Asian More"},"views":190,"isLiveChat":false},{"id":"74ngXBo8ke0","thumb":"https://cms.dmpcdn.com/livetv/2019/01/21/a01a26bb-ed4a-45c5-88a9-ff30f6bbb039.png","slug":"cartoonclub","title":"Cartoon Club","content_type":"livetv","category":"cartoon|hbtv-trueidtv-all|hbtv-truetv-kids|trueidtv-all|trueidtv-kids|kids|livetv-ca|kids-ca","content_provider":"","channel_code":"143","content_rights":null,"channel_info":{"channel_name_cbd":"កាទូនខ្លឹប","channel_name_eng":"Cartoon Club","channel_name_mm":"ကာတြန္းကလပ္","channel_name_th":"การ์ตูน คลับ"},"views":189,"isLiveChat":false},{"id":"4QmJ09AyPm4","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/43ffada0-e599-11ed-abcb-c792e696f885_webp_original.png","slug":"true-film-hd-2","title":"True Film 2","content_type":"livetv","category":"hbtv-truetv-movies-series|livetv-ca|movies-series-ca|tvsnow|movieseries","content_provider":"true_vision","channel_code":"221","content_rights":null,"channel_info":{"channel_name_cbd":"True Film 2","channel_name_chi":"True Film 2","channel_name_eng":"True Film 2","channel_name_mm":"True Film 2","channel_name_rus":"True Film 2","channel_name_th":"True Film 2","channel_name_vie":"True Film 2"},"views":185,"isLiveChat":false},{"id":"wQZrKd3mo65","thumb":"https://cms.dmpcdn.com/livetv/2023/04/24/81825540-e28a-11ed-9bb2-7fe2e28bfd8c_webp_original.png","slug":"truesport-hd","title":"True Sports 1","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"097","content_rights":null,"channel_info":{"channel_name_cbd":"True Sports 1","channel_name_chi":"True Sports 1","channel_name_eng":"True Sports 1","channel_name_mm":"True Sports 1","channel_name_rus":"True Sports 1","channel_name_th":"ทรูสปอร์ต 1","channel_name_vie":"True Sports 1"},"views":179,"isLiveChat":true},{"id":"Lzz61DA3zYL","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/486c7da0-e599-11ed-b481-1b121c78e74e_webp_original.png","slug":"true-explore-life","title":"True Explore Life","content_type":"livetv","category":"livetv-ca|documentary-ca|trueunlock-ca|tvsnow|documentary","content_provider":"true_vision","channel_code":"060","content_rights":null,"channel_info":{"channel_name_cbd":"True Explore Life","channel_name_chi":"True Explore Life","channel_name_eng":"True Explore Life","channel_name_mm":"True Explore Life","channel_name_rus":"True Explore Life","channel_name_th":"True Explore Life","channel_name_vie":"True Explore Life"},"views":124,"isLiveChat":false},{"id":"vNG2L371k5W","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/433fe010-e599-11ed-96ec-4d05b9e2ca86_webp_original.png","slug":"true-explore-wild","title":"True Explore Wild","content_type":"livetv","category":"livetv-ca|documentary-ca|trueunlock-ca|true-unlock|true-unlock-atv|tvsnow|documentary","content_provider":"true_vision","channel_code":"058","content_rights":null,"channel_info":{"channel_name_cbd":"True Explore Wild","channel_name_eng":"True Explore Wild","channel_name_mm":"True Explore Wild","channel_name_th":"True Explore Wild"},"views":119,"isLiveChat":false},{"id":"jqepWV3ka8j","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/46fb6170-e599-11ed-b606-c19576cb8b29_webp_original.png","slug":"true-x-zyte-hd","title":"True X-Zyte","content_type":"livetv","category":"livetv-ca|entertainment-ca|trueunlock-ca|tvsnow|entertainment","content_provider":"true_vision","channel_code":"034","content_rights":null,"channel_info":{"channel_name_cbd":"True X-Zyte","channel_name_chi":"True X-Zyte","channel_name_eng":"True X-Zyte","channel_name_mm":"True X-Zyte","channel_name_rus":"True X-Zyte","channel_name_th":"True X-Zyte","channel_name_vie":"True X-Zyte"},"views":107,"isLiveChat":false},{"id":"3wLvyKyryPAD","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/5fda18e0-29cc-11ee-846b-a1c4e5181c87_webp_original.webp","slug":"bein-sports-hd3","title":"beIN SPORTS 3","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"215","content_rights":null,"channel_info":{"channel_name_eng":"beIN SPORTS 3","channel_name_th":"บีอินสปอตส์ 3"},"views":96,"isLiveChat":false},{"id":"mVoXV1rk4B5","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/488c61b0-e599-11ed-94a2-8feec94a4a3b_webp_original.png","slug":"true-explore-3","title":"True Explore Sci","content_type":"livetv","category":"livetv-ca|documentary-ca|trueunlock-ca|tvsnow|documentary","content_provider":"true_vision","channel_code":"061","content_rights":null,"channel_info":{"channel_name_cbd":"True Explore Sci","channel_name_chi":"True Explore Sci","channel_name_eng":"True Explore Sci","channel_name_mm":"True Explore Sci","channel_name_rus":"True Explore Sci","channel_name_th":"True Explore Sci","channel_name_vie":"True Explore Sci"},"views":91,"isLiveChat":false},{"id":"D1029rjaV6GQ","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/0c14dd80-9407-11ee-b625-274874732f96_webp_original.webp","slug":"manchester-united","title":"Manchester United","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"mun01","content_rights":null,"channel_info":{"channel_name_eng":"Manchester United","channel_name_th":"แมนยู"},"views":91,"isLiveChat":false},{"id":"peWQgAb52vk","thumb":"https://cms.dmpcdn.com/livetv/2023/07/18/7cb4aae0-2515-11ee-9407-9367a664b338_webp_original.webp","slug":"golf-channel","title":"Golf Channel Thailand","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"095","content_rights":null,"channel_info":{"channel_name_cbd":"Golf Channel Thailand HD","channel_name_chi":"Golf Channel Thailand HD","channel_name_eng":"Golf Channel Thailand HD","channel_name_mm":"Golf Channel Thailand HD","channel_name_rus":"Golf Channel Thailand HD","channel_name_th":"Golf Channel Thailand HD","channel_name_vie":"Golf Channel Thailand HD"},"views":88,"isLiveChat":false},{"id":"A8aVZWzlOmDE","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/d7783cc0-9406-11ee-b445-0b5cfb8bf6f8_webp_original.webp","slug":"liverpool","title":"Liverpool","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"liv01","content_rights":null,"channel_info":{"channel_name_eng":"Liverpool","channel_name_th":"ลิเวอร์พูล"},"views":88,"isLiveChat":false},{"id":"Ay93Q8zlOeA","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/456c5d00-e599-11ed-b550-9935ba8025b9_webp_original.png","slug":"true-series","title":"True Series","content_type":"livetv","category":"livetv-ca|movies-series-ca|tvsnow|movieseries","content_provider":"true_vision","channel_code":"st006","content_rights":null,"channel_info":{"channel_name_cbd":"True Series","channel_name_chi":"True Series","channel_name_eng":"True Series","channel_name_mm":"True Series","channel_name_rus":"True Series","channel_name_th":"True Series","channel_name_vie":"True Series"},"views":82,"isLiveChat":false},{"id":"g9ONWXWJV5pq","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/5f3c5240-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","slug":"bein-sports-hd1","title":"beIN SPORTS 1","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"202","content_rights":null,"channel_info":{"channel_name_eng":"beIN SPORTS 1","channel_name_th":"บีอินสปอตส์ 1"},"views":80,"isLiveChat":false},{"id":"xR0n6ePG7wL","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/2960b3f0-e593-11ed-b26c-6b89d082d464_webp_original.png","slug":"truesport-hd-2","title":"True Sports 2","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|trueunlock-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht116","content_rights":null,"channel_info":{"channel_name_cbd":"True Sports 2","channel_name_chi":"True Sports 2","channel_name_eng":"True Sports 2","channel_name_mm":"True Sports 2","channel_name_rus":"True Sports 2","channel_name_th":"ทรูสปอร์ต 2","channel_name_vie":"True Sports 2"},"views":80,"isLiveChat":true},{"id":"JlrpNK19py0M","thumb":"https://cms.dmpcdn.com/livetv/2019/04/11/19b4bd2a-750c-4ee6-9d41-5080e1310bc3_original.png","slug":"Mangorn","title":"Mangorn","content_type":"livetv","category":"free-tv|livetv-ca|freetv-ca|movies-series-ca","content_provider":"","channel_code":"o020","content_rights":null,"channel_info":{"channel_name_eng":"Mangorn","channel_name_th":"มังกร"},"views":73,"isLiveChat":false},{"id":"lPXDJR6gN6l","thumb":"https://cms.dmpcdn.com/livetv/2019/02/28/a9490c72-7387-4409-b5a8-80db28585ca4.png","slug":"true-select","title":"True Select","content_type":"livetv","category":"livetv-ca|entertainment-ca|variety-ca|tvsnow|entertainment","content_provider":"true_vision","channel_code":"218","content_rights":null,"channel_info":{"channel_name_cbd":"True Select","channel_name_chi":"True Select","channel_name_eng":"True Select","channel_name_mm":"True Select","channel_name_rus":"True Select","channel_name_th":"True Select","channel_name_vie":"True Select"},"views":71,"isLiveChat":false},{"id":"NWY5K7ZELP2","thumb":"https://cms.dmpcdn.com/livetv/2018/12/17/0c30b192-953b-49b9-a9bf-a4c6e3e71de3.png","slug":"true-select-hd","title":"True Shopping","content_type":"livetv","category":"livetv-ca|entertainment-ca|tvsnow|entertainment","content_provider":"true_vision","channel_code":"127","content_rights":null,"channel_info":{"channel_name_cbd":"True Shopping","channel_name_chi":"True Shopping","channel_name_eng":"True Shopping","channel_name_mm":"True Shopping","channel_name_rus":"True Shopping","channel_name_th":"True Shopping","channel_name_vie":"True Shopping"},"views":70,"isLiveChat":true},{"id":"r71LNbqjaKe","thumb":"https://cms.dmpcdn.com/livetv/2019/01/31/a5aeb78c-c4db-474f-a5af-345cb9e2f5b5.png","slug":"rama-channel","title":"Rama Channel","content_type":"livetv","category":"livetv-ca|documentary-ca|news-ca|tvsnow|documentary","content_provider":"true_vision","channel_code":"128","content_rights":null,"channel_info":{"channel_name_cbd":"Rama Channel","channel_name_chi":"Rama Channel","channel_name_eng":"Rama Channel","channel_name_mm":"Rama Channel","channel_name_rus":"Rama Channel","channel_name_th":"Rama Channel","channel_name_vie":"Rama Channel"},"views":69,"isLiveChat":false},{"id":"YLN6d3oYyXEL","thumb":"https://cms.dmpcdn.com/livetv/2023/11/22/2a4de600-8919-11ee-8416-3dc6bea66698_webp_original.webp","slug":"tptv","title":"TPTV","content_type":"livetv","category":"livetv-ca|digitaltv-ca|education-ca|freetv-ca","content_provider":"","channel_code":"d31","content_rights":null,"channel_info":{"channel_name_eng":"TPTV - Thai Parliament TV","channel_name_th":"ทีพีทีวี"},"views":61,"isLiveChat":false},{"id":"eXlvvZ4EA5aY","thumb":"https://cms.dmpcdn.com/livetv/2022/12/22/d9313340-81d9-11ed-a7f9-412bbba270e9_webp_original.png","slug":"tv-nfl-nba","title":"NFL & NBA TV","content_type":"livetv","category":"livetv-ca|sports-ca","content_provider":"true_vision","channel_code":"t513","content_rights":null,"channel_info":{"channel_name_eng":"NFL & NBA TV","channel_name_th":"เอ็นเอฟแอล แอนด์ เอ็นบีเอ ทีวี"},"views":59,"isLiveChat":false},{"id":"zmvD0RO72nL","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/f493fb20-e595-11ed-b26c-6b89d082d464_webp_original.png","slug":"truesport-5","title":"True Sports 5","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"056","content_rights":null,"channel_info":{"channel_name_cbd":"True Sports 5","channel_name_chi":"True Sports 5","channel_name_eng":"True Sports 5","channel_name_mm":"True Sports 5","channel_name_rus":"True Sports 5","channel_name_th":"ทรูสปอร์ต 5","channel_name_vie":"True Sports 5"},"views":58,"isLiveChat":false},{"id":"mXQoNYKda2L9","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/434696d0-e599-11ed-b26c-6b89d082d464_webp_original.png","slug":"film-asia-hd","title":"True Film Asia","content_type":"livetv","category":"livetv-ca|movies-series-ca|tvsnow|movieseries","content_provider":"true_vision","channel_code":"t500","content_rights":null,"channel_info":{"channel_name_cbd":"True Film Asia","channel_name_chi":"True Film Asia","channel_name_eng":"True Film Asia","channel_name_mm":"True Film Asia","channel_name_rus":"True Film Asia","channel_name_th":"True Film Asia","channel_name_vie":"True Film Asia"},"views":55,"isLiveChat":false},{"id":"P83vkq1M1Lp","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/46065310-e599-11ed-96ec-4d05b9e2ca86_webp_original.png","slug":"true-spark","title":"True Spark Play","content_type":"livetv","category":"livetv-ca|kids-ca|trueunlock-ca|tvsnow|kids","content_provider":"true_vision","channel_code":"007","content_rights":null,"channel_info":{"channel_name_cbd":"True Spark Play","channel_name_chi":"True Spark Play","channel_name_eng":"True Spark Play","channel_name_mm":"True Spark Play","channel_name_rus":"True Spark Play","channel_name_th":"True Spark Play","channel_name_vie":"True Spark Play"},"views":54,"isLiveChat":false},{"id":"2L1ZZdJGxPej","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/61050450-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","slug":"spotv2-hd","title":"SPOTV 2","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"t511","content_rights":null,"channel_info":{"channel_name_eng":"SPOTV 2","channel_name_th":"SPOTV 2"},"views":46,"isLiveChat":false},{"id":"Mbx79DOD44J","thumb":"https://cms.dmpcdn.com/livetv/2021/06/01/e2f61c80-c234-11eb-92e3-4bf272c5d086_original.png","slug":"true-music-channel-hd","title":"True Music","content_type":"livetv","category":"livetv-ca|entertainment-ca|trueunlock-ca|tvsnow|entertainment","content_provider":"true_vision","channel_code":"159","content_rights":null,"channel_info":{"channel_name_cbd":"True Music","channel_name_chi":"True Music","channel_name_eng":"True Music","channel_name_mm":"True Music","channel_name_rus":"True Music","channel_name_th":"True Music","channel_name_vie":"True Music"},"views":40,"isLiveChat":false},{"id":"leVMNwY8LA1B","thumb":"https://cms.dmpcdn.com/livetv/2021/02/24/cc08cbe0-764d-11eb-b272-17d04980ce1e_original.png","slug":"ATTV","title":"@TV","content_type":"livetv","category":"free-tv|livetv-ca|freetv-ca","content_provider":"","channel_code":"i002","content_rights":null,"channel_info":{"channel_name_eng":"@TV","channel_name_th":"แอททีวี"},"views":39,"isLiveChat":false},{"id":"V14w2AL9grW6","thumb":"https://cms.dmpcdn.com/livetv/2023/11/13/bd6a6d20-8205-11ee-822c-6bbb3f82c35b_webp_original.webp","slug":"voicetv-2023","title":"VOICE TV","content_type":"livetv","category":"livetv-ca|freetv-ca|news-ca","content_provider":"","channel_code":"154","content_rights":null,"channel_info":{"channel_name_cbd":"វ៉យធីវី","channel_name_eng":"Voice TV","channel_name_mm":"Voice TV","channel_name_th":"วอยซ์ ทีวี"},"views":33,"isLiveChat":false},{"id":"NB2d2A9Zd94z","thumb":"https://cms.dmpcdn.com/livetv/2023/09/25/c389b530-5b4f-11ee-a6f1-ffa978a40b9f_webp_original.webp","slug":"trueid-live","title":"TrueID Live","content_type":"livetv","category":"livetv-ca|entertainment-ca|variety-ca","content_provider":"","channel_code":"ev04","content_rights":null,"channel_info":{"channel_name_th":"ทรูไอดี ไลฟ์"},"views":31,"isLiveChat":true},{"id":"GOPVJMln56Y","thumb":"https://cms.dmpcdn.com/livetv/2020/06/23/816989d0-b550-11ea-8fac-236a281cd6c5_original.png","slug":"dharmatv","title":"Dhamma TV","content_type":"livetv","category":"knowledge|livetv-ca|digitaltv-ca|documentary-ca|trueidtv-all|trueidtv-digital-tv|variety","content_provider":"","channel_code":"o016","content_rights":null,"channel_info":{"channel_name_cbd":"ព្រះធម៌ធីវី","channel_name_eng":"Dhamma TV","channel_name_mm":"Dhamma TV","channel_name_th":"ธรรมะทีวี"},"views":31,"isLiveChat":false},{"id":"09BRRXKbgge9","thumb":"https://cms.dmpcdn.com/livetv/2022/03/23/f7108720-aa94-11ec-9b91-03afdbb2e824_webp_original.png","slug":"truepremierfootballhd6","title":"True Premier Football 6","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca","content_provider":"true_vision","channel_code":"t502","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 6","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 6"},"views":31,"isLiveChat":false},{"id":"Q7vaEm8O9e4","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/f65ea900-e595-11ed-86b8-bb40638e3c49_webp_original.png","slug":"true-tennis-hd","title":"True Tennis","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"045","content_rights":null,"channel_info":{"channel_name_cbd":"True Tennis","channel_name_chi":"True Tennis","channel_name_eng":"True Tennis","channel_name_mm":"True Tennis","channel_name_rus":"True Tennis","channel_name_th":"True Tennis","channel_name_vie":"True Tennis"},"views":29,"isLiveChat":false},{"id":"N8E7v0JlM15e","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/94a32ae0-9406-11ee-a0fd-836d91d2dd6e_webp_original.webp","slug":"chelsea","title":"Chelsea","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"che01","content_rights":null,"channel_info":{"channel_name_eng":"Chelsea","channel_name_th":"เชลซี"},"views":28,"isLiveChat":false},{"id":"PdOXKN4O1vDr","thumb":"https://cms.dmpcdn.com/livetv/2023/09/25/c3898e20-5b4f-11ee-a599-1d1a4f7c1125_webp_original.webp","slug":"trueid-sports02","title":"TrueID Sports 2","content_type":"livetv","category":"livetv-ca|sports-ca|trueidtv-sport","content_provider":"","channel_code":"he004","content_rights":null,"channel_info":{"channel_name_eng":"TrueID Sports 2","channel_name_th":"ทรูไอดี สปอร์ต 2"},"views":26,"isLiveChat":false},{"id":"k3B64mk9ELl3","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/6057ad50-29cc-11ee-846b-a1c4e5181c87_webp_original.webp","slug":"golfchannel-thhdplus","title":"Golf Channel Thailand HD+","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"t501","content_rights":null,"channel_info":{"channel_name_cbd":"Golf Channel Thailand HD Plus","channel_name_chi":"Golf Channel Thailand HD Plus","channel_name_eng":"Golf Channel Thailand HD Plus","channel_name_mm":"Golf Channel Thailand HD Plus","channel_name_rus":"Golf Channel Thailand HD Plus","channel_name_th":"Golf Channel Thailand HD Plus","channel_name_vie":"Golf Channel Thailand HD Plus"},"views":26,"isLiveChat":false},{"id":"zWoZqZv6J6N5","thumb":"https://cms.dmpcdn.com/livetv/2022/10/11/f09e41a0-492e-11ed-bb17-0527d4e1664c_webp_original.png","slug":"crime-investigation","title":"Crime + Investigation","content_type":"livetv","category":"livetv-ca|documentary-ca|tvsnow|documentary","content_provider":"true_vision","channel_code":"t517","content_rights":null,"channel_info":{"channel_name_eng":"Crime Investigation","channel_name_th":"ไคร์ม แอนด์ อินเวสทิเกชั่น"},"views":25,"isLiveChat":false},{"id":"bDKPPGOdyAmn","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/60cba4d0-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","slug":"spotv1-hd","title":"SPOTV 1","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"t510","content_rights":null,"channel_info":{"channel_name_eng":"SPOTV 1","channel_name_th":"SPOTV 1"},"views":25,"isLiveChat":false},{"id":"zpwxwAgYOV7n","thumb":"https://cms.dmpcdn.com/livetv/2022/02/17/3943ca00-8fd6-11ec-b076-dffedf0eab22_webp_original.png","slug":"white-channel-hd","title":"White Channel","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|freetv-ca","content_provider":"","channel_code":"i006","content_rights":null,"channel_info":{"channel_name_eng":"White Channel","channel_name_th":"ไวท์แชนแนล"},"views":25,"isLiveChat":false},{"id":"vW6BOL0AzxdW","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/21b70060-9406-11ee-906d-89adbc3169c1_webp_original.webp","slug":"arsenal","title":"Arsenal","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"ars01","content_rights":null,"channel_info":{"channel_name_eng":"Arsenal","channel_name_th":"อาร์เซน่อล"},"views":25,"isLiveChat":false},{"id":"5YQaWExRqD5","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/87773550-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-3","title":"DLTV 3","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum003","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 3","channel_name_chi":"DLTV 3","channel_name_eng":"DLTV 3","channel_name_mm":"DLTV 3","channel_name_rus":"DLTV 3","channel_name_th":"DLTV 3","channel_name_vie":"DLTV 3"},"views":23,"isLiveChat":false},{"id":"xPgxpqoyqQ62","thumb":"https://cms.dmpcdn.com/livetv/2021/01/06/68be8520-500f-11eb-8d28-4b8e3f30b51b_original.png","slug":"zing","title":"Zing","content_type":"livetv","category":"livetv-ca|entertainment-ca|movies-series-ca|trueidtv-all","content_provider":"","channel_code":"i001","content_rights":null,"channel_info":{"channel_name_cbd":"Zing","channel_name_chi":"Zing","channel_name_eng":"Zing","channel_name_mm":"Zing","channel_name_rus":"Zing","channel_name_th":"Zing","channel_name_vie":"Zing"},"views":22,"isLiveChat":false},{"id":"5XaDjQd1JJgw","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/5f346300-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","slug":"bein-sports-hd2","title":"beIN SPORTS 2","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|trueidtv-all|tvsnow|sports","content_provider":"true_vision","channel_code":"t521","content_rights":null,"channel_info":{"channel_name_eng":"beIN SPORTS 2","channel_name_th":"บีอินสปอตส์ 2"},"views":22,"isLiveChat":false},{"id":"pmXrb1NjLeP0","thumb":"https://cms.dmpcdn.com/livetv/2023/05/03/bbea1690-e966-11ed-935b-df134f58d288_webp_original.png","slug":"truepremierfootballhd5","title":"True Premier Football 5","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht115","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 5","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 5"},"views":21,"isLiveChat":false},{"id":"GDna51EdVk4","thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/f4888970-e595-11ed-8507-4fc0b025fedb_webp_original.png","slug":"truesport-hd-4","title":"True Sports 4","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"062","content_rights":null,"channel_info":{"channel_name_cbd":"True Sports 4","channel_name_chi":"True Sports 4","channel_name_eng":"True Sports 4","channel_name_mm":"True Sports 4","channel_name_rus":"True Sports 4","channel_name_th":"ทรูสปอร์ต 4","channel_name_vie":"True Sports 4"},"views":21,"isLiveChat":false},{"id":"o9vKOR0dLVm7","thumb":"https://cms.dmpcdn.com/livetv/2023/09/25/c3898e20-5b4f-11ee-a599-1d1a4f7c1125_webp_original.webp","slug":"trueid-sports03","title":"TrueID Sports 3","content_type":"livetv","category":"livetv-ca|sports-ca|trueidtv-sport","content_provider":"","channel_code":"he005","content_rights":null,"channel_info":{"channel_name_eng":"TrueID Sports 3","channel_name_th":"ทรูไอดี สปอร์ต 3"},"views":20,"isLiveChat":false},{"id":"rO7WMREyepr","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/c273ea90-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-15","title":"DLTV 15","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum015","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 15","channel_name_chi":"DLTV 15","channel_name_eng":"DLTV 15","channel_name_mm":"DLTV 15","channel_name_rus":"DLTV 15","channel_name_th":"DLTV 15","channel_name_vie":"DLTV 15"},"views":20,"isLiveChat":false},{"id":"67ollp0Raz2V","thumb":"https://cms.dmpcdn.com/livetv/2022/03/23/f7114a70-aa94-11ec-9b91-03afdbb2e824_webp_original.png","slug":"truepremierfootballhd7","title":"True Premier Football 7","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca","content_provider":"true_vision","channel_code":"t503","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 7","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 7"},"views":18,"isLiveChat":false},{"id":"2KyzkV6AyPZ","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/65dc9bb0-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-1","title":"DLTV 1","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum001","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 1","channel_name_chi":"DLTV 1","channel_name_eng":"DLTV 1","channel_name_mm":"DLTV 1","channel_name_rus":"DLTV 1","channel_name_th":"DLTV 1","channel_name_vie":"DLTV 1"},"views":17,"isLiveChat":false},{"id":"gqVn9n7MeYXq","thumb":"https://cms.dmpcdn.com/livetv/2022/09/08/e55200a0-2f27-11ed-a458-efe831982670_webp_original.png","slug":"arirang-tv","title":"Arirang TV","content_type":"livetv","category":"livetv-ca|entertainment-ca|tvsnow|entertainment","content_provider":"true_vision","channel_code":"t519","content_rights":null,"channel_info":{"channel_name_eng":"Arirang TV","channel_name_th":"Arirang TV"},"views":16,"isLiveChat":false},{"id":"r4PaaOpzr0Ow","thumb":"https://cms.dmpcdn.com/livetv/2022/03/23/f868c420-aa94-11ec-9b91-03afdbb2e824_webp_original.png","slug":"truepremierfootballhd8","title":"True Premier Football 8","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca","content_provider":"true_vision","channel_code":"t504","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 8","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 8"},"views":16,"isLiveChat":false},{"id":"Kz5zjkGyDVA","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/66ce9cd0-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-6","title":"DLTV 6","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum006","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 6","channel_name_chi":"DLTV 6","channel_name_eng":"DLTV 6","channel_name_mm":"DLTV 6","channel_name_rus":"DLTV 6","channel_name_th":"DLTV 6","channel_name_vie":"DLTV 6"},"views":16,"isLiveChat":false},{"id":"Veb1NRpQ6LXk","thumb":"https://cms.dmpcdn.com/livetv/2022/02/10/16689820-8a46-11ec-8573-9fd52c482da3_webp_original.png","slug":"zee-anmol-sd","title":"Zee Anmol","content_type":"livetv","category":"livetv-ca|entertainment-ca|freetv-ca|movies-series-ca","content_provider":"","channel_code":"i005","content_rights":null,"channel_info":{"channel_name_eng":"Zee Anmol","channel_name_th":"Zee Anmol"},"views":15,"isLiveChat":false},{"id":"L3Jbvn0BnbA","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/65debe90-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-2","title":"DLTV 2","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum002","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 2","channel_name_chi":"DLTV 2","channel_name_eng":"DLTV 2","channel_name_mm":"DLTV 2","channel_name_rus":"DLTV 2","channel_name_th":"DLTV 2","channel_name_vie":"DLTV 2"},"views":15,"isLiveChat":false},{"id":"v2M0K4kgbrN","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/66317270-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-4","title":"DLTV 4","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum004","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 4","channel_name_chi":"DLTV 4","channel_name_eng":"DLTV 4","channel_name_mm":"DLTV 4","channel_name_rus":"DLTV 4","channel_name_th":"DLTV 4","channel_name_vie":"DLTV 4"},"views":15,"isLiveChat":false},{"id":"RGdlapJnLQNG","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/f8af80b0-9406-11ee-8d65-879d2e0f23a3_webp_original.webp","slug":"manchester-city","title":"Manchester City","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"mci01","content_rights":null,"channel_info":{"channel_name_eng":"Manchester City","channel_name_th":"แมนซิตี้"},"views":15,"isLiveChat":false},{"id":"JkpG4LeljXJ0","thumb":"https://cms.dmpcdn.com/livetv/2023/08/02/8a0c49a0-30e1-11ee-b220-4544ede97b74_webp_original.webp","slug":"true-ball-thai-2","title":"True Ball Thai 2","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"vc02","content_rights":null,"channel_info":{"channel_name_eng":"True Ball Thai 2","channel_name_th":"True Ball Thai 2"},"views":14,"isLiveChat":false},{"id":"Yb4p39lbgvN","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/6683b120-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-5","title":"DLTV 5","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum005","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 5","channel_name_chi":"DLTV 5","channel_name_eng":"DLTV 5","channel_name_mm":"DLTV 5","channel_name_rus":"DLTV 5","channel_name_th":"DLTV 5","channel_name_vie":"DLTV 5"},"views":14,"isLiveChat":false},{"id":"D38Lb540KAE3","thumb":"https://cms.dmpcdn.com/livetv/2021/02/24/cc358130-764d-11eb-9057-2d10fb4d0cf4_original.png","slug":"MediaTV","title":"Media TV","content_type":"livetv","category":"free-tv|livetv-ca|freetv-ca","content_provider":"","channel_code":"i003","content_rights":null,"channel_info":{"channel_name_eng":"Media TV","channel_name_th":"มีเดีย ทีวี"},"views":13,"isLiveChat":false},{"id":"JGAQ7VZpX9Y","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/044a2a10-98c5-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-12","title":"DLTV 12","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum012","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 12","channel_name_chi":"DLTV 12","channel_name_eng":"DLTV 12","channel_name_mm":"DLTV 12","channel_name_rus":"DLTV 12","channel_name_th":"DLTV 12","channel_name_vie":"DLTV 12"},"views":13,"isLiveChat":false},{"id":"zyab4aWZ0OWx","thumb":"https://cms.dmpcdn.com/livetv/2023/05/03/bb0beb90-e966-11ed-993c-b59183950f79_webp_original.png","slug":"truepremierfootballhd4","title":"True Premier Football 4","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"ht114","content_rights":null,"channel_info":{"channel_name_eng":"True Premier Football 4","channel_name_th":"ทรู พรีเมียร์ ฟุตบอล 4"},"views":12,"isLiveChat":false},{"id":"pQ6ok8M72AD","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/bfd21690-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-10","title":"DLTV 10","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":null,"channel_code":"dum010","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 10","channel_name_chi":"DLTV 10","channel_name_eng":"DLTV 10","channel_name_mm":"DLTV 10","channel_name_rus":"DLTV 10","channel_name_th":"DLTV 10","channel_name_vie":"DLTV 10"},"views":12,"isLiveChat":false},{"id":"wkrQgY603zM","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/c2364550-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-14","title":"DLTV 14","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum014","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 14","channel_name_chi":"DLTV 14","channel_name_eng":"DLTV 14","channel_name_mm":"DLTV 14","channel_name_rus":"DLTV 14","channel_name_th":"DLTV 14","channel_name_vie":"DLTV 14"},"views":12,"isLiveChat":false},{"id":"nYvz5QLWjyD","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/67145860-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-7","title":"DLTV 7","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum007","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 7","channel_name_chi":"DLTV 7","channel_name_eng":"DLTV 7","channel_name_mm":"DLTV 7","channel_name_rus":"DLTV 7","channel_name_th":"DLTV 7","channel_name_vie":"DLTV 7"},"views":11,"isLiveChat":false},{"id":"MndX5W8rWaMn","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/7003e750-9407-11ee-b445-0b5cfb8bf6f8_webp_original.webp","slug":"tottenham-hotspur","title":"Tottenham Hotspur","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"tot01","content_rights":null,"channel_info":{"channel_name_eng":"Tottenham Hotspur","channel_name_th":"สเปอร์"},"views":11,"isLiveChat":false},{"id":"E9k68z9aKDp","thumb":"https://cms.dmpcdn.com/livetv/2017/10/18/f1b957db-b175-45fc-ab2b-60150f9c570a.png","slug":"tnn-2","title":"TNN 2","content_type":"livetv","category":"livetv-ca|freetv-ca|news-ca|tvsnow|tvsnews","content_provider":"true_vision","channel_code":"074","content_rights":null,"channel_info":{"channel_name_cbd":"TNN 2","channel_name_chi":"TNN 2","channel_name_eng":"TNN 2","channel_name_mm":"TNN 2","channel_name_rus":"TNN 2","channel_name_th":"TNN 2","channel_name_vie":"TNN 2"},"views":10,"isLiveChat":false},{"id":"JeQ5L9PpVBJ","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/bf927580-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-9","title":"DLTV 9","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum009","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 9","channel_name_chi":"DLTV 9","channel_name_eng":"DLTV 9","channel_name_mm":"DLTV 9","channel_name_rus":"DLTV 9","channel_name_th":"DLTV 9","channel_name_vie":"DLTV 9"},"views":10,"isLiveChat":false},{"id":"M34YDGLk2wVj","thumb":"https://cms.dmpcdn.com/livetv/2023/08/02/8a3b21d0-30e1-11ee-a53e-b3f87dc8ba1e_webp_original.webp","slug":"true-ball-thai-3","title":"True Ball Thai 3","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"vc03","content_rights":null,"channel_info":{"channel_name_eng":"True Ball Thai 3","channel_name_th":"True Ball Thai 3"},"views":9,"isLiveChat":false},{"id":"R4WyxL6Mp8b","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/bf9386f0-98c4-11ea-b284-2bff0287c295_original.png","slug":"dltv-8","title":"DLTV 8","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum008","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 8","channel_name_chi":"DLTV 8","channel_name_eng":"DLTV 8","channel_name_mm":"DLTV 8","channel_name_rus":"DLTV 8","channel_name_th":"DLTV 8","channel_name_vie":"DLTV 8"},"views":9,"isLiveChat":false},{"id":"6Qna2oVjq3P","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/c2335f20-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-13","title":"DLTV 13","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum013","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 13","channel_name_chi":"DLTV 13","channel_name_eng":"DLTV 13","channel_name_mm":"DLTV 13","channel_name_rus":"DLTV 13","channel_name_th":"DLTV 13","channel_name_vie":"DLTV 13"},"views":9,"isLiveChat":false},{"id":"3JYow6Dx7zx0","thumb":"https://cms.dmpcdn.com/livetv/2023/08/02/2f7ad050-30f6-11ee-b57d-a9829f092f3e_webp_original.webp","slug":"bein-sports-6","title":"beIN SPORTS 6","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"","channel_code":"216","content_rights":null,"channel_info":{"channel_name_eng":"beIN SPORTS 6","channel_name_th":"บีอินสปอตส์ 6"},"views":7,"isLiveChat":false},{"id":"EGvbeMNZOwq","thumb":"https://cms.dmpcdn.com/livetv/2020/05/18/bfdaa210-98c4-11ea-bcb3-0320ce420b5e_original.png","slug":"dltv-11","title":"DLTV 11","content_type":"livetv","category":"education|hbtv-trueidtv-all|livetv-ca|education-ca","content_provider":"","channel_code":"dum011","content_rights":null,"channel_info":{"channel_name_cbd":"DLTV 11","channel_name_chi":"DLTV 11","channel_name_eng":"DLTV 11","channel_name_mm":"DLTV 11","channel_name_rus":"DLTV 11","channel_name_th":"DLTV 11","channel_name_vie":"DLTV 11"},"views":6,"isLiveChat":false},{"id":"JpawvVMe6aXO","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/1bf1afd0-9407-11ee-8d65-879d2e0f23a3_webp_original.webp","slug":"newcastle-united","title":"Newcastle United","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"new01","content_rights":null,"channel_info":{"channel_name_eng":"Newcastle United","channel_name_th":"นิวคาสเซิล"},"views":6,"isLiveChat":false},{"id":"RVrAxAOGx21v","thumb":"https://cms.dmpcdn.com/livetv/2022/09/08/e5b667c0-2f27-11ed-9e57-d98920d4c462_webp_original.png","slug":"dw-english","title":"DW English","content_type":"livetv","category":"livetv-ca|entertainment-ca|trueunlock-ca|tvsnow|entertainment","content_provider":"true_vision","channel_code":"t518","content_rights":null,"channel_info":{"channel_name_eng":"DW English","channel_name_th":"ดี ดับเบิ้ลยู อิงลิช"},"views":5,"isLiveChat":false},{"id":"eyEPa8A2WaJN","thumb":"https://cms.dmpcdn.com/livetv/2023/08/02/2f7a5b20-30f6-11ee-8c65-b3a6cba5ed9d_webp_original.webp","slug":"beinsports-4","title":"beIN SPORTS 4","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"","channel_code":"217","content_rights":null,"channel_info":{"channel_name_eng":"beIN SPORTS 4","channel_name_th":"บีอินสปอตส์ 4"},"views":5,"isLiveChat":false},{"id":"pQNm6nA20a6e","thumb":"https://cms.dmpcdn.com/livetv/2023/08/02/300adb50-30f6-11ee-b3e7-85edd640cc04_webp_original.webp","slug":"beinsports-5","title":"beIN SPORTS 5","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|tvsnow|sports","content_provider":"","channel_code":"219","content_rights":null,"channel_info":{"channel_name_eng":"beIN SPORTS 5","channel_name_th":"บีอินสปอตส์ 5"},"views":2,"isLiveChat":false},{"id":"YZzDXGM1Yd68","thumb":"https://cms.dmpcdn.com/livetv/2021/10/28/3965c0a0-3794-11ec-8e1f-6bce3683de8c_webp_original.png","slug":"Event2","title":"Event 2","content_type":"livetv","category":"hbtv-trueidtv-all|hbtv-truetv-sport|ott-trueidtv-sport|sport|trueidtv-all|trueidtv-sport","content_provider":"","channel_code":"ev03","content_rights":null,"channel_info":null,"views":1,"isLiveChat":false},{"id":"LVQzz7xplYpP","thumb":"https://cms.dmpcdn.com/livetv/2021/10/28/3965c0a0-3794-11ec-8e1f-6bce3683de8c_webp_original.png","slug":"Event5","title":"Event 5","content_type":"livetv","category":"hbtv-trueidtv-all|hbtv-truetv-sport|ott-trueidtv-sport|sport|trueidtv-all|trueidtv-sport","content_provider":null,"channel_code":"emer05","content_rights":null,"channel_info":null,"views":1,"isLiveChat":false},{"id":"xVW7oVd8Gen","thumb":"https://cms.dmpcdn.com/livetv/2020/06/23/99bc7f60-b550-11ea-8fac-236a281cd6c5_original.png","slug":"super-entertain","title":"Super Bunteung","content_type":"livetv","category":"hbtv-trueidtv-all|hbtv-truetv-entertainment|tvsnow|entertainment|livetv-ca|entertainment-ca","content_provider":"true_vision","channel_code":"108","content_rights":null,"channel_info":{"channel_name_cbd":"ស៊ុបព័រអិនធើធែនមិន","channel_name_eng":"Super Bunteung","channel_name_mm":"အထူးေဖ်ာ္ေျဖမႈမ်ား","channel_name_th":"ซุปเปอร์ บันเทิง"},"views":1,"isLiveChat":false},{"id":"rVWJGN1VLOB","thumb":"https://cms.dmpcdn.com/livetv/2017/10/17/31a68f7b-d24e-43e0-9403-22f5e48f081b.png","slug":"etv","title":"ETV","content_type":"livetv","category":"hbtv-trueidtv-all|tvsnow|entertainment|livetv-ca|entertainment-ca|education-ca","content_provider":"true_vision","channel_code":"da2","content_rights":null,"channel_info":{"channel_name_cbd":"ETV","channel_name_chi":"ETV","channel_name_eng":"ETV","channel_name_mm":"ETV","channel_name_rus":"ETV","channel_name_th":"ETV","channel_name_vie":"ETV"},"views":1,"isLiveChat":false},{"id":"vAG5EZznD1Kl","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/7e72f8d0-9407-11ee-b32f-2d43ff6700d5_webp_original.webp","slug":"west-ham-united","title":"West Ham United","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"whu01","content_rights":null,"channel_info":{"channel_name_eng":"West Ham United","channel_name_th":"เวสต์แฮม"},"views":1,"isLiveChat":false},{"id":"nle3eNnyVpag","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/a4879e50-9406-11ee-b543-51f040e58632_webp_original.webp","slug":"crystal-palace","title":"Crystal Palace","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"cry01","content_rights":null,"channel_info":{"channel_name_eng":"Crystal-Palace","channel_name_th":"คริสตัลพาเลซ"},"views":1,"isLiveChat":false},{"id":"GB0gZlzxgnJr","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/0a03a630-9406-11ee-906d-89adbc3169c1_webp_original.webp","slug":"bournemouth","title":"A.F.C. Bournemouth","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"bou01","content_rights":null,"channel_info":{"channel_name_eng":"Bournemouth","channel_name_th":"บอร์นมัธ"},"views":1,"isLiveChat":false},{"id":"1ZrGkEk3qP7L","thumb":"https://cms.dmpcdn.com/livetv/2022/07/18/79461e70-0667-11ed-b687-85f145af88ed_webp_original.png","slug":"test3","title":"ช่องทดสอบออกอากาศที่ 3","content_type":"livetv","category":"livetv-ca|sports-ca","content_provider":"","channel_code":"tmp005","content_rights":null,"channel_info":{"channel_name_eng":"ช่องทดสอบออกอากาศที่ 3","channel_name_th":"ช่องทดสอบออกอากาศที่ 3"},"views":0,"isLiveChat":false},{"id":"6G190MBm2kkG","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/7bb41c60-9406-11ee-a0fd-836d91d2dd6e_webp_original.webp","slug":"burnley","title":"Burnley","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|trueunlock-ca","content_provider":"","channel_code":"brn01","content_rights":null,"channel_info":{"channel_name_eng":"Burnley","channel_name_th":"เบิร์นลีย์"},"views":0,"isLiveChat":false},{"id":"4GePx966Dzao","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/e8af9600-9406-11ee-b625-274874732f96_webp_original.webp","slug":"luton-town","title":"Luton Town","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|trueunlock-ca","content_provider":"","channel_code":"lut01","content_rights":null,"channel_info":{"channel_name_eng":"Luton Town","channel_name_th":"ลูตัน ทาวน์"},"views":0,"isLiveChat":false},{"id":"4NYqR5KyQArN","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/61985840-9407-11ee-a0fd-836d91d2dd6e_webp_original.webp","slug":"sheffield-united","title":"Sheffield United","content_type":"livetv","category":"livetv-ca|football-ca|sports-ca|trueunlock-ca","content_provider":"","channel_code":"shu01","content_rights":null,"channel_info":{"channel_name_eng":"Sheffield United","channel_name_th":"เชฟฟิลด์ ยูไนเต็ด"},"views":0,"isLiveChat":false},{"id":"xAzllg2VXjRm","thumb":"https://cms.dmpcdn.com/livetv/2021/10/28/3965c0a0-3794-11ec-8e1f-6bce3683de8c_webp_original.png","slug":"Event3","title":"Event 3","content_type":"livetv","category":"hbtv-trueidtv-all|hbtv-truetv-sport|ott-trueidtv-sport|sport|trueidtv-all|trueidtv-sport","content_provider":null,"channel_code":"emer03","content_rights":null,"channel_info":null,"views":0,"isLiveChat":false},{"id":"WGVqq6zeAzaZ","thumb":"https://cms.dmpcdn.com/livetv/2021/10/28/3965c0a0-3794-11ec-8e1f-6bce3683de8c_webp_original.png","slug":"Event4","title":"Event 4","content_type":"livetv","category":"hbtv-trueidtv-all|hbtv-truetv-sport|ott-trueidtv-sport|sport|trueidtv-all|trueidtv-sport","content_provider":null,"channel_code":"emer04","content_rights":null,"channel_info":null,"views":0,"isLiveChat":false},{"id":"RjY3XkeL5Mwl","thumb":"https://cms.dmpcdn.com/livetv/2021/10/28/3965c0a0-3794-11ec-8e1f-6bce3683de8c_webp_original.png","slug":"Event1","title":"Event 1","content_type":"livetv","category":"hbtv-trueidtv-all|hbtv-truetv-sport|ott-trueidtv-sport|sport|trueidtv-all|trueidtv-sport","content_provider":null,"channel_code":"ev02","content_rights":null,"channel_info":null,"views":0,"isLiveChat":false},{"id":"glmE5eNRz47l","thumb":"https://cms.dmpcdn.com/livetv/2022/07/18/79461e70-0667-11ed-b687-85f145af88ed_webp_original.png","slug":"test","title":"ช่องทดสอบการออกอากาศ","content_type":"livetv","category":"livetv-ca","content_provider":"","channel_code":"tmp003","content_rights":null,"channel_info":{"channel_name_eng":"ทดสอบการออกอากาศ","channel_name_th":"ทดสอบการออกอากาศ"},"views":0,"isLiveChat":false},{"id":"RvJwkNg06Qre","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/35f494c0-9406-11ee-b32f-2d43ff6700d5_webp_original.webp","slug":"aston-villa","title":"Aston Villa","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"avl01","content_rights":null,"channel_info":{"channel_name_eng":"Aston Villa","channel_name_th":"แอสตันวิลล่า"},"views":0,"isLiveChat":false},{"id":"Vjb43gpNAVnl","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/b6bb0ad0-9406-11ee-b543-51f040e58632_webp_original.webp","slug":"everton","title":"Everton","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"eve01","content_rights":null,"channel_info":{"channel_name_eng":"Everton","channel_name_th":"เอเวอร์ตัน"},"views":0,"isLiveChat":false},{"id":"K24pNw8k5Kj2","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/94ed36c0-9407-11ee-906d-89adbc3169c1_webp_original.webp","slug":"wolves","title":"Wolves","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"wol01","content_rights":null,"channel_info":{"channel_name_eng":"Wolves","channel_name_th":"วูลฟ์"},"views":0,"isLiveChat":false},{"id":"vQEl8Do0nK46","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/c843df70-9406-11ee-8d65-879d2e0f23a3_webp_original.webp","slug":"fulham","title":"Fulham","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"ful01","content_rights":null,"channel_info":{"channel_name_eng":"Fulham","channel_name_th":"ฟูแล่ม"},"views":0,"isLiveChat":false},{"id":"oDqg2NPZdJz5","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/600d67f0-9406-11ee-ab3e-a51daa175c33_webp_original.webp","slug":"brighton-and-hove-albion","title":"Brighton & Hove Albion","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"bha01","content_rights":null,"channel_info":{"channel_name_eng":"Brighton-and-Hove-Albion","channel_name_th":"ไบร์ทตัน"},"views":0,"isLiveChat":false},{"id":"ykaXNqEMoPZR","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/30299ee0-9407-11ee-a469-0b60cd4a260f_webp_original.webp","slug":"nottingham-forest","title":"Nottingham Forest","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"nfo01","content_rights":null,"channel_info":{"channel_name_eng":"Nottingham Forest","channel_name_th":"ฟอร์เรสต์"},"views":0,"isLiveChat":false},{"id":"3gaL3mjZoxrE","thumb":"https://cms.dmpcdn.com/livetv/2023/12/06/4738bf40-9406-11ee-a0fd-836d91d2dd6e_webp_original.webp","slug":"brentford","title":"Brentford","content_type":"livetv","category":"hbtv-trueidtv-all|livetv-ca|football-ca|sports-ca|true-unlock|true-unlock-atv|trueidtv-all","content_provider":"","channel_code":"bre01","content_rights":null,"channel_info":{"channel_name_eng":"Brentford","channel_name_th":"เบรนท์ฟอร์ด"},"views":0,"isLiveChat":false},{"id":"2Ag1bgVdNwoL","thumb":"https://cms.dmpcdn.com/livetv/2022/07/18/79461e70-0667-11ed-b687-85f145af88ed_webp_original.png","slug":"test2","title":"ช่องทดสอบออกอากาศที่2","content_type":"livetv","category":"livetv-ca|sports-ca","content_provider":"","channel_code":"tmp004","content_rights":null,"channel_info":{"channel_name_eng":"ช่องทดสอบออกอากาศที่2","channel_name_th":"ช่องทดสอบออกอากาศที่2"},"views":0,"isLiveChat":false},{"id":"OzKE5d4pdNwy","thumb":"https://cms.dmpcdn.com/livetv/2022/11/16/88521af0-6598-11ed-8215-b386a7bd4f58_webp_original.png","slug":"ufc","title":"UFC","content_type":"livetv","category":"livetv-ca|sports-ca|tvsnow|sports","content_provider":"true_vision","channel_code":"vc04","content_rights":null,"channel_info":{"channel_name_eng":"UFC","channel_name_th":"ยูเอฟซี"},"views":0,"isLiveChat":false}],"channelSlug":"true-movie-hits","baseShelves":{"adsConfig":{"adsNetworkId":"","adsUnit":"21682623839/TrueID_Web/TV"},"id":"3MPnXKpGjKqQ","shelfItems":[{"id":"G3rooMXA2b4Z","title":{"th":"แนะนำ","en":"Featured"},"type":"by_banner_homepage","viewType":"horizontal","shelfItems":[{"id":"J1X89KQE7001","title":"ContentMkt_AVOD_Series_SpiceAndSpell","thumb":"https://cms.dmpcdn.com/hilight/2023/11/24/890e7c60-8aac-11ee-ad2b-e5fcaaed0aed_webp_original.webp","redirectUrl":"https://movie.trueid.net/series/kbNxLxw5Eg52/rV1rP8Dj27kB/AkMBP4z2VOKG/XrVjVjeWXz2r","article_category":null,"content_type":"hilight"},{"id":"xrGQRbjWx1EL","title":"ContentMkt_TVOD_Movie_MI7Part1","thumb":"https://cms.dmpcdn.com/hilight/2023/11/23/32f66c30-89cf-11ee-976f-abdcd950f267_webp_original.webp","redirectUrl":"https://movie.trueid.net/movie/xDnNeqGkreJD","article_category":null,"content_type":"hilight"},{"id":"J52JxN0jXkA5","title":"ContentMkt_SVOD_Asianseries_MyPrecious","thumb":"https://cms.dmpcdn.com/hilight/2023/11/06/00af5020-7c19-11ee-a9a1-41799b41aff4_webp_original.webp","redirectUrl":"","article_category":null,"content_type":"hilight"},{"id":"yb22AdYZnQGb","title":"ContentMkt_AVOD_Lakorn_BakeMePlease","thumb":"https://cms.dmpcdn.com/hilight/2023/11/24/48523fc0-8aa9-11ee-bf9d-a586c3ad0143_webp_original.webp","redirectUrl":"https://movie.trueid.net/series/kN0QYgOQ0EJ5/zWBxNa65n6Vv/Eadp1WLqDXra/yqJgdKrkyRLY","article_category":null,"content_type":"hilight"},{"id":"VmW2pEP9q3rw","title":"ContentMkt_AVOD_Anime_JujutsuKaisen","thumb":"https://cms.dmpcdn.com/hilight/2023/11/24/88238020-8aac-11ee-873d-3f4e5da5fd9c_webp_original.webp","redirectUrl":"https://movie.trueid.net/series/LgR5wpRnPQVA/qYQ00Mby07Rl/MvKZ6RnxKRaQ/jdAX0Wagxl4R","article_category":null,"content_type":"hilight"},{"id":"BXGpEAn51mwW","title":"ContentMkt_TVOD_Movie_Ambulance","thumb":"https://cms.dmpcdn.com/hilight/2023/11/23/32aa20f0-89cf-11ee-ae81-d157aa7f87b4_webp_original.webp","redirectUrl":"https://movie.trueid.net/movie/Eq63XJL4okzw","article_category":null,"content_type":"hilight"},{"id":"DoLWMe0YeQR8","title":"ContentMkt_AVOD_Anime_DarkGathering","thumb":"https://cms.dmpcdn.com/hilight/2023/11/23/316e93b0-89cf-11ee-a5ec-b3b59a2ebd97_webp_original.webp","redirectUrl":"https://movie.trueid.net/series/d6425Em1DPjQ/QMrQQgYaEDGZ/OAqkmxqX05DQ/1G8xwp6ja86G","article_category":null,"content_type":"hilight"},{"id":"1PddoL4xG12P","title":"ContentMkt_AVOD_Anime_OnePiece","thumb":"https://cms.dmpcdn.com/hilight/2023/11/24/88241c60-8aac-11ee-bf9d-a586c3ad0143_webp_original.webp","redirectUrl":"https://movie.trueid.net/th-th/series/kxqkPYqVBq0D/4AoxBYpn4L1W/p2N5lYZGlVlL/lZ78MWznOElG","article_category":null,"content_type":"hilight"},{"id":"nYa5A41VxmXY","title":"TruelD One Package ความบันเทิงระดับโลก แบบไร้ขีดจำกัด V21-23","thumb":"https://cms.dmpcdn.com/hilight/2023/11/13/84d3ef30-8215-11ee-84cd-3b76e2935cfd_webp_original.webp","redirectUrl":"https://home.trueid.net/external-browser?website=https://myaccount.trueid.net/checkout?promotionCode=SUPERBUNDLE_TID_IQIYI_WETV_PRIME&utm_campaign=Package_NA_NA_TrueIDOne&utm_medium=inside-platform&utm_source=Today_new_release","article_category":null,"content_type":"hilight"},{"id":"VKvARdba10aW","title":"What's Wrong with My Princess","thumb":"https://cms.dmpcdn.com/hilight/2023/11/27/77b75b30-8cd2-11ee-9352-bd2663fbb8ed_webp_original.webp","redirectUrl":"https://movie.trueid.net/series/mP3G7aOXQGXP/QeDwwRKOL2Mp/RvD2p1OpZMRQ/zxnrl6JJnZ2x","article_category":null,"content_type":"hilight"}]},{"id":"k42naQeVKbK4","title":{"th":"","en":""},"type":"by_ads","viewType":"horizontal","shelfItems":[{"ALL":{"targetingArguments":{"TrueID_page":[],"Device":[]},"sizeMapping":[{"viewport":[1280,0],"sizes":[[750,200],[970,90],[728,90],"fluid",[800,250],[970,250],[1,1],[1280,250]]},{"viewport":[375,0],"sizes":[[1,1],[320,250],[375,250],"fluid",[300,250],[320,100]]},{"viewport":[800,0],"sizes":["fluid",[640,250],[800,250],[1,1],[728,90]]},{"viewport":[0,0],"sizes":[[320,50],[320,100],[1,1]]}],"slotId":"div-gpt-ad-lb-1","adUnit":"21682623839/TrueID_Web/TV","sizes":[[970,90],[728,90]]}}]},{"id":"O8pKrLmQlj2a","title":{"th":"ช่องฟรีทีวีฮิต","en":"Free TV"},"type":"by_livetv_channel","viewType":"vertical","shelfItems":[{"id":"wKngqJ2Vqnl","title":"MONO 29","thumb":"https://cms.dmpcdn.com/livetv/2019/01/10/35a35017-8473-4953-8474-5c58d805b74a.png","redirectUrl":"mono29","channel_code":"d43","views":33721,"article_category":["livetv-ca","digitaltv-ca","freetv-ca","movies-series-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"yYk6PvXwXDb","title":"WorkPoint TV","thumb":"https://cms.dmpcdn.com/livetv/2023/11/17/2a1de990-852d-11ee-bf98-41acc8fd04fc_webp_original.webp","redirectUrl":"workpointtv","channel_code":"d83","views":6075,"article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"QRP2K658b7G","title":"Thai PBS","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/ab170410-5377-11ee-8e1b-194edbb69638_webp_original.webp","redirectUrl":"thaipbs","channel_code":"c12","views":2526,"article_category":["livetv-ca","digitaltv-ca","freetv-ca","news-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"vqbr1WgEnGQ","title":"Channel 8","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/5408a390-5377-11ee-8e1b-194edbb69638_webp_original.webp","redirectUrl":"ch8","channel_code":"d62","views":8295,"article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"9O54lyP5Rqx","title":"Channel 7HD","thumb":"https://cms.dmpcdn.com/livetv/2023/07/19/212d15e0-25e7-11ee-bfc1-85e95548413c_webp_original.webp","redirectUrl":"ch7-hd","channel_code":"c07","views":12092,"article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"zMLBpX7AWmk","title":"Nation TV","thumb":"https://cms.dmpcdn.com/livetv/2023/09/09/9c6f59c0-4ebe-11ee-99a7-832609069236_webp_original.webp","redirectUrl":"nationtv","channel_code":"d78","views":4733,"article_category":["livetv-ca","digitaltv-ca","freetv-ca","news-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"nQlqONGyoa4","title":"Channel 3","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/5ff3e270-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","redirectUrl":"ch3-hd","channel_code":"c03","views":96184,"article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"5PKobQk5gLOP","title":"Boomerang","thumb":"https://cms.dmpcdn.com/livetv/2023/07/05/b74a2460-1b05-11ee-8ce6-b102b53cb4a2_webp_original.webp","redirectUrl":"boomerang-hd","channel_code":"i007","views":707,"article_category":["livetv-ca","freetv-ca","kids-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"OVKwZle4eop","title":"True4U","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/84504210-5377-11ee-aaa1-7d584d8ca7a4_webp_original.webp","redirectUrl":"true4u","channel_code":"207","views":6489,"article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca","movies-series-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"0z4lvq6Xwoa","title":"One31","thumb":"https://cms.dmpcdn.com/livetv/2019/01/16/396384be-35dc-4d11-bf04-06c9546ec7bc.png","redirectUrl":"one-hd","channel_code":"d56","views":10182,"article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false},{"id":"rBWOx89v9Rk","title":"9 MCOT","thumb":"https://cms.dmpcdn.com/livetv/2023/09/09/9cc40970-4ebe-11ee-9801-97f95b5eed9a_webp_original.webp","redirectUrl":"9mcot-hd","channel_code":"c09","views":1323,"article_category":["livetv-ca","digitaltv-ca","freetv-ca"],"content_type":"livetv","content_rights":"","isLiveChat":false}]},{"id":"agbxxnP7GZQ4","title":{"th":"โปรแกรมทีวียอดนิยม","en":"Trending TV Program"},"type":"by_trending_tv_program","viewType":"horizontal","shelfItems":[{"id":"nQlqONGyoa4","title":"แชนแนลทรี ซีรีส์ สายใยรัก เหนือบัลลังก์","thumb":"https://cms.dmpcdn.com/livetv/2023/07/24/5ff3e270-29cc-11ee-b2f4-e9de482d866e_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/c03.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/ch3-hd","views":96184,"program_id":"wDGy4q2m963K","program_name":"แชนแนลทรี ซีรีส์ สายใยรัก เหนือบัลลังก์","article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ 3 HD","channel_name_eng":"CH3 HD","channel_name_mm":"CH3 HD","channel_name_th":"ช่อง 3 HD"}},{"id":"8v732AYomo9","title":"ไทยรัฐเจาะประเด็น","thumb":"https://cms.dmpcdn.com/livetv/2023/07/18/7dc7a180-2515-11ee-b8b2-77e2a8f4c31e_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/d05.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/thairathtv-hd","views":17228,"program_id":"xkKBjq0VA926","program_name":"ไทยรัฐเจาะประเด็น","article_category":["livetv-ca","digitaltv-ca","freetv-ca","news-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"ថៃរ៉ាត់ ធីវី HD","channel_name_eng":"Thairath TV HD","channel_name_mm":"Thairath TV HD","channel_name_th":"ไทยรัฐ ทีวี HD"}},{"id":"0z4lvq6Xwoa","title":"ละคร เสน่หาข้ามเส้น (ตอนอวสาน)","thumb":"https://cms.dmpcdn.com/livetv/2019/01/16/396384be-35dc-4d11-bf04-06c9546ec7bc.png","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/d56.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/one-hd","views":10182,"program_id":"VZ8mMrWEKxQ3","program_name":"ละคร เสน่หาข้ามเส้น (ตอนอวสาน)","article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"វ័ន HD","channel_name_eng":"One HD","channel_name_mm":"One HD","channel_name_th":"วัน HD"}},{"id":"OVKwZle4eop","title":"ภาพยนตร์ อันธพาล","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/84504210-5377-11ee-aaa1-7d584d8ca7a4_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/207.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/true4u","views":6489,"program_id":"4A8jX4rrX58J","program_name":"ภาพยนตร์ อันธพาล","article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca","movies-series-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"ទ្រូ4យូ","channel_name_chi":"True4U","channel_name_eng":"True4U","channel_name_mm":"True4U","channel_name_rus":"True4U","channel_name_th":"ทรูโฟร์ยู","channel_name_vie":"True4U"}},{"id":"9O54lyP5Rqx","title":"One Lumpinee Heroes","thumb":"https://cms.dmpcdn.com/livetv/2023/07/19/212d15e0-25e7-11ee-bfc1-85e95548413c_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/c07.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/ch7-hd","views":12092,"program_id":"vbQqm8mnpyYb","program_name":"One Lumpinee Heroes","article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍​ 7","channel_name_eng":"CH 7HD","channel_name_mm":"Channel 7","channel_name_th":"ช่อง 7HD"}},{"id":"yYk6PvXwXDb","title":"เคลียร์ชัดชัด รีรัน","thumb":"https://cms.dmpcdn.com/livetv/2023/11/17/2a1de990-852d-11ee-bf98-41acc8fd04fc_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/d83.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/workpointtv","views":6075,"program_id":"KzKlKXKPDkDY","program_name":"เคลียร์ชัดชัด รีรัน","article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"វើកភ័ញ គ្រីអ៊ែតធិវ ធីវី​","channel_name_eng":"Workpoint TV","channel_name_mm":"Workpoint TV","channel_name_th":"เวิร์คพอยท์ ทีวี"}},{"id":"OBb6NzoJX7O","title":"ทรูช้อปปิ้ง","thumb":"https://cms.dmpcdn.com/livetv/2023/10/02/d2ec4b30-60f1-11ee-92a4-8597bcef0049_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/da0.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/amarintv-hd","views":6407,"program_id":"PwP4AzA5KBXw","program_name":"ทรูช้อปปิ้ง","article_category":["livetv-ca","digitaltv-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"អាម៉ារិន","channel_name_eng":"Amarin TV","channel_name_mm":"Amarin TV","channel_name_th":"อมรินทร์"}},{"id":"vqbr1WgEnGQ","title":"เด็ดมวยเดือด","thumb":"https://cms.dmpcdn.com/livetv/2023/09/15/5408a390-5377-11ee-8e1b-194edbb69638_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/d62.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/ch8","views":8295,"program_id":"XJ4NgMgdr7K2","program_name":"เด็ดมวยเดือด","article_category":["livetv-ca","digitaltv-ca","entertainment-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"ប៉ុស្តិ៍ 8","channel_name_eng":"CH8","channel_name_th":"ช่อง 8"}},{"id":"zMLBpX7AWmk","title":"ยุคลชนข่าว","thumb":"https://cms.dmpcdn.com/livetv/2023/09/09/9c6f59c0-4ebe-11ee-99a7-832609069236_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/d78.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/nationtv","views":4733,"program_id":"m6ejRJ5pKvdL","program_name":"ยุคลชนข่าว","article_category":["livetv-ca","digitaltv-ca","freetv-ca","news-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"Nation TV 22","channel_name_chi":"Nation TV 22","channel_name_eng":"Nation TV 22","channel_name_mm":"Nation TV 22","channel_name_rus":"Nation TV 22","channel_name_th":"เนชั่น ทีวี","channel_name_vie":"Nation TV 22"}},{"id":"QNBwOpdaxpQ","title":"Highlights Bundesliga","thumb":"https://cms.dmpcdn.com/livetv/2023/08/28/012eed00-458a-11ee-bd2b-6734a2d9e428_webp_original.webp","thumbLarge":"https://epgthumb.dmpcdn.com/thumbnail_large/da7.jpg?time=1702312743612","redirectUrl":"https://tv.trueid.net/th-en/live/pptv-hd","views":4723,"program_id":"DwYXj5Jbvex1","program_name":"Highlights Bundesliga","article_category":["livetv-ca","digitaltv-ca","freetv-ca"],"content_type":"livetv","channel_info":{"channel_name_cbd":"ភីភីធីវី","channel_name_eng":"PPTV","channel_name_mm":"PPTV","channel_name_th":"พีพีทีวี"}}]}]},"channelDetail":{"display_country":"th","display_lang":"en","id":"NopZ5gjkGmE","content_type":"livetv","original_id":"279","title":"True Movie Hits","article_category":["livetv-ca","movies-series-ca","trueunlock-ca","tvsnow","movieseries"],"thumb":"https://cms.dmpcdn.com/livetv/2023/04/28/45345d10-e599-11ed-86b8-bb40638e3c49_webp_original.png","tags":null,"status":"publish","count_views":538976,"publish_date":"2020-07-26T17:00:00.000Z","create_date":"2017-10-17T22:01:00.000Z","update_date":"2023-11-26T11:08:14.333Z","searchable":"Y","create_by":"Live TV","create_by_ssoid":null,"update_by":"KANT","update_by_ssoid":"112710659","source_url":null,"count_likes":null,"count_ratings":null,"source_country":null,"channel_code":"057","drm":"WV_FPS","channel_info":{"channel_name_cbd":"True Movie Hits","channel_name_chi":"True Movie Hits","channel_name_eng":"True Movie Hits","channel_name_mm":"True Movie Hits","channel_name_rus":"True Movie Hits","channel_name_th":"True Movie Hits","channel_name_vie":"True Movie Hits"},"lang_dual":"yes","setting":null,"slug":"true-movie-hits","allow_app":["trueidapp","trueidweb","trueidott","hybrid"],"detail":"

ช่องภาพยนต์ต่างประเทศ รับชมได้ทั้งครบครัวด้วยระบบเสียงภาษาไทย

","content_provider":"true_vision","playready":"","score":null},"liveChatConfig":{"channelId":"NopZ5gjkGmE","isLiveChat":false,"slug":"true-movie-hits","disabledChat":false,"supportBrowser":{"chrome_browser_version":{"min_version":83,"live_chat":false},"firefox_browser_version":{"min_version":92,"live_chat":false},"msedge_browser_version":{"min_version":80,"live_chat":false},"off_livechat":false},"disabledChatList":[]},"epgList":[{"id":"w2xyzKz9eyb3","original_id":"057:20231212_020500","content_type":"epg","title":"The Last Witch Hunter","detail":"","status":"publish","channel_code":"057","title_id":"715307","ep_id":"2397606","ep_no":"1","ep_name":"LAST WITCH HUNTER, THE (2015) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-11T19:05:00.000Z","end_date":"2023-12-11T20:55:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_020500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_020500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_021000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_020500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg","synopsis_en":"A young man is all that stands between humanity and the most horrifying witches in history.","director":"Breck Eisner","title_id":"715307","video":"pBNufkr4KkU","channel_code":"057","type":"Movie","synopsis_th":"หนุ่มนักล่าแม่มดถูกสาปให้เป็นอมตะจนกระทั่งราชินีแม่มดได้ฟื้นคืนชีพขึ้นมาจึงมีเพียงเขาคนเดียวเท่านั้นที่จะสามารถกอบกู้มวลมนุษยชาติได้","imdb_image":"https://bms.dmpcdn.com/uploads/pic/44b0eb2f46eed6a3953014cb5abdbff3.jpg","cast":"Vin Diesel, Rose Leslie, Elijah Wood","genres":"action","program_title":"LAST WITCH HUNTER, THE","production_year":"2015"},"isShowTime":"02:05","isActive":false},{"id":"GPApa0aZzprE","original_id":"057:20231212_035500","content_type":"epg","title":"Point Break","detail":"","status":"publish","channel_code":"057","title_id":"718258","ep_id":"2413906","ep_no":"1","ep_name":"POINT BREAK (2015) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-11T20:55:00.000Z","end_date":"2023-12-11T22:55:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_035500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_035500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_040000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_035500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/e143a6f05ce8e87bf3e7c0f8dfca9914.jpeg","synopsis_en":"An FBI agent infiltrates a gang of thrill-seeking athlete thieves who are suspects in a spate of daring robberies.","director":"Ericson Core","title_id":"718258","video":"jcDD2-s4vWA","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวของเจ้าหน้าที่เอฟบีไอกับปฏิบัติการสืบสวนเพื่อตามล่าตัวมิจฉาชีพระดับโลกด้วยการแฝงตัวเข้าไปในกลุ่มนักเล่นกระดานโต้คลื่น","imdb_image":"https://bms.dmpcdn.com/uploads/pic/5a0fc22d59c8aef7e9693119687b2172.jpg","cast":"Edgar Ramirez, Luke Bracey, Ray Winstone","genres":"action","program_title":"POINT BREAK","production_year":"2015"},"isShowTime":"03:55","isActive":false},{"id":"Va15bqbQn58a","original_id":"057:20231212_055500","content_type":"epg","title":"The Art of War","detail":"","status":"publish","channel_code":"057","title_id":"712097","ep_id":"2372786","ep_no":"1","ep_name":"ART OF WAR, THE [2000] [MHS]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-11T22:55:00.000Z","end_date":"2023-12-12T00:55:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_055500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_055500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_060000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_055500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/4f12f9d90f2e8d29b9e427ef415bcb4e.jpg","synopsis_en":"After a US agent is framed for the assassination of the Chinese ambassador, he faces a race against time to catch the real killers.","director":"Christian Duguay","title_id":"712097","video":"rKFmSpB-uGQ","channel_code":"057","type":"Movie","synopsis_th":"เมื่อสายลับถูกใส่ร้ายว่าเป็นฆาตกรเขาจึงต้องหลบหนีการตามไล่ล่าและแข่งกับเวลาเพื่อสืบหาตามล่าฆาตกรตัวจริงให้ได้โดยเร็วที่สุด","imdb_image":"https://bms.dmpcdn.com/uploads/pic/28ab499dffdff191fba497f64131e744.jpg","cast":"Wesley Snipes, Anne Archer, Maury Chaykin","genres":"crime","program_title":"ART OF WAR, THE","production_year":"2000"},"isShowTime":"05:55","isActive":false},{"id":"ALxXy6y32XOL","original_id":"057:20231212_075500","content_type":"epg","title":"The Marksman","detail":"","status":"publish","channel_code":"057","title_id":"726358","ep_id":"2466252","ep_no":"1","ep_name":"MARKSMAN, THE (2021) [MHS]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T00:55:00.000Z","end_date":"2023-12-12T02:50:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_075500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_075500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_080000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_075500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/3945dc2c6cfff5ebeb61f021b58104ab.jpg","synopsis_en":"An Arizona rancher becomes the unlikely defender of a Mexican boy desperately fleeing the cartel assassins who've pursued him into the US.","director":"Robert Lorenz","title_id":"726358","video":"lEBPNi4bEbc","channel_code":"057","type":"Movie","synopsis_th":"อดีตทหารเรือ ที่หนีความวุ่นวายมาใช้ชีวิตอย่างสงบสุขในฟาร์มนอกเมือง แต่กลับต้องไปพัวพันกับสองแม่ลูกที่หลบหนีเอาตัวรอดจากกลุ่มนักฆ่าค้ายา","imdb_image":"https://bms.dmpcdn.com/uploads/pic/573349fd5394caccce8c4f818fdb57b5.jpg","cast":"Liam Neeson, Katheryn Winnick, Juan Pablo Raba","genres":"action","program_title":"MARKSMAN, THE","production_year":"2021"},"isShowTime":"07:55","isActive":false},{"id":"XzDNDnDrXNJ9","original_id":"057:20231212_095000","content_type":"epg","title":"Gods of Egypt","detail":"","status":"publish","channel_code":"057","title_id":"718274","ep_id":"2414078","ep_no":"1","ep_name":"GODS OF EGYPT (2016) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T02:50:00.000Z","end_date":"2023-12-12T05:05:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_095000.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_095000.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_095500.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_095000.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/e772028844f60526e6dc0fe5b666425a.jpg","synopsis_en":"A young hero teams with the god Horus to fight against the god of darkness, who has usurped Egypt's throne.","director":"Alex Proyas","title_id":"718274","video":"Oijdb-a9GKY","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวความขัดแย้งและการช่วงชิงที่อุบัติขึ้นท่ามกลางความร้อนระอุแห่งทะเลทรายในดินแดนลุ่มแม่น้ำไนล์อันเต็มไปด้วยมนตรา ทวยเทพ และ เหล่าอสูร","imdb_image":"https://bms.dmpcdn.com/uploads/pic/0a945dc3853317779946f5b9f38269a1.jpg","cast":"Gerard Butler, Brenton Thwaites, Nikolaj Coster-Waldau","genres":"action","program_title":"GODS OF EGYPT","production_year":"2016"},"isShowTime":"09:50","isActive":false},{"id":"4DnvNENgamwD","original_id":"057:20231212_120500","content_type":"epg","title":"The Last Witch Hunter","detail":"","status":"publish","channel_code":"057","title_id":"715307","ep_id":"2397606","ep_no":"1","ep_name":"LAST WITCH HUNTER, THE (2015) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T05:05:00.000Z","end_date":"2023-12-12T06:55:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_120500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_120500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_121000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_120500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg","synopsis_en":"A young man is all that stands between humanity and the most horrifying witches in history.","director":"Breck Eisner","title_id":"715307","video":"pBNufkr4KkU","channel_code":"057","type":"Movie","synopsis_th":"หนุ่มนักล่าแม่มดถูกสาปให้เป็นอมตะจนกระทั่งราชินีแม่มดได้ฟื้นคืนชีพขึ้นมาจึงมีเพียงเขาคนเดียวเท่านั้นที่จะสามารถกอบกู้มวลมนุษยชาติได้","imdb_image":"https://bms.dmpcdn.com/uploads/pic/44b0eb2f46eed6a3953014cb5abdbff3.jpg","cast":"Vin Diesel, Rose Leslie, Elijah Wood","genres":"action","program_title":"LAST WITCH HUNTER, THE","production_year":"2015"},"isShowTime":"12:05","isActive":false},{"id":"AEMb1g1LnzpQ","original_id":"057:20231212_135500","content_type":"epg","title":"Leon","detail":"","status":"publish","channel_code":"057","title_id":"729656","ep_id":"2488591","ep_no":"1","ep_name":"LEON [1994] [MHS]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T06:55:00.000Z","end_date":"2023-12-12T09:05:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_135500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_135500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_140000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_135500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/79eabd21fdb1da338cca6b598de46cde.jpg","synopsis_en":"A hitman forms an unlikely bond with a young girl, teaching her his deadly skills while protecting her from ruthless criminals.","director":"Luc Besson","title_id":"729656","video":"aNQqoExfQsg","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวของนักฆ่าที่ได้สร้างความผูกพันธ์ที่ไม่น่าจะเป็นไปได้กับเด็กหญิง โดยสอนทักษะอันอันตรายแก่เธอพร้อมทั้งปกป้องเธอจากอาชญากรผู้โหดเหี้ยม","imdb_image":"https://bms.dmpcdn.com/uploads/pic/20be5d12ff2b8f86fb40f9db619d4cb8.jpg","cast":"Jean Reno, Gary Oldman, Natalie Portman","genres":"crime","program_title":"LEON","production_year":"1994"},"isShowTime":"13:55","isActive":false},{"id":"2xe7R1Rgamq4","original_id":"057:20231212_160500","content_type":"epg","title":"Gunpowder Milkshake","detail":"","status":"publish","channel_code":"057","title_id":"710376","ep_id":"2363208","ep_no":"1","ep_name":"GUNPOWDER MILKSHAKE (2021) [MHS]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T09:05:00.000Z","end_date":"2023-12-12T11:00:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_160500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_160500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_161000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_160500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/0039112f2fef876ebf32f9bfb3a9fcf9.jpg","synopsis_en":"Three generations of women fight back against those who aim to take everything from them.","director":"Navot Papushado","title_id":"710376","video":"yxuAroBqt2c","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวของสามหญิงสามวัยที่ต้องต่อสู้กับผู้ซึ่งแย่งชิงทุกสิ่งทุกอย่างไปจากพวกเธอ","imdb_image":"https://bms.dmpcdn.com/uploads/pic/756c225bc8f5f2ed1268945c979b01a1.jpg","cast":"Karen Gillan, Lena Headey, Carla Gugino","genres":"action","program_title":"GUNPOWDER MILKSHAKE","production_year":"2021"},"isShowTime":"16:05","isActive":false},{"id":"QoeyO1O0Q3no","original_id":"057:20231212_180000","content_type":"epg","title":"Point Break","detail":"","status":"publish","channel_code":"057","title_id":"718258","ep_id":"2413906","ep_no":"1","ep_name":"POINT BREAK (2015) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T11:00:00.000Z","end_date":"2023-12-12T13:00:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_180000.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_180000.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_180500.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_180000.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/e143a6f05ce8e87bf3e7c0f8dfca9914.jpeg","synopsis_en":"An FBI agent infiltrates a gang of thrill-seeking athlete thieves who are suspects in a spate of daring robberies.","director":"Ericson Core","title_id":"718258","video":"jcDD2-s4vWA","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวของเจ้าหน้าที่เอฟบีไอกับปฏิบัติการสืบสวนเพื่อตามล่าตัวมิจฉาชีพระดับโลกด้วยการแฝงตัวเข้าไปในกลุ่มนักเล่นกระดานโต้คลื่น","imdb_image":"https://bms.dmpcdn.com/uploads/pic/5a0fc22d59c8aef7e9693119687b2172.jpg","cast":"Edgar Ramirez, Luke Bracey, Ray Winstone","genres":"action","program_title":"POINT BREAK","production_year":"2015"},"isShowTime":"18:00","isActive":false},{"id":"voAargrBvRQo","original_id":"057:20231212_200000","content_type":"epg","title":"Max Steel","detail":"","status":"publish","channel_code":"057","title_id":"718257","ep_id":"2413902","ep_no":"1","ep_name":"MAX STEEL (2016) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T13:00:00.000Z","end_date":"2023-12-12T14:35:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_200000.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_200000.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_200500.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_200000.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/a10785bc40cd82e82ae702d8a7827393.jpg","synopsis_en":"A young teen and an alien companion harness and combine their tremendous new powers to evolve into the turbo-charged superhero Max Steel.","director":"Stewart Hendler","title_id":"718257","video":"Tf4sa0BVJVw","channel_code":"057","type":"Movie","synopsis_th":"ชายหนุ่มที่ชีวิตต้องแปรเปลี่ยนไปตลอดกาลจากอุบัติเหตุภายในห้องทดลองซึ่งทำให้เขากลายเป็นยอดมนุษย์แกร่ง","imdb_image":"https://bms.dmpcdn.com/uploads/pic/c8e9e6d49546fbde72d0f0b552db97a6.jpg","cast":"Ben Winchell, Josh Brener, Maria Bello","genres":"action","program_title":"MAX STEEL","production_year":"2016"},"isShowTime":"20:00","isActive":false},{"id":"Ena7xBxkNK3z","original_id":"057:20231212_213500","content_type":"epg","title":"Pompeii","detail":"","status":"publish","channel_code":"057","title_id":"715311","ep_id":"2397620","ep_no":"1","ep_name":"POMPEII (2014) [MHS] [R]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T14:35:00.000Z","end_date":"2023-12-12T16:20:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_213500.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_213500.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_214000.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_213500.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/28b7c486d1d8c52060413fb58c869c76.jpg","synopsis_en":"Just before the fateful eruption of Mt Vesuvius, a gladiator must save the love of his life from a corrupt Roman.","director":"Paul Anderson","title_id":"715311","video":"t6TRwfxDICM","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวของหนุ่มนักรบซึ่งเสี่ยงชีพช่วยเหลือหญิงสาวผู้เป็นที่รักจากมหาวิบัติกัมปนาทครั้งใหญ่แห่งประวัติศาสตร์เมื่อภูเขาไฟวิซูเวียสเกิดปะทุขึ้น","imdb_image":"https://bms.dmpcdn.com/uploads/pic/8675b7f9a08f3f0587bed52c7a8015e1.jpg","cast":"Kit Harington, Emily Browning, Kiefer Sutherland","genres":"action","program_title":"POMPEII","production_year":"2014"},"isShowTime":"21:35","isActive":false},{"id":"WNxrPpPwwkQl","original_id":"057:20231212_232000","content_type":"epg","title":"Leon","detail":"","status":"publish","channel_code":"057","title_id":"729656","ep_id":"2488591","ep_no":"1","ep_name":"LEON [1994] [MHS]","movie_type":"series","first_run":"Y","cast_type":"tape","start_date":"2023-12-12T16:20:00.000Z","end_date":"2023-12-12T18:30:00.000Z","publish_date":"2023-12-11T10:36:41.801Z","lang":"en","thumb":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_232000.jpg","thumb_list":{"thumb":"https://epgthumb.dmpcdn.com/thumbnail/057/20231212/20231212_232000.jpg","thumb_catchup":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_232500.jpg","thumb_large":"https://epgthumb.dmpcdn.com/thumbnail_large/057/20231212/20231212_232000.jpg"},"black_out":0,"catch_up":0,"flag":"N","info":{"channel_name":"TR MOVIE HITS","image":"https://bms.dmpcdn.com/uploads/pic/79eabd21fdb1da338cca6b598de46cde.jpg","synopsis_en":"A hitman forms an unlikely bond with a young girl, teaching her his deadly skills while protecting her from ruthless criminals.","director":"Luc Besson","title_id":"729656","video":"aNQqoExfQsg","channel_code":"057","type":"Movie","synopsis_th":"เรื่องราวของนักฆ่าที่ได้สร้างความผูกพันธ์ที่ไม่น่าจะเป็นไปได้กับเด็กหญิง โดยสอนทักษะอันอันตรายแก่เธอพร้อมทั้งปกป้องเธอจากอาชญากรผู้โหดเหี้ยม","imdb_image":"https://bms.dmpcdn.com/uploads/pic/20be5d12ff2b8f86fb40f9db619d4cb8.jpg","cast":"Jean Reno, Gary Oldman, Natalie Portman","genres":"crime","program_title":"LEON","production_year":"1994"},"isShowTime":"23:20","isActive":false}],"audioData":{"lang_locale":"","voice_commentary":""},"playerLanguage":{"data":{"aa":"Afar","ab":"Abkhazian","af":"Afrikaans","ak":"Akan","am":"Amharic","ar":"Arabic","an":"Aragonese","as":"Assamese","av":"Avaric","ae":"Avestan","ay":"Aymara","az":"Azerbaijani","ba":"Bashkir","bm":"Bambara","be":"Belarusian","bn":"Bengali","bh":"Biharilanguages","bi":"Bislama","bs":"Bosnian","br":"Breton","bg":"Bulgarian","ca":"CatalanValencian","ch":"Chamorro","ce":"Chechen","cu":"ChurchSlavicOldSlavonicChurchSlavonicOldBulgarianOldChurchSlavonic","cv":"Chuvash","kw":"Cornish","co":"Corsican","cr":"Cree","cs":"Czech","da":"Danish","dv":"DivehiDhivehiMaldivian","dz":"Dzongkha","en":"English","eo":"Esperanto","et":"Estonian","eu":"Basque","ee":"Ewe","fo":"Faroese","fj":"Fijian","fi":"Finnish","fr":"French","fy":"WesternFrisian","ff":"Fulah","de":"German","gd":"GaelicScottishGaelic","ga":"Irish","gl":"Galician","gv":"Manx","el":"Greek,Modern(1453-)","gn":"Guarani","gu":"Gujarati","ht":"HaitianHaitianCreole","ha":"Hausa","he":"Hebrew","hz":"Herero","hi":"Hindi","ho":"HiriMotu","hr":"Croatian","hu":"Hungarian","hy":"Armenian","ig":"Igbo","io":"Ido","ii":"SichuanYiNuosu","iu":"Inuktitut","ie":"InterlingueOccidental","ia":"Interlingua(InternationalAuxiliaryLanguageAssociation)","id":"Indonesian","ik":"Inupiaq","is":"Icelandic","it":"Italian","jv":"Javanese","ja":"Japanese","kl":"KalaallisutGreenlandic","kn":"Kannada","ks":"Kashmiri","ka":"Georgian","kr":"Kanuri","kk":"Kazakh","km":"CentralKhmer","ki":"KikuyuGikuyu","rw":"Kinyarwanda","ky":"KirghizKyrgyz","kv":"Komi","kg":"Kongo","ko":"Korean","kj":"KuanyamaKwanyama","ku":"Kurdish","lo":"Lao","la":"Latin","lv":"Latvian","li":"LimburganLimburgerLimburgish","ln":"Lingala","lt":"Lithuanian","lb":"LuxembourgishLetzeburgesch","lu":"Luba-Katanga","lg":"Ganda","mh":"Marshallese","ml":"Malayalam","mr":"Marathi","mk":"Macedonian","mg":"Malagasy","mt":"Maltese","mn":"Mongolian","mi":"Maori","ms":"Malay","my":"Burmese","na":"Nauru","nv":"NavajoNavaho","nr":"Ndebele,SouthSouthNdebele","nd":"Ndebele,NorthNorthNdebele","ng":"Ndonga","ne":"Nepali","nl":"DutchFlemish","nn":"NorwegianNynorskNynorsk,Norwegian","nb":"Bokmål,NorwegianNorwegianBokmål","no":"Norwegian","ny":"ChichewaChewaNyanja","oc":"Occitan(post1500)","oj":"Ojibwa","or":"Oriya","om":"Oromo","os":"OssetianOssetic","pa":"PanjabiPunjabi","fa":"Persian","pi":"Pali","pl":"Polish","pt":"Portuguese","ps":"PushtoPashto","qu":"Quechua","rm":"Romansh","ro":"RomanianMoldavianMoldovan","rn":"Rundi","ru":"Russian","sg":"Sango","sa":"Sanskrit","si":"SinhalaSinhalese","sk":"Slovak","sl":"Slovenian","se":"NorthernSami","sm":"Samoan","sn":"Shona","sd":"Sindhi","so":"Somali","st":"Sotho,Southern","es":"SpanishCastilian","sq":"Albanian","sc":"Sardinian","sr":"Serbian","ss":"Swati","su":"Sundanese","sw":"Swahili","sv":"Swedish","ty":"Tahitian","ta":"Tamil","tt":"Tatar","te":"Telugu","tg":"Tajik","tl":"Tagalog","th":"Thai","bo":"Tibetan","ti":"Tigrinya","to":"Tonga(TongaIslands)","tn":"Tswana","ts":"Tsonga","tk":"Turkmen","tr":"Turkish","tw":"Twi","ug":"UighurUyghur","uk":"Ukrainian","ur":"Urdu","uz":"Uzbek","ve":"Venda","vi":"Vietnamese","vo":"Volapük","cy":"Welsh","wa":"Walloon","wo":"Wolof","xh":"Xhosa","yi":"Yiddish","yo":"Yoruba","za":"ZhuangChuang","zh":"Chinese","zu":"Zulu","aar":"Afar","abk":"Abkhazian","ace":"Achinese","ach":"Acoli","ada":"Adangme","ady":"AdygheAdygei","afa":"Afro-Asiaticlanguages","afh":"Afrihili","afr":"Afrikaans","ain":"Ainu","aka":"Akan","akk":"Akkadian","ale":"Aleut","alg":"Algonquianlanguages","alt":"SouthernAltai","amh":"Amharic","ang":"English,Old(ca.450-1100)","anp":"Angika","apa":"Apachelanguages","ara":"Arabic","arc":"OfficialAramaic(700-300BCE)ImperialAramaic(700-300BCE)","arg":"Aragonese","arn":"MapudungunMapuche","arp":"Arapaho","art":"Artificiallanguages","arw":"Arawak","asm":"Assamese","ast":"AsturianBableLeoneseAsturleonese","ath":"Athapascanlanguages","aus":"Australianlanguages","ava":"Avaric","ave":"Avestan","awa":"Awadhi","aym":"Aymara","aze":"Azerbaijani","bad":"Bandalanguages","bai":"Bamilekelanguages","bak":"Bashkir","bal":"Baluchi","bam":"Bambara","ban":"Balinese","bas":"Basa","bat":"Balticlanguages","bej":"BejaBedawiyet","bel":"Belarusian","bem":"Bemba","ben":"Bengali","ber":"Berberlanguages","bho":"Bhojpuri","bih":"Biharilanguages","bik":"Bikol","bin":"BiniEdo","bis":"Bislama","bla":"Siksika","bnt":"Bantulanguages","bos":"Bosnian","bra":"Braj","bre":"Breton","btk":"Bataklanguages","bua":"Buriat","bug":"Buginese","bul":"Bulgarian","bur(B)mya(T)":"Burmese","byn":"BlinBilin","cad":"Caddo","cai":"CentralAmericanIndianlanguages","car":"GalibiCarib","cat":"CatalanValencian","cau":"Caucasianlanguages","ceb":"Cebuano","cel":"Celticlanguages","cha":"Chamorro","chb":"Chibcha","che":"Chechen","chg":"Chagatai","chk":"Chuukese","chm":"Mari","chn":"Chinookjargon","cho":"Choctaw","chp":"ChipewyanDeneSuline","chr":"Cherokee","chu":"ChurchSlavicOldSlavonicChurchSlavonicOldBulgarianOldChurchSlavonic","chv":"Chuvash","chy":"Cheyenne","cmc":"Chamiclanguages","cnr":"Montenegrin","cop":"Coptic","cor":"Cornish","cos":"Corsican","cpe":"Creolesandpidgins,Englishbased","cpf":"Creolesandpidgins,French-based","cpp":"Creolesandpidgins,Portuguese-based","cre":"Cree","crh":"CrimeanTatarCrimeanTurkish","crp":"Creolesandpidgins","csb":"Kashubian","cus":"Cushiticlanguages","cze(B)ces(T)":"Czech","dak":"Dakota","dan":"Danish","dar":"Dargwa","day":"LandDayaklanguages","del":"Delaware","den":"Slave(Athapascan)","dgr":"Dogrib","din":"Dinka","div":"DivehiDhivehiMaldivian","doi":"Dogri","dra":"Dravidianlanguages","dsb":"LowerSorbian","dua":"Duala","dum":"Dutch,Middle(ca.1050-1350)","dyu":"Dyula","dzo":"Dzongkha","efi":"Efik","egy":"Egyptian(Ancient)","eka":"Ekajuk","elx":"Elamite","eng":"English","enm":"English,Middle(1100-1500)","epo":"Esperanto","est":"Estonian","baq(B)eus(T)":"Basque","ewo":"Ewondo","fan":"Fang","fao":"Faroese","fat":"Fanti","fij":"Fijian","fil":"FilipinoPilipino","fin":"Finnish","fiu":"Finno-Ugrianlanguages","fre(B)fra(T)":"French","frm":"French,Middle(ca.1400-1600)","fro":"French,Old(842-ca.1400)","frr":"NorthernFrisian","frs":"EasternFrisian","fry":"WesternFrisian","ful":"Fulah","fur":"Friulian","gaa":"Ga","gay":"Gayo","gba":"Gbaya","gem":"Germaniclanguages","ger(B)deu(T)":"German","gez":"Geez","gil":"Gilbertese","gla":"GaelicScottishGaelic","gle":"Irish","glg":"Galician","glv":"Manx","gmh":"German,MiddleHigh(ca.1050-1500)","goh":"German,OldHigh(ca.750-1050)","gon":"Gondi","gor":"Gorontalo","got":"Gothic","grb":"Grebo","grc":"Greek,Ancient(to1453)","gre(B)ell(T)":"Greek,Modern(1453-)","grn":"Guarani","gsw":"SwissGermanAlemannicAlsatian","guj":"Gujarati","gwi":"Gwich'in","hai":"Haida","hat":"HaitianHaitianCreole","hau":"Hausa","haw":"Hawaiian","heb":"Hebrew","her":"Herero","hil":"Hiligaynon","him":"HimachalilanguagesWesternPaharilanguages","hin":"Hindi","hit":"Hittite","hmn":"HmongMong","hmo":"HiriMotu","hrv":"Croatian","hsb":"UpperSorbian","hun":"Hungarian","hup":"Hupa","arm(B)hye(T)":"Armenian","iba":"Iban","ibo":"Igbo","iii":"SichuanYiNuosu","ijo":"Ijolanguages","iku":"Inuktitut","ile":"InterlingueOccidental","ilo":"Iloko","ina":"Interlingua(InternationalAuxiliaryLanguageAssociation)","inc":"Indiclanguages","ind":"Indonesian","ine":"Indo-Europeanlanguages","inh":"Ingush","ipk":"Inupiaq","ira":"Iranianlanguages","iro":"Iroquoianlanguages","ice(B)isl(T)":"Icelandic","ita":"Italian","jav":"Javanese","jbo":"Lojban","jpn":"Japanese","jpr":"Judeo-Persian","jrb":"Judeo-Arabic","kaa":"Kara-Kalpak","kab":"Kabyle","kac":"KachinJingpho","kal":"KalaallisutGreenlandic","kam":"Kamba","kan":"Kannada","kar":"Karenlanguages","kas":"Kashmiri","geo(B)kat(T)":"Georgian","kau":"Kanuri","kaw":"Kawi","kaz":"Kazakh","kbd":"Kabardian","kha":"Khasi","khi":"Khoisanlanguages","khm":"CentralKhmer","kho":"KhotaneseSakan","kik":"KikuyuGikuyu","kin":"Kinyarwanda","kir":"KirghizKyrgyz","kmb":"Kimbundu","kok":"Konkani","kom":"Komi","kon":"Kongo","kor":"Korean","kos":"Kosraean","kpe":"Kpelle","krc":"Karachay-Balkar","krl":"Karelian","kro":"Krulanguages","kru":"Kurukh","kua":"KuanyamaKwanyama","kum":"Kumyk","kur":"Kurdish","kut":"Kutenai","lad":"Ladino","lah":"Lahnda","lam":"Lamba","lat":"Latin","lav":"Latvian","lez":"Lezghian","lim":"LimburganLimburgerLimburgish","lin":"Lingala","lit":"Lithuanian","lol":"Mongo","loz":"Lozi","ltz":"LuxembourgishLetzeburgesch","lua":"Luba-Lulua","lub":"Luba-Katanga","lug":"Ganda","lui":"Luiseno","lun":"Lunda","luo":"Luo(KenyaandTanzania)","lus":"Lushai","mac(B)mkd(T)":"Macedonian","mad":"Madurese","mag":"Magahi","mah":"Marshallese","mai":"Maithili","mak":"Makasar","mal":"Malayalam","man":"Mandingo","mao(B)mri(T)":"Maori","map":"Austronesianlanguages","mar":"Marathi","mas":"Masai","may(B)msa(T)":"Malay","mdf":"Moksha","mdr":"Mandar","men":"Mende","mga":"Irish,Middle(900-1200)","mic":"Mi'kmaqMicmac","min":"Minangkabau","mis":"Uncodedlanguages","mkh":"Mon-Khmerlanguages","mlg":"Malagasy","mlt":"Maltese","mnc":"Manchu","mni":"Manipuri","mno":"Manobolanguages","moh":"Mohawk","mon":"Mongolian","mos":"Mossi","mul":"Multiplelanguages","mun":"Mundalanguages","mus":"Creek","mwl":"Mirandese","mwr":"Marwari","myn":"Mayanlanguages","myv":"Erzya","nah":"Nahuatllanguages","nai":"NorthAmericanIndianlanguages","nap":"Neapolitan","nau":"Nauru","nav":"NavajoNavaho","nbl":"Ndebele,SouthSouthNdebele","nde":"Ndebele,NorthNorthNdebele","ndo":"Ndonga","nds":"LowGermanLowSaxonGerman,LowSaxon,Low","nep":"Nepali","new":"NepalBhasaNewari","nia":"Nias","nic":"Niger-Kordofanianlanguages","niu":"Niuean","dut(B)nld(T)":"DutchFlemish","nno":"NorwegianNynorskNynorsk,Norwegian","nob":"Bokmål,NorwegianNorwegianBokmål","nog":"Nogai","non":"Norse,Old","nor":"Norwegian","nqo":"N'Ko","nso":"PediSepediNorthernSotho","nub":"Nubianlanguages","nwc":"ClassicalNewariOldNewariClassicalNepalBhasa","nya":"ChichewaChewaNyanja","nym":"Nyamwezi","nyn":"Nyankole","nyo":"Nyoro","nzi":"Nzima","oci":"Occitan(post1500)","oji":"Ojibwa","ori":"Oriya","orm":"Oromo","osa":"Osage","oss":"OssetianOssetic","ota":"Turkish,Ottoman(1500-1928)","oto":"Otomianlanguages","paa":"Papuanlanguages","pag":"Pangasinan","pal":"Pahlavi","pam":"PampangaKapampangan","pan":"PanjabiPunjabi","pap":"Papiamento","pau":"Palauan","peo":"Persian,Old(ca.600-400B.C.)","per(B)fas(T)":"Persian","phi":"Philippinelanguages","phn":"Phoenician","pli":"Pali","pol":"Polish","pon":"Pohnpeian","por":"Portuguese","pra":"Prakritlanguages","pro":"Provençal,Old(to1500)Occitan,Old(to1500)","pus":"PushtoPashto","qaa-qtz":"Reservedforlocaluse","que":"Quechua","raj":"Rajasthani","rap":"Rapanui","rar":"RarotonganCookIslandsMaori","roa":"Romancelanguages","roh":"Romansh","rom":"Romany","rum(B)ron(T)":"RomanianMoldavianMoldovan","run":"Rundi","rup":"AromanianArumanianMacedo-Romanian","rus":"Russian","sad":"Sandawe","sag":"Sango","sah":"Yakut","sai":"SouthAmericanIndianlanguages","sal":"Salishanlanguages","sam":"SamaritanAramaic","san":"Sanskrit","sas":"Sasak","sat":"Santali","scn":"Sicilian","sco":"Scots","sel":"Selkup","sem":"Semiticlanguages","sga":"Irish,Old(to900)","sgn":"SignLanguages","shn":"Shan","sid":"Sidamo","sin":"SinhalaSinhalese","sio":"Siouanlanguages","sit":"Sino-Tibetanlanguages","sla":"Slaviclanguages","slo(B)slk(T)":"Slovak","slv":"Slovenian","sma":"SouthernSami","sme":"NorthernSami","smi":"Samilanguages","smj":"LuleSami","smn":"InariSami","smo":"Samoan","sms":"SkoltSami","sna":"Shona","snd":"Sindhi","snk":"Soninke","sog":"Sogdian","som":"Somali","son":"Songhailanguages","sot":"Sotho,Southern","spa":"SpanishCastilian","alb(B)sqi(T)":"Albanian","srd":"Sardinian","srn":"SrananTongo","srp":"Serbian","srr":"Serer","ssa":"Nilo-Saharanlanguages","ssw":"Swati","suk":"Sukuma","sun":"Sundanese","sus":"Susu","sux":"Sumerian","swa":"Swahili","swe":"Swedish","syc":"ClassicalSyriac","syr":"Syriac","tah":"Tahitian","tai":"Tailanguages","tam":"Tamil","tat":"Tatar","tel":"Telugu","tem":"Timne","ter":"Tereno","tet":"Tetum","tgk":"Tajik","tgl":"Tagalog","tha":"Thai","tib(B)bod(T)":"Tibetan","tig":"Tigre","tir":"Tigrinya","tiv":"Tiv","tkl":"Tokelau","tlh":"KlingontlhIngan-Hol","tli":"Tlingit","tmh":"Tamashek","tog":"Tonga(Nyasa)","ton":"Tonga(TongaIslands)","tpi":"TokPisin","tsi":"Tsimshian","tsn":"Tswana","tso":"Tsonga","tuk":"Turkmen","tum":"Tumbuka","tup":"Tupilanguages","tur":"Turkish","tut":"Altaiclanguages","tvl":"Tuvalu","tyv":"Tuvinian","udm":"Udmurt","uga":"Ugaritic","uig":"UighurUyghur","ukr":"Ukrainian","umb":"Umbundu","und":"Undetermined","urd":"Urdu","uzb":"Uzbek","ven":"Venda","vie":"Vietnamese","vol":"Volapük","vot":"Votic","wak":"Wakashanlanguages","wal":"WolaittaWolaytta","war":"Waray","was":"Washo","wel(B)cym(T)":"Welsh","wen":"Sorbianlanguages","wln":"Walloon","wol":"Wolof","xal":"KalmykOirat","xho":"Xhosa","yap":"Yapese","yid":"Yiddish","yor":"Yoruba","ypk":"Yupiklanguages","zap":"Zapotec","zbl":"BlissymbolsBlissymbolicsBliss","zen":"Zenaga","zgh":"StandardMoroccanTamazight","zha":"ZhuangChuang","chi(B)zho(T)":"Chinese","chi":"Chinese","znd":"Zandelanguages","zul":"Zulu","zun":"Zuni","zxx":"NolinguisticcontentNotapplicable","zza":"ZazaDimiliDimliKirdkiKirmanjkiZazaki","afar":"Afar","abkhazian":"Abkhazian","achinese":"Achinese","acoli":"Acoli","adangme":"Adangme","adygheadygei":"AdygheAdygei","afro-asiaticlanguages":"Afro-Asiaticlanguages","afrihili":"Afrihili","afrikaans":"Afrikaans","ainu":"Ainu","akan":"Akan","akkadian":"Akkadian","aleut":"Aleut","algonquianlanguages":"Algonquianlanguages","southernaltai":"SouthernAltai","amharic":"Amharic","english,old(ca.450-1100)":"English,Old(ca.450-1100)","angika":"Angika","apachelanguages":"Apachelanguages","arabic":"Arabic","officialaramaic(700-300bce)imperialaramaic(700-300bce)":"OfficialAramaic(700-300BCE)ImperialAramaic(700-300BCE)","aragonese":"Aragonese","mapudungunmapuche":"MapudungunMapuche","arapaho":"Arapaho","artificiallanguages":"Artificiallanguages","arawak":"Arawak","assamese":"Assamese","asturianbableleoneseasturleonese":"AsturianBableLeoneseAsturleonese","athapascanlanguages":"Athapascanlanguages","australianlanguages":"Australianlanguages","avaric":"Avaric","avestan":"Avestan","awadhi":"Awadhi","aymara":"Aymara","azerbaijani":"Azerbaijani","bandalanguages":"Bandalanguages","bamilekelanguages":"Bamilekelanguages","bashkir":"Bashkir","baluchi":"Baluchi","bambara":"Bambara","balinese":"Balinese","basa":"Basa","balticlanguages":"Balticlanguages","bejabedawiyet":"BejaBedawiyet","belarusian":"Belarusian","bemba":"Bemba","bengali":"Bengali","berberlanguages":"Berberlanguages","bhojpuri":"Bhojpuri","biharilanguages":"Biharilanguages","bikol":"Bikol","biniedo":"BiniEdo","bislama":"Bislama","siksika":"Siksika","bantulanguages":"Bantulanguages","bosnian":"Bosnian","braj":"Braj","breton":"Breton","bataklanguages":"Bataklanguages","buriat":"Buriat","buginese":"Buginese","bulgarian":"Bulgarian","blinbilin":"BlinBilin","caddo":"Caddo","centralamericanindianlanguages":"CentralAmericanIndianlanguages","galibicarib":"GalibiCarib","catalanvalencian":"CatalanValencian","caucasianlanguages":"Caucasianlanguages","cebuano":"Cebuano","celticlanguages":"Celticlanguages","chamorro":"Chamorro","chibcha":"Chibcha","chechen":"Chechen","chagatai":"Chagatai","chuukese":"Chuukese","mari":"Mari","chinookjargon":"Chinookjargon","choctaw":"Choctaw","chipewyandenesuline":"ChipewyanDeneSuline","cherokee":"Cherokee","churchslavicoldslavonicchurchslavonicoldbulgarianoldchurchslavonic":"ChurchSlavicOldSlavonicChurchSlavonicOldBulgarianOldChurchSlavonic","chuvash":"Chuvash","cheyenne":"Cheyenne","chamiclanguages":"Chamiclanguages","montenegrin":"Montenegrin","coptic":"Coptic","cornish":"Cornish","corsican":"Corsican","creolesandpidgins,englishbased":"Creolesandpidgins,Englishbased","creolesandpidgins,french-based":"Creolesandpidgins,French-based","creolesandpidgins,portuguese-based":"Creolesandpidgins,Portuguese-based","cree":"Cree","crimeantatarcrimeanturkish":"CrimeanTatarCrimeanTurkish","creolesandpidgins":"Creolesandpidgins","kashubian":"Kashubian","cushiticlanguages":"Cushiticlanguages","czech":"Czech","dakota":"Dakota","danish":"Danish","dargwa":"Dargwa","landdayaklanguages":"LandDayaklanguages","delaware":"Delaware","slave(athapascan)":"Slave(Athapascan)","dogrib":"Dogrib","dinka":"Dinka","divehidhivehimaldivian":"DivehiDhivehiMaldivian","dogri":"Dogri","dravidianlanguages":"Dravidianlanguages","lowersorbian":"LowerSorbian","duala":"Duala","dutch,middle(ca.1050-1350)":"Dutch,Middle(ca.1050-1350)","dyula":"Dyula","dzongkha":"Dzongkha","efik":"Efik","egyptian(ancient)":"Egyptian(Ancient)","ekajuk":"Ekajuk","elamite":"Elamite","english":"English","english,middle(1100-1500)":"English,Middle(1100-1500)","esperanto":"Esperanto","estonian":"Estonian","basque":"Basque","ewe":"Ewe","ewondo":"Ewondo","fang":"Fang","faroese":"Faroese","fanti":"Fanti","fijian":"Fijian","filipinopilipino":"FilipinoPilipino","finnish":"Finnish","finno-ugrianlanguages":"Finno-Ugrianlanguages","fon":"Fon","french":"French","french,middle(ca.1400-1600)":"French,Middle(ca.1400-1600)","french,old(842-ca.1400)":"French,Old(842-ca.1400)","northernfrisian":"NorthernFrisian","easternfrisian":"EasternFrisian","westernfrisian":"WesternFrisian","fulah":"Fulah","friulian":"Friulian","gayo":"Gayo","gbaya":"Gbaya","germaniclanguages":"Germaniclanguages","german":"German","geez":"Geez","gilbertese":"Gilbertese","gaelicscottishgaelic":"GaelicScottishGaelic","irish":"Irish","galician":"Galician","manx":"Manx","german,middlehigh(ca.1050-1500)":"German,MiddleHigh(ca.1050-1500)","german,oldhigh(ca.750-1050)":"German,OldHigh(ca.750-1050)","gondi":"Gondi","gorontalo":"Gorontalo","gothic":"Gothic","grebo":"Grebo","greek,ancient(to1453)":"Greek,Ancient(to1453)","greek,modern(1453-)":"Greek,Modern(1453-)","guarani":"Guarani","swissgermanalemannicalsatian":"SwissGermanAlemannicAlsatian","gujarati":"Gujarati","gwich'in":"Gwich'in","haida":"Haida","haitianhaitiancreole":"HaitianHaitianCreole","hausa":"Hausa","hawaiian":"Hawaiian","hebrew":"Hebrew","herero":"Herero","hiligaynon":"Hiligaynon","himachalilanguageswesternpaharilanguages":"HimachalilanguagesWesternPaharilanguages","hindi":"Hindi","hittite":"Hittite","hmongmong":"HmongMong","hirimotu":"HiriMotu","croatian":"Croatian","uppersorbian":"UpperSorbian","hungarian":"Hungarian","hupa":"Hupa","armenian":"Armenian","iban":"Iban","igbo":"Igbo","ido":"Ido","sichuanyinuosu":"SichuanYiNuosu","ijolanguages":"Ijolanguages","inuktitut":"Inuktitut","interlingueoccidental":"InterlingueOccidental","iloko":"Iloko","interlingua(internationalauxiliarylanguageassociation)":"Interlingua(InternationalAuxiliaryLanguageAssociation)","indiclanguages":"Indiclanguages","indonesian":"Indonesian","indo-europeanlanguages":"Indo-Europeanlanguages","ingush":"Ingush","inupiaq":"Inupiaq","iranianlanguages":"Iranianlanguages","iroquoianlanguages":"Iroquoianlanguages","icelandic":"Icelandic","italian":"Italian","javanese":"Javanese","lojban":"Lojban","japanese":"Japanese","judeo-persian":"Judeo-Persian","judeo-arabic":"Judeo-Arabic","kara-kalpak":"Kara-Kalpak","kabyle":"Kabyle","kachinjingpho":"KachinJingpho","kalaallisutgreenlandic":"KalaallisutGreenlandic","kamba":"Kamba","kannada":"Kannada","karenlanguages":"Karenlanguages","kashmiri":"Kashmiri","georgian":"Georgian","kanuri":"Kanuri","kawi":"Kawi","kazakh":"Kazakh","kabardian":"Kabardian","khasi":"Khasi","khoisanlanguages":"Khoisanlanguages","centralkhmer":"CentralKhmer","khotanesesakan":"KhotaneseSakan","kikuyugikuyu":"KikuyuGikuyu","kinyarwanda":"Kinyarwanda","kirghizkyrgyz":"KirghizKyrgyz","kimbundu":"Kimbundu","konkani":"Konkani","komi":"Komi","kongo":"Kongo","korean":"Korean","kosraean":"Kosraean","kpelle":"Kpelle","karachay-balkar":"Karachay-Balkar","karelian":"Karelian","krulanguages":"Krulanguages","kurukh":"Kurukh","kuanyamakwanyama":"KuanyamaKwanyama","kumyk":"Kumyk","kurdish":"Kurdish","kutenai":"Kutenai","ladino":"Ladino","lahnda":"Lahnda","lamba":"Lamba","lao":"Lao","latin":"Latin","latvian":"Latvian","lezghian":"Lezghian","limburganlimburgerlimburgish":"LimburganLimburgerLimburgish","lingala":"Lingala","lithuanian":"Lithuanian","mongo":"Mongo","lozi":"Lozi","luxembourgishletzeburgesch":"LuxembourgishLetzeburgesch","luba-lulua":"Luba-Lulua","luba-katanga":"Luba-Katanga","ganda":"Ganda","luiseno":"Luiseno","lunda":"Lunda","luo(kenyaandtanzania)":"Luo(KenyaandTanzania)","lushai":"Lushai","madurese":"Madurese","magahi":"Magahi","marshallese":"Marshallese","maithili":"Maithili","makasar":"Makasar","malayalam":"Malayalam","mandingo":"Mandingo","austronesianlanguages":"Austronesianlanguages","marathi":"Marathi","masai":"Masai","moksha":"Moksha","mandar":"Mandar","mende":"Mende","irish,middle(900-1200)":"Irish,Middle(900-1200)","mi'kmaqmicmac":"Mi'kmaqMicmac","minangkabau":"Minangkabau","uncodedlanguages":"Uncodedlanguages","macedonian":"Macedonian","mon-khmerlanguages":"Mon-Khmerlanguages","malagasy":"Malagasy","maltese":"Maltese","manchu":"Manchu","manipuri":"Manipuri","manobolanguages":"Manobolanguages","mohawk":"Mohawk","mongolian":"Mongolian","mossi":"Mossi","maori":"Maori","malay":"Malay","multiplelanguages":"Multiplelanguages","mundalanguages":"Mundalanguages","creek":"Creek","mirandese":"Mirandese","marwari":"Marwari","burmese":"Burmese","mayanlanguages":"Mayanlanguages","erzya":"Erzya","nahuatllanguages":"Nahuatllanguages","northamericanindianlanguages":"NorthAmericanIndianlanguages","neapolitan":"Neapolitan","nauru":"Nauru","navajonavaho":"NavajoNavaho","ndebele,southsouthndebele":"Ndebele,SouthSouthNdebele","ndebele,northnorthndebele":"Ndebele,NorthNorthNdebele","ndonga":"Ndonga","lowgermanlowsaxongerman,lowsaxon,low":"LowGermanLowSaxonGerman,LowSaxon,Low","nepali":"Nepali","nepalbhasanewari":"NepalBhasaNewari","nias":"Nias","niger-kordofanianlanguages":"Niger-Kordofanianlanguages","niuean":"Niuean","dutchflemish":"DutchFlemish","norwegiannynorsknynorsk,norwegian":"NorwegianNynorskNynorsk,Norwegian","bokmål,norwegiannorwegianbokmål":"Bokmål,NorwegianNorwegianBokmål","nogai":"Nogai","norse,old":"Norse,Old","norwegian":"Norwegian","n'ko":"N'Ko","pedisepedinorthernsotho":"PediSepediNorthernSotho","nubianlanguages":"Nubianlanguages","classicalnewarioldnewariclassicalnepalbhasa":"ClassicalNewariOldNewariClassicalNepalBhasa","chichewachewanyanja":"ChichewaChewaNyanja","nyamwezi":"Nyamwezi","nyankole":"Nyankole","nyoro":"Nyoro","nzima":"Nzima","occitan(post1500)":"Occitan(post1500)","ojibwa":"Ojibwa","oriya":"Oriya","oromo":"Oromo","osage":"Osage","ossetianossetic":"OssetianOssetic","turkish,ottoman(1500-1928)":"Turkish,Ottoman(1500-1928)","otomianlanguages":"Otomianlanguages","papuanlanguages":"Papuanlanguages","pangasinan":"Pangasinan","pahlavi":"Pahlavi","pampangakapampangan":"PampangaKapampangan","panjabipunjabi":"PanjabiPunjabi","papiamento":"Papiamento","palauan":"Palauan","persian,old(ca.600-400b.c.)":"Persian,Old(ca.600-400B.C.)","persian":"Persian","philippinelanguages":"Philippinelanguages","phoenician":"Phoenician","pali":"Pali","polish":"Polish","pohnpeian":"Pohnpeian","portuguese":"Portuguese","prakritlanguages":"Prakritlanguages","provençal,old(to1500)occitan,old(to1500)":"Provençal,Old(to1500)Occitan,Old(to1500)","pushtopashto":"PushtoPashto","reservedforlocaluse":"Reservedforlocaluse","quechua":"Quechua","rajasthani":"Rajasthani","rapanui":"Rapanui","rarotongancookislandsmaori":"RarotonganCookIslandsMaori","romancelanguages":"Romancelanguages","romansh":"Romansh","romany":"Romany","romanianmoldavianmoldovan":"RomanianMoldavianMoldovan","rundi":"Rundi","aromanianarumanianmacedo-romanian":"AromanianArumanianMacedo-Romanian","russian":"Russian","sandawe":"Sandawe","sango":"Sango","yakut":"Yakut","southamericanindianlanguages":"SouthAmericanIndianlanguages","salishanlanguages":"Salishanlanguages","samaritanaramaic":"SamaritanAramaic","sanskrit":"Sanskrit","sasak":"Sasak","santali":"Santali","sicilian":"Sicilian","scots":"Scots","selkup":"Selkup","semiticlanguages":"Semiticlanguages","irish,old(to900)":"Irish,Old(to900)","signlanguages":"SignLanguages","shan":"Shan","sidamo":"Sidamo","sinhalasinhalese":"SinhalaSinhalese","siouanlanguages":"Siouanlanguages","sino-tibetanlanguages":"Sino-Tibetanlanguages","slaviclanguages":"Slaviclanguages","slovak":"Slovak","slovenian":"Slovenian","southernsami":"SouthernSami","northernsami":"NorthernSami","samilanguages":"Samilanguages","lulesami":"LuleSami","inarisami":"InariSami","samoan":"Samoan","skoltsami":"SkoltSami","shona":"Shona","sindhi":"Sindhi","soninke":"Soninke","sogdian":"Sogdian","somali":"Somali","songhailanguages":"Songhailanguages","sotho,southern":"Sotho,Southern","spanishcastilian":"SpanishCastilian","albanian":"Albanian","sardinian":"Sardinian","sranantongo":"SrananTongo","serbian":"Serbian","serer":"Serer","nilo-saharanlanguages":"Nilo-Saharanlanguages","swati":"Swati","sukuma":"Sukuma","sundanese":"Sundanese","susu":"Susu","sumerian":"Sumerian","swahili":"Swahili","swedish":"Swedish","classicalsyriac":"ClassicalSyriac","syriac":"Syriac","tahitian":"Tahitian","tailanguages":"Tailanguages","tamil":"Tamil","tatar":"Tatar","telugu":"Telugu","timne":"Timne","tereno":"Tereno","tetum":"Tetum","tajik":"Tajik","tagalog":"Tagalog","thai":"Thai","tibetan":"Tibetan","tigre":"Tigre","tigrinya":"Tigrinya","tokelau":"Tokelau","klingontlhingan-hol":"KlingontlhIngan-Hol","tlingit":"Tlingit","tamashek":"Tamashek","tonga(nyasa)":"Tonga(Nyasa)","tonga(tongaislands)":"Tonga(TongaIslands)","tokpisin":"TokPisin","tsimshian":"Tsimshian","tswana":"Tswana","tsonga":"Tsonga","turkmen":"Turkmen","tumbuka":"Tumbuka","tupilanguages":"Tupilanguages","turkish":"Turkish","altaiclanguages":"Altaiclanguages","tuvalu":"Tuvalu","twi":"Twi","tuvinian":"Tuvinian","udmurt":"Udmurt","ugaritic":"Ugaritic","uighuruyghur":"UighurUyghur","ukrainian":"Ukrainian","umbundu":"Umbundu","undetermined":"Undetermined","urdu":"Urdu","uzbek":"Uzbek","vai":"Vai","venda":"Venda","vietnamese":"Vietnamese","volapük":"Volapük","votic":"Votic","wakashanlanguages":"Wakashanlanguages","wolaittawolaytta":"WolaittaWolaytta","waray":"Waray","washo":"Washo","welsh":"Welsh","sorbianlanguages":"Sorbianlanguages","walloon":"Walloon","wolof":"Wolof","kalmykoirat":"KalmykOirat","xhosa":"Xhosa","yao":"Yao","yapese":"Yapese","yiddish":"Yiddish","yoruba":"Yoruba","yupiklanguages":"Yupiklanguages","zapotec":"Zapotec","blissymbolsblissymbolicsbliss":"BlissymbolsBlissymbolicsBliss","zenaga":"Zenaga","standardmoroccantamazight":"StandardMoroccanTamazight","zhuangchuang":"ZhuangChuang","chinese":"Chinese","zandelanguages":"Zandelanguages","zulu":"Zulu","zuni":"Zuni","nolinguisticcontentnotapplicable":"NolinguisticcontentNotapplicable","zazadimilidimlikirdkikirmanjkizazaki":"ZazaDimiliDimliKirdkiKirmanjkiZazaki","influencer1":"Influencer1","influencer2":"Influencer2","original":"Original"}},"ccu":458,"deviceId":"yxN2Cd3kIhYKTM7aYAxGl5NnYCAdyIlQ","isAllowedWeb":true,"epgActive":{},"configBlackout":{"duration":300000,"enable":false,"btn_channel_list":{"title_en":"","title_th":"","url":"","url_th":"","url_en":""}},"activeCategory":"","adsSideBar":{"adsData":{"ALL":{"targetingArguments":{"TrueID_page":[],"Device":[]},"sizeMapping":[{"viewport":[0,0],"sizes":[[320,250],[300,250],[1,1],"fluid"]}],"slotId":"div-gpt-ad-rt-1","adUnit":"21682623839/TrueID_Web/TV","sizes":[[320,250]]}},"adsConfig":{"adsNetworkId":"","adsUnit":"21682623839/TrueID_Web/TV"}},"currentURL":"https://tv.trueid.net/th-en/live/true-movie-hits"},"__N_SSP":true} \ No newline at end of file diff --git a/sites/tv.trueid.net/readme.md b/sites/tv.trueid.net/readme.md index e9361dc8..e79a174a 100644 --- a/sites/tv.trueid.net/readme.md +++ b/sites/tv.trueid.net/readme.md @@ -4,14 +4,30 @@ https://tv.trueid.net/ ### Download the guide +Thai: + ```sh -npm run grab -- --site=tv.trueid.net +npm run grab -- --site=tv.trueid.net --lang=th +``` + +English: + +```sh +npm run grab -- --site=tv.trueid.net --lang=en ``` ### Update channel list +Thai: + ```sh -npm run channels:parse -- --config=./sites/tv.trueid.net/tv.trueid.net.config.js --output=./sites/tv.trueid.net/tv.trueid.net.channels.xml +npm run channels:parse -- --config=./sites/tv.trueid.net/tv.trueid.net.config.js --output=./sites/tv.trueid.net/tv.trueid.net_th.channels.xml --set=lang:th +``` + +English: + +```sh +npm run channels:parse -- --config=./sites/tv.trueid.net/tv.trueid.net.config.js --output=./sites/tv.trueid.net/tv.trueid.net_en.channels.xml --set=lang:en ``` ### Test diff --git a/sites/tv.trueid.net/tv.trueid.net.config.js b/sites/tv.trueid.net/tv.trueid.net.config.js index 5607dc18..8be8ef7d 100644 --- a/sites/tv.trueid.net/tv.trueid.net.config.js +++ b/sites/tv.trueid.net/tv.trueid.net.config.js @@ -1,25 +1,21 @@ -const cheerio = require('cheerio') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') dayjs.extend(utc) module.exports = { - delay: 5000, + delay: 1000, site: 'tv.trueid.net', - days: 2, - url: function ({ channel, date }) { - return `https://tv.trueid.net/tvguide/all/${channel.site_id}/${date.format('YYYY-MM-DD')}` + days: 1, + url({ channel }) { + return `https://tv.trueid.net/_next/data/1380644e0f1fb6b14c82894a0c682d147e015c9d/th-${channel.lang}.json?channelSlug=${channel.site_id}&path=${channel.site_id}` }, - request: { - jar: null - }, - parser: function ({ content, channel }) { - let programs = [] - const items = parseItems(content, channel) - items.forEach(item => { + parser({ content, channel }) { + const programs = [] + parseItems(content, channel).forEach(item => { programs.push({ title: item.title, + description: parseDescription(item, channel.lang), icon: parseIcon(item), start: parseStart(item), stop: parseStop(item) @@ -28,30 +24,25 @@ module.exports = { return programs }, - async channels({ token }) { + async channels({ token, lang = en }) { const axios = require('axios') - - const ACCESS_TOKEN = + const ACCESS_TOKEN = token ? token : 'MTM4MDY0NGUwZjFmYjZiMTRjODI4OTRhMGM2ODJkMTQ3ZTAxNWM5ZDoxZmI2YjE0YzgyODk0YTBjNjgyZDE0N2UwMTVjOWQ=' const data = await axios - .get(`https://tv.trueid.net/api/channel/getChannelListByAllCate`, { - params: { - lang: 'en', - country: 'th' - }, + .get(`https://tv.trueid.net/api/channel/getChannelListByAllCate?lang=${lang}&country=th`, { headers: { authorization: `Basic ${ACCESS_TOKEN}` } }) .then(r => r.data) - .catch(console.log) + .catch(console.error) return data.data.channelsList .find(i => i.catSlug === 'TrueID : All') .channels.map(item => { return { - lang: 'th', + lang, site_id: item.slug, name: item.title } @@ -59,37 +50,24 @@ module.exports = { } } +function parseDescription(item, lang) { + const description = item.info?.[`synopsis_${lang}`] + return description && description !== '.' ? description : null; +} + function parseIcon(item) { - return item.detail ? item.detail.thumb : null + return item.info?.image || null } function parseStart(item) { - return item.detail ? dayjs.utc(item.detail.start_date) : null + return item.start_date ? dayjs.utc(item.start_date) : null } function parseStop(item) { - return item.detail ? dayjs.utc(item.detail.end_date) : null + return item.end_date ? dayjs.utc(item.end_date) : null } -function parseContent(content, channel) { - const $ = cheerio.load(content) - const nextData = $('#__NEXT_DATA__').html() - const data = JSON.parse(nextData) - if ( - !data || - !data.props || - !data.props.pageProps || - !data.props.pageProps.listEPG || - !Array.isArray(data.props.pageProps.listEPG.data) - ) - return null - - return data.props.pageProps.listEPG.data.find(ch => ch.slug === channel.site_id) -} - -function parseItems(content, channel) { - const data = parseContent(content, channel) - if (!data || !Array.isArray(data.programList)) return [] - - return data.programList +function parseItems(content) { + const data = content ? JSON.parse(content) : null; + return data?.pageProps?.epgList || [] } diff --git a/sites/tv.trueid.net/tv.trueid.net.test.js b/sites/tv.trueid.net/tv.trueid.net.test.js index f6834d01..7f1d590a 100644 --- a/sites/tv.trueid.net/tv.trueid.net.test.js +++ b/sites/tv.trueid.net/tv.trueid.net.test.js @@ -1,38 +1,57 @@ const { parser, url } = require('./tv.trueid.net.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('2021-10-28', 'YYYY-MM-DD').startOf('d') +const date = dayjs.utc('2023-12-11').startOf('d') const channel = { - site_id: 'tv-nfl-nba', - xmltv_id: 'NFLNBATV.us', - name: 'NFL & NBA TV' + lang: 'en', + site_id: 'true-movie-hits', + xmltv_id: 'TrueMovieHits.th' } -const content = - '' +const channelTh = Object.assign({}, channel, { lang: 'th' }) +const data = fs.readFileSync(path.resolve(__dirname, '__data__/data.json')) it('can generate valid url', () => { const result = url({ channel, date }) - expect(result).toBe('https://tv.trueid.net/tvguide/all/tv-nfl-nba/2021-10-28') + expect(result).toBe('https://tv.trueid.net/_next/data/1380644e0f1fb6b14c82894a0c682d147e015c9d/th-en.json?channelSlug=true-movie-hits&path=true-movie-hits') }) -it('can parse response', () => { - const result = parser({ date, channel, content }).map(p => { +it('can parse English response', () => { + const result = parser({ date, channel, content: data }).map(p => { p.start = p.start.toJSON() p.stop = p.stop.toJSON() return p }) - expect(result).toMatchObject([ - { - start: '2021-10-28T19:00:00.000Z', - stop: '2021-10-28T21:00:00.000Z', - title: 'NBA 2021/22', - icon: 'https://epgthumb.dmpcdn.com/thumbnail_large/t513/20211029/20211029_020000.jpg' - } - ]) + expect(result[0]).toMatchObject({ + start: '2023-12-11T19:05:00.000Z', + stop: '2023-12-11T20:55:00.000Z', + title: 'The Last Witch Hunter', + description: + 'A young man is all that stands between humanity and the most horrifying witches in history.', + icon: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg' + }) +}) + +it('can parse Thai response', () => { + const result = parser({ date, channel: channelTh, content: data }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + expect(result[0]).toMatchObject({ + start: '2023-12-11T19:05:00.000Z', + stop: '2023-12-11T20:55:00.000Z', + title: 'The Last Witch Hunter', + description: + 'หนุ่มนักล่าแม่มดถูกสาปให้เป็นอมตะจนกระทั่งราชินีแม่มดได้ฟื้นคืนชีพขึ้นมาจึงมีเพียงเขาคนเดียวเท่านั้นที่จะสามารถกอบกู้มวลมนุษยชาติได้', + icon: 'https://bms.dmpcdn.com/uploads/pic/381f853da5f4a310bf248357fed21a57.jpg' + }) }) it('can handle empty guide', () => { diff --git a/sites/tv.trueid.net/tv.trueid.net_en.channels.xml b/sites/tv.trueid.net/tv.trueid.net_en.channels.xml new file mode 100644 index 00000000..c8444207 --- /dev/null +++ b/sites/tv.trueid.net/tv.trueid.net_en.channels.xml @@ -0,0 +1,136 @@ + + + ALTV + Arirang TV + Arsenal + Aston Villa + @TV + beIN SPORTS 6 + beIN SPORTS 3 + beIN SPORTS 4 + beIN SPORTS 5 + Boomerang + A.F.C. Bournemouth + Brentford + Brighton & Hove Albion + Burnley + Cartoon Club + Chelsea + Crystal Palace + Dhamma TV + DLTV 1 + DLTV 2 + DLTV 3 + DLTV 4 + DLTV 5 + DLTV 6 + DLTV 7 + DLTV 8 + DLTV 9 + DLTV 10 + DLTV 11 + DLTV 12 + DLTV 13 + DLTV 14 + DLTV 15 + DW English + ETV + Event 1 + Event 2 + Event 3 + Event 4 + Event 5 + Everton + Fulham + Golf Channel Thailand + Golf Channel Thailand HD+ + Liverpool + Luton Town + Manchester City + Manchester United + Mangorn + Media TV + Newcastle United + Nottingham Forest + Rama Channel + Reality + Sheffield United + SPOTV 1 + Super Bunteung + T Sports 7 + ช่องทดสอบการออกอากาศ + ช่องทดสอบออกอากาศที่2 + ช่องทดสอบออกอากาศที่ 3 + TNN 16 + TNN 16 HD + Tottenham Hotspur + TPTV + True Asian More + True Ball Thai 1 + True Ball Thai 2 + True Ball Thai 3 + True Explore Wild + True Music + True Select + True Shopping + True Spark Play + True Tennis + TrueID Live + TrueID Sports + TrueID Sports 2 + TrueID Sports 3 + True Plook Panya + True Premier Football 6 + True Premier Football 7 + True Premier Football 8 + True Sports 1 + True Sports 3 + True Sports 4 + NFL & NBA TV + UFC + VOICE TV + West Ham United + White Channel + Wolves + Zee Anmol + Zing + Amarin TV + beIN SPORTS 1 + beIN SPORTS 2 + Channel 3 + Channel 7HD + Channel 8 + Crime + Investigation + GMM 25 + JKN 18 + 9 MCOT + MONO 29 + Nation TV + NBT + One31 + PPTV + SPOTV 2 + Thai PBS + Thairath TV + TNN 2 + True4U + True Explore Life + True Explore Sci + True Film 1 + True Film 2 + True Film Asia + True Movie Hits + True Premier Football 1 + True Premier Football 2 + True Premier Football 3 + True Premier Football 4 + True Premier Football 5 + True Series + True Sports 2 + True Sports 5 + True Sports 7 + True Thai Film + True X-Zyte + TV5 HD + WorkPoint TV + diff --git a/sites/tv.trueid.net/tv.trueid.net.channels.xml b/sites/tv.trueid.net/tv.trueid.net_th.channels.xml similarity index 65% rename from sites/tv.trueid.net/tv.trueid.net.channels.xml rename to sites/tv.trueid.net/tv.trueid.net_th.channels.xml index 66dbc5f0..c44f2cc1 100644 --- a/sites/tv.trueid.net/tv.trueid.net.channels.xml +++ b/sites/tv.trueid.net/tv.trueid.net_th.channels.xml @@ -1,135 +1,136 @@ - - - ALTV - Arirang TV - Arsenal - Aston Villa - @TV - beIN SPORTS 6 - beIN SPORTS 3 - beIN SPORTS 4 - beIN SPORTS 5 - Boomerang - A.F.C. Bournemouth - Brentford - Brighton & Hove Albion - Burnley - Cartoon Club - Chelsea - Crystal Palace - Dhamma TV - DLTV 1 - DLTV 2 - DLTV 3 - DLTV 4 - DLTV 5 - DLTV 6 - DLTV 7 - DLTV 8 - DLTV 9 - DLTV 10 - DLTV 11 - DLTV 12 - DLTV 13 - DLTV 14 - DLTV 15 - DW English - ETV - Event 1 - Event 2 - Event 3 - Event 4 - Event 5 - Everton - Fulham - Golf Channel Thailand - Golf Channel Thailand HD+ - Liverpool - Luton Town - Manchester City - Manchester United - Mangorn - Media TV - Newcastle United - Nottingham Forest - Rama Channel - Reality - Sheffield United - SPOTV 1 - Super Bunteung - T Sports 7 - ช่องทดสอบการออกอากาศ - ช่องทดสอบออกอากาศที่2 - TNN 16 - TNN 16 HD - Tottenham Hotspur - TPTV - True Asian More - True Ball Thai 1 - True Ball Thai 2 - True Ball Thai 3 - True Explore Wild - True Music - True Select - True Shopping - True Spark Play - True Tennis - TrueID Live - TrueID Sports - TrueID Sports 2 - TrueID Sports 3 - True Plook Panya - True Premier Football 6 - True Premier Football 7 - True Premier Football 8 - True Sports 1 - True Sports 3 - True Sports 4 - NFL & NBA TV - UFC - VOICE TV - West Ham United - White Channel - Wolves - Zee Anmol - Zing - Amarin TV - beIN SPORTS 1 - beIN SPORTS 2 - Channel 3 - Channel 7HD - Channel 8 - Crime + Investigation - GMM 25 - JKN 18 - 9 MCOT - MONO 29 - Nation TV - NBT - One31 - PPTV - SPOTV 2 - Thai PBS - Thairath TV - TNN 2 - True4U - True Explore Life - True Explore Sci - True Film 1 - True Film 2 - True Film Asia - True Movie Hits - True Premier Football 1 - True Premier Football 2 - True Premier Football 3 - True Premier Football 4 - True Premier Football 5 - True Series - True Sports 2 - True Sports 5 - True Sports 7 - True Thai Film - True X-Zyte - TV5 HD - WorkPoint TV - + + + เอแอลทีวี + Arirang TV + อาร์เซน่อล + แอสตันวิลล่า + แอททีวี + บีอินสปอตส์ 6 + บีอินสปอตส์ 3 + บีอินสปอตส์ 4 + บีอินสปอตส์ 5 + บูมเมอแรง + บอร์นมัธ + เบรนท์ฟอร์ด + ไบร์ทตัน + เบิร์นลีย์ + การ์ตูน คลับ + เชลซี + คริสตัลพาเลซ + ธรรมะทีวี + DLTV 1 + DLTV 2 + DLTV 3 + DLTV 4 + DLTV 5 + DLTV 6 + DLTV 7 + DLTV 8 + DLTV 9 + DLTV 10 + DLTV 11 + DLTV 12 + DLTV 13 + DLTV 14 + DLTV 15 + ดี ดับเบิ้ลยู อิงลิช + ETV + Event 1 + Event 2 + Event 3 + Event 4 + Event 5 + เอเวอร์ตัน + ฟูแล่ม + Golf Channel Thailand HD + Golf Channel Thailand HD Plus + ลิเวอร์พูล + ลูตัน ทาวน์ + แมนซิตี้ + แมนยู + มังกร + มีเดีย ทีวี + นิวคาสเซิล + ฟอร์เรสต์ + Rama Channel + เรียลลิตี้ + เชฟฟิลด์ ยูไนเต็ด + SPOTV 1 + ซุปเปอร์ บันเทิง + สถานีโทรทัศน์เพื่อการท่องเที่ยวและกีฬา + ทดสอบการออกอากาศ + ช่องทดสอบออกอากาศที่2 + ช่องทดสอบออกอากาศที่ 3 + ทีเอ็นเอ็น 16 + TNN 16 HD + สเปอร์ + ทีพีทีวี + True Asian More + True Ball Thai 1 + True Ball Thai 2 + True Ball Thai 3 + True Explore Wild + True Music + True Select + True Shopping + True Spark Play + True Tennis + ทรูไอดี ไลฟ์ + ทรูไอดี สปอร์ต + ทรูไอดี สปอร์ต 2 + ทรูไอดี สปอร์ต 3 + ทรู ปลูกปัญญา + ทรู พรีเมียร์ ฟุตบอล 6 + ทรู พรีเมียร์ ฟุตบอล 7 + ทรู พรีเมียร์ ฟุตบอล 8 + ทรูสปอร์ต 1 + ทรูสปอร์ต 3 + ทรูสปอร์ต 4 + เอ็นเอฟแอล แอนด์ เอ็นบีเอ ทีวี + ยูเอฟซี + วอยซ์ ทีวี + เวสต์แฮม + ไวท์แชนแนล + วูลฟ์ + Zee Anmol + Zing + อมรินทร์ + บีอินสปอตส์ 1 + บีอินสปอตส์ 2 + ช่อง 3 HD + ช่อง 7HD + ช่อง 8 + ไคร์ม แอนด์ อินเวสทิเกชั่น + จีเอ็มเอ็ม 25 + เจเคเอ็น 18 + 9 เอ็มคอต HD + โมโน 29 + เนชั่น ทีวี + เอ็นบีที + วัน HD + พีพีทีวี + SPOTV 2 + ไทยพีบีเอส + ไทยรัฐ ทีวี HD + TNN 2 + ทรูโฟร์ยู + True Explore Life + True Explore Sci + True Film 1 + True Film 2 + True Film Asia + True Movie Hits + ทรู พรีเมียร์ ฟุตบอล 1 + ทรู พรีเมียร์ ฟุตบอล 2 + ทรู พรีเมียร์ ฟุตบอล 3 + ทรู พรีเมียร์ ฟุตบอล 4 + ทรู พรีเมียร์ ฟุตบอล 5 + True Series + ทรูสปอร์ต 2 + ทรูสปอร์ต 5 + ทรูสปอร์ต 7 + True Thai Film + True X-Zyte + ช่อง 5 + เวิร์คพอยท์ ทีวี + From 2027cb84b69cfd6c8c0c14259bdff78a2aa08a75 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 12 Dec 2023 07:24:37 +0300 Subject: [PATCH 05/10] Update readme.md --- sites/tv.trueid.net/readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sites/tv.trueid.net/readme.md b/sites/tv.trueid.net/readme.md index e79a174a..28956781 100644 --- a/sites/tv.trueid.net/readme.md +++ b/sites/tv.trueid.net/readme.md @@ -4,6 +4,8 @@ https://tv.trueid.net/ ### Download the guide +**NOTE:** This site only provides guides for today at current time, so it is necessary to get the guide at proper time (0:00 of Asia/Bangkok) to get the complete guides. + Thai: ```sh From 485e674b331dda26f281bb0fcb9d085248bfcc09 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk <7253922+freearhey@users.noreply.github.com> Date: Tue, 12 Dec 2023 07:26:06 +0300 Subject: [PATCH 06/10] Update SITES.md --- SITES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SITES.md b/SITES.md index 0da3919d..2958e4a2 100644 --- a/SITES.md +++ b/SITES.md @@ -151,7 +151,7 @@ | [tv.movistar.com.pe](sites/tv.movistar.com.pe) | 🟢 | | | [tv.nu](sites/tv.nu) | 🟢 | | | [tv.post.lu](sites/tv.post.lu) | 🟢 | | -| [tv.trueid.net](sites/tv.trueid.net) | 🔴 | https://github.com/iptv-org/epg/issues/2164 | +| [tv.trueid.net](sites/tv.trueid.net) | 🟢 | | | [tv.yandex.ru](sites/tv.yandex.ru) | 🟢 | | | [tv.yettel.hu](sites/tv.yettel.hu) | 🔴 | https://github.com/iptv-org/epg/issues/2263 | | [tv2go.t-2.net](sites/tv2go.t-2.net) | 🟢 | | From 3efd67800c1a65dcdd194971d609c86545b00cb9 Mon Sep 17 00:00:00 2001 From: Toha Date: Tue, 12 Dec 2023 18:21:55 +0700 Subject: [PATCH 07/10] Update nostv.pt guide. Signed-off-by: Toha --- sites/nos.pt/__data__/content.html | 4224 ------------------------- sites/nos.pt/__data__/no_content.html | 2988 ----------------- sites/nos.pt/__data__/program_0.json | 1 - sites/nos.pt/__data__/program_21.json | 1 - sites/nos.pt/nos.pt.channels.xml | 207 -- sites/nos.pt/nos.pt.config.js | 114 - sites/nos.pt/nos.pt.test.js | 97 - sites/nos.pt/readme.md | 21 - sites/nostv.pt/__data__/data.json | 1 + sites/nostv.pt/nostv.pt.channels.xml | 171 + sites/nostv.pt/nostv.pt.config.js | 60 + sites/nostv.pt/nostv.pt.test.js | 51 + sites/nostv.pt/readme.md | 21 + 13 files changed, 304 insertions(+), 7653 deletions(-) delete mode 100644 sites/nos.pt/__data__/content.html delete mode 100644 sites/nos.pt/__data__/no_content.html delete mode 100644 sites/nos.pt/__data__/program_0.json delete mode 100644 sites/nos.pt/__data__/program_21.json delete mode 100644 sites/nos.pt/nos.pt.channels.xml delete mode 100644 sites/nos.pt/nos.pt.config.js delete mode 100644 sites/nos.pt/nos.pt.test.js delete mode 100644 sites/nos.pt/readme.md create mode 100644 sites/nostv.pt/__data__/data.json create mode 100644 sites/nostv.pt/nostv.pt.channels.xml create mode 100644 sites/nostv.pt/nostv.pt.config.js create mode 100644 sites/nostv.pt/nostv.pt.test.js create mode 100644 sites/nostv.pt/readme.md diff --git a/sites/nos.pt/__data__/content.html b/sites/nos.pt/__data__/content.html deleted file mode 100644 index d24bcf41..00000000 --- a/sites/nos.pt/__data__/content.html +++ /dev/null @@ -1,4224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pesquisa por canal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - -
- - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - diff --git a/sites/nos.pt/__data__/no_content.html b/sites/nos.pt/__data__/no_content.html deleted file mode 100644 index 63607bce..00000000 --- a/sites/nos.pt/__data__/no_content.html +++ /dev/null @@ -1,2988 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pesquisa por canal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - diff --git a/sites/nos.pt/__data__/program_0.json b/sites/nos.pt/__data__/program_0.json deleted file mode 100644 index 089070ee..00000000 --- a/sites/nos.pt/__data__/program_0.json +++ /dev/null @@ -1 +0,0 @@ -{"d":"Anatomia de Grey T.17 Ep.3_#|$_Os médicos do Grey Sloan continuam a enfrentar a nova realidade do COVID-19 e lidam com um paciente conhecido e teimoso. Koracick fica encarregue dos internos e Link opera um terapeuta sexual._#|$_b6fd27f4bd0b404abd4c3fc4faa79024_resized_352x198.jpg_#|$_undefined_#|$_undefined_#|$_RTP 1_#|$_2023-01-27T23:50:00+00:00_#|$_2023-01-28T00:36:00+00:00_#|$_false"} \ No newline at end of file diff --git a/sites/nos.pt/__data__/program_21.json b/sites/nos.pt/__data__/program_21.json deleted file mode 100644 index 06584a0e..00000000 --- a/sites/nos.pt/__data__/program_21.json +++ /dev/null @@ -1 +0,0 @@ -{"d":"MasterChef Portugal T.1 Ep.10_#|$_A maior competição de cozinha do mundo arranca ao comando de três dos mais conceituados chefs portugueses: Pedro Pena Bastos, Noélia Jerónimo e Ricardo Costa, que nos vão transmitir os seus conhecimentos e a sua paixão pela cozinha._#|$_8aa511d697f0401a88a0cb1ec2718cc3_resized_352x198.jpg_#|$_undefined_#|$_undefined_#|$_RTP 1_#|$_2023-01-28T21:38:00+00:00_#|$_2023-01-29T00:05:00+00:00_#|$_false"} \ No newline at end of file diff --git a/sites/nos.pt/nos.pt.channels.xml b/sites/nos.pt/nos.pt.channels.xml deleted file mode 100644 index 6a63fd55..00000000 --- a/sites/nos.pt/nos.pt.channels.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - Eurosport 1 - Record TV - RTP Açores - Al Jazeera - PFC - BNT World - Eurosport 2 - Caça e Pesca - E! Entertainment - RTP 1 HD - Canção Nova - MAX - SET Asia - Eurosport 1 HD - AXN HD - AXN White - TVE 24h - FOX HD - FOX Life HD - Toros TV HD - ACOLH - Syfy HD - E! Entertainment HD - HOT HD - TLC - BTV1 HD - BTV1 - CNN - RTP África - TeleSUR - STV Notícias - Canal de Teste - Record TV HD - Penthouse HD1 - Sky News - Ativação NOS - RTL - ARTE - AMC HD - SPORT TV+ HD - SIC HD - SIC Notícias HD - CMTV HD - Globo HD - Sport TV NBA - FTV HD - ARD - VIVA Germany - DSF - AMC Break HD - FTV - Rai Italia - SIC K HD - RTP 2 HD - TVI HD - RTP 3 HD - Eurosport 2 HD - Canal 11 HD - Zee TV - AzoresTV by VITEC – TESTE - Canal 180 - Canal Galeria - RTP Açores HD - Canal Galeria - RTP Memória - Em Destaque - Unifé TV - Playboy HD - Travel Channel HD - AXN White HD - AMC Break - 1+1 - 24Kitchen HD - 3SAT - Afro Music Channel - AMC Crime - AMC - ARTV - AXN Movies - AXN - Baby TV - Biggs - Bloomberg - BVN - Canal 11 HD - Canal Hollywood - Canal NOS HD - Canal Panda - Canal Q - Cartoon Network HD - Casa e Cozinha HD - CCTV 4 - CGTN - CMTV - CNBC - CNN Portugal - Cubavisión Internacional - Discovery Channel - Disney Channel HD - Disney Junior - DOGTV - DW (Alemão) - DW - Eleven 1 - Eleven 2 - Eleven 3 - Eleven 4 - Eleven 5 - Eleven 6 - Euronews - Fight Network HD - Food Network HD - FOX Comedy - FOX Crime - FOX Life - FOX Movies - FOX - France 24 (I) - France 24 (F) - Fuel TV - TV Galicia - Globo Now HD - Globo - Canal História - Horse TV - HOT Man - HOT Taboo - HOT - ID Investigation Discovery - KBS World HD - KiKa - Kuriakos TV - Localvisão TV HD - M6 - MCM Pop - MCM Top - Mezzo - Mezzo Live HD - Motorvision HD - MTV 00s - MTV Live - MTV Portugal - MyZen TV - National Geographic - National Geographic WILD - Nautical Channel - NHK World TV - Nickelodeon - Nickelodeon Ukraine Pluto TV - Nick Jr. - NOS Studios - Odisseia - Panda KIDS - Phoenix CNE - Phoenix Infonews - Porto Canal - ProSieben - Record News - Russia Today - RTP 1 - RTP 2 - RTP 3 - RTP Madeira - RTP Memória - RTR Planeta - SAT 1 - Sextreme - SIC - SIC Caras - SIC K - SIC Mulher - SIC Notícias - SIC Radical - S+ HD - Sporting TV - SPORT TV1 - SPORT TV2 - SPORT TV3 - SPORT TV4 - SPORT TV5 - Sport TV 6 HD - SPORT TV+ - Stingray iConcerts HD - Super RTL - SYFY - TCV Internacional - TPA Internacional - Trace Toca - Trace Urban HD - Travel Channel - TV5 Monde - TVCine ACTION - TVCine EDITION - TVCine EMOTION - TVCine TOP - TVEi - TVI - TVI Ficção HD - TVI Reality - TVR Internacional - Venus - ZAP Viva HD - ZDF - ZDF Neo - diff --git a/sites/nos.pt/nos.pt.config.js b/sites/nos.pt/nos.pt.config.js deleted file mode 100644 index 14a5a902..00000000 --- a/sites/nos.pt/nos.pt.config.js +++ /dev/null @@ -1,114 +0,0 @@ -const axios = require('axios') -const cheerio = require('cheerio') -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: 'nos.pt', - days: 2, - url({ channel }) { - return `https://www.nos.pt/particulares/televisao/guia-tv/Pages/channel.aspx?channel=${channel.site_id}` - }, - async parser({ content, date }) { - const programs = [] - const items = parseItems(content, date) - date = date.subtract(1, 'd') - for (let item of items) { - const $item = cheerio.load(item) - - const channelAcronym = parseChannelAcronym(content) - const programId = parseProgramId($item) - const details = await loadProgramDetails(channelAcronym, programId) - - programs.push({ - title: details.title, - description: details.description, - icon: parseIcon(details), - start: dayjs(details.start), - stop: dayjs(details.stop) - }) - } - - return programs - }, - async channels() { - const html = await axios - .get('https://www.nos.pt/particulares/televisao/guia-tv/Pages/default.aspx') - .then(r => r.data) - .catch(console.log) - - const $ = cheerio.load(html) - const items = $('#guide-filters > dl.dropdown-ord > dd > ul > li').toArray() - - return items.map(item => { - const $item = cheerio.load(item) - - return { - lang: 'pt', - site_id: $item('.value').text().trim(), - name: $item('a').clone().children().remove().end().text().trim() - } - }) - } -} - -async function loadProgramDetails(channelAcronym, programId) { - if (!channelAcronym || !programId) return {} - const data = await axios - .post( - 'https://www.nos.pt/_layouts/15/Armstrong/ApplicationPages/EPGGetProgramsAndDetails.aspx/GetProgramDetails', - { - programId, - channelAcronym, - hour: 'undefined', - startHour: 'undefined', - endHour: 'undefined' - }, - { - headers: { - 'content-type': 'application/json; charset=UTF-8' - } - } - ) - .then(r => r.data) - .catch(console.log) - - if (!data) return {} - - const [title, description, image, , , , start, stop] = data.d.split('_#|$_') - - return { - title, - description, - image, - start, - stop - } -} - -function parseIcon(details) { - return details.image ? `https://images.nos.pt/${details.image}` : null -} - -function parseProgramId($item) { - return $item('a').attr('id') -} - -function parseChannelAcronym(content) { - const $ = cheerio.load(content) - - return $('#channel-logo > img').attr('alt') -} - -function parseItems(content, date) { - const day = date.date() - const $ = cheerio.load(content) - - return $(`#day${day} > ul > li`).toArray() -} diff --git a/sites/nos.pt/nos.pt.test.js b/sites/nos.pt/nos.pt.test.js deleted file mode 100644 index c5f7d7c4..00000000 --- a/sites/nos.pt/nos.pt.test.js +++ /dev/null @@ -1,97 +0,0 @@ -const { parser, url } = require('./nos.pt.config.js') -const fs = require('fs') -const path = require('path') -const axios = require('axios') -const dayjs = require('dayjs') -const utc = require('dayjs/plugin/utc') -const customParseFormat = require('dayjs/plugin/customParseFormat') -dayjs.extend(customParseFormat) -dayjs.extend(utc) - -jest.mock('axios') - -const date = dayjs.utc('2023-01-28', 'YYYY-MM-DD').startOf('d') -const channel = { - site_id: '5', - xmltv_id: 'RTP1.pt' -} - -it('can generate valid url', () => { - expect(url({ channel })).toBe( - 'https://www.nos.pt/particulares/televisao/guia-tv/Pages/channel.aspx?channel=5' - ) -}) - -it('can parse response', async () => { - const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'), 'utf8') - - axios.post.mockImplementation((url, data) => { - if ( - url === - 'https://www.nos.pt/_layouts/15/Armstrong/ApplicationPages/EPGGetProgramsAndDetails.aspx/GetProgramDetails' && - JSON.stringify(data) === - JSON.stringify({ - programId: '81361', - channelAcronym: 'RTP1', - hour: 'undefined', - startHour: 'undefined', - endHour: 'undefined' - }) - ) { - return Promise.resolve({ - data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program_0.json'))) - }) - } else if ( - url === - 'https://www.nos.pt/_layouts/15/Armstrong/ApplicationPages/EPGGetProgramsAndDetails.aspx/GetProgramDetails' && - JSON.stringify(data) === - JSON.stringify({ - programId: '81382', - channelAcronym: 'RTP1', - hour: 'undefined', - startHour: 'undefined', - endHour: 'undefined' - }) - ) { - return Promise.resolve({ - data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program_21.json'))) - }) - } else { - return Promise.resolve({ data: '' }) - } - }) - - let results = await parser({ content, date }) - results = results.map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(results[0]).toMatchObject({ - start: '2023-01-27T23:50:00.000Z', - stop: '2023-01-28T00:36:00.000Z', - title: 'Anatomia de Grey T.17 Ep.3', - description: - 'Os médicos do Grey Sloan continuam a enfrentar a nova realidade do COVID-19 e lidam com um paciente conhecido e teimoso. Koracick fica encarregue dos internos e Link opera um terapeuta sexual.', - icon: 'https://images.nos.pt/b6fd27f4bd0b404abd4c3fc4faa79024_resized_352x198.jpg' - }) - - expect(results[21]).toMatchObject({ - start: '2023-01-28T21:38:00.000Z', - stop: '2023-01-29T00:05:00.000Z', - title: 'MasterChef Portugal T.1 Ep.10', - description: - 'A maior competição de cozinha do mundo arranca ao comando de três dos mais conceituados chefs portugueses: Pedro Pena Bastos, Noélia Jerónimo e Ricardo Costa, que nos vão transmitir os seus conhecimentos e a sua paixão pela cozinha.', - icon: 'https://images.nos.pt/8aa511d697f0401a88a0cb1ec2718cc3_resized_352x198.jpg' - }) -}) - -it('can handle empty guide', async () => { - const results = await parser({ - date, - content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.html'), 'utf8') - }) - - expect(results).toMatchObject([]) -}) diff --git a/sites/nos.pt/readme.md b/sites/nos.pt/readme.md deleted file mode 100644 index 81f3490a..00000000 --- a/sites/nos.pt/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# nos.pt - -https://nostv.pt/guia/ - -### Download the guide - -```sh -npm run grab -- --site=nos.pt -``` - -### Update channel list - -```sh -npm run channels:parse -- --config=./sites/nos.pt/nos.pt.config.js --output=./sites/nos.pt/nos.pt.channels.xml -``` - -### Test - -```sh -npm test -- nos.pt -``` diff --git a/sites/nostv.pt/__data__/data.json b/sites/nostv.pt/__data__/data.json new file mode 100644 index 00000000..205e5797 --- /dev/null +++ b/sites/nostv.pt/__data__/data.json @@ -0,0 +1 @@ +[{"CoreId":"2023121151009543","AssetId":"EPGE2023121151009543","ContentId":"epg@2023121151009543","ProgramId":"3011502","AggregatorId":"2967456","DateFullEventId":"2023121151009543","GridItemsLink":"/v2/browse/epg@2023121151009543/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009543/PlayListTray/items","UtcDateTimeStart":"2023-12-11T16:30:00Z","UtcDateTimeEnd":"2023-12-11T17:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Village Vets","SubTitle":"","RatingDisplay":"NC","GenreDisplay":"Reality TV","SeriesId":"142241","Description":"A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.","ReleaseYear":"2014","Rating":0,"Season":1,"Episode":12,"Duration":30,"ProgramId":3011502,"AggregatorId":2967456,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"8329ed1aec5d4c0faa2056972256ff9f","Url":"http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f","Type":1}]},{"CoreId":"2023121151009544","AssetId":"EPGE2023121151009544","ContentId":"epg@2023121151009544","ProgramId":"3161537","AggregatorId":"2165665","DateFullEventId":"2023121151009544","GridItemsLink":"/v2/browse/epg@2023121151009544/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009544/PlayListTray/items","UtcDateTimeStart":"2023-12-11T17:00:00Z","UtcDateTimeEnd":"2023-12-11T18:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Histórias Clínicas","SubTitle":"Associações","RatingDisplay":"M12","GenreDisplay":"Saúde","SeriesId":"102905","Description":"Processo de Decisão Clínica.","ReleaseYear":"2018","Rating":80,"Season":7,"Episode":13,"Duration":60,"ProgramId":3161537,"AggregatorId":2165665,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"818dba4817a7464f9e8433620270b01d","Url":"http://vip.pam.local.internal/PAM.Images/Store/818dba4817a7464f9e8433620270b01d","Type":1}]},{"CoreId":"2023121151009545","AssetId":"EPGE2023121151009545","ContentId":"epg@2023121151009545","ProgramId":"3357379","AggregatorId":"2182966","DateFullEventId":"2023121151009545","GridItemsLink":"/v2/browse/epg@2023121151009545/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009545/PlayListTray/items","UtcDateTimeStart":"2023-12-11T18:00:00Z","UtcDateTimeEnd":"2023-12-11T19:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Corpo Clínico","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Saúde","SeriesId":"103390","Description":"Farmacovigilância.","ReleaseYear":"2018","Rating":1,"Season":12,"Episode":5,"Duration":60,"ProgramId":3357379,"AggregatorId":2182966,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"a060ca5930444d3a864ad20615e7df33","Url":"http://vip.pam.local.internal/PAM.Images/Store/a060ca5930444d3a864ad20615e7df33","Type":1}]},{"CoreId":"2023121151009546","AssetId":"EPGE2023121151009546","ContentId":"epg@2023121151009546","ProgramId":"3364579","AggregatorId":"3161534","DateFullEventId":"2023121151009546","GridItemsLink":"/v2/browse/epg@2023121151009546/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009546/PlayListTray/items","UtcDateTimeStart":"2023-12-11T19:00:00Z","UtcDateTimeEnd":"2023-12-11T20:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Caixa de Pandora","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Talk-Show","SeriesId":"152921","Description":"Programa de 45 minutos, em estúdio, que reúne 4 mulheres de diversas idades e backgrounds que conversam todas as semanas sobre temas ligados à saúde e bem-estar, mas também à sexualidade, vida em família, ao trabalho, etc. É uma tertúlia no feminino.","ReleaseYear":"2023","Rating":80,"Season":4,"Episode":13,"Duration":60,"ProgramId":3364579,"AggregatorId":3161534,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"0ba7dccc8d1d459083c90666a2250776","Url":"http://vip.pam.local.internal/PAM.Images/Store/0ba7dccc8d1d459083c90666a2250776","Type":1}]},{"CoreId":"2023121151009547","AssetId":"EPGE2023121151009547","ContentId":"epg@2023121151009547","ProgramId":"3161541","AggregatorId":"2166905","DateFullEventId":"2023121151009547","GridItemsLink":"/v2/browse/epg@2023121151009547/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009547/PlayListTray/items","UtcDateTimeStart":"2023-12-11T20:00:00Z","UtcDateTimeEnd":"2023-12-11T21:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Anatomia De Vénus","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Entrevista","SeriesId":"102934","Description":"Sexualidade e Deficiência.","ReleaseYear":"2018","Rating":80,"Season":7,"Episode":13,"Duration":60,"ProgramId":3161541,"AggregatorId":2166905,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"5a9c92a158084235901d63e0cda418df","Url":"http://vip.pam.local.internal/PAM.Images/Store/5a9c92a158084235901d63e0cda418df","Type":1}]},{"CoreId":"2023121151009548","AssetId":"EPGE2023121151009548","ContentId":"epg@2023121151009548","ProgramId":"3072059","AggregatorId":"3066918","DateFullEventId":"2023121151009548","GridItemsLink":"/v2/browse/epg@2023121151009548/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009548/PlayListTray/items","UtcDateTimeStart":"2023-12-11T21:00:00Z","UtcDateTimeEnd":"2023-12-11T22:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Heart Transplant: A Chance To Live","SubTitle":"","RatingDisplay":"NC","GenreDisplay":"Saúde","SeriesId":"146850","Description":"Acompanhamos a vida de sete doentes criticos à espera para fazerem transplantes de coração.","ReleaseYear":"2018","Rating":0,"Season":1,"Episode":2,"Duration":60,"ProgramId":3072059,"AggregatorId":3066918,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"aba563a9ff3748de8a3551633f3bd1cb","Url":"http://vip.pam.local.internal/PAM.Images/Store/aba563a9ff3748de8a3551633f3bd1cb","Type":1}]},{"CoreId":"2023121151009549","AssetId":"EPGE2023121151009549","ContentId":"epg@2023121151009549","ProgramId":"3361332","AggregatorId":"3103070","DateFullEventId":"2023121151009549","GridItemsLink":"/v2/browse/epg@2023121151009549/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009549/PlayListTray/items","UtcDateTimeStart":"2023-12-11T22:00:00Z","UtcDateTimeEnd":"2023-12-11T22:30:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Entre Turnos","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Saúde","SeriesId":"149976","Description":"Vasco Lança (jogador de basquetebol e estudante de medicina).","ReleaseYear":"2022","Rating":80,"Season":1,"Episode":11,"Duration":30,"ProgramId":3361332,"AggregatorId":3103070,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"2e0fa1bc7d36404ab52dafcf450137d2","Url":"http://vip.pam.local.internal/PAM.Images/Store/2e0fa1bc7d36404ab52dafcf450137d2","Type":1}]},{"CoreId":"2023121151009550","AssetId":"EPGE2023121151009550","ContentId":"epg@2023121151009550","ProgramId":"3367957","AggregatorId":"3333429","DateFullEventId":"2023121151009550","GridItemsLink":"/v2/browse/epg@2023121151009550/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009550/PlayListTray/items","UtcDateTimeStart":"2023-12-11T22:30:00Z","UtcDateTimeEnd":"2023-12-11T23:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Fact Check","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Entretenimento","SeriesId":"164520","Description":"Ouviu dizer que não deve misturar melancia e vinho na mesma refeição? Contaram-lhe que aquecer refeições no micro-ondas provoca cancro? No outro dia, viu nas redes sociais alguém afirmar que só vai ao psiquiatra quem tem doenças graves?","ReleaseYear":"2023","Rating":1,"Season":1,"Episode":11,"Duration":30,"ProgramId":3367957,"AggregatorId":3333429,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"6b08d78551e745899ff8db0fea2b8680","Url":"http://vip.pam.local.internal/PAM.Images/Store/6b08d78551e745899ff8db0fea2b8680","Type":1}]},{"CoreId":"2023121151009551","AssetId":"EPGE2023121151009551","ContentId":"epg@2023121151009551","ProgramId":"3365804","AggregatorId":"2165712","DateFullEventId":"2023121151009551","GridItemsLink":"/v2/browse/epg@2023121151009551/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121151009551/PlayListTray/items","UtcDateTimeStart":"2023-12-11T23:00:00Z","UtcDateTimeEnd":"2023-12-12T00:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Check Up","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Debate","SeriesId":"102906","Description":"Para debater o futuro da saúde em Portugal, todas as semanas abrimos antena a “Check up”. O programa promete reunir os principais protagonistas do setor para discutirem em conjunto os grandes temas que preocupam este universo.","ReleaseYear":"2018","Rating":1,"Season":10,"Episode":14,"Duration":60,"ProgramId":3365804,"AggregatorId":2165712,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"5bf507f275934d369ceb7a790251bd1e","Url":"http://vip.pam.local.internal/PAM.Images/Store/5bf507f275934d369ceb7a790251bd1e","Type":1}]},{"CoreId":"2023121251009807","AssetId":"EPGE2023121251009807","ContentId":"epg@2023121251009807","ProgramId":"3364404","AggregatorId":"2460399","DateFullEventId":"2023121251009807","GridItemsLink":"/v2/browse/epg@2023121251009807/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009807/PlayListTray/items","UtcDateTimeStart":"2023-12-12T00:00:00Z","UtcDateTimeEnd":"2023-12-12T00:30:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Doutor Ajuda","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Saúde","SeriesId":"112361","Description":"O que é a toxina botulínica e suas utilizações.","ReleaseYear":"2023","Rating":1,"Season":3,"Episode":9,"Duration":30,"ProgramId":3364404,"AggregatorId":2460399,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"dfc67678e6de4a2baf23cd16a039684b","Url":"http://vip.pam.local.internal/PAM.Images/Store/dfc67678e6de4a2baf23cd16a039684b","Type":1}]},{"CoreId":"2023121251009808","AssetId":"EPGE2023121251009808","ContentId":"epg@2023121251009808","ProgramId":"2207459","AggregatorId":"2165669","DateFullEventId":"2023121251009808","GridItemsLink":"/v2/browse/epg@2023121251009808/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009808/PlayListTray/items","UtcDateTimeStart":"2023-12-12T00:30:00Z","UtcDateTimeEnd":"2023-12-12T01:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Atendimento Permanente","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Reality TV","SeriesId":"102919","Description":"No Atendimento Permanente desta semana vamos conhecer o dia a dia de um fisiatra.","ReleaseYear":"2018","Rating":1,"Season":1,"Episode":6,"Duration":30,"ProgramId":2207459,"AggregatorId":2165669,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"7973715e80b449afaeea3a23aa830fa0","Url":"http://vip.pam.local.internal/PAM.Images/Store/7973715e80b449afaeea3a23aa830fa0","Type":1}]},{"CoreId":"2023121251009809","AssetId":"EPGE2023121251009809","ContentId":"epg@2023121251009809","ProgramId":"3161541","AggregatorId":"2166905","DateFullEventId":"2023121251009809","GridItemsLink":"/v2/browse/epg@2023121251009809/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009809/PlayListTray/items","UtcDateTimeStart":"2023-12-12T01:00:00Z","UtcDateTimeEnd":"2023-12-12T02:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Anatomia De Vénus","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Entrevista","SeriesId":"102934","Description":"Sexualidade e Deficiência.","ReleaseYear":"2018","Rating":80,"Season":7,"Episode":13,"Duration":60,"ProgramId":3161541,"AggregatorId":2166905,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"5a9c92a158084235901d63e0cda418df","Url":"http://vip.pam.local.internal/PAM.Images/Store/5a9c92a158084235901d63e0cda418df","Type":1}]},{"CoreId":"2023121251009810","AssetId":"EPGE2023121251009810","ContentId":"epg@2023121251009810","ProgramId":"3047405","AggregatorId":"140870","DateFullEventId":"2023121251009810","GridItemsLink":"/v2/browse/epg@2023121251009810/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009810/PlayListTray/items","UtcDateTimeStart":"2023-12-12T02:00:00Z","UtcDateTimeEnd":"2023-12-12T03:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Sete Vidas","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Entrevista","SeriesId":"116562","Description":"Anorexia, perturbação bipolar, depressão, comportamentos aditivos, dor crónica ou comportamento obsessivo-compulsivo são patologias psicológicas que a conhecida psicóloga clínica Joana Amaral Dias vai retratar através de uma conversa com uma figura pública que tenha vivenciado e superado o problema.","ReleaseYear":"2022","Rating":1,"Season":3,"Episode":8,"Duration":60,"ProgramId":3047405,"AggregatorId":140870,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"245f7c92250d443dbfa923d4a7cdda30","Url":"http://vip.pam.local.internal/PAM.Images/Store/245f7c92250d443dbfa923d4a7cdda30","Type":1}]},{"CoreId":"2023121251009811","AssetId":"EPGE2023121251009811","ContentId":"epg@2023121251009811","ProgramId":"2602834","AggregatorId":"2597243","DateFullEventId":"2023121251009811","GridItemsLink":"/v2/browse/epg@2023121251009811/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009811/PlayListTray/items","UtcDateTimeStart":"2023-12-12T03:00:00Z","UtcDateTimeEnd":"2023-12-12T04:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Histórias Clínicas: Dra. Sofia Braga","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Talk-Show","SeriesId":"120596","Description":"Rastreio cancro prostata.","ReleaseYear":"2020","Rating":80,"Season":6,"Episode":5,"Duration":60,"ProgramId":2602834,"AggregatorId":2597243,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"818dba4817a7464f9e8433620270b01d","Url":"http://vip.pam.local.internal/PAM.Images/Store/818dba4817a7464f9e8433620270b01d","Type":1}]},{"CoreId":"2023121251009812","AssetId":"EPGE2023121251009812","ContentId":"epg@2023121251009812","ProgramId":"2554643","AggregatorId":"1059808","DateFullEventId":"2023121251009812","GridItemsLink":"/v2/browse/epg@2023121251009812/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009812/PlayListTray/items","UtcDateTimeStart":"2023-12-12T04:00:00Z","UtcDateTimeEnd":"2023-12-12T05:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Pura Vida","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Entrevista","SeriesId":"102883","Description":"João Paulo Freitas.","ReleaseYear":"2018","Rating":1,"Season":5,"Episode":9,"Duration":60,"ProgramId":2554643,"AggregatorId":1059808,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"c59c07b60101435a846e546633137b54","Url":"http://vip.pam.local.internal/PAM.Images/Store/c59c07b60101435a846e546633137b54","Type":1}]},{"CoreId":"2023121251009813","AssetId":"EPGE2023121251009813","ContentId":"epg@2023121251009813","ProgramId":"2581668","AggregatorId":"2527677","DateFullEventId":"2023121251009813","GridItemsLink":"/v2/browse/epg@2023121251009813/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009813/PlayListTray/items","UtcDateTimeStart":"2023-12-12T05:00:00Z","UtcDateTimeEnd":"2023-12-12T05:30:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Casos Singulares","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Entrevista","SeriesId":"116606","Description":"No mundo foram reconhecidas entre 5 a 8 mil doenças raras que afetam o próprio e quem está ao redor. O peso social do problema, o acesso às terapêuticas quando existem, a forma de lidar com o problema, são aspetos a abordar no programa, que apresenta patologias e histórias de vida diferentes.","ReleaseYear":"2019","Rating":1,"Season":1,"Episode":13,"Duration":30,"ProgramId":2581668,"AggregatorId":2527677,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"42a228cd013742ffa58e302d4706b401","Url":"http://vip.pam.local.internal/PAM.Images/Store/42a228cd013742ffa58e302d4706b401","Type":1}]},{"CoreId":"2023121251009814","AssetId":"EPGE2023121251009814","ContentId":"epg@2023121251009814","ProgramId":"2312607","AggregatorId":"2176405","DateFullEventId":"2023121251009814","GridItemsLink":"/v2/browse/epg@2023121251009814/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009814/PlayListTray/items","UtcDateTimeStart":"2023-12-12T05:30:00Z","UtcDateTimeEnd":"2023-12-12T06:30:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Histórias Clínicas: Dra. Rita Gama","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Talk-Show","SeriesId":"103212","Description":"Prematuridade e doenças pulmonares crónicas obstrutivas.","ReleaseYear":"2018","Rating":80,"Season":2,"Episode":3,"Duration":60,"ProgramId":2312607,"AggregatorId":2176405,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"818dba4817a7464f9e8433620270b01d","Url":"http://vip.pam.local.internal/PAM.Images/Store/818dba4817a7464f9e8433620270b01d","Type":1}]},{"CoreId":"2023121251009815","AssetId":"EPGE2023121251009815","ContentId":"epg@2023121251009815","ProgramId":"2944028","AggregatorId":"2165663","DateFullEventId":"2023121251009815","GridItemsLink":"/v2/browse/epg@2023121251009815/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009815/PlayListTray/items","UtcDateTimeStart":"2023-12-12T06:30:00Z","UtcDateTimeEnd":"2023-12-12T07:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Ajudar Quem Ajuda","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Entrevista","SeriesId":"102898","Description":"Hoje apresentamos a Associação Careca Power.","ReleaseYear":"2018","Rating":1,"Season":7,"Episode":11,"Duration":30,"ProgramId":2944028,"AggregatorId":2165663,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"a655dbeb67b745418e40096827581a69","Url":"http://vip.pam.local.internal/PAM.Images/Store/a655dbeb67b745418e40096827581a69","Type":1}]},{"CoreId":"2023121251009816","AssetId":"EPGE2023121251009816","ContentId":"epg@2023121251009816","ProgramId":"2554639","AggregatorId":"2165680","DateFullEventId":"2023121251009816","GridItemsLink":"/v2/browse/epg@2023121251009816/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009816/PlayListTray/items","UtcDateTimeStart":"2023-12-12T07:00:00Z","UtcDateTimeEnd":"2023-12-12T08:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Tenho um bebé. E agora?","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Magazine","SeriesId":"102886","Description":"Obesidade Infantil - Estratégias de combate em casa e na escola.","ReleaseYear":"2018","Rating":1,"Season":5,"Episode":9,"Duration":60,"ProgramId":2554639,"AggregatorId":2165680,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"293d91056a424619b904d93cd60e8db5","Url":"http://vip.pam.local.internal/PAM.Images/Store/293d91056a424619b904d93cd60e8db5","Type":1}]},{"CoreId":"2023121251009817","AssetId":"EPGE2023121251009817","ContentId":"epg@2023121251009817","ProgramId":"2383511","AggregatorId":"2303539","DateFullEventId":"2023121251009817","GridItemsLink":"/v2/browse/epg@2023121251009817/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009817/PlayListTray/items","UtcDateTimeStart":"2023-12-12T08:00:00Z","UtcDateTimeEnd":"2023-12-12T09:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Histórias Clínicas: Dr. Luis Sousa","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Talk-Show","SeriesId":"106734","Description":"Medicina Dentária em Portugal.","ReleaseYear":"2018","Rating":80,"Season":3,"Episode":1,"Duration":60,"ProgramId":2383511,"AggregatorId":2303539,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"818dba4817a7464f9e8433620270b01d","Url":"http://vip.pam.local.internal/PAM.Images/Store/818dba4817a7464f9e8433620270b01d","Type":1}]},{"CoreId":"2023121251009818","AssetId":"EPGE2023121251009818","ContentId":"epg@2023121251009818","ProgramId":"3364579","AggregatorId":"3161534","DateFullEventId":"2023121251009818","GridItemsLink":"/v2/browse/epg@2023121251009818/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009818/PlayListTray/items","UtcDateTimeStart":"2023-12-12T09:00:00Z","UtcDateTimeEnd":"2023-12-12T10:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Caixa de Pandora","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Talk-Show","SeriesId":"152921","Description":"Programa de 45 minutos, em estúdio, que reúne 4 mulheres de diversas idades e backgrounds que conversam todas as semanas sobre temas ligados à saúde e bem-estar, mas também à sexualidade, vida em família, ao trabalho, etc. É uma tertúlia no feminino.","ReleaseYear":"2023","Rating":80,"Season":4,"Episode":13,"Duration":60,"ProgramId":3364579,"AggregatorId":3161534,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"0ba7dccc8d1d459083c90666a2250776","Url":"http://vip.pam.local.internal/PAM.Images/Store/0ba7dccc8d1d459083c90666a2250776","Type":1}]},{"CoreId":"2023121251009819","AssetId":"EPGE2023121251009819","ContentId":"epg@2023121251009819","ProgramId":"3357379","AggregatorId":"2182966","DateFullEventId":"2023121251009819","GridItemsLink":"/v2/browse/epg@2023121251009819/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009819/PlayListTray/items","UtcDateTimeStart":"2023-12-12T10:00:00Z","UtcDateTimeEnd":"2023-12-12T11:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Corpo Clínico","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Saúde","SeriesId":"103390","Description":"Farmacovigilância.","ReleaseYear":"2018","Rating":1,"Season":12,"Episode":5,"Duration":60,"ProgramId":3357379,"AggregatorId":2182966,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"a060ca5930444d3a864ad20615e7df33","Url":"http://vip.pam.local.internal/PAM.Images/Store/a060ca5930444d3a864ad20615e7df33","Type":1}]},{"CoreId":"2023121251009820","AssetId":"EPGE2023121251009820","ContentId":"epg@2023121251009820","ProgramId":"3365186","AggregatorId":"3120338","DateFullEventId":"2023121251009820","GridItemsLink":"/v2/browse/epg@2023121251009820/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009820/PlayListTray/items","UtcDateTimeStart":"2023-12-12T11:00:00Z","UtcDateTimeEnd":"2023-12-12T12:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Tenho Um Adolescente. E Agora?","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Saúde","SeriesId":"150432","Description":"Como lidar com a rejeição.","ReleaseYear":"2022","Rating":80,"Season":2,"Episode":3,"Duration":60,"ProgramId":3365186,"AggregatorId":3120338,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"d0b53e8f6f644939a11be96ac28aae07","Url":"http://vip.pam.local.internal/PAM.Images/Store/d0b53e8f6f644939a11be96ac28aae07","Type":1}]},{"CoreId":"2023121251009821","AssetId":"EPGE2023121251009821","ContentId":"epg@2023121251009821","ProgramId":"3031742","AggregatorId":"2967454","DateFullEventId":"2023121251009821","GridItemsLink":"/v2/browse/epg@2023121251009821/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009821/PlayListTray/items","UtcDateTimeStart":"2023-12-12T12:00:00Z","UtcDateTimeEnd":"2023-12-12T13:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"One Born Every Minute","SubTitle":"","RatingDisplay":"NC","GenreDisplay":"Saúde","SeriesId":"142171","Description":"Saiba quais os segredos de uma boa relação.","ReleaseYear":"2018","Rating":0,"Season":9,"Episode":5,"Duration":60,"ProgramId":3031742,"AggregatorId":2967454,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"746a4552819c485aba07aed59fcca49d","Url":"http://vip.pam.local.internal/PAM.Images/Store/746a4552819c485aba07aed59fcca49d","Type":1}]},{"CoreId":"2023121251009822","AssetId":"EPGE2023121251009822","ContentId":"epg@2023121251009822","ProgramId":"3361332","AggregatorId":"3103070","DateFullEventId":"2023121251009822","GridItemsLink":"/v2/browse/epg@2023121251009822/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009822/PlayListTray/items","UtcDateTimeStart":"2023-12-12T13:00:00Z","UtcDateTimeEnd":"2023-12-12T13:30:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Entre Turnos","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Saúde","SeriesId":"149976","Description":"Vasco Lança (jogador de basquetebol e estudante de medicina).","ReleaseYear":"2022","Rating":80,"Season":1,"Episode":11,"Duration":30,"ProgramId":3361332,"AggregatorId":3103070,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"2e0fa1bc7d36404ab52dafcf450137d2","Url":"http://vip.pam.local.internal/PAM.Images/Store/2e0fa1bc7d36404ab52dafcf450137d2","Type":1}]},{"CoreId":"2023121251009823","AssetId":"EPGE2023121251009823","ContentId":"epg@2023121251009823","ProgramId":"3367957","AggregatorId":"3333429","DateFullEventId":"2023121251009823","GridItemsLink":"/v2/browse/epg@2023121251009823/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009823/PlayListTray/items","UtcDateTimeStart":"2023-12-12T13:30:00Z","UtcDateTimeEnd":"2023-12-12T14:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Fact Check","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Entretenimento","SeriesId":"164520","Description":"Ouviu dizer que não deve misturar melancia e vinho na mesma refeição? Contaram-lhe que aquecer refeições no micro-ondas provoca cancro? No outro dia, viu nas redes sociais alguém afirmar que só vai ao psiquiatra quem tem doenças graves?","ReleaseYear":"2023","Rating":1,"Season":1,"Episode":11,"Duration":30,"ProgramId":3367957,"AggregatorId":3333429,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"6b08d78551e745899ff8db0fea2b8680","Url":"http://vip.pam.local.internal/PAM.Images/Store/6b08d78551e745899ff8db0fea2b8680","Type":1}]},{"CoreId":"2023121251009824","AssetId":"EPGE2023121251009824","ContentId":"epg@2023121251009824","ProgramId":"3206760","AggregatorId":"3161538","DateFullEventId":"2023121251009824","GridItemsLink":"/v2/browse/epg@2023121251009824/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009824/PlayListTray/items","UtcDateTimeStart":"2023-12-12T14:00:00Z","UtcDateTimeEnd":"2023-12-12T15:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Guia da Vida Saudável","SubTitle":"","RatingDisplay":"M12","GenreDisplay":"Magazine","SeriesId":"152938","Description":"Programa de estúdio de 45 minutos, onde vamos mostrar exemplos e práticas que podem determinar uma vida mais saudável. Queremos condensar toda a informação disponível. O objetivo do programa é “prevenir primeiro, para não ter que remediar depois”.","ReleaseYear":"2023","Rating":80,"Season":1,"Episode":12,"Duration":60,"ProgramId":3206760,"AggregatorId":3161538,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"0082754b26bb4bc4978b9e324cccd8f6","Url":"http://vip.pam.local.internal/PAM.Images/Store/0082754b26bb4bc4978b9e324cccd8f6","Type":1}]},{"CoreId":"2023121251009825","AssetId":"EPGE2023121251009825","ContentId":"epg@2023121251009825","ProgramId":"3365804","AggregatorId":"2165712","DateFullEventId":"2023121251009825","GridItemsLink":"/v2/browse/epg@2023121251009825/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009825/PlayListTray/items","UtcDateTimeStart":"2023-12-12T15:00:00Z","UtcDateTimeEnd":"2023-12-12T16:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Check Up","SubTitle":"","RatingDisplay":"Todos","GenreDisplay":"Debate","SeriesId":"102906","Description":"Para debater o futuro da saúde em Portugal, todas as semanas abrimos antena a “Check up”. O programa promete reunir os principais protagonistas do setor para discutirem em conjunto os grandes temas que preocupam este universo.","ReleaseYear":"2018","Rating":1,"Season":10,"Episode":14,"Duration":60,"ProgramId":3365804,"AggregatorId":2165712,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"5bf507f275934d369ceb7a790251bd1e","Url":"http://vip.pam.local.internal/PAM.Images/Store/5bf507f275934d369ceb7a790251bd1e","Type":1}]},{"CoreId":"2023121251009826","AssetId":"EPGE2023121251009826","ContentId":"epg@2023121251009826","ProgramId":"3161537","AggregatorId":"2165665","DateFullEventId":"2023121251009826","GridItemsLink":"/v2/browse/epg@2023121251009826/grid/items","PlayListTrayItemLink":"/v1/contents/epg@2023121251009826/PlayListTray/items","UtcDateTimeStart":"2023-12-12T16:00:00Z","UtcDateTimeEnd":"2023-12-12T17:00:00Z","Type":4,"IsAdult":false,"AiringChannel":{"IsOnline":true,"IsTimeWarpable":true,"IsRestartable":true,"ServiceId":"510","ChannelId":"510","AssetId":"EPGC510","Name":"S+ HD","RatingDisplay":"M3","DvbLocator":"dvb://36.4C.835","Rating":20,"Position":129,"QualityVersion":2,"Images":[{"ImageId":"SAUDEMAIS.png","Url":"http://vip.repositories.local.internal/Repositories.EPG/OttChannelIcons/SAUDEMAIS.png","Type":16}]},"Metadata":{"Title":"Histórias Clínicas","SubTitle":"Associações","RatingDisplay":"M12","GenreDisplay":"Saúde","SeriesId":"102905","Description":"Processo de Decisão Clínica.","ReleaseYear":"2018","Rating":80,"Season":7,"Episode":13,"Duration":60,"ProgramId":3161537,"AggregatorId":2165665,"IsNPVR":true,"IsStartOver":true},"Images":[{"ImageId":"818dba4817a7464f9e8433620270b01d","Url":"http://vip.pam.local.internal/PAM.Images/Store/818dba4817a7464f9e8433620270b01d","Type":1}]}] \ No newline at end of file diff --git a/sites/nostv.pt/nostv.pt.channels.xml b/sites/nostv.pt/nostv.pt.channels.xml new file mode 100644 index 00000000..3ecd3fd0 --- /dev/null +++ b/sites/nostv.pt/nostv.pt.channels.xml @@ -0,0 +1,171 @@ + + + Rai Italia + Canal 180 + BNT World + Caça e Pesca + TPA Notícias + TVE 24h + BTV1 HD + STV Notícias + Sport TV NBA + Canal Galeria + ELEVEN EXTRA 1 + ELEVEN EXTRA 2 + ELEVEN EXTRA 3 + ELEVEN EXTRA 4 + Unifé TV + OneToro TV + New Brasil + Dizi + 1+1 + 24Kitchen HD + Afro Music Channel + Al Jazeera + AMC HD + AMC Break HD + AMC Crime + AMC Crime HD + ARTE + ARTV + AXN HD + AXN Movies HD + AXN White HD + Baby TV + Biggs + Bloomberg + BVN + Canal 11 HD + Canal Hollywood HD + Canal NOS HD + Canal Panda HD + Canal Q + Cartoon Network HD + Casa e Cozinha HD + CCTV 4 + CGTN + CMTV HD + CNBC + CNN + CNN Portugal HD + Cubavisión Internacional + Discovery Channel + Discovery HD + Disney Channel HD + Disney Junior HD + DOGTV + DW (Alemão) + DW + E! Entertainment HD + ELEVEN SPORTS 1 + ELEVEN SPORTS 2 + ELEVEN SPORTS 3 + ELEVEN SPORTS 4 + ELEVEN SPORTS 5 + ELEVEN SPORTS 6 + Euronews + Eurosport 1 HD + Eurosport 2 + Eurosport 2 HD + FTV + FTV HD + Fight Network HD + Food Network HD + FOX HD + FOX Comedy HD + FOX Crime + FOX Crime HD + FOX Life HD + FOX Movies + FOX Movies HD + France 24 (I) + France 24 (F) + Fuel TV HD + TV Galicia + Globo News + Globo HD + Canal História + Canal História HD + Horse TV + ID Investigation Discovery + KBS World HD + Kuriakos TV + Localvisão TV HD + M6 + MCM Pop + MCM Top + Mezzo + Mezzo Live HD + Motorvision HD + MTV 00s + MTV Portugal HD + MTV Live + MyZen TV + National Geographic HD + National Geographic WILD HD + Nautical Channel + NHK World TV + Nickelodeon + Nick Jr. + NOS Studios HD + ODISSEIA HD + Panda KIDS + PFC + Phoenix CNE + Phoenix Infonews + Porto Canal HD + Record News + Record TV HD + Russia Today + RTL + Super RTL + RTP 1 HD + RTP 2 HD + RTP 3 HD + RTP Açores + RTP África + RTP Madeira + RTP Memória + RTR Planeta + SIC HD + SIC Caras HD + SIC K HD + SIC Mulher HD + SIC Notícias HD + SIC Radical HD + Sky News + SET Asia + MAX + S+ HD + Sporting TV HD + SPORT TV1 HD + SPORT TV2 HD + SPORT TV3 HD + SPORT TV4 HD + SPORT TV5 HD + Sport TV 6 HD + SPORT TV+ HD + Stingray iConcerts HD + Syfy HD + TCV Internacional + TeleSUR + TLC + Trace Toca + Trace Urban HD + Travel Channel + Travel Channel HD + TV5 Monde + Canção Nova + TVCine ACTION HD + TVCine EDITION HD + TVCine EMOTION HD + TVCine TOP HD + TVEi + TVI HD + TVI Ficção HD + TVI Reality HD + TVR Internacional + W-Sport + ZAP Viva HD + Zee TV + diff --git a/sites/nostv.pt/nostv.pt.config.js b/sites/nostv.pt/nostv.pt.config.js new file mode 100644 index 00000000..0f829594 --- /dev/null +++ b/sites/nostv.pt/nostv.pt.config.js @@ -0,0 +1,60 @@ +const axios = require('axios') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') + +dayjs.extend(utc) + +const headers = { + 'X-Apikey': 'xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI', + 'X-Core-Appversion': '2.14.0.1', + 'X-Core-Contentratinglimit': '0', + 'X-Core-Deviceid': '', + 'X-Core-Devicetype': 'web', + 'Origin': 'https://nostv.pt', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' +} + +module.exports = { + site: 'nostv.pt', + days: 2, + url({ channel, date }) { + return `https://tyr-prod.apigee.net/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format('YYYY-MM-DD')}T23:59:59Z&isDateInclusive=true&client_id=${headers['X-Apikey']}` + }, + request: { headers }, + parser({ content }) { + const programs = [] + if (content) { + const items = Array.isArray(content) ? content : JSON.parse(content) + items.forEach(item => { + programs.push({ + title: item.Metadata?.Title, + sub_title: item.Metadata?.SubTitle ? item.Metadata?.SubTitle : null, + description: item.Metadata?.Description, + season: item.Metadata?.Season, + episode: item.Metadata?.Episode, + icon: item.Images ? + `https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['X-Apikey']}` : + null, + start: dayjs.utc(item.UtcDateTimeStart), + stop: dayjs.utc(item.UtcDateTimeEnd) + }) + }) + } + + return programs + }, + async channels() { + const result = await axios + .get(`https://tyr-prod.apigee.net/nostv/ott/channels/guest?client_id=${headers['X-Apikey']}`, { headers }) + .then(r => r.data) + .catch(console.error) + + return result.map(item => { + return { + lang: 'pt', + site_id: item.ServiceId, + name: item.Name + } + }) + } +} diff --git a/sites/nostv.pt/nostv.pt.test.js b/sites/nostv.pt/nostv.pt.test.js new file mode 100644 index 00000000..76259a56 --- /dev/null +++ b/sites/nostv.pt/nostv.pt.test.js @@ -0,0 +1,51 @@ +const { parser, url } = require('./nostv.pt.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('2023-12-11').startOf('d') +const channel = { + site_id: '510', + xmltv_id: 'SPlus.pt' +} + +it('can generate valid url', () => { + expect(url({ channel, date })).toBe( + 'https://tyr-prod.apigee.net/nostv/ott/schedule/range/contents/guest?channels=510&minDate=2023-12-11T00:00:00Z&maxDate=2023-12-11T23:59:59Z&isDateInclusive=true&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI' + ) +}) + +it('can parse response', () => { + const content = fs.readFileSync(path.resolve(__dirname, '__data__/data.json')) + const results = parser({ content }) + .map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(results[0]).toMatchObject({ + start: '2023-12-11T16:30:00.000Z', + stop: '2023-12-11T17:00:00.000Z', + title: 'Village Vets', + description: + 'A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.', + season: 1, + episode: 12, + icon: 'https://mage.stream.nos.pt/v1/nostv_mage/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI' + }) +}) + +it('can handle empty guide', async () => { + const results = await parser({ + date, + content: '[]' + }) + + expect(results).toMatchObject([]) +}) diff --git a/sites/nostv.pt/readme.md b/sites/nostv.pt/readme.md new file mode 100644 index 00000000..d3f21b7d --- /dev/null +++ b/sites/nostv.pt/readme.md @@ -0,0 +1,21 @@ +# nostv.pt + +https://nostv.pt/guia/ + +### Download the guide + +```sh +npm run grab -- --site=nostv.pt +``` + +### Update channel list + +```sh +npm run channels:parse -- --config=./sites/nostv.pt/nostv.pt.config.js --output=./sites/nostv.pt/nostv.pt.channels.xml +``` + +### Test + +```sh +npm test -- nostv.pt +``` From 38dd5264f275fefdf677f530dbed8898f05a5ee6 Mon Sep 17 00:00:00 2001 From: Toha Date: Tue, 12 Dec 2023 18:28:25 +0700 Subject: [PATCH 08/10] Site nostv.pt is now functional. Signed-off-by: Toha --- SITES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SITES.md b/SITES.md index fb7a10c8..0d390c78 100644 --- a/SITES.md +++ b/SITES.md @@ -92,7 +92,7 @@ | [mytvsuper.com](sites/mytvsuper.com) | 🟢 | | | [nhk.or.jp](sites/nhk.or.jp) | 🟢 | | | [nhkworldpremium.com](sites/nhkworldpremium.com) | 🟢 | | -| [nos.pt](sites/nos.pt) | 🔴 | https://github.com/iptv-org/epg/issues/2183 | +| [nostv.pt](sites/nostv.pt) | 🟢 | | | [novacyprus.com](sites/novacyprus.com) | 🟢 | | | [novasports.gr](sites/novasports.gr) | 🟢 | | | [nowplayer.now.com](sites/nowplayer.now.com) | 🔴 | https://github.com/iptv-org/epg/issues/2247 | From 688df489e47cef49fcd0ed37628f13a00f90d51c Mon Sep 17 00:00:00 2001 From: Toha Date: Wed, 13 Dec 2023 19:55:57 +0700 Subject: [PATCH 09/10] Update pickx.be (aka proximusmwc.be) guide. Signed-off-by: Toha --- sites/pickx.be/__data__/data.json | 1 + sites/pickx.be/pickx.be.config.js | 111 +++++++++ sites/pickx.be/pickx.be.test.js | 54 +++++ sites/pickx.be/pickx.be_de.channels.xml | 11 + sites/pickx.be/pickx.be_en.channels.xml | 23 ++ sites/pickx.be/pickx.be_fr.channels.xml | 196 ++++++++++++++++ sites/pickx.be/pickx.be_nl.channels.xml | 160 +++++++++++++ sites/pickx.be/readme.md | 61 +++++ .../proximusmwc.be.channels.xml | 210 ------------------ sites/proximusmwc.be/proximusmwc.be.config.js | 80 ------- sites/proximusmwc.be/proximusmwc.be.test.js | 66 ------ sites/proximusmwc.be/readme.md | 21 -- 12 files changed, 617 insertions(+), 377 deletions(-) create mode 100644 sites/pickx.be/__data__/data.json create mode 100644 sites/pickx.be/pickx.be.config.js create mode 100644 sites/pickx.be/pickx.be.test.js create mode 100644 sites/pickx.be/pickx.be_de.channels.xml create mode 100644 sites/pickx.be/pickx.be_en.channels.xml create mode 100644 sites/pickx.be/pickx.be_fr.channels.xml create mode 100644 sites/pickx.be/pickx.be_nl.channels.xml create mode 100644 sites/pickx.be/readme.md delete mode 100644 sites/proximusmwc.be/proximusmwc.be.channels.xml delete mode 100644 sites/proximusmwc.be/proximusmwc.be.config.js delete mode 100644 sites/proximusmwc.be/proximusmwc.be.test.js delete mode 100644 sites/proximusmwc.be/readme.md diff --git a/sites/pickx.be/__data__/data.json b/sites/pickx.be/__data__/data.json new file mode 100644 index 00000000..24c5e219 --- /dev/null +++ b/sites/pickx.be/__data__/data.json @@ -0,0 +1 @@ +[{"channelId":"UID0118","duration":20,"programReferenceNumber":"51632189","programScheduleStart":"2023-12-12T23:55:00.000Z","programScheduleEnd":"2023-12-13T00:15:00.000Z","onRewind":false,"scheduleTrailId":202312052657806,"fetchOnRewind":true,"category":"C.News","subCategory":"C.Magazine","program":{"actors":[],"VCHIP":"","blacklist":false,"blacklistInterval":0,"blacklistOTT":false,"blacklistOTTInterval":0,"catchupGracePeriod":0,"category":"C.News","description":"Le journal de vivre ici.","director":"","disableNPVR":false,"episodeNumber":null,"episodeTitle":"","extRatingCodes":"","facebookObjID":"","posterFileName":"250_250_4B990CC58066A7B2A660AFA0BDDE5C41.jpg","programReferenceNumber":"51632189","programType":"NE","releaseYear":null,"seasonNumber":null,"seriesGID":"","seriesID":"","subCategory":"C.Magazine","title":"Le 22h30","trueDuration":20,"supportForVisuallyImpaired":false,"supportForHearingImpaired":true,"translatedCategory":{"fr":"Info","nl":"Nieuws"},"translatedSubCategory":{"fr":"Magazine","nl":"Magazine"}}}] \ No newline at end of file diff --git a/sites/pickx.be/pickx.be.config.js b/sites/pickx.be/pickx.be.config.js new file mode 100644 index 00000000..1b61a64b --- /dev/null +++ b/sites/pickx.be/pickx.be.config.js @@ -0,0 +1,111 @@ +const axios = require('axios') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') + +dayjs.extend(utc) + +module.exports = { + site: 'pickx.be', + days: 2, + url({ channel, date }) { + return `https://px-epg.azureedge.net/airings/11702375189765v.4.2/${date.format('YYYY-MM-DD')}/channel/${channel.site_id}?timezone=Europe%2FBrussels` + }, + request: { + headers: { + Origin: 'https://www.pickx.be', + Referer: 'https://www.pickx.be/' + } + }, + parser({ channel, content }) { + const programs = [] + if (content) { + const items = JSON.parse(content) + items.forEach(item => { + programs.push({ + title: item.program.title, + sub_title: item.program.episodeTitle, + description: item.program.description, + category: item.program.translatedCategory?.[channel.lang] ? + item.program.translatedCategory[channel.lang] : item.program.category.split('.')[1], + icon: item.program.posterFileName ? + `https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/${item.program.posterFileName}` : null, + season: item.program.seasonNumber, + episode: item.program.episodeNumber, + actors: item.program.actors, + director: item.program.director ? [item.program.director] : null, + start: dayjs.utc(item.programScheduleStart), + stop: dayjs.utc(item.programScheduleEnd) + }) + }) + } + + return programs + }, + async channels({ lang = ''}) { + const query = { + operationName: 'getChannels', + variables: { + language: lang, + queryParams: {}, + 'id': '0', + params: { + shouldReadFromCache: true + } + }, + query: + `query getChannels($language: String!, $queryParams: ChannelQueryParams, $id: String, $params: ChannelParams) { + channels(language: $language, queryParams: $queryParams, id: $id, params: $params) { + id + channelReferenceNumber + name + callLetter + number + logo { + key + url + __typename + } + language + hd + radio + replayable + ottReplayable + playable + ottPlayable + recordable + subscribed + cloudRecordable + catchUpWindowInHours + isOttNPVREnabled + ottNPVRStart + subscription { + channelRef + subscribed + upselling { + upsellable + packages + __typename + } + __typename + } + packages + __typename + } + }` + } + const result = await axios + .post('https://api.proximusmwc.be/tiams/v2/graphql', query) + .then(r => r.data) + .catch(console.error) + + return result?.data?.channels + .filter(channel => !channel.radio && (!lang || channel.language === (lang === 'de' ? 'ger' : lang))) + .map(channel => { + return { + lang: channel.language === 'ger' ? 'de' : channel.language, + site_id: channel.id, + name: channel.name + } + }) || [] + } +} \ No newline at end of file diff --git a/sites/pickx.be/pickx.be.test.js b/sites/pickx.be/pickx.be.test.js new file mode 100644 index 00000000..66a4b3a6 --- /dev/null +++ b/sites/pickx.be/pickx.be.test.js @@ -0,0 +1,54 @@ +const { parser, url, request } = require('./pickx.be.config.js') +const fs = require('fs') +const path = require('path') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') + +dayjs.extend(utc) + +const date = dayjs.utc('2023-12-13').startOf('d') +const channel = { + lang: 'fr', + site_id: 'UID0118', + xmltv_id: 'Vedia.be' +} + +it('can generate valid url', () => { + expect(url({channel, date})) + .toBe('https://px-epg.azureedge.net/airings/11702375189765v.4.2/2023-12-13/channel/UID0118?timezone=Europe%2FBrussels') +}) + +it('can generate valid request headers', () => { + expect(request.headers).toMatchObject({ + Origin: 'https://www.pickx.be', + Referer: 'https://www.pickx.be/' + }) +}) + +it('can parse response', () => { + const content = fs.readFileSync(path.resolve(__dirname, '__data__/data.json')) + const result = parser({ content, channel, date }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result[0]).toMatchObject({ + start: '2023-12-12T23:55:00.000Z', + stop: '2023-12-13T00:15:00.000Z', + title: 'Le 22h30', + description: + 'Le journal de vivre ici.', + category: 'Info', + icon: 'https://experience-cache.proximustv.be/posterserver/poster/EPG/w-166_h-110/250_250_4B990CC58066A7B2A660AFA0BDDE5C41.jpg' + }) +}) + +it('can handle empty guide', () => { + const result = parser({ + date, + channel, + content: '' + }) + expect(result).toMatchObject([]) +}) diff --git a/sites/pickx.be/pickx.be_de.channels.xml b/sites/pickx.be/pickx.be_de.channels.xml new file mode 100644 index 00000000..6d7f2890 --- /dev/null +++ b/sites/pickx.be/pickx.be_de.channels.xml @@ -0,0 +1,11 @@ + + + BRF TV HD + BRF TV + Das Erste + Das Erste HD + RTL + RTL Deutschland HD + ZDF + ZDF HD + diff --git a/sites/pickx.be/pickx.be_en.channels.xml b/sites/pickx.be/pickx.be_en.channels.xml new file mode 100644 index 00000000..c7112d10 --- /dev/null +++ b/sites/pickx.be/pickx.be_en.channels.xml @@ -0,0 +1,23 @@ + + + Netflix + BBC Ent + BBC First + BBC News HD + BBC News + BBC One HD + BBC One + BBC Two HD + BBC Two + CNN HD + CNN + Euronews E HD + Euronews E + Fashion TV HD + FashionTV + Motorvision+ + Motorvision+ HD + MTV Live HD + Penthouse Gold + W Sports + diff --git a/sites/pickx.be/pickx.be_fr.channels.xml b/sites/pickx.be/pickx.be_fr.channels.xml new file mode 100644 index 00000000..627495fc --- /dev/null +++ b/sites/pickx.be/pickx.be_fr.channels.xml @@ -0,0 +1,196 @@ + + + Disney+ + Studio PXS F + RegInfo F + 13è Rue HD + 13è Rue + AB3 HD + AB3 + ABXPLO HD + ABXPLORE + Action HD + Action + Antenne Centre HD + Antenne C + Animaux HD + Animaux + arte HD + Arte + AUTOMOTO HD + AUTOMOTO + Baby TV F HD + Baby TV F + Be1 + Be Ciné + bel RTL HD + Be Séries + Boom F HD + Boomerang F + Bouké HD + Bouké + bx1 HD + bx1 + C8 + Canal J HD + Canal J + Canal Z HD + Canal Z + Canal Zoom HD + Canal Zoom + Cartoon F HD + Cartoon F + Ciné+Classic + Ciné+Frisson + Ciné+Premier + RTL club + RTL club HD + Comedy Central F + Crime District + Discovery F + Disc HD F + Disn Ch HD F + Disn Ch F + Disn Jr F HD + Disn Jr F + Dobbit TV F + Dorcel XXX HD + Dorcel XXX + E! HD F + E! F + ES1 F + ES1 F HD + ES2 F + ES2 F HD + ES3 F + ES3 F HD + Eleven Pro League 1 (FR) [HD] + Eleven Pro League 1 (FR) + Eleven Pro League 2 (FR) [HD] + Eleven Pro League 2 (FR) + Eleven Pro League 3 (FR) [HD] + Eleven Pro League 3 (FR) + Euronews F + Euronews F HD + Eurosp F + Eurosp HD F + Eurosp2 HD F + Eurosp2 F + France 2 + France 2 HD + France 3 HD + France 3 + France 4 HD + France 4 + France 5 HD + France 5 + France 24 HD + France 24 F + Game One + Gulli HD + Histoire HD + Histoire + KTO + La Trois + La Trois HD + La Une + La Une HD + LCI HD + LCI + LN24 + Mangas HD + Mangas + MaTélé + MaTélé HD + Melody.tv HD + Melody.tv + MezzoLive + MTV F + MTV Hits HD + MTV Hits + Museum TV + MyZen.tv + NGC F + NGC HD F + NGC Wild F + nick F + nick jr F + No Télé HD + No Télé + Paramount Channel + PickxLive F HD + PickxLive F HD + PickxLive F + PickxLive F + Pickx+ F + Pickx+ F HD + Pickx+ F HD + Pickx+ F HD + Pickx+ Sports 1 F HD + Pickx+ Sports 1 F HD + Pickx+ Sports 1 F + Pickx+ Sports 2 F + Pickx+ Sports 2 F HD + Pickx+ Sports 3 F + Pickx+ Sports 3 F HD + Pickx+ Sports 4 F + Pickx+ Sports 4 F HD + Pickx+ Sports 5 F + Pickx+ Sports 5 F HD + Pickx+ Sports 6 F + Pickx+ Sports 6 F HD + Pickx+ Sports 7 F + Pickx+ Sports 7 F HD + Pickx+ Sports 8 F HD + Pickx+ Sports 8 F + Pickx+ Sports 9 F HD + Pickx+ Sports 9 F + Pickx+ Sports 10 F HD + Pickx+ Sports 10 F + Pink HD + Pink + RTL plug HD + RTL plug + ContactV + RFM TV HD + RFM TV + RTC Liège HD + RTC Liège + RTL tvi HD + RTL tvi + Sc et Vie TV HD + Sc et Vie TV + SyFy HD F + SyFy F + TCM Cinéma HD + TCM cinéma + Télé MB HD + Télé MB + Télé Sambre + Télé Sambre HD + TF1 + TF1 HD + TF1 Séries Films + Tiji HD + Tiji + TIPIK HD + TIPIK + TIPIK vision + TMC HD + Trace HD + TraceUrban + TREK HD + TREK + TV5 Monde HD + TV5 Monde + TV Breizh HD + TV Breizh + TV Com + TV Com HD + TV Lux + TV Lux HD + Ushuaïa + Ushuaïa HD + Vedia + Védia HD + diff --git a/sites/pickx.be/pickx.be_nl.channels.xml b/sites/pickx.be/pickx.be_nl.channels.xml new file mode 100644 index 00000000..50dae1fe --- /dev/null +++ b/sites/pickx.be/pickx.be_nl.channels.xml @@ -0,0 +1,160 @@ + + + WTV HD + Studio PXS N + WTV + RegInfo N + Animal Pl HD + Animal Pl + ATV HD + ATV + AVS HD + AVS Gent + Baby TV N HD + Baby TV N + BRUZZ HD + BRUZZ + VRT Canvas + VRT Canvas HD + Cartoonito HD + Cartoonito + Cartoon N HD + Cartoon N + Comedy Central N HD + Comedy Central N + Discovery N + Disc HD N + Disc Sc HD + Disc Science + Disn Ch HD N + Disn Ch N + DisnJr N + Dobbit TV N + Dobbit N HD + Dusk + Eclips + VRT 1 + VRT 1 HD + E! HD N + E! N + ES1 N + ES1 N HD + ES2 N + ES2 N HD + ES3 N + ES3 N HD + Eleven Pro League 1 (NL) [HD] + Eleven Pro League 1 (NL) + Eleven Pro League 2 (NL) [HD] + Eleven Pro League 2 (NL) + Eleven Pro League 3 (NL) [HD] + Eleven Pro League 3 (NL) + Eurosp N + Eurosp HD N + Eurosp2 HD N + Eurosp2 N + Focus TV HD + Focus TV + STAR Channel HD + History HD + History + INPLUS + Inv Disc HD + Inv Disc + Kanaal Z HD + Kanaal Z + Ketnet HD + Ketnet + Ment TV HD + Ment TV + MTV 80s + MTV N HD + MTV N + NGC HD N + NGC N + NGC Wild N + nick N HD + nick N + nick jr N + nick Toons + Njam! HD + Njam! + NPO 1 HD + NPO 1 + NPO 2 HD + NPO 2 + NPO 3 HD + NPO 3 + OUT tv + Passie XXX HD + Passie XXX + PickxLive N HD + PickxLive N HD + PickxLive N + PickxLive N + Pickx+ N + Pickx+ N HD + Pickx+ N HD + Pickx+ N HD + Pickx+ Sports 1 N + Pickx+ Sports 1 N HD + Pickx+ Sports 1 N HD + Pickx+ Sports 2 N + Pickx+ Sports 2 N HD + Pickx+ Sports 3 N + Pickx+ Sports 3 N HD + Pickx+ Sports 4 N + Pickx+ Sports 4 N HD + Pickx+ Sports 5 N + Pickx+ Sports 5 N HD + Pickx+ Sports 6 N + Pickx+ Sports 6 N HD + Pickx+ Sports 7 N + Pickx+ Sports 7 N HD + Pickx+ Sports 8 N HD + Pickx+ Sports 8 N + Pickx+ Sports 9 N HD + Pickx+ Sports 9 N + Pickx+ Sports 10 N HD + Pickx+ Sports 10 N + Plattelands + Play4 HD + Play4 + Play5 HD + Play5 + Play6 + Play6 HD + Play7 HD + Q-Music Kijk Live + Ring TV HD + Ring TV + ROBTV HD + ROB TV + RTV Kempen HD + RTV Kempen O + RTV Mech HD + RTV Mech + Sport 10 + Sport 10 HD + Classica + StuBru + ST100TV HD N + ST100TV N + TLC + TV Limburg HD + TVLimbC + TV Oost HD + TV Oost + Vlaamsparlement.tv + VTM 2 HD + VTM 2 + VTM 3 HD + VTM 3 + VTM 4 HD + VTM 4 + VTM + VTM HD + VTM Gold + VTM NON-STOP DOKTERS HD + VTM NON-STOP DOKTERS + diff --git a/sites/pickx.be/readme.md b/sites/pickx.be/readme.md new file mode 100644 index 00000000..9c9077ef --- /dev/null +++ b/sites/pickx.be/readme.md @@ -0,0 +1,61 @@ +# pickx.be + +https://www.pickx.be/fr/television/programme-tv + +### Download the guide + +Dutch: + +```sh +npm run grab -- --site=pickx.be --lang=nl +``` + +English: + +```sh +npm run grab -- --site=pickx.be --lang=en +``` + +French: + +```sh +npm run grab -- --site=pickx.be --lang=fr +``` + +German: + +```sh +npm run grab -- --site=pickx.be --lang=de +``` + +### Update channel list + +Dutch: + +```sh +npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_nl.channels.xml --set=lang:nl +``` + +English: + +```sh +npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_en.channels.xml --set=lang:en +``` + +French: + +```sh +npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_fr.channels.xml --set=lang:fr +``` + +German: + +```sh +npm run channels:parse -- --config=./sites/pickx.be/pickx.be.config.js --output=./sites/pickx.be/pickx.be_de.channels.xml --set=lang:de +``` + +### Test + +```sh +npm test -- pickx.be +``` diff --git a/sites/proximusmwc.be/proximusmwc.be.channels.xml b/sites/proximusmwc.be/proximusmwc.be.channels.xml deleted file mode 100644 index 905a9c45..00000000 --- a/sites/proximusmwc.be/proximusmwc.be.channels.xml +++ /dev/null @@ -1,210 +0,0 @@ - - - BRF TV HD - Das Erste - RTL - ZDF - BBC Ent - BBC First - BBC One - BBC Two - BBC World - CNN - eSportsONE - Euronews E - Extreme - FashionTV - MVTV - MTV Live HD - Penthouse Gold - TVE Int - 13è Rue HD - 2M Monde - AB3 - ABXPLO HD - Action - Antenne Centre HD - Al Aoula - Al Jazeera - Animaux - Arte - AUTOMOTO - Be1 - Be Ciné - Bel RTL - Be Séries - Boomerang F - Bouké HD - bx1 - C8 - Canal J - Canal Zoom - Cartoon F - Ciné+Classic - Ciné+Frisson - Ciné+Premier - ClubRTL - Comedy Central F - Crime District - Discovery F - Disn Ch HD F - Disn Jr F - Dobbit TV F - Dorcel XXX - E! F - Euronews F - Eurosp F - Eurosp2 F - France 2 - France 24 F - France 3 - France 4 - France 5 - Game One - Gulli HD - Histoire - KTO - La Trois - La Une - LCI - LN24 - Maghreb TV - Mangas - MaTélé - Melody.tv - MezzoLive - MTV F - MTV Hits - Museum TV - MyZen.tv - NGC F - NGC Wild F - nick F - nick jr F - No Télé HD - Paramount Channel - PickxLive F HD - Pickx+ F - Pickx+ Sports 10 F HD - Pickx+ Sports 1 F - Pickx+ Sports 3 F - Pickx+ Sports 4 F - Pickx+ Sports 5 F - Pickx+ Sports 6 F - Pickx+ Sports 7 F - Pickx+ Sports 8 F HD - Pickx+ Sports 9 F HD - Pink - PlugRTL - ContactV - RFM TV - RTC Liège HD - RTL-TVI - Sc et Vie TV - ST100TV F - SyFy F - TCM cinéma - Télé MB HD - Télé Sambre - TF1 - Tiji - TIPIK - TIPIK vision - TMC HD - TraceUrban - TREK - TV5 Monde - TV Breizh - TV Com - TV Lux - Ushuaïa - Vedia - Mediaset - RAI Uno - RAI Due - RAI Tre - Animal Pl - ATV - AVS HD - AVS Gent - Baby TV N - Boomerang N - BRUZZ HD - Canvas - Cartoon N - Comedy Central N - Discovery N - Disc Science - Disn Ch N - DisnJr N - Dobbit TV N - Dusk - Eclips - één - E! N - ES1 N - ES2 N - ES3 N - Eleven Pro League 1 (NL) - Eleven Pro League 2 (NL) - Eleven Pro League 3 (NL) - Eurosp N - Eurosp2 N - Focus TV HD - FOX - History - Insight TV - Inv Disc - Kanaal Z - Ketnet - Ment TV - MTV 80s - MTV N - NGC N - NGC Wild N - nick N - nick jr N - nick Toons - Njam! HD - NPO 1 - NPO 2 - NPO 3 - OUT tv - Passie XXX - Pebble TV - PickxLive N HD - Pickx+ N - Pickx+ Sports 10 N - Pickx+ Sports 1 N - Pickx+ Sports 2 N - Pickx+ Sports 3 N - Pickx+ Sports 4 N - Pickx+ Sports 5 N - Pickx+ Sports 6 N - Pickx+ Sports 7 N - Pickx+ Sports 8 N - Pickx+ Sports 9 N - Plattelands - Play4 - Play5 - Play6 - Play7 HD - Ring TV HD - ROB TV - RTV Kempen HD - RTV Mech HD - Sport 10 - Classica - ST100 Hits - ST100TV N - TLC - TVLimbC - TV Oost - Vlaamsparlement.tv - VTM - VTM 2 - VTM 3 - VTM 4 - VTM Gold - VTM Kids - diff --git a/sites/proximusmwc.be/proximusmwc.be.config.js b/sites/proximusmwc.be/proximusmwc.be.config.js deleted file mode 100644 index c07899ff..00000000 --- a/sites/proximusmwc.be/proximusmwc.be.config.js +++ /dev/null @@ -1,80 +0,0 @@ -const axios = require('axios') -const dayjs = require('dayjs') - -module.exports = { - site: 'proximusmwc.be', - days: 2, - url: 'https://api.proximusmwc.be/v2/graphql', - request: { - headers: { - 'Content-Type': 'application/json' - }, - data({ channel, date }) { - return { - query: - 'query ($language: String!, $startTime: Int!, $endTime: Int!, $options: SchedulesByIntervalOptions) { schedulesByInterval(language: $language, startTime: $startTime, endTime: $endTime, options: $options) { trailId programReferenceNumber channelId title category startTime endTime image { key url __typename } parentalRating detailUrl grouped description shortDescription category categoryId subCategory links { episodeNumber id seasonId seasonName seriesId seriesTitle title type __typename } seriesId __typename }}', - variables: { - startTime: date.unix(), - endTime: date.add(1, 'd').unix(), - language: 'fr', - options: { channelIds: [channel.site_id] } - } - } - } - }, - parser: function ({ content }) { - const programs = [] - const items = parseItems(content) - items.forEach(item => { - programs.push({ - title: item.title, - description: item.description, - icon: parseIcon(item), - category: parseCategory(item), - start: dayjs.unix(item.startTime), - stop: dayjs.unix(item.endTime) - }) - }) - - return programs - }, - async channels() { - const query = { - operationName: 'getPlayableChannels', - variables: { language: 'fr', id: '0' }, - query: - 'query getPlayableChannels($language: String!, $queryParams: ChannelQueryParams, $id: String) { playableChannels(language: $language, queryParams: $queryParams, id: $id) { id name language radio }}' - } - const data = await axios - .post('https://api.proximusmwc.be/v2/graphql', query) - .then(r => r.data) - .catch(console.log) - - const channels = [] - for (let item of data.data.playableChannels) { - if (item.radio) continue - channels.push({ - lang: item.language, - site_id: item.id, - name: item.name - }) - } - - return channels - } -} - -function parseCategory(item) { - return item.category ? item.category.replace(/^C\./, '') : null -} - -function parseIcon(item) { - return item.image[0] ? item.image[0].url : null -} - -function parseItems(content) { - const data = JSON.parse(content) - if (!data || !data.data || !Array.isArray(data.data.schedulesByInterval)) return [] - - return data.data.schedulesByInterval -} diff --git a/sites/proximusmwc.be/proximusmwc.be.test.js b/sites/proximusmwc.be/proximusmwc.be.test.js deleted file mode 100644 index c692bb33..00000000 --- a/sites/proximusmwc.be/proximusmwc.be.test.js +++ /dev/null @@ -1,66 +0,0 @@ -const { parser, url, request } = require('./proximusmwc.be.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('2022-03-04', 'YYYY-MM-DD').startOf('d') -const channel = { - site_id: 'UID0024', - xmltv_id: 'DasErste.de' -} - -it('can generate valid url', () => { - expect(url).toBe('https://api.proximusmwc.be/v2/graphql') -}) - -it('can generate valid request headers', () => { - expect(request.headers).toMatchObject({ - 'Content-Type': 'application/json' - }) -}) - -it('can generate valid request data', () => { - expect(request.data({ channel, date })).toMatchObject({ - query: - 'query ($language: String!, $startTime: Int!, $endTime: Int!, $options: SchedulesByIntervalOptions) { schedulesByInterval(language: $language, startTime: $startTime, endTime: $endTime, options: $options) { trailId programReferenceNumber channelId title category startTime endTime image { key url __typename } parentalRating detailUrl grouped description shortDescription category categoryId subCategory links { episodeNumber id seasonId seasonName seriesId seriesTitle title type __typename } seriesId __typename }}', - variables: { - endTime: 1646438400, - language: 'fr', - options: { channelIds: ['UID0024'] }, - startTime: 1646352000 - } - }) -}) - -it('can parse response', () => { - const content = - '{"data":{"schedulesByInterval":[{"trailId":"UID0024_202202225537","programReferenceNumber":"107504040014","channelId":"UID0024","title":"Der Bozen-Krimi","category":"C.Magazine","startTime":1646350800,"endTime":1646356200,"description":"Chiara Schoras alias \\"Capo\\" Sonja Schwarz muss im 14. Bozen-Krimi nicht nur einen widersprüchlichen Mordfall aufklären, sondern auch ein Geheimnis ans Licht bringen, das zwei Familien auf schmerzhafte Weise untrennbar verbindet.","image":[{"key":"source","url":"https://experience-cache.proximustv.be:443/posterserver/poster/EPG/250_250_BF6BF77FC28F72FA23EAEA6CAAE98B60.jpg","__typename":"Image"},{"key":"custom","url":"https://experience-cache.proximustv.be:443/posterserver/poster/EPG/w-%width%_h-%height%/250_250_BF6BF77FC28F72FA23EAEA6CAAE98B60.jpg","__typename":"Image"}]}]}}' - const result = parser({ content, channel, date }).map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(result).toMatchObject([ - { - start: '2022-03-03T23:40:00.000Z', - stop: '2022-03-04T01:10:00.000Z', - title: 'Der Bozen-Krimi', - description: - 'Chiara Schoras alias "Capo" Sonja Schwarz muss im 14. Bozen-Krimi nicht nur einen widersprüchlichen Mordfall aufklären, sondern auch ein Geheimnis ans Licht bringen, das zwei Familien auf schmerzhafte Weise untrennbar verbindet.', - category: 'Magazine', - icon: 'https://experience-cache.proximustv.be:443/posterserver/poster/EPG/250_250_BF6BF77FC28F72FA23EAEA6CAAE98B60.jpg' - } - ]) -}) - -it('can handle empty guide', () => { - const result = parser({ - date, - channel, - content: '{"data":{"schedulesByInterval":[]}}' - }) - expect(result).toMatchObject([]) -}) diff --git a/sites/proximusmwc.be/readme.md b/sites/proximusmwc.be/readme.md deleted file mode 100644 index 4fb66f5c..00000000 --- a/sites/proximusmwc.be/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# proximusmwc.be - -http://proximusmwc.be/ - -### Download the guide - -```sh -npm run grab -- --site=proximusmwc.be -``` - -### Update channel list - -```sh -npm run channels:parse -- --config=./sites/proximusmwc.be/proximusmwc.be.config.js --output=./sites/proximusmwc.be/proximusmwc.be.channels.xml -``` - -### Test - -```sh -npm test -- proximusmwc.be -``` From 2f2a4fcd92cef99a2d2c15a6d433f152272e88ba Mon Sep 17 00:00:00 2001 From: Toha Date: Wed, 13 Dec 2023 19:59:31 +0700 Subject: [PATCH 10/10] Site pickx.be now functional. Signed-off-by: Toha --- SITES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SITES.md b/SITES.md index fb7a10c8..1625f682 100644 --- a/SITES.md +++ b/SITES.md @@ -101,6 +101,7 @@ | [ontvtonight.com](sites/ontvtonight.com) | 🟢 | | | [osn.com](sites/osn.com) | 🟢 | | | [pbsguam.org](sites/pbsguam.org) | 🟢 | | +| [pickx.be](sites/pickx.be) | 🟢 | | | [playtv.unifi.com.my](sites/playtv.unifi.com.my) | 🟢 | | | [plex.tv](sites/plex.tv) | 🟢 | | | [programacion-tv.elpais.com](sites/programacion-tv.elpais.com) | 🟢 | | @@ -110,7 +111,6 @@ | [programme-tv.vini.pf](sites/programme-tv.vini.pf) | 🟢 | | | [programme.tvb.com](sites/programme.tvb.com) | 🔴 | https://github.com/iptv-org/epg/issues/2254 | | [programtv.onet.pl](sites/programtv.onet.pl) | 🟢 | | -| [proximusmwc.be](sites/proximusmwc.be) | 🔴 | https://github.com/iptv-org/epg/issues/2212 | | [raiplay.it](sites/raiplay.it) | 🟢 | | | [reportv.com.ar](sites/reportv.com.ar) | 🟢 | | | [rev.bs](sites/rev.bs) | 🔴 | https://github.com/iptv-org/epg/issues/2255 |