From 5d68c721d4034d910383b5f1ff4ada575428563f Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:14:31 -0500 Subject: [PATCH 01/14] Update beinsports.com.config.js Update beinsports.com config.js to pull from new api end point. --- sites/beinsports.com/beinsports.com.config.js | 131 ++++-------------- 1 file changed, 26 insertions(+), 105 deletions(-) diff --git a/sites/beinsports.com/beinsports.com.config.js b/sites/beinsports.com/beinsports.com.config.js index 2b443798..f6cc721b 100644 --- a/sites/beinsports.com/beinsports.com.config.js +++ b/sites/beinsports.com/beinsports.com.config.js @@ -13,118 +13,39 @@ module.exports = { site: 'beinsports.com', days: 2, request: { - cache: { - ttl: 60 * 60 * 1000, // 1h - interpretHeader: false + headers: { + 'User-Agent': + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36' } }, url: function ({ date, channel }) { - let [region] = channel.site_id.split('#') - region = region ? `_${region}` : '' - - return `https://epg.beinsports.com/utctime${region}.php?mins=00&serviceidentity=beinsports.com&cdate=${date.format( - 'YYYY-MM-DD' - )}` + return `https://www.beinsports.com/api/opta/tv-event?&startBefore=${date.add(1, 'd').format( + "YYYY-MM-DDTHH:mm:ss.SSS")}Z&endAfter=${date.format( + "YYYY-MM-DDTHH:mm:ss.SSS")}Z&channelIds=${channel.site_id}` }, - parser: function ({ content, channel, date }) { + parser: function ({ content }) { let programs = [] - const items = parseItems(content, channel) - let i = 0 - items.forEach(item => { - const $item = cheerio.load(item) - const title = parseTitle($item) - if (!title) return - const category = parseCategory($item) - const prev = programs[programs.length - 1] - let start = parseStart($item, date) - if (i === 0 && start.hour() > 18) { - date = date.subtract(1, 'd') - start = start.subtract(1, 'd') - } - if (prev) { - if (start.isBefore(prev.start)) { - start = start.add(1, 'd') - date = date.add(1, 'd') - } - prev.stop = start - } - let stop = parseStop($item, start) - if (stop.isBefore(start)) { - stop = stop.add(1, 'd') - } - - programs.push({ title, category, start, stop }) - i++ - }) - - return programs - }, - async channels({ region, lang }) { - const suffix = region ? `_${region}` : '' - const content = await axios - .get( - `https://epg.beinsports.com/utctime${suffix}.php?mins=00&serviceidentity=beinsports.com&cdate=2022-05-08` - ) - .then(r => r.data) - .catch(console.log) - const $ = cheerio.load(content) - const items = $('.container > div, #epg_div > div').toArray() - return items - .map(item => { - const $item = cheerio.load(item) - const id = $item('*').attr('id') - if (!/^channels_[0-9]+$/.test(id)) return null - const channelId = id.replace('channels_', '') - const imgSrc = $item('img').attr('src') - const [, , name] = imgSrc.match(/(\/|)([a-z0-9-_.]+)(.png|.svg)$/i) || [null, null, ''] - - return { - lang, - site_id: `${region}#${channelId}`, - name - } + const items = parseItems(content) + if (!items.length == 0) { + items.forEach(item => { + const start = dayjs.utc(item.startDate) + const stop = dayjs.utc(item.endDate) + programs.push({ + title: item.title, + description: item.description, + start, + stop + }) }) - .filter(i => i) + } + return programs } } -function parseTitle($item) { - return $item('.title').text() -} - -function parseCategory($item) { - return $item('.format') - .map(function () { - return $item(this).text() - }) - .get() -} - -function parseStart($item, date) { - let time = $item('.time').text() - if (!time) return null - let [, start, period] = time.match(/^(\d{2}:\d{2})( AM| PM|)/) || [null, null, null] - if (!start) return null - start = `${date.format('YYYY-MM-DD')} ${start}${period}` - const format = period ? 'YYYY-MM-DD hh:mm A' : 'YYYY-MM-DD HH:mm' - - return dayjs.tz(start, format, 'Asia/Qatar') -} - -function parseStop($item, date) { - let time = $item('.time').text() - if (!time) return null - let [, stop, period] = time.match(/(\d{2}:\d{2})( AM| PM|)$/) || [null, null, null] - if (!stop) return null - stop = `${date.format('YYYY-MM-DD')} ${stop}${period}` - const format = period ? 'YYYY-MM-DD hh:mm A' : 'YYYY-MM-DD HH:mm' - - return dayjs.tz(stop, format, 'Asia/Qatar') -} - -function parseItems(content, channel) { - const [, channelId] = channel.site_id.split('#') - const $ = cheerio.load(content) - - return $(`#channels_${channelId} .slider > ul:first-child > li`).toArray() +function parseItems(content) { + const data = JSON.parse(content) + if (data.length === 0) { + return [] + } + return data['rows'] } From bc7f5da9f930d06c25511e75890f2b61e1d7f5ce Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:15:48 -0500 Subject: [PATCH 02/14] Update beinsports.com.test.js Updating beinsports.com test.js to use new api end point --- sites/beinsports.com/beinsports.com.test.js | 76 +++++---------------- 1 file changed, 17 insertions(+), 59 deletions(-) diff --git a/sites/beinsports.com/beinsports.com.test.js b/sites/beinsports.com/beinsports.com.test.js index 0289cd56..66b0b8d9 100644 --- a/sites/beinsports.com/beinsports.com.test.js +++ b/sites/beinsports.com/beinsports.com.test.js @@ -11,81 +11,39 @@ const customParseFormat = require('dayjs/plugin/customParseFormat') dayjs.extend(customParseFormat) dayjs.extend(utc) -const date = dayjs.utc('2022-05-08', 'YYYY-MM-DD').startOf('d') -const channel = { site_id: '#2', xmltv_id: 'BeINSports.qa' } +const date = dayjs.utc('2023-10-22T00:00:00.000', '"YYYY-MM-DDTHH:mm:ss.SSS').startOf('d') +const channel = { site_id: 'C244C48D-3B54-406A-94C9-D63B16318267', xmltv_id: 'beINSportsUSA.us' } it('can generate valid url', () => { const result = url({ date, channel }) expect(result).toBe( - 'https://epg.beinsports.com/utctime.php?mins=00&serviceidentity=beinsports.com&cdate=2022-05-08' + 'https://www.beinsports.com/api/opta/tv-event?&startBefore=2023-10-23T00:00:00.000Z&endAfter=2023-10-22T00:00:00.000Z&channelIds=C244C48D-3B54-406A-94C9-D63B16318267' ) }) -it('can generate valid url for arabic guide', () => { - const channel = { site_id: 'ar#1', xmltv_id: 'BeINSports.qa' } - const result = url({ date, channel }) - expect(result).toBe( - 'https://epg.beinsports.com/utctime_ar.php?mins=00&serviceidentity=beinsports.com&cdate=2022-05-08' - ) -}) +const content ='{"count":1,"rows":[{"data":{"eventId":"2028126","eventDate":"2023-10-21T10:30:00","utcEventDate":"2023-10-20T23:30:00","duration":"90","programId":"106230","programTypeId":"5","title":"ATP 500"},"duration":5400000,"title":"Tokyo Day 5 QF 2","startDate":"2023-10-20T23:30:00.000Z","endDate":"2023-10-21T01:00:00.000Z","description":"Exclusive coverage of the 2023 ATP Tour on beIN SPORTS","channelId":"164C0EDA-EBCE-4AA6-9DDA-D603E0948B9F"}]}' + it('can parse response', () => { - const content = fs.readFileSync(path.resolve('sites/beinsports.com/__data__/content.html')) - const results = parser({ date, channel, content }).map(p => { + const result = parser({ content, channel, date }).map(p => { p.start = p.start.toJSON() p.stop = p.stop.toJSON() return p }) - expect(results[0]).toMatchObject({ - start: '2022-05-07T19:30:00.000Z', - stop: '2022-05-07T21:20:00.000Z', - title: 'Lorient vs Marseille', - category: ['Ligue 1 2021/22'] - }) -}) - -it('can parse response for tomorrow', () => { - const date = dayjs.utc('2022-05-09', 'YYYY-MM-DD').startOf('d') - const content = fs.readFileSync( - path.resolve('sites/beinsports.com/__data__/content_tomorrow.html') - ) - const results = parser({ date, channel, content }).map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(results[0]).toMatchObject({ - start: '2022-05-08T21:20:00.000Z', - stop: '2022-05-08T23:10:00.000Z', - title: 'Celtic vs Hearts', - category: ['SPFL Premiership 2021/22'] - }) -}) - -it('can parse US response', () => { - const content = fs.readFileSync(path.resolve('sites/beinsports.com/__data__/content_us.html')) - const results = parser({ date, channel, content }).map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(results[0]).toMatchObject({ - start: '2022-05-07T20:00:00.000Z', - stop: '2022-05-07T22:00:00.000Z', - title: 'Basaksehir vs. Galatasaray', - category: ['Fútbol Turco Superliga', 'Soccer'] - }) -}) - + expect(result).toMatchObject([ + { + start: '2023-10-20T23:30:00.000Z', + stop: '2023-10-21T01:00:00.000Z', + title: 'Tokyo Day 5 QF 2', + description: 'Exclusive coverage of the 2023 ATP Tour on beIN SPORTS' + } + ]) +}) + it('can handle empty guide', () => { - const noContent = fs.readFileSync(path.resolve('sites/beinsports.com/__data__/no-content.html')) const result = parser({ - date, - channel, - content: noContent + content: '[]' }) expect(result).toMatchObject([]) }) From 993da876ff9dbf88c259beb481ba4538e8a9b54d Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:16:48 -0500 Subject: [PATCH 03/14] Update beinsports.com_au.channels.xml updating beinsports.com AU channel listing to point to new channel IDs --- sites/beinsports.com/beinsports.com_au.channels.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sites/beinsports.com/beinsports.com_au.channels.xml b/sites/beinsports.com/beinsports.com_au.channels.xml index 6467c6a7..c713a46b 100644 --- a/sites/beinsports.com/beinsports.com_au.channels.xml +++ b/sites/beinsports.com/beinsports.com_au.channels.xml @@ -1,6 +1,6 @@ - BeIn Sports 1 Australia - BeIn Sports 2 Australia - BeIn Sports 3 Australia - \ No newline at end of file + BeIn Sports 1 Australia + BeIn Sports 2 Australia + BeIn Sports 3 Australia + From 3160ff6c45cd65ea4fc4a4be729ddb2b9483c82e Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:17:42 -0500 Subject: [PATCH 04/14] Update beinsports.com_fr.channels.xml Updating beinsports.com FR channel listing to point to new channel IDs --- .../beinsports.com_fr.channels.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sites/beinsports.com/beinsports.com_fr.channels.xml b/sites/beinsports.com/beinsports.com_fr.channels.xml index 50516c43..91174f36 100644 --- a/sites/beinsports.com/beinsports.com_fr.channels.xml +++ b/sites/beinsports.com/beinsports.com_fr.channels.xml @@ -1,13 +1,13 @@ - BeIN Sports 1 HD France - BeIN Sports 2 HD France - BeIN Sports 3 France - BeIN Sports Max 4 France - BeIN Sports Max 5 France - BeIN Sports Max 6 France - BeIN Sports Max 7 France - BeIN Sports Max 8 France - BeIN Sports Max 9 France - BeIN Sports Max 10 France + BeIN Sports 1 HD France + BeIN Sports 2 HD France + BeIN Sports 3 France + BeIN Sports Max 4 France + BeIN Sports Max 5 France + BeIN Sports Max 6 France + BeIN Sports Max 7 France + BeIN Sports Max 8 France + BeIN Sports Max 9 France + BeIN Sports Max 10 France From 2f41adc0397e988e948db7685f37332069bc4217 Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:21:03 -0500 Subject: [PATCH 05/14] Update beinsports.com_my.channels.xml Updating beinsports.com MY channel listing --- sites/beinsports.com/beinsports.com_my.channels.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sites/beinsports.com/beinsports.com_my.channels.xml b/sites/beinsports.com/beinsports.com_my.channels.xml index a5ee6c88..96733d26 100644 --- a/sites/beinsports.com/beinsports.com_my.channels.xml +++ b/sites/beinsports.com/beinsports.com_my.channels.xml @@ -1,4 +1,6 @@ - BeIN Sports 1 Malaysia & Singapore + BeIN Sports 1 Malaysia & Singapore + BeIN Sports 2 Malaysia & Singapore + BeIN Sports 3 Malaysia & Singapore From 46d1357aa2977210e8b1e4edee6604ed36c844be Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:22:23 -0500 Subject: [PATCH 06/14] Delete sites/beinsports.com/beinsports.com_hk.channels.xml Unable to access epg guide at https://www.beinsports.com/ --- sites/beinsports.com/beinsports.com_hk.channels.xml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 sites/beinsports.com/beinsports.com_hk.channels.xml diff --git a/sites/beinsports.com/beinsports.com_hk.channels.xml b/sites/beinsports.com/beinsports.com_hk.channels.xml deleted file mode 100644 index ae0372bf..00000000 --- a/sites/beinsports.com/beinsports.com_hk.channels.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - BeIN Sports 1 Hong Kong - BeIN Sports 2 Hong Kong - From 61272d44630cad6425bfd94f0a6ece12a5940bb1 Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:22:51 -0500 Subject: [PATCH 07/14] Delete sites/beinsports.com/beinsports.com_id.channels.xml Unable to access guide at https://www.beinsports.com/ --- sites/beinsports.com/beinsports.com_id.channels.xml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 sites/beinsports.com/beinsports.com_id.channels.xml diff --git a/sites/beinsports.com/beinsports.com_id.channels.xml b/sites/beinsports.com/beinsports.com_id.channels.xml deleted file mode 100644 index 31383e71..00000000 --- a/sites/beinsports.com/beinsports.com_id.channels.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - BeIN Sports 1 Indonesia - BeIN Sports 3 Indonesia - From 101ba29f04a6f33e9ab5a7febeb747a2cb15e585 Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:24:37 -0500 Subject: [PATCH 08/14] Delete sites/beinsports.com/beinsports.com_ph.channels.xml Unable to access channel listing at https://www.beinsports.com/ --- sites/beinsports.com/beinsports.com_ph.channels.xml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 sites/beinsports.com/beinsports.com_ph.channels.xml diff --git a/sites/beinsports.com/beinsports.com_ph.channels.xml b/sites/beinsports.com/beinsports.com_ph.channels.xml deleted file mode 100644 index f73ff0e6..00000000 --- a/sites/beinsports.com/beinsports.com_ph.channels.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - BeIN Sports 1 Philippines - BeIN Sports 3 Philippines - From 348a670cc3d4d10101cdb2048b87b6f7801753c6 Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:25:21 -0500 Subject: [PATCH 09/14] Delete sites/beinsports.com/beinsports.com_qa-ar.channels.xml Unable to access channel listing at https://www.beinsports.com/ --- .../beinsports.com_qa-ar.channels.xml | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 sites/beinsports.com/beinsports.com_qa-ar.channels.xml diff --git a/sites/beinsports.com/beinsports.com_qa-ar.channels.xml b/sites/beinsports.com/beinsports.com_qa-ar.channels.xml deleted file mode 100644 index 66437c45..00000000 --- a/sites/beinsports.com/beinsports.com_qa-ar.channels.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - beIN SPORTS FTA - beIN SPORTS News - beIN SPORTS2 - beIN SPORTS3 - beIN SPORTS4 - beIN SPORTS5 - beIN SPORTS6 - beIN SPORTS7 - beIN SPORTS3 PREMIUM - beIN SPORTS XTRA1 - beIN SPORTS XTRA2 - beIN 4k - beIN SPORTS AFC - beIN SPORTS AFC1 - beIN SPORTS AFC2 - beIN SPORTS AFC3 - beIN SPORTS NBA - beIN SPORTS1 ENGLISH - beIN SPORTS2 ENGLISH - beIN SPORTS3 ENGLISH - beIN SPORTS1 FRENCH - beIN SPORTS2 FRENCH - beIN SPORTS3 FRENCH - beIN SPORTS MAX 1 - beIN SPORTS MAX 2 - From 9b5214f5e63f8d5aff9394b30c67f6f24c86dd2d Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:25:32 -0500 Subject: [PATCH 10/14] Delete sites/beinsports.com/beinsports.com_qa-en.channels.xml Unable to access channel listing at https://www.beinsports.com/ --- .../beinsports.com_qa-en.channels.xml | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 sites/beinsports.com/beinsports.com_qa-en.channels.xml diff --git a/sites/beinsports.com/beinsports.com_qa-en.channels.xml b/sites/beinsports.com/beinsports.com_qa-en.channels.xml deleted file mode 100644 index c90af9d9..00000000 --- a/sites/beinsports.com/beinsports.com_qa-en.channels.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - BeIn Sports - BeIn Sports News - BeIn Sports 2 - BeIn Sports 3 - BeIn Sports 4 - BeIn Sports 5 - BeIn Sports 6 - BeIn Sports 7 - BeIn Sports Premium 3 - BeIn Sports Xtra 1 - BeIn Sports Xtra 2 - BeIn 4K - BeIn NBA - BeIn Sports English 1 - BeIn Sports English 2 - BeIn Sports English 3 - BeIn Sports French 1 - BeIn Sports French 2 - BeIn Sports French 3 - From adb8244d42c69e05b96bd9e219b7b63954d9a16b Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:25:55 -0500 Subject: [PATCH 11/14] Delete sites/beinsports.com/beinsports.com_th.channels.xml Unable to access channel listing at https://www.beinsports.com/ --- sites/beinsports.com/beinsports.com_th.channels.xml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 sites/beinsports.com/beinsports.com_th.channels.xml diff --git a/sites/beinsports.com/beinsports.com_th.channels.xml b/sites/beinsports.com/beinsports.com_th.channels.xml deleted file mode 100644 index 55b802cb..00000000 --- a/sites/beinsports.com/beinsports.com_th.channels.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - BeIN Sports 1 Thailand - BeIN Sports 3 Thailand - From fca797eb9b954ff457146d19ceeec56732fc7fd2 Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:26:58 -0500 Subject: [PATCH 12/14] Update beinsports.com_us-es.channels.xml Updating US channel listing with new channel IDs --- .../beinsports.com_us-es.channels.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sites/beinsports.com/beinsports.com_us-es.channels.xml b/sites/beinsports.com/beinsports.com_us-es.channels.xml index 3feee0b6..ca00d229 100644 --- a/sites/beinsports.com/beinsports.com_us-es.channels.xml +++ b/sites/beinsports.com/beinsports.com_us-es.channels.xml @@ -1,13 +1,13 @@ - BeIN Sports USA - BeIN Sports en Español - BeIN Sports Xtra USA - BeIN Sports Xtra en Español - BeIN Sports 3 USA - BeIN Sports 4 USA - BeIN Sports 5 USA - BeIN Sports 6 USA - BeIN Sports 7 USA - BeIN Sports 8 USA + BeIN Sports USA + BeIN Sports Español + BeIN Sports Xtra USA + BeIN SPORTS XTRA ñ + BeIN Sports 3 USA + BeIN Sports 4 USA + BeIN Sports 5 USA + BeIN Sports 6 USA + BeIN Sports 7 USA + BeIN Sports 8 USA From 3a7351006b0d0237dd16d247e057dd08458f181c Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:29:16 -0500 Subject: [PATCH 13/14] Update beinsports.com_us-en.channels.xml Updating US channel listing --- .../beinsports.com_us-en.channels.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sites/beinsports.com/beinsports.com_us-en.channels.xml b/sites/beinsports.com/beinsports.com_us-en.channels.xml index b3009565..ca00d229 100644 --- a/sites/beinsports.com/beinsports.com_us-en.channels.xml +++ b/sites/beinsports.com/beinsports.com_us-en.channels.xml @@ -1,13 +1,13 @@ - BeIN Sports USA - BeIN Sports en Español - BeIN Sports Xtra USA - BeIN Sports Xtra en Español - BeIN Sports 3 USA - BeIN Sports 4 USA - BeIN Sports 5 USA - BeIN Sports 6 USA - BeIN Sports 7 USA - BeIN Sports 8 USA + BeIN Sports USA + BeIN Sports Español + BeIN Sports Xtra USA + BeIN SPORTS XTRA ñ + BeIN Sports 3 USA + BeIN Sports 4 USA + BeIN Sports 5 USA + BeIN Sports 6 USA + BeIN Sports 7 USA + BeIN Sports 8 USA From 0aef34c8849f1210728b5b0ca66c1e05aba90db5 Mon Sep 17 00:00:00 2001 From: Sicilykill <95044302+Sicilykill@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:35:04 -0500 Subject: [PATCH 14/14] Update beinsports.com_us-es.channels.xml Updated channel listing --- .../beinsports.com_us-es.channels.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sites/beinsports.com/beinsports.com_us-es.channels.xml b/sites/beinsports.com/beinsports.com_us-es.channels.xml index ca00d229..1b6d52a6 100644 --- a/sites/beinsports.com/beinsports.com_us-es.channels.xml +++ b/sites/beinsports.com/beinsports.com_us-es.channels.xml @@ -1,13 +1,13 @@ - BeIN Sports USA - BeIN Sports Español - BeIN Sports Xtra USA - BeIN SPORTS XTRA ñ - BeIN Sports 3 USA - BeIN Sports 4 USA - BeIN Sports 5 USA - BeIN Sports 6 USA - BeIN Sports 7 USA - BeIN Sports 8 USA + BeIN Sports USA + BeIN Sports Español + BeIN Sports Xtra USA + BeIN SPORTS XTRA ñ + BeIN Sports 3 USA + BeIN Sports 4 USA + BeIN Sports 5 USA + BeIN Sports 6 USA + BeIN Sports 7 USA + BeIN Sports 8 USA