Merge pull request #768 from iptv-org/add-i.mjh.nz

Add guide from i.mjh.nz
This commit is contained in:
Aleksandr Statciuk 2022-05-03 20:12:05 +03:00 committed by GitHub
commit 20aa2cc949
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 629 additions and 144 deletions

17
.github/workflows/i.mjh.nz.yml vendored Normal file
View file

@ -0,0 +1,17 @@
name: i.mjh.nz
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
workflow_run:
workflows: [_trigger]
types:
- completed
jobs:
load:
uses: ./.github/workflows/_load.yml
with:
site: ${{github.workflow}}
secrets:
APP_ID: ${{ secrets.APP_ID }}
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

268
package-lock.json generated
View file

@ -14,7 +14,7 @@
"commander": "^8.2.0",
"csv-parser": "^3.0.0",
"dayjs": "^1.10.8",
"epg-grabber": "^0.25.4",
"epg-grabber": "^0.26.0",
"epg-parser": "^0.1.6",
"form-data": "^4.0.0",
"fs-extra": "^10.0.1",
@ -26,7 +26,7 @@
"lodash": "^4.17.21",
"markdown-include": "^0.4.3",
"mockdate": "^3.0.5",
"nedb-promises": "^6.0.3",
"nedb-promises": "^4.1.5",
"node-cleanup": "^2.1.2",
"node-gzip": "^1.1.2",
"parse-duration": "^1.0.0",
@ -867,26 +867,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/@seald-io/binary-search-tree": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.2.tgz",
"integrity": "sha512-+pYGvPFAk7wUR+ONMOlc6A+LUN4kOCFwyPLjyaeS7wVibADPHWYJNYsNtyIAwjF1AXQkuaXElnIc4XjKt55QZA=="
},
"node_modules/@seald-io/nedb": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-2.2.2.tgz",
"integrity": "sha512-z91J3pem4ENzHuu9BilOSdlGL2S14OQYePPdvBcPHgHr+s51VIUwQARcOjx21KvtkA27vEpgPqzrVKh7nSlIfw==",
"dependencies": {
"@seald-io/binary-search-tree": "^1.0.2",
"async": "0.2.10",
"localforage": "^1.9.0"
}
},
"node_modules/@seald-io/nedb/node_modules/async": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
},
"node_modules/@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
@ -1270,16 +1250,17 @@
"follow-redirects": "^1.14.0"
}
},
"node_modules/axios-cache-adapter": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/axios-cache-adapter/-/axios-cache-adapter-2.7.3.tgz",
"integrity": "sha512-A+ZKJ9lhpjthOEp4Z3QR/a9xC4du1ALaAsejgRGrH9ef6kSDxdFrhRpulqsh9khsEnwXxGfgpUuDp1YXMNMEiQ==",
"node_modules/axios-cache-interceptor": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-0.10.3.tgz",
"integrity": "sha512-oyHlhmA6zzZJDk/ZMPWPNmO3z8gBU3mWIqAZy+GIUsvwpmwyPlC2XvZ3PTOZHgpWI2kEocMUhk3+w9VwMXfZ4w==",
"dependencies": {
"cache-control-esm": "1.0.0",
"md5": "^2.2.1"
"cache-parser": "^1.2.4",
"fast-defer": "^1.1.7",
"object-code": "^1.2.2"
},
"peerDependencies": {
"axios": "~0.21.1"
"funding": {
"url": "https://github.com/ArthurFiorette/axios-cache-interceptor?sponsor=1"
}
},
"node_modules/axios-cookiejar-support": {
@ -1438,6 +1419,14 @@
}
]
},
"node_modules/binary-search-tree": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
"integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=",
"dependencies": {
"underscore": "~1.4.4"
}
},
"node_modules/bindings": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz",
@ -1541,10 +1530,10 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/cache-control-esm": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/cache-control-esm/-/cache-control-esm-1.0.0.tgz",
"integrity": "sha512-Fa3UV4+eIk4EOih8FTV6EEsVKO0W5XWtNs6FC3InTfVz+EjurjPfDXY5wZDo/lxjDxg5RjNcurLyxEJBcEUx9g=="
"node_modules/cache-parser": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.4.tgz",
"integrity": "sha512-O0KwuHuJnbHUrghHi2kGp0SxnWSIBXTYt7M8WVhW0kbPRUNUKoE/Of6e1rRD6AAxmfxFunKnt90yEK09D+sc5g=="
},
"node_modules/cacheable-lookup": {
"version": "5.0.4",
@ -1644,14 +1633,6 @@
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
},
"node_modules/charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
"engines": {
"node": "*"
}
},
"node_modules/cheerio": {
"version": "1.0.0-rc.10",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz",
@ -1906,14 +1887,6 @@
"node": ">= 8"
}
},
"node_modules/crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
"engines": {
"node": "*"
}
},
"node_modules/css-select": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz",
@ -2252,12 +2225,12 @@
}
},
"node_modules/epg-grabber": {
"version": "0.25.4",
"resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.25.4.tgz",
"integrity": "sha512-fQh04OaNY+LsxtMerT3tOMfcaiMe0f5ZaXjjcm2TnnB4sPN0+KkSmX/uy24NErggBgV+O0jyl6+zulARciojtA==",
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.26.0.tgz",
"integrity": "sha512-QOJsPMhWi+s3jcx0U8f7ZlQfBgsaP56w1JdSascZ92yFiR2bvcdEFaAJuzAgKoQiicoXDKdzoK5r18mjLg05KQ==",
"dependencies": {
"axios": "^0.21.1",
"axios-cache-adapter": "^2.7.3",
"axios-cache-interceptor": "^0.10.3",
"axios-cookiejar-support": "^1.0.1",
"axios-mock-adapter": "^1.20.0",
"commander": "^7.1.0",
@ -2446,6 +2419,11 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-defer": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.7.tgz",
"integrity": "sha512-tJ01ulDWT2WhqxMKS20nXX6wyX2iInBYpbN3GO7yjKwXMY4qvkdBRxak9IFwBLlFDESox+SwSvqMCZDfe1tqeg=="
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@ -4112,21 +4090,6 @@
"markdown-include": "bin/cli.js"
}
},
"node_modules/md5": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"dependencies": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
}
},
"node_modules/md5/node_modules/is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@ -4253,14 +4216,31 @@
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
"node_modules/nedb-promises": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-6.0.3.tgz",
"integrity": "sha512-pd0N6EsIPhXsfqdLcBJGig1FoTdV8wtuiXB7rBUqycJdUSA6wdI5BlkwEAjDBWIwZc4+xqBHRLtuAB7/bjS+rg==",
"node_modules/nedb": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz",
"integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=",
"dependencies": {
"@seald-io/nedb": "^2.2.0"
"async": "0.2.10",
"binary-search-tree": "0.2.5",
"localforage": "^1.3.0",
"mkdirp": "~0.5.1",
"underscore": "~1.4.4"
}
},
"node_modules/nedb-promises": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-4.1.5.tgz",
"integrity": "sha512-mnzB7y5tE1MXGDYurFNJeX2Kh4oEyH88uBCXOm4jDXiu6dAALDg8+urIuSuo15oo8spMbWzDsnD03KHKyuBjNw==",
"dependencies": {
"nedb": "^1.8.0"
}
},
"node_modules/nedb/node_modules/async": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
},
"node_modules/needle": {
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
@ -4466,6 +4446,11 @@
"node": ">=0.10.0"
}
},
"node_modules/object-code": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/object-code/-/object-code-1.2.2.tgz",
"integrity": "sha512-ZSbEQdei4ElzuDM4BmazKSwINacocBf3/8rte25aNqXzvT/8dSaNVY9egsjAaBL/UhW55JNxAvXOKPIsL2MwWQ=="
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -5644,6 +5629,11 @@
"node": ">=4.2.0"
}
},
"node_modules/underscore": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
"integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ="
},
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@ -6584,28 +6574,6 @@
"chalk": "^4.0.0"
}
},
"@seald-io/binary-search-tree": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.2.tgz",
"integrity": "sha512-+pYGvPFAk7wUR+ONMOlc6A+LUN4kOCFwyPLjyaeS7wVibADPHWYJNYsNtyIAwjF1AXQkuaXElnIc4XjKt55QZA=="
},
"@seald-io/nedb": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-2.2.2.tgz",
"integrity": "sha512-z91J3pem4ENzHuu9BilOSdlGL2S14OQYePPdvBcPHgHr+s51VIUwQARcOjx21KvtkA27vEpgPqzrVKh7nSlIfw==",
"requires": {
"@seald-io/binary-search-tree": "^1.0.2",
"async": "0.2.10",
"localforage": "^1.9.0"
},
"dependencies": {
"async": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
}
}
},
"@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
@ -6945,13 +6913,14 @@
"follow-redirects": "^1.14.0"
}
},
"axios-cache-adapter": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/axios-cache-adapter/-/axios-cache-adapter-2.7.3.tgz",
"integrity": "sha512-A+ZKJ9lhpjthOEp4Z3QR/a9xC4du1ALaAsejgRGrH9ef6kSDxdFrhRpulqsh9khsEnwXxGfgpUuDp1YXMNMEiQ==",
"axios-cache-interceptor": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-0.10.3.tgz",
"integrity": "sha512-oyHlhmA6zzZJDk/ZMPWPNmO3z8gBU3mWIqAZy+GIUsvwpmwyPlC2XvZ3PTOZHgpWI2kEocMUhk3+w9VwMXfZ4w==",
"requires": {
"cache-control-esm": "1.0.0",
"md5": "^2.2.1"
"cache-parser": "^1.2.4",
"fast-defer": "^1.1.7",
"object-code": "^1.2.2"
}
},
"axios-cookiejar-support": {
@ -7063,6 +7032,14 @@
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"binary-search-tree": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
"integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=",
"requires": {
"underscore": "~1.4.4"
}
},
"bindings": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz",
@ -7139,10 +7116,10 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"cache-control-esm": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/cache-control-esm/-/cache-control-esm-1.0.0.tgz",
"integrity": "sha512-Fa3UV4+eIk4EOih8FTV6EEsVKO0W5XWtNs6FC3InTfVz+EjurjPfDXY5wZDo/lxjDxg5RjNcurLyxEJBcEUx9g=="
"cache-parser": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.4.tgz",
"integrity": "sha512-O0KwuHuJnbHUrghHi2kGp0SxnWSIBXTYt7M8WVhW0kbPRUNUKoE/Of6e1rRD6AAxmfxFunKnt90yEK09D+sc5g=="
},
"cacheable-lookup": {
"version": "5.0.4",
@ -7207,11 +7184,6 @@
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
},
"charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
},
"cheerio": {
"version": "1.0.0-rc.10",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz",
@ -7422,11 +7394,6 @@
"which": "^2.0.1"
}
},
"crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
},
"css-select": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz",
@ -7670,12 +7637,12 @@
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
},
"epg-grabber": {
"version": "0.25.4",
"resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.25.4.tgz",
"integrity": "sha512-fQh04OaNY+LsxtMerT3tOMfcaiMe0f5ZaXjjcm2TnnB4sPN0+KkSmX/uy24NErggBgV+O0jyl6+zulARciojtA==",
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.26.0.tgz",
"integrity": "sha512-QOJsPMhWi+s3jcx0U8f7ZlQfBgsaP56w1JdSascZ92yFiR2bvcdEFaAJuzAgKoQiicoXDKdzoK5r18mjLg05KQ==",
"requires": {
"axios": "^0.21.1",
"axios-cache-adapter": "^2.7.3",
"axios-cache-interceptor": "^0.10.3",
"axios-cookiejar-support": "^1.0.1",
"axios-mock-adapter": "^1.20.0",
"commander": "^7.1.0",
@ -7812,6 +7779,11 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-defer": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.7.tgz",
"integrity": "sha512-tJ01ulDWT2WhqxMKS20nXX6wyX2iInBYpbN3GO7yjKwXMY4qvkdBRxak9IFwBLlFDESox+SwSvqMCZDfe1tqeg=="
},
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@ -9056,23 +9028,6 @@
"q": "^1.2.0"
}
},
"md5": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"requires": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
},
"dependencies": {
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
}
}
},
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@ -9180,12 +9135,31 @@
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
"nedb-promises": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-6.0.3.tgz",
"integrity": "sha512-pd0N6EsIPhXsfqdLcBJGig1FoTdV8wtuiXB7rBUqycJdUSA6wdI5BlkwEAjDBWIwZc4+xqBHRLtuAB7/bjS+rg==",
"nedb": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz",
"integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=",
"requires": {
"@seald-io/nedb": "^2.2.0"
"async": "0.2.10",
"binary-search-tree": "0.2.5",
"localforage": "^1.3.0",
"mkdirp": "~0.5.1",
"underscore": "~1.4.4"
},
"dependencies": {
"async": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
}
}
},
"nedb-promises": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-4.1.5.tgz",
"integrity": "sha512-mnzB7y5tE1MXGDYurFNJeX2Kh4oEyH88uBCXOm4jDXiu6dAALDg8+urIuSuo15oo8spMbWzDsnD03KHKyuBjNw==",
"requires": {
"nedb": "^1.8.0"
}
},
"needle": {
@ -9354,6 +9328,11 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-code": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/object-code/-/object-code-1.2.2.tgz",
"integrity": "sha512-ZSbEQdei4ElzuDM4BmazKSwINacocBf3/8rte25aNqXzvT/8dSaNVY9egsjAaBL/UhW55JNxAvXOKPIsL2MwWQ=="
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -10215,6 +10194,11 @@
"optional": true,
"peer": true
},
"underscore": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
"integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ="
},
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",

