diff --git a/sites/cubmu.com/__data__/content.json b/sites/cubmu.com/__data__/content.json
index d27a2baa6..049ccbfd1 100644
--- a/sites/cubmu.com/__data__/content.json
+++ b/sites/cubmu.com/__data__/content.json
@@ -1 +1,301 @@
-{"result":[{"channel_id":"4028c68574537fcd0174be43042758d8","channel_name":"Trans TV","scehedule_title":"CNN Tech News","schedule_date":"2023-11-05 01:30:00","schedule_end_time":"02:00:00","schedule_json":{"availability":0,"channelId":"4028c68574537fcd0174be43042758d8","channelName":"Trans TV","duration":1800,"editable":true,"episodeName":"","imageUrl":"https://cdnjkt2.transvision.co.id:1001/catchup/schedule/thumbnail/4028c68574537fcd0174be43042758d8/4028c6858b8b3621018b9330e3701a7e/458x640","imageUrlWide":"https://cdnjkt2.transvision.co.id:1001/catchup/schedule/thumbnail/4028c68574537fcd0174be43042758d8/4028c6858b8b3621018b9330e3701a7e/320x180","name":"CNN Tech News","ottImageUrl":"","primarySynopsis":"CNN Indonesia Tech News adalah berita teknologi yang membawa pemirsa ke dunia teknologi yang penuh dengan informasi, pendidikan, hiburan sampai informasi kesehatan terkini.","scheduleId":"4028c6858b8b3621018b9330e3701a7e","scheduleTime":"18:30:00","secondarySynopsis":"CNN Indonesia Tech News is tech news brings viewers into the world of technology that provides information, education, entertainment to the latest health information.","startDt":"20231104183000","url":""},"schedule_start_time":"01:30:00"}]}
\ No newline at end of file
+{
+ "data": [
+ {
+ "catchup_id": "1409589",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 45,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Lacak Kriminal",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 02:00:00",
+ "schedule_start_time": "2026-04-26 01:15:00"
+ },
+ {
+ "catchup_id": "1409590",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "CNN Indonesia Prime News",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 03:00:00",
+ "schedule_start_time": "2026-04-26 02:00:00"
+ },
+ {
+ "catchup_id": "1409591",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 40,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "The Transmart",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 03:40:00",
+ "schedule_start_time": "2026-04-26 03:00:00"
+ },
+ {
+ "catchup_id": "1409592",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Klinik Tendean",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 04:40:00",
+ "schedule_start_time": "2026-04-26 03:40:00"
+ },
+ {
+ "catchup_id": "1409593",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 20,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Adam And Inul Love Story",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 05:00:00",
+ "schedule_start_time": "2026-04-26 04:40:00"
+ },
+ {
+ "catchup_id": "1409594",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 90,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Islam Itu Indah",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 06:30:00",
+ "schedule_start_time": "2026-04-26 05:00:00"
+ },
+ {
+ "catchup_id": "1409595",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Insert Pagi",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 07:30:00",
+ "schedule_start_time": "2026-04-26 06:30:00"
+ },
+ {
+ "catchup_id": "1409596",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Kajian Hati",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 08:30:00",
+ "schedule_start_time": "2026-04-26 07:30:00"
+ },
+ {
+ "catchup_id": "1409597",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 120,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Ambyar In Weekend",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 10:30:00",
+ "schedule_start_time": "2026-04-26 08:30:00"
+ },
+ {
+ "catchup_id": "1409598",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Insert",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 11:30:00",
+ "schedule_start_time": "2026-04-26 10:30:00"
+ },
+ {
+ "catchup_id": "1409599",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Spill DD Tea",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 12:30:00",
+ "schedule_start_time": "2026-04-26 11:30:00"
+ },
+ {
+ "catchup_id": "1409600",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 90,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Brownis On The Weekend",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 14:00:00",
+ "schedule_start_time": "2026-04-26 12:30:00"
+ },
+ {
+ "catchup_id": "1409601",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Rumpi Hot Of The Week",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 15:00:00",
+ "schedule_start_time": "2026-04-26 14:00:00"
+ },
+ {
+ "catchup_id": "1409602",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Insert Investigasi",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 16:00:00",
+ "schedule_start_time": "2026-04-26 15:00:00"
+ },
+ {
+ "catchup_id": "1409603",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Sehari Jadi Ratu",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 17:00:00",
+ "schedule_start_time": "2026-04-26 16:00:00"
+ },
+ {
+ "catchup_id": "1409604",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Bikin Laper",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 18:00:00",
+ "schedule_start_time": "2026-04-26 17:00:00"
+ },
+ {
+ "catchup_id": "1409605",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Monitor Ketua",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 19:00:00",
+ "schedule_start_time": "2026-04-26 18:00:00"
+ },
+ {
+ "catchup_id": "1409606",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 75,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Insert Story",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 20:15:00",
+ "schedule_start_time": "2026-04-26 19:00:00"
+ },
+ {
+ "catchup_id": "1409607",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 60,
+ "genre_id": "10",
+ "is_catchup_available": true,
+ "is_live": false,
+ "program_name": "Highlight",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 21:15:00",
+ "schedule_start_time": "2026-04-26 20:15:00"
+ },
+ {
+ "catchup_id": "1409608",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 120,
+ "genre_id": "10",
+ "is_catchup_available": false,
+ "is_live": true,
+ "program_name": "Bioskop TransTV",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-26 23:15:00",
+ "schedule_start_time": "2026-04-26 21:15:00"
+ },
+ {
+ "catchup_id": "1409609",
+ "channel_id": "210",
+ "channel_name": "Trans TV",
+ "content_id": "800",
+ "duration": 120,
+ "genre_id": "10",
+ "is_catchup_available": false,
+ "is_live": false,
+ "program_name": "Bioskop TransTV",
+ "schedule_date": "2026-04-26",
+ "schedule_end_time": "2026-04-27 01:15:00",
+ "schedule_start_time": "2026-04-26 23:15:00"
+ }
+ ],
+ "error": null,
+ "message": "Get list EPG success",
+ "status": "success"
+}
\ No newline at end of file
diff --git a/sites/cubmu.com/cubmu.com.channels.xml b/sites/cubmu.com/cubmu.com.channels.xml
new file mode 100644
index 000000000..dd3ee03f7
--- /dev/null
+++ b/sites/cubmu.com/cubmu.com.channels.xml
@@ -0,0 +1,79 @@
+
+
+ Movies News
+ Golf Plus ID
+ Knowledge+
+ Cartoon TV Premium
+ Cartoon TV
+ Cartoon TV Classic
+ Football TV
+ Sports TV
+ Xtrem Sports
+ Speed TV
+ Travel TV
+ Cooking TV
+ Gaming TV
+ Song TV
+ ABC Australia
+ Al Jazeera
+ ANTV
+ Arirang
+ Berita Satu
+ Bioskop Indonesia
+ BTV
+ CCTV4
+ Celestial Movies
+ CGTN
+ CGTN Documentary
+ Channel Jowo
+ Channel NewsAsia
+ CNBC Asia
+ CNBC Indonesia
+ CNN Indonesia
+ DAAI TV
+ DayStar
+ DENS Food Channel
+ DENS Play Channel
+ DENS Show Bizz
+ Dunia Anak
+ Dunia Lain
+ Eat N Go
+ Euronews
+ Fashion TV
+ Fight TV Premium
+ France 24
+ Garuda TV
+ GTV
+ Indosiar
+ JakTV
+ jtv
+ Khazanah
+ Kompas TV
+ MDTV
+ MetroTV
+ MNC TV
+ Musik Indonesia
+ Nabawi TV
+ NHK World Premium
+ !nsert
+ One TV
+ Pijar TV
+ PSJ TV
+ Al Quran Al Kareem
+ Rtv
+ RCTI
+ Russia Today
+ SCTV
+ Superyacht TV
+ Thrill
+ Trans 7
+ Trans TV
+ TV5 Monde
+ TV9
+ tvMU
+ tVN
+ TVN Movies
+ TVOne
+ TVRI
+ Wion TV
+
diff --git a/sites/cubmu.com/cubmu.com.config.js b/sites/cubmu.com/cubmu.com.config.js
index 335a555d3..f3d9a1238 100644
--- a/sites/cubmu.com/cubmu.com.config.js
+++ b/sites/cubmu.com/cubmu.com.config.js
@@ -1,3 +1,4 @@
+const axios = require('axios')
const dayjs = require('dayjs')
const timezone = require('dayjs/plugin/timezone')
const utc = require('dayjs/plugin/utc')
@@ -5,78 +6,72 @@ const utc = require('dayjs/plugin/utc')
dayjs.extend(timezone)
dayjs.extend(utc)
+const tz = 'Asia/Jakarta'
+const dateFormat = 'YYYY-MM-DD HH:mm:ss'
+const headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
+ 'Origin': 'https://cubmu.com',
+ 'Referer': 'https://cubmu.com/',
+}
+let runtimeConfig, accessToken
+
module.exports = {
site: 'cubmu.com',
days: 2,
url({ channel, date }) {
- return `https://servicebuss.transvision.co.id/v2/cms/getEPGData?app_id=cubmu&tvs_platform_id=standalone&schedule_date=${date.format(
+ return `https://servicebuss.transvision.co.id/global/v2/epg/programs?channel_id=${
+ channel.site_id
+ }&schedule_date=${date.format(
'YYYY-MM-DD'
- )}&channel_id=${channel.site_id}`
+ )}`
+ },
+ request: {
+ async headers() {
+ await fetchAccessToken()
+
+ return {
+ Authorization: `Bearer ${accessToken}`,
+ ...headers,
+ }
+ }
},
parser({ content, channel }) {
const programs = []
- const items = parseItems(content)
- items.forEach(item => {
- programs.push({
- title: parseTitle(item),
- description: parseDescription(item, channel.lang),
- episode: parseEpisode(item),
- start: parseStart(item).toISOString(),
- stop: parseStop(item).toISOString()
+ if (content && typeof content === 'string') {
+ content = JSON.parse(content)
+ }
+ if (Array.isArray(content?.data)) {
+ content.data.forEach(item => {
+ programs.push({
+ title: item.program_name,
+ start: dayjs.tz(item.schedule_start_time, dateFormat, tz),
+ stop: dayjs.tz(item.schedule_end_time, dateFormat, tz),
+ })
})
- })
+ }
return programs
},
- async channels({ lang }) {
- const axios = require('axios')
- const cheerio = require('cheerio')
+ async channels({ lang = 'id' }) {
+ const now = dayjs()
+ await fetchAccessToken()
const result = await axios
- .get('https://cubmu.com/live-tv')
- .then(response => response.data)
- .catch(console.error)
-
- const $ = cheerio.load(result)
-
- // retrieve service api data
- const config = JSON.parse($('#__NEXT_DATA__').text()).runtimeConfig || {}
-
- const options = {
- headers: {
- Origin: 'https://cubmu.com',
- Referer: 'https://cubmu.com/live-tv'
- }
- }
- // login to service bus
- await axios
- .post(
- `https://servicebuss.transvision.co.id/tvs/login/external?email=${config.email}&password=${config.password}&deviceId=${config.deviceId}&deviceType=${config.deviceType}&deviceModel=${config.deviceModel}&deviceToken=&serial=&platformId=${config.platformId}`,
- options
- )
- .then(response => response.data)
- .catch(console.error)
- // list channels
- const subscribedChannels = await axios
- .post(
- `https://servicebuss.transvision.co.id/tvs/subscribe_product/list?platformId=${config.platformId}`,
- options
- )
- .then(response => response.data)
- .catch(console.error)
+ .get(`https://servicebuss.transvision.co.id/global/v2/master-channels?platform_id=1&page=1&per_page=100&schedule_date=${now.format('YYYY-MM-DD')}`, {
+ headers: {
+ Authorization: `Bearer ${accessToken}`,
+ ...headers,
+ }
+ })
+ .then(r => r.data)
+ .catch(err => console.error(err.message))
const channels = []
- const included = []
- if (Array.isArray(subscribedChannels.channelPackageList)) {
- subscribedChannels.channelPackageList.forEach(pkg => {
- pkg.channelList.forEach(channel => {
- if (included.indexOf(channel.id) < 0) {
- included.push(channel.id)
- channels.push({
- lang,
- site_id: channel.id,
- name: channel.name
- })
- }
+ if (Array.isArray(result?.data?.items)) {
+ result.data.items.forEach(channel => {
+ channels.push({
+ lang,
+ site_id: channel.channel_id,
+ name: channel.channel_name,
})
})
}
@@ -85,30 +80,65 @@ module.exports = {
}
}
-function parseItems(content) {
- return content ? JSON.parse(content.trim()).result || [] : []
+async function fetchRuntimeConfig() {
+ if (!runtimeConfig) {
+ const cheerio = require('cheerio')
+ const url = 'https://cubmu.com/'
+ const result = await axios
+ .get(url)
+ .then(r => r.data)
+ .catch(err => console.error(err.message))
+
+ const $ = cheerio.load(result)
+
+ runtimeConfig = JSON.parse($('#__NEXT_DATA__').text()).runtimeConfig || {}
+ }
}
-function parseTitle(item) {
- return item.scehedule_title
-}
+async function fetchAccessToken() {
+ if (!runtimeConfig) {
+ await fetchRuntimeConfig()
+ }
+ const url = 'https://servicebuss.transvision.co.id/global/v3/auth/redirect-login'
+ if (!accessToken) {
+ // extracted from https://cubmu.com/_next/static/chunks/pages/_app-ac49656f9b4eac2d.js
+ const f = t => {
+ let e = t,
+ r = 'xx',
+ n = Math.round(+new Date / 1e3),
+ i = ''.concat(e, '{SPLITTER}').concat(n)
+ return [0, 1].map(() => {
+ i = ''.concat(r).concat(btoa(i))
+ }), i
+ }
+ const payload = {
+ app_id: 'cubmu',
+ device: {
+ device_brand: 'Web Browser',
+ device_id: 'web_browser',
+ device_type: 'Opera',
+ firebase_id: 'NOT_ALLOWED',
+ notes: 'Web Browser-V2.1',
+ },
+ email_or_phone: runtimeConfig?.emailMaster,
+ password: f(runtimeConfig?.passwordMaster),
+ tvs_platform_id: 'standalone',
+ }
+ const result = await axios
+ .post(url, payload, {
+ headers: {
+ ...headers,
+ 'Content-Type': 'application/json',
+ }
+ })
+ .then(r => r.data)
+ .catch(err => console.error(err.message))
-function parseDescription(item, lang = 'id') {
- return lang === 'id' ? item.schedule_json.primarySynopsis : item.schedule_json.secondarySynopsis
-}
-
-function parseEpisode(item) {
- return item.schedule_json.episodeName
-}
-
-function parseStart(item) {
- return dayjs.tz(item.schedule_date, 'YYYY-MM-DD HH:mm:ss', 'Asia/Jakarta')
-}
-
-function parseStop(item) {
- return dayjs.tz(
- [item.schedule_date.split(' ')[0], item.schedule_end_time].join(' '),
- 'YYYY-MM-DD HH:mm:ss',
- 'Asia/Jakarta'
- )
+ if (result?.data?.access_token) {
+ accessToken = result.data.access_token
+ }
+ }
+ if (!accessToken) {
+ throw new Error(`Unable to fetch access token from ${url}!`);
+ }
}
diff --git a/sites/cubmu.com/cubmu.com.test.js b/sites/cubmu.com/cubmu.com.test.js
index a12f9e75c..fc45695dc 100644
--- a/sites/cubmu.com/cubmu.com.test.js
+++ b/sites/cubmu.com/cubmu.com.test.js
@@ -3,41 +3,31 @@ 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-11-05', 'DD/MM/YYYY').startOf('d')
-const channel = { site_id: '4028c68574537fcd0174be43042758d8', xmltv_id: 'TransTV.id', lang: 'id' }
-const channelEn = Object.assign({}, channel, { lang: 'en' })
+const date = dayjs.utc('2026-04-26').startOf('d')
+const channel = { site_id: '210', xmltv_id: 'TransTV.id', lang: 'id' }
it('can generate valid url', () => {
expect(url({ channel, date })).toBe(
- 'https://servicebuss.transvision.co.id/v2/cms/getEPGData?app_id=cubmu&tvs_platform_id=standalone&schedule_date=2023-11-05&channel_id=4028c68574537fcd0174be43042758d8'
+ 'https://servicebuss.transvision.co.id/global/v2/epg/programs?channel_id=210&schedule_date=2026-04-26'
)
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf8')
- const idResults = parser({ content, channel })
- expect(idResults).toMatchObject([
- {
- start: '2023-11-04T18:30:00.000Z',
- stop: '2023-11-04T19:00:00.000Z',
- title: 'CNN Tech News',
- description:
- 'CNN Indonesia Tech News adalah berita teknologi yang membawa pemirsa ke dunia teknologi yang penuh dengan informasi, pendidikan, hiburan sampai informasi kesehatan terkini.'
- }
- ])
-
- const enResults = parser({ content, channel: channelEn })
- expect(enResults).toMatchObject([
- {
- start: '2023-11-04T18:30:00.000Z',
- stop: '2023-11-04T19:00:00.000Z',
- title: 'CNN Tech News',
- description:
- 'CNN Indonesia Tech News is tech news brings viewers into the world of technology that provides information, education, entertainment to the latest health information.'
- }
- ])
+ const results = parser({ content, channel })
+ .map(p => {
+ p.start = p.start.toJSON()
+ p.stop = p.stop.toJSON()
+ return p
+ })
+ expect(results[4]).toMatchObject({
+ title: 'Adam And Inul Love Story',
+ start: '2026-04-25T21:40:00.000Z',
+ stop: '2026-04-25T22:00:00.000Z',
+ })
})
it('can handle empty guide', () => {
diff --git a/sites/cubmu.com/cubmu.com_en.channels.xml b/sites/cubmu.com/cubmu.com_en.channels.xml
deleted file mode 100644
index 5122dab05..000000000
--- a/sites/cubmu.com/cubmu.com_en.channels.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
- jtv
- Musik Indonesia
- Euronews
- Wion TV
- CCTV 4
- Fight TV Premium
- Xtrem Sports
- Travel TV
- Fashion TV
- Movies News
- Sports TV
- SuperYacht TV
- Speed TV
- PSJ TV
- DENS Food Channel
- DENS PLAY Channel
- DENS ShowBiz
- TV9
- tv Mu
- Pijar TV
- Al Quran Al Kareem
- Nabawi TV
- MDTV
- Song TV
- Cartoon TV Classics
- One TV
- Channel Jowo
- Cooking TV
- Cartoon TV Premium
- Cartoon TV
- Football TV
- Knowledge+
- Berita Satu
- Garuda TV
- CNA
- Al Jazeera
- France 24
- Arirang
- Dunia Anak
- Channel Seru!
- Dunia Lain
- ABC Australia
- Eat N Go
- Khazanah
- CNBC Indonesia
- SCTV
- Indosiar
- DAAI TV
- rtv
- MNC TV
- Lingua
- Bioskop Indonesia
- GTV
- BTV
- Russia Today
- !nsert
- MetroTV
- CNN Indonesia
- TVRI
- CGTN
- RCTI
- Jak tv
- Kompas TV
- TV5 Monde
- Trans TV
- Trans 7
- CGTN Documentary
- LPS Financial Festival 2025
- GOLF PLUS ID
- Gaming TV
-
diff --git a/sites/cubmu.com/cubmu.com_id.channels.xml b/sites/cubmu.com/cubmu.com_id.channels.xml
deleted file mode 100644
index 0ee5d3662..000000000
--- a/sites/cubmu.com/cubmu.com_id.channels.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
- jtv
- Musik Indonesia
- Euronews
- Wion TV
- CCTV 4
- Fight TV Premium
- Xtrem Sports
- Travel TV
- Fashion TV
- Movies News
- Sports TV
- SuperYacht TV
- Speed TV
- PSJ TV
- DENS Food Channel
- DENS PLAY Channel
- DENS ShowBiz
- TV9
- tv Mu
- Pijar TV
- Al Quran Al Kareem
- Nabawi TV
- MDTV
- Song TV
- Cartoon TV Classics
- One TV
- Channel Jowo
- Cooking TV
- Cartoon TV Premium
- Cartoon TV
- Football TV
- Knowledge+
- Berita Satu
- Garuda TV
- CNA
- Al Jazeera
- France 24
- Arirang
- Dunia Anak
- Channel Seru!
- Dunia Lain
- ABC Australia
- Eat N Go
- Khazanah
- CNBC Indonesia
- SCTV
- Indosiar
- DAAI TV
- rtv
- MNC TV
- Lingua
- Bioskop Indonesia
- GTV
- BTV
- Russia Today
- !nsert
- MetroTV
- CNN Indonesia
- TVRI
- CGTN
- RCTI
- Jak tv
- Kompas TV
- TV5 Monde
- Trans TV
- Trans 7
- CGTN Documentary
- LPS Financial Festival 2025
- GOLF PLUS ID
- Gaming TV
-
diff --git a/sites/cubmu.com/readme.md b/sites/cubmu.com/readme.md
index 8a10f641a..fa997a2c4 100644
--- a/sites/cubmu.com/readme.md
+++ b/sites/cubmu.com/readme.md
@@ -4,30 +4,14 @@ https://cubmu.com/live-tv _[Geo-restricted]_
### Download the guide
-Indonesian:
-
```sh
-npm run grab --- --sites=cubmu.com --lang=id
-```
-
-English:
-
-```sh
-npm run grab --- --sites=cubmu.com --lang=en
+npm run grab --- --sites=cubmu.com
```
### Update channel list
-Indonesian:
-
```sh
-npm run channels:parse --- --config=sites/cubmu.com/cubmu.com.config.js --output=sites/cubmu.com/cubmu.com_id.channels.xml --set=lang:id
-```
-
-English:
-
-```sh
-npm run channels:parse --- --config=sites/cubmu.com/cubmu.com.config.js --output=sites/cubmu.com/cubmu.com_en.channels.xml --set=lang:en
+npm run channels:parse --- --config=sites/cubmu.com/cubmu.com.config.js --output=sites/cubmu.com/cubmu.com.channels.xml
```
### Test