From bf03dae463214752fe54e64aede9286b29deec57 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 14 Feb 2022 12:00:05 +0300 Subject: [PATCH] Update playlist/validate.js --- .github/workflows/auto-update.yml | 5 +- .github/workflows/check.yml | 5 + scripts/commands/playlist/validate.js | 50 +- scripts/core/blocklist.js | 18 - scripts/core/id.js | 26 +- scripts/core/index.js | 1 - scripts/core/parser.js | 19 - scripts/data/.gitignore | 3 +- scripts/data/blocklist.json | 657 +------------------ tests/__data__/input/channels/us_blocked.m3u | 6 +- tests/__data__/input/data/blocklist.json | 645 +----------------- tests/__data__/input/data/channels.json | 85 +++ tests/commands/playlist/validate.test.js | 12 +- 13 files changed, 154 insertions(+), 1378 deletions(-) delete mode 100644 scripts/core/blocklist.js diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml index 8ed50eca2..21dcc633b 100644 --- a/.github/workflows/auto-update.yml +++ b/.github/workflows/auto-update.yml @@ -16,12 +16,13 @@ jobs: - name: Download data from API run: | mkdir -p scripts/data - curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json + curl -L -o scripts/data/blocklist.json https://iptv-org.github.io/api/blocklist.json curl -L -o scripts/data/categories.json https://iptv-org.github.io/api/categories.json + curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json curl -L -o scripts/data/countries.json https://iptv-org.github.io/api/countries.json + curl -L -o scripts/data/guides.json https://iptv-org.github.io/api/guides.json curl -L -o scripts/data/languages.json https://iptv-org.github.io/api/languages.json curl -L -o scripts/data/regions.json https://iptv-org.github.io/api/regions.json - curl -L -o scripts/data/guides.json https://iptv-org.github.io/api/guides.json - uses: actions/upload-artifact@v2 with: name: data diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 6792edc05..e1471d3b6 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -13,6 +13,11 @@ jobs: with: node-version: '14' cache: 'npm' + - name: Download data from API + run: | + mkdir -p scripts/data + curl -L -o scripts/data/blocklist.json https://iptv-org.github.io/api/blocklist.json + curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json - run: npm install - run: npm run lint - run: npm run validate diff --git a/scripts/commands/playlist/validate.js b/scripts/commands/playlist/validate.js index 825ea969a..2a06eff95 100644 --- a/scripts/commands/playlist/validate.js +++ b/scripts/commands/playlist/validate.js @@ -1,37 +1,57 @@ -const { file, logger, api, parser, blocklist } = require('../../core') +const { file, logger, api, parser, id } = require('../../core') const { program } = require('commander') const chalk = require('chalk') +const _ = require('lodash') -program.argument('', 'Path to file to validate').parse(process.argv) +program.argument('[filepath]', 'Path to file to validate').parse(process.argv) async function main() { + const files = program.args.length ? program.args : await file.list('channels/*.m3u') + + logger.info(`loading blocklist...`) await api.channels.load() + await api.blocklist.load() + + let blocklist = await api.blocklist.all() + blocklist = blocklist + .map(blocked => { + const channel = api.channels.find({ id: blocked.channel }) + if (!channel) return null + return { ...blocked, name: channel.name } + }) + .filter(i => i) + logger.info(`found ${blocklist.length} records`) let errors = [] let warnings = [] - for (const filepath of program.args) { + for (const filepath of files) { if (!filepath.endsWith('.m3u')) continue const basename = file.basename(filepath) - const [_, countryCode] = basename.match(/([a-z]{2})(|_.*)\.m3u/i) || [null, null] + const [__, country] = basename.match(/([a-z]{2})(|_.*)\.m3u/i) || [null, null] const fileLog = [] - const streams = await parser.parsePlaylist(filepath) - for (const stream of streams) { - const found = blocklist.find(stream.name, countryCode.toUpperCase()) - if (found) { + const items = await parser.parsePlaylist(filepath) + for (const item of items) { + if (item.tvg.id && !api.channels.find({ id: item.tvg.id })) { fileLog.push({ - type: 'error', - line: stream.line, - message: `"${found.name}" is on the blocklist due to claims of copyright holders (${found.reference})` + type: 'warning', + line: item.line, + message: `"${item.tvg.id}" is not in the database` }) } - if (stream.tvg.id && !api.channels.find({ id: stream.tvg.id })) { + const channel_id = id.generate(item.name, country) + const found = blocklist.find( + blocked => + item.tvg.id.toLowerCase() === blocked.channel.toLowerCase() || + channel_id.toLowerCase() === blocked.channel.toLowerCase() + ) + if (found) { fileLog.push({ - type: 'warning', - line: stream.line, - message: `"${stream.tvg.id}" is not in the database` + type: 'error', + line: item.line, + message: `"${found.name}" is on the blocklist due to claims of copyright holders (${found.ref})` }) } } diff --git a/scripts/core/blocklist.js b/scripts/core/blocklist.js deleted file mode 100644 index ab2502c39..000000000 --- a/scripts/core/blocklist.js +++ /dev/null @@ -1,18 +0,0 @@ -const list = require('../data/blocklist') -const parser = require('./parser') - -const blocklist = {} - -blocklist.find = function (title, country) { - const name = parser.parseChannelName(title) - - return list.find(item => { - const regexp = new RegExp(item.regex, 'i') - const hasSameName = regexp.test(name) - const fromSameCountry = country === item.country - - return hasSameName && fromSameCountry - }) -} - -module.exports = blocklist diff --git a/scripts/core/id.js b/scripts/core/id.js index 0c21a7b9d..9fb7fd7e7 100644 --- a/scripts/core/id.js +++ b/scripts/core/id.js @@ -1,23 +1,19 @@ -const file = require('./file') -const parser = require('./parser') -const transliteration = require('transliteration') +const { transliterate } = require('transliteration') const id = {} -id.generate = function (title, filepath) { - const name = parser.parseChannelName(title) - const code = parser.parseCountryCode(filepath) +id.generate = function (name, code) { + if (!name || !code) return null - if (name && code) { - const slug = transliteration - .transliterate(name) - .replace(/\+/gi, 'Plus') - .replace(/[^a-z\d]+/gi, '') + name = name.replace(/ *\([^)]*\) */g, '') + name = name.replace(/ *\[[^)]*\] */g, '') + name = name.replace(/\+/gi, 'Plus') + name = name.replace(/[^a-z\d]+/gi, '') + name = name.trim() + name = transliterate(name) + code = code.toLowerCase() - return `${slug}.${code.toLowerCase()}` - } - - return null + return `${name}.${code}` } module.exports = id diff --git a/scripts/core/index.js b/scripts/core/index.js index ebb274394..e8e88ffd0 100644 --- a/scripts/core/index.js +++ b/scripts/core/index.js @@ -10,4 +10,3 @@ exports.store = require('./store') exports.markdown = require('./markdown') exports.api = require('./api') exports.id = require('./id') -exports.blocklist = require('./blocklist') diff --git a/scripts/core/parser.js b/scripts/core/parser.js index 531a93a3b..b54fd8f5a 100644 --- a/scripts/core/parser.js +++ b/scripts/core/parser.js @@ -28,23 +28,4 @@ parser.parseNumber = function (string) { return parsed } -parser.parseChannelName = function (string) { - return string - .trim() - .split(' ') - .map(s => s.trim()) - .filter(s => { - return !/\[|\]/i.test(s) && !/\((\d+)P\)/i.test(s) - }) - .join(' ') -} - -parser.parseCountryCode = function (filepath) { - if (!filepath) return null - const basename = file.basename(filepath) - const [_, code] = basename.match(/^([a-z]{2})(_|\.)/) || [null, null] - - return code -} - module.exports = parser diff --git a/scripts/data/.gitignore b/scripts/data/.gitignore index 6a1ce57ce..a3a0c8b5f 100644 --- a/scripts/data/.gitignore +++ b/scripts/data/.gitignore @@ -1,3 +1,2 @@ * -!.gitignore -!blocklist.json \ No newline at end of file +!.gitignore \ No newline at end of file diff --git a/scripts/data/blocklist.json b/scripts/data/blocklist.json index 6d1722d46..35d50e279 100644 --- a/scripts/data/blocklist.json +++ b/scripts/data/blocklist.json @@ -1,656 +1 @@ -[ - { - "name": "Animal Planet", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Animal Planet\\b" - }, - { - "name": "Arena 4", - "country": "HU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Arena( |)4\\b" - }, - { - "name": "Asian Food Network", - "country": "SG", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Asian Food Network\\b" - }, - { - "name": "Astro SuperSport", - "country": "MY", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Astro SuperSport\\b" - }, - { - "name": "Azteca 7", - "country": "MX", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Azteca 7\\b" - }, - { - "name": "beIN Sports", - "country": "QA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^beIN Sports\\b" - }, - { - "name": "Canal+ Sport", - "country": "FR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Canal( |)+ Sport\\b" - }, - { - "name": "Cooking Channel", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Cooking Channel\\b" - }, - { - "name": "DAZN", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^DAZN($| [1-4] .*)\\b" - }, - { - "name": "Diema Sport", - "country": "BG", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Diema Sport\\b" - }, - { - "name": "Digi Sport", - "country": "RO", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Digi Sport\\b" - }, - { - "name": "Discovery Asia", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Asia\\b" - }, - { - "name": "Discovery Channel", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Channel\\b" - }, - { - "name": "Discovery Civiliztion", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Civiliztion\\b" - }, - { - "name": "Discovery en Espanol", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery en Espanol\\b" - }, - { - "name": "Discovery Family", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Family\\b" - }, - { - "name": "Discovery Historia", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Historia\\b" - }, - { - "name": "Discovery History", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery History\\b" - }, - { - "name": "Discovery Home and Health", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Home and Health\\b" - }, - { - "name": "Discovery Life", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Life\\b" - }, - { - "name": "Discovery Science", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Science\\b" - }, - { - "name": "Discovery Shed", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Shed\\b" - }, - { - "name": "Discovery Theater", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Theater\\b" - }, - { - "name": "Discovery Travel and Living", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Travel and Living\\b" - }, - { - "name": "Discovery Turbo Xtra", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Turbo Xtra\\b" - }, - { - "name": "Discovery World", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery World\\b" - }, - { - "name": "Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery\\b" - }, - { - "name": "DIY Network", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^DIY Network\\b" - }, - { - "name": "DKiss", - "country": "ES", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^DKiss\\b" - }, - { - "name": "DMax", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^DMax\\b" - }, - { - "name": "Eleven Sports", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Eleven Sports($| [1-6] .*)\\b" - }, - { - "name": "ESPN", - "country": "US", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^ESPN($|[1-3]| .*)\\b" - }, - { - "name": "Eurosport", - "country": "FR", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Eurosport($| [1-2])\\b" - }, - { - "name": "eve", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^eve\\b" - }, - { - "name": "Familia Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Familia Discovery\\b" - }, - { - "name": "Fatafeat", - "country": "EG", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Fatafeat\\b" - }, - { - "name": "FEM", - "country": "NO", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^FEM\\b" - }, - { - "name": "Fine Living", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Fine Living\\b" - }, - { - "name": "Flow Sports", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Flow Sports\\b" - }, - { - "name": "Focus", - "country": "IT", - "reference": "https://github.zendesk.com/attachments/token/FL9J24PDKdm0zzJJ3tKyXonmA/?name=2022-02-01-nagra.rtf", - "regex": "^Focus\\b" - }, - { - "name": "Food Network", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Food Network\\b" - }, - { - "name": "food tv", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^food( |)tv\\b" - }, - { - "name": "Fox Sports", - "country": "US", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Fox Sports\\b" - }, - { - "name": "Frisbee", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Frisbee\\b" - }, - { - "name": "Futbol", - "country": "TJ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Futbol|Football TV|ТВ Футбол|Футбол)\\b" - }, - { - "name": "GTV Sports", - "country": "GH", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^GTV Sports\\b" - }, - { - "name": "Giallo", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Giallo\\b" - }, - { - "name": "GolfTV", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Golf( |)TV\\b" - }, - { - "name": "HGTV", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^HGTV\\b" - }, - { - "name": "Investigation Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^(Investigation Discovery|ID Investigation Discovery|ID Investigation|ID)\\b" - }, - { - "name": "K2", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^K2\\b" - }, - { - "name": "Living Channel", - "country": "NZ", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Living Channel\\b" - }, - { - "name": "Local Now", - "country": "US", - "reference": "https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf", - "regex": "^Local( |)Now" - }, - { - "name": "LookSport", - "country": "RO", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Look( |)Sport\\b" - }, - { - "name": "Magnolia Network", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/5994", - "regex": "^Magnolia( |)Network\\b" - }, - { - "name": "Mango", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Mango\\b" - }, - { - "name": "Match!", - "country": "RU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Match|Матч)\\b" - }, - { - "name": "Motortrend", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Motortrend\\b" - }, - { - "name": "Motor trend", - "country": "IT", - "reference": "https://github.zendesk.com/attachments/token/r5abHyVOYbswCkNSmo67CP0Px/?name=2022-02-01-nagra-2.rtf", - "regex": "^Motor trend\\b" - }, - { - "name": "Mola TV", - "country": "ID", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Mola TV($| .*)\\b" - }, - { - "name": "Movistar Liga de Campeones", - "country": "ES", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Movistar Liga de Campeones [1-8]\\b" - }, - { - "name": "Nova Sport", - "country": "CZ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Nova Sport [1-3]\\b" - }, - { - "name": "Nova Sports", - "country": "GR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Nova Sports [1-6]\\b" - }, - { - "name": "Nove", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Nove($| .*)\\b" - }, - { - "name": "PPTV HD 36", - "country": "TH", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^PPTV($| HD)\\b" - }, - { - "name": "One", - "country": "IL", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^One\\b" - }, - { - "name": "OWN", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^(OWN|Oprah)\\b" - }, - { - "name": "Quest Red", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Quest Red\\b" - }, - { - "name": "Quest", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Quest\\b" - }, - { - "name": "Real Time", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Real Time\\b" - }, - { - "name": "SABC Sport ", - "country": "ZA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^SABC Sport\\b" - }, - { - "name": "Setanta Sports", - "country": "IE", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Setanta Sports($| .*)\\b" - }, - { - "name": "Sky Sports", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Sky Sports\\b" - }, - { - "name": "Sky Sport Bundesliga", - "country": "DE", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Sky Sport Bundesliga [0-9]+\\b" - }, - { - "name": "Sky TG24", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/pull/2294", - "regex": "^Sky TG24\\b" - }, - { - "name": "Sony Ten", - "country": "IN", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Sony Ten [1-4]\\b" - }, - { - "name": "Spíler TV", - "country": "HU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Spíler( |[1-2] )TV\\b" - }, - { - "name": "Šport TV", - "country": "SI", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Šport|Sport) TV\\b" - }, - { - "name": "Sport Klub", - "country": "HU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Sport Klub|SK[1-9])\\b" - }, - { - "name": "SportsNet", - "country": "CA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^SportsNet\\b" - }, - { - "name": "StarHub TV", - "country": "SG", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^StarHub TV\\b" - }, - { - "name": "StarSat", - "country": "ZA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^StarSat\\b" - }, - { - "name": "StarTimes TV", - "country": "MZ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^StarTimes TV\\b" - }, - { - "name": "SuperSport", - "country": "AL", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^SuperSport [1-7]\\b" - }, - { - "name": "Tivibu Spor", - "country": "TR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Tivibu Spor\\b" - }, - { - "name": "TLC", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TLC\\b" - }, - { - "name": "Trvl Channel", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Trvl Channel\\b" - }, - { - "name": "TSN", - "country": "MT", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^TSN\\b" - }, - { - "name": "TTV", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TTV\\b" - }, - { - "name": "TV Norge", - "country": "NO", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TV Norge\\b" - }, - { - "name": "TV Varzish", - "country": "TJ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(TV Varzish|Varzish TV|Варзиш ТВ)\\b" - }, - { - "name": "TV3 Sport", - "country": "DK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^TV( |)3 Sport\\b" - }, - { - "name": "tvN Asia", - "country": "KR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^tvN($| Asia)\\b" - }, - { - "name": "Tvn 24 Bis", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Tvn(| )24 Bis\\b" - }, - { - "name": "TVN 24", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN 24\\b" - }, - { - "name": "Tvn 7", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Tvn 7\\b" - }, - { - "name": "TVN Extra", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Extra\\b" - }, - { - "name": "TVN Fabula", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Fabula\\b" - }, - { - "name": "TVN Meteo", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Meteo\\b" - }, - { - "name": "TVN Style", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Style\\b" - }, - { - "name": "TVN Turbo", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Turbo\\b" - }, - { - "name": "TVN Warszawa", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Warszawa\\b" - }, - { - "name": "TVN", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN\\b" - }, - { - "name": "V Sport", - "country": "NO", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^V Sport\\b" - }, - { - "name": "Vox", - "country": "NO", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Vox\\b" - }, - { - "name": "VTV Cab", - "country": "KR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^VTV( |)Cab\\b" - }, - { - "name": "World Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^World Discovery\\b" - }, - { - "name": "Xee", - "country": "DK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Xee\\b" - }, - { - "name": "XtvN", - "country": "KR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^X( |)tvN\\b" - } -] +[{"channel":"FoxSports1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetArgentina.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetAustralia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetEurope.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetHDWorldIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetJapan.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetRossiya.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetSoutheastAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetTaiwan.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AnimalPlanetWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Arena4.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"AsianFoodNetwork.sg","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"AstroSuperSport.my","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"AstroSuperSport2.my","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"AstroSuperSport3.my","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"AstroSuperSport4.my","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Azteca7.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Azteca7Coahuila.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Azteca7MexicoCity.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Azteca7NuevoLeon.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Azteca7Tamaulipas.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1Australia.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1HongKong.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1Indonesia.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1Thailand.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports1Turkiye.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2Australia.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2HongKong.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2Indonesia.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2Thailand.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports2Turkiye.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports3.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports3Australia.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports3France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports3Turkiye.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports4.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports4Turkiye.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports5.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports6.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports7.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSports8.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsCanada.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsenEspanol.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsEnglish1.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsEnglish2.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsEnglish3.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsFrench1.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsFrench2.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsFrench3.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsHaber.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMalaysiaSingapore.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax1.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax10France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax1Turkiye.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax2.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax2Turkiye.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax3.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax3France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax4.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax4France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax5.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax5France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax6.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax6France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax7France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax8France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMax9France.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsMaxMalaysiaSingapore.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsNews.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsPremium1.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsPremium2.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsPremium3.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsUSA.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsXtra1.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"BeInSportsXtra2.qa","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport1.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport2.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport2Polska.pl","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport3.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport3Polska.pl","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport4.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport4Polska.pl","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSport5.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSportFrance.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSportPolska.pl","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSportReunion.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CanalPlusSportsMyanmar.fr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"CookingChannel.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"CookingChannelCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DAZN1Deutschland.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN1Espana.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN1Italia.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN1PlusItalia.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN2Deutschland.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN2Espana.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN3Espana.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DAZN4Espana.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DiemaSport.bg","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DiemaSport2.bg","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DiemaSport3.bg","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport1Hungary.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport1Romania.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport1Slovakia.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport2Hungary.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport2Romania.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport2Slovakia.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport3Hungary.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport3Romania.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport3Slovakia.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DigiSport4Romania.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"DiscoveryAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelAtlanticoSur.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelAustralia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelAustraliaPlus2.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelBulgaria.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelCentralEurope.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelChile.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelChina.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelChinaHotels.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelDanmark.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelDeutschland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelEurope.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelFinland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelFrance.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelHungary.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelIberia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelItalia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelItaliaPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelJapan.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelMexico.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelMiddleEastAfrica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelNederland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelNorge.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelPhilippines.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelRomania.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelRossiya.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelSoutheastAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelSrbija.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelSverige.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelTaiwan.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelTurkiye.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryChannelWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryCivilization.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryenEspanol.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryFamilia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryFamily.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryFamilyAfrica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHDWorldAustralia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHDWorldIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHDWorldLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHistoria.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHistory.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHistoryPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHomeHealthBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHomeHealthLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryHomeHealthSur.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsAmericaLatina.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsArgentina.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsChile.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsColombia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryKidsSoutheastAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryLifeChannel.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryLifePolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScience.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceFrance.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceItalia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceMiddleEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoverySciencePolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceRossiya.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceSoutheastAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceTurkiye.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryScienceUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTheater.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboAmericaLatina.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboAustralia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboAustraliaNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboAustraliaPlus2.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryTurboUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryUltra.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryVelocity.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DiscoveryWorldBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DIYNetworkCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DIYNetworkEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DIYNetworkUSA.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DIYNetworkWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DKiss.es","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXAustria.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXDeutschland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXItalia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXSoutheastAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXTurkiye.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"DMAXUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"ElevenProLeague1FR.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenProLeague1NL.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports1FR.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports1NL.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports1Polska.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports1Portugal.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports1Taiwan.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports2NL.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports2Polska.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports2Portugal.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports3Polska.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports3Portugal.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports4Polska.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports4Portugal.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports5Portugal.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSports6Portugal.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenSportsUSA.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ElevenTaiwan.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Africa.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Alternate.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2AmericaLatina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Andino.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Australia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Brasil.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Caribbean.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Colombia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Nederland.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Sur.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2US.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2Venezuela.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN2West.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN3AmericaLatina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN3Andino.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN3Nederland.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN3Norte.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN3Sur.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPN4Nederland.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNAfrica.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNAlternate.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNAmericaLatina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNAustralia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNBasesLoaded.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNBrasil.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNBuzzerBeater.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCaribbean.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNChile.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNClassicCanada.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNClassicUSA.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra1.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra2.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra3.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra4.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra5.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra6.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra7.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNCollegeExtra8.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNDeportes.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNDos.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNDosMexico.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNews.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNExtraAmericaLatina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNExtraBrasil.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNGoalLine.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNInternational.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNMexico.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNmosaico.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNNederland.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNNews.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNPacificRim.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNPlus.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNPolo.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNU.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNUS.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNUSAlternate.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNUWest.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"ESPNWest.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Eurosport1.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Danmark.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Finland.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1France.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Germany.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Italia.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Nordic.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Norge.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Polska.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Romania.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Rossiya.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1Sverige.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport1UK.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Danmark.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2France.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Italia.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2NorthEast.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Polska.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Romania.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Rossiya.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Sverige.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2UK.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport2Xtra.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD1.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD2.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD3.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD4.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD5.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD6.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD7.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD8.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport360HD9.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eurosport4K.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportAsia.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportIndia.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportNorge.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportPluss1.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportPluss2.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportPluss3.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"EurosportPluss4.fr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Eve.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Fatafeat.eg","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FEM.no","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FlowSports.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Focus.it","ref":"https://github.zendesk.com/attachments/token/FL9J24PDKdm0zzJJ3tKyXonmA/?name=2022-02-01-nagra.rtf"},{"channel":"FoodNetworkAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkEMEA.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkItalia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkMexico.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkRussia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodNetworkWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoodTV.kr","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"FoxSports1.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports1Chile.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2Argentina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2Asia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2Brasil.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2Chile.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2LatinAmerica.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2Malaysia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports2Mexico.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports3Argentina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports3Asia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports3LatinAmerica.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports3Mexico.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports503.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports505.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSports506.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsArgentina.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsAsia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsBrasil.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsChile.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsColombia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsConoNorte.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsConoSur.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsHDLatinAmerica.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsLatinAmerica.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsMalaysia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsMexico.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsMore.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsNewsAustralia.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsNewsChannel.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsPhilippines.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsPremium.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsRacing.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"FoxSportsVietnam.us","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Frisbee.it","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"Futbol.tj","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Giallo.it","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"GolfTV.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"GTVSportsPlus.gh","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"HGTVArabia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVDeutschland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVItalia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVPanRegional.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVRussia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVSouthAfrica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"HGTVWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryAfrica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryAustralia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryEurope.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryFrance.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryHungary.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryNederland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryRossiya.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoverySur.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoverySverige.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"InvestigationDiscoveryWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"ITVNEurope.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"ITVNExtra.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"ITVNUSA.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"K2.it","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"KDOCDT6.us","ref":"https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf"},{"channel":"KOFYDT6.us","ref":"https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf"},{"channel":"KUBEDT7.us","ref":"https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf"},{"channel":"LivingChannel.nz","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"LookSport.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"LookSport2.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"LookSport3.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"LookSportPlus.ro","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MagnoliaNetworkEast.us","ref":"https://github.com/iptv-org/iptv/issues/5994"},{"channel":"MagnoliaNetworkWest.us","ref":"https://github.com/iptv-org/iptv/issues/5994"},{"channel":"Match.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchArena.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchFutbol1.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchFutbol2.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchFutbol3.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchIgra.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchPlaneta.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchPremier.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MatchStrana.ru","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MolaTV1.id","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MolaTV2.id","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MotorTrend.it","ref":"https://github.zendesk.com/attachments/token/r5abHyVOYbswCkNSmo67CP0Px/?name=2022-02-01-nagra-2.rtf"},{"channel":"Motortrend.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"MovistarLigadeCampeones.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones1.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones2.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones3.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones4.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones5.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones6.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones7.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"MovistarLigadeCampeones8.es","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSport1.cz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSport2.cz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSport3.cz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSport4.cz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Novasports1.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSports2.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Novasports24HD.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSports3.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSports4.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovaSports5.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovasportsExtra1.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"NovasportsExtra3.gr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Nove.it","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"One.il","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"OprahWinfreyNetworkCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"OprahWinfreyNetworkEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"OprahWinfreyNetworkWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"PPTVHD36.th","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Quest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"QuestRedIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"QuestRedUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"QuestRedUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"QuestUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"QuestUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"RealTimeAfrica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"RealTimeItalia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"SABCSport.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SetantaSports1Evraziya.ie","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SetantaSports2Evraziya.ie","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SetantaSportsGeorgia.ie","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SetantaSportsPlusGeorgia.ie","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SetantaSportsUkraine.ie","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport1.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport1.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport10.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport10.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport11.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport11.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport12.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport12.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport13.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport14.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport2.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport2.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport2.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport24.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport3.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport3.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport3.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport4.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport4.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport4.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport5.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport5.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport5.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport6.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport6.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport6.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport7.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport7.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport7BeInSports.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport8.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport8.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport8.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport9.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport9.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySport9.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportArena.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportAustria1.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportAustria2.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportAustria3.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportAustria4.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga1.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga10.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga2.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga3.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga4.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga5.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga6.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga7.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga8.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesliga9.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportBundesligaUHD.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportCollection.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportF1.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportF1.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportFootball.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportMotoGP.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportNBA.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportNews.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportNews.nz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports.kr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports1.au","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports1.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports16.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports2.au","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports2.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports21.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports24.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports3.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports34.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports6.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports8.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySports9.mx","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive1.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive2.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive3.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive4.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive5.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive6.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive7.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive8.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsActive9.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsArena.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsBoxOffice.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportSerieA.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsFootballIreland.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsFootballUK.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsMainEventinPubs.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsMainEventIreland.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsMainEventUK.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsMix.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsNewsinPubs.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsNewsIreland.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportsNewsUK.uk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportUHD.de","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkySportUno.it","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SkyTG24.it","ref":"https://github.com/iptv-org/iptv/pull/2294"},{"channel":"SkyTG24Canale50.it","ref":"https://github.com/iptv-org/iptv/pull/2294"},{"channel":"SkyTG24PrimoPiano.it","ref":"https://github.com/iptv-org/iptv/pull/2294"},{"channel":"SonyTen1.in","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SonyTen1HD.in","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SonyTen2.in","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SonyTen3.in","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SpilerTV1.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SpilerTV2.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub1CrnaGora.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub1Hrvatska.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub1Slovenija.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub1Srbija.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub2Slovenija.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub2Srbija.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub3.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub4.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub5.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlub6.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlubEsports.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlubGolf.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlubHD.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlubPolska.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportKlubStart.hu","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNet360.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetCanucks.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetEast.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetFlames.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetOilers.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetOne.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetOntario.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetOntarioOttawa.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetOntarioToronto.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetPacific.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetVancouver.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetWest.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportsNetWorld.ca","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportTV1.si","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportTV2.si","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SportTV3.si","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"StarHubTV.sg","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"StarTimesTVMocambique.mz","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSports1.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSports2.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSports3.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSportsArena.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSportsFocus.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSportsLife.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"STSportsPremium.cn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport1.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport2.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport3.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport4.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport5.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport6.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSport7.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportAction.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportActionAfrica.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportActionPortuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportBlitz.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportBlitzAfrica.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportBlitzPortuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportCSN.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportFootball.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportFootballAfrica.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportFootballPlus.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportFootballPlusAfrica.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportFootballPlusPortuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportFootballPortuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportGrandstand.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportGrandstandAfrica.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportGrandstandPortuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportKosova1.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportKosova2.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportKosova3.al","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportMaximo1.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportMaximo1Africa.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportMaximo2.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportMaximo2Africa.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportMaximo360.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT2.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT3.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT4.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT5.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT6.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT7.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportOTT8.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportPlay.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportPSL.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportSelect1.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportSelect2.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety1.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety1Africa.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety1Portuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety2.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety2Africa.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety2Portuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety3.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety3Africa.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety3Portuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety4.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety4Africa.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"SuperSportVariety4Portuguese.za","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TivibuSpor.tr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TivibuSpor2.tr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TivibuSpor3.tr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TivibuSpor4.tr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TLCAfrica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCArabia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCArgentina.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCAustralia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCAustraliaPlus2.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCAustria.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCBalkan.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCBrasil.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCCanada.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCDanmark.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCGermany.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCHDIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCHDLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCHungary.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCIndia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCIreland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCLatinoamerica.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCMexico.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCNederland.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCNewZealand.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCNorge.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCPanRegional.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCPhilippines.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCRomania.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCRussia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCSoutheastAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCSverige.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCTaiwan.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCTurkiye.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCUK.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCUKPlus1.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TLCWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TravelChannel.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TravelChannelAsia.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TravelChannelEast.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TravelChannelEurope.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TravelChannelPolska.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TravelChannelWest.us","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TSN1.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN2.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN3.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN4.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN5.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN6.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN7.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TSN8.mt","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TTV.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TV3Sport.dk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TVN.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVN24.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVN24BiS.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVN7.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVNAsia.kr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"TVNFabula.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVNorge.no","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVNStyle.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVNTurbo.pl","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"TVVarzish.tj","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"Vox.no","ref":"https://github.com/iptv-org/iptv/issues/1831"},{"channel":"VSport1Norge.no","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSport1Suomi.fi","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSport1Sverige.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSport2.no","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSport2Suomi.fi","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSport3.no","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportExtra.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportFootball.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportLive1.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportLive2.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportLive3.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportLive4.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportLive5.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportPlus.no","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportPlusSuomi.fi","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportPremium.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportUltraHD.se","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VSportUrheilu.fi","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"VTVCab7.vn","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"WDPNDT7.us","ref":"https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf"},{"channel":"WNWTLD1.us","ref":"https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf"},{"channel":"WRJKLP3.us","ref":"https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf"},{"channel":"Xee.dk","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"},{"channel":"XTVN.kr","ref":"https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md"}] \ No newline at end of file diff --git a/tests/__data__/input/channels/us_blocked.m3u b/tests/__data__/input/channels/us_blocked.m3u index 0a1d4b761..9da9a3dda 100644 --- a/tests/__data__/input/channels/us_blocked.m3u +++ b/tests/__data__/input/channels/us_blocked.m3u @@ -1,3 +1,7 @@ #EXTM3U -#EXTINF:-1 tvg-id="" tvg-country="TH" tvg-language="Thai" tvg-logo="" group-title="Sports",Fox Sports 2 Asia (Thai) (720p) +#EXTINF:-1 tvg-id="",Fox Sports 2 Asia (Thai) (720p) https://example.com/playlist.m3u8 +#EXTINF:-1 tvg-id="",TVN +https://example.com/playlist2.m3u8 +#EXTINF:-1 tvg-id="EverydayHeroes.us",Everyday Heroes (720p) +https://a.jsrdn.com/broadcast/7b1451fa52/+0000/c.m3u8 diff --git a/tests/__data__/input/data/blocklist.json b/tests/__data__/input/data/blocklist.json index 8a2514397..9b1abd250 100644 --- a/tests/__data__/input/data/blocklist.json +++ b/tests/__data__/input/data/blocklist.json @@ -1,644 +1 @@ -[ - { - "name": "Animal Planet", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Animal Planet\\b" - }, - { - "name": "Arena 4", - "country": "HU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Arena( |)4\\b" - }, - { - "name": "Asian Food Network", - "country": "SG", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Asian Food Network\\b" - }, - { - "name": "Astro SuperSport", - "country": "MY", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Astro SuperSport\\b" - }, - { - "name": "Azteca 7", - "country": "MX", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Azteca 7\\b" - }, - { - "name": "beIN Sports", - "country": "QA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^beIN Sports\\b" - }, - { - "name": "Canal+ Sport", - "country": "FR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Canal( |)+ Sport\\b" - }, - { - "name": "Cooking Channel", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Cooking Channel\\b" - }, - { - "name": "DAZN", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^DAZN($| [1-4] .*)\\b" - }, - { - "name": "Diema Sport", - "country": "BG", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Diema Sport\\b" - }, - { - "name": "Digi Sport", - "country": "RO", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Digi Sport\\b" - }, - { - "name": "Discovery Asia", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Asia\\b" - }, - { - "name": "Discovery Channel", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Channel\\b" - }, - { - "name": "Discovery Civiliztion", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Civiliztion\\b" - }, - { - "name": "Discovery en Espanol", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery en Espanol\\b" - }, - { - "name": "Discovery Family", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Family\\b" - }, - { - "name": "Discovery Historia", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Historia\\b" - }, - { - "name": "Discovery History", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery History\\b" - }, - { - "name": "Discovery Home and Health", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Home and Health\\b" - }, - { - "name": "Discovery Life", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Life\\b" - }, - { - "name": "Discovery Science", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Science\\b" - }, - { - "name": "Discovery Shed", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Shed\\b" - }, - { - "name": "Discovery Theater", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Theater\\b" - }, - { - "name": "Discovery Travel and Living", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Travel and Living\\b" - }, - { - "name": "Discovery Turbo Xtra", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery Turbo Xtra\\b" - }, - { - "name": "Discovery World", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery World\\b" - }, - { - "name": "Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Discovery\\b" - }, - { - "name": "DIY Network", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^DIY Network\\b" - }, - { - "name": "DKiss", - "country": "ES", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^DKiss\\b" - }, - { - "name": "DMax", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^DMax\\b" - }, - { - "name": "Eleven Sports", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Eleven Sports($| [1-6] .*)\\b" - }, - { - "name": "ESPN", - "country": "US", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^ESPN($|[1-3]| .*)\\b" - }, - { - "name": "Eurosport", - "country": "FR", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Eurosport($| [1-2])\\b" - }, - { - "name": "eve", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^eve\\b" - }, - { - "name": "Familia Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Familia Discovery\\b" - }, - { - "name": "Fatafeat", - "country": "EG", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Fatafeat\\b" - }, - { - "name": "FEM", - "country": "NO", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^FEM\\b" - }, - { - "name": "Fine Living", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Fine Living\\b" - }, - { - "name": "Flow Sports", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Flow Sports\\b" - }, - { - "name": "Food Network", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Food Network\\b" - }, - { - "name": "food tv", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^food( |)tv\\b" - }, - { - "name": "Fox Sports", - "country": "US", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Fox Sports\\b" - }, - { - "name": "Frisbee", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Frisbee\\b" - }, - { - "name": "Futbol", - "country": "TJ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Futbol|Football TV|ТВ Футбол|Футбол)\\b" - }, - { - "name": "GTV Sports", - "country": "GH", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^GTV Sports\\b" - }, - { - "name": "Giallo", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Giallo\\b" - }, - { - "name": "GolfTV", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Golf( |)TV\\b" - }, - { - "name": "HGTV", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^HGTV\\b" - }, - { - "name": "Investigation Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^(Investigation Discovery|ID Investigation Discovery|ID Investigation|ID)\\b" - }, - { - "name": "K2", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^K2\\b" - }, - { - "name": "Living Channel", - "country": "NZ", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Living Channel\\b" - }, - { - "name": "Local Now", - "country": "US", - "reference": "https://github.zendesk.com/attachments/token/qCOIlhjNbuhARY64ffpnzv9Ef/?name=2022-01-06-localnow.rtf", - "regex": "^Local( |)Now" - }, - { - "name": "LookSport", - "country": "RO", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Look( |)Sport\\b" - }, - { - "name": "Magnolia Network", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/5994", - "regex": "^Magnolia( |)Network\\b" - }, - { - "name": "Mango", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Mango\\b" - }, - { - "name": "Match!", - "country": "RU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Match|Матч)\\b" - }, - { - "name": "Motortrend", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Motortrend\\b" - }, - { - "name": "Mola TV", - "country": "ID", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Mola TV($| .*)\\b" - }, - { - "name": "Movistar Liga de Campeones", - "country": "ES", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Movistar Liga de Campeones [1-8]\\b" - }, - { - "name": "Nova Sport", - "country": "CZ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Nova Sport [1-3]\\b" - }, - { - "name": "Nova Sports", - "country": "GR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Nova Sports [1-6]\\b" - }, - { - "name": "Nove", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Nove($| .*)\\b" - }, - { - "name": "PPTV HD 36", - "country": "TH", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^PPTV($| HD)\\b" - }, - { - "name": "One", - "country": "IL", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^One\\b" - }, - { - "name": "OWN", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^(OWN|Oprah)\\b" - }, - { - "name": "Quest Red", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Quest Red\\b" - }, - { - "name": "Quest", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Quest\\b" - }, - { - "name": "Real Time", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Real Time\\b" - }, - { - "name": "SABC Sport ", - "country": "ZA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^SABC Sport\\b" - }, - { - "name": "Setanta Sports", - "country": "IE", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Setanta Sports($| .*)\\b" - }, - { - "name": "Sky Sports", - "country": "UK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Sky Sports\\b" - }, - { - "name": "Sky Sport Bundesliga", - "country": "DE", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Sky Sport Bundesliga [0-9]+\\b" - }, - { - "name": "Sky TG24", - "country": "IT", - "reference": "https://github.com/iptv-org/iptv/pull/2294", - "regex": "^Sky TG24\\b" - }, - { - "name": "Sony Ten", - "country": "IN", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Sony Ten [1-4]\\b" - }, - { - "name": "Spíler TV", - "country": "HU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Spíler( |[1-2] )TV\\b" - }, - { - "name": "Šport TV", - "country": "SI", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Šport|Sport) TV\\b" - }, - { - "name": "Sport Klub", - "country": "HU", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(Sport Klub|SK[1-9])\\b" - }, - { - "name": "SportsNet", - "country": "CA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^SportsNet\\b" - }, - { - "name": "StarHub TV", - "country": "SG", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^StarHub TV\\b" - }, - { - "name": "StarSat", - "country": "ZA", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^StarSat\\b" - }, - { - "name": "StarTimes TV", - "country": "MZ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^StarTimes TV\\b" - }, - { - "name": "SuperSport", - "country": "AL", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^SuperSport [1-7]\\b" - }, - { - "name": "Tivibu Spor", - "country": "TR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Tivibu Spor\\b" - }, - { - "name": "TLC", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TLC\\b" - }, - { - "name": "Trvl Channel", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Trvl Channel\\b" - }, - { - "name": "TSN", - "country": "MT", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^TSN\\b" - }, - { - "name": "TTV", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TTV\\b" - }, - { - "name": "TV Norge", - "country": "NO", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TV Norge\\b" - }, - { - "name": "TV Varzish", - "country": "TJ", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^(TV Varzish|Varzish TV|Варзиш ТВ)\\b" - }, - { - "name": "TV3 Sport", - "country": "DK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^TV( |)3 Sport\\b" - }, - { - "name": "tvN Asia", - "country": "KR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^tvN($| Asia)\\b" - }, - { - "name": "Tvn 24 Bis", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Tvn(| )24 Bis\\b" - }, - { - "name": "TVN 24", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN 24\\b" - }, - { - "name": "Tvn 7", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Tvn 7\\b" - }, - { - "name": "TVN Extra", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Extra\\b" - }, - { - "name": "TVN Fabula", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Fabula\\b" - }, - { - "name": "TVN Meteo", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Meteo\\b" - }, - { - "name": "TVN Style", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Style\\b" - }, - { - "name": "TVN Turbo", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Turbo\\b" - }, - { - "name": "TVN Warszawa", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN Warszawa\\b" - }, - { - "name": "TVN", - "country": "PL", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^TVN\\b" - }, - { - "name": "V Sport", - "country": "NO", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^V Sport\\b" - }, - { - "name": "Vox", - "country": "NO", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^Vox\\b" - }, - { - "name": "VTV Cab", - "country": "KR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^VTV( |)Cab\\b" - }, - { - "name": "World Discovery", - "country": "US", - "reference": "https://github.com/iptv-org/iptv/issues/1831", - "regex": "^World Discovery\\b" - }, - { - "name": "Xee", - "country": "DK", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^Xee\\b" - }, - { - "name": "XtvN", - "country": "KR", - "reference": "https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md", - "regex": "^X( |)tvN\\b" - } -] +[{"channel":"FoxSports1.us","ref":"https://github.com/iptv-org/iptv/issues/0000"},{"channel":"FoxSports2Asia.us","ref":"https://github.com/iptv-org/iptv/issues/0000"},{"channel":"TVN.pl","ref":"https://github.com/iptv-org/iptv/issues/0000"},{"channel":"Eve.us","ref":"https://github.com/iptv-org/iptv/issues/0000"}] \ No newline at end of file diff --git a/tests/__data__/input/data/channels.json b/tests/__data__/input/data/channels.json index b267e0e5c..2d7128e36 100644 --- a/tests/__data__/input/data/channels.json +++ b/tests/__data__/input/data/channels.json @@ -36,6 +36,74 @@ "is_nsfw": false, "logo": "https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" }, + { + "id": "Eve.us", + "name": "Eve", + "network": null, + "country": "US", + "subdivision": null, + "city": null, + "broadcast_area": [ + "c/US" + ], + "languages": [ + "eng" + ], + "categories": [], + "is_nsfw": false, + "logo": "https://www.lyngsat.com/logo/tv/ee/eve_us.png" + }, + { + "id": "EverydayHeroes.us", + "name": "Everyday Heroes", + "network": null, + "country": "US", + "subdivision": null, + "city": null, + "broadcast_area": [ + "c/US" + ], + "languages": [ + "eng" + ], + "categories": [], + "is_nsfw": false, + "logo": "https://i.imgur.com/Iam3ol3.png" + }, + { + "id": "FoxSports1.us", + "name": "Fox Sports 1", + "network": null, + "country": "US", + "subdivision": null, + "city": null, + "broadcast_area": [ + "c/US" + ], + "languages": [ + "eng" + ], + "categories": [], + "is_nsfw": false, + "logo": "https://cdn.tvpassport.com/image/station/100x100/fs1.png" + }, + { + "id": "FoxSports2Asia.us", + "name": "Fox Sports 2 Asia", + "network": null, + "country": "US", + "subdivision": null, + "city": null, + "broadcast_area": [ + "c/US" + ], + "languages": [ + "eng" + ], + "categories": [], + "is_nsfw": false, + "logo": null + }, { "id": "LDPRTV.ru", "name": "LDPR TV", @@ -74,6 +142,23 @@ "is_nsfw": false, "logo": "https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" }, + { + "id": "TVN.pl", + "name": "TVN", + "network": null, + "country": "PL", + "subdivision": null, + "city": null, + "broadcast_area": [ + "c/PL" + ], + "languages": [ + "pol" + ], + "categories": [], + "is_nsfw": false, + "logo": "https://www.sms.cz/kategorie/televize/bmp/loga/velka/TVN.png" + }, { "id": "VisitXTV.nl", "name": "Visit-X TV", diff --git a/tests/commands/playlist/validate.test.js b/tests/commands/playlist/validate.test.js index 9e481bce2..aff4f819a 100644 --- a/tests/commands/playlist/validate.test.js +++ b/tests/commands/playlist/validate.test.js @@ -1,22 +1,24 @@ const { execSync } = require('child_process') -it('show error if channel name in the blocklist', () => { +it('show an error if channel name in the blocklist', () => { try { - execSync( + const stdout = execSync( 'DATA_DIR=tests/__data__/input/data npm run playlist:validate -- tests/__data__/input/channels/us_blocked.m3u', { encoding: 'utf8' } ) + console.log(stdout) + process.exit(1) } catch (err) { expect(err.status).toBe(1) expect(err.stdout).toBe( - `\n> playlist:validate\n> node scripts/commands/playlist/validate.js "tests/__data__/input/channels/us_blocked.m3u"\n\n\ntests/__data__/input/channels/us_blocked.m3u\n 2 error "Fox Sports" is on the blocklist due to claims of copyright holders (https://github.com/github/dmca/blob/master/2020/09/2020-09-16-dfl.md)\n\n1 problems (1 errors, 0 warnings)\n` + `\n> playlist:validate\n> node scripts/commands/playlist/validate.js "tests/__data__/input/channels/us_blocked.m3u"\n\nloading blocklist...\nfound 4 records\n\ntests/__data__/input/channels/us_blocked.m3u\n 2 error "Fox Sports 2 Asia" is on the blocklist due to claims of copyright holders (https://github.com/iptv-org/iptv/issues/0000)\n\n1 problems (1 errors, 0 warnings)\n` ) } }) -it('show warning if channel has wrong id', () => { +it('show a warning if channel has wrong id', () => { const stdout = execSync( 'DATA_DIR=tests/__data__/input/data npm run playlist:validate -- tests/__data__/input/channels/wrong_id.m3u', { @@ -25,6 +27,6 @@ it('show warning if channel has wrong id', () => { ) expect(stdout).toBe( - `\n> playlist:validate\n> node scripts/commands/playlist/validate.js "tests/__data__/input/channels/wrong_id.m3u"\n\n\ntests/__data__/input/channels/wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n` + `\n> playlist:validate\n> node scripts/commands/playlist/validate.js "tests/__data__/input/channels/wrong_id.m3u"\n\nloading blocklist...\nfound 4 records\n\ntests/__data__/input/channels/wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n` ) })