From 4c706f49a45cbb892bba2677c3b1f382f81aaec2 Mon Sep 17 00:00:00 2001 From: Toha Date: Wed, 4 Dec 2024 20:56:00 +0700 Subject: [PATCH] Update starhubtvplus.com guide. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test: ```sh npm test -- starhubtvplus.com > test > run-script-os starhubtvplus.com > test:win32 > SET "TZ=Pacific/Nauru" && npx jest --runInBand starhubtvplus.com PASS sites/starhubtvplus.com/starhubtvplus.com.test.js √ can generate valid url (3 ms) √ can parse response (3 ms) √ can handle empty guide (1 ms) Test Suites: 1 passed, 1 total Tests: 3 passed, 3 total Snapshots: 0 total Time: 4.337 s Ran all test suites matching /starhubtvplus.com/i. ``` Grab: ```sh npm run grab -- --site=starhubtvplus.com --lang=en > grab > npx tsx scripts/commands/epg/grab.ts --site=starhubtvplus.com --lang=en starting... config: output: guide.xml maxConnections: 1 gzip: false site: starhubtvplus.com lang: en loading channels... found 116 channel(s) run #1: [1/232] starhubtvplus.com (en) - 7c0ee1eb-5f74-4f5a-a338-69eb125badb4 - Dec 4, 2024 (26 programs) [2/232] starhubtvplus.com (en) - 7c0ee1eb-5f74-4f5a-a338-69eb125badb4 - Dec 5, 2024 (26 programs) ... [231/232] starhubtvplus.com (en) - 210ba103-0d19-4b26-bb9f-36d531d7471f - Dec 5, 2024 (39 programs) [232/232] starhubtvplus.com (en) - 210ba103-0d19-4b26-bb9f-36d531d7471f - Dec 4, 2024 (39 programs) saving to "guide.xml"... done in 00h 00m 22s ``` Signed-off-by: Toha --- sites/starhubtvplus.com/__data__/content.json | 1 + sites/starhubtvplus.com/readme.md | 20 ++- .../starhubtvplus.com.channels.xml | 136 ---------------- .../starhubtvplus.com.config.js | 152 +++++++++--------- .../starhubtvplus.com.test.js | 54 +++---- .../starhubtvplus.com_en.channels.xml | 119 ++++++++++++++ .../starhubtvplus.com_zh.channels.xml | 119 ++++++++++++++ 7 files changed, 359 insertions(+), 242 deletions(-) create mode 100644 sites/starhubtvplus.com/__data__/content.json delete mode 100644 sites/starhubtvplus.com/starhubtvplus.com.channels.xml create mode 100644 sites/starhubtvplus.com/starhubtvplus.com_en.channels.xml create mode 100644 sites/starhubtvplus.com/starhubtvplus.com_zh.channels.xml diff --git a/sites/starhubtvplus.com/__data__/content.json b/sites/starhubtvplus.com/__data__/content.json new file mode 100644 index 00000000..39a25bb8 --- /dev/null +++ b/sites/starhubtvplus.com/__data__/content.json @@ -0,0 +1 @@ +{"build":{"version":"3.1.14-dev132","start":"2024-12-04 09:29:09.289","end":"2024-12-04 09:29:09.314","duration":"25.679016ms","mode":"Release"},"page":{"current":1,"total":1,"items_count":30,"total_items_count":30},"resources":[{"metatype":"Schedule","primary":4597488,"id":"24bb8098-c8a4-464e-bd4f-1ad3f3f6c5e0","platform_id":"GLOBAL_TC0038319955","dataset":"nagra","device":2,"source_id":"GLOBAL_TC0038319955","start":1733246700,"end":1733250000,"runtime":3300,"channel_id":"d258444e-b66b-4cbe-88db-e09f31ab8a1f","channel_platform_id":"GLOBAL_355","ranking":null,"monthly_ranking":null,"weekly_ranking":null,"daily_ranking":null,"rights":{"record":{"capable":true,"type":0,"expiry":0,"forbidden_trickmode":0},"timeshift":{"start_over":false,"watch_again":false,"expiry":0,"forbidden_trickmode":0},"blackout":{"enable":false,"network":"","marketcode":"","message":""}},"rating":"PG13","episode_number":15,"title":"Northern Rexposure","subtitle":"","description":"When Jesse's sister contacts him for help, he, Sarah and Rex head to Northern Ontario and find themselves in the middle of a deadly situation.","short_description":"","serie_title":"Hudson & Rex (Season 5)","casts":[],"producers":[],"directors":[],"ppv":false,"purchasable":false,"definition":"SD","schedule_type":"rerun","content_type":100,"pictures":[{"primary":41731580,"type":5,"url":"https://poster.starhubgo.com/poster/ch511_hudson_rex5.jpg?w=960&h=540"},{"primary":41731593,"type":4,"url":"https://poster.starhubgo.com/poster/ch511_hudson_rex5.jpg?w=341&h=192"}],"locale":"en_US","genres":["Drama"],"revision":1731934823,"support_multicam":false,"schedule_internal_type":0}]} \ No newline at end of file diff --git a/sites/starhubtvplus.com/readme.md b/sites/starhubtvplus.com/readme.md index 9244c524..d03792ed 100644 --- a/sites/starhubtvplus.com/readme.md +++ b/sites/starhubtvplus.com/readme.md @@ -4,14 +4,30 @@ https://www.starhubtvplus.com/ ### Download the guide +English: + ```sh -npm run grab -- --site=starhubtvplus.com +npm run grab -- --site=starhubtvplus.com --lang=en +``` + +Chinese: + +```sh +npm run grab -- --site=starhubtvplus.com --lang=zh ``` ### Update channel list +English: + ```sh -npm run channels:parse -- --config=sites/starhubtvplus.com/starhubtvplus.com.config.js --output=sites/starhubtvplus.com/starhubtvplus.com.channels.xml +npm run channels:parse -- --config=sites/starhubtvplus.com/starhubtvplus.com.config.js --output=sites/starhubtvplus.com/starhubtvplus.com_en.channels.xml --set=lang:en +``` + +Chinese: + +```sh +npm run channels:parse -- --config=sites/starhubtvplus.com/starhubtvplus.com.config.js --output=sites/starhubtvplus.com/starhubtvplus.com_zh.channels.xml --set=lang:zh ``` ### Test diff --git a/sites/starhubtvplus.com/starhubtvplus.com.channels.xml b/sites/starhubtvplus.com/starhubtvplus.com.channels.xml deleted file mode 100644 index a0a7b03a..00000000 --- a/sites/starhubtvplus.com/starhubtvplus.com.channels.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - SONY MAX - Vijay TV - Hub Sports 5 HD - MOLA Sports - MOLA Golf - FIGHT SPORTS HD - HGTV - Bloomberg Quicktake - France24 - ETTV ASIA HD - ONE HD - Hub E City HD - TestChannel921 - TestChannel922 - TestChannel923 - TestChannel924 - Test channel 988 - Test channel 989 - TestChannel 993 - TestChannel1 - TestChannel995 - TestChannel996 - TestChannel2 - Channel_Test - ABC Australia - ADITHYA TV - ANC - Animax HD - Arirang TV - Asianet - Asianet Movies - Hub Sensasi HD - Astro Warna - AXN HD - BBC Earth HD - BBC Lifestyle HD - BBC World News HD - beIN SPORTS 2 HD - beIN Sports 3 - beIN Sports 4 HD - beIN Sports 5 HD - beIN SPORTS HD - Bloomberg Television HD - Boomerang HD - Cartoon Network - Cbeebies HD - CCM - CCTV-4 - Celestial Movies HD - CGTN - Channel 5 HD - Channel 8 HD - Channel U HD - Cinema One Global - Cinemax HD - Citra Entertainment - Channel NewsAsia HD - CNBC HD - CNN HD - COLORS - COLORS Tamil HD - Crime + Investigation HD - CTI TV HD - Discovery Channel HD - Dragon TV - DreamWorks Channel HD - DW (Deutsch) - Euronews HD - FashionTV HD - Fox News Channel HD - GEM HD - HBO HD - HBO Family HD - HBO Hits HD - HBO Signature HD - HISTORY HD - Hits HD - HITS MOVIES HD - Hub E City HD - HubPremier 1 - Hub Premier 2 (HD) - Hub Premier 3 - Hub Premier 4 - Hub Premier 5 - Hub Premier 6 - Hub Premier 7 - Hub Premier 8 - Hub Premier 9 - Hub Premier 10 - Hub Premier 11 - Hub Sports 1 HD - Hub Sports 2 HD - Hub Sports 3 HD - Hub Sports 4 HD - Hub VVDrama HD - TVB Jade HD - Kalaignar TV - Karisma - KBS World HD - KTV HD - Lifetime HD - NHK WORLD - JAPAN - NHK World Premium HD - Nickelodeon HD - Nick Jr HD - ONE (Malay) - Paramount Network - Phoenix Chinese Channel HD - Phoenix InfoNews Channel HD - Premier Sports TV - Preview Channel - Blue Ant Entertainment HD - SEA Today - Sky News HD - Sony Entertainment Television - SPOTV2 - SPOTV - Sun Music - Sun TV - Suria HD - The Filipino Channel - Travelxp HD - TV5MONDE HD - TVBS Asia - TVBS-NEWS - TVB Xing He HD - tvN HD - Vannathirai - Vasantham HD - Zee Cinema - Zee Tamil HD - Zee Thirai - Zee TV - diff --git a/sites/starhubtvplus.com/starhubtvplus.com.config.js b/sites/starhubtvplus.com/starhubtvplus.com.config.js index 7e029bc0..c93af434 100644 --- a/sites/starhubtvplus.com/starhubtvplus.com.config.js +++ b/sites/starhubtvplus.com/starhubtvplus.com.config.js @@ -1,86 +1,92 @@ const axios = require('axios') const dayjs = require('dayjs') -const APP_KEY = '5ee2ef931de1c4001b2e7fa3_5ee2ec25a0e845001c1783dc' -const SESSION_KEY = '01G2QG0N3RWDNCBA1S5MK1MD2K17CE4431A2' +const languages = { en: 'en_US', zh: 'zh' } module.exports = { site: 'starhubtvplus.com', days: 2, - request: { - headers: { - 'x-application-key': APP_KEY, - 'x-application-session': SESSION_KEY - }, - cache: { - ttl: 60 * 60 * 1000 // 1h - } + url({ date, channel }) { + return `https://waf-starhub-metadata-api-p001.ifs.vubiquity.com/v3.1/epg/schedules?locale=${ + languages[channel.lang] + }&locale_default=${ + languages[channel.lang] + }&device=1&in_channel_id=${ + channel.site_id + }>_end=${ + date.unix() + }<_start=${ + date.add(1, 'd').unix() + }&limit=100&page=1` }, - url: function ({ date }) { - const variables = JSON.stringify({ - category: '', - dateFrom: date.format('YYYY-MM-DD'), - dateTo: date.add(1, 'd').format('YYYY-MM-DD') - }) - const query = - 'query webFilteredEpg($category: String, $dateFrom: DateWithoutTime, $dateTo: DateWithoutTime!) { nagraEpg(category: $category) { items { id: tvChannel image name: longName programs: programsByDate(dateFrom: $dateFrom, dateTo: $dateTo) { id title description Categories startTime endTime }}}}' - - const params = `operationName=webFilteredEpg&variables=${encodeURIComponent( - variables - )}&query=${encodeURIComponent(query)}` - - return `https://api.starhubtvplus.com/epg?${params}` - }, - parser: function ({ content, channel }) { - let programs = [] - const items = parseItems(content, channel) - items.forEach(item => { - programs.push({ - title: item.title, - description: item.description, - category: item.Categories, - start: parseStart(item), - stop: parseStop(item) - }) - }) - - return programs - }, - async channels() { - const items = await axios - .get( - 'https://api.starhubtvplus.com/epg?operationName=webFilteredEpg&variables=%7B%22category%22%3A%22%22,%22dateFrom%22%3A%222022-05-10%22,%22dateTo%22%3A%222022-05-11%22%7D&query=query%20webFilteredEpg(%24category%3A%20String)%20%7B%20nagraEpg(category%3A%20%24category)%20%7B%20items%20%7B%20id%3A%20tvChannel%20image%20name%3A%20longName%20%7D%7D%7D', - { - headers: { - 'x-application-key': APP_KEY, - 'x-application-session': SESSION_KEY - } + async parser({ content, date, channel }) { + const programs = [] + if (content) { + let res = JSON.parse(content) + while (res) { + if (res.resources) { + programs.push(...res.resources) } - ) - .then(r => r.data.data.nagraEpg.items) - .catch(console.log) + if (res.page && res.page.current < res.page.total) { + res = await axios + .get(module.exports.url({ date, channel }).replace(/page=(\d+)/, `page=${res.page.current + 1}`)) + .then(r => r.data) + .catch(console.error) + } else { + res = null + } + } + } + const season = s => { + if (s) { + const [ , , n ] = s.match(/(S|Season )(\d+)/) || [null, null, null] + if (n) { + return parseInt(n) + } + } + } - return items.map(item => ({ - lang: 'en', - site_id: item.id, - name: item.name.replace('_DASH', '') + return programs.map(item => { + return { + title: item.title, + subTitle: item.serie_title, + description: item.description, + category: item.genres, + image: item.pictures?.map(img => img.url), + season: season(item.serie_title), + episode: item.episode_number, + rating: item.rating, + start: dayjs(item.start * 1000), + stop: dayjs(item.end * 1000) + } + }) + }, + async channels({ lang = 'en' }) { + const resources = [] + let page = 1 + while (true) { + const items = await axios + .get(`https://waf-starhub-metadata-api-p001.ifs.vubiquity.com/v3.1/epg/channels?locale=${ + languages[lang] + }&locale_default=${ + languages[lang] + }&device=1&limit=50&page=${page}`) + .then(r => r.data) + .catch(console.error) + if (items.resources) { + resources.push(...items.resources) + } + if (items.page && page < items.page.total) { + page++ + } else { + break + } + } + + return resources.map(ch => ({ + lang, + site_id: ch.id, + name: ch.title })) } } - -function parseStart(item) { - return dayjs(item.startTime) -} - -function parseStop(item) { - return dayjs(item.endTime) -} - -function parseItems(content, channel) { - const data = JSON.parse(content) - if (!data || !data.data || !data.data.nagraEpg || !Array.isArray(data.data.nagraEpg.items)) - return [] - const ch = data.data.nagraEpg.items.find(ch => ch.id == channel.site_id) - - return ch && Array.isArray(ch.programs) ? ch.programs : [] -} diff --git a/sites/starhubtvplus.com/starhubtvplus.com.test.js b/sites/starhubtvplus.com/starhubtvplus.com.test.js index 89312648..71561072 100644 --- a/sites/starhubtvplus.com/starhubtvplus.com.test.js +++ b/sites/starhubtvplus.com/starhubtvplus.com.test.js @@ -2,38 +2,28 @@ const { parser, url, request } = require('./starhubtvplus.com.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-05-10', 'YYYY-MM-DD').startOf('d') +const date = dayjs.utc('2024-12-04', 'YYYY-MM-DD').startOf('d') const channel = { - site_id: '102', - xmltv_id: 'Channel5.sg' + lang: 'en', + site_id: 'd258444e-b66b-4cbe-88db-e09f31ab8a1f', + xmltv_id: 'AXN.sg' } it('can generate valid url', () => { expect(url({ channel, date })).toBe( - 'https://api.starhubtvplus.com/epg?operationName=webFilteredEpg&variables=%7B%22category%22%3A%22%22%2C%22dateFrom%22%3A%222022-05-10%22%2C%22dateTo%22%3A%222022-05-11%22%7D&query=query%20webFilteredEpg(%24category%3A%20String%2C%20%24dateFrom%3A%20DateWithoutTime%2C%20%24dateTo%3A%20DateWithoutTime!)%20%7B%20nagraEpg(category%3A%20%24category)%20%7B%20items%20%7B%20id%3A%20tvChannel%20image%20name%3A%20longName%20programs%3A%20programsByDate(dateFrom%3A%20%24dateFrom%2C%20dateTo%3A%20%24dateTo)%20%7B%20id%20title%20description%20Categories%20startTime%20endTime%20%7D%7D%7D%7D' + 'https://waf-starhub-metadata-api-p001.ifs.vubiquity.com/v3.1/epg/schedules?locale=en_US&locale_default=en_US&device=1&in_channel_id=d258444e-b66b-4cbe-88db-e09f31ab8a1f>_end=1733270400<_start=1733356800&limit=100&page=1' ) }) -it('can generate valid request headers', () => { - expect(request.headers).toMatchObject({ - 'x-application-key': '5ee2ef931de1c4001b2e7fa3_5ee2ec25a0e845001c1783dc', - 'x-application-session': '01G2QG0N3RWDNCBA1S5MK1MD2K17CE4431A2' - }) -}) - -it('can generate valid cache settings', () => { - expect(request.cache).toMatchObject({ - ttl: 60 * 60 * 1000 - }) -}) - -it('can parse response', () => { - const content = - '{"data":{"nagraEpg":{"items":[{"id":102,"name":"Channel 5 HD_DASH","programs":[{"id":"GLOBAL_TC0021650123","title":"Luke Nguyen\'s Vietnam","description":"Luke leaves the hustle and bustle of Hanoi behind for the mystical mountains of Sapa. There, he prepares some black chicken in and amongst the local streets. He cooks buffalo for a salad in the busy Sapa markets, as well as a tofu-and-tomato dish high up in the rice paddy fields with the most spectacular backdrop.","Categories":["Others"],"startTime":1652110200000,"endTime":1652112000000}]}]}}}' - const result = parser({ content, channel }).map(p => { +it('can parse response', async () => { + const fs = require('fs') + const path = require('path') + const content = fs.readFileSync(path.join(__dirname, '__data__', 'content.json')) + const result = (await parser({ content, date, channel })).map(p => { p.start = p.start.toJSON() p.stop = p.stop.toJSON() return p @@ -41,20 +31,22 @@ it('can parse response', () => { expect(result).toMatchObject([ { - start: '2022-05-09T15:30:00.000Z', - stop: '2022-05-09T16:00:00.000Z', - title: "Luke Nguyen's Vietnam", + start: '2024-12-03T17:25:00.000Z', + stop: '2024-12-03T18:20:00.000Z', + title: 'Northern Rexposure', + subTitle: 'Hudson & Rex (Season 5)', description: - 'Luke leaves the hustle and bustle of Hanoi behind for the mystical mountains of Sapa. There, he prepares some black chicken in and amongst the local streets. He cooks buffalo for a salad in the busy Sapa markets, as well as a tofu-and-tomato dish high up in the rice paddy fields with the most spectacular backdrop.', - category: ['Others'] + 'When Jesse\'s sister contacts him for help, he, Sarah and Rex head to Northern Ontario and find themselves in the middle of a deadly situation.', + category: ['Drama'], + image: ['https://poster.starhubgo.com/poster/ch511_hudson_rex5.jpg?w=960&h=540', 'https://poster.starhubgo.com/poster/ch511_hudson_rex5.jpg?w=341&h=192'], + season: 5, + episode: 15, + rating: 'PG13' } ]) }) -it('can handle empty guide', () => { - const result = parser({ - content: - '{"errors":[{"code":"A9999","message":"Syntax, request headers or server error","extendedLogging":{"message":"Cannot read property \'operation\' of undefined"}}]}' - }) +it('can handle empty guide', async () => { + const result = await parser({ content: '' }) expect(result).toMatchObject([]) }) diff --git a/sites/starhubtvplus.com/starhubtvplus.com_en.channels.xml b/sites/starhubtvplus.com/starhubtvplus.com_en.channels.xml new file mode 100644 index 00000000..ecef09bf --- /dev/null +++ b/sites/starhubtvplus.com/starhubtvplus.com_en.channels.xml @@ -0,0 +1,119 @@ + + + ETTV ASIA HD + TestChannel 996 + ONE (Malay) + Bloomberg Originals + Test 998 + TestChannel2 + TestChannel 993 + TestChannel1 + TestChannel 995 + ABC Australia HD + ADITHYA TV + ANC + Animax HD + Arirang TV HD + Asianet + Asianet Movies + Astro Sensasi HD + Astro Warna HD + AXN HD + BBC Earth HD + BBC Lifestyle + BBC World News HD + beIN Sports 2 HD + beIN Sports 3 + beIN Sports 4 + beIN Sports 5 + beIN Sports HD + Bloomberg Television HD + Cartoonito HD + Cartoon Network + Cbeebies HD + CCM + CCTV-4 + Celestial Movies HD + CGTN + Cinema One Global + Cinemax HD + Citra Entertainment + CNBC HD + CNN HD + COLORS + COLORS Tamil HD + Crime + Investigation HD + CTI TV HD + Discovery HD + Dragon TV + DreamWorks Channel HD + DW English HD + Euronews HD + FashionTV HD + FIGHT SPORTS HD + Fox News Channel + France24 + HBO HD + HBO Family HD + HBO Hits HD + HBO Signature HD + HGTV + HISTORY HD + Hits HD + HITS MOVIES HD + Hub E City HD + Hub E City HD + Hub Premier 1 + Hub Premier 2 (HD) + Hub Premier 3 + Hub Premier 4 + Hub Premier 5 + Hub Premier 6 + Hub Premier 7 + Hub Premier 8 + Hub Sports 1 HD + Hub Sports 2 HD + Hub Sports 3 HD + Hub Sports 4 HD + Hub Sports 5 HD + Hub Sports 6 + Hub Sports 7 + Hub VVDrama + TVB Jade HD + Kalaignar TV + Karisma + KBS World HD + KTV HD + Lifetime HD + NHK WORLD - JAPAN HD + NHK World Premium HD + Nickelodeon Asia HD + Nick Jr + ONE HD + Phoenix Chinese Channel HD + Phoenix InfoNews Channel HD + Premier Sports + Preview Channel + ROCK Entertainment + SEA Today + Sky News HD + Sony Entertainment Television + SONY MAX + SPOTV2 + SPOTV + Sun Music + Sun TV + The Filipino Channel HD + Travelxp HD + TV5MONDE HD + TVBS Asia + TVBS-NEWS + TVB Xing He + tvN HD + Vannathirai + Vijay TV HD + Zee Cinema + Zee Tamil + Zee Thirai + Zee TV + diff --git a/sites/starhubtvplus.com/starhubtvplus.com_zh.channels.xml b/sites/starhubtvplus.com/starhubtvplus.com_zh.channels.xml new file mode 100644 index 00000000..e92ad42b --- /dev/null +++ b/sites/starhubtvplus.com/starhubtvplus.com_zh.channels.xml @@ -0,0 +1,119 @@ + + + ETTV ASIA HD + TestChannel 996 + ONE (Malay) + Bloomberg Originals + Test 998 + TestChannel2 + TestChannel 993 + TestChannel1 + TestChannel 995 + ABC Australia HD + ADITHYA TV + ANC + Animax HD + Arirang TV HD + Asianet + Asianet Movies + Astro Sensasi HD + Astro Warna HD + AXN HD + BBC Earth HD + BBC Lifestyle + BBC World News HD + beIN Sports 2 HD + beIN Sports 3 + beIN Sports 4 + beIN Sports 5 + beIN Sports HD + Bloomberg Television HD + Cartoonito HD + Cartoon Network + Cbeebies HD + CCM + CCTV-4 + Celestial Movies HD + CGTN + Cinema One Global + Cinemax HD + Citra Entertainment + CNBC HD + CNN HD + COLORS + COLORS Tamil HD + Crime + Investigation HD + CTI TV HD + Discovery HD + Dragon TV + DreamWorks Channel HD + DW English HD + Euronews HD + FashionTV HD + FIGHT SPORTS HD + Fox News Channel + France24 + HBO HD + HBO Family HD + HBO Hits HD + HBO Signature HD + HGTV + HISTORY HD + Hits HD + HITS MOVIES HD + Hub E City HD + Hub E City HD + Hub Premier 1 + Hub Premier 2 (HD) + Hub Premier 3 + Hub Premier 4 + Hub Premier 5 + Hub Premier 6 + Hub Premier 7 + Hub Premier 8 + Hub Sports 1 HD + Hub Sports 2 HD + Hub Sports 3 HD + Hub Sports 4 HD + Hub Sports 5 HD + Hub Sports 6 + Hub Sports 7 + Hub VVDrama + TVB Jade HD + Kalaignar TV + Karisma + KBS World HD + KTV HD + Lifetime HD + NHK WORLD - JAPAN HD + NHK World Premium HD + Nickelodeon Asia HD + Nick Jr + ONE HD + Phoenix Chinese Channel HD + Phoenix InfoNews Channel HD + Premier Sports + Preview Channel + ROCK Entertainment + SEA Today + Sky News HD + Sony Entertainment Television + SONY MAX + SPOTV2 + SPOTV + Sun Music + Sun TV + The Filipino Channel HD + Travelxp HD + TV5MONDE HD + TVBS Asia + TVBS-NEWS + TVB Xing He + tvN HD + Vannathirai + Vijay TV HD + Zee Cinema + Zee Tamil + Zee Thirai + Zee TV +