View file

@ -36,7 +36,7 @@
"commander": "^8.2.0",
"csv-parser": "^3.0.0",
"dayjs": "^1.10.8",
"epg-grabber": "^0.25.4",
"epg-grabber": "^0.26.0",
"epg-parser": "^0.1.6",
"form-data": "^4.0.0",
"fs-extra": "^10.0.1",
@ -48,7 +48,7 @@
"lodash": "^4.17.21",
"markdown-include": "^0.4.3",
"mockdate": "^3.0.5",
"nedb-promises": "^6.0.3",
"nedb-promises": "^4.1.5",
"node-cleanup": "^2.1.2",
"node-gzip": "^1.1.2",
"parse-duration": "^1.0.0",

View file

@ -0,0 +1,97 @@
const dayjs = require('dayjs')
const axios = require('axios')
const parser = require('epg-parser')
const isBetween = require('dayjs/plugin/isBetween')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(isBetween)
dayjs.extend(customParseFormat)
module.exports = {
site: 'i.mjh.nz',
request: {
cache: {
ttl: 6 * 60 * 60 * 1000 // 6h
}
},
url: function ({ channel }) {
const [source] = channel.site_id.split('#')
return `https://raw.githubusercontent.com/matthuisman/i.mjh.nz/master/${source}.xml`
},
parser: function ({ content, channel, date, cached }) {
let programs = []
const items = parseItems(content, channel, date)
items.forEach(item => {
programs.push({
title: parseTitle(item, channel),
description: parseDescription(item, channel),
category: parseCategory(item, channel),
start: parseStart(item),
stop: parseStop(item)
})
})
return programs
},
async channels({ service, region, lang = 'en' }) {
const data = await axios
.get(`https://i.mjh.nz/${service}/app.json`)
.then(r => r.data)
.catch(console.log)
const channels = []
const items = !region ? data.channels : data.regions[region].channels
region = region || 'all'
const path = `${service}/${region}`
for (let id in items) {
const channel = items[id]
channels.push({
lang,
site_id: `${path}#${id}`,
name: channel.name
})
}
return channels
}
}
function parseTitle(item, channel) {
return item.title.length ? item.title[0].value : null
}
function parseDescription(item, channel) {
return item.desc.length ? item.desc[0].value : null
}
function parseCategory(item, channel) {
const category = item.category.length ? item.category[0].value : ''
return category.split(/\s\&amp\;\s/g).filter(c => c)
}
function parseStart(item) {
return dayjs(item.start, 'YYYYMMDDHHmmss ZZ')
}
function parseStop(item) {
return dayjs(item.stop, 'YYYYMMDDHHmmss ZZ')
}
function parseItems(content, channel, date) {
try {
const curr_day = date
const next_day = date.add(1, 'd')
const [_, site_id] = channel.site_id.split('#')
const data = parser.parse(content)
if (!data || !Array.isArray(data.programs)) return []
return data.programs.filter(
p =>
p.channel === site_id && dayjs(p.start, 'YYYYMMDDHHmmss ZZ').isBetween(curr_day, next_day)
)
} catch (error) {
return []
}
}

View file

