Merge branch 'master' of https://github.com/iptv-org/epg into Update-xmltv_id-for-Indian-channels.xml

This commit is contained in:
StrangeDrVN
2026-02-19 23:35:03 +05:30
39 changed files with 1739 additions and 934 deletions
+17 -6
View File
@@ -32,17 +32,28 @@ jobs:
run: npm run channels:lint run: npm run channels:lint
- name: update sites.md - name: update sites.md
run: npm run sites:update run: npm run sites:update
env:
GH_TOKEN: ${{ steps.create-app-token.outputs.token }}
- run: git status - run: git status
- name: commit changes to sites.md - name: commit changes to sites.md
if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} if: ${{ !env.ACT && github.ref == 'refs/heads/master' }}
run: | run: |
SITE=SITES.md FILE=SITES.md
CHANGED=$(git diff ${SITE}) CHANGED=$(git diff ${FILE})
if [ -n "${CHANGED}" ]; then if [ -n "${CHANGED}" ]; then
git add ${SITE} git add ${FILE}
git commit -m "[Bot] Update ${SITE}" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/epg/actions/runs/${{ github.run_id }}) workflow." --no-verify git commit -m "[Bot] Update ${FILE}" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/epg/actions/runs/${{ github.run_id }}) workflow." --no-verify
git push
fi
- name: update guides.md
run: npm run guides:update
- run: git status
- name: commit changes to guides.md
if: ${{ !env.ACT && github.ref == 'refs/heads/master' }}
run: |
FILE=GUIDES.md
CHANGED=$(git diff ${FILE})
if [ -n "${CHANGED}" ]; then
git add ${FILE}
git commit -m "[Bot] Update ${FILE}" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/epg/actions/runs/${{ github.run_id }}) workflow." --no-verify
git push git push
fi fi
- name: generate .api/guides.json - name: generate .api/guides.json
+24
View File
@@ -407,6 +407,27 @@ This way, you can map channels by simply selecting the proper ID from the list:
Once complete, [commit](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits) all changes and send a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests). Once complete, [commit](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits) all changes and send a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
### How to add my server to the GUIDES.md?
To do this, you just need to place the `worker.json` file in a public directory on your server.
<details>
<summary>worker.json</summary>
<br>
```json
{
"channels": "path/to/channels.xml",
"guide": "path/to/guide.xml"
}
```
</details>
And then add server domain or IP address to the [workers.txt](workers.txt) file.
Once your request is approved, it will automatically be added to the [GUIDES.md](GUIDES.md).
## Project Structure ## Project Structure
- `.github/` - `.github/`
@@ -417,8 +438,10 @@ Once complete, [commit](https://docs.github.com/en/pull-requests/committing-chan
- `sites/`: contains configurations, channel lists and tests for all sites. - `sites/`: contains configurations, channel lists and tests for all sites.
- `tests/`: contains tests to check the scripts. - `tests/`: contains tests to check the scripts.
- `CONTRIBUTING.md`: file you are currently reading. - `CONTRIBUTING.md`: file you are currently reading.
- `GUIDES.md`: list of all available guides and their current status.
- `README.md`: project description displayed on the home page. - `README.md`: project description displayed on the home page.
- `SITES.md`: list of all supported sites and their current status. - `SITES.md`: list of all supported sites and their current status.
- `workers.txt`: list of all available community workers.
## Scripts ## Scripts
@@ -439,6 +462,7 @@ To run scripts use the `npm run <script-name>` command.
- `channels:validate`: checks the description of channels for errors. - `channels:validate`: checks the description of channels for errors.
- `sites:init`: creates a new site config from the template. - `sites:init`: creates a new site config from the template.
- `sites:update`: updates the list of sites and their status in [SITES.md](SITES.md). - `sites:update`: updates the list of sites and their status in [SITES.md](SITES.md).
- `guides:update`: updates the list of guides and their status in [GUIDES.md](GUIDES.md).
- `grab`: downloads a program from a specified source. - `grab`: downloads a program from a specified source.
- `serve`: starts the [web server](https://github.com/vercel/serve). - `serve`: starts the [web server](https://github.com/vercel/serve).
- `lint`: сhecks the scripts for syntax errors. - `lint`: сhecks the scripts for syntax errors.
+12
View File
@@ -0,0 +1,12 @@
# Guides
<table>
<thead>
<tr><th align="left">Host</th><th align="left">Status</th><th align="left">Channels</th><th align="left">Last Updated</th><th align="left">Links</th></tr>
</thead>
<tbody>
<tr><td>worker-9dd4.onrender.com</td><td align="center">🟢</td><td align="right">1</td><td align="left">a day ago</td><td><a href="https://worker-9dd4.onrender.com/channels.xml">channels.xml</a><br><a href="https://worker-9dd4.onrender.com/guide.xml">guide.xml</a></td></tr>
</tbody>
</table>
[How can I add my server to the list?](CONTRIBUTING.md#how-to-add-my-server-to-the-guides-md)
+7 -4
View File
@@ -8,7 +8,7 @@ Tools for downloading the EPG (Electronic Program Guide) for thousands of TV cha
- 🚀 [Usage](#usage) - 🚀 [Usage](#usage)
- 💫 [Update](#update) - 💫 [Update](#update)
- 🐋 [Docker](#docker) - 🐋 [Docker](#docker)
- 📺 [Playlists](#playlists) - 📅 [Guides](#guides)
- 🗄 [Database](#database) - 🗄 [Database](#database)
- 👨‍💻 [API](#api) - 👨‍💻 [API](#api)
- 📚 [Resources](#resources) - 📚 [Resources](#resources)
@@ -155,7 +155,7 @@ docker pull ghcr.io/iptv-org/epg:master
### Create and run container ### Create and run container
```sh ```sh
docker run -p 3000:3000 -v /path/to/channels.xml:/epg/channels.xml ghcr.io/iptv-org/epg:master docker run -p 3000:3000 -v /path/to/channels.xml:/epg/public/channels.xml ghcr.io/iptv-org/epg:master
``` ```
By default, the guide will be downloaded every day at 00:00 UTC and saved to the `/epg/public/guide.xml` file inside the container. By default, the guide will be downloaded every day at 00:00 UTC and saved to the `/epg/public/guide.xml` file inside the container.
@@ -179,7 +179,7 @@ To fine-tune the execution, you can pass environment variables to the container
```sh ```sh
docker run \ docker run \
-p 5000:3000 \ -p 5000:3000 \
-v /path/to/channels.xml:/epg/channels.xml \ -v /path/to/channels.xml:/epg/public/channels.xml \
-e CRON_SCHEDULE="0 0,12 * * *" \ -e CRON_SCHEDULE="0 0,12 * * *" \
-e MAX_CONNECTIONS=10 \ -e MAX_CONNECTIONS=10 \
-e GZIP=true \ -e GZIP=true \
@@ -203,6 +203,10 @@ ghcr.io/iptv-org/epg:master
| DELAY | Delay between request in milliseconds (default: 0) | | DELAY | Delay between request in milliseconds (default: 0) |
| RUN_AT_STARTUP | Run grab on container startup (default: true) | | RUN_AT_STARTUP | Run grab on container startup (default: true) |
## Guides
Any user can share the guides they have created with the rest of the community. A complete list of these guides and their current status can be found in the [GUIDES.md](GUIDES.md) file.
## Database ## Database
All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there.
@@ -236,4 +240,3 @@ And thank you to everyone who has already contributed!
## License ## License
[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE)
+9 -9
View File
@@ -59,7 +59,7 @@
<tr><td><a href="sites/foxsports.com.au">foxsports.com.au</a></td><td align="right">7</td><td align="right">7</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/foxsports.com.au">foxsports.com.au</a></td><td align="right">7</td><td align="right">7</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/foxtel.com.au">foxtel.com.au</a></td><td align="right">99</td><td align="right">60</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/foxtel.com.au">foxtel.com.au</a></td><td align="right">99</td><td align="right">60</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/freetv.tv">freetv.tv</a></td><td align="right">7</td><td align="right">7</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/freetv.tv">freetv.tv</a></td><td align="right">7</td><td align="right">7</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/freeview.co.uk">freeview.co.uk</a></td><td align="right">167</td><td align="right">98</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/freeview.co.uk">freeview.co.uk</a></td><td align="right">166</td><td align="right">104</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/frikanalen.no">frikanalen.no</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/frikanalen.no">frikanalen.no</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/galamtv.kz">galamtv.kz</a></td><td align="right">27</td><td align="right">22</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/galamtv.kz">galamtv.kz</a></td><td align="right">27</td><td align="right">22</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/gatotv.com">gatotv.com</a></td><td align="right">475</td><td align="right">360</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/gatotv.com">gatotv.com</a></td><td align="right">475</td><td align="right">360</td><td align="center">🟢</td><td></td></tr>
@@ -91,7 +91,7 @@
<tr><td><a href="sites/mediaklikk.hu">mediaklikk.hu</a></td><td align="right">8</td><td align="right">8</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mediaklikk.hu">mediaklikk.hu</a></td><td align="right">8</td><td align="right">8</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mediasetinfinity.mediaset.it">mediasetinfinity.mediaset.it</a></td><td align="right">13</td><td align="right">13</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mediasetinfinity.mediaset.it">mediasetinfinity.mediaset.it</a></td><td align="right">13</td><td align="right">13</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/melita.com">melita.com</a></td><td align="right">127</td><td align="right">110</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/melita.com">melita.com</a></td><td align="right">127</td><td align="right">110</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/meo.pt">meo.pt</a></td><td align="right">217</td><td align="right">189</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/meo.pt">meo.pt</a></td><td align="right">211</td><td align="right">185</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/meuguia.tv">meuguia.tv</a></td><td align="right">102</td><td align="right">96</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/meuguia.tv">meuguia.tv</a></td><td align="right">102</td><td align="right">96</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mewatch.sg">mewatch.sg</a></td><td align="right">25</td><td align="right">24</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mewatch.sg">mewatch.sg</a></td><td align="right">25</td><td align="right">24</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mi.tv">mi.tv</a></td><td align="right">2084</td><td align="right">614</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mi.tv">mi.tv</a></td><td align="right">2084</td><td align="right">614</td><td align="center">🟢</td><td></td></tr>
@@ -99,10 +99,10 @@
<tr><td><a href="sites/moji.id">moji.id</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/moji.id">moji.id</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mojmaxtv.hrvatskitelekom.hr">mojmaxtv.hrvatskitelekom.hr</a></td><td align="right">243</td><td align="right">0</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mojmaxtv.hrvatskitelekom.hr">mojmaxtv.hrvatskitelekom.hr</a></td><td align="right">243</td><td align="right">0</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mon-programme-tv.be">mon-programme-tv.be</a></td><td align="right">111</td><td align="right">94</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mon-programme-tv.be">mon-programme-tv.be</a></td><td align="right">111</td><td align="right">94</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/movistarplus.es">movistarplus.es</a></td><td align="right">178</td><td align="right">0</td><td align="center">🔴</td><td>https://github.com/iptv-org/epg/issues/2865</td></tr> <tr><td><a href="sites/movistarplus.es">movistarplus.es</a></td><td align="right">178</td><td align="right">0</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mtel.ba">mtel.ba</a></td><td align="right">501</td><td align="right">0</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mtel.ba">mtel.ba</a></td><td align="right">501</td><td align="right">0</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mts.rs">mts.rs</a></td><td align="right">457</td><td align="right">0</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mts.rs">mts.rs</a></td><td align="right">457</td><td align="right">0</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mujtvprogram.cz">mujtvprogram.cz</a></td><td align="right">216</td><td align="right">202</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mujtvprogram.cz">mujtvprogram.cz</a></td><td align="right">213</td><td align="right">190</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/musor.tv">musor.tv</a></td><td align="right">181</td><td align="right">142</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/musor.tv">musor.tv</a></td><td align="right">181</td><td align="right">142</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mysky.com.ph">mysky.com.ph</a></td><td align="right">115</td><td align="right">43</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/mysky.com.ph">mysky.com.ph</a></td><td align="right">115</td><td align="right">43</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/mytelly.co.uk">mytelly.co.uk</a></td><td align="right">488</td><td align="right">387</td><td align="center">🟢</td><td>https://github.com/iptv-org/epg/issues/2985</td></tr> <tr><td><a href="sites/mytelly.co.uk">mytelly.co.uk</a></td><td align="right">488</td><td align="right">387</td><td align="center">🟢</td><td>https://github.com/iptv-org/epg/issues/2985</td></tr>
@@ -110,16 +110,16 @@
<tr><td><a href="sites/neo.io">neo.io</a></td><td align="right">337</td><td align="right">230</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/neo.io">neo.io</a></td><td align="right">337</td><td align="right">230</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nhkworldpremium.com">nhkworldpremium.com</a></td><td align="right">2</td><td align="right">2</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/nhkworldpremium.com">nhkworldpremium.com</a></td><td align="right">2</td><td align="right">2</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nhl.com">nhl.com</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/nhl.com">nhl.com</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nostv.pt">nostv.pt</a></td><td align="right">169</td><td align="right">152</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/nostv.pt">nostv.pt</a></td><td align="right">167</td><td align="right">151</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/novacyprus.com">novacyprus.com</a></td><td align="right">29</td><td align="right">24</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/novacyprus.com">novacyprus.com</a></td><td align="right">29</td><td align="right">24</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/novasports.gr">novasports.gr</a></td><td align="right">16</td><td align="right">16</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/novasports.gr">novasports.gr</a></td><td align="right">16</td><td align="right">16</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nowplayer.now.com">nowplayer.now.com</a></td><td align="right">288</td><td align="right">227</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/nowplayer.now.com">nowplayer.now.com</a></td><td align="right">288</td><td align="right">227</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nuevosiglo.com.uy">nuevosiglo.com.uy</a></td><td align="right">173</td><td align="right">46</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/nuevosiglo.com.uy">nuevosiglo.com.uy</a></td><td align="right">173</td><td align="right">46</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/nzxmltv.com">nzxmltv.com</a></td><td align="right">532</td><td align="right">118</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/nzxmltv.com">nzxmltv.com</a></td><td align="right">532</td><td align="right">118</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/ontvtonight.com">ontvtonight.com</a></td><td align="right">5177</td><td align="right">528</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/ontvtonight.com">ontvtonight.com</a></td><td align="right">5177</td><td align="right">528</td><td align="center">🟢</td><td>https://github.com/iptv-org/epg/issues/3014</td></tr>
<tr><td><a href="sites/opto.sic.pt">opto.sic.pt</a></td><td align="right">4</td><td align="right">4</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/opto.sic.pt">opto.sic.pt</a></td><td align="right">4</td><td align="right">4</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/orangetv.orange.es">orangetv.orange.es</a></td><td align="right">273</td><td align="right">151</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/orangetv.orange.es">orangetv.orange.es</a></td><td align="right">273</td><td align="right">151</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/osn.com">osn.com</a></td><td align="right">118</td><td align="right">98</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/osn.com">osn.com</a></td><td align="right">134</td><td align="right">86</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/passie.nl">passie.nl</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/passie.nl">passie.nl</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/pbsguam.org">pbsguam.org</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/pbsguam.org">pbsguam.org</a></td><td align="right">1</td><td align="right">1</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/pickx.be">pickx.be</a></td><td align="right">404</td><td align="right">375</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/pickx.be">pickx.be</a></td><td align="right">404</td><td align="right">375</td><td align="center">🟢</td><td></td></tr>
@@ -185,7 +185,7 @@
<tr><td><a href="sites/tv.lv">tv.lv</a></td><td align="right">137</td><td align="right">49</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/tv.lv">tv.lv</a></td><td align="right">137</td><td align="right">49</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/tv.magenta.at">tv.magenta.at</a></td><td align="right">307</td><td align="right">219</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/tv.magenta.at">tv.magenta.at</a></td><td align="right">307</td><td align="right">219</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/tv.mail.ru">tv.mail.ru</a></td><td align="right">664</td><td align="right">632</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/tv.mail.ru">tv.mail.ru</a></td><td align="right">664</td><td align="right">632</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/tv.movistar.com.pe">tv.movistar.com.pe</a></td><td align="right">282</td><td align="right">39</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/tv.movistar.com.pe">tv.movistar.com.pe</a></td><td align="right">262</td><td align="right">31</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/tv.nu">tv.nu</a></td><td align="right">199</td><td align="right">180</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/tv.nu">tv.nu</a></td><td align="right">199</td><td align="right">180</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/tv.post.lu">tv.post.lu</a></td><td align="right">332</td><td align="right">241</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/tv.post.lu">tv.post.lu</a></td><td align="right">332</td><td align="right">241</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/tv.sfr.fr">tv.sfr.fr</a></td><td align="right">489</td><td align="right">438</td><td align="center">🟢</td><td>https://github.com/iptv-org/epg/issues/2998</td></tr> <tr><td><a href="sites/tv.sfr.fr">tv.sfr.fr</a></td><td align="right">489</td><td align="right">438</td><td align="center">🟢</td><td>https://github.com/iptv-org/epg/issues/2998</td></tr>
@@ -222,7 +222,7 @@
<tr><td><a href="sites/virgintvgo.virginmedia.com">virgintvgo.virginmedia.com</a></td><td align="right">238</td><td align="right">181</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/virgintvgo.virginmedia.com">virgintvgo.virginmedia.com</a></td><td align="right">238</td><td align="right">181</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/visionplus.id">visionplus.id</a></td><td align="right">250</td><td align="right">224</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/visionplus.id">visionplus.id</a></td><td align="right">250</td><td align="right">224</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/vivoplay.com.br">vivoplay.com.br</a></td><td align="right">397</td><td align="right">0</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/vivoplay.com.br">vivoplay.com.br</a></td><td align="right">397</td><td align="right">0</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/vodafone.pt">vodafone.pt</a></td><td align="right">147</td><td align="right">135</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/vodafone.pt">vodafone.pt</a></td><td align="right">146</td><td align="right">135</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/vtm.be">vtm.be</a></td><td align="right">7</td><td align="right">6</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/vtm.be">vtm.be</a></td><td align="right">7</td><td align="right">6</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/walesi.com.fj">walesi.com.fj</a></td><td align="right">9</td><td align="right">8</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/walesi.com.fj">walesi.com.fj</a></td><td align="right">9</td><td align="right">8</td><td align="center">🟢</td><td></td></tr>
<tr><td><a href="sites/watch.sportsnet.ca">watch.sportsnet.ca</a></td><td align="right">8</td><td align="right">8</td><td align="center">🟢</td><td></td></tr> <tr><td><a href="sites/watch.sportsnet.ca">watch.sportsnet.ca</a></td><td align="right">8</td><td align="right">8</td><td align="center">🟢</td><td></td></tr>
+300 -233
View File
@@ -41,6 +41,7 @@
"@typescript-eslint/parser": "^8.38.0", "@typescript-eslint/parser": "^8.38.0",
"axios": "^1.11.0", "axios": "^1.11.0",
"axios-cookiejar-support": "^6.0.4", "axios-cookiejar-support": "^6.0.4",
"axios-mock-adapter": "^2.1.0",
"chalk": "^5.4.1", "chalk": "^5.4.1",
"cheerio": "^1.1.2", "cheerio": "^1.1.2",
"cli-progress": "^3.12.0", "cli-progress": "^3.12.0",
@@ -52,7 +53,7 @@
"cwait": "^1.1.2", "cwait": "^1.1.2",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"epg-grabber": "^0.46.1", "epg-grabber": "^0.46.1",
"epg-parser": "^0.3.1", "epg-parser": "^0.5.0",
"eslint": "^9.32.0", "eslint": "^9.32.0",
"eslint-config-prettier": "^10.1.8", "eslint-config-prettier": "^10.1.8",
"form-data": "^4.0.4", "form-data": "^4.0.4",
@@ -1091,9 +1092,9 @@
} }
}, },
"node_modules/@eslint/eslintrc/node_modules/js-yaml": { "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dependencies": { "dependencies": {
"argparse": "^2.0.1" "argparse": "^2.0.1"
}, },
@@ -1610,27 +1611,6 @@
"node": ">=16.0.0" "node": ">=16.0.0"
} }
}, },
"node_modules/@isaacs/balanced-match": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
"integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
"license": "MIT",
"engines": {
"node": "20 || >=22"
}
},
"node_modules/@isaacs/brace-expansion": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
"integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
"license": "MIT",
"dependencies": {
"@isaacs/balanced-match": "^4.0.1"
},
"engines": {
"node": "20 || >=22"
}
},
"node_modules/@isaacs/cliui": { "node_modules/@isaacs/cliui": {
"version": "8.0.2", "version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -2228,9 +2208,10 @@
} }
}, },
"node_modules/@jest/reporters/node_modules/glob": { "node_modules/@jest/reporters/node_modules/glob": {
"version": "10.4.5", "version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dependencies": { "dependencies": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^3.1.2", "jackspeak": "^3.1.2",
@@ -2845,6 +2826,17 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"license": "ISC" "license": "ISC"
}, },
"node_modules/@pm2/blessed": {
"version": "0.1.81",
"resolved": "https://registry.npmjs.org/@pm2/blessed/-/blessed-0.1.81.tgz",
"integrity": "sha512-ZcNHqQjMuNRcQ7Z1zJbFIQZO/BDKV3KbiTckWdfbUaYhj7uNmUwb+FbdDWSCkvxNr9dBJQwvV17o6QBkAvgO0g==",
"bin": {
"blessed": "bin/tput.js"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/@pm2/io": { "node_modules/@pm2/io": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.1.0.tgz",
@@ -4206,23 +4198,25 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.12.2", "version": "1.13.5",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
"integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.11",
"form-data": "^4.0.4", "form-data": "^4.0.5",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }
}, },
"node_modules/axios-cache-interceptor": { "node_modules/axios-cache-interceptor": {
"version": "1.8.3", "version": "1.11.4",
"resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.8.3.tgz", "resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.11.4.tgz",
"integrity": "sha512-ifuSBoCEkVaiugg1UTjVuTdK+SjSOJ35pdv2OrzhRT3wDMr52QiayQxUqs7jd7GDsfPOjMcw3T3ek0TysbyZZw==", "integrity": "sha512-xZ4OZUxdpcFUpZjrqfYlGK0VglpPRKKSoE3vMHrstxolixQNs/MrbMezOAO5uS454hIEcWpnk75RZK26WkPW/g==",
"dependencies": { "dependencies": {
"cache-parser": "1.2.5", "cache-parser": "^1.2.6",
"fast-defer": "1.1.8", "fast-defer": "^1.1.9",
"object-code": "1.3.3" "http-vary": "^1.0.3",
"object-code": "^2.0.0",
"try": "^1.0.3"
}, },
"engines": { "engines": {
"node": ">=12" "node": ">=12"
@@ -4398,17 +4392,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/blessed": {
"version": "0.1.81",
"resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz",
"integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==",
"bin": {
"blessed": "bin/tput.js"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/bluebird": { "node_modules/bluebird": {
"version": "3.7.2", "version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
@@ -4614,9 +4597,9 @@
} }
}, },
"node_modules/cache-parser": { "node_modules/cache-parser": {
"version": "1.2.5", "version": "1.2.6",
"resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.5.tgz", "resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.6.tgz",
"integrity": "sha512-Md/4VhAHByQ9frQ15WD6LrMNiVw9AEl/J7vWIXw+sxT6fSOpbtt6LHTp76vy8+bOESPBO94117Hm2bIjlI7XjA==" "integrity": "sha512-SjjnKlWgrhDrAWKUxAvmZLRGDa6JExMfjSu59/pvpNoI6mEHYSLcLKUw2RtECEOINvf6dxJo35fY+T/scA0SUA=="
}, },
"node_modules/call-bind": { "node_modules/call-bind": {
"version": "1.0.8", "version": "1.0.8",
@@ -5238,9 +5221,9 @@
} }
}, },
"node_modules/dayjs": { "node_modules/dayjs": {
"version": "1.11.18", "version": "1.11.19",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
"integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==" "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
}, },
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.4", "version": "4.3.4",
@@ -5538,12 +5521,12 @@
} }
}, },
"node_modules/epg-parser": { "node_modules/epg-parser": {
"version": "0.3.1", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/epg-parser/-/epg-parser-0.3.1.tgz", "resolved": "https://registry.npmjs.org/epg-parser/-/epg-parser-0.5.0.tgz",
"integrity": "sha512-y131hXfDthUdSeKbN0Ru1wiFF5er4t/TLT+IaAnHF2CYB0cnygHTJteQMDYIlHWHDsGj+z9ejm1cU3saFNF3nQ==", "integrity": "sha512-NK9vSev/KkCVcKilJd35PmB9tP4+tN45dhcsSxHagVoUTINh8KLZ1yvgtoPDVYr0IaSPJXIIIZWcu1JPjS5HMw==",
"dependencies": { "dependencies": {
"dayjs": "^1.11.6", "dayjs": "^1.11.19",
"lodash": "^4.17.21", "lodash.groupby": "^4.6.0",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
} }
}, },
@@ -6022,9 +6005,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"node_modules/fast-defer": { "node_modules/fast-defer": {
"version": "1.1.8", "version": "1.1.9",
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.8.tgz", "resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.9.tgz",
"integrity": "sha512-lEJeOH5VL5R09j6AA0D4Uvq7AgsHw0dAImQQ+F3iSyHZuAxyQfWobsagGpTcOPvJr3urmKRHrs+Gs9hV+/Qm/Q==" "integrity": "sha512-JP7Xm9HuePSeTT1DI78NeE9eAQvgNb9qNP2jlyQrcx4jiWM189omV6oyd0xaUPWHPlKmvDzz6H1FfPWIDU+xfg=="
}, },
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "3.3.3", "version": "3.3.3",
@@ -6152,9 +6135,9 @@
"integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
}, },
"node_modules/follow-redirects": { "node_modules/follow-redirects": {
"version": "1.15.6", "version": "1.15.11",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
"funding": [ "funding": [
{ {
"type": "individual", "type": "individual",
@@ -6214,9 +6197,9 @@
} }
}, },
"node_modules/form-data": { "node_modules/form-data": {
"version": "4.0.4", "version": "4.0.5",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"dependencies": { "dependencies": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",
"combined-stream": "^1.0.8", "combined-stream": "^1.0.8",
@@ -6377,14 +6360,14 @@
"integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==" "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg=="
}, },
"node_modules/glob": { "node_modules/glob": {
"version": "11.0.3", "version": "11.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
"integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
"license": "ISC", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dependencies": { "dependencies": {
"foreground-child": "^3.3.1", "foreground-child": "^3.3.1",
"jackspeak": "^4.1.1", "jackspeak": "^4.1.1",
"minimatch": "^10.0.3", "minimatch": "^10.1.1",
"minipass": "^7.1.2", "minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0", "package-json-from-dist": "^1.0.0",
"path-scurry": "^2.0.0" "path-scurry": "^2.0.0"
@@ -6410,13 +6393,34 @@
"node": ">=10.13.0" "node": ">=10.13.0"
} }
}, },
"node_modules/glob/node_modules/minimatch": { "node_modules/glob/node_modules/balanced-match": {
"version": "10.0.3", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
"integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
"license": "ISC",
"dependencies": { "dependencies": {
"@isaacs/brace-expansion": "^5.0.0" "jackspeak": "^4.2.3"
},
"engines": {
"node": "20 || >=22"
}
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
"integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
"dependencies": {
"balanced-match": "^4.0.2"
},
"engines": {
"node": "20 || >=22"
}
},
"node_modules/glob/node_modules/minimatch": {
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
"integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
"dependencies": {
"brace-expansion": "^5.0.2"
}, },
"engines": { "engines": {
"node": "20 || >=22" "node": "20 || >=22"
@@ -6590,6 +6594,11 @@
"node": ">= 14" "node": ">= 14"
} }
}, },
"node_modules/http-vary": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/http-vary/-/http-vary-1.0.3.tgz",
"integrity": "sha512-sx7Y8YTqF3o0mFJJvF66n8dbaE8v3liV1RgCz46XP5xK7dnzyZHvwMWRA115q5kjbCPBV65/nOMlgW54WLyiag=="
},
"node_modules/https-proxy-agent": { "node_modules/https-proxy-agent": {
"version": "7.0.6", "version": "7.0.6",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
@@ -7059,12 +7068,11 @@
} }
}, },
"node_modules/jackspeak": { "node_modules/jackspeak": {
"version": "4.1.1", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
"integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
"license": "BlueOak-1.0.0",
"dependencies": { "dependencies": {
"@isaacs/cliui": "^8.0.2" "@isaacs/cliui": "^9.0.0"
}, },
"engines": { "engines": {
"node": "20 || >=22" "node": "20 || >=22"
@@ -7073,6 +7081,14 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/jackspeak/node_modules/@isaacs/cliui": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
"integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==",
"engines": {
"node": ">=18"
}
},
"node_modules/jest": { "node_modules/jest": {
"version": "30.0.5", "version": "30.0.5",
"resolved": "https://registry.npmjs.org/jest/-/jest-30.0.5.tgz", "resolved": "https://registry.npmjs.org/jest/-/jest-30.0.5.tgz",
@@ -7360,9 +7376,10 @@
} }
}, },
"node_modules/jest-config/node_modules/glob": { "node_modules/jest-config/node_modules/glob": {
"version": "10.4.5", "version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dependencies": { "dependencies": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^3.1.2", "jackspeak": "^3.1.2",
@@ -8046,9 +8063,10 @@
} }
}, },
"node_modules/jest-runtime/node_modules/glob": { "node_modules/jest-runtime/node_modules/glob": {
"version": "10.4.5", "version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dependencies": { "dependencies": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^3.1.2", "jackspeak": "^3.1.2",
@@ -8690,9 +8708,14 @@
} }
}, },
"node_modules/lodash": { "node_modules/lodash": {
"version": "4.17.21", "version": "4.17.23",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="
},
"node_modules/lodash.groupby": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
"integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw=="
}, },
"node_modules/lodash.merge": { "node_modules/lodash.merge": {
"version": "4.6.2", "version": "4.6.2",
@@ -9088,9 +9111,9 @@
} }
}, },
"node_modules/object-code": { "node_modules/object-code": {
"version": "1.3.3", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/object-code/-/object-code-1.3.3.tgz", "resolved": "https://registry.npmjs.org/object-code/-/object-code-2.0.0.tgz",
"integrity": "sha512-/Ds4Xd5xzrtUOJ+xJQ57iAy0BZsZltOHssnDgcZ8DOhgh41q1YJCnTPnWdWSLkNGNnxYzhYChjc5dgC9mEERCA==" "integrity": "sha512-qOwMF43O/VAD51nJAB7MKsf1yWksql6O1i0DHRo1yaOQM6xJQH0NAE9UKJzYB7lyKw1jnpeb2BmB8qakjxiYZA=="
}, },
"node_modules/object-treeify": { "node_modules/object-treeify": {
"version": "2.1.1", "version": "2.1.1",
@@ -9533,36 +9556,36 @@
} }
}, },
"node_modules/pm2": { "node_modules/pm2": {
"version": "6.0.10", "version": "6.0.14",
"resolved": "https://registry.npmjs.org/pm2/-/pm2-6.0.10.tgz", "resolved": "https://registry.npmjs.org/pm2/-/pm2-6.0.14.tgz",
"integrity": "sha512-sbk4HsnhtJMx1wJlhFQhYfDRzHtVK+cvdrIezbjM9WjSyc7kLtQ4nZ5K7JLOdLe3AevytmRcTiOa3VvAQrve2A==", "integrity": "sha512-wX1FiFkzuT2H/UUEA8QNXDAA9MMHDsK/3UHj6Dkd5U7kxyigKDA5gyDw78ycTQZAuGCLWyUX5FiXEuVQWafukA==",
"dependencies": { "dependencies": {
"@pm2/agent": "~2.1.1", "@pm2/agent": "~2.1.1",
"@pm2/blessed": "0.1.81",
"@pm2/io": "~6.1.0", "@pm2/io": "~6.1.0",
"@pm2/js-api": "~0.8.0", "@pm2/js-api": "~0.8.0",
"@pm2/pm2-version-check": "latest", "@pm2/pm2-version-check": "^1.0.4",
"ansis": "4.0.0-node10", "ansis": "4.0.0-node10",
"async": "~3.2.6", "async": "3.2.6",
"blessed": "0.1.81", "chokidar": "3.6.0",
"chokidar": "^3.5.3", "cli-tableau": "2.0.1",
"cli-tableau": "^2.0.0",
"commander": "2.15.1", "commander": "2.15.1",
"croner": "~4.1.92", "croner": "4.1.97",
"dayjs": "~1.11.13", "dayjs": "1.11.15",
"debug": "^4.3.7", "debug": "4.4.3",
"enquirer": "2.3.6", "enquirer": "2.3.6",
"eventemitter2": "5.0.1", "eventemitter2": "5.0.1",
"fclone": "1.0.11", "fclone": "1.0.11",
"js-yaml": "~4.1.0", "js-yaml": "4.1.1",
"mkdirp": "1.0.4", "mkdirp": "1.0.4",
"needle": "2.4.0", "needle": "2.4.0",
"pidusage": "~3.0", "pidusage": "3.0.2",
"pm2-axon": "~4.0.1", "pm2-axon": "~4.0.1",
"pm2-axon-rpc": "~0.7.1", "pm2-axon-rpc": "~0.7.1",
"pm2-deploy": "~1.0.2", "pm2-deploy": "~1.0.2",
"pm2-multimeter": "^0.1.2", "pm2-multimeter": "^0.1.2",
"promptly": "^2", "promptly": "2.2.0",
"semver": "^7.6.2", "semver": "7.7.2",
"source-map-support": "0.5.21", "source-map-support": "0.5.21",
"sprintf-js": "1.1.2", "sprintf-js": "1.1.2",
"vizion": "~2.2.1" "vizion": "~2.2.1"
@@ -9674,11 +9697,15 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
}, },
"node_modules/pm2/node_modules/dayjs": {
"version": "1.11.15",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.15.tgz",
"integrity": "sha512-MC+DfnSWiM9APs7fpiurHGCoeIx0Gdl6QZBy+5lu8MbYKN5FZEXqOgrundfibdfhGZ15o9hzmZ2xJjZnbvgKXQ=="
},
"node_modules/pm2/node_modules/debug": { "node_modules/pm2/node_modules/debug": {
"version": "4.4.1", "version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": { "dependencies": {
"ms": "^2.1.3" "ms": "^2.1.3"
}, },
@@ -9692,9 +9719,9 @@
} }
}, },
"node_modules/pm2/node_modules/js-yaml": { "node_modules/pm2/node_modules/js-yaml": {
"version": "4.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dependencies": { "dependencies": {
"argparse": "^2.0.1" "argparse": "^2.0.1"
}, },
@@ -10643,9 +10670,9 @@
} }
}, },
"node_modules/systeminformation": { "node_modules/systeminformation": {
"version": "5.25.11", "version": "5.30.7",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.25.11.tgz", "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.30.7.tgz",
"integrity": "sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==", "integrity": "sha512-33B/cftpaWdpvH+Ho9U1b08ss8GQuLxrWHelbJT1yw4M48Taj8W3ezcPuaLoIHZz5V6tVHuQPr5BprEfnBLBMw==",
"optional": true, "optional": true,
"os": [ "os": [
"darwin", "darwin",
@@ -10800,6 +10827,14 @@
"node": ">= 14.0.0" "node": ">= 14.0.0"
} }
}, },
"node_modules/try": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/try/-/try-1.0.3.tgz",
"integrity": "sha512-AHA8khVCII6zKyRkyPo6pRwoR9v5jb7QFw6e5avtaVSkxVfaEucYIo06xnwB+pJaEarfYNbs7W3Vq+LZLZiWyA==",
"funding": {
"url": "https://github.com/arthurfiorette/try?sponsor=1"
}
},
"node_modules/ts-api-utils": { "node_modules/ts-api-utils": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
@@ -10896,9 +10931,9 @@
} }
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "7.12.0", "version": "7.21.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-7.21.0.tgz",
"integrity": "sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==", "integrity": "sha512-Hn2tCQpoDt1wv23a68Ctc8Cr/BHpUSfaPYrkajTXOS9IKpxVRx/X5m1K2YkbK2ipgZgxXSgsUinl3x+2YdSSfg==",
"engines": { "engines": {
"node": ">=20.18.1" "node": ">=20.18.1"
} }
@@ -12001,9 +12036,9 @@
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==" "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="
}, },
"js-yaml": { "js-yaml": {
"version": "4.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"requires": { "requires": {
"argparse": "^2.0.1" "argparse": "^2.0.1"
} }
@@ -12310,19 +12345,6 @@
} }
} }
}, },
"@isaacs/balanced-match": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
"integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="
},
"@isaacs/brace-expansion": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
"integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
"requires": {
"@isaacs/balanced-match": "^4.0.1"
}
},
"@isaacs/cliui": { "@isaacs/cliui": {
"version": "8.0.2", "version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -12760,9 +12782,9 @@
} }
}, },
"glob": { "glob": {
"version": "10.4.5", "version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"requires": { "requires": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^3.1.2", "jackspeak": "^3.1.2",
@@ -13226,6 +13248,11 @@
} }
} }
}, },
"@pm2/blessed": {
"version": "0.1.81",
"resolved": "https://registry.npmjs.org/@pm2/blessed/-/blessed-0.1.81.tgz",
"integrity": "sha512-ZcNHqQjMuNRcQ7Z1zJbFIQZO/BDKV3KbiTckWdfbUaYhj7uNmUwb+FbdDWSCkvxNr9dBJQwvV17o6QBkAvgO0g=="
},
"@pm2/io": { "@pm2/io": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.1.0.tgz",
@@ -14130,23 +14157,25 @@
} }
}, },
"axios": { "axios": {
"version": "1.12.2", "version": "1.13.5",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
"integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
"requires": { "requires": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.11",
"form-data": "^4.0.4", "form-data": "^4.0.5",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }
}, },
"axios-cache-interceptor": { "axios-cache-interceptor": {
"version": "1.8.3", "version": "1.11.4",
"resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.8.3.tgz", "resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.11.4.tgz",
"integrity": "sha512-ifuSBoCEkVaiugg1UTjVuTdK+SjSOJ35pdv2OrzhRT3wDMr52QiayQxUqs7jd7GDsfPOjMcw3T3ek0TysbyZZw==", "integrity": "sha512-xZ4OZUxdpcFUpZjrqfYlGK0VglpPRKKSoE3vMHrstxolixQNs/MrbMezOAO5uS454hIEcWpnk75RZK26WkPW/g==",
"requires": { "requires": {
"cache-parser": "1.2.5", "cache-parser": "^1.2.6",
"fast-defer": "1.1.8", "fast-defer": "^1.1.9",
"object-code": "1.3.3" "http-vary": "^1.0.3",
"object-code": "^2.0.0",
"try": "^1.0.3"
} }
}, },
"axios-cookiejar-support": { "axios-cookiejar-support": {
@@ -14264,11 +14293,6 @@
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
}, },
"blessed": {
"version": "0.1.81",
"resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz",
"integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ=="
},
"bluebird": { "bluebird": {
"version": "3.7.2", "version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
@@ -14401,9 +14425,9 @@
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
}, },
"cache-parser": { "cache-parser": {
"version": "1.2.5", "version": "1.2.6",
"resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.5.tgz", "resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.6.tgz",
"integrity": "sha512-Md/4VhAHByQ9frQ15WD6LrMNiVw9AEl/J7vWIXw+sxT6fSOpbtt6LHTp76vy8+bOESPBO94117Hm2bIjlI7XjA==" "integrity": "sha512-SjjnKlWgrhDrAWKUxAvmZLRGDa6JExMfjSu59/pvpNoI6mEHYSLcLKUw2RtECEOINvf6dxJo35fY+T/scA0SUA=="
}, },
"call-bind": { "call-bind": {
"version": "1.0.8", "version": "1.0.8",
@@ -14838,9 +14862,9 @@
"integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==" "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="
}, },
"dayjs": { "dayjs": {
"version": "1.11.18", "version": "1.11.19",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
"integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==" "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
}, },
"debug": { "debug": {
"version": "4.3.4", "version": "4.3.4",
@@ -15056,12 +15080,12 @@
} }
}, },
"epg-parser": { "epg-parser": {
"version": "0.3.1", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/epg-parser/-/epg-parser-0.3.1.tgz", "resolved": "https://registry.npmjs.org/epg-parser/-/epg-parser-0.5.0.tgz",
"integrity": "sha512-y131hXfDthUdSeKbN0Ru1wiFF5er4t/TLT+IaAnHF2CYB0cnygHTJteQMDYIlHWHDsGj+z9ejm1cU3saFNF3nQ==", "integrity": "sha512-NK9vSev/KkCVcKilJd35PmB9tP4+tN45dhcsSxHagVoUTINh8KLZ1yvgtoPDVYr0IaSPJXIIIZWcu1JPjS5HMw==",
"requires": { "requires": {
"dayjs": "^1.11.6", "dayjs": "^1.11.19",
"lodash": "^4.17.21", "lodash.groupby": "^4.6.0",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
} }
}, },
@@ -15369,9 +15393,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"fast-defer": { "fast-defer": {
"version": "1.1.8", "version": "1.1.9",
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.8.tgz", "resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.9.tgz",
"integrity": "sha512-lEJeOH5VL5R09j6AA0D4Uvq7AgsHw0dAImQQ+F3iSyHZuAxyQfWobsagGpTcOPvJr3urmKRHrs+Gs9hV+/Qm/Q==" "integrity": "sha512-JP7Xm9HuePSeTT1DI78NeE9eAQvgNb9qNP2jlyQrcx4jiWM189omV6oyd0xaUPWHPlKmvDzz6H1FfPWIDU+xfg=="
}, },
"fast-glob": { "fast-glob": {
"version": "3.3.3", "version": "3.3.3",
@@ -15481,9 +15505,9 @@
"integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.15.6", "version": "1.15.11",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="
}, },
"for-each": { "for-each": {
"version": "0.3.5", "version": "0.3.5",
@@ -15510,9 +15534,9 @@
} }
}, },
"form-data": { "form-data": {
"version": "4.0.4", "version": "4.0.5",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"requires": { "requires": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",
"combined-stream": "^1.0.8", "combined-stream": "^1.0.8",
@@ -15622,24 +15646,40 @@
"integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==" "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg=="
}, },
"glob": { "glob": {
"version": "11.0.3", "version": "11.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
"integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
"requires": { "requires": {
"foreground-child": "^3.3.1", "foreground-child": "^3.3.1",
"jackspeak": "^4.1.1", "jackspeak": "^4.1.1",
"minimatch": "^10.0.3", "minimatch": "^10.1.1",
"minipass": "^7.1.2", "minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0", "package-json-from-dist": "^1.0.0",
"path-scurry": "^2.0.0" "path-scurry": "^2.0.0"
}, },
"dependencies": { "dependencies": {
"minimatch": { "balanced-match": {
"version": "10.0.3", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
"integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
"requires": { "requires": {
"@isaacs/brace-expansion": "^5.0.0" "jackspeak": "^4.2.3"
}
},
"brace-expansion": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
"integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
"requires": {
"balanced-match": "^4.0.2"
}
},
"minimatch": {
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
"integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
"requires": {
"brace-expansion": "^5.0.2"
} }
} }
} }
@@ -15746,6 +15786,11 @@
"debug": "^4.3.4" "debug": "^4.3.4"
} }
}, },
"http-vary": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/http-vary/-/http-vary-1.0.3.tgz",
"integrity": "sha512-sx7Y8YTqF3o0mFJJvF66n8dbaE8v3liV1RgCz46XP5xK7dnzyZHvwMWRA115q5kjbCPBV65/nOMlgW54WLyiag=="
},
"https-proxy-agent": { "https-proxy-agent": {
"version": "7.0.6", "version": "7.0.6",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
@@ -16042,11 +16087,18 @@
} }
}, },
"jackspeak": { "jackspeak": {
"version": "4.1.1", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
"integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
"requires": { "requires": {
"@isaacs/cliui": "^8.0.2" "@isaacs/cliui": "^9.0.0"
},
"dependencies": {
"@isaacs/cliui": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
"integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg=="
}
} }
}, },
"jest": { "jest": {
@@ -16284,9 +16336,9 @@
} }
}, },
"glob": { "glob": {
"version": "10.4.5", "version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"requires": { "requires": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^3.1.2", "jackspeak": "^3.1.2",
@@ -16810,9 +16862,9 @@
} }
}, },
"glob": { "glob": {
"version": "10.4.5", "version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"requires": { "requires": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^3.1.2", "jackspeak": "^3.1.2",
@@ -17279,9 +17331,14 @@
} }
}, },
"lodash": { "lodash": {
"version": "4.17.21", "version": "4.17.23",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="
},
"lodash.groupby": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
"integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw=="
}, },
"lodash.merge": { "lodash.merge": {
"version": "4.6.2", "version": "4.6.2",
@@ -17573,9 +17630,9 @@
"integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA=="
}, },
"object-code": { "object-code": {
"version": "1.3.3", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/object-code/-/object-code-1.3.3.tgz", "resolved": "https://registry.npmjs.org/object-code/-/object-code-2.0.0.tgz",
"integrity": "sha512-/Ds4Xd5xzrtUOJ+xJQ57iAy0BZsZltOHssnDgcZ8DOhgh41q1YJCnTPnWdWSLkNGNnxYzhYChjc5dgC9mEERCA==" "integrity": "sha512-qOwMF43O/VAD51nJAB7MKsf1yWksql6O1i0DHRo1yaOQM6xJQH0NAE9UKJzYB7lyKw1jnpeb2BmB8qakjxiYZA=="
}, },
"object-treeify": { "object-treeify": {
"version": "2.1.1", "version": "2.1.1",
@@ -17896,37 +17953,37 @@
} }
}, },
"pm2": { "pm2": {
"version": "6.0.10", "version": "6.0.14",
"resolved": "https://registry.npmjs.org/pm2/-/pm2-6.0.10.tgz", "resolved": "https://registry.npmjs.org/pm2/-/pm2-6.0.14.tgz",
"integrity": "sha512-sbk4HsnhtJMx1wJlhFQhYfDRzHtVK+cvdrIezbjM9WjSyc7kLtQ4nZ5K7JLOdLe3AevytmRcTiOa3VvAQrve2A==", "integrity": "sha512-wX1FiFkzuT2H/UUEA8QNXDAA9MMHDsK/3UHj6Dkd5U7kxyigKDA5gyDw78ycTQZAuGCLWyUX5FiXEuVQWafukA==",
"requires": { "requires": {
"@pm2/agent": "~2.1.1", "@pm2/agent": "~2.1.1",
"@pm2/blessed": "0.1.81",
"@pm2/io": "~6.1.0", "@pm2/io": "~6.1.0",
"@pm2/js-api": "~0.8.0", "@pm2/js-api": "~0.8.0",
"@pm2/pm2-version-check": "latest", "@pm2/pm2-version-check": "^1.0.4",
"ansis": "4.0.0-node10", "ansis": "4.0.0-node10",
"async": "~3.2.6", "async": "3.2.6",
"blessed": "0.1.81", "chokidar": "3.6.0",
"chokidar": "^3.5.3", "cli-tableau": "2.0.1",
"cli-tableau": "^2.0.0",
"commander": "2.15.1", "commander": "2.15.1",
"croner": "~4.1.92", "croner": "4.1.97",
"dayjs": "~1.11.13", "dayjs": "1.11.15",
"debug": "^4.3.7", "debug": "4.4.3",
"enquirer": "2.3.6", "enquirer": "2.3.6",
"eventemitter2": "5.0.1", "eventemitter2": "5.0.1",
"fclone": "1.0.11", "fclone": "1.0.11",
"js-yaml": "~4.1.0", "js-yaml": "4.1.1",
"mkdirp": "1.0.4", "mkdirp": "1.0.4",
"needle": "2.4.0", "needle": "2.4.0",
"pidusage": "~3.0", "pidusage": "3.0.2",
"pm2-axon": "~4.0.1", "pm2-axon": "~4.0.1",
"pm2-axon-rpc": "~0.7.1", "pm2-axon-rpc": "~0.7.1",
"pm2-deploy": "~1.0.2", "pm2-deploy": "~1.0.2",
"pm2-multimeter": "^0.1.2", "pm2-multimeter": "^0.1.2",
"pm2-sysmonit": "^1.2.8", "pm2-sysmonit": "^1.2.8",
"promptly": "^2", "promptly": "2.2.0",
"semver": "^7.6.2", "semver": "7.7.2",
"source-map-support": "0.5.21", "source-map-support": "0.5.21",
"sprintf-js": "1.1.2", "sprintf-js": "1.1.2",
"vizion": "~2.2.1" "vizion": "~2.2.1"
@@ -17942,18 +17999,23 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
}, },
"dayjs": {
"version": "1.11.15",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.15.tgz",
"integrity": "sha512-MC+DfnSWiM9APs7fpiurHGCoeIx0Gdl6QZBy+5lu8MbYKN5FZEXqOgrundfibdfhGZ15o9hzmZ2xJjZnbvgKXQ=="
},
"debug": { "debug": {
"version": "4.4.1", "version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"requires": { "requires": {
"ms": "^2.1.3" "ms": "^2.1.3"
} }
}, },
"js-yaml": { "js-yaml": {
"version": "4.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"requires": { "requires": {
"argparse": "^2.0.1" "argparse": "^2.0.1"
} }
@@ -18664,9 +18726,9 @@
} }
}, },
"systeminformation": { "systeminformation": {
"version": "5.25.11", "version": "5.30.7",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.25.11.tgz", "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.30.7.tgz",
"integrity": "sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==", "integrity": "sha512-33B/cftpaWdpvH+Ho9U1b08ss8GQuLxrWHelbJT1yw4M48Taj8W3ezcPuaLoIHZz5V6tVHuQPr5BprEfnBLBMw==",
"optional": true "optional": true
}, },
"table2array": { "table2array": {
@@ -18767,6 +18829,11 @@
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz",
"integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==" "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg=="
}, },
"try": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/try/-/try-1.0.3.tgz",
"integrity": "sha512-AHA8khVCII6zKyRkyPo6pRwoR9v5jb7QFw6e5avtaVSkxVfaEucYIo06xnwB+pJaEarfYNbs7W3Vq+LZLZiWyA=="
},
"ts-api-utils": { "ts-api-utils": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
@@ -18826,9 +18893,9 @@
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==" "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="
}, },
"undici": { "undici": {
"version": "7.12.0", "version": "7.21.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-7.21.0.tgz",
"integrity": "sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==" "integrity": "sha512-Hn2tCQpoDt1wv23a68Ctc8Cr/BHpUSfaPYrkajTXOS9IKpxVRx/X5m1K2YkbK2ipgZgxXSgsUinl3x+2YdSSfg=="
}, },
"undici-types": { "undici-types": {
"version": "7.8.0", "version": "7.8.0",
+3 -1
View File
@@ -13,6 +13,7 @@
"channels:validate": "tsx scripts/commands/channels/validate.ts", "channels:validate": "tsx scripts/commands/channels/validate.ts",
"sites:init": "tsx scripts/commands/sites/init.ts", "sites:init": "tsx scripts/commands/sites/init.ts",
"sites:update": "tsx scripts/commands/sites/update.ts", "sites:update": "tsx scripts/commands/sites/update.ts",
"guides:update": "tsx scripts/commands/guides/update.ts",
"grab": "tsx scripts/commands/epg/grab.ts", "grab": "tsx scripts/commands/epg/grab.ts",
"lint": "npx eslint \"{scripts,tests,sites}/**/*.{ts,mts,js}\"", "lint": "npx eslint \"{scripts,tests,sites}/**/*.{ts,mts,js}\"",
"test": "cross-env TZ=Pacific/Nauru npx jest --runInBand", "test": "cross-env TZ=Pacific/Nauru npx jest --runInBand",
@@ -71,6 +72,7 @@
"@typescript-eslint/parser": "^8.38.0", "@typescript-eslint/parser": "^8.38.0",
"axios": "^1.11.0", "axios": "^1.11.0",
"axios-cookiejar-support": "^6.0.4", "axios-cookiejar-support": "^6.0.4",
"axios-mock-adapter": "^2.1.0",
"chalk": "^5.4.1", "chalk": "^5.4.1",
"cheerio": "^1.1.2", "cheerio": "^1.1.2",
"cli-progress": "^3.12.0", "cli-progress": "^3.12.0",
@@ -82,7 +84,7 @@
"cwait": "^1.1.2", "cwait": "^1.1.2",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"epg-grabber": "^0.46.1", "epg-grabber": "^0.46.1",
"epg-parser": "^0.3.1", "epg-parser": "^0.5.0",
"eslint": "^9.32.0", "eslint": "^9.32.0",
"eslint-config-prettier": "^10.1.8", "eslint-config-prettier": "^10.1.8",
"form-data": "^4.0.4", "form-data": "^4.0.4",
+35 -35
View File
@@ -1,35 +1,35 @@
const grab = process.env.SITE const grab = process.env.SITE
? `npm run grab -- --site=${process.env.SITE} ${process.env.CLANG ? `--lang=${process.env.CLANG}` : '' ? `npm run grab -- --site=${process.env.SITE} ${
} --output=public/guide.xml` process.env.CLANG ? `--lang=${process.env.CLANG}` : ''
: 'npm run grab -- --channels=channels.xml --output=public/guide.xml' } --output=public/guide.xml`
: 'npm run grab -- --channels=public/channels.xml --output=public/guide.xml'
const apps = [ const apps = [
{ {
name: 'serve', name: 'serve',
script: 'npx serve -- public', script: 'npx serve -- public',
instances: 1, instances: 1,
watch: false, watch: false,
autorestart: true autorestart: true
}, },
{ {
name: 'grab', name: 'grab',
script: `npx chronos -e "${grab}" -p "${process.env.CRON_SCHEDULE}" -l`, script: `npx chronos -e "${grab}" -p "${process.env.CRON_SCHEDULE}" -l`,
instances: 1, instances: 1,
watch: false, watch: false,
autorestart: true autorestart: true
} }
]; ]
if (process.env.RUN_AT_STARTUP === 'true') { if (process.env.RUN_AT_STARTUP === 'true') {
apps.push({ apps.push({
name: 'grab-at-startup', name: 'grab-at-startup',
script: grab, script: grab,
instances: 1, instances: 1,
autorestart: false, autorestart: false,
watch: false, watch: false,
max_restarts: 1 max_restarts: 1
}); })
} }
module.exports = { apps }; module.exports = { apps }
+144
View File
@@ -0,0 +1,144 @@
import { HTMLTableRow, HTMLTableDataItem, HTMLTableColumn } from '../../types/htmlTable'
import epgGrabber, { EPGGrabber } from 'epg-grabber'
import AxiosMockAdapter from 'axios-mock-adapter'
import { Storage } from '@freearhey/storage-js'
import { Channel, Worker } from '../../models'
import { Collection } from '@freearhey/core'
import { ROOT_DIR } from '../../constants'
import { Logger } from '@freearhey/core'
import { HTMLTable } from '../../core'
import epgParser from 'epg-parser'
import axios from 'axios'
async function main() {
const logger = new Logger({ level: process.env.NODE_ENV === 'test' ? -999 : 3 })
const rootStorage = new Storage(ROOT_DIR)
const workers = new Map<string, Worker>()
logger.info('loading workers.txt...')
const workersTxt = await rootStorage.load('workers.txt')
workersTxt.split('\r\n').forEach((host: string) => {
if (!host) return
const worker = new Worker({ host })
workers.set(host, worker)
})
for (const worker of workers.values()) {
logger.info(`processing "${worker.host}"...`)
const client = axios.create({
baseURL: worker.getBaseUrl(),
timeout: 60000
})
if (process.env.NODE_ENV === 'test') {
const mock = new AxiosMockAdapter(client)
if (worker.host === 'example.com') {
mock.onGet('worker.json').reply(404)
} else {
const testStorage = new Storage('tests/__data__/input/guides_update')
mock.onGet('worker.json').reply(200, await testStorage.load('worker.json'))
mock.onGet('channels.xml').reply(200, await testStorage.load('channels.xml'))
mock.onGet('guide.xml').reply(200, await testStorage.load('guide.xml'))
}
}
const workerJson = await client
.get('worker.json')
.then(res => res.data)
.catch(err => {
worker.status = err.status
logger.error(err.message)
})
if (!workerJson) {
worker.status = 'MISSING_WORKER_CONFIG'
logger.error('Unable to load "workers.json"')
continue
}
worker.channelsPath = workerJson.channels
worker.guidePath = workerJson.guide
if (!worker.channelsPath) {
worker.status = 'MISSING_CHANNELS_PATH'
logger.error('The "channels" property is missing from the workers config')
continue
}
if (!worker.guidePath) {
worker.status = 'MISSING_GUIDE_PATH'
logger.error('The "guide" property is missing from the workers config')
continue
}
const channelsXml = await client
.get(worker.channelsPath)
.then(res => res.data)
.catch(err => {
worker.status = err.status
logger.error(err.message)
})
if (!channelsXml) continue
const parsedChannels = EPGGrabber.parseChannelsXML(channelsXml)
worker.channels = new Collection(parsedChannels).map(
(channel: epgGrabber.Channel) => new Channel(channel.toObject())
)
const guideXml = await client
.get(worker.guidePath)
.then(res => res.data)
.catch(err => {
worker.status = err.status
logger.error(err.message)
})
if (!guideXml) continue
const parsedGuide = epgParser.parse(guideXml)
worker.lastUpdated = parsedGuide.date
worker.status = 'OK'
}
logger.info('creating guides table...')
const rows = new Collection<HTMLTableRow>()
workers.forEach((worker: Worker) => {
rows.add(
new Collection<HTMLTableDataItem>([
{ value: worker.host },
{ value: worker.getStatusEmoji(), align: 'center' },
{ value: worker.getChannelsCount().toString(), align: 'right' },
{ value: worker.getLastUpdated(), align: 'left' },
{
value:
worker.status === 'OK'
? `<a href="${worker.getChannelsUrl()}">${worker.channelsPath}</a><br><a href="${worker.getGuideUrl()}">${worker.guidePath}</a>`
: ''
}
])
)
})
logger.info('updating guides.md...')
const table = new HTMLTable(
rows,
new Collection<HTMLTableColumn>([
{ name: 'Host', align: 'left' },
{ name: 'Status', align: 'left' },
{ name: 'Channels', align: 'left' },
{ name: 'Last Updated', align: 'left' },
{ name: 'Links', align: 'left' }
])
)
const guidesTemplate = await new Storage().load('scripts/templates/_guides.md')
const guidesContent = guidesTemplate.replace('_TABLE_', table.toString())
await rootStorage.save('GUIDES.md', guidesContent)
}
main()
+1
View File
@@ -3,3 +3,4 @@ export * from './issue'
export * from './site' export * from './site'
export * from './channel' export * from './channel'
export * from './program' export * from './program'
export * from './worker'
+73
View File
@@ -0,0 +1,73 @@
import relativeTime from 'dayjs/plugin/relativeTime'
import { Collection } from '@freearhey/core'
import { Channel } from './channel'
import utc from 'dayjs/plugin/utc'
import dayjs from 'dayjs'
dayjs.extend(relativeTime)
dayjs.extend(utc)
export interface WorkerData {
host: string
}
export class Worker {
host: string
channelsPath?: string
guidePath?: string
channels?: Collection<Channel>
status?: string
lastUpdated?: string
constructor(data: WorkerData) {
this.host = data.host
}
getBaseUrl(): string {
return `https://${this.host}`
}
getConfigUrl(): string {
const url = new URL('worker.json', this.getBaseUrl())
return url.href
}
getChannelsUrl(): string {
if (!this.channelsPath) return ''
const url = new URL(this.channelsPath, this.getBaseUrl())
return url.href
}
getGuideUrl(): string {
if (!this.guidePath) return ''
const url = new URL(this.guidePath, this.getBaseUrl())
return url.href
}
getStatusEmoji(): string {
if (!this.status) return '⚪'
if (this.status === 'OK') return '🟢'
return '🔴'
}
getChannelsCount(): number {
if (!this.channels) return 0
return this.channels.count()
}
getLastUpdated(): string {
if (!this.lastUpdated) return '-'
let now = dayjs()
if (process.env.NODE_ENV === 'test') now = dayjs.utc('2026-02-13')
return dayjs.utc(this.lastUpdated).from(now)
}
}
+5
View File
@@ -0,0 +1,5 @@
# Guides
_TABLE_
[How can I add my server to the list?](CONTRIBUTING.md#how-to-add-my-server-to-the-guides-md)
+3 -2
View File
@@ -34,6 +34,7 @@ module.exports = {
const programs = [] const programs = []
if (!content) return programs if (!content) return programs
const items = JSON.parse(content) const items = JSON.parse(content)
if (!Array.isArray(items)) return programs
items.forEach(item => { items.forEach(item => {
const image = parseImage(item) const image = parseImage(item)
const start = parseStart(item) const start = parseStart(item)
@@ -60,9 +61,9 @@ function parseStart(item) {
} }
function parseDuration(item) { function parseDuration(item) {
const [, HH, mm, ss] = item.duration.match(/(\d+):(\d+):(\d+)/) const [, HH, mm, ss] = item.duration.match(/(\d+):(\d+)(?::(\d+))?/)
return parseInt(HH) * 3600 + parseInt(mm) * 60 + parseInt(ss) return parseInt(HH) * 3600 + parseInt(mm) * 60 + parseInt(ss || 0)
} }
function parseImage(item) { function parseImage(item) {
+108 -109
View File
@@ -1,14 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="freeview.co.uk" site_id="64257#4164" lang="en" xmltv_id="BBCOne.uk@London">BBC ONE Lon</channel>
<channel site="freeview.co.uk" site_id="64257#4287" lang="en" xmltv_id="BBCTwo.uk@England">BBC TWO</channel>
<channel site="freeview.co.uk" site_id="64257#4288" lang="en" xmltv_id="BBCThree.uk@SD">BBC THREE</channel>
<channel site="freeview.co.uk" site_id="64257#4352" lang="en" xmltv_id="BBCNews.uk@Africa">BBC NEWS</channel>
<channel site="freeview.co.uk" site_id="64257#4416" lang="en" xmltv_id="">BBC Red Button</channel> <channel site="freeview.co.uk" site_id="64257#4416" lang="en" xmltv_id="">BBC Red Button</channel>
<channel site="freeview.co.uk" site_id="64257#4544" lang="en" xmltv_id="BBCFour.uk@UK">BBC FOUR</channel>
<channel site="freeview.co.uk" site_id="64257#4608" lang="en" xmltv_id="CBBC.uk@SD">CBBC</channel>
<channel site="freeview.co.uk" site_id="64257#4672" lang="en" xmltv_id="CBeebies.uk@SD">CBeebies</channel>
<channel site="freeview.co.uk" site_id="64257#4736" lang="en" xmltv_id="BBCParliament.uk@SD">BBC Parliament</channel>
<channel site="freeview.co.uk" site_id="64257#5632" lang="en" xmltv_id="">BBC R5L</channel> <channel site="freeview.co.uk" site_id="64257#5632" lang="en" xmltv_id="">BBC R5L</channel>
<channel site="freeview.co.uk" site_id="64257#5696" lang="en" xmltv_id="">BBC 5SX</channel> <channel site="freeview.co.uk" site_id="64257#5696" lang="en" xmltv_id="">BBC 5SX</channel>
<channel site="freeview.co.uk" site_id="64257#5760" lang="en" xmltv_id="">BBC 6 Music</channel> <channel site="freeview.co.uk" site_id="64257#5760" lang="en" xmltv_id="">BBC 6 Music</channel>
@@ -25,146 +17,153 @@
<channel site="freeview.co.uk" site_id="64257#6784" lang="en" xmltv_id="">BBC Radio 2</channel> <channel site="freeview.co.uk" site_id="64257#6784" lang="en" xmltv_id="">BBC Radio 2</channel>
<channel site="freeview.co.uk" site_id="64257#6848" lang="en" xmltv_id="">BBC Radio 3</channel> <channel site="freeview.co.uk" site_id="64257#6848" lang="en" xmltv_id="">BBC Radio 3</channel>
<channel site="freeview.co.uk" site_id="64257#6912" lang="en" xmltv_id="">BBC Radio 4</channel> <channel site="freeview.co.uk" site_id="64257#6912" lang="en" xmltv_id="">BBC Radio 4</channel>
<channel site="freeview.co.uk" site_id="64257#7168" lang="en" xmltv_id="BBCRedButton1.uk@SD">BBC RB 1</channel>
<channel site="freeview.co.uk" site_id="64257#8261" lang="en" xmltv_id="ITV1.uk@London">ITV1</channel>
<channel site="freeview.co.uk" site_id="64257#8294" lang="en" xmltv_id="ITV3.uk@SD">ITV3</channel>
<channel site="freeview.co.uk" site_id="64257#8325" lang="en" xmltv_id="ITV2.uk@SD">ITV2</channel>
<channel site="freeview.co.uk" site_id="64257#8330" lang="en" xmltv_id="ITV4.uk@SD">ITV4</channel>
<channel site="freeview.co.uk" site_id="64257#8340" lang="en" xmltv_id="ITVBe.uk@SD">ITV Quiz</channel>
<channel site="freeview.co.uk" site_id="64257#8361" lang="en" xmltv_id="">ITV1+1</channel>
<channel site="freeview.co.uk" site_id="64257#8384" lang="en" xmltv_id="Channel4.uk@UK">Channel 4</channel>
<channel site="freeview.co.uk" site_id="64257#8385" lang="en" xmltv_id="Film4.uk@SD">Film4</channel>
<channel site="freeview.co.uk" site_id="64257#8442" lang="en" xmltv_id="More4.uk@SD">More 4</channel>
<channel site="freeview.co.uk" site_id="64257#8448" lang="en" xmltv_id="E4.uk@SD">E4</channel>
<channel site="freeview.co.uk" site_id="64257#8452" lang="en" xmltv_id="">Channel 4+1</channel>
<channel site="freeview.co.uk" site_id="64257#8458" lang="en" xmltv_id="E4.uk@Plus1">E4+1</channel>
<channel site="freeview.co.uk" site_id="64257#8460" lang="en" xmltv_id="4seven.uk@SD">4seven</channel>
<channel site="freeview.co.uk" site_id="64257#8500" lang="en" xmltv_id="Channel5.uk@SD">5</channel>
<channel site="freeview.co.uk" site_id="64257#8700" lang="en" xmltv_id="">That&apos;s TV 3</channel> <channel site="freeview.co.uk" site_id="64257#8700" lang="en" xmltv_id="">That&apos;s TV 3</channel>
<channel site="freeview.co.uk" site_id="64257#12928" lang="en" xmltv_id="5STAR.uk@SD">5STAR</channel>
<channel site="freeview.co.uk" site_id="64257#12952" lang="en" xmltv_id="YAAAS.uk@HD">YAAAS!</channel>
<channel site="freeview.co.uk" site_id="64257#12992" lang="en" xmltv_id="5USA.uk@SD">5USA</channel>
<channel site="freeview.co.uk" site_id="64257#13008" lang="en" xmltv_id="UDaveJaVu.uk@SD">U&amp;DaveJaVu</channel>
<channel site="freeview.co.uk" site_id="64257#13024" lang="en" xmltv_id="Channel5.uk@Plus1">5 +1</channel>
<channel site="freeview.co.uk" site_id="64257#13120" lang="en" xmltv_id="QVC.uk@SD">QVC</channel>
<channel site="freeview.co.uk" site_id="64257#13144" lang="en" xmltv_id="MBC.uk@HD">MBC</channel>
<channel site="freeview.co.uk" site_id="64257#14384" lang="en" xmltv_id="Blaze.uk@SD">Blaze</channel>
<channel site="freeview.co.uk" site_id="64257#14388" lang="en" xmltv_id="Blaze.uk@Plus1">Blaze+1</channel>
<channel site="freeview.co.uk" site_id="64257#14416" lang="en" xmltv_id="QVC2.uk@SD">QVC2</channel>
<channel site="freeview.co.uk" site_id="64257#14448" lang="en" xmltv_id="TrueCrime.uk@SD">TRUE CRIME</channel>
<channel site="freeview.co.uk" site_id="64257#14456" lang="en" xmltv_id="TrueCrimeXtra.uk@SD">TRUE CRIME XTRA</channel>
<channel site="freeview.co.uk" site_id="64257#14464" lang="en" xmltv_id="WildEarth.uk@SD">WildEarth</channel>
<channel site="freeview.co.uk" site_id="64257#14480" lang="en" xmltv_id="Legend.uk@SD">LEGEND</channel>
<channel site="freeview.co.uk" site_id="64257#15016" lang="en" xmltv_id="">Sonlife</channel> <channel site="freeview.co.uk" site_id="64257#15016" lang="en" xmltv_id="">Sonlife</channel>
<channel site="freeview.co.uk" site_id="64257#15064" lang="en" xmltv_id="">On Demand 365</channel> <channel site="freeview.co.uk" site_id="64257#15064" lang="en" xmltv_id="">On Demand 365</channel>
<channel site="freeview.co.uk" site_id="64257#15448" lang="en" xmltv_id="">Channelbox</channel> <channel site="freeview.co.uk" site_id="64257#15448" lang="en" xmltv_id="">Channelbox</channel>
<channel site="freeview.co.uk" site_id="64257#15480" lang="en" xmltv_id="">UK RADIO PORTAL</channel>
<channel site="freeview.co.uk" site_id="64257#15576" lang="en" xmltv_id="GREATaction.uk@SD">Great! Action</channel>
<channel site="freeview.co.uk" site_id="64257#15584" lang="en" xmltv_id="GREATmystery.uk@SD">Great! Movies</channel>
<channel site="freeview.co.uk" site_id="64257#15592" lang="en" xmltv_id="TJC.uk@SD">TJC</channel>
<channel site="freeview.co.uk" site_id="64257#15864" lang="en" xmltv_id="">That&apos;s Oldies</channel> <channel site="freeview.co.uk" site_id="64257#15864" lang="en" xmltv_id="">That&apos;s Oldies</channel>
<channel site="freeview.co.uk" site_id="64257#15920" lang="en" xmltv_id="ITV4.uk@Plus1">ITV4+1</channel>
<channel site="freeview.co.uk" site_id="64257#15952" lang="en" xmltv_id="ITV2.uk@Plus1">ITV2+1</channel>
<channel site="freeview.co.uk" site_id="64257#16016" lang="en" xmltv_id="ITV3.uk@Plus1">ITV3+1</channel>
<channel site="freeview.co.uk" site_id="64257#16112" lang="en" xmltv_id="5Action.uk@SD">5ACTION</channel>
<channel site="freeview.co.uk" site_id="64257#16164" lang="en" xmltv_id="">CNA Originals</channel> <channel site="freeview.co.uk" site_id="64257#16164" lang="en" xmltv_id="">CNA Originals</channel>
<channel site="freeview.co.uk" site_id="64257#16170" lang="en" xmltv_id="">GIGS</channel> <channel site="freeview.co.uk" site_id="64257#16170" lang="en" xmltv_id="">GIGS</channel>
<channel site="freeview.co.uk" site_id="64257#16180" lang="en" xmltv_id="">EuroNews</channel> <channel site="freeview.co.uk" site_id="64257#16180" lang="en" xmltv_id="">EuroNews</channel>
<channel site="freeview.co.uk" site_id="64257#16188" lang="en" xmltv_id="">Trailblazer</channel> <channel site="freeview.co.uk" site_id="64257#16188" lang="en" xmltv_id="">Trailblazer</channel>
<channel site="freeview.co.uk" site_id="64257#16194" lang="en" xmltv_id="">Odyssey TV</channel> <channel site="freeview.co.uk" site_id="64257#16194" lang="en" xmltv_id="">Odyssey TV</channel>
<channel site="freeview.co.uk" site_id="64257#16200" lang="en" xmltv_id="KetchupTV.us@SD">Ketchup TV</channel>
<channel site="freeview.co.uk" site_id="64257#16208" lang="en" xmltv_id="UDrama.uk@SD">U&amp;Drama</channel>
<channel site="freeview.co.uk" site_id="64257#16216" lang="en" xmltv_id="">Ketchup Too</channel> <channel site="freeview.co.uk" site_id="64257#16216" lang="en" xmltv_id="">Ketchup Too</channel>
<channel site="freeview.co.uk" site_id="64257#16240" lang="en" xmltv_id="">ROK</channel> <channel site="freeview.co.uk" site_id="64257#16240" lang="en" xmltv_id="">ROK</channel>
<channel site="freeview.co.uk" site_id="64257#16248" lang="en" xmltv_id="RevelationTV.uk@SD">Revelation TV</channel>
<channel site="freeview.co.uk" site_id="64257#16256" lang="en" xmltv_id="GODTV.uk@SD">God TV</channel>
<channel site="freeview.co.uk" site_id="64257#16264" lang="en" xmltv_id="">Nolly Africa</channel>
<channel site="freeview.co.uk" site_id="64257#16270" lang="en" xmltv_id="AlArabyTV.qa@SD">Alaraby Network</channel>
<channel site="freeview.co.uk" site_id="64257#16272" lang="en" xmltv_id="PopMax.uk@SD">POP Max</channel>
<channel site="freeview.co.uk" site_id="64257#16278" lang="en" xmltv_id="AlJazeera.qa@English">Al Jazeera English</channel>
<channel site="freeview.co.uk" site_id="64257#16280" lang="en" xmltv_id="TinyPop.uk@SD">Tiny Pop</channel>
<channel site="freeview.co.uk" site_id="64257#16284" lang="en" xmltv_id="AlJazeera.qa@Arabic">Al Jazeera Arabic</channel>
<channel site="freeview.co.uk" site_id="64257#16286" lang="en" xmltv_id="">Global Arabic +</channel> <channel site="freeview.co.uk" site_id="64257#16286" lang="en" xmltv_id="">Global Arabic +</channel>
<channel site="freeview.co.uk" site_id="64257#16322" lang="en" xmltv_id="">NHK WORLD</channel>
<channel site="freeview.co.uk" site_id="64257#16328" lang="en" xmltv_id="">Newsmax</channel>
<channel site="freeview.co.uk" site_id="64257#16346" lang="en" xmltv_id="">Amazing Facts</channel> <channel site="freeview.co.uk" site_id="64257#16346" lang="en" xmltv_id="">Amazing Facts</channel>
<channel site="freeview.co.uk" site_id="64257#16360" lang="en" xmltv_id="">New Media TV</channel> <channel site="freeview.co.uk" site_id="64257#16360" lang="en" xmltv_id="">New Media TV</channel>
<channel site="freeview.co.uk" site_id="64257#16364" lang="en" xmltv_id="TogetherTV.uk@SD">Together TV</channel>
<channel site="freeview.co.uk" site_id="64257#16370" lang="en" xmltv_id="France24.fr@English">FRANCE 24</channel>
<channel site="freeview.co.uk" site_id="64257#16376" lang="en" xmltv_id="">Nosey</channel> <channel site="freeview.co.uk" site_id="64257#16376" lang="en" xmltv_id="">Nosey</channel>
<channel site="freeview.co.uk" site_id="64257#16394" lang="en" xmltv_id="">Shop On TV</channel> <channel site="freeview.co.uk" site_id="64257#16394" lang="en" xmltv_id="">Shop On TV</channel>
<channel site="freeview.co.uk" site_id="64257#16400" lang="en" xmltv_id="">Purpose Media</channel> <channel site="freeview.co.uk" site_id="64257#16400" lang="en" xmltv_id="">Purpose Media</channel>
<channel site="freeview.co.uk" site_id="64257#16406" lang="en" xmltv_id="TalkTV.uk@SD">Talk</channel>
<channel site="freeview.co.uk" site_id="64257#17472" lang="en" xmltv_id="BBCTwo.uk@HD">BBC TWO HD</channel>
<channel site="freeview.co.uk" site_id="64257#17536" lang="en" xmltv_id="BBCOne.uk@LondonHD">BBC ONE Lon HD</channel>
<channel site="freeview.co.uk" site_id="64257#17604" lang="en" xmltv_id="">ITV1 HD</channel>
<channel site="freeview.co.uk" site_id="64257#17664" lang="en" xmltv_id="">Channel 4 HD</channel>
<channel site="freeview.co.uk" site_id="64257#17728" lang="en" xmltv_id="Channel5.uk@HD">5 HD</channel>
<channel site="freeview.co.uk" site_id="64257#17920" lang="en" xmltv_id="BBCThree.uk@HD">BBC THREE HD</channel>
<channel site="freeview.co.uk" site_id="64257#18048" lang="en" xmltv_id="">BBC FOUR HD</channel>
<channel site="freeview.co.uk" site_id="64257#18112" lang="en" xmltv_id="CBBC.uk@HD">CBBC HD</channel>
<channel site="freeview.co.uk" site_id="64257#18176" lang="en" xmltv_id="CBeebies.uk@HD">CBeebies HD</channel>
<channel site="freeview.co.uk" site_id="64257#19968" lang="en" xmltv_id="UEden.uk@SD">U&amp;Eden</channel>
<channel site="freeview.co.uk" site_id="64257#20032" lang="en" xmltv_id="">LEGEND XTRA</channel> <channel site="freeview.co.uk" site_id="64257#20032" lang="en" xmltv_id="">LEGEND XTRA</channel>
<channel site="freeview.co.uk" site_id="64257#20160" lang="en" xmltv_id="TBNUK.uk@SD">TBN UK</channel>
<channel site="freeview.co.uk" site_id="64257#20256" lang="en" xmltv_id="5SELECT.uk@SD">5SELECT</channel>
<channel site="freeview.co.uk" site_id="64257#22080" lang="en" xmltv_id="SkyNews.uk@SD">Sky News</channel>
<channel site="freeview.co.uk" site_id="64257#22144" lang="en" xmltv_id="SkyArts.uk@SD">Sky Arts</channel>
<channel site="freeview.co.uk" site_id="64257#22208" lang="en" xmltv_id="SkyMix.uk@SD">Sky Mix</channel>
<channel site="freeview.co.uk" site_id="64257#22226" lang="en" xmltv_id="Challenge.uk@SD">Challenge</channel>
<channel site="freeview.co.uk" site_id="64257#22272" lang="en" xmltv_id="UDave.uk@SD">U&amp;Dave</channel>
<channel site="freeview.co.uk" site_id="64257#22336" lang="en" xmltv_id="UDrama.uk@Plus1">U&amp;Drama+1</channel>
<channel site="freeview.co.uk" site_id="64257#22368" lang="en" xmltv_id="E4Extra.uk@SD">E4 Extra</channel>
<channel site="freeview.co.uk" site_id="64257#22464" lang="en" xmltv_id="Film4.uk@Plus1">Film4+1</channel>
<channel site="freeview.co.uk" site_id="64257#22592" lang="en" xmltv_id="talkSPORT.uk@SD">talkSPORT</channel>
<channel site="freeview.co.uk" site_id="64257#22624" lang="en" xmltv_id="">RNIB Connect</channel> <channel site="freeview.co.uk" site_id="64257#22624" lang="en" xmltv_id="">RNIB Connect</channel>
<channel site="freeview.co.uk" site_id="64257#22656" lang="en" xmltv_id="">Heart</channel> <channel site="freeview.co.uk" site_id="64257#22656" lang="en" xmltv_id="">Heart</channel>
<channel site="freeview.co.uk" site_id="64257#22688" lang="en" xmltv_id="">Capital</channel> <channel site="freeview.co.uk" site_id="64257#22688" lang="en" xmltv_id="">Capital</channel>
<channel site="freeview.co.uk" site_id="64257#22848" lang="en" xmltv_id="">Classic FM</channel> <channel site="freeview.co.uk" site_id="64257#22848" lang="en" xmltv_id="">Classic FM</channel>
<channel site="freeview.co.uk" site_id="64257#22880" lang="en" xmltv_id="">LBC</channel> <channel site="freeview.co.uk" site_id="64257#22880" lang="en" xmltv_id="">LBC</channel>
<channel site="freeview.co.uk" site_id="64257#23040" lang="en" xmltv_id="FoodNetwork.uk@SD">Food Network</channel>
<channel site="freeview.co.uk" site_id="64257#23152" lang="en" xmltv_id="">That&apos;s TV 2</channel> <channel site="freeview.co.uk" site_id="64257#23152" lang="en" xmltv_id="">That&apos;s TV 2</channel>
<channel site="freeview.co.uk" site_id="64257#23184" lang="en" xmltv_id="">SonLife</channel> <channel site="freeview.co.uk" site_id="64257#23184" lang="en" xmltv_id="">SonLife</channel>
<channel site="freeview.co.uk" site_id="64257#23680" lang="en" xmltv_id="">Must Have Ideas</channel> <channel site="freeview.co.uk" site_id="64257#23680" lang="en" xmltv_id="">Must Have Ideas</channel>
<channel site="freeview.co.uk" site_id="64257#23712" lang="en" xmltv_id="Really.uk@SD">Really</channel> <channel site="freeview.co.uk" site_id="64257#23904" lang="en" xmltv_id="">That&apos;s 80s</channel>
<channel site="freeview.co.uk" site_id="64257#23744" lang="en" xmltv_id="QuestRed.uk@SD">Quest Red</channel>
<channel site="freeview.co.uk" site_id="64257#23808" lang="en" xmltv_id="Quest.uk@Plus1">QUEST+1</channel>
<channel site="freeview.co.uk" site_id="64257#24448" lang="en" xmltv_id="GemsTV.uk@SD">Gems TV</channel>
<channel site="freeview.co.uk" site_id="64257#25792" lang="en" xmltv_id="UYesterday.uk@SD">U&amp;Yesterday</channel>
<channel site="freeview.co.uk" site_id="64257#25920" lang="en" xmltv_id="IdealWorldTV.uk@SD">Ideal World</channel>
<channel site="freeview.co.uk" site_id="64257#26368" lang="en" xmltv_id="">Smooth Radio</channel> <channel site="freeview.co.uk" site_id="64257#26368" lang="en" xmltv_id="">Smooth Radio</channel>
<channel site="freeview.co.uk" site_id="64257#27168" lang="en" xmltv_id="GREATtv.uk@SD">Great! TV</channel>
<channel site="freeview.co.uk" site_id="64257#27200" lang="en" xmltv_id="JewelleryMaker.uk@SD">Jewellery Maker</channel>
<channel site="freeview.co.uk" site_id="64257#27232" lang="en" xmltv_id="">Hobbycraft TV</channel> <channel site="freeview.co.uk" site_id="64257#27232" lang="en" xmltv_id="">Hobbycraft TV</channel>
<channel site="freeview.co.uk" site_id="64257#27296" lang="en" xmltv_id="GREATromance.uk@UK">Great! Christmas</channel>
<channel site="freeview.co.uk" site_id="64257#27328" lang="en" xmltv_id="Quest.uk@SD">QUEST</channel>
<channel site="freeview.co.uk" site_id="64257#27360" lang="en" xmltv_id="GBNews.uk@SD">GB News</channel>
<channel site="freeview.co.uk" site_id="64257#27392" lang="en" xmltv_id="TogetherTV.uk@Plus1">Together TV+1</channel>
<channel site="freeview.co.uk" site_id="64257#27424" lang="en" xmltv_id="PopUp.uk@SD">POP UP</channel>
<channel site="freeview.co.uk" site_id="64257#27680" lang="en" xmltv_id="DMAX.uk@UK">DMAX</channel>
<channel site="freeview.co.uk" site_id="64257#27744" lang="en" xmltv_id="">Rewind TV</channel> <channel site="freeview.co.uk" site_id="64257#27744" lang="en" xmltv_id="">Rewind TV</channel>
<channel site="freeview.co.uk" site_id="64257#27776" lang="en" xmltv_id="Pop.uk@SD">POP</channel>
<channel site="freeview.co.uk" site_id="64257#27808" lang="en" xmltv_id="">Together TV IP</channel> <channel site="freeview.co.uk" site_id="64257#27808" lang="en" xmltv_id="">Together TV IP</channel>
<channel site="freeview.co.uk" site_id="64257#27840" lang="en" xmltv_id="HobbyMaker.uk@SD">HobbyMaker</channel>
<channel site="freeview.co.uk" site_id="64257#27872" lang="en" xmltv_id="GREATmovies.uk@UK">Great! Mystery</channel>
<channel site="freeview.co.uk" site_id="64257#27936" lang="en" xmltv_id="ThatsTV.uk@SD">That&apos;s TV (UK)</channel>
<channel site="freeview.co.uk" site_id="64257#27968" lang="en" xmltv_id="PBSAmerica.uk@SD">PBS America</channel>
<channel site="freeview.co.uk" site_id="64257#28000" lang="en" xmltv_id="HGTV.uk@SD">HGTV</channel>
<channel site="freeview.co.uk" site_id="64257#28032" lang="en" xmltv_id="">That&apos;s Melody</channel> <channel site="freeview.co.uk" site_id="64257#28032" lang="en" xmltv_id="">That&apos;s Melody</channel>
<channel site="freeview.co.uk" site_id="64257#28096" lang="en" xmltv_id="UW.uk@SD">U&amp;W</channel>
<channel site="freeview.co.uk" site_id="64257#28160" lang="en" xmltv_id="">Premier Radio</channel> <channel site="freeview.co.uk" site_id="64257#28160" lang="en" xmltv_id="">Premier Radio</channel>
<channel site="freeview.co.uk" site_id="64257#28224" lang="en" xmltv_id="TalkingPicturesTV.uk@SD">TalkingPictures TV</channel>
<channel site="freeview.co.uk" site_id="64257#28352" lang="en" xmltv_id="">Great! Player</channel> <channel site="freeview.co.uk" site_id="64257#28352" lang="en" xmltv_id="">Great! Player</channel>
<channel site="freeview.co.uk" site_id="64257#28384" lang="en" xmltv_id="">GREAT! romance mix</channel> <channel site="freeview.co.uk" site_id="64257#28384" lang="en" xmltv_id="">Great! Romance Mix</channel>
<channel site="freeview.co.uk" site_id="64257#32842" lang="en" xmltv_id="LondonLive.uk@SD">London TV</channel>
<channel site="freeview.co.uk" site_id="64257#33088" lang="en" xmltv_id="">3ABN</channel>
<channel site="freeview.co.uk" site_id="64257#33280" lang="en" xmltv_id="">India Today</channel> <channel site="freeview.co.uk" site_id="64257#33280" lang="en" xmltv_id="">India Today</channel>
<channel site="freeview.co.uk" site_id="64257#33664" lang="en" xmltv_id="">TRACE UK</channel> <channel site="freeview.co.uk" site_id="64257#33664" lang="en" xmltv_id="">MBC Group</channel>
<channel site="freeview.co.uk" site_id="64257#33856" lang="en" xmltv_id="">Pop Player</channel>
<channel site="freeview.co.uk" site_id="64257#33920" lang="en" xmltv_id="">wedotv movies</channel> <channel site="freeview.co.uk" site_id="64257#33920" lang="en" xmltv_id="">wedotv movies</channel>
<channel site="freeview.co.uk" site_id="64257#33984" lang="en" xmltv_id="">It Is Written TV</channel> <channel site="freeview.co.uk" site_id="64257#33984" lang="en" xmltv_id="">It Is Written TV</channel>
<channel site="freeview.co.uk" site_id="64257#34048" lang="en" xmltv_id="">OUTflix Proud</channel> <channel site="freeview.co.uk" site_id="64257#34048" lang="en" xmltv_id="">OUTflix Proud</channel>
<channel site="freeview.co.uk" site_id="64257#34176" lang="en" xmltv_id="">High Street TV</channel> <channel site="freeview.co.uk" site_id="64257#34176" lang="en" xmltv_id="">High Street TV</channel>
<channel site="freeview.co.uk" site_id="64257#34432" lang="en" xmltv_id="">Cartoon Classics</channel>
<channel site="freeview.co.uk" site_id="64257#34496" lang="en" xmltv_id="">wedotv Movies UK</channel>
<channel site="freeview.co.uk" site_id="64257#34560" lang="en" xmltv_id="">Nolly Africa</channel>
<channel site="freeview.co.uk" site_id="64257#8460" lang="en" xmltv_id="4seven.uk@SD">4seven</channel>
<channel site="freeview.co.uk" site_id="64257#16112" lang="en" xmltv_id="5Action.uk@SD">5ACTION</channel>
<channel site="freeview.co.uk" site_id="64257#20256" lang="en" xmltv_id="5SELECT.uk@SD">5SELECT</channel>
<channel site="freeview.co.uk" site_id="64257#12928" lang="en" xmltv_id="5STAR.uk@SD">5STAR</channel>
<channel site="freeview.co.uk" site_id="64257#12992" lang="en" xmltv_id="5USA.uk@SD">5USA</channel>
<channel site="freeview.co.uk" site_id="64257#34240" lang="en" xmltv_id="Alarabiya.ae@SD">AL ARABIYA</channel> <channel site="freeview.co.uk" site_id="64257#34240" lang="en" xmltv_id="Alarabiya.ae@SD">AL ARABIYA</channel>
<channel site="freeview.co.uk" site_id="64257#16270" lang="en" xmltv_id="AlArabyTV.qa@SD">Alaraby Network</channel>
<channel site="freeview.co.uk" site_id="64257#16284" lang="en" xmltv_id="AlJazeera.qa@Arabic">Al Jazeera Arabic</channel>
<channel site="freeview.co.uk" site_id="64257#16278" lang="en" xmltv_id="AlJazeera.qa@English">Al Jazeera English</channel>
<channel site="freeview.co.uk" site_id="64257#34304" lang="en" xmltv_id="AsharqNews.sa@SD">ASHARQ NEWS</channel> <channel site="freeview.co.uk" site_id="64257#34304" lang="en" xmltv_id="AsharqNews.sa@SD">ASHARQ NEWS</channel>
<channel site="freeview.co.uk" site_id="64257#18048" lang="en" xmltv_id="BBCFour.uk@HD">BBC FOUR HD</channel>
<channel site="freeview.co.uk" site_id="64257#4544" lang="en" xmltv_id="BBCFour.uk@UK">BBC FOUR</channel>
<channel site="freeview.co.uk" site_id="64257#4352" lang="en" xmltv_id="BBCNews.uk">BBC NEWS</channel>
<channel site="freeview.co.uk" site_id="64257#4164" lang="en" xmltv_id="BBCOne.uk@London">BBC ONE Lon</channel>
<channel site="freeview.co.uk" site_id="64257#17536" lang="en" xmltv_id="BBCOne.uk@LondonHD">BBC ONE Lon HD</channel>
<channel site="freeview.co.uk" site_id="64257#4736" lang="en" xmltv_id="BBCParliament.uk@SD">BBC Parliament</channel>
<channel site="freeview.co.uk" site_id="64257#7168" lang="en" xmltv_id="BBCRedButton1.uk@SD">BBC RB 1</channel>
<channel site="freeview.co.uk" site_id="64257#17920" lang="en" xmltv_id="BBCThree.uk@HD">BBC THREE HD</channel>
<channel site="freeview.co.uk" site_id="64257#4288" lang="en" xmltv_id="BBCThree.uk@SD">BBC THREE</channel>
<channel site="freeview.co.uk" site_id="64257#4287" lang="en" xmltv_id="BBCTwo.uk@England">BBC TWO</channel>
<channel site="freeview.co.uk" site_id="64257#17472" lang="en" xmltv_id="BBCTwo.uk@HD">BBC TWO HD</channel>
<channel site="freeview.co.uk" site_id="64257#14388" lang="en" xmltv_id="Blaze.uk@Plus1">Blaze+1</channel>
<channel site="freeview.co.uk" site_id="64257#14384" lang="en" xmltv_id="Blaze.uk@SD">Blaze</channel>
<channel site="freeview.co.uk" site_id="64257#18112" lang="en" xmltv_id="CBBC.uk@HD">CBBC HD</channel>
<channel site="freeview.co.uk" site_id="64257#4608" lang="en" xmltv_id="CBBC.uk@SD">CBBC</channel>
<channel site="freeview.co.uk" site_id="64257#18176" lang="en" xmltv_id="CBeebies.uk@HD">CBeebies HD</channel>
<channel site="freeview.co.uk" site_id="64257#4672" lang="en" xmltv_id="CBeebies.uk@SD">CBeebies</channel>
<channel site="freeview.co.uk" site_id="64257#22226" lang="en" xmltv_id="Challenge.uk@SD">Challenge</channel>
<channel site="freeview.co.uk" site_id="64257#17664" lang="en" xmltv_id="Channel4.uk@HD">Channel 4 HD</channel>
<channel site="freeview.co.uk" site_id="64257#8452" lang="en" xmltv_id="Channel4.uk@Plus1">Channel 4+1</channel>
<channel site="freeview.co.uk" site_id="64257#8384" lang="en" xmltv_id="Channel4.uk@UK">Channel 4</channel>
<channel site="freeview.co.uk" site_id="64257#17728" lang="en" xmltv_id="Channel5.uk@HD">5 HD</channel>
<channel site="freeview.co.uk" site_id="64257#13024" lang="en" xmltv_id="Channel5.uk@Plus1">5 +1</channel>
<channel site="freeview.co.uk" site_id="64257#8500" lang="en" xmltv_id="Channel5.uk@SD">5</channel>
<channel site="freeview.co.uk" site_id="64257#27680" lang="en" xmltv_id="DMAX.uk@UK">DMAX</channel>
<channel site="freeview.co.uk" site_id="64257#8458" lang="en" xmltv_id="E4.uk@Plus1">E4+1</channel>
<channel site="freeview.co.uk" site_id="64257#8448" lang="en" xmltv_id="E4.uk@SD">E4</channel>
<channel site="freeview.co.uk" site_id="64257#22368" lang="en" xmltv_id="E4Extra.uk@SD">E4 Extra</channel>
<channel site="freeview.co.uk" site_id="64257#22464" lang="en" xmltv_id="Film4.uk@Plus1">Film4+1</channel>
<channel site="freeview.co.uk" site_id="64257#8385" lang="en" xmltv_id="Film4.uk@SD">Film4</channel>
<channel site="freeview.co.uk" site_id="64257#23040" lang="en" xmltv_id="FoodNetwork.uk@SD">Food Network</channel>
<channel site="freeview.co.uk" site_id="64257#16370" lang="en" xmltv_id="France24.fr@English">FRANCE 24</channel>
<channel site="freeview.co.uk" site_id="64257#27360" lang="en" xmltv_id="GBNews.uk@SD">GB News</channel>
<channel site="freeview.co.uk" site_id="64257#24448" lang="en" xmltv_id="GemsTV.uk@SD">Gemporia</channel>
<channel site="freeview.co.uk" site_id="64257#16256" lang="en" xmltv_id="GODTV.uk@SD">God TV</channel>
<channel site="freeview.co.uk" site_id="64257#15576" lang="en" xmltv_id="GREATaction.uk@SD">Great! Action</channel>
<channel site="freeview.co.uk" site_id="64257#27872" lang="en" xmltv_id="GREATmovies.uk@UK">Great! Mystery</channel>
<channel site="freeview.co.uk" site_id="64257#15584" lang="en" xmltv_id="GREATmystery.uk@SD">Great! Movies</channel>
<channel site="freeview.co.uk" site_id="64257#27296" lang="en" xmltv_id="GREATromance.uk@UK">Great! Romance</channel>
<channel site="freeview.co.uk" site_id="64257#27168" lang="en" xmltv_id="GREATtv.uk@SD">Great! TV</channel>
<channel site="freeview.co.uk" site_id="64257#28000" lang="en" xmltv_id="HGTV.uk@SD">HGTV</channel>
<channel site="freeview.co.uk" site_id="64257#27840" lang="en" xmltv_id="HobbyMaker.uk@SD">HobbyMaker</channel>
<channel site="freeview.co.uk" site_id="64257#25920" lang="en" xmltv_id="IdealWorldTV.uk@SD">Ideal World</channel>
<channel site="freeview.co.uk" site_id="64257#17604" lang="en" xmltv_id="ITV1.uk@HD">ITV1 HD</channel>
<channel site="freeview.co.uk" site_id="64257#8261" lang="en" xmltv_id="ITV1.uk@London">ITV1</channel>
<channel site="freeview.co.uk" site_id="64257#8361" lang="en" xmltv_id="ITV1.uk@Plus1">ITV1+1</channel>
<channel site="freeview.co.uk" site_id="64257#15952" lang="en" xmltv_id="ITV2.uk@Plus1">ITV2+1</channel>
<channel site="freeview.co.uk" site_id="64257#8325" lang="en" xmltv_id="ITV2.uk@SD">ITV2</channel>
<channel site="freeview.co.uk" site_id="64257#16016" lang="en" xmltv_id="ITV3.uk@Plus1">ITV3+1</channel>
<channel site="freeview.co.uk" site_id="64257#8294" lang="en" xmltv_id="ITV3.uk@SD">ITV3</channel>
<channel site="freeview.co.uk" site_id="64257#15920" lang="en" xmltv_id="ITV4.uk@Plus1">ITV4+1</channel>
<channel site="freeview.co.uk" site_id="64257#8330" lang="en" xmltv_id="ITV4.uk@SD">ITV4</channel>
<channel site="freeview.co.uk" site_id="64257#8340" lang="en" xmltv_id="ITVBe.uk@SD">ITV Quiz</channel>
<channel site="freeview.co.uk" site_id="64257#27200" lang="en" xmltv_id="JewelleryMaker.uk@SD">Jewellery Maker</channel>
<channel site="freeview.co.uk" site_id="64257#16200" lang="en" xmltv_id="KetchupTV.us@SD">Ketchup TV</channel>
<channel site="freeview.co.uk" site_id="64257#14480" lang="en" xmltv_id="Legend.uk@SD">LEGEND</channel>
<channel site="freeview.co.uk" site_id="64257#32842" lang="en" xmltv_id="LondonLive.uk@SD">London TV</channel>
<channel site="freeview.co.uk" site_id="64257#13144" lang="en" xmltv_id="MBC.uk@HD">MBC</channel>
<channel site="freeview.co.uk" site_id="64257#8442" lang="en" xmltv_id="More4.uk@SD">More 4</channel>
<channel site="freeview.co.uk" site_id="64257#16328" lang="en" xmltv_id="NewsmaxTV.us">Newsmax</channel>
<channel site="freeview.co.uk" site_id="64257#16322" lang="en" xmltv_id="NHKWorldJapan.jp">NHK WORLD</channel>
<channel site="freeview.co.uk" site_id="64257#27968" lang="en" xmltv_id="PBSAmerica.uk@SD">PBS America</channel>
<channel site="freeview.co.uk" site_id="64257#16272" lang="en" xmltv_id="PopMax.uk@SD">POP</channel>
<channel site="freeview.co.uk" site_id="64257#27424" lang="en" xmltv_id="PopUp.uk@SD">POP UP</channel>
<channel site="freeview.co.uk" site_id="64257#23808" lang="en" xmltv_id="Quest.uk@Plus1">QUEST+1</channel>
<channel site="freeview.co.uk" site_id="64257#27328" lang="en" xmltv_id="Quest.uk@SD">QUEST</channel>
<channel site="freeview.co.uk" site_id="64257#23744" lang="en" xmltv_id="QuestRed.uk@SD">Quest Red</channel>
<channel site="freeview.co.uk" site_id="64257#14416" lang="en" xmltv_id="QVC2.uk@SD">QVC2</channel>
<channel site="freeview.co.uk" site_id="64257#13120" lang="en" xmltv_id="QVC.uk@SD">QVC</channel>
<channel site="freeview.co.uk" site_id="64257#23712" lang="en" xmltv_id="Really.uk@SD">Really</channel>
<channel site="freeview.co.uk" site_id="64257#16248" lang="en" xmltv_id="RevelationTV.uk@SD">Revelation TV</channel>
<channel site="freeview.co.uk" site_id="64257#22144" lang="en" xmltv_id="SkyArts.uk@SD">Sky Arts</channel>
<channel site="freeview.co.uk" site_id="64257#22208" lang="en" xmltv_id="SkyMix.uk@SD">Sky Mix</channel>
<channel site="freeview.co.uk" site_id="64257#22080" lang="en" xmltv_id="SkyNews.uk@SD">Sky News</channel>
<channel site="freeview.co.uk" site_id="64257#28224" lang="en" xmltv_id="TalkingPicturesTV.uk@SD">TalkingPictures TV</channel>
<channel site="freeview.co.uk" site_id="64257#22592" lang="en" xmltv_id="talkSPORT.uk@SD">talkSPORT</channel>
<channel site="freeview.co.uk" site_id="64257#16406" lang="en" xmltv_id="TalkTV.uk@SD">Talk</channel>
<channel site="freeview.co.uk" site_id="64257#20160" lang="en" xmltv_id="TBNUK.uk@SD">TBN UK</channel>
<channel site="freeview.co.uk" site_id="64257#27936" lang="en" xmltv_id="ThatsTV.uk@SD">That&apos;s TV (UK)</channel>
<channel site="freeview.co.uk" site_id="64257#16280" lang="en" xmltv_id="TinyPop.uk@SD">Tiny Pop</channel>
<channel site="freeview.co.uk" site_id="64257#15592" lang="en" xmltv_id="TJC.uk@SD">TJC</channel>
<channel site="freeview.co.uk" site_id="64257#27392" lang="en" xmltv_id="TogetherTV.uk@Plus1">Together TV+1</channel>
<channel site="freeview.co.uk" site_id="64257#16364" lang="en" xmltv_id="TogetherTV.uk@SD">Together TV</channel>
<channel site="freeview.co.uk" site_id="64257#14448" lang="en" xmltv_id="TrueCrime.uk@SD">TRUE CRIME</channel>
<channel site="freeview.co.uk" site_id="64257#14456" lang="en" xmltv_id="TrueCrimeXtra.uk@SD">TRUE CRIME XTRA</channel>
<channel site="freeview.co.uk" site_id="64257#22272" lang="en" xmltv_id="UDave.uk@SD">U&amp;Dave</channel>
<channel site="freeview.co.uk" site_id="64257#13008" lang="en" xmltv_id="UDaveJaVu.uk@SD">U&amp;DaveJaVu</channel>
<channel site="freeview.co.uk" site_id="64257#22336" lang="en" xmltv_id="UDrama.uk@Plus1">U&amp;Drama+1</channel>
<channel site="freeview.co.uk" site_id="64257#16208" lang="en" xmltv_id="UDrama.uk@SD">U&amp;Drama</channel>
<channel site="freeview.co.uk" site_id="64257#19968" lang="en" xmltv_id="UEden.uk@SD">U&amp;Eden</channel>
<channel site="freeview.co.uk" site_id="64257#28096" lang="en" xmltv_id="UW.uk@SD">U&amp;W</channel>
<channel site="freeview.co.uk" site_id="64257#25792" lang="en" xmltv_id="UYesterday.uk@SD">U&amp;Yesterday</channel>
<channel site="freeview.co.uk" site_id="64257#14464" lang="en" xmltv_id="WildEarth.uk@SD">WildEarth</channel>
<channel site="freeview.co.uk" site_id="64257#34368" lang="en" xmltv_id="YAAAS.uk">YAAAS!</channel>
</channels> </channels>
File diff suppressed because one or more lines are too long
+2 -8
View File
@@ -48,7 +48,7 @@
<channel site="meo.pt" site_id="CNN" lang="pt" xmltv_id="CNNInternational.us@MENA">CNN</channel> <channel site="meo.pt" site_id="CNN" lang="pt" xmltv_id="CNNInternational.us@MENA">CNN</channel>
<channel site="meo.pt" site_id="CNNPT" lang="pt" xmltv_id="CNNPortugal.pt@SD">CNN Portugal</channel> <channel site="meo.pt" site_id="CNNPT" lang="pt" xmltv_id="CNNPortugal.pt@SD">CNN Portugal</channel>
<channel site="meo.pt" site_id="CNOVA" lang="pt" xmltv_id="TVCancaoNova.pt@SD">Canção Nova</channel> <channel site="meo.pt" site_id="CNOVA" lang="pt" xmltv_id="TVCancaoNova.pt@SD">Canção Nova</channel>
<channel site="meo.pt" site_id="CONTALA" lang="pt" xmltv_id="">Conta Lá</channel> <channel site="meo.pt" site_id="CONTALA" lang="pt" xmltv_id="ContaLa.pt@HD">Conta Lá</channel>
<channel site="meo.pt" site_id="CUBAV" lang="pt" xmltv_id="CubavisionInternacional.cu@SD">Cubavision</channel> <channel site="meo.pt" site_id="CUBAV" lang="pt" xmltv_id="CubavisionInternacional.cu@SD">Cubavision</channel>
<channel site="meo.pt" site_id="DAZN1" lang="pt" xmltv_id="DAZN1.uk@Portugal">DAZN 1</channel> <channel site="meo.pt" site_id="DAZN1" lang="pt" xmltv_id="DAZN1.uk@Portugal">DAZN 1</channel>
<channel site="meo.pt" site_id="DAZN2" lang="pt" xmltv_id="DAZN2.uk@Portugal">DAZN 2</channel> <channel site="meo.pt" site_id="DAZN2" lang="pt" xmltv_id="DAZN2.uk@Portugal">DAZN 2</channel>
@@ -66,7 +66,6 @@
<channel site="meo.pt" site_id="DORCEL" lang="pt" xmltv_id="">DORCEL TV</channel> <channel site="meo.pt" site_id="DORCEL" lang="pt" xmltv_id="">DORCEL TV</channel>
<channel site="meo.pt" site_id="DUCKTV" lang="pt" xmltv_id="">Duck TV</channel> <channel site="meo.pt" site_id="DUCKTV" lang="pt" xmltv_id="">Duck TV</channel>
<channel site="meo.pt" site_id="DW-TV" lang="pt" xmltv_id="DW.de@English">DEUTSCHE WELLE</channel> <channel site="meo.pt" site_id="DW-TV" lang="pt" xmltv_id="DW.de@English">DEUTSCHE WELLE</channel>
<channel site="meo.pt" site_id="E! HD" lang="pt" xmltv_id="">E! Entertainment</channel>
<channel site="meo.pt" site_id="ENGLISH" lang="pt" xmltv_id="">English Club TV</channel> <channel site="meo.pt" site_id="ENGLISH" lang="pt" xmltv_id="">English Club TV</channel>
<channel site="meo.pt" site_id="EURHD" lang="pt" xmltv_id="">Eurosport 1</channel> <channel site="meo.pt" site_id="EURHD" lang="pt" xmltv_id="">Eurosport 1</channel>
<channel site="meo.pt" site_id="EURN" lang="pt" xmltv_id="EuronewsPortuguese.fr@SD">Euronews</channel> <channel site="meo.pt" site_id="EURN" lang="pt" xmltv_id="EuronewsPortuguese.fr@SD">Euronews</channel>
@@ -112,9 +111,6 @@
<channel site="meo.pt" site_id="MCMTHD" lang="pt" xmltv_id="MCMTop.fr@SD">MCM Top</channel> <channel site="meo.pt" site_id="MCMTHD" lang="pt" xmltv_id="MCMTop.fr@SD">MCM Top</channel>
<channel site="meo.pt" site_id="MEZHD" lang="pt" xmltv_id="MezzoLive.fr@SD">Mezzo Live</channel> <channel site="meo.pt" site_id="MEZHD" lang="pt" xmltv_id="MezzoLive.fr@SD">Mezzo Live</channel>
<channel site="meo.pt" site_id="MEZZO" lang="pt" xmltv_id="Mezzo.fr@SD">Mezzo</channel> <channel site="meo.pt" site_id="MEZZO" lang="pt" xmltv_id="Mezzo.fr@SD">Mezzo</channel>
<channel site="meo.pt" site_id="MTV00S" lang="en" xmltv_id="MTV00s.uk@SD">MTV 00s</channel>
<channel site="meo.pt" site_id="MTVLIVE" lang="en" xmltv_id="MTVLive.uk@SD">MTV Live</channel>
<channel site="meo.pt" site_id="MTVPHD" lang="pt" xmltv_id="MTV.pt@SD">MTV Portugal</channel>
<channel site="meo.pt" site_id="NBATVHD" lang="pt" xmltv_id="NBATV.us@SD">NBA TV</channel> <channel site="meo.pt" site_id="NBATVHD" lang="pt" xmltv_id="NBATV.us@SD">NBA TV</channel>
<channel site="meo.pt" site_id="NEWBR" lang="pt" xmltv_id="">NEW Brasil</channel> <channel site="meo.pt" site_id="NEWBR" lang="pt" xmltv_id="">NEW Brasil</channel>
<channel site="meo.pt" site_id="NEWSNOW" lang="pt" xmltv_id="NewsNow.pt@SD">News Now</channel> <channel site="meo.pt" site_id="NEWSNOW" lang="pt" xmltv_id="NewsNow.pt@SD">News Now</channel>
@@ -185,8 +181,6 @@
<channel site="meo.pt" site_id="TELESUR" lang="pt" xmltv_id="Telesur.ve@SD">Telesur</channel> <channel site="meo.pt" site_id="TELESUR" lang="pt" xmltv_id="Telesur.ve@SD">Telesur</channel>
<channel site="meo.pt" site_id="TLC" lang="pt" xmltv_id="TLC.pt@SD">TLC</channel> <channel site="meo.pt" site_id="TLC" lang="pt" xmltv_id="TLC.pt@SD">TLC</channel>
<channel site="meo.pt" site_id="TPA" lang="en" xmltv_id="TPAi.ao@SD">TPA Notícias</channel> <channel site="meo.pt" site_id="TPA" lang="en" xmltv_id="TPAi.ao@SD">TPA Notícias</channel>
<channel site="meo.pt" site_id="TRACEBR" lang="pt" xmltv_id="TraceBrazuca.fr@SD">Trace Brasil</channel>
<channel site="meo.pt" site_id="TRACETC" lang="pt" xmltv_id="TraceToca.fr@SD">Trace Toca</channel>
<channel site="meo.pt" site_id="TRAHD" lang="pt" xmltv_id="TraceUrban.fr@SD">Trace Urban</channel> <channel site="meo.pt" site_id="TRAHD" lang="pt" xmltv_id="TraceUrban.fr@SD">Trace Urban</channel>
<channel site="meo.pt" site_id="TRAXP" lang="pt" xmltv_id="Travelxp.in@SD">Travelxp HD</channel> <channel site="meo.pt" site_id="TRAXP" lang="pt" xmltv_id="Travelxp.in@SD">Travelxp HD</channel>
<channel site="meo.pt" site_id="TRAXP4K" lang="pt" xmltv_id="">Travelxp 4K HDR</channel> <channel site="meo.pt" site_id="TRAXP4K" lang="pt" xmltv_id="">Travelxp 4K HDR</channel>
@@ -217,4 +211,4 @@
<channel site="meo.pt" site_id="ZDFNEO" lang="pt" xmltv_id="ZDFneo.de@SD">ZDFNEO</channel> <channel site="meo.pt" site_id="ZDFNEO" lang="pt" xmltv_id="ZDFneo.de@SD">ZDFNEO</channel>
<channel site="meo.pt" site_id="ZEECIN" lang="pt" xmltv_id="">ZEE CINEMA</channel> <channel site="meo.pt" site_id="ZEECIN" lang="pt" xmltv_id="">ZEE CINEMA</channel>
<channel site="meo.pt" site_id="ZEETV" lang="pt" xmltv_id="ZeeTVUK.uk@SD">ZEE TV</channel> <channel site="meo.pt" site_id="ZEETV" lang="pt" xmltv_id="ZeeTVUK.uk@SD">ZEE TV</channel>
</channels> </channels>
+53 -102
View File
@@ -3,65 +3,55 @@ const { DateTime } = require('luxon')
module.exports = { module.exports = {
site: 'meo.pt', site: 'meo.pt',
days: 2, days: 2,
url: 'https://authservice.apps.meo.pt/Services/GridTv/GridTvMng.svc/getProgramsFromChannels', url: function ({ channel, date }) {
return `https://meogouser.apps.meo.pt/Services/GridTv/GridTv.svc/GetLiveChannelProgramsByDate?callLetter=${channel.site_id}&date=${date.format('YYYY-MM-DD')}&userAgent=IPTV_OFR_GTV`
},
request: { request: {
method: 'POST', method: 'GET',
headers: { headers: {
Origin: 'https://www.meo.pt', 'accept': '*/*',
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; en-US Trident/4.0)' 'accept-language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6,cs;q=0.5',
}, 'cache-control': 'no-cache',
data: function ({ channel, date }) { 'origin': 'https://www.meo.pt',
return { 'pragma': 'no-cache',
service: 'channelsguide', 'priority': 'u=1, i',
channels: [channel.site_id], 'referer': 'https://www.meo.pt/',
dateStart: date.format('YYYY-MM-DDT00:00:00-00:00'), 'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
dateEnd: date.add(1, 'd').format('YYYY-MM-DDT00:00:00-00:00'), 'sec-ch-ua-mobile': '?1',
accountID: '' 'sec-ch-ua-platform': '"Android"',
} 'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36'
} }
}, },
async parser({ content }) { async parser({ content, channel }) {
const axios = require('axios')
let programs = [] let programs = []
const items = parseItems(content) const items = parseItems(content)
if (!items.length) return programs if (!items.length) return programs
// simple per-run in-memory cache
const detailsCache = new Map()
for (const item of items) { for (const item of items) {
const start = parseStart(item) const start = DateTime.fromISO(item.StartDate, { zone: 'Europe/Lisbon' }).toUTC()
let stop = parseStop(item) const stop = DateTime.fromISO(item.EndDate, { zone: 'Europe/Lisbon' }).toUTC()
if (stop < start) {
stop = stop.plus({ days: 1 })
}
let description = ''
let image = ''
const programID = item.uniqueId || null
if (programID) {
let details = detailsCache.get(programID)
if (!details) {
details = await fetchProgramDetails(programID, axios).catch(() => null)
if (details) detailsCache.set(programID, details)
}
if (details) {
description = details.description || description
image = details.image || image
}
}
const prog = { const prog = {
title: item.name || 'Sem título', title: item.Title || 'Sem título',
start, start,
stop stop
} }
if (description) prog.description = description
if (image) { if (item.Synopsis) {
prog.description = item.Synopsis
}
// Construct image URL using the same logic as before if possible
if (item.Title && channel.site_id) {
const encodedTitle = encodeURIComponent(item.Title)
const image = `https://proxycache.online.meo.pt/eemstb/ImageHandler.ashx?evTitle=${encodedTitle}&chCallLetter=${channel.site_id}&profile=16_9&width=600`
prog.icon = { src: image } prog.icon = { src: image }
prog.image = image prog.image = image
} }
programs.push(prog) programs.push(prog)
} }
@@ -70,84 +60,45 @@ module.exports = {
async channels() { async channels() {
const axios = require('axios') const axios = require('axios')
const data = await axios const data = await axios
.post('https://authservice.apps.meo.pt/Services/GridTv/GridTvMng.svc/getGridAnon', null, { .get('https://meogouser.apps.meo.pt/Services/GridTv/GridTv.svc/GetContentsForChannels?userAgent=IPTV_OFR_GTV', {
headers: { headers: {
Origin: 'https://www.meo.pt', 'accept': '*/*',
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; en-US Trident/4.0)' 'accept-language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6,cs;q=0.5',
'cache-control': 'no-cache',
'origin': 'https://www.meo.pt',
'pragma': 'no-cache',
'priority': 'u=1, i',
'referer': 'https://www.meo.pt/',
'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
'sec-ch-ua-mobile': '?1',
'sec-ch-ua-platform': '"Android"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36'
} }
}) })
.then(r => r.data) .then(r => r.data)
.catch(console.log) .catch(console.log)
// channel logo at data.d.channels.logo return data.Result
return data.d.channels
.map(item => { .map(item => {
return { return {
lang: 'pt', lang: 'pt',
site_id: item.sigla, site_id: item.CallLetter,
name: item.name name: item.Title
} }
}) })
.filter(channel => channel.site_id) .filter(channel => channel.site_id)
} }
} }
function parseStart(item) {
return DateTime.fromFormat(`${item.date} ${item.timeIni}`, 'd-M-yyyy HH:mm', {
zone: 'Europe/Lisbon'
}).toUTC()
}
function parseStop(item) {
return DateTime.fromFormat(`${item.date} ${item.timeEnd}`, 'd-M-yyyy HH:mm', {
zone: 'Europe/Lisbon'
}).toUTC()
}
function parseItems(content) { function parseItems(content) {
if (!content) return [] if (!content) return []
const data = JSON.parse(content)
const programs = data?.d?.channels?.[0]?.programs
return Array.isArray(programs) ? programs : []
}
async function fetchProgramDetails(programID, axiosInstance) {
try { try {
const response = await axiosInstance.post( const data = typeof content === 'string' ? JSON.parse(content) : content
'https://authservice.apps.meo.pt/Services/GridTv/GridTvMng.svc/getProgramDetails', return Array.isArray(data.Result) ? data.Result : []
{
service: 'programdetail',
programID: String(programID),
accountID: ''
},
{
headers: {
Origin: 'https://www.meo.pt',
'User-Agent': 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; en-US Trident/4.0)'
},
timeout: 10000
}
)
const data = response.data
// Response structure has program data directly in data.d
const program = data?.d
if (!program || typeof program !== 'object') return null
// Build image URL using MEO's image handler
let image = null
if (program.progName && program.channelSigla) {
const encodedTitle = encodeURIComponent(program.progName)
image = `https://proxycache.online.meo.pt/eemstb/ImageHandler.ashx?evTitle=${encodedTitle}&chCallLetter=${program.channelSigla}&profile=16_9&width=600`
}
const description = program.description || null
return { description, image }
} catch { } catch {
// Silent fail returning null so parser continues return []
return null
} }
} }
+15 -20
View File
@@ -18,37 +18,28 @@ const channel = {
} }
it('can generate valid url', () => { it('can generate valid url', () => {
expect(url).toBe( expect(url({ channel, date })).toBe(
'https://authservice.apps.meo.pt/Services/GridTv/GridTvMng.svc/getProgramsFromChannels' 'https://meogouser.apps.meo.pt/Services/GridTv/GridTv.svc/GetLiveChannelProgramsByDate?callLetter=RTPM&date=2022-12-02&userAgent=IPTV_OFR_GTV'
) )
}) })
it('can generate valid request method', () => { it('can generate valid request method', () => {
expect(request.method).toBe('POST') expect(request.method).toBe('GET')
}) })
it('can generate valid request headers', () => { it('can generate valid request headers', () => {
expect(request.headers).toMatchObject({ expect(request.headers).toMatchObject({
Origin: 'https://www.meo.pt' 'origin': 'https://www.meo.pt',
}) 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36'
})
it('can generate valid request method', () => {
expect(request.data({ channel, date })).toMatchObject({
service: 'channelsguide',
channels: ['RTPM'],
dateStart: '2022-12-02T00:00:00-00:00',
dateEnd: '2022-12-03T00:00:00-00:00',
accountID: ''
}) })
}) })
it('can parse response', async () => { it('can parse response', async () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json')) const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf-8')
axios.post.mockResolvedValue({ data: {} }) axios.get.mockResolvedValue({ data: {} })
let results = await parser({ content }) let results = await parser({ content, channel })
results = results.map(p => { results = results.map(p => {
p.start = p.start.toJSON() p.start = p.start.toJSON()
p.stop = p.stop.toJSON() p.stop = p.stop.toJSON()
@@ -56,9 +47,13 @@ it('can parse response', async () => {
}) })
expect(results[0]).toMatchObject({ expect(results[0]).toMatchObject({
start: '2022-12-01T23:35:00.000Z', start: '2026-01-22T23:40:00.000Z',
stop: '2022-12-02T00:17:00.000Z', stop: '2026-01-23T00:04:00.000Z',
title: 'Walker, O Ranger Do Texas T6 - Ep. 14' title: 'Barman - Ep. 4',
description: "'Barman' é uma série de comédia dramática sobre um jovem comediante que começa a trabalhar como Barman porque precisa de arranjar dinheiro depressa, pelo caminho é obrigado a lidar com a vida noturna e conciliar duas realidades diferentes.",
icon: {
src: 'https://proxycache.online.meo.pt/eemstb/ImageHandler.ashx?evTitle=Barman%20-%20Ep.%204&chCallLetter=RTPM&profile=16_9&width=600'
}
}) })
}) })
+195 -198
View File
@@ -1,219 +1,216 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="mujtvprogram.cz" site_id="1" lang="cs" xmltv_id="CT1.cz@SD">ČT1</channel>
<channel site="mujtvprogram.cz" site_id="2" lang="cs" xmltv_id="CT2.cz@SD">ČT2</channel>
<channel site="mujtvprogram.cz" site_id="3" lang="cs" xmltv_id="TVNova.cz@SD">Nova</channel>
<channel site="mujtvprogram.cz" site_id="4" lang="cs" xmltv_id="Prima.cz@SD">Prima</channel>
<channel site="mujtvprogram.cz" site_id="5" lang="cs" xmltv_id="HBOCentralEurope.hu@HD">HBO</channel>
<channel site="mujtvprogram.cz" site_id="6" lang="cs" xmltv_id="HBO2CentralEurope.hu@HD">HBO2</channel>
<channel site="mujtvprogram.cz" site_id="7" lang="cs" xmltv_id="CinemaxCentralEurope.hu@HD">Cinemax</channel>
<channel site="mujtvprogram.cz" site_id="9" lang="cs" xmltv_id="">AXN</channel> <channel site="mujtvprogram.cz" site_id="9" lang="cs" xmltv_id="">AXN</channel>
<channel site="mujtvprogram.cz" site_id="10" lang="cs" xmltv_id="Spektrum.cz@SD">Spektrum</channel>
<channel site="mujtvprogram.cz" site_id="11" lang="cs" xmltv_id="AnimalPlanetEurope.uk@SD">Animal Planet</channel>
<channel site="mujtvprogram.cz" site_id="12" lang="cs" xmltv_id="DiscoveryChannelEurope.uk@CzechRepublic">Discovery</channel>
<channel site="mujtvprogram.cz" site_id="13" lang="cs" xmltv_id="ViasatExplore.cz@SD">Viasat Explorer</channel>
<channel site="mujtvprogram.cz" site_id="14" lang="cs" xmltv_id="ViasatHistory.cz@SD">Viasat History</channel>
<channel site="mujtvprogram.cz" site_id="15" lang="cs" xmltv_id="CSFilm.cz@SD">CS Film</channel>
<channel site="mujtvprogram.cz" site_id="16" lang="cs" xmltv_id="Eurosport1.fr@France">Eurosport 1</channel>
<channel site="mujtvprogram.cz" site_id="17" lang="cs" xmltv_id="NovaSport1.cz@SD">Nova Sport 1</channel>
<channel site="mujtvprogram.cz" site_id="18" lang="cs" xmltv_id="CTSport.cz@SD">ČT sport</channel>
<channel site="mujtvprogram.cz" site_id="19" lang="cs" xmltv_id="Ocko.cz@SD">ÓČKO</channel>
<channel site="mujtvprogram.cz" site_id="20" lang="cs" xmltv_id="MTVGlobal.uk@SD">MTV Europe</channel>
<channel site="mujtvprogram.cz" site_id="21" lang="cs" xmltv_id="NationalGeographic.cz@SD">National Geographic</channel>
<channel site="mujtvprogram.cz" site_id="23" lang="en" xmltv_id="CNNInternational.us@MENA">CNN</channel>
<channel site="mujtvprogram.cz" site_id="24" lang="cs" xmltv_id="CT24.cz@SD">ČT24</channel>
<channel site="mujtvprogram.cz" site_id="25" lang="cs" xmltv_id="Eurosport2.fr@France">Eurosport 2</channel>
<channel site="mujtvprogram.cz" site_id="29" lang="cs" xmltv_id="TVPaprika.cz@SD">TV Paprika</channel>
<channel site="mujtvprogram.cz" site_id="30" lang="cs" xmltv_id="SpektrumHome.cz@SD">Spektrum Home</channel>
<channel site="mujtvprogram.cz" site_id="31" lang="cs" xmltv_id="DisneyChannel.cz@SD">Disney Channel</channel>
<channel site="mujtvprogram.cz" site_id="32" lang="cs" xmltv_id="MinimaxCEE.cz@SD">Minimax</channel>
<channel site="mujtvprogram.cz" site_id="37" lang="cs" xmltv_id="TVP1.pl@SD">TVP 1</channel>
<channel site="mujtvprogram.cz" site_id="38" lang="cs" xmltv_id="TVP2.pl@SD">TVP 2</channel>
<channel site="mujtvprogram.cz" site_id="39" lang="cs" xmltv_id="Polsat.pl@SD">Polsat</channel>
<channel site="mujtvprogram.cz" site_id="40" lang="cs" xmltv_id="ORF1.at@SD">ORF1</channel>
<channel site="mujtvprogram.cz" site_id="41" lang="cs" xmltv_id="ORF2.at@SD">ORF2</channel>
<channel site="mujtvprogram.cz" site_id="42" lang="cs" xmltv_id="DasErste.de@SD">ARD</channel>
<channel site="mujtvprogram.cz" site_id="46" lang="cs" xmltv_id="3sat.de@SD">3SAT</channel>
<channel site="mujtvprogram.cz" site_id="47" lang="cs" xmltv_id="arte.de@SD">ARTE</channel>
<channel site="mujtvprogram.cz" site_id="49" lang="cs" xmltv_id="RTL.de@SD">RTL</channel>
<channel site="mujtvprogram.cz" site_id="50" lang="cs" xmltv_id="RTLZwei.de@SD">RTL2</channel>
<channel site="mujtvprogram.cz" site_id="52" lang="cs" xmltv_id="SAT1.de@SD">SAT1</channel>
<channel site="mujtvprogram.cz" site_id="53" lang="cs" xmltv_id="VOX.de@SD">VOX</channel>
<channel site="mujtvprogram.cz" site_id="54" lang="cs" xmltv_id="kabeleins.de@SD">Kabel1</channel>
<channel site="mujtvprogram.cz" site_id="61" lang="cs" xmltv_id="Sport1.cz@SD">Sport 1</channel>
<channel site="mujtvprogram.cz" site_id="63" lang="cs" xmltv_id="FilmPlus.cz@SD">Film+</channel>
<channel site="mujtvprogram.cz" site_id="64" lang="cs" xmltv_id="FilmBox.nl@CzechRepublic">FilmBox</channel>
<channel site="mujtvprogram.cz" site_id="65" lang="cs" xmltv_id="FilmBoxStars.nl@CzechRepublic">FilmBox Plus</channel>
<channel site="mujtvprogram.cz" site_id="66" lang="en" xmltv_id="MTV00s.uk@SD">MTV 00s</channel>
<channel site="mujtvprogram.cz" site_id="67" lang="fr" xmltv_id="Mezzo.fr@SD">Mezzo</channel>
<channel site="mujtvprogram.cz" site_id="72" lang="en" xmltv_id="HustlerTVEurope.nl@SD">Hustler</channel>
<channel site="mujtvprogram.cz" site_id="73" lang="en" xmltv_id="CartoonitoCEE.uk@SD">Cartoonito</channel>
<channel site="mujtvprogram.cz" site_id="74" lang="en" xmltv_id="PrivateTV.nl@SD">Private TV</channel>
<channel site="mujtvprogram.cz" site_id="75" lang="cs" xmltv_id="TVNoe.cz@SD">TV Noe</channel>
<channel site="mujtvprogram.cz" site_id="77" lang="cs" xmltv_id="JimJamEurope.uk@SD">JimJam</channel>
<channel site="mujtvprogram.cz" site_id="78" lang="cs" xmltv_id="NovaCinema.cz@SD">Nova Cinema</channel>
<channel site="mujtvprogram.cz" site_id="82" lang="cs" xmltv_id="NationalGeographicWild.cz@SD">National Geographic Wild</channel>
<channel site="mujtvprogram.cz" site_id="85" lang="en" xmltv_id="ExtremeSportsChannel.nl@SD">Extreme Sports Channel</channel>
<channel site="mujtvprogram.cz" site_id="89" lang="cs" xmltv_id="TVBarrandov.cz@SD">TV Barrandov</channel>
<channel site="mujtvprogram.cz" site_id="92" lang="cs" xmltv_id="PrimaCool.cz@SD">Prima COOL</channel>
<channel site="mujtvprogram.cz" site_id="93" lang="cs" xmltv_id="Sport2.cz@SD">Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="97" lang="en" xmltv_id="BBCNews.uk@Europe">BBC World News</channel>
<channel site="mujtvprogram.cz" site_id="102" lang="cs" xmltv_id="TheFishingHuntingChannel.hu@SD">Fishing &amp; Hunting</channel>
<channel site="mujtvprogram.cz" site_id="103" lang="en" xmltv_id="PlayboyTVEurope.us@SD">Playboy</channel>
<channel site="mujtvprogram.cz" site_id="105" lang="cs" xmltv_id="TravelChannelEMEA.uk@SD">Travel Channel</channel>
<channel site="mujtvprogram.cz" site_id="106" lang="en" xmltv_id="MTV80s.uk@SD">MTV 80s</channel>
<channel site="mujtvprogram.cz" site_id="108" lang="en" xmltv_id="BabyTV.uk@UK">Baby TV</channel>
<channel site="mujtvprogram.cz" site_id="109" lang="sk" xmltv_id="ducktv.sk@SD">Ducktv</channel>
<channel site="mujtvprogram.cz" site_id="110" lang="en" xmltv_id="StingrayCMusic.ca@SD">Stingray CMusic</channel>
<channel site="mujtvprogram.cz" site_id="112" lang="cs" xmltv_id="Cinemax2CentralEurope.hu@HD">Cinemax 2</channel>
<channel site="mujtvprogram.cz" site_id="117" lang="en" xmltv_id="EuronewsEnglish.fr@SD">Euronews</channel>
<channel site="mujtvprogram.cz" site_id="119" lang="en" xmltv_id="FashionTVEurope.fr@SD">Fashion TV</channel>
<channel site="mujtvprogram.cz" site_id="121" lang="cs" xmltv_id="FilmBoxExtra.nl@CzechRepublic">FilmBox Extra HD</channel>
<channel site="mujtvprogram.cz" site_id="122" lang="fr" xmltv_id="France24.fr@French">France 24 (FR)</channel>
<channel site="mujtvprogram.cz" site_id="125" lang="cs" xmltv_id="History.cz@SD">History Channel</channel>
<channel site="mujtvprogram.cz" site_id="127" lang="cs" xmltv_id="LEOTV.cz@SD">LEO TV</channel>
<channel site="mujtvprogram.cz" site_id="131" lang="en" xmltv_id="ClubMTVEurope.uk@SD">Club MTV</channel>
<channel site="mujtvprogram.cz" site_id="132" lang="en" xmltv_id="">Music Box</channel>
<channel site="mujtvprogram.cz" site_id="137" lang="en" xmltv_id="RT.ru@SD">RT</channel>
<channel site="mujtvprogram.cz" site_id="138" lang="en" xmltv_id="SkyNewsInternational.uk@SD">Sky News</channel>
<channel site="mujtvprogram.cz" site_id="141" lang="fr" xmltv_id="TV5MondeEurope.fr@SD">TV5 Monde</channel>
<channel site="mujtvprogram.cz" site_id="146" lang="en" xmltv_id="BlueHustler.nl@SD">Blue Hustler</channel>
<channel site="mujtvprogram.cz" site_id="149" lang="cs" xmltv_id="">MTV Europe CZ</channel> <channel site="mujtvprogram.cz" site_id="149" lang="cs" xmltv_id="">MTV Europe CZ</channel>
<channel site="mujtvprogram.cz" site_id="151" lang="de" xmltv_id="DMAX.de@SD">DMAX</channel>
<channel site="mujtvprogram.cz" site_id="152" lang="cs" xmltv_id="CNBCEurope.uk@SD">CNBC Europe</channel>
<channel site="mujtvprogram.cz" site_id="158" lang="en" xmltv_id="MTV90s.uk@SD">MTV 90s</channel>
<channel site="mujtvprogram.cz" site_id="159" lang="en" xmltv_id="MTVHitsEurope.uk@SD">MTV Hits</channel>
<channel site="mujtvprogram.cz" site_id="162" lang="en" xmltv_id="DW.de@English">Deutsche Welle</channel>
<channel site="mujtvprogram.cz" site_id="174" lang="cs" xmltv_id="ProSieben.de@SD">PRO7</channel>
<channel site="mujtvprogram.cz" site_id="180" lang="sk" xmltv_id="Dvojka.sk@SD">Dvojka</channel>
<channel site="mujtvprogram.cz" site_id="181" lang="sk" xmltv_id="Jednotka.sk@SD">Jednotka</channel>
<channel site="mujtvprogram.cz" site_id="182" lang="sk" xmltv_id="MarkizaDoma.sk@SD">Doma</channel>
<channel site="mujtvprogram.cz" site_id="183" lang="sk" xmltv_id="Markiza.sk@SD">Markíza</channel>
<channel site="mujtvprogram.cz" site_id="184" lang="sk" xmltv_id="JOJPlus.sk@SD">PLUS</channel>
<channel site="mujtvprogram.cz" site_id="185" lang="sk" xmltv_id="TVJOJ.sk@SD">JOJ</channel>
<channel site="mujtvprogram.cz" site_id="189" lang="sk" xmltv_id="">Spectrum</channel>
<channel site="mujtvprogram.cz" site_id="192" lang="sk" xmltv_id="TA3.sk@SD">TA3</channel>
<channel site="mujtvprogram.cz" site_id="206" lang="cs" xmltv_id="RetroMusicTV.cz@SD">Retro</channel>
<channel site="mujtvprogram.cz" site_id="207" lang="cs" xmltv_id="ViasatNature.cz@SD">Viasat Nature</channel>
<channel site="mujtvprogram.cz" site_id="214" lang="cs" xmltv_id="">National Geographic HD</channel> <channel site="mujtvprogram.cz" site_id="214" lang="cs" xmltv_id="">National Geographic HD</channel>
<channel site="mujtvprogram.cz" site_id="216" lang="de" xmltv_id="ZDFneo.de@SD">ZDF NEO</channel> <channel site="mujtvprogram.cz" site_id="453" lang="cs" xmltv_id="">Auto Motor Sport HD</channel>
<channel site="mujtvprogram.cz" site_id="217" lang="en" xmltv_id="AlJazeera.qa@English">Al Jazeera English</channel> <channel site="mujtvprogram.cz" site_id="1040" lang="cs" xmltv_id="">CANAL+ Sport</channel>
<channel site="mujtvprogram.cz" site_id="225" lang="cs" xmltv_id="GolfChannel.us@SD">Golf Channel</channel> <channel site="mujtvprogram.cz" site_id="1049" lang="cs" xmltv_id="">Canal+ Action</channel>
<channel site="mujtvprogram.cz" site_id="226" lang="cs" xmltv_id="PrimaLove.cz@SD">Prima Love</channel> <channel site="mujtvprogram.cz" site_id="1050" lang="cs" xmltv_id="">Story 4</channel>
<channel site="mujtvprogram.cz" site_id="232" lang="cs" xmltv_id="MTVLive.uk@SD">MTV Live HD</channel> <channel site="mujtvprogram.cz" site_id="1071" lang="cs" xmltv_id="">Canal+ Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="233" lang="en" xmltv_id="StingrayClassica.ca@SD">Stingray Classica</channel> <channel site="mujtvprogram.cz" site_id="1073" lang="cs" xmltv_id="">Nova Sport 5</channel>
<channel site="mujtvprogram.cz" site_id="234" lang="en" xmltv_id="StingrayiConcerts.ca@SD">Stingray iConcerts</channel> <channel site="mujtvprogram.cz" site_id="1074" lang="cs" xmltv_id="">Nova Sport 6</channel>
<channel site="mujtvprogram.cz" site_id="235" lang="en" xmltv_id="DeluxeMusic.de@SD">Deluxe Music</channel> <channel site="mujtvprogram.cz" site_id="1089" lang="cs" xmltv_id="">Warner TV</channel>
<channel site="mujtvprogram.cz" site_id="243" lang="cs" xmltv_id="Duna.hu@SD">Duna (SK)</channel> <channel site="mujtvprogram.cz" site_id="1128" lang="cs" xmltv_id="">Viasat True Crime</channel>
<channel site="mujtvprogram.cz" site_id="259" lang="cs" xmltv_id="RTL.hu@SD">RTL</channel> <channel site="mujtvprogram.cz" site_id="1133" lang="cs" xmltv_id="">DVTV Extra</channel>
<channel site="mujtvprogram.cz" site_id="268" lang="sk" xmltv_id="TV8.sk@SD">TV 8</channel> <channel site="mujtvprogram.cz" site_id="46" lang="cs" xmltv_id="3sat.de@SD">3SAT</channel>
<channel site="mujtvprogram.cz" site_id="271" lang="cs" xmltv_id="FilmBoxFamily.nl@Africa">FilmBox Family</channel>
<channel site="mujtvprogram.cz" site_id="272" lang="cs" xmltv_id="FilmEurope.cz@SD">Film Europe</channel>
<channel site="mujtvprogram.cz" site_id="276" lang="cs" xmltv_id="TLCLatinAmerica.us@Panregional">TLC</channel>
<channel site="mujtvprogram.cz" site_id="284" lang="en" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel>
<channel site="mujtvprogram.cz" site_id="288" lang="cs" xmltv_id="24Horas.es@SD">Canal 24 Horas</channel> <channel site="mujtvprogram.cz" site_id="288" lang="cs" xmltv_id="24Horas.es@SD">Canal 24 Horas</channel>
<channel site="mujtvprogram.cz" site_id="296" lang="cs" xmltv_id="A11.cz@SD">A11</channel> <channel site="mujtvprogram.cz" site_id="296" lang="cs" xmltv_id="A11.cz@SD">A11</channel>
<channel site="mujtvprogram.cz" site_id="300" lang="en" xmltv_id="EroX.nl@HD">Erox HD</channel> <channel site="mujtvprogram.cz" site_id="394" lang="cs" xmltv_id="AMCEurope.uk@CzechRepublic">AMC</channel>
<channel site="mujtvprogram.cz" site_id="301" lang="en" xmltv_id="FightBox.nl@SD">FightBox HD</channel> <channel site="mujtvprogram.cz" site_id="11" lang="cs" xmltv_id="AnimalPlanetEurope.uk@SD">Animal Planet</channel>
<channel site="mujtvprogram.cz" site_id="303" lang="de" xmltv_id="CartoonitoMENA.uk@SD">SUPER RTL</channel> <channel site="mujtvprogram.cz" site_id="47" lang="cs" xmltv_id="arte.de@SD">ARTE</channel>
<channel site="mujtvprogram.cz" site_id="304" lang="sk" xmltv_id="TVLux.sk@SD">TV Lux</channel>
<channel site="mujtvprogram.cz" site_id="307" lang="cs" xmltv_id="M1.hu@SD">M1</channel>
<channel site="mujtvprogram.cz" site_id="308" lang="sk" xmltv_id="MarkizaDajto.sk@SD">Dajto</channel>
<channel site="mujtvprogram.cz" site_id="314" lang="cs" xmltv_id="Relax.cz@SD">RELAX</channel>
<channel site="mujtvprogram.cz" site_id="317" lang="en" xmltv_id="DocuBox.nl@SD">DocuBox</channel>
<channel site="mujtvprogram.cz" site_id="323" lang="cs" xmltv_id="CBSRealityEMEA.uk@SD">CBS Reality</channel>
<channel site="mujtvprogram.cz" site_id="326" lang="cs" xmltv_id="CartoonNetworkCEE.uk@CzechRepublic">Cartoon Network</channel>
<channel site="mujtvprogram.cz" site_id="328" lang="en" xmltv_id="EroXXX.nl@HD">EroXXX HD</channel>
<channel site="mujtvprogram.cz" site_id="333" lang="cs" xmltv_id="PrimaZoom.cz@SD">Prima ZOOM</channel>
<channel site="mujtvprogram.cz" site_id="338" lang="cs" xmltv_id="FashionBox.nl@SD">FashionBox HD</channel>
<channel site="mujtvprogram.cz" site_id="344" lang="sk" xmltv_id="ArenaSport1.sk@SD">Arena Sport 1</channel>
<channel site="mujtvprogram.cz" site_id="349" lang="sk" xmltv_id="JOJWAU.sk@SD">WAU</channel>
<channel site="mujtvprogram.cz" site_id="352" lang="cs" xmltv_id="OckoStar.cz@SD">ÓČKO STAR</channel>
<channel site="mujtvprogram.cz" site_id="354" lang="de" xmltv_id="KiKA.de@SD">KiKA</channel>
<channel site="mujtvprogram.cz" site_id="355" lang="en" xmltv_id="DisneyJunior.cz@SD">Disney Junior</channel>
<channel site="mujtvprogram.cz" site_id="356" lang="cs" xmltv_id="M2.hu@SD">M2</channel>
<channel site="mujtvprogram.cz" site_id="357" lang="cs" xmltv_id="CTDecko.cz@SD">ČT :D</channel>
<channel site="mujtvprogram.cz" site_id="358" lang="cs" xmltv_id="CTart.cz@SD">ČT art</channel>
<channel site="mujtvprogram.cz" site_id="360" lang="hu" xmltv_id="Duna.hu@SD">Duna (H)</channel>
<channel site="mujtvprogram.cz" site_id="361" lang="hu" xmltv_id="RTL.hu@SD">RTL</channel>
<channel site="mujtvprogram.cz" site_id="364" lang="sk" xmltv_id="Senzi.sk@SD">Senzi</channel>
<channel site="mujtvprogram.cz" site_id="365" lang="cs" xmltv_id="Rebel.cz@SD">Rebel</channel>
<channel site="mujtvprogram.cz" site_id="366" lang="hu" xmltv_id="CoolTV.hu@SD">Cool TV</channel>
<channel site="mujtvprogram.cz" site_id="367" lang="en" xmltv_id="360TuneBox.nl@SD">360TuneBox</channel>
<channel site="mujtvprogram.cz" site_id="368" lang="cs" xmltv_id="CrimePlusInvestigationCEE.uk@SD">Crime &amp; Investigation</channel>
<channel site="mujtvprogram.cz" site_id="369" lang="cs" xmltv_id="AXNBlack.us@Bulgary">AXN Black</channel> <channel site="mujtvprogram.cz" site_id="369" lang="cs" xmltv_id="AXNBlack.us@Bulgary">AXN Black</channel>
<channel site="mujtvprogram.cz" site_id="370" lang="cs" xmltv_id="AXNWhite.us@SD">AXN White</channel> <channel site="mujtvprogram.cz" site_id="370" lang="cs" xmltv_id="AXNWhite.us@SD">AXN White</channel>
<channel site="mujtvprogram.cz" site_id="371" lang="cs" xmltv_id="OckoExpres.cz@SD">ÓČKO EXPRES</channel>
<channel site="mujtvprogram.cz" site_id="376" lang="en" xmltv_id="GINXTV.uk@SD">Ginx eSports TV</channel>
<channel site="mujtvprogram.cz" site_id="377" lang="en" xmltv_id="BrazzersTVEurope.us@SD">Brazzers TV Europe</channel>
<channel site="mujtvprogram.cz" site_id="379" lang="sk" xmltv_id="ArenaSport2.sk@SD">Arena Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="383" lang="fr" xmltv_id="MezzoLive.fr@SD">Mezzo Live HD</channel>
<channel site="mujtvprogram.cz" site_id="384" lang="cs" xmltv_id="InvestigationDiscoveryEurope.us@SD">Investigation Discovery</channel>
<channel site="mujtvprogram.cz" site_id="393" lang="cs" xmltv_id="ZDF.de@SD">ZDF</channel>
<channel site="mujtvprogram.cz" site_id="394" lang="cs" xmltv_id="AMCEurope.uk@CzechRepublic">AMC</channel>
<channel site="mujtvprogram.cz" site_id="396" lang="en" xmltv_id="France24.fr@English">France 24 (EN)</channel>
<channel site="mujtvprogram.cz" site_id="397" lang="cs" xmltv_id="FilmBoxPremium.nl@CzechRepublic">FilmBox Premium</channel>
<channel site="mujtvprogram.cz" site_id="398" lang="sk" xmltv_id="Jojko.sk@SD">Jojko</channel>
<channel site="mujtvprogram.cz" site_id="399" lang="cs" xmltv_id="HTV1.vn@SD">HTV1</channel>
<channel site="mujtvprogram.cz" site_id="400" lang="cs" xmltv_id="HTV2.vn@SD">HTV2</channel>
<channel site="mujtvprogram.cz" site_id="404" lang="en" xmltv_id="FastFunBox.nl@SD">Fast&amp;FunBox HD</channel>
<channel site="mujtvprogram.cz" site_id="406" lang="en" xmltv_id="EnglishClubTV.uk@SD">English Club TV</channel>
<channel site="mujtvprogram.cz" site_id="408" lang="cs" xmltv_id="SAT1Gold.de@SD">SAT.1 Gold</channel>
<channel site="mujtvprogram.cz" site_id="410" lang="cs" xmltv_id="EEurope.nl@SD">E! Entertainment</channel>
<channel site="mujtvprogram.cz" site_id="423" lang="cs" xmltv_id="MnamTV.cz@SD">Mňam TV</channel>
<channel site="mujtvprogram.cz" site_id="453" lang="cs" xmltv_id="">Auto Motor Sport HD</channel>
<channel site="mujtvprogram.cz" site_id="454" lang="cs" xmltv_id="KinoBarrandov.cz@SD">Kino Barrandov</channel>
<channel site="mujtvprogram.cz" site_id="455" lang="cs" xmltv_id="BarrandovKrimi.cz@SD">Barrandov Krimi</channel> <channel site="mujtvprogram.cz" site_id="455" lang="cs" xmltv_id="BarrandovKrimi.cz@SD">Barrandov Krimi</channel>
<channel site="mujtvprogram.cz" site_id="459" lang="sk" xmltv_id="JOJCinema.sk@SD">JOJ Cinema</channel> <channel site="mujtvprogram.cz" site_id="326" lang="cs" xmltv_id="CartoonNetworkCEE.uk@CzechRepublic">Cartoon Network</channel>
<channel site="mujtvprogram.cz" site_id="466" lang="cs" xmltv_id="NovaSport2.cz@SD">Nova Sport 2</channel> <channel site="mujtvprogram.cz" site_id="112" lang="cs" xmltv_id="Cinemax2CentralEurope.hu@HD">Cinemax 2</channel>
<channel site="mujtvprogram.cz" site_id="471" lang="cs" xmltv_id="FoodNetworkEMEA.us@SD">Food Network</channel> <channel site="mujtvprogram.cz" site_id="7" lang="cs" xmltv_id="CinemaxCentralEurope.hu@HD">Cinemax</channel>
<channel site="mujtvprogram.cz" site_id="474" lang="cs" xmltv_id="PrimaMax.cz@SD">Prima MAX</channel> <channel site="mujtvprogram.cz" site_id="152" lang="cs" xmltv_id="CNBCEurope.uk@SD">CNBC Europe</channel>
<channel site="mujtvprogram.cz" site_id="475" lang="cs" xmltv_id="ParamountNetwork.cz@SD">Paramount Network</channel> <channel site="mujtvprogram.cz" site_id="818" lang="cs" xmltv_id="CNNPrimaNews.cz@SD">CNN Prim NEWS</channel>
<channel site="mujtvprogram.cz" site_id="494" lang="cs" xmltv_id="NovaInternational.cz@SD">Nova International</channel> <channel site="mujtvprogram.cz" site_id="368" lang="cs" xmltv_id="CrimePlusInvestigationCEE.uk@SD">Crime &amp; Investigation</channel>
<channel site="mujtvprogram.cz" site_id="495" lang="sk" xmltv_id="MarkizaInternational.sk@SD">Markíza International</channel> <channel site="mujtvprogram.cz" site_id="15" lang="cs" xmltv_id="CSFilm.cz@SD">CS Film</channel>
<channel site="mujtvprogram.cz" site_id="512" lang="cs" xmltv_id="HBO3CentralEurope.hu@HD">HBO3</channel>
<channel site="mujtvprogram.cz" site_id="528" lang="cs" xmltv_id="PremierSport1.sk@SD">Premier Sport</channel>
<channel site="mujtvprogram.cz" site_id="532" lang="sk" xmltv_id="JOJFamily.sk@SD">JOJ Family</channel>
<channel site="mujtvprogram.cz" site_id="533" lang="en" xmltv_id="DorcelTV.nl@SD">Dorcel TV</channel>
<channel site="mujtvprogram.cz" site_id="556" lang="sk" xmltv_id="PrimaPlus.cz@SD">Prima PLUS</channel>
<channel site="mujtvprogram.cz" site_id="558" lang="cs" xmltv_id="NovaAction.cz@SD">Nova Action</channel>
<channel site="mujtvprogram.cz" site_id="559" lang="cs" xmltv_id="NovaGold.cz@SD">Nova Gold</channel>
<channel site="mujtvprogram.cz" site_id="560" lang="cs" xmltv_id="NovaFun.cz@SD">Nova Fun</channel>
<channel site="mujtvprogram.cz" site_id="568" lang="cs" xmltv_id="MnauTV.cz@SD">Mňau TV</channel>
<channel site="mujtvprogram.cz" site_id="582" lang="cs" xmltv_id="Travelxp.in@SD">Travelxp HD</channel>
<channel site="mujtvprogram.cz" site_id="601" lang="cs" xmltv_id="EpicDrama.uk@Sweden">Epic Drama</channel>
<channel site="mujtvprogram.cz" site_id="606" lang="cs" xmltv_id="TelevizeSeznam.cz@SD">Televize Seznam</channel>
<channel site="mujtvprogram.cz" site_id="608" lang="cs" xmltv_id="PrimaKrimi.cz@SD">Prim KRIMI</channel>
<channel site="mujtvprogram.cz" site_id="622" lang="cs" xmltv_id="NickJr.cz@SD">Nick Jr. Czech</channel>
<channel site="mujtvprogram.cz" site_id="624" lang="cs" xmltv_id="Nickelodeon.cz@SD">Nickelodeon</channel>
<channel site="mujtvprogram.cz" site_id="699" lang="cs" xmltv_id="PowerTV.pl@SD">Power TV</channel>
<channel site="mujtvprogram.cz" site_id="723" lang="cs" xmltv_id="Skylink7.sk@SD">Skylink 7</channel>
<channel site="mujtvprogram.cz" site_id="727" lang="cs" xmltv_id="OckoBlack.cz@SD">Óčko Black HD</channel>
<channel site="mujtvprogram.cz" site_id="728" lang="cs" xmltv_id="LalaTV.sk@SD">LALA TV</channel>
<channel site="mujtvprogram.cz" site_id="755" lang="cs" xmltv_id="CSHistory.cz@SD">CS History</channel> <channel site="mujtvprogram.cz" site_id="755" lang="cs" xmltv_id="CSHistory.cz@SD">CS History</channel>
<channel site="mujtvprogram.cz" site_id="756" lang="cs" xmltv_id="CSHorror.cz@SD">CS Horror</channel> <channel site="mujtvprogram.cz" site_id="756" lang="cs" xmltv_id="CSHorror.cz@SD">CS Horror</channel>
<channel site="mujtvprogram.cz" site_id="757" lang="cs" xmltv_id="CSMystery.cz@SD">CS Mystery</channel> <channel site="mujtvprogram.cz" site_id="757" lang="cs" xmltv_id="CSMystery.cz@SD">CS Mystery</channel>
<channel site="mujtvprogram.cz" site_id="759" lang="cs" xmltv_id="Nicktoons.cz@SD">Nicktoons</channel> <channel site="mujtvprogram.cz" site_id="1" lang="cs" xmltv_id="CT1.cz@SD">ČT1</channel>
<channel site="mujtvprogram.cz" site_id="761" lang="en" xmltv_id="DorcelXXX.nl@SD">Dorcel XXX</channel> <channel site="mujtvprogram.cz" site_id="2" lang="cs" xmltv_id="CT2.cz@SD">ČT2</channel>
<channel site="mujtvprogram.cz" site_id="808" lang="en" xmltv_id="LoveNature.ca@SD">Love Nature HD</channel> <channel site="mujtvprogram.cz" site_id="24" lang="cs" xmltv_id="CT24.cz@SD">ČT24</channel>
<channel site="mujtvprogram.cz" site_id="358" lang="cs" xmltv_id="CTart.cz@SD">ČT art</channel>
<channel site="mujtvprogram.cz" site_id="357" lang="cs" xmltv_id="CTDecko.cz@SD">ČT :D</channel>
<channel site="mujtvprogram.cz" site_id="18" lang="cs" xmltv_id="CTSport.cz@SD">ČT sport</channel>
<channel site="mujtvprogram.cz" site_id="42" lang="cs" xmltv_id="DasErste.de@SD">ARD</channel>
<channel site="mujtvprogram.cz" site_id="12" lang="cs" xmltv_id="DiscoveryChannelEurope.uk@CzechRepublic">Discovery</channel>
<channel site="mujtvprogram.cz" site_id="31" lang="cs" xmltv_id="DisneyChannel.cz@SD">Disney Channel</channel>
<channel site="mujtvprogram.cz" site_id="243" lang="cs" xmltv_id="Duna.hu@SD">Duna (SK)</channel>
<channel site="mujtvprogram.cz" site_id="410" lang="cs" xmltv_id="EEurope.nl@SD">E! Entertainment</channel>
<channel site="mujtvprogram.cz" site_id="601" lang="cs" xmltv_id="EpicDrama.uk@Sweden">Epic Drama</channel>
<channel site="mujtvprogram.cz" site_id="16" lang="cs" xmltv_id="Eurosport1.fr@France">Eurosport 1</channel>
<channel site="mujtvprogram.cz" site_id="25" lang="cs" xmltv_id="Eurosport2.fr@France">Eurosport 2</channel>
<channel site="mujtvprogram.cz" site_id="338" lang="cs" xmltv_id="FashionBox.nl@SD">FashionBox HD</channel>
<channel site="mujtvprogram.cz" site_id="64" lang="cs" xmltv_id="FilmBox.nl@CzechRepublic">FilmBox</channel>
<channel site="mujtvprogram.cz" site_id="121" lang="cs" xmltv_id="FilmBoxExtra.nl@CzechRepublic">FilmBox Extra HD</channel>
<channel site="mujtvprogram.cz" site_id="271" lang="cs" xmltv_id="FilmBoxFamily.nl@Africa">FilmBox Family</channel>
<channel site="mujtvprogram.cz" site_id="397" lang="cs" xmltv_id="FilmBoxPremium.nl@CzechRepublic">FilmBox Premium</channel>
<channel site="mujtvprogram.cz" site_id="65" lang="cs" xmltv_id="FilmBoxStars.nl@CzechRepublic">FilmBox Plus</channel>
<channel site="mujtvprogram.cz" site_id="272" lang="cs" xmltv_id="FilmEurope.cz@SD">Film Europe</channel>
<channel site="mujtvprogram.cz" site_id="816" lang="cs" xmltv_id="FilmEuropePlus.cz@SD">Film Europe + HD</channel> <channel site="mujtvprogram.cz" site_id="816" lang="cs" xmltv_id="FilmEuropePlus.cz@SD">Film Europe + HD</channel>
<channel site="mujtvprogram.cz" site_id="818" lang="cs" xmltv_id="CNNPrimaNews.cz@SD">CNN Prima News</channel> <channel site="mujtvprogram.cz" site_id="63" lang="cs" xmltv_id="FilmPlus.cz@SD">Film+</channel>
<channel site="mujtvprogram.cz" site_id="841" lang="cs" xmltv_id="SlagerPremium.cz@SD">Šlágr Premium</channel> <channel site="mujtvprogram.cz" site_id="471" lang="cs" xmltv_id="FoodNetworkEMEA.us@SD">Food Network</channel>
<channel site="mujtvprogram.cz" site_id="892" lang="en" xmltv_id="VixenTV.ca@SD">Vixen</channel> <channel site="mujtvprogram.cz" site_id="225" lang="cs" xmltv_id="GolfChannel.us@SD">Golf Channel</channel>
<channel site="mujtvprogram.cz" site_id="897" lang="cs" xmltv_id="PrimaStar.cz@SD">Prima STAR</channel> <channel site="mujtvprogram.cz" site_id="6" lang="cs" xmltv_id="HBO2CentralEurope.hu@HD">HBO2</channel>
<channel site="mujtvprogram.cz" site_id="902" lang="cs" xmltv_id="PremierSport2.sk@SD">Premier Sport 2</channel> <channel site="mujtvprogram.cz" site_id="512" lang="cs" xmltv_id="HBO3CentralEurope.hu@HD">HBO3</channel>
<channel site="mujtvprogram.cz" site_id="5" lang="cs" xmltv_id="HBOCentralEurope.hu@HD">HBO</channel>
<channel site="mujtvprogram.cz" site_id="125" lang="cs" xmltv_id="History.cz@SD">History Channel</channel>
<channel site="mujtvprogram.cz" site_id="399" lang="cs" xmltv_id="HTV1.vn@SD">HTV1</channel>
<channel site="mujtvprogram.cz" site_id="400" lang="cs" xmltv_id="HTV2.vn@SD">HTV2</channel>
<channel site="mujtvprogram.cz" site_id="384" lang="cs" xmltv_id="InvestigationDiscoveryEurope.us@SD">Investigation Discovery</channel>
<channel site="mujtvprogram.cz" site_id="77" lang="cs" xmltv_id="JimJamEurope.uk@SD">JimJam</channel>
<channel site="mujtvprogram.cz" site_id="54" lang="cs" xmltv_id="kabeleins.de@SD">Kabel1</channel>
<channel site="mujtvprogram.cz" site_id="454" lang="cs" xmltv_id="KinoBarrandov.cz@SD">Kino Barrandov</channel>
<channel site="mujtvprogram.cz" site_id="728" lang="cs" xmltv_id="LalaTV.sk@SD">LALA TV</channel>
<channel site="mujtvprogram.cz" site_id="127" lang="cs" xmltv_id="LEOTV.cz@SD">LEO TV</channel>
<channel site="mujtvprogram.cz" site_id="307" lang="cs" xmltv_id="M1.hu@SD">M1</channel>
<channel site="mujtvprogram.cz" site_id="356" lang="cs" xmltv_id="M2.hu@SD">M2</channel>
<channel site="mujtvprogram.cz" site_id="32" lang="cs" xmltv_id="MinimaxCEE.cz@SD">Minimax</channel>
<channel site="mujtvprogram.cz" site_id="423" lang="cs" xmltv_id="MnamTV.cz@SD">Mňam TV</channel>
<channel site="mujtvprogram.cz" site_id="568" lang="cs" xmltv_id="MnauTV.cz@SD">Mňau TV</channel>
<channel site="mujtvprogram.cz" site_id="20" lang="cs" xmltv_id="MTVGlobal.uk@SD">MTV Europe</channel>
<channel site="mujtvprogram.cz" site_id="21" lang="cs" xmltv_id="NationalGeographic.cz@SD">National Geographic</channel>
<channel site="mujtvprogram.cz" site_id="82" lang="cs" xmltv_id="NationalGeographicWild.cz@SD">National Geographic Wild</channel>
<channel site="mujtvprogram.cz" site_id="624" lang="cs" xmltv_id="Nickelodeon.cz@SD">Nickelodeon</channel>
<channel site="mujtvprogram.cz" site_id="622" lang="cs" xmltv_id="NickJr.cz@SD">Nick Jr. Czech</channel>
<channel site="mujtvprogram.cz" site_id="759" lang="cs" xmltv_id="Nicktoons.cz@SD">Nicktoons</channel>
<channel site="mujtvprogram.cz" site_id="558" lang="cs" xmltv_id="NovaAction.cz@SD">Nova Action</channel>
<channel site="mujtvprogram.cz" site_id="78" lang="cs" xmltv_id="NovaCinema.cz@SD">Nova Cinema</channel>
<channel site="mujtvprogram.cz" site_id="560" lang="cs" xmltv_id="NovaFun.cz@SD">Nova Fun</channel>
<channel site="mujtvprogram.cz" site_id="559" lang="cs" xmltv_id="NovaGold.cz@SD">Nova Krimi</channel>
<channel site="mujtvprogram.cz" site_id="494" lang="cs" xmltv_id="NovaInternational.cz@SD">Nova International</channel>
<channel site="mujtvprogram.cz" site_id="921" lang="cs" xmltv_id="NovaLady.cz@SD">Nova Lady</channel>
<channel site="mujtvprogram.cz" site_id="17" lang="cs" xmltv_id="NovaSport1.cz@SD">Nova Sport 1</channel>
<channel site="mujtvprogram.cz" site_id="466" lang="cs" xmltv_id="NovaSport2.cz@SD">Nova Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="904" lang="cs" xmltv_id="NovaSport3.cz@SD">Nova Sport 3</channel> <channel site="mujtvprogram.cz" site_id="904" lang="cs" xmltv_id="NovaSport3.cz@SD">Nova Sport 3</channel>
<channel site="mujtvprogram.cz" site_id="905" lang="cs" xmltv_id="NovaSport4.cz@SD">Nova Sport 4</channel> <channel site="mujtvprogram.cz" site_id="905" lang="cs" xmltv_id="NovaSport4.cz@SD">Nova Sport 4</channel>
<channel site="mujtvprogram.cz" site_id="921" lang="cs" xmltv_id="NovaLady.cz@SD">Nova Lady</channel> <channel site="mujtvprogram.cz" site_id="19" lang="cs" xmltv_id="Ocko.cz@SD">ÓČKO</channel>
<channel site="mujtvprogram.cz" site_id="923" lang="cs" xmltv_id="PrimaShow.cz@SD">Prima Show</channel> <channel site="mujtvprogram.cz" site_id="727" lang="cs" xmltv_id="OckoBlack.cz@SD">Óčko Black HD</channel>
<channel site="mujtvprogram.cz" site_id="924" lang="sk" xmltv_id="JOJSport.sk@SD">JOJ Šport</channel> <channel site="mujtvprogram.cz" site_id="371" lang="cs" xmltv_id="OckoExpres.cz@SD">ÓČKO EXPRES</channel>
<channel site="mujtvprogram.cz" site_id="928" lang="sk" xmltv_id="Sport.sk@SD">RTVS Šport</channel> <channel site="mujtvprogram.cz" site_id="352" lang="cs" xmltv_id="OckoStar.cz@SD">ÓČKO STAR</channel>
<channel site="mujtvprogram.cz" site_id="1016" lang="sk" xmltv_id="">RTVS 24</channel> <channel site="mujtvprogram.cz" site_id="40" lang="cs" xmltv_id="ORF1.at@SD">ORF1</channel>
<channel site="mujtvprogram.cz" site_id="41" lang="cs" xmltv_id="ORF2.at@SD">ORF2</channel>
<channel site="mujtvprogram.cz" site_id="39" lang="cs" xmltv_id="Polsat.pl@SD">Polsat</channel>
<channel site="mujtvprogram.cz" site_id="699" lang="cs" xmltv_id="PowerTV.pl@SD">Power TV</channel>
<channel site="mujtvprogram.cz" site_id="902" lang="cs" xmltv_id="PremierSport2.sk@SD">Premier Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="4" lang="cs" xmltv_id="Prima.cz@SD">Prima</channel>
<channel site="mujtvprogram.cz" site_id="92" lang="cs" xmltv_id="PrimaCool.cz@SD">Prima COOL</channel>
<channel site="mujtvprogram.cz" site_id="608" lang="cs" xmltv_id="PrimaKrimi.cz@SD">Prim KRIMI</channel>
<channel site="mujtvprogram.cz" site_id="226" lang="cs" xmltv_id="PrimaLove.cz@SD">Prim LOVE</channel>
<channel site="mujtvprogram.cz" site_id="474" lang="cs" xmltv_id="PrimaMax.cz@SD">Prima MAX</channel>
<channel site="mujtvprogram.cz" site_id="923" lang="cs" xmltv_id="PrimaShow.cz@SD">Prim SHOW</channel>
<channel site="mujtvprogram.cz" site_id="897" lang="cs" xmltv_id="PrimaStar.cz@SD">Prima STAR</channel>
<channel site="mujtvprogram.cz" site_id="333" lang="cs" xmltv_id="PrimaZoom.cz@SD">Prima ZOOM</channel>
<channel site="mujtvprogram.cz" site_id="174" lang="cs" xmltv_id="ProSieben.de@SD">PRO7</channel>
<channel site="mujtvprogram.cz" site_id="365" lang="cs" xmltv_id="Rebel.cz@SD">Rebel</channel>
<channel site="mujtvprogram.cz" site_id="206" lang="cs" xmltv_id="RetroMusicTV.cz@SD">Retro</channel>
<channel site="mujtvprogram.cz" site_id="49" lang="cs" xmltv_id="RTL.de@SD">RTL</channel>
<channel site="mujtvprogram.cz" site_id="259" lang="cs" xmltv_id="RTL.hu@SD">RTL</channel>
<channel site="mujtvprogram.cz" site_id="50" lang="cs" xmltv_id="RTLZwei.de@SD">RTL2</channel>
<channel site="mujtvprogram.cz" site_id="52" lang="cs" xmltv_id="SAT1.de@SD">SAT1</channel>
<channel site="mujtvprogram.cz" site_id="408" lang="cs" xmltv_id="SAT1Gold.de@SD">SAT.1 Gold</channel>
<channel site="mujtvprogram.cz" site_id="841" lang="cs" xmltv_id="SlagerPremium.cz@SD">Šlágr Premium</channel>
<channel site="mujtvprogram.cz" site_id="10" lang="cs" xmltv_id="Spektrum.cz@SD">Spektrum</channel>
<channel site="mujtvprogram.cz" site_id="30" lang="cs" xmltv_id="SpektrumHome.cz@SD">Spektrum Home</channel>
<channel site="mujtvprogram.cz" site_id="61" lang="cs" xmltv_id="Sport1.cz@SD">Sport 1</channel>
<channel site="mujtvprogram.cz" site_id="93" lang="cs" xmltv_id="Sport2.cz@SD">Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="606" lang="cs" xmltv_id="TelevizeSeznam.cz@SD">Televize Seznam</channel>
<channel site="mujtvprogram.cz" site_id="102" lang="cs" xmltv_id="TheFishingHuntingChannel.hu@SD">Fishing &amp; Hunting</channel>
<channel site="mujtvprogram.cz" site_id="276" lang="cs" xmltv_id="TLCLatinAmerica.us@Panregional">TLC</channel>
<channel site="mujtvprogram.cz" site_id="105" lang="cs" xmltv_id="TravelChannelEMEA.uk@SD">Travel Channel</channel>
<channel site="mujtvprogram.cz" site_id="582" lang="cs" xmltv_id="Travelxp.in@SD">Travelxp HD</channel>
<channel site="mujtvprogram.cz" site_id="89" lang="cs" xmltv_id="TVBarrandov.cz@SD">TV Barrandov</channel>
<channel site="mujtvprogram.cz" site_id="75" lang="cs" xmltv_id="TVNoe.cz@SD">TV Noe</channel>
<channel site="mujtvprogram.cz" site_id="3" lang="cs" xmltv_id="TVNova.cz@SD">Nova</channel>
<channel site="mujtvprogram.cz" site_id="37" lang="cs" xmltv_id="TVP1.pl@SD">TVP 1</channel>
<channel site="mujtvprogram.cz" site_id="38" lang="cs" xmltv_id="TVP2.pl@SD">TVP 2</channel>
<channel site="mujtvprogram.cz" site_id="29" lang="cs" xmltv_id="TVPaprika.cz@SD">TV Paprika</channel>
<channel site="mujtvprogram.cz" site_id="13" lang="cs" xmltv_id="ViasatExplore.cz@SD">Viasat Explorer</channel>
<channel site="mujtvprogram.cz" site_id="14" lang="cs" xmltv_id="ViasatHistory.cz@SD">Viasat History</channel>
<channel site="mujtvprogram.cz" site_id="207" lang="cs" xmltv_id="ViasatNature.cz@SD">Viasat Nature</channel>
<channel site="mujtvprogram.cz" site_id="53" lang="cs" xmltv_id="VOX.de@SD">VOX</channel>
<channel site="mujtvprogram.cz" site_id="393" lang="cs" xmltv_id="ZDF.de@SD">ZDF</channel>
<channel site="mujtvprogram.cz" site_id="303" lang="de" xmltv_id="CartoonitoMENA.uk@SD">SUPER RTL</channel>
<channel site="mujtvprogram.cz" site_id="151" lang="de" xmltv_id="DMAX.de@SD">DMAX</channel>
<channel site="mujtvprogram.cz" site_id="354" lang="de" xmltv_id="KiKA.de@SD">KiKA</channel>
<channel site="mujtvprogram.cz" site_id="216" lang="de" xmltv_id="ZDFneo.de@SD">ZDF NEO</channel>
<channel site="mujtvprogram.cz" site_id="132" lang="en" xmltv_id="">Music Box</channel>
<channel site="mujtvprogram.cz" site_id="367" lang="en" xmltv_id="360TuneBox.nl@SD">360TuneBox</channel>
<channel site="mujtvprogram.cz" site_id="217" lang="en" xmltv_id="AlJazeera.qa@English">Al Jazeera English</channel>
<channel site="mujtvprogram.cz" site_id="108" lang="en" xmltv_id="BabyTV.uk@UK">Baby TV</channel>
<channel site="mujtvprogram.cz" site_id="97" lang="en" xmltv_id="BBCNews.uk@Europe">BBC World News</channel>
<channel site="mujtvprogram.cz" site_id="284" lang="en" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel>
<channel site="mujtvprogram.cz" site_id="146" lang="en" xmltv_id="BlueHustler.nl@SD">Blue Hustler</channel>
<channel site="mujtvprogram.cz" site_id="377" lang="en" xmltv_id="BrazzersTVEurope.us@SD">Brazzers TV Europe</channel>
<channel site="mujtvprogram.cz" site_id="73" lang="en" xmltv_id="CartoonitoCEE.uk@SD">Cartoonito</channel>
<channel site="mujtvprogram.cz" site_id="23" lang="en" xmltv_id="CNNInternational.us@MENA">CNN</channel>
<channel site="mujtvprogram.cz" site_id="235" lang="en" xmltv_id="DeluxeMusic.de@SD">Deluxe Music</channel>
<channel site="mujtvprogram.cz" site_id="355" lang="en" xmltv_id="DisneyJunior.cz@SD">Disney Junior</channel>
<channel site="mujtvprogram.cz" site_id="317" lang="en" xmltv_id="DocuBox.nl@SD">DocuBox</channel>
<channel site="mujtvprogram.cz" site_id="533" lang="en" xmltv_id="DorcelTV.nl@SD">Dorcel TV</channel>
<channel site="mujtvprogram.cz" site_id="761" lang="en" xmltv_id="DorcelXXX.nl@SD">Dorcel XXX</channel>
<channel site="mujtvprogram.cz" site_id="162" lang="en" xmltv_id="DW.de@English">Deutsche Welle</channel>
<channel site="mujtvprogram.cz" site_id="406" lang="en" xmltv_id="EnglishClubTV.uk@SD">English Club TV</channel>
<channel site="mujtvprogram.cz" site_id="300" lang="en" xmltv_id="EroX.nl@HD">Erox HD</channel>
<channel site="mujtvprogram.cz" site_id="328" lang="en" xmltv_id="EroXXX.nl@HD">EroXXX HD</channel>
<channel site="mujtvprogram.cz" site_id="117" lang="en" xmltv_id="EuronewsEnglish.fr@SD">Euronews</channel>
<channel site="mujtvprogram.cz" site_id="85" lang="en" xmltv_id="ExtremeSportsChannel.nl@SD">Extreme Sports Channel</channel>
<channel site="mujtvprogram.cz" site_id="119" lang="en" xmltv_id="FashionTVEurope.fr@SD">Fashion TV</channel>
<channel site="mujtvprogram.cz" site_id="404" lang="en" xmltv_id="FastFunBox.nl@SD">Fast&amp;FunBox HD</channel>
<channel site="mujtvprogram.cz" site_id="301" lang="en" xmltv_id="FightBox.nl@SD">FightBox HD</channel>
<channel site="mujtvprogram.cz" site_id="396" lang="en" xmltv_id="France24.fr@English">France 24 (EN)</channel>
<channel site="mujtvprogram.cz" site_id="376" lang="en" xmltv_id="GINXTV.uk@SD">Ginx eSports TV</channel>
<channel site="mujtvprogram.cz" site_id="72" lang="en" xmltv_id="HustlerTVEurope.nl@SD">Hustler</channel>
<channel site="mujtvprogram.cz" site_id="808" lang="en" xmltv_id="LoveNature.ca@SD">Love Nature HD</channel>
<channel site="mujtvprogram.cz" site_id="103" lang="en" xmltv_id="PlayboyTVEurope.us@SD">Playboy</channel>
<channel site="mujtvprogram.cz" site_id="74" lang="en" xmltv_id="PrivateTV.nl@SD">Private TV</channel>
<channel site="mujtvprogram.cz" site_id="137" lang="en" xmltv_id="RT.ru@SD">RT</channel>
<channel site="mujtvprogram.cz" site_id="138" lang="en" xmltv_id="SkyNewsInternational.uk@SD">Sky News</channel>
<channel site="mujtvprogram.cz" site_id="233" lang="en" xmltv_id="StingrayClassica.ca@SD">Stingray Classica</channel>
<channel site="mujtvprogram.cz" site_id="110" lang="en" xmltv_id="StingrayCMusic.ca@SD">Stingray CMusic</channel>
<channel site="mujtvprogram.cz" site_id="234" lang="en" xmltv_id="StingrayiConcerts.ca@SD">Stingray iConcerts</channel>
<channel site="mujtvprogram.cz" site_id="892" lang="en" xmltv_id="VixenTV.ca@SD">Vixen</channel>
<channel site="mujtvprogram.cz" site_id="122" lang="fr" xmltv_id="France24.fr@French">France 24 (FR)</channel>
<channel site="mujtvprogram.cz" site_id="67" lang="fr" xmltv_id="Mezzo.fr@SD">Mezzo</channel>
<channel site="mujtvprogram.cz" site_id="383" lang="fr" xmltv_id="MezzoLive.fr@SD">Mezzo Live HD</channel>
<channel site="mujtvprogram.cz" site_id="141" lang="fr" xmltv_id="TV5MondeEurope.fr@SD">TV5 Monde</channel>
<channel site="mujtvprogram.cz" site_id="366" lang="hu" xmltv_id="CoolTV.hu@SD">Cool TV</channel>
<channel site="mujtvprogram.cz" site_id="360" lang="hu" xmltv_id="Duna.hu@SD">Duna (H)</channel>
<channel site="mujtvprogram.cz" site_id="361" lang="hu" xmltv_id="RTL.hu@SD">RTL</channel>
<channel site="mujtvprogram.cz" site_id="189" lang="sk" xmltv_id="">Spectrum</channel>
<channel site="mujtvprogram.cz" site_id="1016" lang="sk" xmltv_id="">ST24</channel>
<channel site="mujtvprogram.cz" site_id="1017" lang="sk" xmltv_id="">Markíza Krimi</channel> <channel site="mujtvprogram.cz" site_id="1017" lang="sk" xmltv_id="">Markíza Krimi</channel>
<channel site="mujtvprogram.cz" site_id="1040" lang="cs" xmltv_id="">CANAL+ Sport</channel>
<channel site="mujtvprogram.cz" site_id="1042" lang="sk" xmltv_id="">JOJ 24</channel> <channel site="mujtvprogram.cz" site_id="1042" lang="sk" xmltv_id="">JOJ 24</channel>
<channel site="mujtvprogram.cz" site_id="1049" lang="cs" xmltv_id="">Canal+ Action</channel>
<channel site="mujtvprogram.cz" site_id="1050" lang="cs" xmltv_id="">Story 4</channel>
<channel site="mujtvprogram.cz" site_id="1051" lang="sk" xmltv_id="">TV Spark</channel> <channel site="mujtvprogram.cz" site_id="1051" lang="sk" xmltv_id="">TV Spark</channel>
<channel site="mujtvprogram.cz" site_id="1060" lang="sk" xmltv_id="">JOJ Svet</channel> <channel site="mujtvprogram.cz" site_id="1060" lang="sk" xmltv_id="">JOJ Svet</channel>
<channel site="mujtvprogram.cz" site_id="1107" lang="sk" xmltv_id="">JOJ Šport</channel>
<channel site="mujtvprogram.cz" site_id="1114" lang="sk" xmltv_id="">Markíza KLASIK</channel>
<channel site="mujtvprogram.cz" site_id="1145" lang="sk" xmltv_id="">JOJ Šport 2</channel>
<channel site="mujtvprogram.cz" site_id="344" lang="sk" xmltv_id="ArenaSport1.sk@SD">Arena Sport 1</channel>
<channel site="mujtvprogram.cz" site_id="379" lang="sk" xmltv_id="ArenaSport2.sk@SD">Arena Sport 2</channel>
<channel site="mujtvprogram.cz" site_id="109" lang="sk" xmltv_id="ducktv.sk@SD">ducktv</channel>
<channel site="mujtvprogram.cz" site_id="180" lang="sk" xmltv_id="Dvojka.sk@SD">ST2</channel>
<channel site="mujtvprogram.cz" site_id="181" lang="sk" xmltv_id="Jednotka.sk@SD">ST1</channel>
<channel site="mujtvprogram.cz" site_id="459" lang="sk" xmltv_id="JOJCinema.sk@SD">JOJ Cinema</channel>
<channel site="mujtvprogram.cz" site_id="532" lang="sk" xmltv_id="JOJFamily.sk@SD">JOJ Family</channel>
<channel site="mujtvprogram.cz" site_id="398" lang="sk" xmltv_id="Jojko.sk@SD">Jojko</channel>
<channel site="mujtvprogram.cz" site_id="184" lang="sk" xmltv_id="JOJPlus.sk@SD">PLUS</channel>
<channel site="mujtvprogram.cz" site_id="349" lang="sk" xmltv_id="JOJWAU.sk@SD">WAU</channel>
<channel site="mujtvprogram.cz" site_id="183" lang="sk" xmltv_id="Markiza.sk@SD">Markíza</channel>
<channel site="mujtvprogram.cz" site_id="308" lang="sk" xmltv_id="MarkizaDajto.sk@SD">Dajto</channel>
<channel site="mujtvprogram.cz" site_id="182" lang="sk" xmltv_id="MarkizaDoma.sk@SD">Doma</channel>
<channel site="mujtvprogram.cz" site_id="495" lang="sk" xmltv_id="MarkizaInternational.sk@SD">Markíza International</channel>
<channel site="mujtvprogram.cz" site_id="556" lang="sk" xmltv_id="PrimaPlus.cz@SD">Prima SK</channel>
<channel site="mujtvprogram.cz" site_id="364" lang="sk" xmltv_id="Senzi.sk@SD">Senzi</channel>
<channel site="mujtvprogram.cz" site_id="928" lang="sk" xmltv_id="Sport.sk@SD">RTVS Šport</channel>
<channel site="mujtvprogram.cz" site_id="192" lang="sk" xmltv_id="TA3.sk@SD">TA3</channel>
<channel site="mujtvprogram.cz" site_id="268" lang="sk" xmltv_id="TV8.sk@SD">TV 8</channel>
<channel site="mujtvprogram.cz" site_id="185" lang="sk" xmltv_id="TVJOJ.sk@SD">JOJ</channel>
<channel site="mujtvprogram.cz" site_id="304" lang="sk" xmltv_id="TVLux.sk@SD">TV Lux</channel>
</channels> </channels>
File diff suppressed because one or more lines are too long
+2 -4
View File
@@ -12,7 +12,6 @@
<channel site="nostv.pt" site_id="30" lang="pt" xmltv_id="RecordNews.br@SD">Record News</channel> <channel site="nostv.pt" site_id="30" lang="pt" xmltv_id="RecordNews.br@SD">Record News</channel>
<channel site="nostv.pt" site_id="33" lang="pt" xmltv_id="Telesur.ve@SD">TeleSUR</channel> <channel site="nostv.pt" site_id="33" lang="pt" xmltv_id="Telesur.ve@SD">TeleSUR</channel>
<channel site="nostv.pt" site_id="34" lang="en" xmltv_id="MCMTop.fr@SD">MCM Top</channel> <channel site="nostv.pt" site_id="34" lang="en" xmltv_id="MCMTop.fr@SD">MCM Top</channel>
<channel site="nostv.pt" site_id="35" lang="pt" xmltv_id="MTV00s.uk@SD">MTV 00s</channel>
<channel site="nostv.pt" site_id="37" lang="fr" xmltv_id="M6.fr@HD">M6</channel> <channel site="nostv.pt" site_id="37" lang="fr" xmltv_id="M6.fr@HD">M6</channel>
<channel site="nostv.pt" site_id="39" lang="en" xmltv_id="SkyNewsAustralia.au@SD">Sky News</channel> <channel site="nostv.pt" site_id="39" lang="en" xmltv_id="SkyNewsAustralia.au@SD">Sky News</channel>
<channel site="nostv.pt" site_id="40" lang="de" xmltv_id="RTL.hr@SD">RTL</channel> <channel site="nostv.pt" site_id="40" lang="de" xmltv_id="RTL.hr@SD">RTL</channel>
@@ -142,7 +141,6 @@
<channel site="nostv.pt" site_id="555" lang="pt" xmltv_id="TVI.pt@SD">TVI HD</channel> <channel site="nostv.pt" site_id="555" lang="pt" xmltv_id="TVI.pt@SD">TVI HD</channel>
<channel site="nostv.pt" site_id="556" lang="pt" xmltv_id="RTPNoticias.pt@HD">RTP Noticias HD</channel> <channel site="nostv.pt" site_id="556" lang="pt" xmltv_id="RTPNoticias.pt@HD">RTP Noticias HD</channel>
<channel site="nostv.pt" site_id="557" lang="pt" xmltv_id="CNNPortugal.pt@SD">CNN Portugal HD</channel> <channel site="nostv.pt" site_id="557" lang="pt" xmltv_id="CNNPortugal.pt@SD">CNN Portugal HD</channel>
<channel site="nostv.pt" site_id="560" lang="en" xmltv_id="MTVLive.uk@SD">MTV Live</channel>
<channel site="nostv.pt" site_id="561" lang="pt" xmltv_id="DiscoveryChannel.pt@SD">Discovery HD</channel> <channel site="nostv.pt" site_id="561" lang="pt" xmltv_id="DiscoveryChannel.pt@SD">Discovery HD</channel>
<channel site="nostv.pt" site_id="563" lang="pt" xmltv_id="Eurosport2.fr@France">Eurosport 2 HD</channel> <channel site="nostv.pt" site_id="563" lang="pt" xmltv_id="Eurosport2.fr@France">Eurosport 2 HD</channel>
<channel site="nostv.pt" site_id="565" lang="pt" xmltv_id="Canal11.pt@SD">Canal 11 HD</channel> <channel site="nostv.pt" site_id="565" lang="pt" xmltv_id="Canal11.pt@SD">Canal 11 HD</channel>
@@ -168,5 +166,5 @@
<channel site="nostv.pt" site_id="702" lang="pt" xmltv_id="TimelessDiziChannel.ro@SD">Dizi</channel> <channel site="nostv.pt" site_id="702" lang="pt" xmltv_id="TimelessDiziChannel.ro@SD">Dizi</channel>
<channel site="nostv.pt" site_id="705" lang="pt" xmltv_id="NewsNow.pt@SD">Now</channel> <channel site="nostv.pt" site_id="705" lang="pt" xmltv_id="NewsNow.pt@SD">Now</channel>
<channel site="nostv.pt" site_id="706" lang="pt" xmltv_id="SportTV7.pt@SD">Sport TV 7 HD</channel> <channel site="nostv.pt" site_id="706" lang="pt" xmltv_id="SportTV7.pt@SD">Sport TV 7 HD</channel>
<channel site="nostv.pt" site_id="721" lang="pt" xmltv_id="">Conta Lá</channel> <channel site="nostv.pt" site_id="721" lang="pt" xmltv_id="ContaLa.pt@HD">Conta Lá</channel>
</channels> </channels>
+23 -14
View File
@@ -5,24 +5,33 @@ const utc = require('dayjs/plugin/utc')
dayjs.extend(utc) dayjs.extend(utc)
const headers = { const headers = {
'X-Apikey': 'xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI', 'accept': 'application/json, text/plain, */*',
'X-Core-Appversion': '2.20.0.3', 'accept-language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6,cs;q=0.5',
'X-Core-Contentratinglimit': '0', 'cache-control': 'no-cache',
'X-Core-Deviceid': '', 'origin': 'https://nostv.pt',
'X-Core-Devicetype': 'web', 'pragma': 'no-cache',
Origin: 'https://nostv.pt', 'priority': 'u=1, i',
'User-Agent': 'referer': 'https://nostv.pt/',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' 'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
'sec-ch-ua-mobile': '?1',
'sec-ch-ua-platform': '"Android"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'cross-site',
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
'x-apikey': 'xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI',
'x-core-appversion': '2.20.2.2',
'x-core-contentratinglimit': '0',
'x-core-deviceid': '',
'x-core-devicetype': 'web',
'x-core-timezoneoffset': '3600000'
} }
module.exports = { module.exports = {
site: 'nostv.pt', site: 'nostv.pt',
days: 2, days: 2,
url({ channel, date }) { url({ channel, date }) {
return `https://api.clg.nos.pt/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id return `https://api.clg.nos.pt/nostv/ott/schedule/range/contents/guest?channels=${channel.site_id}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format('YYYY-MM-DD')}T23:59:59Z&isDateInclusive=true&client_id=${headers['x-apikey']}`
}&minDate=${date.format('YYYY-MM-DD')}T00:00:00Z&maxDate=${date.format(
'YYYY-MM-DD'
)}T23:59:59Z&isDateInclusive=true&client_id=${headers['X-Apikey']}`
}, },
request: { headers }, request: { headers },
parser({ content }) { parser({ content }) {
@@ -31,7 +40,7 @@ module.exports = {
const items = Array.isArray(content) ? content : JSON.parse(content) const items = Array.isArray(content) ? content : JSON.parse(content)
items.forEach(item => { items.forEach(item => {
const image = item.Images const image = item.Images
? `https://mage.stream.nos.pt/mage/v1/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['X-Apikey']}` ? `https://mage.stream.nos.pt/mage/v1/Images?sourceUri=${item.Images[0].Url}&profile=ott_1_452x340&client_id=${headers['x-apikey']}`
: null : null
programs.push({ programs.push({
title: item.Metadata?.Title, title: item.Metadata?.Title,
@@ -54,7 +63,7 @@ module.exports = {
async channels() { async channels() {
const result = await axios const result = await axios
.get( .get(
`https://api.clg.nos.pt/nostv/ott/channels/guest?client_id=${headers['X-Apikey']}`, `https://api.clg.nos.pt/nostv/ott/channels/guest?client_id=${headers['x-apikey']}`,
{ headers } { headers }
) )
.then(r => r.data) .then(r => r.data)
+8 -11
View File
@@ -28,20 +28,17 @@ it('can parse response', () => {
return p return p
}) })
const image = 'https://mage.stream.nos.pt/mage/v1/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/8329ed1aec5d4c0faa2056972256ff9f&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
expect(results[0]).toMatchObject({ expect(results[0]).toMatchObject({
start: '2023-12-11T16:30:00.000Z', start: '2026-01-23T22:39:00.000Z',
stop: '2023-12-11T17:00:00.000Z', stop: '2026-01-24T00:23:00.000Z',
title: 'Village Vets', title: 'Em Casa d\'Amália',
description: description: 'Que mais poderíamos pedir para o regresso deste programa, do que receber um dos poetas de Amália? Manuel Alegre, autor do icónico "Trova do Vento que Passa", estará connosco. A este raro momento, juntam-se também ilustres convidados: Paulo de Carvalho e o seu filho Agir, Rita Guerra e André Amaro...',
'A história de dois melhores amigos veterinários e o seu extraordinário trabalho na Austrália.', season: 9,
season: 1, episode: 15,
episode: 12,
icon: { icon: {
src: image src: 'https://mage.stream.nos.pt/mage/v1/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/901d96a8f1534749b076212c296d821e&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
}, },
image image: 'https://mage.stream.nos.pt/mage/v1/Images?sourceUri=http://vip.pam.local.internal/PAM.Images/Store/901d96a8f1534749b076212c296d821e&profile=ott_1_452x340&client_id=xe1dgrShwdR1DVOKGmsj8Ut4QLlGyOFI'
}) })
}) })
+47 -39
View File
@@ -1,62 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="osn.com" site_id="AHD" lang="ar" xmltv_id="OSNMoviesAction.ae@SD">OSN TV Movies Action</channel>
<channel site="osn.com" site_id="AKS" lang="ar" xmltv_id="AksyonTVInternational.ph@SD">Kapatid TV5</channel>
<channel site="osn.com" site_id="ANC" lang="ar" xmltv_id="ANC.ph@SD">ANC</channel>
<channel site="osn.com" site_id="APL" lang="ar" xmltv_id="">Animal Planet</channel> <channel site="osn.com" site_id="APL" lang="ar" xmltv_id="">Animal Planet</channel>
<channel site="osn.com" site_id="BAF" lang="ar" xmltv_id="">Blippi and Friends</channel>
<channel site="osn.com" site_id="BLO" lang="ar" xmltv_id="">Bloomberg Originals HD</channel>
<channel site="osn.com" site_id="DOC" lang="ar" xmltv_id="">OSN TV Documentary</channel>
<channel site="osn.com" site_id="DWR" lang="ar" xmltv_id="">DWRR 101.9</channel>
<channel site="osn.com" site_id="EC2" lang="ar" xmltv_id="">eClutch LIVE 2</channel>
<channel site="osn.com" site_id="ECA" lang="ar" xmltv_id="">eClutch Access</channel>
<channel site="osn.com" site_id="ECL" lang="ar" xmltv_id="">eClutch LIVE 1</channel>
<channel site="osn.com" site_id="ELA" lang="ar" xmltv_id="">eClutch Arabic</channel>
<channel site="osn.com" site_id="ES2" lang="ar" xmltv_id="">Esport 24</channel>
<channel site="osn.com" site_id="GMT" lang="ar" xmltv_id="">Gametoon</channel>
<channel site="osn.com" site_id="GNX" lang="ar" xmltv_id="">Ginx</channel>
<channel site="osn.com" site_id="MCM" lang="ar" xmltv_id="">MCM Top</channel>
<channel site="osn.com" site_id="MOT" lang="ar" xmltv_id="">Motorvision</channel>
<channel site="osn.com" site_id="OBG" lang="ar" xmltv_id="">OSNtv Crime</channel>
<channel site="osn.com" site_id="OCM" lang="ar" xmltv_id="">OSNtv Movies Horror</channel>
<channel site="osn.com" site_id="OFM" lang="ar" xmltv_id="">OSNtv Movies Family</channel>
<channel site="osn.com" site_id="OLH" lang="ar" xmltv_id="">OSNtv Now</channel>
<channel site="osn.com" site_id="OMC" lang="ar" xmltv_id="">OSNtv Movies Comedy</channel>
<channel site="osn.com" site_id="OST" lang="ar" xmltv_id="">OSNtv Showcase Classics</channel>
<channel site="osn.com" site_id="OTO" lang="ar" xmltv_id="">OSNtv One</channel>
<channel site="osn.com" site_id="PDT" lang="ar" xmltv_id="">Padeltime</channel>
<channel site="osn.com" site_id="POP" lang="ar" xmltv_id="">OSNtv Pop up Love story</channel>
<channel site="osn.com" site_id="RFM" lang="ar" xmltv_id="">RFM TV</channel>
<channel site="osn.com" site_id="AKS" lang="ar" xmltv_id="AksyonTVInternational.ph@SD">Kapatid TV5</channel>
<channel site="osn.com" site_id="SER" lang="ar" xmltv_id="AlfaSeries.ae@Plus2">Alfa Series Channel</channel>
<channel site="osn.com" site_id="SE2" lang="ar" xmltv_id="AlfaSeries.ae@SD">Alfa Series +2</channel>
<channel site="osn.com" site_id="SAF" lang="ar" xmltv_id="AlSafwa.ae@SD">Al Safwa</channel>
<channel site="osn.com" site_id="YAW" lang="ar" xmltv_id="AlYawm.ae@SD">Alfa Al Yawm</channel>
<channel site="osn.com" site_id="ANC" lang="ar" xmltv_id="ANC.ph@SD">ANC</channel>
<channel site="osn.com" site_id="BTV" lang="ar" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel> <channel site="osn.com" site_id="BTV" lang="ar" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel>
<channel site="osn.com" site_id="CAI" lang="ar" xmltv_id="CrimePlusInvestigation.uk@SD">Crime &amp; Investigation Network</channel> <channel site="osn.com" site_id="TCN" lang="ar" xmltv_id="CartoonNetworkArabic.ae@SD">Cartoon Network</channel>
<channel site="osn.com" site_id="CIN" lang="ar" xmltv_id="CineMo.ph@SD">Cine Mo</channel>
<channel site="osn.com" site_id="CM1" lang="ar" xmltv_id="Cinema1.ae@SD">Alfa Cinema 1</channel> <channel site="osn.com" site_id="CM1" lang="ar" xmltv_id="Cinema1.ae@SD">Alfa Cinema 1</channel>
<channel site="osn.com" site_id="CM2" lang="ar" xmltv_id="Cinema2.ae@SD">Alfa Cinema 2</channel> <channel site="osn.com" site_id="CM2" lang="ar" xmltv_id="Cinema2.ae@SD">Alfa Cinema 2</channel>
<channel site="osn.com" site_id="CNB" lang="ar" xmltv_id="CNBCEurope.uk@SD">CNBC</channel>
<channel site="osn.com" site_id="CNN" lang="ar" xmltv_id="CNNArabic.ae@SD">CNN</channel>
<channel site="osn.com" site_id="COG" lang="ar" xmltv_id="CinemaOneGlobal.ph@SD">Cinema One Global</channel> <channel site="osn.com" site_id="COG" lang="ar" xmltv_id="CinemaOneGlobal.ph@SD">Cinema One Global</channel>
<channel site="osn.com" site_id="DCX" lang="ar" xmltv_id="InvestigationDiscoveryEurope.us@SD">Discovery ID</channel> <channel site="osn.com" site_id="CIN" lang="ar" xmltv_id="CineMo.ph@SD">Cine Mo</channel>
<channel site="osn.com" site_id="CNN" lang="ar" xmltv_id="CNNArabic.ae@SD">CNN</channel>
<channel site="osn.com" site_id="CAI" lang="ar" xmltv_id="CrimePlusInvestigation.uk@SD">Crime &amp; Investigation Network</channel>
<channel site="osn.com" site_id="DSC" lang="ar" xmltv_id="DiscoveryChannelMiddleEastAfrica.us@SD">Discovery HD</channel> <channel site="osn.com" site_id="DSC" lang="ar" xmltv_id="DiscoveryChannelMiddleEastAfrica.us@SD">Discovery HD</channel>
<channel site="osn.com" site_id="DWR" lang="ar" xmltv_id="">DWRR 101.9</channel>
<channel site="osn.com" site_id="DZM" lang="ar" xmltv_id="TeleRadyoGlobal.ph@SD">DZMM Teleradyo</channel>
<channel site="osn.com" site_id="ETV" lang="ar" xmltv_id="EMiddleEast.us@SD">E! Entertainment</channel>
<channel site="osn.com" site_id="FAN" lang="ar" xmltv_id="Fann.ae@SD">Alfa Fann</channel> <channel site="osn.com" site_id="FAN" lang="ar" xmltv_id="Fann.ae@SD">Alfa Fann</channel>
<channel site="osn.com" site_id="FTF" lang="ar" xmltv_id="Fatafeat.ae@SD">Fatafeat</channel> <channel site="osn.com" site_id="FTF" lang="ar" xmltv_id="Fatafeat.ae@SD">Fatafeat</channel>
<channel site="osn.com" site_id="GMA" lang="ar" xmltv_id="GMAPinoyTVMiddleEast.ph@SD">GMA Pinoy TV</channel>
<channel site="osn.com" site_id="GML" lang="ar" xmltv_id="GMALifeTV.ph@SD">GMA Life TV</channel> <channel site="osn.com" site_id="GML" lang="ar" xmltv_id="GMALifeTV.ph@SD">GMA Life TV</channel>
<channel site="osn.com" site_id="GMN" lang="ar" xmltv_id="GMANewsTV.ph@SD">GMA News TV</channel> <channel site="osn.com" site_id="GMN" lang="ar" xmltv_id="GMANewsTV.ph@SD">GMA News TV</channel>
<channel site="osn.com" site_id="GMA" lang="ar" xmltv_id="GMAPinoyTVMiddleEast.ph@SD">GMA Pinoy TV</channel>
<channel site="osn.com" site_id="HI2" lang="ar" xmltv_id="History2MiddleEast.us@SD">H2 HD</channel> <channel site="osn.com" site_id="HI2" lang="ar" xmltv_id="History2MiddleEast.us@SD">H2 HD</channel>
<channel site="osn.com" site_id="HIS" lang="ar" xmltv_id="HistoryMiddleEast.us@SD">History HD</channel> <channel site="osn.com" site_id="HIS" lang="ar" xmltv_id="HistoryMiddleEast.us@SD">History HD</channel>
<channel site="osn.com" site_id="KDZ" lang="ar" xmltv_id="OSNKidzone.ae@SD">OSN TV Kidzone</channel> <channel site="osn.com" site_id="DCX" lang="ar" xmltv_id="InvestigationDiscoveryEurope.us@SD">Discovery ID</channel>
<channel site="osn.com" site_id="MBU" lang="ar" xmltv_id="MoonbugKids.uk@SD">Moonbug Kids</channel> <channel site="osn.com" site_id="MBU" lang="ar" xmltv_id="MoonbugKids.uk@SD">Moonbug Kids</channel>
<channel site="osn.com" site_id="MTL" lang="ar" xmltv_id="MTVLive.uk@SD">MTV Live HD</channel> <channel site="osn.com" site_id="NOW" lang="ar" xmltv_id="MusicNow.ae@SD">Music Now</channel>
<channel site="osn.com" site_id="MYX" lang="ar" xmltv_id="MyxMiddleEast.ph@SD">Myx</channel> <channel site="osn.com" site_id="MYX" lang="ar" xmltv_id="MyxMiddleEast.ph@SD">Myx</channel>
<channel site="osn.com" site_id="NIC" lang="ar" xmltv_id="NickelodeonArabia.ae@SD">Nickelodeon HD</channel> <channel site="osn.com" site_id="NIC" lang="ar" xmltv_id="NickelodeonArabia.ae@SD">Nickelodeon HD</channel>
<channel site="osn.com" site_id="NJR" lang="ar" xmltv_id="NickJrArabia.ae@SD">Nick Jr</channel> <channel site="osn.com" site_id="NJR" lang="ar" xmltv_id="NickJrArabia.ae@SD">Nick Jr</channel>
<channel site="osn.com" site_id="NKT" lang="ar" xmltv_id="NicktoonsArabia.ae@SD">NickToons HD</channel> <channel site="osn.com" site_id="NKT" lang="ar" xmltv_id="NicktoonsArabia.ae@SD">NickToons HD</channel>
<channel site="osn.com" site_id="NOW" lang="ar" xmltv_id="MusicNow.ae@SD">Music Now</channel> <channel site="osn.com" site_id="OCO" lang="ar" xmltv_id="OSNComedy.ae@SD">OSNtv Comedy</channel>
<channel site="osn.com" site_id="OBG" lang="ar" xmltv_id="">OSN TV Crime</channel> <channel site="osn.com" site_id="OMK" lang="ar" xmltv_id="OSNKids.ae@SD">OSNtv Kids</channel>
<channel site="osn.com" site_id="OCM" lang="ar" xmltv_id="">OSNtv Movies Horror</channel> <channel site="osn.com" site_id="OMZ" lang="ar" xmltv_id="OSNMezze.ae@SD">OSNtv Mezze</channel>
<channel site="osn.com" site_id="OCO" lang="ar" xmltv_id="OSNComedy.ae@SD">OSN TV Comedy</channel> <channel site="osn.com" site_id="AHD" lang="ar" xmltv_id="OSNMoviesAction.ae@SD">OSNtv Movies Action</channel>
<channel site="osn.com" site_id="OFH" lang="ar" xmltv_id="OSNShowcase.ae@SD">OSN TV Showcase</channel> <channel site="osn.com" site_id="OPR" lang="ar" xmltv_id="OSNMoviesHollywood.ae@SD">OSNtv Movies Hollywood</channel>
<channel site="osn.com" site_id="OFM" lang="ar" xmltv_id="">OSN TV Movies Family</channel> <channel site="osn.com" site_id="OM1" lang="ar" xmltv_id="OSNMoviesPremiere.ae@SD">OSNtv Movies Premiere</channel>
<channel site="osn.com" site_id="OLH" lang="ar" xmltv_id="">OSN TV Now</channel> <channel site="osn.com" site_id="OFH" lang="ar" xmltv_id="OSNShowcase.ae@SD">OSNtv Showcase</channel>
<channel site="osn.com" site_id="OM1" lang="ar" xmltv_id="OSNMoviesPremiere.ae@SD">OSN TV Movies Premiere</channel> <channel site="osn.com" site_id="OYH" lang="ar" xmltv_id="OSNYahala.ae@SD">OSNtv Yahala</channel>
<channel site="osn.com" site_id="OMC" lang="ar" xmltv_id="">OSN TV Movies Comedy</channel> <channel site="osn.com" site_id="OYC" lang="ar" xmltv_id="OSNYahalaAflam.ae@SD">OSNtv Yahala Aflam</channel>
<channel site="osn.com" site_id="OMK" lang="ar" xmltv_id="OSNKids.ae@SD">OSN TV Kids</channel> <channel site="osn.com" site_id="OYA" lang="ar" xmltv_id="OSNYahalaBilArabi.ae@SD">OSNtv Yahala Bil Arabi</channel>
<channel site="osn.com" site_id="OMZ" lang="ar" xmltv_id="OSNMezze.ae@SD">OSN TV Mezze</channel>
<channel site="osn.com" site_id="ONS" lang="ar" xmltv_id="">OSN TV News</channel>
<channel site="osn.com" site_id="OPR" lang="ar" xmltv_id="OSNMoviesHollywood.ae@SD">OSN TV Movies Hollywood</channel>
<channel site="osn.com" site_id="OST" lang="ar" xmltv_id="">OSN TV Showcase Classics</channel>
<channel site="osn.com" site_id="OTO" lang="ar" xmltv_id="">OSN TV One</channel>
<channel site="osn.com" site_id="OYA" lang="ar" xmltv_id="OSNYahalaBilArabi.ae@SD">OSN TV Yahala Bil Arabi</channel>
<channel site="osn.com" site_id="OYC" lang="ar" xmltv_id="OSNYahalaAflam.ae@SD">OSN TV Yahala Aflam</channel>
<channel site="osn.com" site_id="OYH" lang="ar" xmltv_id="OSNYahala.ae@SD">OSN TV Yahala</channel>
<channel site="osn.com" site_id="PBA" lang="ar" xmltv_id="PBARush.ph@HD">PBA Rush</channel> <channel site="osn.com" site_id="PBA" lang="ar" xmltv_id="PBARush.ph@HD">PBA Rush</channel>
<channel site="osn.com" site_id="SAF" lang="ar" xmltv_id="AlSafwa.ae@SD">Al Safwa</channel> <channel site="osn.com" site_id="DZM" lang="ar" xmltv_id="TeleRadyoGlobal.ph@SD">DZMM Teleradyo</channel>
<channel site="osn.com" site_id="SE2" lang="ar" xmltv_id="AlfaSeries.ae@SD">Alfa Series +2</channel>
<channel site="osn.com" site_id="SER" lang="ar" xmltv_id="AlfaSeries.ae@Plus2">Alfa Series Channel</channel>
<channel site="osn.com" site_id="SKH" lang="ar" xmltv_id="SkyNewsInternational.uk@SD">Sky News HD</channel>
<channel site="osn.com" site_id="TCN" lang="ar" xmltv_id="CartoonNetworkArabic.ae@SD">Cartoon Network</channel>
<channel site="osn.com" site_id="TFC" lang="ar" xmltv_id="TheFilipinoChannelMiddleEast.us@SD">TFC</channel> <channel site="osn.com" site_id="TFC" lang="ar" xmltv_id="TheFilipinoChannelMiddleEast.us@SD">TFC</channel>
<channel site="osn.com" site_id="TLC" lang="ar" xmltv_id="TLCArabia.us@SD">TLC HD</channel> <channel site="osn.com" site_id="TLC" lang="ar" xmltv_id="TLCArabia.us@SD">TLC HD</channel>
<channel site="osn.com" site_id="VH1" lang="ar" xmltv_id="MTV00s.uk@SD">MTV 00s</channel>
<channel site="osn.com" site_id="YAW" lang="ar" xmltv_id="AlYawm.ae@SD">Alfa Al Yawm</channel>
</channels> </channels>
+47 -39
View File
@@ -1,62 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="osn.com" site_id="AHD" lang="en" xmltv_id="OSNMoviesAction.ae@SD">OSN TV Movies Action</channel>
<channel site="osn.com" site_id="AKS" lang="en" xmltv_id="AksyonTVInternational.ph@SD">Kapatid TV5</channel>
<channel site="osn.com" site_id="ANC" lang="en" xmltv_id="ANC.ph@SD">ANC</channel>
<channel site="osn.com" site_id="APL" lang="en" xmltv_id="">Animal Planet</channel> <channel site="osn.com" site_id="APL" lang="en" xmltv_id="">Animal Planet</channel>
<channel site="osn.com" site_id="BAF" lang="en" xmltv_id="">Blippi and Friends</channel>
<channel site="osn.com" site_id="BLO" lang="en" xmltv_id="">Bloomberg Originals HD</channel>
<channel site="osn.com" site_id="DOC" lang="en" xmltv_id="">OSN TV Documentary</channel>
<channel site="osn.com" site_id="DWR" lang="en" xmltv_id="">DWRR 101.9</channel>
<channel site="osn.com" site_id="EC2" lang="en" xmltv_id="">eClutch LIVE 2</channel>
<channel site="osn.com" site_id="ECA" lang="en" xmltv_id="">eClutch Access</channel>
<channel site="osn.com" site_id="ECL" lang="en" xmltv_id="">eClutch LIVE 1</channel>
<channel site="osn.com" site_id="ELA" lang="en" xmltv_id="">eClutch Arabic</channel>
<channel site="osn.com" site_id="ES2" lang="en" xmltv_id="">Esport 24</channel>
<channel site="osn.com" site_id="GMT" lang="en" xmltv_id="">Gametoon</channel>
<channel site="osn.com" site_id="GNX" lang="en" xmltv_id="">Ginx</channel>
<channel site="osn.com" site_id="MCM" lang="en" xmltv_id="">MCM Top</channel>
<channel site="osn.com" site_id="MOT" lang="en" xmltv_id="">Motorvision</channel>
<channel site="osn.com" site_id="OBG" lang="en" xmltv_id="">OSNtv Crime</channel>
<channel site="osn.com" site_id="OCM" lang="en" xmltv_id="">OSNtv Movies Horror</channel>
<channel site="osn.com" site_id="OFM" lang="en" xmltv_id="">OSNtv Movies Family</channel>
<channel site="osn.com" site_id="OLH" lang="en" xmltv_id="">OSNtv Now</channel>
<channel site="osn.com" site_id="OMC" lang="en" xmltv_id="">OSNtv Movies Comedy</channel>
<channel site="osn.com" site_id="OST" lang="en" xmltv_id="">OSNtv Showcase Classics</channel>
<channel site="osn.com" site_id="OTO" lang="en" xmltv_id="">OSNtv One</channel>
<channel site="osn.com" site_id="PDT" lang="en" xmltv_id="">Padeltime</channel>
<channel site="osn.com" site_id="POP" lang="en" xmltv_id="">OSNtv Pop up Love story</channel>
<channel site="osn.com" site_id="RFM" lang="en" xmltv_id="">RFM TV</channel>
<channel site="osn.com" site_id="AKS" lang="en" xmltv_id="AksyonTVInternational.ph@SD">Kapatid TV5</channel>
<channel site="osn.com" site_id="SER" lang="en" xmltv_id="AlfaSeries.ae@Plus2">Alfa Series Channel</channel>
<channel site="osn.com" site_id="SE2" lang="en" xmltv_id="AlfaSeries.ae@SD">Alfa Series +2</channel>
<channel site="osn.com" site_id="SAF" lang="en" xmltv_id="AlSafwa.ae@SD">Al Safwa</channel>
<channel site="osn.com" site_id="YAW" lang="en" xmltv_id="AlYawm.ae@SD">Alfa Al Yawm</channel>
<channel site="osn.com" site_id="ANC" lang="en" xmltv_id="ANC.ph@SD">ANC</channel>
<channel site="osn.com" site_id="BTV" lang="en" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel> <channel site="osn.com" site_id="BTV" lang="en" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel>
<channel site="osn.com" site_id="CAI" lang="en" xmltv_id="CrimePlusInvestigation.uk@SD">Crime &amp; Investigation Network</channel> <channel site="osn.com" site_id="TCN" lang="en" xmltv_id="CartoonNetworkArabic.ae@SD">Cartoon Network</channel>
<channel site="osn.com" site_id="CIN" lang="en" xmltv_id="CineMo.ph@SD">Cine Mo</channel>
<channel site="osn.com" site_id="CM1" lang="en" xmltv_id="Cinema1.ae@SD">Alfa Cinema 1</channel> <channel site="osn.com" site_id="CM1" lang="en" xmltv_id="Cinema1.ae@SD">Alfa Cinema 1</channel>
<channel site="osn.com" site_id="CM2" lang="en" xmltv_id="Cinema2.ae@SD">Alfa Cinema 2</channel> <channel site="osn.com" site_id="CM2" lang="en" xmltv_id="Cinema2.ae@SD">Alfa Cinema 2</channel>
<channel site="osn.com" site_id="CNB" lang="en" xmltv_id="CNBCEurope.uk@SD">CNBC</channel>
<channel site="osn.com" site_id="CNN" lang="en" xmltv_id="CNNArabic.ae@SD">CNN</channel>
<channel site="osn.com" site_id="COG" lang="en" xmltv_id="CinemaOneGlobal.ph@SD">Cinema One Global</channel> <channel site="osn.com" site_id="COG" lang="en" xmltv_id="CinemaOneGlobal.ph@SD">Cinema One Global</channel>
<channel site="osn.com" site_id="DCX" lang="en" xmltv_id="InvestigationDiscoveryEurope.us@SD">Discovery ID</channel> <channel site="osn.com" site_id="CIN" lang="en" xmltv_id="CineMo.ph@SD">Cine Mo</channel>
<channel site="osn.com" site_id="CNN" lang="en" xmltv_id="CNNArabic.ae@SD">CNN</channel>
<channel site="osn.com" site_id="CAI" lang="en" xmltv_id="CrimePlusInvestigation.uk@SD">Crime &amp; Investigation Network</channel>
<channel site="osn.com" site_id="DSC" lang="en" xmltv_id="DiscoveryChannelMiddleEastAfrica.us@SD">Discovery HD</channel> <channel site="osn.com" site_id="DSC" lang="en" xmltv_id="DiscoveryChannelMiddleEastAfrica.us@SD">Discovery HD</channel>
<channel site="osn.com" site_id="DWR" lang="en" xmltv_id="">DWRR 101.9</channel>
<channel site="osn.com" site_id="DZM" lang="en" xmltv_id="TeleRadyoGlobal.ph@SD">DZMM Teleradyo</channel>
<channel site="osn.com" site_id="ETV" lang="en" xmltv_id="EMiddleEast.us@SD">E! Entertainment</channel>
<channel site="osn.com" site_id="FAN" lang="en" xmltv_id="Fann.ae@SD">Alfa Fann</channel> <channel site="osn.com" site_id="FAN" lang="en" xmltv_id="Fann.ae@SD">Alfa Fann</channel>
<channel site="osn.com" site_id="FTF" lang="en" xmltv_id="Fatafeat.ae@SD">Fatafeat</channel> <channel site="osn.com" site_id="FTF" lang="en" xmltv_id="Fatafeat.ae@SD">Fatafeat</channel>
<channel site="osn.com" site_id="GMA" lang="en" xmltv_id="GMAPinoyTVMiddleEast.ph@SD">GMA Pinoy TV</channel>
<channel site="osn.com" site_id="GML" lang="en" xmltv_id="GMALifeTV.ph@SD">GMA Life TV</channel> <channel site="osn.com" site_id="GML" lang="en" xmltv_id="GMALifeTV.ph@SD">GMA Life TV</channel>
<channel site="osn.com" site_id="GMN" lang="en" xmltv_id="GMANewsTV.ph@SD">GMA News TV</channel> <channel site="osn.com" site_id="GMN" lang="en" xmltv_id="GMANewsTV.ph@SD">GMA News TV</channel>
<channel site="osn.com" site_id="GMA" lang="en" xmltv_id="GMAPinoyTVMiddleEast.ph@SD">GMA Pinoy TV</channel>
<channel site="osn.com" site_id="HI2" lang="en" xmltv_id="History2MiddleEast.us@SD">H2 HD</channel> <channel site="osn.com" site_id="HI2" lang="en" xmltv_id="History2MiddleEast.us@SD">H2 HD</channel>
<channel site="osn.com" site_id="HIS" lang="en" xmltv_id="HistoryMiddleEast.us@SD">History HD</channel> <channel site="osn.com" site_id="HIS" lang="en" xmltv_id="HistoryMiddleEast.us@SD">History HD</channel>
<channel site="osn.com" site_id="KDZ" lang="en" xmltv_id="OSNKidzone.ae@SD">OSN TV Kidzone</channel> <channel site="osn.com" site_id="DCX" lang="en" xmltv_id="InvestigationDiscoveryEurope.us@SD">Discovery ID</channel>
<channel site="osn.com" site_id="MBU" lang="en" xmltv_id="MoonbugKids.uk@SD">Moonbug Kids</channel> <channel site="osn.com" site_id="MBU" lang="en" xmltv_id="MoonbugKids.uk@SD">Moonbug Kids</channel>
<channel site="osn.com" site_id="MTL" lang="en" xmltv_id="MTVLive.uk@SD">MTV Live HD</channel> <channel site="osn.com" site_id="NOW" lang="en" xmltv_id="MusicNow.ae@SD">Music Now</channel>
<channel site="osn.com" site_id="MYX" lang="en" xmltv_id="MyxMiddleEast.ph@SD">Myx</channel> <channel site="osn.com" site_id="MYX" lang="en" xmltv_id="MyxMiddleEast.ph@SD">Myx</channel>
<channel site="osn.com" site_id="NIC" lang="en" xmltv_id="NickelodeonArabia.ae@SD">Nickelodeon HD</channel> <channel site="osn.com" site_id="NIC" lang="en" xmltv_id="NickelodeonArabia.ae@SD">Nickelodeon HD</channel>
<channel site="osn.com" site_id="NJR" lang="en" xmltv_id="NickJrArabia.ae@SD">Nick Jr</channel> <channel site="osn.com" site_id="NJR" lang="en" xmltv_id="NickJrArabia.ae@SD">Nick Jr</channel>
<channel site="osn.com" site_id="NKT" lang="en" xmltv_id="NicktoonsArabia.ae@SD">NickToons HD</channel> <channel site="osn.com" site_id="NKT" lang="en" xmltv_id="NicktoonsArabia.ae@SD">NickToons HD</channel>
<channel site="osn.com" site_id="NOW" lang="en" xmltv_id="MusicNow.ae@SD">Music Now</channel> <channel site="osn.com" site_id="OCO" lang="en" xmltv_id="OSNComedy.ae@SD">OSNtv Comedy</channel>
<channel site="osn.com" site_id="OBG" lang="en" xmltv_id="">OSN TV Crime</channel> <channel site="osn.com" site_id="OMK" lang="en" xmltv_id="OSNKids.ae@SD">OSNtv Kids</channel>
<channel site="osn.com" site_id="OCM" lang="en" xmltv_id="">OSNtv Movies Horror</channel> <channel site="osn.com" site_id="OMZ" lang="en" xmltv_id="OSNMezze.ae@SD">OSNtv Mezze</channel>
<channel site="osn.com" site_id="OCO" lang="en" xmltv_id="OSNComedy.ae@SD">OSN TV Comedy</channel> <channel site="osn.com" site_id="AHD" lang="en" xmltv_id="OSNMoviesAction.ae@SD">OSNtv Movies Action</channel>
<channel site="osn.com" site_id="OFH" lang="en" xmltv_id="OSNShowcase.ae@SD">OSN TV Showcase</channel> <channel site="osn.com" site_id="OPR" lang="en" xmltv_id="OSNMoviesHollywood.ae@SD">OSNtv Movies Hollywood</channel>
<channel site="osn.com" site_id="OFM" lang="en" xmltv_id="">OSN TV Movies Family</channel> <channel site="osn.com" site_id="OM1" lang="en" xmltv_id="OSNMoviesPremiere.ae@SD">OSNtv Movies Premiere</channel>
<channel site="osn.com" site_id="OLH" lang="en" xmltv_id="">OSN TV Now</channel> <channel site="osn.com" site_id="OFH" lang="en" xmltv_id="OSNShowcase.ae@SD">OSNtv Showcase</channel>
<channel site="osn.com" site_id="OM1" lang="en" xmltv_id="OSNMoviesPremiere.ae@SD">OSN TV Movies Premiere</channel> <channel site="osn.com" site_id="OYH" lang="en" xmltv_id="OSNYahala.ae@SD">OSNtv Yahala</channel>
<channel site="osn.com" site_id="OMC" lang="en" xmltv_id="">OSN TV Movies Comedy</channel> <channel site="osn.com" site_id="OYC" lang="en" xmltv_id="OSNYahalaAflam.ae@SD">OSNtv Yahala Aflam</channel>
<channel site="osn.com" site_id="OMK" lang="en" xmltv_id="OSNKids.ae@SD">OSN TV Kids</channel> <channel site="osn.com" site_id="OYA" lang="en" xmltv_id="OSNYahalaBilArabi.ae@SD">OSNtv Yahala Bil Arabi</channel>
<channel site="osn.com" site_id="OMZ" lang="en" xmltv_id="OSNMezze.ae@SD">OSN TV Mezze</channel>
<channel site="osn.com" site_id="ONS" lang="en" xmltv_id="">OSN TV News</channel>
<channel site="osn.com" site_id="OPR" lang="en" xmltv_id="OSNMoviesHollywood.ae@SD">OSN TV Movies Hollywood</channel>
<channel site="osn.com" site_id="OST" lang="en" xmltv_id="">OSN TV Showcase Classics</channel>
<channel site="osn.com" site_id="OTO" lang="en" xmltv_id="">OSN TV One</channel>
<channel site="osn.com" site_id="OYA" lang="en" xmltv_id="OSNYahalaBilArabi.ae@SD">OSN TV Yahala Bil Arabi</channel>
<channel site="osn.com" site_id="OYC" lang="en" xmltv_id="OSNYahalaAflam.ae@SD">OSN TV Yahala Aflam</channel>
<channel site="osn.com" site_id="OYH" lang="en" xmltv_id="OSNYahala.ae@SD">OSN TV Yahala</channel>
<channel site="osn.com" site_id="PBA" lang="en" xmltv_id="PBARush.ph@HD">PBA Rush</channel> <channel site="osn.com" site_id="PBA" lang="en" xmltv_id="PBARush.ph@HD">PBA Rush</channel>
<channel site="osn.com" site_id="SAF" lang="en" xmltv_id="AlSafwa.ae@SD">Al Safwa</channel> <channel site="osn.com" site_id="DZM" lang="en" xmltv_id="TeleRadyoGlobal.ph@SD">DZMM Teleradyo</channel>
<channel site="osn.com" site_id="SE2" lang="en" xmltv_id="AlfaSeries.ae@SD">Alfa Series +2</channel>
<channel site="osn.com" site_id="SER" lang="en" xmltv_id="AlfaSeries.ae@Plus2">Alfa Series Channel</channel>
<channel site="osn.com" site_id="SKH" lang="en" xmltv_id="SkyNewsInternational.uk@SD">Sky News HD</channel>
<channel site="osn.com" site_id="TCN" lang="en" xmltv_id="CartoonNetworkArabic.ae@SD">Cartoon Network</channel>
<channel site="osn.com" site_id="TFC" lang="en" xmltv_id="TheFilipinoChannelMiddleEast.us@SD">TFC</channel> <channel site="osn.com" site_id="TFC" lang="en" xmltv_id="TheFilipinoChannelMiddleEast.us@SD">TFC</channel>
<channel site="osn.com" site_id="TLC" lang="en" xmltv_id="TLCArabia.us@SD">TLC HD</channel> <channel site="osn.com" site_id="TLC" lang="en" xmltv_id="TLCArabia.us@SD">TLC HD</channel>
<channel site="osn.com" site_id="VH1" lang="en" xmltv_id="MTV00s.uk@SD">MTV 00s</channel>
<channel site="osn.com" site_id="YAW" lang="en" xmltv_id="AlYawm.ae@SD">Alfa Al Yawm</channel>
</channels> </channels>
@@ -1,43 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="tv.movistar.com.pe" site_id="lch2169" lang="es" xmltv_id="CanalN.pe@SD">CANAL N</channel>
<channel site="tv.movistar.com.pe" site_id="lch2171" lang="es" xmltv_id="">ESPN INTERNACIONAL</channel> <channel site="tv.movistar.com.pe" site_id="lch2171" lang="es" xmltv_id="">ESPN INTERNACIONAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2174" lang="es" xmltv_id="">ESPN 3</channel> <channel site="tv.movistar.com.pe" site_id="lch2174" lang="es" xmltv_id="">ESPN 3</channel>
<channel site="tv.movistar.com.pe" site_id="lch2188" lang="es" xmltv_id="">Cartoon Network HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2188" lang="es" xmltv_id="">Cartoon Network HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2189" lang="es" xmltv_id="">TNT HD OTT</channel> <channel site="tv.movistar.com.pe" site_id="lch2189" lang="es" xmltv_id="">TNT HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2201" lang="es" xmltv_id="">LATINA HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2201" lang="es" xmltv_id="">LATINA HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2202" lang="es" xmltv_id="">AMERICA TELEVISION HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2202" lang="es" xmltv_id="">AMERICA TELEVISION HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2203" lang="es" xmltv_id="">PANAMERICANA TELEVISION HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2203" lang="es" xmltv_id="">PANAMERICANA TELEVISION HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2204" lang="es" xmltv_id="">TV PERU HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2204" lang="es" xmltv_id="">TV PERU HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2205" lang="es" xmltv_id="">ATV HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2205" lang="es" xmltv_id="">ATV HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2207" lang="es" xmltv_id="Latina.pe@SD">LATINA</channel>
<channel site="tv.movistar.com.pe" site_id="lch2208" lang="es" xmltv_id="AmericaTelevision.pe@SD">AMERICA TELEVISION</channel>
<channel site="tv.movistar.com.pe" site_id="lch2209" lang="es" xmltv_id="PanamericanaTV.pe@SD">PANAMERICANA TELEVISION</channel>
<channel site="tv.movistar.com.pe" site_id="lch2210" lang="es" xmltv_id="TVPeru.pe@SD">TV PERU</channel>
<channel site="tv.movistar.com.pe" site_id="lch2211" lang="es" xmltv_id="ATV.pe@SD">ATV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2212" lang="es" xmltv_id="RPPTV.pe@SD">RPP TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2214" lang="es" xmltv_id="TVPeruNoticias.pe@SD">TV PERU 7.3</channel>
<channel site="tv.movistar.com.pe" site_id="lch2215" lang="es" xmltv_id="">GLOBAL</channel> <channel site="tv.movistar.com.pe" site_id="lch2215" lang="es" xmltv_id="">GLOBAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2218" lang="es" xmltv_id="">LA TELE PERU</channel> <channel site="tv.movistar.com.pe" site_id="lch2218" lang="es" xmltv_id="">LA TELE PERU</channel>
<channel site="tv.movistar.com.pe" site_id="lch2219" lang="es" xmltv_id="WillaxTV.pe@SD">WILLAX</channel>
<channel site="tv.movistar.com.pe" site_id="lch2220" lang="es" xmltv_id="ATVPlus.pe@SD">ATV+</channel>
<channel site="tv.movistar.com.pe" site_id="lch2221" lang="es" xmltv_id="">TNT</channel> <channel site="tv.movistar.com.pe" site_id="lch2221" lang="es" xmltv_id="">TNT</channel>
<channel site="tv.movistar.com.pe" site_id="lch2222" lang="es" xmltv_id="">TNT SERIES</channel> <channel site="tv.movistar.com.pe" site_id="lch2222" lang="es" xmltv_id="">TNT SERIES</channel>
<channel site="tv.movistar.com.pe" site_id="lch2224" lang="es" xmltv_id="">TNT SERIES HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2224" lang="es" xmltv_id="">TNT SERIES HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2225" lang="es" xmltv_id="">SONY</channel>
<channel site="tv.movistar.com.pe" site_id="lch2226" lang="es" xmltv_id="">WARNER CHANNEL</channel> <channel site="tv.movistar.com.pe" site_id="lch2226" lang="es" xmltv_id="">WARNER CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2227" lang="es" xmltv_id="">STAR CHANNEL</channel> <channel site="tv.movistar.com.pe" site_id="lch2227" lang="es" xmltv_id="">STAR CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2228" lang="es" xmltv_id="">AXN</channel>
<channel site="tv.movistar.com.pe" site_id="lch2229" lang="es" xmltv_id="">UNIVERSAL CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2232" lang="es" xmltv_id="">FX</channel> <channel site="tv.movistar.com.pe" site_id="lch2232" lang="es" xmltv_id="">FX</channel>
<channel site="tv.movistar.com.pe" site_id="lch2236" lang="es" xmltv_id="">INVESTIGATION DISCOVERY</channel> <channel site="tv.movistar.com.pe" site_id="lch2236" lang="es" xmltv_id="">INVESTIGATION DISCOVERY</channel>
<channel site="tv.movistar.com.pe" site_id="lch2237" lang="es" xmltv_id="">TRU TV</channel> <channel site="tv.movistar.com.pe" site_id="lch2237" lang="es" xmltv_id="">TRU TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2238" lang="es" xmltv_id="">TCM</channel> <channel site="tv.movistar.com.pe" site_id="lch2238" lang="es" xmltv_id="">TCM</channel>
<channel site="tv.movistar.com.pe" site_id="lch2239" lang="es" xmltv_id="">SPACE</channel> <channel site="tv.movistar.com.pe" site_id="lch2239" lang="es" xmltv_id="">SPACE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2241" lang="es" xmltv_id="">PARAMOUNT</channel>
<channel site="tv.movistar.com.pe" site_id="lch2242" lang="es" xmltv_id="">I-SAT</channel>
<channel site="tv.movistar.com.pe" site_id="lch2245" lang="es" xmltv_id="">STUDIO UNIVERSAL</channel> <channel site="tv.movistar.com.pe" site_id="lch2245" lang="es" xmltv_id="">STUDIO UNIVERSAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2247" lang="es" xmltv_id="">EUROCHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2249" lang="es" xmltv_id="">CINECANAL</channel> <channel site="tv.movistar.com.pe" site_id="lch2249" lang="es" xmltv_id="">CINECANAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2250" lang="es" xmltv_id="">CINEMAX</channel> <channel site="tv.movistar.com.pe" site_id="lch2250" lang="es" xmltv_id="">CINEMAX</channel>
<channel site="tv.movistar.com.pe" site_id="lch2251" lang="es" xmltv_id="">HBO</channel> <channel site="tv.movistar.com.pe" site_id="lch2251" lang="es" xmltv_id="">HBO</channel>
@@ -48,14 +32,12 @@
<channel site="tv.movistar.com.pe" site_id="lch2257" lang="es" xmltv_id="">HBO PLUS ESTE</channel> <channel site="tv.movistar.com.pe" site_id="lch2257" lang="es" xmltv_id="">HBO PLUS ESTE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2259" lang="es" xmltv_id="">HBO XTREME</channel> <channel site="tv.movistar.com.pe" site_id="lch2259" lang="es" xmltv_id="">HBO XTREME</channel>
<channel site="tv.movistar.com.pe" site_id="lch2268" lang="es" xmltv_id="">DISCOVERY CHANNEL</channel> <channel site="tv.movistar.com.pe" site_id="lch2268" lang="es" xmltv_id="">DISCOVERY CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2269" lang="es" xmltv_id="">HISTORY CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2270" lang="es" xmltv_id="">NAT GEO</channel> <channel site="tv.movistar.com.pe" site_id="lch2270" lang="es" xmltv_id="">NAT GEO</channel>
<channel site="tv.movistar.com.pe" site_id="lch2271" lang="es" xmltv_id="">HISTORY 2</channel> <channel site="tv.movistar.com.pe" site_id="lch2271" lang="es" xmltv_id="">HISTORY 2</channel>
<channel site="tv.movistar.com.pe" site_id="lch2273" lang="es" xmltv_id="">DISCOVERY SCIENCE</channel> <channel site="tv.movistar.com.pe" site_id="lch2273" lang="es" xmltv_id="">DISCOVERY SCIENCE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2275" lang="es" xmltv_id="">DISCOVERY TURBO</channel> <channel site="tv.movistar.com.pe" site_id="lch2275" lang="es" xmltv_id="">DISCOVERY TURBO</channel>
<channel site="tv.movistar.com.pe" site_id="lch2277" lang="es" xmltv_id="">TLC</channel> <channel site="tv.movistar.com.pe" site_id="lch2277" lang="es" xmltv_id="">TLC</channel>
<channel site="tv.movistar.com.pe" site_id="lch2278" lang="es" xmltv_id="">HOME &amp; HEALTH</channel> <channel site="tv.movistar.com.pe" site_id="lch2278" lang="es" xmltv_id="">HOME &amp; HEALTH</channel>
<channel site="tv.movistar.com.pe" site_id="lch2281" lang="es" xmltv_id="">GLITZ</channel>
<channel site="tv.movistar.com.pe" site_id="lch2284" lang="es" xmltv_id="">CARTOON NETWORK</channel> <channel site="tv.movistar.com.pe" site_id="lch2284" lang="es" xmltv_id="">CARTOON NETWORK</channel>
<channel site="tv.movistar.com.pe" site_id="lch2285" lang="es" xmltv_id="">DISCOVERY KIDS</channel> <channel site="tv.movistar.com.pe" site_id="lch2285" lang="es" xmltv_id="">DISCOVERY KIDS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2287" lang="es" xmltv_id="">CARTOONITO</channel> <channel site="tv.movistar.com.pe" site_id="lch2287" lang="es" xmltv_id="">CARTOONITO</channel>
@@ -63,58 +45,46 @@
<channel site="tv.movistar.com.pe" site_id="lch2290" lang="es" xmltv_id="">ANIMAL PLANET</channel> <channel site="tv.movistar.com.pe" site_id="lch2290" lang="es" xmltv_id="">ANIMAL PLANET</channel>
<channel site="tv.movistar.com.pe" site_id="lch2291" lang="es" xmltv_id="">DISNEY JUNIOR</channel> <channel site="tv.movistar.com.pe" site_id="lch2291" lang="es" xmltv_id="">DISNEY JUNIOR</channel>
<channel site="tv.movistar.com.pe" site_id="lch2294" lang="es" xmltv_id="">FOX SPORTS PREMIUM</channel> <channel site="tv.movistar.com.pe" site_id="lch2294" lang="es" xmltv_id="">FOX SPORTS PREMIUM</channel>
<channel site="tv.movistar.com.pe" site_id="lch2295" lang="es" xmltv_id="">FOX SPORTS 2</channel> <channel site="tv.movistar.com.pe" site_id="lch2295" lang="es" xmltv_id="">ESPN 7</channel>
<channel site="tv.movistar.com.pe" site_id="lch2296" lang="es" xmltv_id="">FOX SPORTS 3</channel> <channel site="tv.movistar.com.pe" site_id="lch2296" lang="es" xmltv_id="">ESPN 6</channel>
<channel site="tv.movistar.com.pe" site_id="lch2297" lang="es" xmltv_id="">ESPN 2</channel> <channel site="tv.movistar.com.pe" site_id="lch2297" lang="es" xmltv_id="">ESPN 2</channel>
<channel site="tv.movistar.com.pe" site_id="lch2298" lang="es" xmltv_id="">GOL TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2299" lang="es" xmltv_id="">GOLF CHANNEL</channel> <channel site="tv.movistar.com.pe" site_id="lch2299" lang="es" xmltv_id="">GOLF CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2300" lang="es" xmltv_id="">JCP</channel> <channel site="tv.movistar.com.pe" site_id="lch2300" lang="es" xmltv_id="">JOCKEY CLUB</channel>
<channel site="tv.movistar.com.pe" site_id="lch2301" lang="es" xmltv_id="Toros.es@SD">TOROS TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2302" lang="es" xmltv_id="">WOBI</channel> <channel site="tv.movistar.com.pe" site_id="lch2302" lang="es" xmltv_id="">WOBI</channel>
<channel site="tv.movistar.com.pe" site_id="lch2303" lang="es" xmltv_id="">CNN ESPAÑOL</channel> <channel site="tv.movistar.com.pe" site_id="lch2303" lang="es" xmltv_id="">CNN ESPAÑOL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2304" lang="es" xmltv_id="">CNN INTERNACIONAL</channel> <channel site="tv.movistar.com.pe" site_id="lch2304" lang="es" xmltv_id="">CNN INTERNACIONAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2305" lang="es" xmltv_id="">FOX NEWS</channel> <channel site="tv.movistar.com.pe" site_id="lch2305" lang="es" xmltv_id="">FOX NEWS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2307" lang="es" xmltv_id="JusticiaTV.pe@SD">PODER JUDICIAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2308" lang="es" xmltv_id="">CAPITAL TV</channel> <channel site="tv.movistar.com.pe" site_id="lch2308" lang="es" xmltv_id="">CAPITAL TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2311" lang="es" xmltv_id="">ENLACE TBN</channel> <channel site="tv.movistar.com.pe" site_id="lch2311" lang="es" xmltv_id="">ENLACE TBN</channel>
<channel site="tv.movistar.com.pe" site_id="lch2312" lang="es" xmltv_id="">ORBE 21</channel>
<channel site="tv.movistar.com.pe" site_id="lch2313" lang="es" xmltv_id="">MTV</channel> <channel site="tv.movistar.com.pe" site_id="lch2313" lang="es" xmltv_id="">MTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2314" lang="es" xmltv_id="">MTV HITS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2315" lang="es" xmltv_id="">HTV</channel> <channel site="tv.movistar.com.pe" site_id="lch2315" lang="es" xmltv_id="">HTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2318" lang="es" xmltv_id="">CANAL N HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2318" lang="es" xmltv_id="">CANAL N HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2319" lang="es" xmltv_id="">GOLPERU HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2320" lang="es" xmltv_id="">STAR CHANNEL HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2320" lang="es" xmltv_id="">STAR CHANNEL HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2322" lang="es" xmltv_id="">WARNER CHANNEL HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2322" lang="es" xmltv_id="">WARNER CHANNEL HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2325" lang="es" xmltv_id="">FX HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2325" lang="es" xmltv_id="">FX HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2327" lang="es" xmltv_id="">ID HD - INVESTIGATION DISCOVERY HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2327" lang="es" xmltv_id="">INV.DISCOVERY HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2328" lang="es" xmltv_id="">COMEDY CENTRAL HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2328" lang="es" xmltv_id="">COMEDY CENTRAL HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2330" lang="es" xmltv_id="">SPACE HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2330" lang="es" xmltv_id="">SPACE HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2333" lang="es" xmltv_id="">PARAMOUNT HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2335" lang="es" xmltv_id="">CINECANAL HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2335" lang="es" xmltv_id="">CINECANAL HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2336" lang="es" xmltv_id="">CINEMAX HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2336" lang="es" xmltv_id="">CINEMAX HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2339" lang="es" xmltv_id="">ESPN 4</channel> <channel site="tv.movistar.com.pe" site_id="lch2339" lang="es" xmltv_id="">ESPN 5 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2340" lang="es" xmltv_id="">FOX SPORTS 2 HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2340" lang="es" xmltv_id="">ESPN 7 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2341" lang="es" xmltv_id="">FOX SPORTS 3 HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2341" lang="es" xmltv_id="">ESPN 6 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2342" lang="es" xmltv_id="">GOL TV HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2343" lang="es" xmltv_id="">DISCOVERY THEATER HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2343" lang="es" xmltv_id="">DISCOVERY THEATER HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2344" lang="es" xmltv_id="">DISCOVERY HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2344" lang="es" xmltv_id="">DISCOVERY HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2347" lang="es" xmltv_id="">NAT GEO HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2347" lang="es" xmltv_id="">NAT GEO HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2349" lang="es" xmltv_id="">TRU TV HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2349" lang="es" xmltv_id="">LATINA</channel>
<channel site="tv.movistar.com.pe" site_id="lch2351" lang="es" xmltv_id="">FASHION ONE HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2351" lang="es" xmltv_id="">FASHION ONE HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2352" lang="es" xmltv_id="">ATRES SERIES HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2353" lang="es" xmltv_id="">DISCOVERY WORLD HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2353" lang="es" xmltv_id="">DISCOVERY WORLD HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2354" lang="es" xmltv_id="">HOME &amp; HEALTH HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2354" lang="es" xmltv_id="">HOME &amp; HEALTH HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2356" lang="es" xmltv_id="">DISCOVERY KIDS HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2356" lang="es" xmltv_id="">DISCOVERY KIDS HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2357" lang="es" xmltv_id="">DISNEY CHANNEL HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2357" lang="es" xmltv_id="">DISNEY CHANNEL HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2358" lang="es" xmltv_id="">NICK HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2358" lang="es" xmltv_id="">NICK HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2359" lang="es" xmltv_id="">MTV HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2359" lang="es" xmltv_id="">MTV HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2360" lang="es" xmltv_id="">MTV 00S</channel>
<channel site="tv.movistar.com.pe" site_id="lch2374" lang="es" xmltv_id="">GLOBO TV</channel> <channel site="tv.movistar.com.pe" site_id="lch2374" lang="es" xmltv_id="">GLOBO TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2375" lang="es" xmltv_id="">TELEFE</channel> <channel site="tv.movistar.com.pe" site_id="lch2375" lang="es" xmltv_id="">TELEFE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2376" lang="es" xmltv_id="">EL TRECE</channel> <channel site="tv.movistar.com.pe" site_id="lch2376" lang="es" xmltv_id="">EL TRECE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2377" lang="es" xmltv_id="TVChile.cl@SD">TV CHILE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2378" lang="es" xmltv_id="">TELESUR</channel> <channel site="tv.movistar.com.pe" site_id="lch2378" lang="es" xmltv_id="">TELESUR</channel>
<channel site="tv.movistar.com.pe" site_id="lch2379" lang="es" xmltv_id="">NUESTRA TELE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2380" lang="es" xmltv_id="">TVE</channel> <channel site="tv.movistar.com.pe" site_id="lch2380" lang="es" xmltv_id="">TVE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2381" lang="es" xmltv_id="">ANTENA3</channel> <channel site="tv.movistar.com.pe" site_id="lch2381" lang="es" xmltv_id="">ANTENA3</channel>
<channel site="tv.movistar.com.pe" site_id="lch2382" lang="es" xmltv_id="">DEUTSCHE WELLE</channel> <channel site="tv.movistar.com.pe" site_id="lch2382" lang="es" xmltv_id="">DEUTSCHE WELLE</channel>
@@ -122,34 +92,23 @@
<channel site="tv.movistar.com.pe" site_id="lch2384" lang="es" xmltv_id="">TV5</channel> <channel site="tv.movistar.com.pe" site_id="lch2384" lang="es" xmltv_id="">TV5</channel>
<channel site="tv.movistar.com.pe" site_id="lch2385" lang="es" xmltv_id="">NHK</channel> <channel site="tv.movistar.com.pe" site_id="lch2385" lang="es" xmltv_id="">NHK</channel>
<channel site="tv.movistar.com.pe" site_id="lch2386" lang="es" xmltv_id="">CCTV</channel> <channel site="tv.movistar.com.pe" site_id="lch2386" lang="es" xmltv_id="">CCTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2387" lang="es" xmltv_id="">ARTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2388" lang="es" xmltv_id="">VOA</channel> <channel site="tv.movistar.com.pe" site_id="lch2388" lang="es" xmltv_id="">VOA</channel>
<channel site="tv.movistar.com.pe" site_id="lch2389" lang="es" xmltv_id="">PLAYBOY</channel> <channel site="tv.movistar.com.pe" site_id="lch2389" lang="es" xmltv_id="">PLAYBOY</channel>
<channel site="tv.movistar.com.pe" site_id="lch2390" lang="es" xmltv_id="Venus.ar@SD">VENUS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2391" lang="es" xmltv_id="Sextreme.br@SD">SEXTREME</channel>
<channel site="tv.movistar.com.pe" site_id="lch2392" lang="es" xmltv_id="">PLAYBOY HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2392" lang="es" xmltv_id="">PLAYBOY HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2400" lang="es" xmltv_id="">CONGRESO</channel> <channel site="tv.movistar.com.pe" site_id="lch2400" lang="es" xmltv_id="">CONGRESO</channel>
<channel site="tv.movistar.com.pe" site_id="lch2424" lang="es" xmltv_id="">A&amp;E</channel>
<channel site="tv.movistar.com.pe" site_id="lch2425" lang="es" xmltv_id="GolPeru.pe@SD">GOLPERU</channel>
<channel site="tv.movistar.com.pe" site_id="lch2448" lang="es" xmltv_id="">ESPN 2 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2459" lang="es" xmltv_id="">RPP HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2459" lang="es" xmltv_id="">RPP HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2461" lang="es" xmltv_id="">HBO HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2461" lang="es" xmltv_id="">HBO HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2463" lang="es" xmltv_id="QualityChannel.ge@SD">QUALITY CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch2491" lang="es" xmltv_id="">BABY TV</channel> <channel site="tv.movistar.com.pe" site_id="lch2491" lang="es" xmltv_id="">BABY TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2492" lang="es" xmltv_id="">EL GOURMET HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2770" lang="es" xmltv_id="">BBC WORLD NEWS</channel> <channel site="tv.movistar.com.pe" site_id="lch2770" lang="es" xmltv_id="">BBC WORLD NEWS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2775" lang="es" xmltv_id="">ESPN HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2775" lang="es" xmltv_id="">ESPN HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2776" lang="es" xmltv_id="">ESPN 3 HD</channel> <channel site="tv.movistar.com.pe" site_id="lch2776" lang="es" xmltv_id="">ESPN 3 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2796" lang="es" xmltv_id="">SPACE REGIONAL DTH LIVE</channel> <channel site="tv.movistar.com.pe" site_id="lch2796" lang="es" xmltv_id="">SPACE HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2812" lang="es" xmltv_id="">GOL PERU</channel> <channel site="tv.movistar.com.pe" site_id="lch2813" lang="es" xmltv_id="">ESPN 4 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch2813" lang="es" xmltv_id="">ESPN EXTRA HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3091" lang="es" xmltv_id="">ANIMAL PLANET HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3091" lang="es" xmltv_id="">ANIMAL PLANET HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3102" lang="es" xmltv_id="">TNT HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3102" lang="es" xmltv_id="">TNT HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3297" lang="es" xmltv_id="">M PLUS HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3297" lang="es" xmltv_id="">PLUS LIFE</channel>
<channel site="tv.movistar.com.pe" site_id="lch3298" lang="es" xmltv_id="">M DEPORTES HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3298" lang="es" xmltv_id="">M DEPORTES HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3300" lang="es" xmltv_id="">M DEPORTES</channel> <channel site="tv.movistar.com.pe" site_id="lch3300" lang="es" xmltv_id="">M DEPORTES</channel>
<channel site="tv.movistar.com.pe" site_id="lch3302" lang="es" xmltv_id="MovistarPlus.pe@SD">M PLUS</channel>
<channel site="tv.movistar.com.pe" site_id="lch3325" lang="es" xmltv_id="">NICK JR OTT</channel>
<channel site="tv.movistar.com.pe" site_id="lch3357" lang="es" xmltv_id="">CABLE NOTICIAS</channel> <channel site="tv.movistar.com.pe" site_id="lch3357" lang="es" xmltv_id="">CABLE NOTICIAS</channel>
<channel site="tv.movistar.com.pe" site_id="lch3446" lang="es" xmltv_id="">HBO PLUS ESTE HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3446" lang="es" xmltv_id="">HBO PLUS ESTE HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3447" lang="es" xmltv_id="">HBO SIGNATURE HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3447" lang="es" xmltv_id="">HBO SIGNATURE HD</channel>
@@ -158,30 +117,23 @@
<channel site="tv.movistar.com.pe" site_id="lch3489" lang="es" xmltv_id="">NAT GEO HD</channel> <channel site="tv.movistar.com.pe" site_id="lch3489" lang="es" xmltv_id="">NAT GEO HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3661" lang="es" xmltv_id="">TEST01</channel> <channel site="tv.movistar.com.pe" site_id="lch3661" lang="es" xmltv_id="">TEST01</channel>
<channel site="tv.movistar.com.pe" site_id="lch3662" lang="es" xmltv_id="">TEST02</channel> <channel site="tv.movistar.com.pe" site_id="lch3662" lang="es" xmltv_id="">TEST02</channel>
<channel site="tv.movistar.com.pe" site_id="lch3753" lang="es" xmltv_id="">CANAL J</channel> <channel site="tv.movistar.com.pe" site_id="lch3753" lang="es" xmltv_id="">Juntos TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch3952" lang="es" xmltv_id="">ESPN 2</channel> <channel site="tv.movistar.com.pe" site_id="lch3952" lang="es" xmltv_id="">ESPN 2 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3964" lang="es" xmltv_id="KanalDDrama.tr@SD">KANAL D DRAMA</channel>
<channel site="tv.movistar.com.pe" site_id="lch3965" lang="es" xmltv_id="ZeeMundo.in@SD">ZEE MUNDO</channel>
<channel site="tv.movistar.com.pe" site_id="lch4007" lang="es" xmltv_id="">DISCOVERY HOME &amp; GARDEN</channel> <channel site="tv.movistar.com.pe" site_id="lch4007" lang="es" xmltv_id="">DISCOVERY HOME &amp; GARDEN</channel>
<channel site="tv.movistar.com.pe" site_id="lch4038" lang="es" xmltv_id="">FOOD NETWORK</channel> <channel site="tv.movistar.com.pe" site_id="lch4038" lang="es" xmltv_id="">FOOD NETWORK</channel>
<channel site="tv.movistar.com.pe" site_id="lch4105" lang="es" xmltv_id="USMPTV.pe@SD">USMP TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch4128" lang="es" xmltv_id="">MOVISTAR EVENTOS 2</channel>
<channel site="tv.movistar.com.pe" site_id="lch5483" lang="es" xmltv_id="">MOVISTAR EVENTOS</channel> <channel site="tv.movistar.com.pe" site_id="lch5483" lang="es" xmltv_id="">MOVISTAR EVENTOS</channel>
<channel site="tv.movistar.com.pe" site_id="lch5593" lang="es" xmltv_id="">Food Network HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5593" lang="es" xmltv_id="">Food Network HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5594" lang="es" xmltv_id="">Exitosa TV</channel> <channel site="tv.movistar.com.pe" site_id="lch5594" lang="es" xmltv_id="">Exitosa TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5595" lang="es" xmltv_id="">Exitosa TV</channel> <channel site="tv.movistar.com.pe" site_id="lch5595" lang="es" xmltv_id="">Exitosa TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5598" lang="es" xmltv_id="">INFO STAR PREMIUM</channel> <channel site="tv.movistar.com.pe" site_id="lch5598" lang="es" xmltv_id="">INFO STAR PREMIUM</channel>
<channel site="tv.movistar.com.pe" site_id="lch5600" lang="es" xmltv_id="">AZ CORAZON</channel>
<channel site="tv.movistar.com.pe" site_id="lch5601" lang="es" xmltv_id="">VE PLUS TV</channel> <channel site="tv.movistar.com.pe" site_id="lch5601" lang="es" xmltv_id="">VE PLUS TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5602" lang="es" xmltv_id="">HGTV</channel> <channel site="tv.movistar.com.pe" site_id="lch5602" lang="es" xmltv_id="">HGTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5603" lang="es" xmltv_id="">AZ MUNDO</channel>
<channel site="tv.movistar.com.pe" site_id="lch5605" lang="es" xmltv_id="">NICKELODEON</channel> <channel site="tv.movistar.com.pe" site_id="lch5605" lang="es" xmltv_id="">NICKELODEON</channel>
<channel site="tv.movistar.com.pe" site_id="lch5606" lang="es" xmltv_id="">DISNEY</channel> <channel site="tv.movistar.com.pe" site_id="lch5606" lang="es" xmltv_id="">DISNEY</channel>
<channel site="tv.movistar.com.pe" site_id="lch5607" lang="es" xmltv_id="">PX SPORTS</channel> <channel site="tv.movistar.com.pe" site_id="lch5607" lang="es" xmltv_id="">PX SPORTS</channel>
<channel site="tv.movistar.com.pe" site_id="lch5608" lang="es" xmltv_id="">FRANCE24</channel> <channel site="tv.movistar.com.pe" site_id="lch5608" lang="es" xmltv_id="">FRANCE24</channel>
<channel site="tv.movistar.com.pe" site_id="lch5609" lang="es" xmltv_id="">JUSTICIA TV</channel> <channel site="tv.movistar.com.pe" site_id="lch5609" lang="es" xmltv_id="">JUSTICIA TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5610" lang="es" xmltv_id="">EWTN</channel> <channel site="tv.movistar.com.pe" site_id="lch5610" lang="es" xmltv_id="">EWTN</channel>
<channel site="tv.movistar.com.pe" site_id="lch5611" lang="es" xmltv_id="PaxTV.pe@SD">PAXTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5612" lang="es" xmltv_id="">MOVISTAR EVENTOS HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5612" lang="es" xmltv_id="">MOVISTAR EVENTOS HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5613" lang="es" xmltv_id="">TV PERÚ 7.3 HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5613" lang="es" xmltv_id="">TV PERÚ 7.3 HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5614" lang="es" xmltv_id="">WILLAX TV HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5614" lang="es" xmltv_id="">WILLAX TV HD</channel>
@@ -189,51 +141,24 @@
<channel site="tv.movistar.com.pe" site_id="lch5616" lang="es" xmltv_id="">HGTV HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5616" lang="es" xmltv_id="">HGTV HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5618" lang="es" xmltv_id="">CARTOONITO HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5618" lang="es" xmltv_id="">CARTOONITO HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5619" lang="es" xmltv_id="">CANAL J HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5619" lang="es" xmltv_id="">CANAL J HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5620" lang="es" xmltv_id="">RUSIA TODAY HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5621" lang="es" xmltv_id="">TVN CHILE</channel> <channel site="tv.movistar.com.pe" site_id="lch5621" lang="es" xmltv_id="">TVN CHILE</channel>
<channel site="tv.movistar.com.pe" site_id="lch5622" lang="es" xmltv_id="">RUSIA TODAY</channel>
<channel site="tv.movistar.com.pe" site_id="lch5623" lang="es" xmltv_id="">CLOVER</channel> <channel site="tv.movistar.com.pe" site_id="lch5623" lang="es" xmltv_id="">CLOVER</channel>
<channel site="tv.movistar.com.pe" site_id="lch5624" lang="es" xmltv_id="">UCL</channel> <channel site="tv.movistar.com.pe" site_id="lch5624" lang="es" xmltv_id="">UCL</channel>
<channel site="tv.movistar.com.pe" site_id="lch5625" lang="es" xmltv_id="">TOONCAST</channel> <channel site="tv.movistar.com.pe" site_id="lch5625" lang="es" xmltv_id="">TOONCAST</channel>
<channel site="tv.movistar.com.pe" site_id="lch5626" lang="es" xmltv_id="">LOLLY KIDS</channel> <channel site="tv.movistar.com.pe" site_id="lch5626" lang="es" xmltv_id="">KIDS STARS</channel>
<channel site="tv.movistar.com.pe" site_id="lch5643" lang="es" xmltv_id="">QUIALITY CHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch5649" lang="es" xmltv_id="">CLOVER</channel> <channel site="tv.movistar.com.pe" site_id="lch5649" lang="es" xmltv_id="">CLOVER</channel>
<channel site="tv.movistar.com.pe" site_id="lch5650" lang="es" xmltv_id="">CLOVER</channel> <channel site="tv.movistar.com.pe" site_id="lch5650" lang="es" xmltv_id="">CLOVER</channel>
<channel site="tv.movistar.com.pe" site_id="lch5651" lang="es" xmltv_id="">DISNEY JUNIOR</channel> <channel site="tv.movistar.com.pe" site_id="lch5651" lang="es" xmltv_id="">DISNEY JUNIOR</channel>
<channel site="tv.movistar.com.pe" site_id="lch5652" lang="es" xmltv_id="Tooncast.us@SD">TOONCAST</channel>
<channel site="tv.movistar.com.pe" site_id="lch5653" lang="es" xmltv_id="LollyKids.uk@SD">LOLLY KIDS</channel>
<channel site="tv.movistar.com.pe" site_id="lch5654" lang="es" xmltv_id="">Alianza Lima TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5655" lang="es" xmltv_id="">Alianza Lima TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5656" lang="es" xmltv_id="">Universitario TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5657" lang="es" xmltv_id="UniversitarioTV.pe@SD">Universitario TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5658" lang="es" xmltv_id="">UCL</channel> <channel site="tv.movistar.com.pe" site_id="lch5658" lang="es" xmltv_id="">UCL</channel>
<channel site="tv.movistar.com.pe" site_id="lch5659" lang="es" xmltv_id="UCL.uy@SD">UCL</channel> <channel site="tv.movistar.com.pe" site_id="lch5664" lang="es" xmltv_id="">Movistar Te Informa</channel>
<channel site="tv.movistar.com.pe" site_id="lch5660" lang="es" xmltv_id="ElTiempoTV.co@SD">EL TIEMPO</channel>
<channel site="tv.movistar.com.pe" site_id="lch5664" lang="es" xmltv_id="">Alianza TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5665" lang="es" xmltv_id="">U TV</channel> <channel site="tv.movistar.com.pe" site_id="lch5665" lang="es" xmltv_id="">U TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5666" lang="es" xmltv_id="">TV PERU HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5666" lang="es" xmltv_id="">TV PERU HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5667" lang="es" xmltv_id="CanalJ.pe@SD">CANAL J</channel>
<channel site="tv.movistar.com.pe" site_id="lch5699" lang="es" xmltv_id="">AMC HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5700" lang="es" xmltv_id="">Star TVE HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5700" lang="es" xmltv_id="">Star TVE HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5701" lang="es" xmltv_id="PasionesLatinAmerica.us@SD">Pasiones HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5702" lang="es" xmltv_id="">Film &amp; Arts HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5703" lang="es" xmltv_id="LoveNature.ca@SD">Love Nature HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5704" lang="es" xmltv_id="">Via X Esports HD</channel> <channel site="tv.movistar.com.pe" site_id="lch5704" lang="es" xmltv_id="">Via X Esports HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5705" lang="es" xmltv_id="">Mas Chic HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5707" lang="es" xmltv_id="EuropaEuropa.ar@SD">Europa Europa HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch6289" lang="es" xmltv_id="">EWTN</channel> <channel site="tv.movistar.com.pe" site_id="lch6289" lang="es" xmltv_id="">EWTN</channel>
<channel site="tv.movistar.com.pe" site_id="lch6290" lang="es" xmltv_id="Eurochannel.uk@SD">EUROCHANNEL</channel>
<channel site="tv.movistar.com.pe" site_id="lch6291" lang="it" xmltv_id="">RAI ITALIA</channel>
<channel site="tv.movistar.com.pe" site_id="lch6292" lang="es" xmltv_id="Antena3Internacional.es@SD">ANTENA 3</channel>
<channel site="tv.movistar.com.pe" site_id="lch6293" lang="es" xmltv_id="PXSports.mx@SD">PX SPORTS</channel>
<channel site="tv.movistar.com.pe" site_id="lch6294" lang="es" xmltv_id="">TVE</channel> <channel site="tv.movistar.com.pe" site_id="lch6294" lang="es" xmltv_id="">TVE</channel>
<channel site="tv.movistar.com.pe" site_id="lch6295" lang="es" xmltv_id="KDrama.id@SD">K-DRAMA</channel>
<channel site="tv.movistar.com.pe" site_id="lch6296" lang="es" xmltv_id="">I-SAT</channel>
<channel site="tv.movistar.com.pe" site_id="lch6297" lang="es" xmltv_id="">GLITZ</channel>
<channel site="tv.movistar.com.pe" site_id="lch6298" lang="es" xmltv_id="">HTV</channel> <channel site="tv.movistar.com.pe" site_id="lch6298" lang="es" xmltv_id="">HTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6299" lang="es" xmltv_id="">TV5</channel> <channel site="tv.movistar.com.pe" site_id="lch6299" lang="es" xmltv_id="">TV5</channel>
<channel site="tv.movistar.com.pe" site_id="lch6300" lang="es" xmltv_id="WOBI.ar@SD">WOBI</channel>
<channel site="tv.movistar.com.pe" site_id="lch6301" lang="es" xmltv_id="">NUESTRA TELE</channel>
<channel site="tv.movistar.com.pe" site_id="lch6302" lang="es" xmltv_id="">FRANCE24</channel> <channel site="tv.movistar.com.pe" site_id="lch6302" lang="es" xmltv_id="">FRANCE24</channel>
<channel site="tv.movistar.com.pe" site_id="lch6303" lang="es" xmltv_id="">TV GLOBO</channel> <channel site="tv.movistar.com.pe" site_id="lch6303" lang="es" xmltv_id="">TV GLOBO</channel>
<channel site="tv.movistar.com.pe" site_id="lch6304" lang="es" xmltv_id="">TVN CHILE</channel> <channel site="tv.movistar.com.pe" site_id="lch6304" lang="es" xmltv_id="">TVN CHILE</channel>
@@ -241,9 +166,6 @@
<channel site="tv.movistar.com.pe" site_id="lch6306" lang="es" xmltv_id="">Telefe Internacional</channel> <channel site="tv.movistar.com.pe" site_id="lch6306" lang="es" xmltv_id="">Telefe Internacional</channel>
<channel site="tv.movistar.com.pe" site_id="lch6307" lang="es" xmltv_id="">ATV+</channel> <channel site="tv.movistar.com.pe" site_id="lch6307" lang="es" xmltv_id="">ATV+</channel>
<channel site="tv.movistar.com.pe" site_id="lch6308" lang="es" xmltv_id="">BABY TV</channel> <channel site="tv.movistar.com.pe" site_id="lch6308" lang="es" xmltv_id="">BABY TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6309" lang="es" xmltv_id="GlobalTV.pe@SD">GLOBAL TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6310" lang="es" xmltv_id="CongresoTV.pe@SD">CONGRESO</channel>
<channel site="tv.movistar.com.pe" site_id="lch6311" lang="es" xmltv_id="ExitosaTV.pe@SD">EXITOSA TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6312" lang="es" xmltv_id="">JUSTICIA TV</channel> <channel site="tv.movistar.com.pe" site_id="lch6312" lang="es" xmltv_id="">JUSTICIA TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6313" lang="es" xmltv_id="">ADULT SWIM</channel> <channel site="tv.movistar.com.pe" site_id="lch6313" lang="es" xmltv_id="">ADULT SWIM</channel>
<channel site="tv.movistar.com.pe" site_id="lch6316" lang="es" xmltv_id="">ENLACE TBN</channel> <channel site="tv.movistar.com.pe" site_id="lch6316" lang="es" xmltv_id="">ENLACE TBN</channel>
@@ -251,9 +173,7 @@
<channel site="tv.movistar.com.pe" site_id="lch6469" lang="es" xmltv_id="">IPe</channel> <channel site="tv.movistar.com.pe" site_id="lch6469" lang="es" xmltv_id="">IPe</channel>
<channel site="tv.movistar.com.pe" site_id="lch6470" lang="es" xmltv_id="">VIVA TV</channel> <channel site="tv.movistar.com.pe" site_id="lch6470" lang="es" xmltv_id="">VIVA TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6471" lang="es" xmltv_id="">La Tele</channel> <channel site="tv.movistar.com.pe" site_id="lch6471" lang="es" xmltv_id="">La Tele</channel>
<channel site="tv.movistar.com.pe" site_id="lch6472" lang="es" xmltv_id="">JCP-JNE</channel>
<channel site="tv.movistar.com.pe" site_id="lch6473" lang="es" xmltv_id="">SOL TV</channel> <channel site="tv.movistar.com.pe" site_id="lch6473" lang="es" xmltv_id="">SOL TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6474" lang="es" xmltv_id="">QUALITY TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6475" lang="es" xmltv_id="">JN19 TELEJUAN</channel> <channel site="tv.movistar.com.pe" site_id="lch6475" lang="es" xmltv_id="">JN19 TELEJUAN</channel>
<channel site="tv.movistar.com.pe" site_id="lch6476" lang="es" xmltv_id="">NUEVO TIEMPO</channel> <channel site="tv.movistar.com.pe" site_id="lch6476" lang="es" xmltv_id="">NUEVO TIEMPO</channel>
<channel site="tv.movistar.com.pe" site_id="lch6477" lang="es" xmltv_id="">PAXTV</channel> <channel site="tv.movistar.com.pe" site_id="lch6477" lang="es" xmltv_id="">PAXTV</channel>
@@ -282,4 +202,64 @@
<channel site="tv.movistar.com.pe" site_id="lch6529" lang="es" xmltv_id="">YouTube</channel> <channel site="tv.movistar.com.pe" site_id="lch6529" lang="es" xmltv_id="">YouTube</channel>
<channel site="tv.movistar.com.pe" site_id="lch6530" lang="es" xmltv_id="">Youtube Kids</channel> <channel site="tv.movistar.com.pe" site_id="lch6530" lang="es" xmltv_id="">Youtube Kids</channel>
<channel site="tv.movistar.com.pe" site_id="lch6531" lang="es" xmltv_id="">Star+</channel> <channel site="tv.movistar.com.pe" site_id="lch6531" lang="es" xmltv_id="">Star+</channel>
<channel site="tv.movistar.com.pe" site_id="lch6559" lang="es" xmltv_id="">ATRES SERIES HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch6616" lang="es" xmltv_id="">CLAN HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch6619" lang="es" xmltv_id="">TVLIBERTAD</channel>
<channel site="tv.movistar.com.pe" site_id="lch6992" lang="es" xmltv_id="">DAYSTAR HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch7001" lang="es" xmltv_id="">MOVISTAR EVENTOS 2</channel>
<channel site="tv.movistar.com.pe" site_id="lch7076" lang="es" xmltv_id="">AMERICA TELEVISION AREQUIPA</channel>
<channel site="tv.movistar.com.pe" site_id="lch7077" lang="es" xmltv_id="">AMERICA TELEVISION CUSCO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7078" lang="es" xmltv_id="">AMERICA TELEVISION TRUJILLO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7079" lang="es" xmltv_id="">AMERICA TELEVISION CHICLAYO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7080" lang="es" xmltv_id="">AMERICA TELEVISION PIURA</channel>
<channel site="tv.movistar.com.pe" site_id="lch7081" lang="es" xmltv_id="">PANAMERICANA TELEVISION AREQUIPA</channel>
<channel site="tv.movistar.com.pe" site_id="lch7082" lang="es" xmltv_id="">PANAMERICANA TELEVISION CUSCO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7083" lang="es" xmltv_id="">PANAMERICANA TELEVISION TRUJILLO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7084" lang="es" xmltv_id="">PANAMERICANA TELEVISION CHICLAYO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7085" lang="es" xmltv_id="">PANAMERICANA TELEVISION PIURA</channel>
<channel site="tv.movistar.com.pe" site_id="lch7106" lang="es" xmltv_id="">ALACOCINA TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch7108" lang="es" xmltv_id="">TOP LATINO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7109" lang="es" xmltv_id="">LATINA NOTICIAS</channel>
<channel site="tv.movistar.com.pe" site_id="lch7110" lang="es" xmltv_id="">PBO</channel>
<channel site="tv.movistar.com.pe" site_id="lch7114" lang="es" xmltv_id="">BBC WORLD NEWS</channel>
<channel site="tv.movistar.com.pe" site_id="lch7115" lang="es" xmltv_id="">PLIM PLIM</channel>
<channel site="tv.movistar.com.pe" site_id="lch7161" lang="es" xmltv_id="">TRIVU</channel>
<channel site="tv.movistar.com.pe" site_id="lch7202" lang="es" xmltv_id="">OVACION</channel>
<channel site="tv.movistar.com.pe" site_id="lch7203" lang="es" xmltv_id="">JNE TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch7204" lang="es" xmltv_id="">CRISTOVISION</channel>
<channel site="tv.movistar.com.pe" site_id="lch7205" lang="es" xmltv_id="">NICK JR</channel>
<channel site="tv.movistar.com.pe" site_id="lch7216" lang="es" xmltv_id="">L1MAX</channel>
<channel site="tv.movistar.com.pe" site_id="lch7217" lang="es" xmltv_id="">L1</channel>
<channel site="tv.movistar.com.pe" site_id="lch2208" lang="es" xmltv_id="AmericaTelevision.pe@SD">AMERICA TELEVISION</channel>
<channel site="tv.movistar.com.pe" site_id="lch6292" lang="es" xmltv_id="Antena3Internacional.es@SD">ANTENA 3</channel>
<channel site="tv.movistar.com.pe" site_id="lch2211" lang="es" xmltv_id="ATV.pe@SD">ATV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2220" lang="es" xmltv_id="ATVPlus.pe@SD">ATV+</channel>
<channel site="tv.movistar.com.pe" site_id="lch5667" lang="es" xmltv_id="CanalJ.pe@SD">CANAL J</channel>
<channel site="tv.movistar.com.pe" site_id="lch2169" lang="es" xmltv_id="CanalN.pe@SD">CANAL N</channel>
<channel site="tv.movistar.com.pe" site_id="lch6310" lang="es" xmltv_id="CongresoTV.pe@SD">CONGRESO</channel>
<channel site="tv.movistar.com.pe" site_id="lch5660" lang="es" xmltv_id="ElTiempoTV.co@SD">EL TIEMPO</channel>
<channel site="tv.movistar.com.pe" site_id="lch6311" lang="es" xmltv_id="ExitosaTV.pe@SD">EXITOSA TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6309" lang="es" xmltv_id="GlobalTV.pe@SD">GLOBAL TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2307" lang="es" xmltv_id="JusticiaTV.pe@SD">PODER JUDICIAL</channel>
<channel site="tv.movistar.com.pe" site_id="lch3964" lang="es" xmltv_id="KanalDDrama.tr@SD">KANAL D DRAMA</channel>
<channel site="tv.movistar.com.pe" site_id="lch6295" lang="es" xmltv_id="KDrama.id@SD">K-DRAMA</channel>
<channel site="tv.movistar.com.pe" site_id="lch2207" lang="es" xmltv_id="Latina.pe@SD">LATINA</channel>
<channel site="tv.movistar.com.pe" site_id="lch5653" lang="es" xmltv_id="LollyKids.uk@SD">LOLLY KIDS</channel>
<channel site="tv.movistar.com.pe" site_id="lch5703" lang="es" xmltv_id="LoveNature.ca@SD">Love Nature HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch3302" lang="es" xmltv_id="MovistarPlus.pe@SD">M PLUS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2209" lang="es" xmltv_id="PanamericanaTV.pe@SD">PANAMERICANA TELEVISION</channel>
<channel site="tv.movistar.com.pe" site_id="lch5701" lang="es" xmltv_id="PasionesLatinAmerica.us@SD">Pasiones HD</channel>
<channel site="tv.movistar.com.pe" site_id="lch5611" lang="es" xmltv_id="PaxTV.pe@SD">PAXTV</channel>
<channel site="tv.movistar.com.pe" site_id="lch6293" lang="es" xmltv_id="PXSports.mx@SD">PX SPORTS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2212" lang="es" xmltv_id="RPPTV.pe@SD">RPP TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch5652" lang="es" xmltv_id="Tooncast.us@SD">TOONCAST</channel>
<channel site="tv.movistar.com.pe" site_id="lch2377" lang="es" xmltv_id="TVChile.cl@SD">TV CHILE</channel>
<channel site="tv.movistar.com.pe" site_id="lch2210" lang="es" xmltv_id="TVPeru.pe@SD">TV PERU</channel>
<channel site="tv.movistar.com.pe" site_id="lch2214" lang="es" xmltv_id="TVPeruNoticias.pe@SD">TV PERU 7.3</channel>
<channel site="tv.movistar.com.pe" site_id="lch5659" lang="es" xmltv_id="UCL.uy@SD">UCL</channel>
<channel site="tv.movistar.com.pe" site_id="lch4105" lang="es" xmltv_id="USMPTV.pe@SD">USMP TV</channel>
<channel site="tv.movistar.com.pe" site_id="lch2390" lang="es" xmltv_id="Venus.ar@SD">VENUS</channel>
<channel site="tv.movistar.com.pe" site_id="lch2219" lang="es" xmltv_id="WillaxTV.pe@SD">WILLAX</channel>
<channel site="tv.movistar.com.pe" site_id="lch3965" lang="es" xmltv_id="ZeeMundo.us@SD">ZEE MUNDO</channel>
<channel site="tv.movistar.com.pe" site_id="lch6291" lang="it" xmltv_id="">RAI ITALIA</channel>
</channels> </channels>
+1 -2
View File
@@ -33,7 +33,6 @@
<channel site="vodafone.pt" site_id="2749" lang="pt" xmltv_id="24Horas.es@SD">24h</channel> <channel site="vodafone.pt" site_id="2749" lang="pt" xmltv_id="24Horas.es@SD">24h</channel>
<channel site="vodafone.pt" site_id="2750" lang="pt" xmltv_id="CNBCEurope.uk@SD">CNBC</channel> <channel site="vodafone.pt" site_id="2750" lang="pt" xmltv_id="CNBCEurope.uk@SD">CNBC</channel>
<channel site="vodafone.pt" site_id="2751" lang="pt" xmltv_id="TPAi.ao@SD">TPA</channel> <channel site="vodafone.pt" site_id="2751" lang="pt" xmltv_id="TPAi.ao@SD">TPA</channel>
<channel site="vodafone.pt" site_id="2754" lang="pt" xmltv_id="MTV00s.uk@SD">MTV 00s</channel>
<channel site="vodafone.pt" site_id="2757" lang="pt" xmltv_id="PROTVInternational.ro@SD">Pro TV International</channel> <channel site="vodafone.pt" site_id="2757" lang="pt" xmltv_id="PROTVInternational.ro@SD">Pro TV International</channel>
<channel site="vodafone.pt" site_id="2760" lang="pt" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel> <channel site="vodafone.pt" site_id="2760" lang="pt" xmltv_id="BloombergTV.us@Europe">Bloomberg</channel>
<channel site="vodafone.pt" site_id="2761" lang="pt" xmltv_id="Mezzo.fr@SD">Mezzo</channel> <channel site="vodafone.pt" site_id="2761" lang="pt" xmltv_id="Mezzo.fr@SD">Mezzo</channel>
@@ -146,5 +145,5 @@
<channel site="vodafone.pt" site_id="8781" lang="pt" xmltv_id="BabyTV.uk@UK">BabyTV</channel> <channel site="vodafone.pt" site_id="8781" lang="pt" xmltv_id="BabyTV.uk@UK">BabyTV</channel>
<channel site="vodafone.pt" site_id="8783" lang="pt" xmltv_id="Historia.pt@SD">História</channel> <channel site="vodafone.pt" site_id="8783" lang="pt" xmltv_id="Historia.pt@SD">História</channel>
<channel site="vodafone.pt" site_id="8901" lang="pt" xmltv_id="WSport.za@SD">W-Sport</channel> <channel site="vodafone.pt" site_id="8901" lang="pt" xmltv_id="WSport.za@SD">W-Sport</channel>
<channel site="vodafone.pt" site_id="8933" lang="pt" xmltv_id="">Conta Lá</channel> <channel site="vodafone.pt" site_id="8933" lang="pt" xmltv_id="ContaLa.pt@HD">Conta Lá</channel>
</channels> </channels>
File diff suppressed because one or more lines are too long
+21
View File
@@ -0,0 +1,21 @@
# webtv.sk
https://webtv.sk/archive
### Download the guide
```sh
npm run grab --- --site=webtv.sk
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/webtv.sk/webtv.sk.config.js --output=./sites/webtv.sk/webtv.sk.channels.xml
```
### Test
```sh
npm test --- webtv.sk
```
+189
View File
@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="webtv.sk" site_id="360_tunebox" lang="sk" xmltv_id="">360 TuneBox</channel>
<channel site="webtv.sk" site_id="al_jazeera" lang="sk" xmltv_id="">Al Jazeera</channel>
<channel site="webtv.sk" site_id="al_jazeera_english" lang="sk" xmltv_id="">Al Jazeera English</channel>
<channel site="webtv.sk" site_id="amc" lang="sk" xmltv_id="">AMC</channel>
<channel site="webtv.sk" site_id="animal_planet" lang="sk" xmltv_id="">Animal Planet</channel>
<channel site="webtv.sk" site_id="arena_sport_1" lang="sk" xmltv_id="">Arena Sport 1</channel>
<channel site="webtv.sk" site_id="arena_sport_2" lang="sk" xmltv_id="">Arena Sport 2</channel>
<channel site="webtv.sk" site_id="arirang_tv" lang="sk" xmltv_id="">Arirang TV</channel>
<channel site="webtv.sk" site_id="armenia_1_tv" lang="sk" xmltv_id="">Armenia 1 TV</channel>
<channel site="webtv.sk" site_id="atv_ziar" lang="sk" xmltv_id="">ATV Žiar</channel>
<channel site="webtv.sk" site_id="auto_motor_und_sport" lang="sk" xmltv_id="">Auto Motor und Sport</channel>
<channel site="webtv.sk" site_id="axn" lang="sk" xmltv_id="">AXN</channel>
<channel site="webtv.sk" site_id="axn_black" lang="sk" xmltv_id="">AXN Black</channel>
<channel site="webtv.sk" site_id="axn_white" lang="sk" xmltv_id="">AXN White</channel>
<channel site="webtv.sk" site_id="barrandov" lang="sk" xmltv_id="">Barrandov</channel>
<channel site="webtv.sk" site_id="barrandov_plus" lang="sk" xmltv_id="">Barrandov Krimi</channel>
<channel site="webtv.sk" site_id="btv" lang="sk" xmltv_id="">BTV</channel>
<channel site="webtv.sk" site_id="cetv" lang="sk" xmltv_id="">CETV</channel>
<channel site="webtv.sk" site_id="cgtn" lang="sk" xmltv_id="">CGTN</channel>
<channel site="webtv.sk" site_id="cgtn_documentary" lang="sk" xmltv_id="">CGTN Documentary</channel>
<channel site="webtv.sk" site_id="cinemax" lang="sk" xmltv_id="">Cinemax</channel>
<channel site="webtv.sk" site_id="cinemax_2" lang="sk" xmltv_id="">Cinemax 2</channel>
<channel site="webtv.sk" site_id="coronavirus_info_tv" lang="sk" xmltv_id="">HaHa TV</channel>
<channel site="webtv.sk" site_id="crime_investigation" lang="sk" xmltv_id="">Crime &amp; Investigation</channel>
<channel site="webtv.sk" site_id="csr_tv" lang="sk" xmltv_id="">ČSRTV</channel>
<channel site="webtv.sk" site_id="ct_1" lang="sk" xmltv_id="">ČT1</channel>
<channel site="webtv.sk" site_id="ct_2" lang="sk" xmltv_id="">ČT2</channel>
<channel site="webtv.sk" site_id="ct_24" lang="sk" xmltv_id="">ČT24</channel>
<channel site="webtv.sk" site_id="ct_detem_ct_art" lang="sk" xmltv_id="">ČT :D - ČT art</channel>
<channel site="webtv.sk" site_id="current_time" lang="sk" xmltv_id="">Current Time</channel>
<channel site="webtv.sk" site_id="dajto" lang="sk" xmltv_id="">DajTo</channel>
<channel site="webtv.sk" site_id="discovery" lang="sk" xmltv_id="">Discovery</channel>
<channel site="webtv.sk" site_id="disney_channel" lang="sk" xmltv_id="">Disney Channel</channel>
<channel site="webtv.sk" site_id="disney_junior" lang="sk" xmltv_id="">Disney Junior</channel>
<channel site="webtv.sk" site_id="docubox_hd" lang="sk" xmltv_id="">DocuBox</channel>
<channel site="webtv.sk" site_id="doktor_tv" lang="sk" xmltv_id="">Doktor TV</channel>
<channel site="webtv.sk" site_id="doma" lang="sk" xmltv_id="">Doma</channel>
<channel site="webtv.sk" site_id="duck_tv" lang="sk" xmltv_id="">Duck TV</channel>
<channel site="webtv.sk" site_id="duck_tv_plus" lang="sk" xmltv_id="">Duck TV Plus</channel>
<channel site="webtv.sk" site_id="eclutch_1" lang="sk" xmltv_id="">eClutch 1</channel>
<channel site="webtv.sk" site_id="eclutch_2" lang="sk" xmltv_id="">eClutch 2</channel>
<channel site="webtv.sk" site_id="english_club_tv" lang="sk" xmltv_id="">English Club TV</channel>
<channel site="webtv.sk" site_id="epsreso_tv" lang="sk" xmltv_id="">Espreso TV</channel>
<channel site="webtv.sk" site_id="euronews" lang="sk" xmltv_id="">Euronews</channel>
<channel site="webtv.sk" site_id="eurosport_1" lang="sk" xmltv_id="">Eurosport 1</channel>
<channel site="webtv.sk" site_id="eurosport_2" lang="sk" xmltv_id="">Eurosport 2</channel>
<channel site="webtv.sk" site_id="fashion_tv" lang="sk" xmltv_id="">Fashion TV Czech &amp; Slovak</channel>
<channel site="webtv.sk" site_id="fashionbox_hd" lang="sk" xmltv_id="">FashionBox</channel>
<channel site="webtv.sk" site_id="fast_and_funbox_hd" lang="sk" xmltv_id="">Fast and Funbox</channel>
<channel site="webtv.sk" site_id="fightbox_hd" lang="sk" xmltv_id="">FightBox</channel>
<channel site="webtv.sk" site_id="film_plus" lang="sk" xmltv_id="">Film +</channel>
<channel site="webtv.sk" site_id="filmbox" lang="sk" xmltv_id="">FilmBox</channel>
<channel site="webtv.sk" site_id="filmbox_arthouse" lang="sk" xmltv_id="">Filmbox Arthouse</channel>
<channel site="webtv.sk" site_id="filmbox_extra_hd" lang="sk" xmltv_id="">FilmBox Extra</channel>
<channel site="webtv.sk" site_id="filmbox_family" lang="sk" xmltv_id="">FilmBox Family</channel>
<channel site="webtv.sk" site_id="filmbox_plus" lang="sk" xmltv_id="">FilmBox Stars</channel>
<channel site="webtv.sk" site_id="filmbox_premium" lang="sk" xmltv_id="">FilmBox Premium</channel>
<channel site="webtv.sk" site_id="fishing_and_hunting" lang="sk" xmltv_id="">Fishing&amp;Hunting</channel>
<channel site="webtv.sk" site_id="folklorika" lang="sk" xmltv_id="">Folklorika</channel>
<channel site="webtv.sk" site_id="food_network" lang="sk" xmltv_id="">Food Network</channel>
<channel site="webtv.sk" site_id="france24" lang="sk" xmltv_id="">France 24</channel>
<channel site="webtv.sk" site_id="france_24_english" lang="sk" xmltv_id="">France 24 English</channel>
<channel site="webtv.sk" site_id="golf_channel" lang="sk" xmltv_id="">Golf Channel</channel>
<channel site="webtv.sk" site_id="gttv" lang="sk" xmltv_id="">GTTV</channel>
<channel site="webtv.sk" site_id="hbo" lang="sk" xmltv_id="">HBO</channel>
<channel site="webtv.sk" site_id="hbo_2" lang="sk" xmltv_id="">HBO 2</channel>
<channel site="webtv.sk" site_id="hbo_3" lang="sk" xmltv_id="">HBO 3</channel>
<channel site="webtv.sk" site_id="hgtv" lang="sk" xmltv_id="">HGTV</channel>
<channel site="webtv.sk" site_id="history_2" lang="sk" xmltv_id="">History 2</channel>
<channel site="webtv.sk" site_id="history_channel" lang="sk" xmltv_id="">History Channel</channel>
<channel site="webtv.sk" site_id="hn_tv" lang="sk" xmltv_id="">HN TV</channel>
<channel site="webtv.sk" site_id="infokanal_tango" lang="sk" xmltv_id="">Antik Info TV</channel>
<channel site="webtv.sk" site_id="investigation_discovery" lang="sk" xmltv_id="">ID</channel>
<channel site="webtv.sk" site_id="jim_jam" lang="sk" xmltv_id="">JimJam</channel>
<channel site="webtv.sk" site_id="joj" lang="sk" xmltv_id="">JOJ</channel>
<channel site="webtv.sk" site_id="joj_24" lang="sk" xmltv_id="">JOJ 24</channel>
<channel site="webtv.sk" site_id="joj_cinema" lang="sk" xmltv_id="">JOJ Cinema</channel>
<channel site="webtv.sk" site_id="joj_cinema_plus_jedna" lang="sk" xmltv_id="">JOJ Cinema +1</channel>
<channel site="webtv.sk" site_id="joj_plus" lang="sk" xmltv_id="">JOJ Plus</channel>
<channel site="webtv.sk" site_id="joj_plus_jedna" lang="sk" xmltv_id="">JOJ +1</channel>
<channel site="webtv.sk" site_id="joj_sport" lang="sk" xmltv_id="">JOJ Šport</channel>
<channel site="webtv.sk" site_id="joj_sport_2" lang="sk" xmltv_id="">JOJ Šport 2</channel>
<channel site="webtv.sk" site_id="joj_svet" lang="sk" xmltv_id="">JOJ Svet</channel>
<channel site="webtv.sk" site_id="kino_barrandov" lang="sk" xmltv_id="">Kino Barrandov</channel>
<channel site="webtv.sk" site_id="kitchen" lang="sk" xmltv_id="">Kitchen TV</channel>
<channel site="webtv.sk" site_id="lala_tv" lang="sk" xmltv_id="">LALA TV</channel>
<channel site="webtv.sk" site_id="lang_lab" lang="sk" xmltv_id="">LangLab</channel>
<channel site="webtv.sk" site_id="life_tv" lang="sk" xmltv_id="">Life TV</channel>
<channel site="webtv.sk" site_id="lingo_toons" lang="sk" xmltv_id="">Lingo Toons</channel>
<channel site="webtv.sk" site_id="locall" lang="sk" xmltv_id="">TV LocAll</channel>
<channel site="webtv.sk" site_id="love_nature" lang="sk" xmltv_id="">Love Nature</channel>
<channel site="webtv.sk" site_id="lux" lang="sk" xmltv_id="">TV LUX</channel>
<channel site="webtv.sk" site_id="markiza" lang="sk" xmltv_id="">Markíza</channel>
<channel site="webtv.sk" site_id="markiza_klasik" lang="sk" xmltv_id="">Markíza Klasik</channel>
<channel site="webtv.sk" site_id="markiza_krimi" lang="sk" xmltv_id="">Markíza Krimi</channel>
<channel site="webtv.sk" site_id="markiza_plus_jedna" lang="sk" xmltv_id="">Markíza +1</channel>
<channel site="webtv.sk" site_id="mestska_televizia_trnava" lang="sk" xmltv_id="">Mestská Televízia Trnava</channel>
<channel site="webtv.sk" site_id="mestska_tv_kosice" lang="sk" xmltv_id="">Mestská Tv Košice</channel>
<channel site="webtv.sk" site_id="mestska_tv_partizanske" lang="sk" xmltv_id="">Mestská Televízia Partizánske</channel>
<channel site="webtv.sk" site_id="miestna_tv_trebisov" lang="sk" xmltv_id="">Miestna TV Trebišov</channel>
<channel site="webtv.sk" site_id="minimax" lang="sk" xmltv_id="">Minimax</channel>
<channel site="webtv.sk" site_id="mistral" lang="sk" xmltv_id="">TV Mistral</channel>
<channel site="webtv.sk" site_id="moldava_tv" lang="sk" xmltv_id="">Moldava TV</channel>
<channel site="webtv.sk" site_id="national_geographic_channel_hd" lang="sk" xmltv_id="">National Geographic Channel</channel>
<channel site="webtv.sk" site_id="national_geographic_wild" lang="sk" xmltv_id="">National Geographic Wild</channel>
<channel site="webtv.sk" site_id="nhk_world_hd" lang="sk" xmltv_id="">NHK World Japan</channel>
<channel site="webtv.sk" site_id="nick_jr" lang="sk" xmltv_id="">Nick Jr</channel>
<channel site="webtv.sk" site_id="nickelodeon" lang="sk" xmltv_id="">Nickelodeon</channel>
<channel site="webtv.sk" site_id="nicktoons" lang="sk" xmltv_id="">Nicktoons</channel>
<channel site="webtv.sk" site_id="noe" lang="sk" xmltv_id="">NOE</channel>
<channel site="webtv.sk" site_id="nova_international" lang="sk" xmltv_id="">Nova International</channel>
<channel site="webtv.sk" site_id="nova_sport_1_hd" lang="sk" xmltv_id="">Nova Sport 1</channel>
<channel site="webtv.sk" site_id="nova_sport_2_hd" lang="sk" xmltv_id="">Nova Sport 2</channel>
<channel site="webtv.sk" site_id="nrsr_tv" lang="sk" xmltv_id="">tv NRSR</channel>
<channel site="webtv.sk" site_id="ocko" lang="sk" xmltv_id="">Óčko</channel>
<channel site="webtv.sk" site_id="ocko_black_hd" lang="sk" xmltv_id="">Óčko Black</channel>
<channel site="webtv.sk" site_id="ocko_expres" lang="sk" xmltv_id="">Óčko Expres</channel>
<channel site="webtv.sk" site_id="ocko_star" lang="sk" xmltv_id="">Óčko Star</channel>
<channel site="webtv.sk" site_id="padel_time" lang="sk" xmltv_id="">Padel Time</channel>
<channel site="webtv.sk" site_id="park_tv" lang="sk" xmltv_id="">PARK TV</channel>
<channel site="webtv.sk" site_id="pohoda_rebel" lang="sk" xmltv_id="">Rebel</channel>
<channel site="webtv.sk" site_id="pohoda_relax" lang="sk" xmltv_id="">Relax</channel>
<channel site="webtv.sk" site_id="polar" lang="sk" xmltv_id="">Polar TV</channel>
<channel site="webtv.sk" site_id="prima_cool_sk" lang="sk" xmltv_id="">Prima Cool SK</channel>
<channel site="webtv.sk" site_id="prima_krimi_sk" lang="sk" xmltv_id="">Prima Krimi SK</channel>
<channel site="webtv.sk" site_id="prima_love_sk" lang="sk" xmltv_id="">Prima Love SK</channel>
<channel site="webtv.sk" site_id="prima_news" lang="sk" xmltv_id="">CNN Prima News</channel>
<channel site="webtv.sk" site_id="prima_plus_hd" lang="sk" xmltv_id="">Prima SK</channel>
<channel site="webtv.sk" site_id="rai_tre" lang="sk" xmltv_id="">Rai Tre</channel>
<channel site="webtv.sk" site_id="rai_uno" lang="sk" xmltv_id="">Rai Uno</channel>
<channel site="webtv.sk" site_id="regio_tv" lang="sk" xmltv_id="">Régió TV</channel>
<channel site="webtv.sk" site_id="regionalni_televize" lang="sk" xmltv_id="">A11</channel>
<channel site="webtv.sk" site_id="retro_music_television" lang="sk" xmltv_id="">Retro Music Television</channel>
<channel site="webtv.sk" site_id="ric_tv" lang="sk" xmltv_id="">RiK TV</channel>
<channel site="webtv.sk" site_id="rik" lang="sk" xmltv_id="">Jojko</channel>
<channel site="webtv.sk" site_id="rvtv" lang="sk" xmltv_id="">RVTV</channel>
<channel site="webtv.sk" site_id="senzi" lang="sk" xmltv_id="">Senzi</channel>
<channel site="webtv.sk" site_id="seznam_tv" lang="sk" xmltv_id="">Seznam.cz TV</channel>
<channel site="webtv.sk" site_id="skvele" lang="sk" xmltv_id="">Skvelé TV</channel>
<channel site="webtv.sk" site_id="sky_news" lang="sk" xmltv_id="">Sky News</channel>
<channel site="webtv.sk" site_id="slager_premium" lang="sk" xmltv_id="">PREMIUM</channel>
<channel site="webtv.sk" site_id="slagr_2" lang="sk" xmltv_id="">Šláger Muzika</channel>
<channel site="webtv.sk" site_id="slagr_tv" lang="sk" xmltv_id="">Šláger Originál</channel>
<channel site="webtv.sk" site_id="spektrum" lang="sk" xmltv_id="">Spektrum</channel>
<channel site="webtv.sk" site_id="spektrum_home" lang="sk" xmltv_id="">Spektrum Home</channel>
<channel site="webtv.sk" site_id="sport_1" lang="sk" xmltv_id="">Sport 1</channel>
<channel site="webtv.sk" site_id="sport_2" lang="sk" xmltv_id="">Sport 2</channel>
<channel site="webtv.sk" site_id="stingray_iconcerts" lang="sk" xmltv_id="">STINGRAY iConcerts</channel>
<channel site="webtv.sk" site_id="stv_1" lang="sk" xmltv_id="">Jednotka</channel>
<channel site="webtv.sk" site_id="stv_2" lang="sk" xmltv_id="">Dvojka</channel>
<channel site="webtv.sk" site_id="stv_3" lang="sk" xmltv_id="">:24</channel>
<channel site="webtv.sk" site_id="stv_sport" lang="sk" xmltv_id="">:Šport</channel>
<channel site="webtv.sk" site_id="super_yacht_tv" lang="sk" xmltv_id="">SuperYacht TV</channel>
<channel site="webtv.sk" site_id="ta_3" lang="sk" xmltv_id="">TA3</channel>
<channel site="webtv.sk" site_id="tanecnesutaze" lang="sk" xmltv_id="">Tanečné súťaže</channel>
<channel site="webtv.sk" site_id="tlc" lang="sk" xmltv_id="">TLC</channel>
<channel site="webtv.sk" site_id="travel_channel_hd" lang="sk" xmltv_id="">Travel Channel</channel>
<channel site="webtv.sk" site_id="trt_world" lang="sk" xmltv_id="">TRT World</channel>
<channel site="webtv.sk" site_id="turbo_tv" lang="sk" xmltv_id="">Turbo TV</channel>
<channel site="webtv.sk" site_id="tv7" lang="sk" xmltv_id="">TV7</channel>
<channel site="webtv.sk" site_id="tv9" lang="sk" xmltv_id="">TV 9</channel>
<channel site="webtv.sk" site_id="tv_8" lang="sk" xmltv_id="">TV8</channel>
<channel site="webtv.sk" site_id="tv_bratislava" lang="sk" xmltv_id="">TV Bratislava</channel>
<channel site="webtv.sk" site_id="tv_nitricka" lang="sk" xmltv_id="">TV Nitrička</channel>
<channel site="webtv.sk" site_id="tv_nove_zamky" lang="sk" xmltv_id="">TV Nové Zámky</channel>
<channel site="webtv.sk" site_id="tv_panorama" lang="sk" xmltv_id="">TV Panoráma</channel>
<channel site="webtv.sk" site_id="tv_paprika" lang="sk" xmltv_id="">TV Paprika</channel>
<channel site="webtv.sk" site_id="tv_pianko" lang="sk" xmltv_id="">TV Piánko</channel>
<channel site="webtv.sk" site_id="tv_poprad" lang="sk" xmltv_id="">TV Poprad</channel>
<channel site="webtv.sk" site_id="tv_povazie" lang="sk" xmltv_id="">TV Považie</channel>
<channel site="webtv.sk" site_id="tv_raj" lang="sk" xmltv_id="">TV RAJ</channel>
<channel site="webtv.sk" site_id="tv_reduta" lang="sk" xmltv_id="">TV Reduta</channel>
<channel site="webtv.sk" site_id="tv_romana" lang="sk" xmltv_id="">TV Romana</channel>
<channel site="webtv.sk" site_id="tv_ruzinov" lang="sk" xmltv_id="">TV Ružinov</channel>
<channel site="webtv.sk" site_id="tv_sen" lang="sk" xmltv_id="">TV SEN</channel>
<channel site="webtv.sk" site_id="tv_severka" lang="sk" xmltv_id="">TV Kežmarok</channel>
<channel site="webtv.sk" site_id="tv_vega" lang="sk" xmltv_id="">Tv Vega</channel>
<channel site="webtv.sk" site_id="tv_vita" lang="sk" xmltv_id="">Godzone TV</channel>
<channel site="webtv.sk" site_id="tv_zemplin" lang="sk" xmltv_id="">TV Zemplín</channel>
<channel site="webtv.sk" site_id="tvp_info" lang="sk" xmltv_id="">TVP Info</channel>
<channel site="webtv.sk" site_id="tvp_polonia" lang="sk" xmltv_id="">TVP Polonia</channel>
<channel site="webtv.sk" site_id="tvp_world" lang="sk" xmltv_id="">TVP World</channel>
<channel site="webtv.sk" site_id="ua_tv" lang="sk" xmltv_id="">UA TV</channel>
<channel site="webtv.sk" site_id="up_network" lang="sk" xmltv_id="">Kanal1</channel>
<channel site="webtv.sk" site_id="wau" lang="sk" xmltv_id="">WAU</channel>
<channel site="webtv.sk" site_id="zstv" lang="sk" xmltv_id="">Televízia Slovensko</channel>
</channels>
+74
View File
@@ -0,0 +1,74 @@
const axios = require('axios')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
module.exports = {
site: 'webtv.sk',
days: 2,
delay: 1000,
url: 'https://api.webtv.sk/epg/channel',
request: {
method: 'POST',
headers: {
'content-type': 'application/json'
},
data({ channel, date }) {
return {
channel_id: channel.site_id,
date: dayjs.utc(date).toJSON()
}
}
},
parser({ content }) {
return parseItems(content).map(item => {
return {
title: item.Title,
subtitle: item.Subtitle,
description: item.Description,
categories: item.Genres,
start: dayjs(item.Start),
stop: dayjs(item.Stop)
}
})
},
async channels() {
const data = await axios
.post(
'https://api.webtv.sk/channels',
{ type: 'TV', channels_content: null },
{
headers: {
'content-type': 'application/json'
}
}
)
.then(r => r.data)
.catch(console.error)
let channels = []
for (const site_id in data.data) {
const channel = data.data[site_id]
channels.push({
site_id,
name: channel.name,
lang: 'sk'
})
}
return channels
}
}
function parseItems(content) {
try {
const data = JSON.parse(content)
if (!data || !Array.isArray(data.content)) return []
return data.content
} catch {
return []
}
}
+68
View File
@@ -0,0 +1,68 @@
const { parser, url, request } = require('./webtv.sk.config.js')
const fs = require('fs')
const path = require('path')
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('2026-02-17', 'YYYY-MM-DD').startOf('d')
const channel = { site_id: 'golf_channel' }
it('can generate valid url', () => {
expect(url).toBe('https://api.webtv.sk/epg/channel')
})
it('can generate valid request method', () => {
expect(request.method).toBe('POST')
})
it('can generate valid request headers', () => {
expect(request.headers).toMatchObject({
'content-type': 'application/json'
})
})
it('can generate valid request data', () => {
expect(request.data({ channel, date })).toMatchObject({
channel_id: 'golf_channel',
date: '2026-02-17T00:00:00.000Z'
})
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const results = parser({ content }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(results.length).toBe(12)
expect(results[0]).toMatchObject({
title: 'Qatar Masters',
subtitle: '',
description: 'Finálové kolo turnaje DP World Tour. Doha, Qatar., (šport)',
categories: ['šport'],
start: '2026-02-16T23:00:00.000Z',
stop: '2026-02-17T04:00:00.000Z'
})
expect(results[11]).toMatchObject({
title: 'The Golf Fix',
subtitle: '',
description:
'Jak v golfu pracovat se spinem. Spin neboli zpětná rotace míčku je jedním z nejdůležitějších faktorů v golfu. Jak s ním pracovat a jak ho mít pod kontrolou vás v dalším pokračování pořadu Golf Fix naučí Devan Bonebrake.., (šport)',
categories: ['šport'],
start: '2026-02-17T22:30:00.000Z',
stop: '2026-02-17T23:00:00.000Z'
})
})
it('can handle empty guide', () => {
const results = parser({ content: '' })
expect(results).toMatchObject([])
})
@@ -0,0 +1,13 @@
# Guides
<table>
<thead>
<tr><th align="left">Host</th><th align="left">Status</th><th align="left">Channels</th><th align="left">Last Updated</th><th align="left">Links</th></tr>
</thead>
<tbody>
<tr><td>example.com</td><td align="center">🔴</td><td align="right">0</td><td align="left">-</td><td></td></tr>
<tr><td>worker-9dd4.onrender.com</td><td align="center">🟢</td><td align="right">1</td><td align="left">a day ago</td><td><a href="https://worker-9dd4.onrender.com/channels.xml">channels.xml</a><br><a href="https://worker-9dd4.onrender.com/guide.xml">guide.xml</a></td></tr>
</tbody>
</table>
[How can I add my server to the list?](CONTRIBUTING.md#how-to-add-my-server-to-the-guides-md)
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="antennaeurope.gr" site_id="#" lang="el" xmltv_id="ANT1Europe.gr@SD">ANT1 Europe</channel>
</channels>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?><tv date="20260212">
<channel id="ANT1Europe.gr@SD"><display-name>ANT1 Europe</display-name><icon src="https://i.imgur.com/DTfwJGM.png"/><url>https://antennaeurope.gr</url></channel>
<programme start="20260212040000 +0000" stop="20260212070000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΚΑΛΗΜΕΡΑ ΕΛΛΑΔΑ</title></programme>
<programme start="20260212070000 +0000" stop="20260212103000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΤΟ ΠΡΩΙΝΟ</title></programme>
<programme start="20260212103000 +0000" stop="20260212113000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ANT1 NEWS</title></programme>
<programme start="20260212113000 +0000" stop="20260212141500 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΑΠΟΚΑΛΥΨΕΙΣ</title></programme>
<programme start="20260212141500 +0000" stop="20260212153000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΡΟΥΚ ΖΟΥΚ</title></programme>
<programme start="20260212153000 +0000" stop="20260212164500 +0000" channel="ANT1Europe.gr@SD"><title lang="el">5 X 5</title></programme>
<programme start="20260212164500 +0000" stop="20260212180000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ANT1 NEWS</title></programme>
<programme start="20260212180000 +0000" stop="20260212190000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΠΟΙΟΣ ΘΕΛΕΙ ΝΑ ΓΙΝΕΙ ΕΚΑΤΟΜΜΥΡΙΟΥΧΟΣ</title></programme>
<programme start="20260212190000 +0000" stop="20260212200000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">GRAND HOTEL</title></programme>
<programme start="20260212200000 +0000" stop="20260212210000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΓΙΑΤΙ ΡΕ ΠΑΤΕΡΑ ;</title></programme>
<programme start="20260212210000 +0000" stop="20260212220000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">THE ROADSHOW - BEST OF</title></programme>
<programme start="20260212220000 +0000" stop="20260213000000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΕΝΩΠΙΟΣ ΕΝΩΠΙΩ</title></programme>
<programme start="20260213000000 +0000" stop="20260213010000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">5 X 5</title></programme>
<programme start="20260213010000 +0000" stop="20260213013000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΤΟ ΠΡΩΙΝΟ</title></programme>
<programme start="20260213040000 +0000" stop="20260213070000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΚΑΛΗΜΕΡΑ ΕΛΛΑΔΑ</title></programme>
<programme start="20260213070000 +0000" stop="20260213103000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΤΟ ΠΡΩΙΝΟ</title></programme>
<programme start="20260213103000 +0000" stop="20260213113000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ANT1 NEWS</title></programme>
<programme start="20260213113000 +0000" stop="20260213141500 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΑΠΟΚΑΛΥΨΕΙΣ</title></programme>
<programme start="20260213141500 +0000" stop="20260213153000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΡΟΥΚ ΖΟΥΚ</title></programme>
<programme start="20260213153000 +0000" stop="20260213164500 +0000" channel="ANT1Europe.gr@SD"><title lang="el">5 X 5</title></programme>
<programme start="20260213164500 +0000" stop="20260213180000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ANT1 NEWS</title></programme>
<programme start="20260213180000 +0000" stop="20260213190000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΠΟΙΟΣ ΘΕΛΕΙ ΝΑ ΓΙΝΕΙ ΕΚΑΤΟΜΜΥΡΙΟΥΧΟΣ</title></programme>
<programme start="20260213190000 +0000" stop="20260213200000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">DON&apos;T FORGET THE LYRICS</title></programme>
<programme start="20260213200000 +0000" stop="20260213220000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">VIΠ</title></programme>
<programme start="20260213220000 +0000" stop="20260214000000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΠΕΦΤΕΙ Η ΝΥΧΤΑ ΜΕ... ΡΥΘΜΟ</title></programme>
<programme start="20260214000000 +0000" stop="20260214010000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">5 X 5</title></programme>
<programme start="20260214010000 +0000" stop="20260214013000 +0000" channel="ANT1Europe.gr@SD"><title lang="el">ΤΟ ΠΡΩΙΝΟ</title></programme>
</tv>
@@ -0,0 +1,4 @@
{
"channels": "channels.xml",
"guide": "guide.xml"
}
@@ -0,0 +1,2 @@
example.com
worker-9dd4.onrender.com
+29
View File
@@ -0,0 +1,29 @@
import { execSync } from 'child_process'
import { pathToFileURL } from 'node:url'
import fs from 'fs-extra'
const ENV_VAR = 'cross-env ROOT_DIR=tests/__data__/output'
beforeEach(() => {
fs.emptyDirSync('tests/__data__/output')
fs.copySync('tests/__data__/input/guides_update/workers.txt', 'tests/__data__/output/workers.txt')
})
it('can update GUIDES.md', () => {
const cmd = `${ENV_VAR} npm run guides:update`
const stdout = execSync(cmd, { encoding: 'utf8' })
if (process.env.DEBUG === 'true') console.log(cmd, stdout)
expect(content('tests/__data__/output/GUIDES.md')).toEqual(
content('tests/__data__/expected/guides_update/GUIDES.md')
)
})
function content(filepath: string) {
const data = fs.readFileSync(pathToFileURL(filepath), {
encoding: 'utf8'
})
return JSON.stringify(data)
}
+1
View File
@@ -0,0 +1 @@
worker-9dd4.onrender.com