@ -0,0 +1,53 @@
// npm run channels:parse -- --config=./sites/i.mjh.nz/i.mjh.nz.config.js --output=./sites/i.mjh.nz/i.mjh.nz_us-pluto.channels.xml --set=service:PlutoTV --set=region:us
// npm run channels:parse -- --config=./sites/i.mjh.nz/i.mjh.nz.config.js --output=./sites/i.mjh.nz/i.mjh.nz_us-stirr.channels.xml --set=service:Stirr
// npx epg-grabber --config=sites/i.mjh.nz/i.mjh.nz.config.js --channels=sites/i.mjh.nz/i.mjh.nz_us-pluto.channels.xml --output=guide.xml --days=2
// npx epg-grabber --config=sites/i.mjh.nz/i.mjh.nz.config.js --channels=sites/i.mjh.nz/i.mjh.nz_us-stirr.channels.xml --output=guide.xml --days=2
const { parser, url } = require('./i.mjh.nz.config.js')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
const date = dayjs.utc('2022-05-03', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: 'PlutoTV/us#51c75f7bb6f26ba1cd00002f',
xmltv_id: 'LittleStarsUniverse.us',
lang: 'en'
}
it('can generate valid url', () => {
expect(url({ channel })).toBe(
'https://raw.githubusercontent.com/matthuisman/i.mjh.nz/master/PlutoTV/us.xml'
)
})
it('can parse response', () => {
const content = `<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE tv SYSTEM "xmltv.dtd"><tv generator-info-name="www.matthuisman.nz"> <channel id="51c75f7bb6f26ba1cd00002f"> <display-name>Little Stars Universe</display-name> <icon src="https://images.pluto.tv/channels/51c75f7bb6f26ba1cd00002f/colorLogoPNG.png"/> </channel> <programme channel="51c75f7bb6f26ba1cd00002f" start="20220503104922 +0000" stop="20220503112122 +0000"> <title>Barney and Friends</title> <desc>Baby Bop forgets to say "please" and "thank you". Riff shares his dream of becoming an inventor.</desc> <category>Children &amp; Family</category> </programme><programme channel="51c75f7bb6f26ba1cd00002f" start="20220504104922 +0000" stop="20220504112122 +0000"> <title>Barney and Friends</title> <desc>Baby Bop forgets to say "please" and "thank you". Riff shares his dream of becoming an inventor.</desc> <category>Children &amp; Family</category> </programme></tv>`
const result = parser({ content, channel, date }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(result).toMatchObject([
{
start: '2022-05-03T10:49:22.000Z',
stop: '2022-05-03T11:21:22.000Z',
title: 'Barney and Friends',
description:
'Baby Bop forgets to say "please" and "thank you". Riff shares his dream of becoming an inventor.',
category: ['Children', 'Family']
}
])
})
it('can handle empty guide', () => {
const result = parser({
content: `404: Not Found`,
channel,
date
})
expect(result).toMatchObject([])
})

View file

@ -0,0 +1,334 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="i.mjh.nz">
<channels>
<channel lang="en" xmltv_id="48Hours.us" site_id="PlutoTV/us#6176f39e709f160007ec61c3">48 Hours</channel>
<channel lang="en" xmltv_id="70sCinema.us" site_id="PlutoTV/us#5f4d878d3d19b30007d2e782">70s Cinema</channel>
<channel lang="en" xmltv_id="80sRewind.us" site_id="PlutoTV/us#5ca525b650be2571e3943c63">80s Rewind</channel>
<channel lang="en" xmltv_id="90210.us" site_id="PlutoTV/us#5f4d83e0a382c00007bc02e7">90210</channel>
<channel lang="en" xmltv_id="90sThrowback.us" site_id="PlutoTV/us#5f4d86f519358a00072b978e">90s Throwback</channel>
<channel lang="en" xmltv_id="AcapulcoShore.us" site_id="PlutoTV/us#60c25ec6da6d6600074233a8">Acapulco Shore</channel>
<channel lang="en" xmltv_id="AllRealitybyWEtv.us" site_id="PlutoTV/us#5e82530945600e0007ca076c">All Reality by WE tv</channel>
<channel lang="en" xmltv_id="AlwaysFunnyVideos.us" site_id="PlutoTV/us#5e82b55ad0213e00079c509f">Always Funny Videos</channel>
<channel lang="en" xmltv_id="Amantesdelromance.us" site_id="PlutoTV/us#5e84db2db3851800077c871e">Amantes del romance</channel>
<channel lang="en" xmltv_id="AmericasTestKitchen.us" site_id="PlutoTV/us#5e84f54a82f05300080e6746">America&apos;s Test Kitchen</channel>
<channel lang="en" xmltv_id="AmericasVoiceNews.us" site_id="PlutoTV/us#5e1f7da4bc7d740009831259">America&apos;s Voice News</channel>
<channel lang="en" xmltv_id="AnimeAllDay.us" site_id="PlutoTV/us#5812b7d3249444e05d09cc49">Anime All Day</channel>
<channel lang="en" xmltv_id="AntiquesRoadshowUK.us" site_id="PlutoTV/us#5ce44810b421747ae467b7cd">Antiques Roadshow UK</channel>
<channel lang="en" xmltv_id="AntiquesRoadTrip.us" site_id="PlutoTV/us#615b8ec39e878900073f419a">Antiques Road Trip</channel>
<channel lang="en" xmltv_id="AwesomenessTV.us" site_id="PlutoTV/us#5595e43c66ace1652e63c6a2">Awesomeness TV</channel>
<channel lang="en" xmltv_id="BabySharkTV.us" site_id="PlutoTV/us#60faffc3fbbc120007fc4376">Baby Shark TV</channel>
<channel lang="en" xmltv_id="Badassnovelas.us" site_id="PlutoTV/us#5e84dc59026b9b000766f9a2">Badass novelas</channel>
<channel lang="en" xmltv_id="BarRescue.us" site_id="PlutoTV/us#60a3d889a5b3690008dc7fe8">Bar Rescue</channel>
<channel lang="en" xmltv_id="Baywatch.us" site_id="PlutoTV/us#5d815eb889bca2ce7b746fdd">Baywatch</channel>
<channel lang="en" xmltv_id="BBCFood.us" site_id="PlutoTV/us#5fb5844bf5514d0007945bda">BBC Food</channel>
<channel lang="en" xmltv_id="BBCHome.us" site_id="PlutoTV/us#5fb5836fe745b600070fc743">BBC Home</channel>
<channel lang="en" xmltv_id="BBCKids.us" site_id="PlutoTV/us#60fb00b4b6455d0007493b0b">BBC Kids</channel>
<channel lang="en" xmltv_id="BebecitoBumysusamigos.us" site_id="PlutoTV/us#60493283ffc52f000710edae">Bebecito Bum y sus amigos</channel>
<channel lang="en" xmltv_id="BeINSportsXtraenEspanol.us" site_id="PlutoTV/us#60492fdd9989d30007ccd30a">beIN SPORTS XTRA en español</channel>
<channel lang="en" xmltv_id="BeINSportsXtraUSA.us" site_id="PlutoTV/us#5df975e2b27cf5000921c102">beIN SPORTS XTRA</channel>
<channel lang="en" xmltv_id="BellatorMMA.us" site_id="PlutoTV/us#5ebc8688f3697d00072f7cf8">Bellator MMA</channel>
<channel lang="en" xmltv_id="BestofDrPhil.us" site_id="PlutoTV/us#60f760bbdf090700075d7bfe">Best of Dr. Phil</channel>
<channel lang="en" xmltv_id="BestofTheDrewBarrymoreShow.us" site_id="PlutoTV/us#61858ac0491af10007f8ce4f">Best of The Drew Barrymore Show</channel>
<channel lang="en" xmltv_id="BETHerEast.us" site_id="PlutoTV/us#5d51e6949ab8e2b35bdcaa9f">BET Her</channel>
<channel lang="en" xmltv_id="BETPlutoTV.us" site_id="PlutoTV/us#5ca670f6593a5d78f0e85aed">BET Pluto TV</channel>
<channel lang="en" xmltv_id="BeverlyHillbillies.us" site_id="PlutoTV/us#5f7796e470510900070d4e3d">Beverly Hillbillies</channel>
<channel lang="en" xmltv_id="BlackCinema.us" site_id="PlutoTV/us#58af4c093a41ca9d4ecabe96">Black Cinema</channel>
<channel lang="en" xmltv_id="BlackClassics.us" site_id="PlutoTV/us#60f85644a9493e0007a1f035">Black Classics</channel>
<channel lang="en" xmltv_id="BlackInkCrew.us" site_id="PlutoTV/us#5d51e2bceca5b4b2c0e06c50">Black Ink Crew</channel>
<channel lang="en" xmltv_id="BlackThrowbacks.us" site_id="PlutoTV/us#61326275b3c86a00078e4833">Black Throwbacks</channel>
<channel lang="en" xmltv_id="BlazeLive.us" site_id="PlutoTV/us#5e46fba0c43b0d00096e5ac1">Blaze Live</channel>
<channel lang="en" xmltv_id="BloombergTV.us" site_id="PlutoTV/us#54ff7ba69222cb1c2624c584">Bloomberg TV</channel>
<channel lang="en" xmltv_id="BNCGO.us" site_id="PlutoTV/us#5f1efad04320070007dbb60b">BNC GO</channel>
<channel lang="en" xmltv_id="BounceXL.us" site_id="PlutoTV/us#6176fd25e83a5f0007a464c9">Bounce XL</channel>
<channel lang="en" xmltv_id="BritBoxMysteries.us" site_id="PlutoTV/us#60f5d389985a0c0007357304">BritBox Mysteries</channel>
<channel lang="en" xmltv_id="BritishComedy.us" site_id="PlutoTV/us#60f870184865da00074210ee">British Comedy</channel>
<channel lang="en" xmltv_id="BritishDrama.us" site_id="PlutoTV/us#5b68a18823ecb93393cba2f1">British Drama</channel>
<channel lang="en" xmltv_id="Buzzr.us" site_id="PlutoTV/us#5812bfbe4ced4f7b601b12e6">BUZZR</channel>
<channel lang="en" xmltv_id="Cats247.us" site_id="PlutoTV/us#599375885ceaac3cabccbed7">Cats 24/7</channel>
<channel lang="en" xmltv_id="CBSNews.us" site_id="PlutoTV/us#5a6b92f6e22a617379789618">CBS News</channel>
<channel lang="en" xmltv_id="CBSNewsBaltimore.us" site_id="PlutoTV/us#60f75919718aed0007250d7a">CBS News Baltimore</channel>
<channel lang="en" xmltv_id="CBSNewsBayArea.us" site_id="PlutoTV/us#5eb1afb21486df0007abc57c">CBS News Bay Area</channel>
<channel lang="en" xmltv_id="CBSNewsBoston.us" site_id="PlutoTV/us#5eb1af2ad345340008fccd1e">CBS News Boston</channel>
<channel lang="en" xmltv_id="CBSNewsChicago.us" site_id="PlutoTV/us#5eb1aeb2fd4b8a00076c2047">CBS News Chicago</channel>
<channel lang="en" xmltv_id="CBSNewsColorado.us" site_id="PlutoTV/us#5eb1b12146cba40007aa7e5d">CBS News Colorado</channel>
<channel lang="en" xmltv_id="CBSNewsDFW.us" site_id="PlutoTV/us#5eceb0d4065c240007688ec6">CBS News DFW</channel>
<channel lang="en" xmltv_id="CBSNewsLosAngeles.us" site_id="PlutoTV/us#5dc481cda1d430000948a1b4">CBS News Los Angeles</channel>
<channel lang="en" xmltv_id="CBSNewsMiami.us" site_id="PlutoTV/us#60fb299b79498900070b29e0">CBS News Miami</channel>
<channel lang="en" xmltv_id="CBSNewsMinnesota.us" site_id="PlutoTV/us#5eb1b0bf2240d8000732a09c">CBS News Minnesota</channel>
<channel lang="en" xmltv_id="CBSNewsNewYork.us" site_id="PlutoTV/us#5dc48170e280c80009a861ab">CBS News New York</channel>
<channel lang="en" xmltv_id="CBSNewsPhilly.us" site_id="PlutoTV/us#5eb1b05ea168cc000767ba67">CBS News Philly</channel>
<channel lang="en" xmltv_id="CBSNewsPittsburgh.us" site_id="PlutoTV/us#5eb1b17aa5277e00083f6521">CBS News Pittsburgh</channel>
<channel lang="en" xmltv_id="CBSNewsSacramento.us" site_id="PlutoTV/us#60cb6df2b2ad610008cd5bea">CBS News Sacramento</channel>
<channel lang="en" xmltv_id="CBSSportsHQ.us" site_id="PlutoTV/us#5e9f2c05172a0f0007db4786">CBS Sports HQ</channel>
<channel lang="en" xmltv_id="Cheddar.us" site_id="PlutoTV/us#5812afe1d0f0b8d55dde67fa">Cheddar News</channel>
<channel lang="en" xmltv_id="CineAdrenalina.us" site_id="PlutoTV/us#5d8d164d92e97a5e107638d2">Cine adrenalina</channel>
<channel lang="en" xmltv_id="Cinejaja.us" site_id="PlutoTV/us#5f513564e4622a0007c578c0">Cine ¡¡jaja!!</channel>
<channel lang="en" xmltv_id="CinePremiere.us" site_id="PlutoTV/us#5cf968040ab7d8f181e6a68b">Cine Premiere</channel>
<channel lang="en" xmltv_id="CineTerror.us" site_id="PlutoTV/us#5d8d180092e97a5e107638d3">Cine terror</channel>
<channel lang="en" xmltv_id="CineXOXO.us" site_id="PlutoTV/us#5f5136317aedfb0007016f93">Cine XOXO</channel>
<channel lang="en" xmltv_id="Classica.us" site_id="PlutoTV/us#5f779951372da90007fd45e8">Classica</channel>
<channel lang="en" xmltv_id="ClassicMoviesChannel.us" site_id="PlutoTV/us#561c5b0dada51f8004c4d855">Classic Movies Channel</channel>
<channel lang="en" xmltv_id="ClassicToonsTV.us" site_id="PlutoTV/us#562ea53fa9060c5a7d463e74">Classic Toons TV</channel>
<channel lang="en" xmltv_id="ClassicTVComedy.us" site_id="PlutoTV/us#5f15e32b297f96000768f928">Classic TV Comedy</channel>
<channel lang="en" xmltv_id="ClassicTVDrama.us" site_id="PlutoTV/us#5f15e3cccf49290007053c67">Classic TV Drama</channel>
<channel lang="en" xmltv_id="ClassicTVFamilies.us" site_id="PlutoTV/us#61325d18f5166c00081b84e0">Classic TV: Families</channel>
<channel lang="en" xmltv_id="CMTEqualPlay.us" site_id="PlutoTV/us#5f68f53eb1e5800007390bf8">CMT Equal Play</channel>
<channel lang="en" xmltv_id="CMTPlutoTV.us" site_id="PlutoTV/us#5dcc42446750e200093b15e2">CMT Pluto TV</channel>
<channel lang="en" xmltv_id="CNN.us" site_id="PlutoTV/us#5421f71da6af422839419cb3">CNN</channel>
<channel lang="en" xmltv_id="ColdCaseFiles.us" site_id="PlutoTV/us#5c37d6712de254456f7ec340">Cold Case Files</channel>
<channel lang="en" xmltv_id="CombateWorld.us" site_id="PlutoTV/us#5bb1ac3e268cae539bcedb07">Combate World</channel>
<channel lang="en" xmltv_id="ComedyCentralAnimation.us" site_id="PlutoTV/us#5f99e24636d67d0007a94e6d">Comedy Central Animation</channel>
<channel lang="en" xmltv_id="ComedyCentralenEspanol.us" site_id="PlutoTV/us#5cf96dad1652631e36d43320">Comedy Central en español</channel>
<channel lang="en" xmltv_id="ComedyCentralPlutoTV.us" site_id="PlutoTV/us#5ca671f215a62078d2ec0abf">Comedy Central Pluto TV</channel>
<channel lang="en" xmltv_id="Cops.us" site_id="PlutoTV/us#5e1f7e089f23700009d66303">COPS</channel>
<channel lang="en" xmltv_id="CourtTV.us" site_id="PlutoTV/us#5dae0b4841a7d0000938ddbd">Court TV</channel>
<channel lang="en" xmltv_id="Crime360.us" site_id="PlutoTV/us#6000a5a9e767980007b497ca">Crime 360</channel>
<channel lang="en" xmltv_id="CrimenesImperfectos.us" site_id="PlutoTV/us#5e94cd036cc69d0007e8a1ba">Crímenes imperfectos</channel>
<channel lang="en" xmltv_id="CSI.us" site_id="PlutoTV/us#5efbd29e4aa26700076c0d06">CSI</channel>
<channel lang="en" xmltv_id="CSIenespanol.us" site_id="PlutoTV/us#604928d54a4f730007ff76bc">CSI en español</channel>
<channel lang="en" xmltv_id="Dabl.us" site_id="PlutoTV/us#5ef0fbed39ff730007383a69">Dabl</channel>
<channel lang="en" xmltv_id="DallasCowboysCheerleaders.us" site_id="PlutoTV/us#5d40855b3fb0855028c99b6f">Dallas Cowboy Cheerleaders</channel>
<channel lang="en" xmltv_id="DarkShadows.us" site_id="PlutoTV/us#5ef3958c66ac540007d6e6a7">Dark Shadows</channel>
<channel lang="en" xmltv_id="DealorNoDeal.us" site_id="PlutoTV/us#5e9debf8c881310007d7bde1">Deal or No Deal</channel>
<channel lang="en" xmltv_id="Degrassi.us" site_id="PlutoTV/us#5c6eeb85c05dfc257e5a50c4">Degrassi</channel>
<channel lang="en" xmltv_id="DemandAfrica.us" site_id="PlutoTV/us#5f061242a7951e00075d7413">Demand Africa</channel>
<channel lang="en" xmltv_id="DoctorWhoClassic.us" site_id="PlutoTV/us#5ce4475cd43850831ca91ce7">Doctor Who Classic</channel>
<channel lang="en" xmltv_id="Dogs247.us" site_id="PlutoTV/us#5b329e0a7b9d8872aeb49ceb">Dogs 24/7</channel>
<channel lang="en" xmltv_id="DogtheBountyHunter.us" site_id="PlutoTV/us#5bee1a7359ee03633e780238">Dog the Bounty Hunter</channel>
<channel lang="en" xmltv_id="DoraTV.us" site_id="PlutoTV/us#5d14fb6c84dd37df3b4290c5">Dora TV</channel>
<channel lang="en" xmltv_id="Emergencia911.us" site_id="PlutoTV/us#60492a1e6361250007679665">Emergencia 911</channel>
<channel lang="en" xmltv_id="Entrenosotras.us" site_id="PlutoTV/us#60492c67f4c48700075b5d37">Entre nosotras</channel>
<channel lang="en" xmltv_id="EstrellaNews.us" site_id="PlutoTV/us#60492e6d7f3f560007ab0f62">Estrella News</channel>
<channel lang="en" xmltv_id="EstrellaTVEast.us" site_id="PlutoTV/us#5cf0622da00ca1e2f6fac712">EstrellaTV</channel>
<channel lang="en" xmltv_id="ETLive.us" site_id="PlutoTV/us#5dc0c78281eddb0009a02d5e">ET Live</channel>
<channel lang="en" xmltv_id="EuronewsEnglish.fr" site_id="PlutoTV/us#60492dcf1c9b6a00089f41df">Euronews</channel>
<channel lang="en" xmltv_id="FailArmy.us" site_id="PlutoTV/us#554158e864526b29254ff105">FailArmy</channel>
<channel lang="en" xmltv_id="FaithTV.us" site_id="PlutoTV/us#5c58a539fae3812612f33ca3">Faith TV</channel>
<channel lang="en" xmltv_id="FamilyTies.us" site_id="PlutoTV/us#5f77939a630f530007dde654">Family Ties</channel>
<channel lang="en" xmltv_id="FearFactor.us" site_id="PlutoTV/us#588128d17d64bc0d0f385c34">Fear Factor</channel>
<channel lang="en" xmltv_id="Fight.us" site_id="PlutoTV/us#5812b0f2237a6ff45d16c3f9">Fight</channel>
<channel lang="en" xmltv_id="FindOutWhy.us" site_id="PlutoTV/us#60faf9368c7ad900082bc9a8">Find Out Why</channel>
<channel lang="en" xmltv_id="FlicksofFury.us" site_id="PlutoTV/us#58e55b14ad8e9c364d55f717">Flicks of Fury</channel>
<channel lang="en" xmltv_id="Foodies.us" site_id="PlutoTV/us#5d8d0fbaa8742fa3093899da">Foodies</channel>
<channel lang="en" xmltv_id="FoodTV.us" site_id="PlutoTV/us#5877ac8cb791f4eb4a140d81">Food TV</channel>
<channel lang="en" xmltv_id="ForensicFiles.us" site_id="PlutoTV/us#5bb1af6a268cae539bcedb0a">Forensic Files</channel>
<channel lang="en" xmltv_id="ForeverKids.us" site_id="PlutoTV/us#56171fafada51f8004c4b40f">Forever Kids</channel>
<channel lang="en" xmltv_id="FoxSports.us" site_id="PlutoTV/us#5a74b8e1e22a61737979c6bf">FOX Sports</channel>
<channel lang="en" xmltv_id="FunnyAF.us" site_id="PlutoTV/us#580e87ff497c73ba2f321dd3">Funny AF</channel>
<channel lang="en" xmltv_id="FuseBeat.us" site_id="PlutoTV/us#6176fddda3a6160007f60433">Fuse Beat</channel>
<channel lang="en" xmltv_id="G4Select.us" site_id="PlutoTV/us#61e718a821a4d20007c608ff">G4 Select</channel>
<channel lang="en" xmltv_id="GameplayCallofDuty.us" site_id="PlutoTV/us#5f5bd666c0a7600007af6c20">Gameplay: Call of Duty</channel>
<channel lang="en" xmltv_id="GameplayFortnite.us" site_id="PlutoTV/us#5f5bd769ccef5c000781c342">Gameplay: Fortnite</channel>
<channel lang="en" xmltv_id="GameplayRoblox.us" site_id="PlutoTV/us#5d51dd5d369acdb278dfb05d">Gameplay: Roblox</channel>
<channel lang="en" xmltv_id="GameplaySports.us" site_id="PlutoTV/us#5f5bd7fb15c9a300077ee52a">Gameplay: Sports</channel>
<channel lang="en" xmltv_id="GameShowCentral.us" site_id="PlutoTV/us#5e54187aae660e00093561d6">Game Show Central</channel>
<channel lang="en" xmltv_id="GarfieldandFriends.us" site_id="PlutoTV/us#60faf9ddfcc1f200070a5932">Garfield and Friends</channel>
<channel lang="en" xmltv_id="GloryKickboxing.us" site_id="PlutoTV/us#5417a212ff9fba68282fbf5e">GLORY Kickboxing</channel>
<channel lang="en" xmltv_id="GordonRamsaysHellsKitchen.us" site_id="PlutoTV/us#5b4e99f4423e067bd6df6903">Gordon Ramsay&apos;s Hell&apos;s Kitchen</channel>
<channel lang="en" xmltv_id="Grandeish.us" site_id="PlutoTV/us#60fafef7c2440500071266e0">Grande-ish</channel>
<channel lang="en" xmltv_id="Gunsmoke.us" site_id="PlutoTV/us#60f75771dfc72a00071fd0e0">Gunsmoke</channel>
<channel lang="en" xmltv_id="HappyDays.us" site_id="PlutoTV/us#5f7794162a4559000781fc12">Happy Days</channel>
<channel lang="en" xmltv_id="HeartlandEast.us" site_id="PlutoTV/us#61f07513227feb00073ee6bc">Heartland</channel>
<channel lang="en" xmltv_id="HellsKitchenenespanol.us" site_id="PlutoTV/us#60492b2794116800073e32dc">Hell&apos;s Kitchen en español</channel>
<channel lang="en" xmltv_id="IGN.us" site_id="PlutoTV/us#561c5f613286e48904fb2677">IGN</channel>
<channel lang="en" xmltv_id="ImpactWrestling.us" site_id="PlutoTV/us#59b722526996084038c01e1b">IMPACT Wrestling</channel>
<channel lang="en" xmltv_id="InkMaster.us" site_id="PlutoTV/us#60807fd5db701400078219c2">Ink Master</channel>
<channel lang="en" xmltv_id="Investiga.us" site_id="PlutoTV/us#5cf96b8f4f1ca3f0629f4bf1">Investiga</channel>
<channel lang="en" xmltv_id="IronChef.us" site_id="PlutoTV/us#6148c756ce8091000748d113">Iron Chef</channel>
<channel lang="en" xmltv_id="JerseyShore.us" site_id="PlutoTV/us#609bfa51fbecc1000733152e">Jersey Shore</channel>
<channel lang="en" xmltv_id="JohnnyCarsonTV.us" site_id="PlutoTV/us#5e66928133461100077dfd73">Johnny Carson TV</channel>
<channel lang="en" xmltv_id="JudgeNosey.us" site_id="PlutoTV/us#5e9decb953e157000752321c">Judge Nosey</channel>
<channel lang="en" xmltv_id="JuliaChild.us" site_id="PlutoTV/us#606b5ee42b54a100079dd593">Julia Child</channel>
<channel lang="en" xmltv_id="KartoonChannel.us" site_id="PlutoTV/us#60fb040d4795a6000762fe8f">Kartoon Channel!</channel>
<channel lang="en" xmltv_id="KContentbyCJENM.us" site_id="PlutoTV/us#6176ff3ba00900000763710f">K-Content by CJ ENM</channel>
<channel lang="en" xmltv_id="KevinHartsLOLNetwork.us" site_id="PlutoTV/us#5af09e645126c2157123f9eb">Kevin Harts LOL! Network</channel>
<channel lang="en" xmltv_id="KidsMovieClub.us" site_id="PlutoTV/us#5db0ad56edc89300090d2ebb">Kids Movie Club</channel>
<channel lang="en" xmltv_id="LEGOKidsTV.us" site_id="PlutoTV/us#60fb01a24795a6000762fe83">LEGO Kids TV</channel>
<channel lang="en" xmltv_id="LittleBabyBum.us" site_id="PlutoTV/us#5eb301b7395671000780d100">Little Baby Bum</channel>
<channel lang="en" xmltv_id="LittleStarsUniverse.us" site_id="PlutoTV/us#51c75f7bb6f26ba1cd00002f">Little Stars Universe</channel>
<channel lang="en" xmltv_id="LivelyPlace.us" site_id="PlutoTV/us#5dc1cb279c91420009db261d">Lively Place</channel>
<channel lang="en" xmltv_id="LiveMusicReplay.us" site_id="PlutoTV/us#5873fc21cad696fb37aa9054">Live Music Replay</channel>
<channel lang="en" xmltv_id="LogoPlutoTV.us" site_id="PlutoTV/us#5ce5a8954311f992edbe1da2">Logo Pluto TV</channel>
<channel lang="en" xmltv_id="LoveHipHop.us" site_id="PlutoTV/us#5d51ddf0369acdb278dfb05e">Love &amp; Hip Hop</channel>
<channel lang="en" xmltv_id="LuchaLibreAAA.us" site_id="PlutoTV/us#5c01df1759ee03633e7b272c">Lucha Libre AAA</channel>
<channel lang="en" xmltv_id="Lupinthe3rd.us" site_id="PlutoTV/us#60f74ba51c82ac000776c669">Lupin the 3rd</channel>
<channel lang="en" xmltv_id="Matlock.us" site_id="PlutoTV/us#60f754f98185580007eb0754">Matlock</channel>
<channel lang="en" xmltv_id="MavTVSelect.us" site_id="PlutoTV/us#611468532f5f180007fbbc9c">MAVTV Select</channel>
<channel lang="en" xmltv_id="MidsomerMurders.us" site_id="PlutoTV/us#5cbf6a868a1bce4a3d52a5e9">Midsomer Murders</channel>
<channel lang="en" xmltv_id="MinecrafTV.us" site_id="PlutoTV/us#5812b821249444e05d09cc4c">MinecrafTV</channel>
<channel lang="en" xmltv_id="Miobsesionfavorita.us" site_id="PlutoTV/us#5d93b4d71754e6a4298d086e">Mi obsesión favorita</channel>
<channel lang="en" xmltv_id="MissionImpossible.us" site_id="PlutoTV/us#5f77977bd924d80007eee60c">Mission Impossible</channel>
<channel lang="en" xmltv_id="Misteriossinresolver.us" site_id="PlutoTV/us#5f4d882d5233170007ee880e">Misterios sin resolver</channel>
<channel lang="en" xmltv_id="MLB.us" site_id="PlutoTV/us#5e66968a70f34c0007d050be">MLB</channel>
<channel lang="en" xmltv_id="MLS.us" site_id="PlutoTV/us#5cb626cfcaf83414128f439c">MLS</channel>
<channel lang="en" xmltv_id="MoreTVDrama.us" site_id="PlutoTV/us#613260e4bdb71c00070d63fa">More TV Drama</channel>
<channel lang="en" xmltv_id="MoreTVSitcoms.us" site_id="PlutoTV/us#6132619f9ddaa50007e7dd86">More TV Sitcoms</channel>
<channel lang="en" xmltv_id="MST3K.us" site_id="PlutoTV/us#545943f1c9f133a519bbac92">MST3K</channel>
<channel lang="en" xmltv_id="MTVBiggestPop.us" site_id="PlutoTV/us#5d14fd1a252d35decbc4080c">MTV Biggest Pop</channel>
<channel lang="en" xmltv_id="MTVBlockParty.us" site_id="PlutoTV/us#5d3609cd6a6c78d7672f2a81">MTV Block Party</channel>
<channel lang="en" xmltv_id="MTVDating.us" site_id="PlutoTV/us#5ca6899a37b88b269472ea4b">MTV Dating</channel>
<channel lang="en" xmltv_id="MTVenEspanol.us" site_id="PlutoTV/us#5cf96d351652631e36d4331f">MTV en español</channel>
<channel lang="en" xmltv_id="MTVPlutoTV.us" site_id="PlutoTV/us#5ca672f515a62078d2ec0ad2">MTV Pluto TV</channel>
<channel lang="en" xmltv_id="MTVSpankinNew.us" site_id="PlutoTV/us#5d14fdb8ca91eedee1633117">MTV Spankin&apos; New</channel>
<channel lang="en" xmltv_id="MundoGeek.us" site_id="PlutoTV/us#6051201a0aa8a70007c24a2a">Mundo geek</channel>
<channel lang="en" xmltv_id="MundoParanormal.us" site_id="PlutoTV/us#60492a9bbca75b0007b1bfd5">Mundo paranormal</channel>
<channel lang="en" xmltv_id="MundoViajero.us" site_id="PlutoTV/us#60511efd71ec430007f50d97">Mundo viajero</channel>
<channel lang="en" xmltv_id="Narcos.us" site_id="PlutoTV/us#5f7274806621ff00072651ff">Narcos</channel>
<channel lang="en" xmltv_id="Narcosenespanol.us" site_id="PlutoTV/us#5f7b47f12a45590007821749">Narcos en español</channel>
<channel lang="en" xmltv_id="Naruto.us" site_id="PlutoTV/us#5da0c85bd2c9c10009370984">Naruto</channel>
<channel lang="en" xmltv_id="Narutoenespanol.us" site_id="PlutoTV/us#60493045fbb5e50007b36f4d">Naruto en español</channel>
<channel lang="en" xmltv_id="Naturescape.us" site_id="PlutoTV/us#5812bd9f249444e05d09cc4e">Naturescape</channel>
<channel lang="en" xmltv_id="NBCNewsNow.us" site_id="PlutoTV/us#5df97894467dfa00091c873c">NBC News NOW</channel>
<channel lang="en" xmltv_id="News12NewYork.us" site_id="PlutoTV/us#5fff49cfb5cd4f0007c2b0dc">News 12 New York</channel>
<channel lang="en" xmltv_id="NewsmaxTV.us" site_id="PlutoTV/us#55b179af994403942f3061d6">Newsmax</channel>
<channel lang="en" xmltv_id="Newsy.us" site_id="PlutoTV/us#5459795fc9f133a519bc0bef">Newsy</channel>
<channel lang="en" xmltv_id="NFLChannel.us" site_id="PlutoTV/us#5ced7d5df64be98e07ed47b6">NFL Channel</channel>
<channel lang="en" xmltv_id="NickenEspanol.us" site_id="PlutoTV/us#5d8d08395f39465da6fb3ec4">Nick en español</channel>
<channel lang="en" xmltv_id="NickJrenEspanol.us" site_id="PlutoTV/us#5d8d0ec7b0f7015fbe0a3bf7">Nick Jr. en español</channel>
<channel lang="en" xmltv_id="NickJrPlutoTV.us" site_id="PlutoTV/us#5ca6748a37b88b269472dad9">Nick Jr. Pluto TV</channel>
<channel lang="en" xmltv_id="NickPlutoTV.us" site_id="PlutoTV/us#5ca673e0d0bd6c2689c94ce3">Nick Pluto TV</channel>
<channel lang="en" xmltv_id="NinosporBBCKids.us" site_id="PlutoTV/us#6165c917a7302e0007871330">Niños por BBC Kids</channel>
<channel lang="en" xmltv_id="NoParentsAllowed.us" site_id="PlutoTV/us#5db0ae5af8797b00095c0794">No Parents Allowed</channel>
<channel lang="en" xmltv_id="Nosey.us" site_id="PlutoTV/us#5aec96ec5126c2157123c657">Nosey</channel>
<channel lang="en" xmltv_id="NoseyEscandalos.us" site_id="PlutoTV/us#60492ee6375a3900079a158c">Nosey escándalos</channel>
<channel lang="en" xmltv_id="Novelasconlaabuela.us" site_id="PlutoTV/us#5e84dbf4a838b60007ffbba1">Novelas con la abuela</channel>
<channel lang="en" xmltv_id="NuestraVision.us" site_id="PlutoTV/us#5e6690befbdf780007f78158">Nuestra Visión</channel>
<channel lang="en" xmltv_id="OANPlus.us" site_id="PlutoTV/us#5e7cf6c7b156d500078c5f44">OAN Plus</channel>
<channel lang="en" xmltv_id="OnePiece.us" site_id="PlutoTV/us#5f7790b3ed0c88000720b241">One Piece</channel>
<channel lang="en" xmltv_id="ParamountMovieChannel.us" site_id="PlutoTV/us#5cb0cae7a461406ffe3f5213">Paramount Movie Channel</channel>
<channel lang="en" xmltv_id="ParamountPlusPicks.us" site_id="PlutoTV/us#5ff8c708653d080007361b14">Paramount+ Picks</channel>
<channel lang="en" xmltv_id="PBRRidePass.us" site_id="PlutoTV/us#60d39387706fe50007fda8e8">PBR RidePass</channel>
<channel lang="en" xmltv_id="PelisyPopcorn.us" site_id="PlutoTV/us#60fb2f47c133270007327375">Pelis y Popcorn</channel>
<channel lang="en" xmltv_id="PeopleAreAwesome.us" site_id="PlutoTV/us#5e54169f4b9b25000994a303">People Are Awesome</channel>
<channel lang="en" xmltv_id="PerryMason.us" site_id="PlutoTV/us#6197086891ddd4000739941a">Perry Mason</channel>
<channel lang="en" xmltv_id="PGATour.us" site_id="PlutoTV/us#5de94dacb394a300099fa22a">PGA TOUR</channel>
<channel lang="en" xmltv_id="PlutoTVAction.us" site_id="PlutoTV/us#561d7d484dc7c8770484914a">Pluto TV Action</channel>
<channel lang="en" xmltv_id="PlutoTVActionSports.us" site_id="PlutoTV/us#5db867744f229f0009266784">Pluto TV Action Sports</channel>
<channel lang="en" xmltv_id="PlutoTVAnimals.us" site_id="PlutoTV/us#56b27f85ff3037045055037e">Pluto TV Animals</channel>
<channel lang="en" xmltv_id="PlutoTVBackcountry.us" site_id="PlutoTV/us#5cabdf1437b88b26947346b2">Pluto TV Backcountry</channel>
<channel lang="en" xmltv_id="PlutoTVBestLife.us" site_id="PlutoTV/us#5887ba337b8e94223eb121bd">Pluto TV Best Life</channel>
<channel lang="en" xmltv_id="PlutoTVBoxing.us" site_id="PlutoTV/us#5fac425f949b4600079938f3">Pluto TV Boxing</channel>
<channel lang="en" xmltv_id="PlutoTVCars.us" site_id="PlutoTV/us#5812b3a4249444e05d09cc46">Pluto TV Cars</channel>
<channel lang="en" xmltv_id="PlutoTVCelebrity.us" site_id="PlutoTV/us#5d8bf1472907815f66a866dd">Pluto TV Celebrity</channel>
<channel lang="en" xmltv_id="PlutoTVComedy.us" site_id="PlutoTV/us#5a4d3a00ad95e4718ae8d8db">Pluto TV Comedy</channel>
<channel lang="en" xmltv_id="PlutoTVCourtroom.us" site_id="PlutoTV/us#6036e6e7ac69c400072afca2">Pluto TV Courtroom</channel>
<channel lang="en" xmltv_id="PlutoTVCrimeDrama.us" site_id="PlutoTV/us#5f31fd1b4c510e00071c3103">Pluto TV Crime Drama</channel>
<channel lang="en" xmltv_id="PlutoTVCrimeMovies.us" site_id="PlutoTV/us#5f4d8594eb979c0007706de7">Pluto TV Crime Movies</channel>
<channel lang="en" xmltv_id="PlutoTVCultFilms.us" site_id="PlutoTV/us#5c665db3e6c01b72c4977bc2">Pluto TV Cult Films</channel>
<channel lang="en" xmltv_id="PlutoTVDocumentaries.us" site_id="PlutoTV/us#5b85a7582921777994caea63">Pluto TV Documentaries</channel>
<channel lang="en" xmltv_id="PlutoTVDrama.us" site_id="PlutoTV/us#5b4e92e4694c027be6ecece1">Pluto TV Drama</channel>
<channel lang="en" xmltv_id="PlutoTVDramaLife.us" site_id="PlutoTV/us#5f24662bebe0f0000767de32">Pluto TV Drama Life</channel>
<channel lang="en" xmltv_id="PlutoTVFantastic.us" site_id="PlutoTV/us#5b64a245a202b3337f09e51d">Pluto TV Fantastic</channel>
<channel lang="en" xmltv_id="PlutoTVGamer.us" site_id="PlutoTV/us#5ca7f16c37b88b2694731c79">Pluto TV Gamer</channel>
<channel lang="en" xmltv_id="PlutoTVGameShows.us" site_id="PlutoTV/us#6036e7c385749f00075dbd3b">Pluto TV Game Shows</channel>
<channel lang="en" xmltv_id="PlutoTVHistory.us" site_id="PlutoTV/us#5a4d35dfa5c02e717a234f86">Pluto TV History</channel>
<channel lang="en" xmltv_id="PlutoTVHome.us" site_id="PlutoTV/us#6022bd17849c620007f43ae0">Pluto TV Home</channel>
<channel lang="en" xmltv_id="PlutoTVHorror.us" site_id="PlutoTV/us#569546031a619b8f07ce6e25">Pluto TV Horror</channel>
<channel lang="en" xmltv_id="PlutoTVLives.us" site_id="PlutoTV/us#5d8beeb39b5d5d5f8c672530">Pluto TV Lives</channel>
<channel lang="en" xmltv_id="PlutoTVLoveStories.us" site_id="PlutoTV/us#5f15e181520cfa000771ce79">Pluto TV Love Stories</channel>
<channel lang="en" xmltv_id="PlutoTVMilitary.us" site_id="PlutoTV/us#5bb3fea0f711fd76340eebff">Pluto TV Military</channel>
<channel lang="en" xmltv_id="PlutoTVNews.us" site_id="PlutoTV/us#5268abcd0ce20a8472000114">Pluto TV News</channel>
<channel lang="en" xmltv_id="PlutoTVParanormal.us" site_id="PlutoTV/us#5adf96e3e738977e2c31cb04">Pluto TV Paranormal</channel>
<channel lang="en" xmltv_id="PlutoTVPranks.us" site_id="PlutoTV/us#60f86f539f03cd00070c503a">Pluto TV Pranks</channel>
<channel lang="en" xmltv_id="PlutoTVProWrestling.us" site_id="PlutoTV/us#5fac431fc1ffbc0007e6b6a7">Pluto TV Pro Wrestling</channel>
<channel lang="en" xmltv_id="PlutoTVReaction.us" site_id="PlutoTV/us#617b37b361e0fd0008cfd8c5">Pluto TV Reaction</channel>
<channel lang="en" xmltv_id="PlutoTVReality.us" site_id="PlutoTV/us#5d8bf0b06d2d855ee15115e3">Pluto TV Reality</channel>
<channel lang="en" xmltv_id="PlutoTVRomance.us" site_id="PlutoTV/us#5a66795ef91fef2c7031c599">Pluto TV Romance</channel>
<channel lang="en" xmltv_id="PlutoTVScience.us" site_id="PlutoTV/us#563a970aa1a1f7fe7c9daad7">Pluto TV Science</channel>
<channel lang="en" xmltv_id="PlutoTVSciFi.us" site_id="PlutoTV/us#5b4fc274694c027be6ed3eea">Pluto TV Sci-Fi</channel>
<channel lang="en" xmltv_id="PlutoTVSoaps.us" site_id="PlutoTV/us#610c5f80f71f660007a2ad8e">Pluto TV Soaps</channel>
<channel lang="en" xmltv_id="PlutoTVSports.us" site_id="PlutoTV/us#56340779a738201b4ccfeac9">Pluto TV Sports</channel>
<channel lang="en" xmltv_id="PlutoTVSpotlight.us" site_id="PlutoTV/us#5ba3fb9c4b078e0f37ad34e8">Pluto TV Spotlight</channel>
<channel lang="en" xmltv_id="PlutoTVStaffPicks.us" site_id="PlutoTV/us#5f4d863b98b41000076cd061">Pluto TV Staff Picks</channel>
<channel lang="en" xmltv_id="PlutoTVSuspense.us" site_id="PlutoTV/us#5f15e281b0b8840007324b55">Pluto TV Suspense</channel>
<channel lang="en" xmltv_id="PlutoTVTerror.us" site_id="PlutoTV/us#5c6dc88fcd232425a6e0f06e">Pluto TV Terror</channel>
<channel lang="en" xmltv_id="PlutoTVThrillers.us" site_id="PlutoTV/us#5b4e69e08291147bd04a9fd7">Pluto TV Thrillers</channel>
<channel lang="en" xmltv_id="PlutoTVTravel.us" site_id="PlutoTV/us#59c01b1953680139c6ae9d4d">Pluto TV Travel</channel>
<channel lang="en" xmltv_id="PlutoTVTrueCrime.us" site_id="PlutoTV/us#5812be1c249444e05d09cc50">Pluto TV True Crime</channel>
<channel lang="en" xmltv_id="PlutoTVVs.us" site_id="PlutoTV/us#603fde9026ecbf0007752c2c">Pluto TV Vs.</channel>
<channel lang="en" xmltv_id="PlutoTVWeddings.us" site_id="PlutoTV/us#5877acecb16bb1e042ee453f">Pluto TV Weddings</channel>
<channel lang="en" xmltv_id="PlutoTVWesterns.us" site_id="PlutoTV/us#5b4e94282d4ec87bdcbb87cd">Pluto TV Westerns</channel>
<channel lang="en" xmltv_id="PocketWatch.us" site_id="PlutoTV/us#5dae0a40e8ee0d000975e99b">pocket.watch</channel>
<channel lang="en" xmltv_id="PokerGo.us" site_id="PlutoTV/us#5fc54366b04b2300072e31af">PokerGo</channel>
<channel lang="en" xmltv_id="RainbowSquad.us" site_id="PlutoTV/us#60fb028c2e6a0c00075275a5">Rainbow Squad</channel>
<channel lang="en" xmltv_id="RealMadridTV.es" site_id="PlutoTV/us#613272f1279862000734464e">Realmadrid tv</channel>
<channel lang="en" xmltv_id="Rescue911.us" site_id="PlutoTV/us#5f21e831e9fe730007706acb">Rescue 911</channel>
<channel lang="en" xmltv_id="RiffTrax.us" site_id="PlutoTV/us#58d947b9e420d8656ee101ab">RiffTrax</channel>
<channel lang="en" xmltv_id="RyanandFriends.us" site_id="PlutoTV/us#5fb584b7613a31000789de5a">Ryan and Friends</channel>
<channel lang="en" xmltv_id="Saladeparejas.us" site_id="PlutoTV/us#60d393e5579a420007ee553c">Sala de parejas</channel>
<channel lang="en" xmltv_id="Septimoarte.us" site_id="PlutoTV/us#5cf96b1c4f1ca3f0629f4bf0">Séptimo arte</channel>
<channel lang="en" xmltv_id="SeriesconN.us" site_id="PlutoTV/us#60fb3087fbbc120007fc46be">Series con Ñ</channel>
<channel lang="en" xmltv_id="ShoutFactoryTV.us" site_id="PlutoTV/us#55a6a3275616b6240c26f393">Shout! Factory TV</channel>
<channel lang="en" xmltv_id="ShowtimeSelects.us" site_id="PlutoTV/us#5f988934a507de00075d9ae7">Showtime Selects</channel>
<channel lang="en" xmltv_id="SkillsPlusThrills.us" site_id="PlutoTV/us#6000a6f4c3f8550008fc9b91">Skills + Thrills</channel>
<channel lang="en" xmltv_id="SkyNewsInternational.uk" site_id="PlutoTV/us#55b285cd2665de274553d66f">Sky News</channel>
<channel lang="en" xmltv_id="SlightlyOffIFC.us" site_id="PlutoTV/us#5e82547b6b3df60007fec2b5">Slightly Off IFC</channel>
<channel lang="en" xmltv_id="SlowTV.us" site_id="PlutoTV/us#5317bfebff98025b3200ff99">Slow TV</channel>
<channel lang="en" xmltv_id="SmithsonianChannelSelects.us" site_id="PlutoTV/us#5f21ea08007a49000762d349">Smithsonian Channel Selects</channel>
<channel lang="en" xmltv_id="SonyCanalComedias.us" site_id="PlutoTV/us#60492bb931054f00073c0b4e">Sony Canal Comedias</channel>
<channel lang="en" xmltv_id="SonyCanalEscapePerfecto.us" site_id="PlutoTV/us#605e479d5b8229000763e697">Sony Canal Escape Perfecto</channel>
<channel lang="en" xmltv_id="Spikeextremo.us" site_id="PlutoTV/us#5d8d11baeb31c5a43b77bf59">Spike ¡extremo!</channel>
<channel lang="en" xmltv_id="SpikeOutdoors.us" site_id="PlutoTV/us#5c393cad2de254456f7ef8c2">Spike Outdoors</channel>
<channel lang="en" xmltv_id="SpikePlutoTV.us" site_id="PlutoTV/us#5812bcc8237a6ff45d16c407">Spike Pluto TV</channel>
<channel lang="en" xmltv_id="StandUpTV.us" site_id="PlutoTV/us#5637d31f319573e26b64040b">Stand-Up TV</channel>
<channel lang="en" xmltv_id="StarTrek.us" site_id="PlutoTV/us#5efbd39f8c4ce900075d7698">Star Trek</channel>
<channel lang="en" xmltv_id="StoriesbyAMC.us" site_id="PlutoTV/us#5e8254118601b80007b4b7ae">Stories by AMC</channel>
<channel lang="en" xmltv_id="Survivor.us" site_id="PlutoTV/us#5f21e7b24744c60007c1f6fc">Survivor</channel>
<channel lang="en" xmltv_id="TBNEast.us" site_id="PlutoTV/us#5d486b2eeddd9576d66f9066">TBN</channel>
<channel lang="en" xmltv_id="TeamSpirit.us" site_id="PlutoTV/us#60f9ebb06f0b3d000746fbdb">Team Spirit</channel>
<channel lang="en" xmltv_id="TeenMom.us" site_id="PlutoTV/us#6127e12ed140e900077e7b6f">Teen Mom</channel>
<channel lang="en" xmltv_id="TelefeNoticias.us" site_id="PlutoTV/us#60492d5522166000071a73c8">Telefe noticias</channel>
<channel lang="en" xmltv_id="TelemundoTelenovelasClasicas.us" site_id="PlutoTV/us#5cf96cc422df39f1a338d165">Telemundo telenovelas clásicas</channel>
<channel lang="en" xmltv_id="TheAddamsFamily.us" site_id="PlutoTV/us#5d81607ab737153ea3c1c80e">The Addams Family</channel>
<channel lang="en" xmltv_id="TheAmazingRace.us" site_id="PlutoTV/us#5f21e8a6e2f12b000755afdb">The Amazing Race</channel>
<channel lang="en" xmltv_id="TheAndyGriffithShow.us" site_id="PlutoTV/us#60f75178e7f8aa0007e9c259">The Andy Griffith Show</channel>
<channel lang="en" xmltv_id="TheAsylum.us" site_id="PlutoTV/us#591105034c1806b47438342c">The Asylum</channel>
<channel lang="en" xmltv_id="TheBobRossChannel.us" site_id="PlutoTV/us#5f36d726234ce10007784f2a">The Bob Ross Channel</channel>
<channel lang="en" xmltv_id="TheCarolBurnettShow.us" site_id="PlutoTV/us#5ef396d1be50a3000722808b">The Carol Burnett Show</channel>
<channel lang="en" xmltv_id="TheChallenge.us" site_id="PlutoTV/us#5d48685da7e9f476aa8a1888">The Challenge</channel>
<channel lang="en" xmltv_id="TheDesignNetwork.us" site_id="PlutoTV/us#5f4ff8c8bcf3d600078af3eb">The Design Network</channel>
<channel lang="en" xmltv_id="TheFirst.us" site_id="PlutoTV/us#5d486acc34ceb37d3c458a64">The First</channel>
<channel lang="en" xmltv_id="TheLoveBoat.us" site_id="PlutoTV/us#5f7794a788d29000079d2f07">The Love Boat</channel>
<channel lang="en" xmltv_id="TheNewDetectives.us" site_id="PlutoTV/us#5aea40b35126c2157123aa64">The New Detectives</channel>
<channel lang="en" xmltv_id="ThePetCollective.us" site_id="PlutoTV/us#5bb1ad55268cae539bcedb08">The Pet Collective</channel>
<channel lang="en" xmltv_id="ThePriceIsRightTheBarkerEra.us" site_id="PlutoTV/us#5f7791b8372da90007fd45e6">The Price Is Right: The Barker Era</channel>
<channel lang="en" xmltv_id="TheRifleman.us" site_id="PlutoTV/us#5e825550e758c700077b0aef">The Rifleman</channel>
<channel lang="en" xmltv_id="TheWalkingDeadenEspanol.us" site_id="PlutoTV/us#5e82bb378601b80007b4bd78">The Walking Dead en español</channel>
<channel lang="en" xmltv_id="ThisOldHouse.us" site_id="PlutoTV/us#5d51e791b7dba3b2ae990ab2">This Old House</channel>
<channel lang="en" xmltv_id="ThreesCompany.us" site_id="PlutoTV/us#5ef3977e5d773400077de284">Three&apos;s Company</channel>
<channel lang="en" xmltv_id="TinyHouseNation.us" site_id="PlutoTV/us#601a0342dcf4370007566891">Tiny House Nation</channel>
<channel lang="en" xmltv_id="TodayAD.us" site_id="PlutoTV/us#5d695f7db53adf96b78e7ce3">TODAY All Day</channel>
<channel lang="en" xmltv_id="TokuSHOUTsu.us" site_id="PlutoTV/us#5c3f8f12a93c2d61b9990a4e">TokuSHOUTsu</channel>
<channel lang="en" xmltv_id="TopGearenEspanol.us" site_id="PlutoTV/us#61325566b3c86a00078e4819">Top Gear en español</channel>
<channel lang="en" xmltv_id="Tosh0.us" site_id="PlutoTV/us#5dae084727c8af0009fe40a4">Tosh.0</channel>
<channel lang="en" xmltv_id="TotallyTurtles.us" site_id="PlutoTV/us#5d0c16d686454ead733d08f8">TOTALLY TURTLES</channel>
<channel lang="en" xmltv_id="TVLandDrama.us" site_id="PlutoTV/us#5d40bebc5e3d2750a2239d7e">TV Land Drama</channel>
<channel lang="en" xmltv_id="TVLandSitcoms.us" site_id="PlutoTV/us#5c2d64ffbdf11b71587184b8">TV Land Sitcoms</channel>
<channel lang="en" xmltv_id="TYTNetwork.us" site_id="PlutoTV/us#5331d5fb753499095a00045a">TYT Network</channel>
<channel lang="en" xmltv_id="UnsolvedMysteries.us" site_id="PlutoTV/us#5b4e96a0423e067bd6df6901">Unsolved Mysteries</channel>
<channel lang="en" xmltv_id="Vevo2K.us" site_id="PlutoTV/us#5fd7bca3e0a4ee0007a38e8c">Vevo 2K</channel>
<channel lang="en" xmltv_id="Vevo70s.us" site_id="PlutoTV/us#5f32f26bcd8aea00071240e5">Vevo &apos;70s</channel>
<channel lang="en" xmltv_id="Vevo80s.us" site_id="PlutoTV/us#5fd7b8bf927e090007685853">Vevo &apos;80s</channel>
<channel lang="en" xmltv_id="Vevo90s.us" site_id="PlutoTV/us#5fd7bb1f86d94a000796e2c2">Vevo &apos;90s</channel>
<channel lang="en" xmltv_id="VevoCountry.us" site_id="PlutoTV/us#5da0d75e84830900098a1ea0">Vevo Country</channel>
<channel lang="en" xmltv_id="VevoLatino.us" site_id="PlutoTV/us#5da0d64d0e8a62000964ebe4">Vevo Latino</channel>
<channel lang="en" xmltv_id="VevoPop.us" site_id="PlutoTV/us#5d93b635b43dd1a399b39eee">Vevo Pop</channel>
<channel lang="en" xmltv_id="VevoRB.us" site_id="PlutoTV/us#5da0d83f66c9700009b96d0e">Vevo R&amp;B</channel>
<channel lang="en" xmltv_id="VevoReggeatonTrap.us" site_id="PlutoTV/us#5f32f397795b750007706448">Vevo Reggaetón &amp; Trap</channel>
<channel lang="en" xmltv_id="VevoRetroRock.us" site_id="PlutoTV/us#61d4b38226b8a50007fe03a6">Vevo Retro Rock</channel>
<channel lang="en" xmltv_id="VevoTrueSchoolHipHop.us" site_id="PlutoTV/us#61d4c2817a823d00070ba53e">Vevo True School Hip-Hop</channel>
<channel lang="en" xmltv_id="VH1HipHopFamily.us" site_id="PlutoTV/us#5d71561df6f2e6d0b6493bf5">VH1 Hip Hop Family</channel>
<channel lang="en" xmltv_id="VH1ILoveReality.us" site_id="PlutoTV/us#5d7154fa8326b6ce4ec31f2e">VH1 I Love Reality</channel>
<channel lang="en" xmltv_id="Viajealasestrellas.us" site_id="PlutoTV/us#6049295e7dcef800073c2499">Viaje a las estrellas</channel>
<channel lang="en" xmltv_id="VoyagerDocumentaries.us" site_id="PlutoTV/us#589aa03df9ba56a84197a560">Voyager Documentaries</channel>
<channel lang="en" xmltv_id="WantedDeadorAlive.us" site_id="PlutoTV/us#6089788de5c8410007808e26">Wanted: Dead or Alive</channel>
<channel lang="en" xmltv_id="WeatherNation.us" site_id="PlutoTV/us#5bdce04659ee03633e758130">WeatherNation</channel>
<channel lang="en" xmltv_id="WesternTV.us" site_id="PlutoTV/us#5e8df4bc16e34700077e77d3">Western TV</channel>
<channel lang="en" xmltv_id="WildNOut.us" site_id="PlutoTV/us#5d48678d34ceb37d3c458a55">Wild &apos;N Out</channel>
<channel lang="en" xmltv_id="WorldPokerTour.us" site_id="PlutoTV/us#5616f9c0ada51f8004c4b091">World Poker Tour</channel>
<channel lang="en" xmltv_id="YahooFinance.us" site_id="PlutoTV/us#5f161c0a8ba90f0007d5bd0b">Yahoo Finance</channel>
<channel lang="en" xmltv_id="YoMTV.us" site_id="PlutoTV/us#5d14fc31252d35decbc4080b">Yo! MTV</channel>
<channel lang="en" xmltv_id="YuGiOh.us" site_id="PlutoTV/us#5f4ec10ed9636f00089b8c89">Yu-Gi-Oh!</channel>
<channel lang="en" xmltv_id="YuGiOhenespanol.us" site_id="PlutoTV/us#604930bc28b24d0007e0e171">Yu-Gi-Oh! en español</channel>
</channels>
</site>