Merge branch 'master' into pr/14244

This commit is contained in:
freearhey 2023-09-17 23:11:34 +03:00
commit a63f30db54
133 changed files with 941 additions and 1350 deletions

62
.github/workflows/format.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: format
on:
workflow_dispatch:
# pull_request:
# types:
# - closed
jobs:
main:
# if: ${{ github.event.pull_request.merged == true }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- uses: getsentry/action-github-app-token@v2
if: ${{ !env.ACT }}
id: create-app-token
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: actions/checkout@v3
if: ${{ !env.ACT }}
with:
fetch-depth: 2
token: ${{ steps.create-app-token.outputs.token }}
- name: setup git
run: |
git config user.name "iptv-bot[bot]"
git config user.email "84861620+iptv-bot[bot]@users.noreply.github.com"
- uses: tj-actions/changed-files@v35
id: files
with:
files: streams/*.m3u
- name: download data from api
run: |
mkdir -p temp/data
curl -L -o temp/data/blocklist.json https://iptv-org.github.io/api/blocklist.json
curl -L -o temp/data/channels.json https://iptv-org.github.io/api/channels.json
- uses: actions/setup-node@v3
if: ${{ !env.ACT }}
with:
node-version: 18
cache: 'npm'
- name: install dependencies
run: npm install
- name: format internal playlists
run: npm run playlist:format
- name: check internal playlists
run: |
npm run playlist:lint
npm run playlist:validate
- run: git status
- name: commit changes to /streams
run: |
git add streams
git status
git commit -m "[Bot] Format /streams" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [format](https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }}) workflow." --no-verify
- name: push all changes to the repository
if: ${{ !env.ACT && github.ref == 'refs/heads/master' }}
run: git push

View file

@ -6,11 +6,9 @@ on:
jobs: jobs:
main: main:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: write
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: getsentry/action-github-app-token@v2 - uses: tibdex/github-app-token@v2
if: ${{ !env.ACT }} if: ${{ !env.ACT }}
id: create-app-token id: create-app-token
with: with:
@ -33,8 +31,6 @@ jobs:
run: npm install run: npm install
- name: load api data - name: load api data
run: npm run api:load run: npm run api:load
- name: setup database
run: npm run db:create
- name: update internal playlists - name: update internal playlists
run: npm run playlist:update --silent >> $GITHUB_OUTPUT run: npm run playlist:update --silent >> $GITHUB_OUTPUT
id: playlist-update id: playlist-update

View file

@ -123,21 +123,22 @@ For scripts to work, you must have [Node.js](https://nodejs.org/en) installed on
To run scripts use the `npm run <script-name>` command. To run scripts use the `npm run <script-name>` command.
- `act:check`: allows to run the [check](https://github.com/iptv-org/iptv/blob/master/.github/workflows/check.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). - `act:check`: allows to run the [check](https://github.com/iptv-org/iptv/blob/master/.github/workflows/check.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act).
- `act:format`: allows to test the [format](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act).
- `act:update`: allows to test the [update](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). - `act:update`: allows to test the [update](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act).
- `api:load`: downloads the latest channel and stream data from the [iptv-org/api](https://github.com/iptv-org/api). - `api:load`: downloads the latest channel and stream data from the [iptv-org/api](https://github.com/iptv-org/api).
- `api:generate`: generates a JSON file with all streams for the [iptv-org/api](https://github.com/iptv-org/api) repository. - `api:generate`: generates a JSON file with all streams for the [iptv-org/api](https://github.com/iptv-org/api) repository.
- `api:deploy`: allows to manually upload a JSON file created via `api:generate` to the [iptv-org/api](https://github.com/iptv-org/api) repository. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository. - `api:deploy`: allows to manually upload a JSON file created via `api:generate` to the [iptv-org/api](https://github.com/iptv-org/api) repository. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository.
- `db:create`: сreates a temporary file `temp/database/streams.db` containing all links from the [/streams]() folder. - `playlist:format`: formats internal playlists. The process includes [URL normalization](https://en.wikipedia.org/wiki/URI_normalization), duplicate removal, removing invalid id's and sorting links by channel name, quality, and label.
- `playlist:update`: triggers an update of internal playlists. The process involves processing approved requests from issues, URL normalization, and sorting links by channel name, quality, and label. - `playlist:update`: triggers an update of internal playlists. The process involves processing approved requests from issues.
- `playlist:generate`: generates all public playlists.
- `playlist:validate`: сhecks ids and links in internal playlists for errors. - `playlist:validate`: сhecks ids and links in internal playlists for errors.
- `playlist:lint`: сhecks internal playlists for syntax errors. - `playlist:lint`: сhecks internal playlists for syntax errors.
- `playlist:generate`: generates all public playlists.
- `playlist:deploy`: allows to manually publish all generated via `playlist:generate` playlists. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository. - `playlist:deploy`: allows to manually publish all generated via `playlist:generate` playlists. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository.
- `readme:update`: updates the list of playlists in [README.md](README.md). - `readme:update`: updates the list of playlists in [README.md](README.md).
- `report:create`: shows a list of all current requests and their status. - `report:create`: shows a list of all current requests and their status.
- `format`: (shorthand) sequentially runs the `db:create` and `db:create` commands. - `format`: (shorthand) sequentially runs the `api:load` and `playlist:format` commands.
- `check`: (shorthand) sequentially runs the `api:load`, `playlist:lint` and `playlist:validate` commands. - `check`: (shorthand) sequentially runs the `api:load`, `playlist:lint` and `playlist:validate` commands.
- `update`: (shorthand) sequentially runs the `api:load`, `db:create`, `playlist:generate`, `api:generate` and `readme:update` commands. - `update`: (shorthand) sequentially runs the `api:load`, `playlist:generate`, `api:generate` and `readme:update` commands.
- `deploy`: (shorthand) sequentially runs the `playlist:deploy` and `api:deploy` commands. - `deploy`: (shorthand) sequentially runs the `playlist:deploy` and `api:deploy` commands.
- `report`: (shorthand) sequentially runs the `api:load` and `report:create` commands. - `report`: (shorthand) sequentially runs the `api:load` and `report:create` commands.
- `test`: runs a test of all the scripts described above. - `test`: runs a test of all the scripts described above.
@ -148,5 +149,6 @@ To automate the run of the scripts described above, we use the [GitHub Actions w
Each workflow includes its own set of scripts that can be run either manually or in response to an event. Each workflow includes its own set of scripts that can be run either manually or in response to an event.
- `check`: sequentially runs the `playlist:check` and `playlist:validate` scripts when a new pull request appears, and blocks the merge if it detects an error in it. - `check`: sequentially runs the `api:load`, `playlist:check` and `playlist:validate` scripts when a new pull request appears, and blocks the merge if it detects an error in it.
- `update`: every day at 0:00 UTC sequentially runs `api:load`, `db:create`, `playlist:update`, `playlist:lint`, `playlist:validate`, `playlist:generate`, `api:generate` and `readme:update` scripts and deploys the output files if successful. - `format`: sequentially runs `api:load`, `playlist:format`, `playlist:lint` and `playlist:validate` scripts.
- `update`: every day at 0:00 UTC sequentially runs `api:load`, `playlist:update`, `playlist:lint`, `playlist:validate`, `playlist:generate`, `api:generate` and `readme:update` scripts and deploys the output files if successful.

240
README.md
View file

@ -59,35 +59,35 @@ Same thing, but split up into separate files:
<tr><th align="left">Category</th><th align="left">Channels</th><th align="left">Playlist</th></tr> <tr><th align="left">Category</th><th align="left">Channels</th><th align="left">Playlist</th></tr>
</thead> </thead>
<tbody> <tbody>
<tr><td>Auto</td><td align="right">15</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/auto.m3u</code></td></tr>
<tr><td>Animation</td><td align="right">50</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/animation.m3u</code></td></tr> <tr><td>Animation</td><td align="right">50</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/animation.m3u</code></td></tr>
<tr><td>Auto</td><td align="right">15</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/auto.m3u</code></td></tr>
<tr><td>Business</td><td align="right">57</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/business.m3u</code></td></tr> <tr><td>Business</td><td align="right">57</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/business.m3u</code></td></tr>
<tr><td>Classic</td><td align="right">55</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/classic.m3u</code></td></tr> <tr><td>Classic</td><td align="right">55</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/classic.m3u</code></td></tr>
<tr><td>Comedy</td><td align="right">57</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/comedy.m3u</code></td></tr> <tr><td>Comedy</td><td align="right">57</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/comedy.m3u</code></td></tr>
<tr><td>Cooking</td><td align="right">23</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/cooking.m3u</code></td></tr> <tr><td>Cooking</td><td align="right">23</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/cooking.m3u</code></td></tr>
<tr><td>Culture</td><td align="right">76</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/culture.m3u</code></td></tr> <tr><td>Culture</td><td align="right">79</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/culture.m3u</code></td></tr>
<tr><td>Documentary</td><td align="right">64</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/documentary.m3u</code></td></tr> <tr><td>Documentary</td><td align="right">64</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/documentary.m3u</code></td></tr>
<tr><td>Education</td><td align="right">116</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/education.m3u</code></td></tr> <tr><td>Education</td><td align="right">116</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/education.m3u</code></td></tr>
<tr><td>Entertainment</td><td align="right">354</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/entertainment.m3u</code></td></tr> <tr><td>Entertainment</td><td align="right">356</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/entertainment.m3u</code></td></tr>
<tr><td>Family</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/family.m3u</code></td></tr> <tr><td>Family</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/family.m3u</code></td></tr>
<tr><td>General</td><td align="right">1101</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/general.m3u</code></td></tr> <tr><td>General</td><td align="right">1123</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/general.m3u</code></td></tr>
<tr><td>Kids</td><td align="right">182</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/kids.m3u</code></td></tr> <tr><td>Kids</td><td align="right">182</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/kids.m3u</code></td></tr>
<tr><td>Legislative</td><td align="right">166</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/legislative.m3u</code></td></tr> <tr><td>Legislative</td><td align="right">167</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/legislative.m3u</code></td></tr>
<tr><td>Lifestyle</td><td align="right">79</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/lifestyle.m3u</code></td></tr> <tr><td>Lifestyle</td><td align="right">79</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/lifestyle.m3u</code></td></tr>
<tr><td>Movies</td><td align="right">274</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/movies.m3u</code></td></tr> <tr><td>Movies</td><td align="right">275</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/movies.m3u</code></td></tr>
<tr><td>Music</td><td align="right">483</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/music.m3u</code></td></tr> <tr><td>Music</td><td align="right">486</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/music.m3u</code></td></tr>
<tr><td>News</td><td align="right">705</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/news.m3u</code></td></tr> <tr><td>News</td><td align="right">707</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/news.m3u</code></td></tr>
<tr><td>Outdoor</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/outdoor.m3u</code></td></tr> <tr><td>Outdoor</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/outdoor.m3u</code></td></tr>
<tr><td>Relax</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/relax.m3u</code></td></tr> <tr><td>Relax</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/relax.m3u</code></td></tr>
<tr><td>Religious</td><td align="right">438</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/religious.m3u</code></td></tr> <tr><td>Religious</td><td align="right">441</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/religious.m3u</code></td></tr>
<tr><td>Series</td><td align="right">160</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/series.m3u</code></td></tr>
<tr><td>Science</td><td align="right">25</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/science.m3u</code></td></tr> <tr><td>Science</td><td align="right">25</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/science.m3u</code></td></tr>
<tr><td>Series</td><td align="right">160</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/series.m3u</code></td></tr>
<tr><td>Shop</td><td align="right">74</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/shop.m3u</code></td></tr> <tr><td>Shop</td><td align="right">74</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/shop.m3u</code></td></tr>
<tr><td>Sports</td><td align="right">205</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/sports.m3u</code></td></tr> <tr><td>Sports</td><td align="right">207</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/sports.m3u</code></td></tr>
<tr><td>Travel</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/travel.m3u</code></td></tr> <tr><td>Travel</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/travel.m3u</code></td></tr>
<tr><td>Weather</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/weather.m3u</code></td></tr> <tr><td>Weather</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/weather.m3u</code></td></tr>
<tr><td>XXX</td><td align="right">46</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/xxx.m3u</code></td></tr> <tr><td>XXX</td><td align="right">46</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/xxx.m3u</code></td></tr>
<tr><td>Undefined</td><td align="right">5262</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/undefined.m3u</code></td></tr> <tr><td>Undefined</td><td align="right">5263</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/undefined.m3u</code></td></tr>
</tbody> </tbody>
</table> </table>
@ -118,7 +118,7 @@ Same thing, but split up into separate files:
<tr><td align="left">Albanian</td><td align="right">58</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/sqi.m3u</code></td></tr> <tr><td align="left">Albanian</td><td align="right">58</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/sqi.m3u</code></td></tr>
<tr><td align="left">Alemannic</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/gsw.m3u</code></td></tr> <tr><td align="left">Alemannic</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/gsw.m3u</code></td></tr>
<tr><td align="left">Amharic</td><td align="right">5</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/amh.m3u</code></td></tr> <tr><td align="left">Amharic</td><td align="right">5</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/amh.m3u</code></td></tr>
<tr><td align="left">Arabic</td><td align="right">379</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ara.m3u</code></td></tr> <tr><td align="left">Arabic</td><td align="right">380</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ara.m3u</code></td></tr>
<tr><td align="left">Armenian</td><td align="right">29</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hye.m3u</code></td></tr> <tr><td align="left">Armenian</td><td align="right">29</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hye.m3u</code></td></tr>
<tr><td align="left">Assamese</td><td align="right">7</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/asm.m3u</code></td></tr> <tr><td align="left">Assamese</td><td align="right">7</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/asm.m3u</code></td></tr>
<tr><td align="left">Assyrian Neo-Aramaic</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/aii.m3u</code></td></tr> <tr><td align="left">Assyrian Neo-Aramaic</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/aii.m3u</code></td></tr>
@ -142,28 +142,28 @@ Same thing, but split up into separate files:
<tr><td align="left">Dholuo</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/luo.m3u</code></td></tr> <tr><td align="left">Dholuo</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/luo.m3u</code></td></tr>
<tr><td align="left">Dimili</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/zza.m3u</code></td></tr> <tr><td align="left">Dimili</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/zza.m3u</code></td></tr>
<tr><td align="left">Dutch</td><td align="right">191</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/nld.m3u</code></td></tr> <tr><td align="left">Dutch</td><td align="right">191</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/nld.m3u</code></td></tr>
<tr><td align="left">English</td><td align="right">2177</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/eng.m3u</code></td></tr> <tr><td align="left">English</td><td align="right">2181</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/eng.m3u</code></td></tr>
<tr><td align="left">Estonian</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/est.m3u</code></td></tr> <tr><td align="left">Estonian</td><td align="right">9</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/est.m3u</code></td></tr>
<tr><td align="left">Ewe</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ewe.m3u</code></td></tr> <tr><td align="left">Ewe</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ewe.m3u</code></td></tr>
<tr><td align="left">Faroese</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fao.m3u</code></td></tr> <tr><td align="left">Faroese</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fao.m3u</code></td></tr>
<tr><td align="left">Fataleka</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/far.m3u</code></td></tr> <tr><td align="left">Fataleka</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/far.m3u</code></td></tr>
<tr><td align="left">Filipino</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fil.m3u</code></td></tr> <tr><td align="left">Filipino</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fil.m3u</code></td></tr>
<tr><td align="left">Finnish</td><td align="right">25</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fin.m3u</code></td></tr> <tr><td align="left">Finnish</td><td align="right">25</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fin.m3u</code></td></tr>
<tr><td align="left">French</td><td align="right">364</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fra.m3u</code></td></tr> <tr><td align="left">French</td><td align="right">378</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fra.m3u</code></td></tr>
<tr><td align="left">Galician</td><td align="right">12</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/glg.m3u</code></td></tr> <tr><td align="left">Galician</td><td align="right">12</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/glg.m3u</code></td></tr>
<tr><td align="left">Galolen</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/gal.m3u</code></td></tr> <tr><td align="left">Galolen</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/gal.m3u</code></td></tr>
<tr><td align="left">Georgian</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kat.m3u</code></td></tr> <tr><td align="left">Georgian</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kat.m3u</code></td></tr>
<tr><td align="left">German</td><td align="right">281</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/deu.m3u</code></td></tr> <tr><td align="left">German</td><td align="right">281</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/deu.m3u</code></td></tr>
<tr><td align="left">Gikuyu</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kik.m3u</code></td></tr> <tr><td align="left">Gikuyu</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kik.m3u</code></td></tr>
<tr><td align="left">Goan Konkani</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/gom.m3u</code></td></tr> <tr><td align="left">Goan Konkani</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/gom.m3u</code></td></tr>
<tr><td align="left">Greek</td><td align="right">124</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ell.m3u</code></td></tr> <tr><td align="left">Greek</td><td align="right">125</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ell.m3u</code></td></tr>
<tr><td align="left">Greenlandic</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kal.m3u</code></td></tr> <tr><td align="left">Greenlandic</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kal.m3u</code></td></tr>
<tr><td align="left">Gujarati</td><td align="right">10</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/guj.m3u</code></td></tr> <tr><td align="left">Gujarati</td><td align="right">10</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/guj.m3u</code></td></tr>
<tr><td align="left">Haitian</td><td align="right">5</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hat.m3u</code></td></tr> <tr><td align="left">Haitian</td><td align="right">5</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hat.m3u</code></td></tr>
<tr><td align="left">Hausa</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hau.m3u</code></td></tr> <tr><td align="left">Hausa</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hau.m3u</code></td></tr>
<tr><td align="left">Hebrew</td><td align="right">13</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/heb.m3u</code></td></tr> <tr><td align="left">Hebrew</td><td align="right">13</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/heb.m3u</code></td></tr>
<tr><td align="left">Hindi</td><td align="right">163</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hin.m3u</code></td></tr> <tr><td align="left">Hindi</td><td align="right">163</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hin.m3u</code></td></tr>
<tr><td align="left">Hungarian</td><td align="right">111</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hun.m3u</code></td></tr> <tr><td align="left">Hungarian</td><td align="right">112</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hun.m3u</code></td></tr>
<tr><td align="left">Icelandic</td><td align="right">5</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/isl.m3u</code></td></tr> <tr><td align="left">Icelandic</td><td align="right">5</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/isl.m3u</code></td></tr>
<tr><td align="left">Indonesian</td><td align="right">182</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ind.m3u</code></td></tr> <tr><td align="left">Indonesian</td><td align="right">182</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ind.m3u</code></td></tr>
<tr><td align="left">Inuktitut</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/iku.m3u</code></td></tr> <tr><td align="left">Inuktitut</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/iku.m3u</code></td></tr>
@ -178,11 +178,11 @@ Same thing, but split up into separate files:
<tr><td align="left">Kirghiz</td><td align="right">7</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kir.m3u</code></td></tr> <tr><td align="left">Kirghiz</td><td align="right">7</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kir.m3u</code></td></tr>
<tr><td align="left">Konkani (macrolanguage)</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kok.m3u</code></td></tr> <tr><td align="left">Konkani (macrolanguage)</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kok.m3u</code></td></tr>
<tr><td align="left">Korean</td><td align="right">112</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kor.m3u</code></td></tr> <tr><td align="left">Korean</td><td align="right">112</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kor.m3u</code></td></tr>
<tr><td align="left">Kurdish</td><td align="right">23</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kur.m3u</code></td></tr> <tr><td align="left">Kurdish</td><td align="right">24</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/kur.m3u</code></td></tr>
<tr><td align="left">Lahnda</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lah.m3u</code></td></tr> <tr><td align="left">Lahnda</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lah.m3u</code></td></tr>
<tr><td align="left">Lao</td><td align="right">9</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lao.m3u</code></td></tr> <tr><td align="left">Lao</td><td align="right">9</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lao.m3u</code></td></tr>
<tr><td align="left">Latin</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lat.m3u</code></td></tr> <tr><td align="left">Latin</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lat.m3u</code></td></tr>
<tr><td align="left">Latvian</td><td align="right">9</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lav.m3u</code></td></tr> <tr><td align="left">Latvian</td><td align="right">10</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lav.m3u</code></td></tr>
<tr><td align="left">Letzeburgesch</td><td align="right">3</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ltz.m3u</code></td></tr> <tr><td align="left">Letzeburgesch</td><td align="right">3</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ltz.m3u</code></td></tr>
<tr><td align="left">Lithuanian</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lit.m3u</code></td></tr> <tr><td align="left">Lithuanian</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/lit.m3u</code></td></tr>
<tr><td align="left">Macedonian</td><td align="right">34</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/mkd.m3u</code></td></tr> <tr><td align="left">Macedonian</td><td align="right">34</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/mkd.m3u</code></td></tr>
@ -203,11 +203,11 @@ Same thing, but split up into separate files:
<tr><td align="left">Parsi-Dari</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/prd.m3u</code></td></tr> <tr><td align="left">Parsi-Dari</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/prd.m3u</code></td></tr>
<tr><td align="left">Pashto</td><td align="right">18</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/pus.m3u</code></td></tr> <tr><td align="left">Pashto</td><td align="right">18</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/pus.m3u</code></td></tr>
<tr><td align="left">Persian</td><td align="right">135</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fas.m3u</code></td></tr> <tr><td align="left">Persian</td><td align="right">135</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/fas.m3u</code></td></tr>
<tr><td align="left">Polish</td><td align="right">53</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/pol.m3u</code></td></tr> <tr><td align="left">Polish</td><td align="right">54</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/pol.m3u</code></td></tr>
<tr><td align="left">Portuguese</td><td align="right">363</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/por.m3u</code></td></tr> <tr><td align="left">Portuguese</td><td align="right">364</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/por.m3u</code></td></tr>
<tr><td align="left">Romanian</td><td align="right">117</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ron.m3u</code></td></tr> <tr><td align="left">Romanian</td><td align="right">117</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ron.m3u</code></td></tr>
<tr><td align="left">Romany</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/rom.m3u</code></td></tr> <tr><td align="left">Romany</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/rom.m3u</code></td></tr>
<tr><td align="left">Russian</td><td align="right">301</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/rus.m3u</code></td></tr> <tr><td align="left">Russian</td><td align="right">302</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/rus.m3u</code></td></tr>
<tr><td align="left">Saint Lucian Creole French</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/acf.m3u</code></td></tr> <tr><td align="left">Saint Lucian Creole French</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/acf.m3u</code></td></tr>
<tr><td align="left">Santali</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/sat.m3u</code></td></tr> <tr><td align="left">Santali</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/sat.m3u</code></td></tr>
<tr><td align="left">Serbian</td><td align="right">82</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/srp.m3u</code></td></tr> <tr><td align="left">Serbian</td><td align="right">82</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/srp.m3u</code></td></tr>
@ -217,12 +217,12 @@ Same thing, but split up into separate files:
<tr><td align="left">Slovak</td><td align="right">44</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/slk.m3u</code></td></tr> <tr><td align="left">Slovak</td><td align="right">44</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/slk.m3u</code></td></tr>
<tr><td align="left">Slovenian</td><td align="right">16</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/slv.m3u</code></td></tr> <tr><td align="left">Slovenian</td><td align="right">16</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/slv.m3u</code></td></tr>
<tr><td align="left">Somali</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/som.m3u</code></td></tr> <tr><td align="left">Somali</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/som.m3u</code></td></tr>
<tr><td align="left">Spanish</td><td align="right">1830</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/spa.m3u</code></td></tr> <tr><td align="left">Spanish</td><td align="right">1853</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/spa.m3u</code></td></tr>
<tr><td align="left">Swahili</td><td align="right">14</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/swa.m3u</code></td></tr> <tr><td align="left">Swahili</td><td align="right">14</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/swa.m3u</code></td></tr>
<tr><td align="left">Swedish</td><td align="right">20</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/swe.m3u</code></td></tr> <tr><td align="left">Swedish</td><td align="right">19</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/swe.m3u</code></td></tr>
<tr><td align="left">Tagalog</td><td align="right">14</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tgl.m3u</code></td></tr> <tr><td align="left">Tagalog</td><td align="right">14</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tgl.m3u</code></td></tr>
<tr><td align="left">Tajik</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tgk.m3u</code></td></tr> <tr><td align="left">Tajik</td><td align="right">2</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tgk.m3u</code></td></tr>
<tr><td align="left">Tamil</td><td align="right">62</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tam.m3u</code></td></tr> <tr><td align="left">Tamil</td><td align="right">63</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tam.m3u</code></td></tr>
<tr><td align="left">Telugu</td><td align="right">31</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tel.m3u</code></td></tr> <tr><td align="left">Telugu</td><td align="right">31</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tel.m3u</code></td></tr>
<tr><td align="left">Tetum</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tet.m3u</code></td></tr> <tr><td align="left">Tetum</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tet.m3u</code></td></tr>
<tr><td align="left">Thai</td><td align="right">83</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tha.m3u</code></td></tr> <tr><td align="left">Thai</td><td align="right">83</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/tha.m3u</code></td></tr>
@ -238,7 +238,7 @@ Same thing, but split up into separate files:
<tr><td align="left">Wolof</td><td align="right">3</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/wol.m3u</code></td></tr> <tr><td align="left">Wolof</td><td align="right">3</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/wol.m3u</code></td></tr>
<tr><td align="left">Yucatec Maya</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/yua.m3u</code></td></tr> <tr><td align="left">Yucatec Maya</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/yua.m3u</code></td></tr>
<tr><td align="left">Yue Chinese</td><td align="right">10</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/yue.m3u</code></td></tr> <tr><td align="left">Yue Chinese</td><td align="right">10</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/yue.m3u</code></td></tr>
<tr><td align="left">Undefined</td><td align="right">1283</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/undefined.m3u</code></td></tr> <tr><td align="left">Undefined</td><td align="right">1277</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/undefined.m3u</code></td></tr>
</tbody> </tbody>
</table> </table>
@ -264,15 +264,15 @@ Same thing, but split up into separate files:
<tr><th align="left">Country</th><th align="left">Channels</th><th align="left">Playlist</th></tr> <tr><th align="left">Country</th><th align="left">Channels</th><th align="left">Playlist</th></tr>
</thead> </thead>
<tbody> <tbody>
<tr><td>🇦🇫 Afghanistan</td><td align="right">31</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/af.m3u</code></td></tr> <tr><td>🇦🇫 Afghanistan</td><td align="right">32</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/af.m3u</code></td></tr>
<tr><td>🇦🇱 Albania</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/al.m3u</code></td></tr> <tr><td>🇦🇱 Albania</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/al.m3u</code></td></tr>
<tr><td>🇩🇿 Algeria</td><td align="right">51</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dz.m3u</code></td></tr> <tr><td>🇩🇿 Algeria</td><td align="right">52</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dz.m3u</code></td></tr>
<tr><td>🇦🇸 American Samoa</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/as.m3u</code></td></tr> <tr><td>🇦🇸 American Samoa</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/as.m3u</code></td></tr>
<tr><td>🇦🇩 Andorra</td><td align="right">17</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ad.m3u</code></td></tr> <tr><td>🇦🇩 Andorra</td><td align="right">17</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ad.m3u</code></td></tr>
<tr><td>🇦🇴 Angola</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ao.m3u</code></td></tr> <tr><td>🇦🇴 Angola</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ao.m3u</code></td></tr>
<tr><td>🇦🇮 Anguilla</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ai.m3u</code></td></tr> <tr><td>🇦🇮 Anguilla</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ai.m3u</code></td></tr>
<tr><td>🇦🇬 Antigua and Barbuda</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ag.m3u</code></td></tr> <tr><td>🇦🇬 Antigua and Barbuda</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ag.m3u</code></td></tr>
<tr><td>🇦🇷 Argentina</td><td align="right">313</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ar.m3u</code></td></tr> <tr><td>🇦🇷 Argentina</td><td align="right">316</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ar.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buenos Aires</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ar-b.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buenos Aires</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ar-b.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Catamarca</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ar-k.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Catamarca</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ar-k.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Chaco</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ar-h.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Chaco</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ar-h.m3u</code></td></tr>
@ -302,24 +302,24 @@ Same thing, but split up into separate files:
<tr><td>🇦🇹 Austria</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/at.m3u</code></td></tr> <tr><td>🇦🇹 Austria</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/at.m3u</code></td></tr>
<tr><td>🇦🇿 Azerbaijan</td><td align="right">33</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/az.m3u</code></td></tr> <tr><td>🇦🇿 Azerbaijan</td><td align="right">33</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/az.m3u</code></td></tr>
<tr><td>🇧🇸 Bahamas</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bs.m3u</code></td></tr> <tr><td>🇧🇸 Bahamas</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bs.m3u</code></td></tr>
<tr><td>🇧🇭 Bahrain</td><td align="right">37</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bh.m3u</code></td></tr> <tr><td>🇧🇭 Bahrain</td><td align="right">38</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bh.m3u</code></td></tr>
<tr><td>🇧🇩 Bangladesh</td><td align="right">53</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bd.m3u</code></td></tr> <tr><td>🇧🇩 Bangladesh</td><td align="right">54</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bd.m3u</code></td></tr>
<tr><td>🇧🇧 Barbados</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bb.m3u</code></td></tr> <tr><td>🇧🇧 Barbados</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bb.m3u</code></td></tr>
<tr><td>🇧🇾 Belarus</td><td align="right">42</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/by.m3u</code></td></tr> <tr><td>🇧🇾 Belarus</td><td align="right">42</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/by.m3u</code></td></tr>
<tr><td>🇧🇪 Belgium</td><td align="right">56</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/be.m3u</code></td></tr> <tr><td>🇧🇪 Belgium</td><td align="right">56</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/be.m3u</code></td></tr>
<tr><td>🇧🇿 Belize</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bz.m3u</code></td></tr> <tr><td>🇧🇿 Belize</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bz.m3u</code></td></tr>
<tr><td>🇧🇯 Benin</td><td align="right">19</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bj.m3u</code></td></tr> <tr><td>🇧🇯 Benin</td><td align="right">19</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bj.m3u</code></td></tr>
<tr><td>🇧🇲 Bermuda</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bm.m3u</code></td></tr> <tr><td>🇧🇲 Bermuda</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bm.m3u</code></td></tr>
<tr><td>🇧🇹 Bhutan</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bt.m3u</code></td></tr> <tr><td>🇧🇹 Bhutan</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bt.m3u</code></td></tr>
<tr><td>🇧🇴 Bolivia</td><td align="right">83</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bo.m3u</code></td></tr> <tr><td>🇧🇴 Bolivia</td><td align="right">94</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bo.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cochabamba</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-c.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cochabamba</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-c.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Paz</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-l.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Paz</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-l.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Oruro</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-o.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Oruro</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-o.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Santa Cruz</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-s.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Santa Cruz</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/bo-s.m3u</code></td></tr>
<tr><td>🇧🇦 Bosnia and Herzegovina</td><td align="right">31</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ba.m3u</code></td></tr> <tr><td>🇧🇦 Bosnia and Herzegovina</td><td align="right">31</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ba.m3u</code></td></tr>
<tr><td>🇧🇼 Botswana</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bw.m3u</code></td></tr> <tr><td>🇧🇼 Botswana</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bw.m3u</code></td></tr>
<tr><td>🇧🇻 Bouvet Island</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bv.m3u</code></td></tr> <tr><td>🇧🇻 Bouvet Island</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bv.m3u</code></td></tr>
<tr><td>🇧🇷 Brazil</td><td align="right">321</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/br.m3u</code></td></tr> <tr><td>🇧🇷 Brazil</td><td align="right">322</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/br.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alagoas</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/br-al.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alagoas</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/br-al.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Amazonas</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/br-am.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Amazonas</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/br-am.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bahia</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/br-ba.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bahia</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/br-ba.m3u</code></td></tr>
@ -366,7 +366,7 @@ Same thing, but split up into separate files:
<tr><td>🇰🇾 Cayman Islands</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ky.m3u</code></td></tr> <tr><td>🇰🇾 Cayman Islands</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ky.m3u</code></td></tr>
<tr><td>🇨🇫 Central African Republic</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cf.m3u</code></td></tr> <tr><td>🇨🇫 Central African Republic</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cf.m3u</code></td></tr>
<tr><td>🇹🇩 Chad</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/td.m3u</code></td></tr> <tr><td>🇹🇩 Chad</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/td.m3u</code></td></tr>
<tr><td>🇨🇱 Chile</td><td align="right">256</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cl.m3u</code></td></tr> <tr><td>🇨🇱 Chile</td><td align="right">259</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cl.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Biobio</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-bi.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Biobio</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-bi.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coquimbo</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-co.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coquimbo</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-co.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Araucania</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-ar.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Araucania</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-ar.m3u</code></td></tr>
@ -376,8 +376,7 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nuble</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nuble</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valparaiso</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valparaiso</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u</code></td></tr>
<tr><td>🇨🇳 China</td><td align="right">562</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cn.m3u</code></td></tr> <tr><td>🇨🇳 China</td><td align="right">562</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cn.m3u</code></td></tr>
<tr><td>🇨🇴 Colombia</td><td align="right">134</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/co.m3u</code></td></tr> <tr><td>🇨🇴 Colombia</td><td align="right">137</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/co.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;San Andres, Providencia y Santa Catalina</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-sap.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Antioquia</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Antioquia</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Atlantico</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Atlantico</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bolivar</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-bol.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bolivar</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-bol.m3u</code></td></tr>
@ -391,23 +390,24 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Norte de Santander</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-nsa.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Norte de Santander</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-nsa.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quindio</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-qui.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quindio</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-qui.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Risaralda</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-ris.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Risaralda</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-ris.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;San Andres, Providencia y Santa Catalina</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-sap.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tolima</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-tol.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tolima</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-tol.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valle del Cauca</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-vac.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valle del Cauca</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/co-vac.m3u</code></td></tr>
<tr><td>🇰🇲 Comoros</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/km.m3u</code></td></tr> <tr><td>🇰🇲 Comoros</td><td align="right">41</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/km.m3u</code></td></tr>
<tr><td>🇨🇰 Cook Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ck.m3u</code></td></tr> <tr><td>🇨🇰 Cook Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ck.m3u</code></td></tr>
<tr><td>🇨🇷 Costa Rica</td><td align="right">94</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cr.m3u</code></td></tr> <tr><td>🇨🇷 Costa Rica</td><td align="right">97</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cr.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Puntarenas</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cr-p.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Puntarenas</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cr-p.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;San Jose</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cr-sj.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;San Jose</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cr-sj.m3u</code></td></tr>
<tr><td>🇭🇷 Croatia</td><td align="right">27</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hr.m3u</code></td></tr> <tr><td>🇭🇷 Croatia</td><td align="right">27</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hr.m3u</code></td></tr>
<tr><td>🇨🇺 Cuba</td><td align="right">49</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cu.m3u</code></td></tr> <tr><td>🇨🇺 Cuba</td><td align="right">53</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cu.m3u</code></td></tr>
<tr><td>🇨🇼 Curacao</td><td align="right">10</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cw.m3u</code></td></tr> <tr><td>🇨🇼 Curacao</td><td align="right">10</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cw.m3u</code></td></tr>
<tr><td>🇨🇾 Cyprus</td><td align="right">41</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cy.m3u</code></td></tr> <tr><td>🇨🇾 Cyprus</td><td align="right">41</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cy.m3u</code></td></tr>
<tr><td>🇨🇿 Czech Republic</td><td align="right">43</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cz.m3u</code></td></tr> <tr><td>🇨🇿 Czech Republic</td><td align="right">43</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cz.m3u</code></td></tr>
<tr><td>🇨🇩 Democratic Republic of the Congo</td><td align="right">33</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cd.m3u</code></td></tr> <tr><td>🇨🇩 Democratic Republic of the Congo</td><td align="right">33</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cd.m3u</code></td></tr>
<tr><td>🇩🇰 Denmark</td><td align="right">34</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dk.m3u</code></td></tr> <tr><td>🇩🇰 Denmark</td><td align="right">34</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dk.m3u</code></td></tr>
<tr><td>🇩🇯 Djibouti</td><td align="right">45</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dj.m3u</code></td></tr> <tr><td>🇩🇯 Djibouti</td><td align="right">46</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dj.m3u</code></td></tr>
<tr><td>🇩🇲 Dominica</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dm.m3u</code></td></tr> <tr><td>🇩🇲 Dominica</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/dm.m3u</code></td></tr>
<tr><td>🇩🇴 Dominican Republic</td><td align="right">205</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/do.m3u</code></td></tr> <tr><td>🇩🇴 Dominican Republic</td><td align="right">208</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/do.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Distrito Nacional (Santo Domingo)</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-01.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Distrito Nacional (Santo Domingo)</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-01.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Altagracia</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-11.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Altagracia</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-11.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Vega</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-13.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Vega</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-13.m3u</code></td></tr>
@ -417,23 +417,23 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Santiago</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-25.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Santiago</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-25.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valverde</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-27.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valverde</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/do-27.m3u</code></td></tr>
<tr><td>🇹🇱 East Timor</td><td align="right">27</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tl.m3u</code></td></tr> <tr><td>🇹🇱 East Timor</td><td align="right">27</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tl.m3u</code></td></tr>
<tr><td>🇪🇨 Ecuador</td><td align="right">79</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ec.m3u</code></td></tr> <tr><td>🇪🇨 Ecuador</td><td align="right">82</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ec.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Azuay</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-a.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Azuay</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-a.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loja</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-l.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loja</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-l.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Orellana</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-d.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Orellana</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-d.m3u</code></td></tr>
<tr><td>🇪🇬 Egypt</td><td align="right">76</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/eg.m3u</code></td></tr> <tr><td>🇪🇬 Egypt</td><td align="right">77</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/eg.m3u</code></td></tr>
<tr><td>🇸🇻 El Salvador</td><td align="right">64</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sv.m3u</code></td></tr> <tr><td>🇸🇻 El Salvador</td><td align="right">67</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sv.m3u</code></td></tr>
<tr><td>🇬🇶 Equatorial Guinea</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gq.m3u</code></td></tr> <tr><td>🇬🇶 Equatorial Guinea</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gq.m3u</code></td></tr>
<tr><td>🇪🇷 Eritrea</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/er.m3u</code></td></tr> <tr><td>🇪🇷 Eritrea</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/er.m3u</code></td></tr>
<tr><td>🇪🇪 Estonia</td><td align="right">23</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ee.m3u</code></td></tr> <tr><td>🇪🇪 Estonia</td><td align="right">24</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ee.m3u</code></td></tr>
<tr><td>🇪🇹 Ethiopia</td><td align="right">18</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/et.m3u</code></td></tr> <tr><td>🇪🇹 Ethiopia</td><td align="right">18</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/et.m3u</code></td></tr>
<tr><td>🇫🇰 Falkland Islands</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fk.m3u</code></td></tr> <tr><td>🇫🇰 Falkland Islands</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fk.m3u</code></td></tr>
<tr><td>🇫🇴 Faroe Islands</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fo.m3u</code></td></tr> <tr><td>🇫🇴 Faroe Islands</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fo.m3u</code></td></tr>
<tr><td>🇫🇯 Fiji</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fj.m3u</code></td></tr> <tr><td>🇫🇯 Fiji</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fj.m3u</code></td></tr>
<tr><td>🇫🇮 Finland</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fi.m3u</code></td></tr> <tr><td>🇫🇮 Finland</td><td align="right">41</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fi.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keski-Suomi</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/fi-08.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keski-Suomi</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/fi-08.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pohjanmaa</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/fi-12.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pohjanmaa</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/fi-12.m3u</code></td></tr>
<tr><td>🇫🇷 France</td><td align="right">242</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fr.m3u</code></td></tr> <tr><td>🇫🇷 France</td><td align="right">256</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/fr.m3u</code></td></tr>
<tr><td>🇬🇫 French Guiana</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gf.m3u</code></td></tr> <tr><td>🇬🇫 French Guiana</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gf.m3u</code></td></tr>
<tr><td>🇵🇫 French Polynesia</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pf.m3u</code></td></tr> <tr><td>🇵🇫 French Polynesia</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pf.m3u</code></td></tr>
<tr><td>🇹🇫 French Southern Territories</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tf.m3u</code></td></tr> <tr><td>🇹🇫 French Southern Territories</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tf.m3u</code></td></tr>
@ -442,12 +442,12 @@ Same thing, but split up into separate files:
<tr><td>🇬🇪 Georgia</td><td align="right">20</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ge.m3u</code></td></tr> <tr><td>🇬🇪 Georgia</td><td align="right">20</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ge.m3u</code></td></tr>
<tr><td>🇩🇪 Germany</td><td align="right">266</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/de.m3u</code></td></tr> <tr><td>🇩🇪 Germany</td><td align="right">266</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/de.m3u</code></td></tr>
<tr><td>🇬🇭 Ghana</td><td align="right">36</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gh.m3u</code></td></tr> <tr><td>🇬🇭 Ghana</td><td align="right">36</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gh.m3u</code></td></tr>
<tr><td>🇬🇷 Greece</td><td align="right">117</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gr.m3u</code></td></tr> <tr><td>🇬🇷 Greece</td><td align="right">118</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gr.m3u</code></td></tr>
<tr><td>🇬🇱 Greenland</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gl.m3u</code></td></tr> <tr><td>🇬🇱 Greenland</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gl.m3u</code></td></tr>
<tr><td>🇬🇩 Grenada</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gd.m3u</code></td></tr> <tr><td>🇬🇩 Grenada</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gd.m3u</code></td></tr>
<tr><td>🇬🇵 Guadeloupe</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gp.m3u</code></td></tr> <tr><td>🇬🇵 Guadeloupe</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gp.m3u</code></td></tr>
<tr><td>🇬🇺 Guam</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gu.m3u</code></td></tr> <tr><td>🇬🇺 Guam</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gu.m3u</code></td></tr>
<tr><td>🇬🇹 Guatemala</td><td align="right">100</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gt.m3u</code></td></tr> <tr><td>🇬🇹 Guatemala</td><td align="right">104</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gt.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Escuintla</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gt-05.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Escuintla</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gt-05.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Izabal</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gt-18.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Izabal</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gt-18.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quiche</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gt-14.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quiche</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gt-14.m3u</code></td></tr>
@ -461,11 +461,11 @@ Same thing, but split up into separate files:
<tr><td>🇬🇼 Guinea-Bissau</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gw.m3u</code></td></tr> <tr><td>🇬🇼 Guinea-Bissau</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gw.m3u</code></td></tr>
<tr><td>🇬🇾 Guyana</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gy.m3u</code></td></tr> <tr><td>🇬🇾 Guyana</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gy.m3u</code></td></tr>
<tr><td>🇭🇹 Haiti</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ht.m3u</code></td></tr> <tr><td>🇭🇹 Haiti</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ht.m3u</code></td></tr>
<tr><td>🇭🇳 Honduras</td><td align="right">107</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hn.m3u</code></td></tr> <tr><td>🇭🇳 Honduras</td><td align="right">110</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hn.m3u</code></td></tr>
<tr><td>🇭🇰 Hong Kong</td><td align="right">21</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hk.m3u</code></td></tr> <tr><td>🇭🇰 Hong Kong</td><td align="right">21</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hk.m3u</code></td></tr>
<tr><td>🇭🇺 Hungary</td><td align="right">117</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hu.m3u</code></td></tr> <tr><td>🇭🇺 Hungary</td><td align="right">118</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/hu.m3u</code></td></tr>
<tr><td>🇮🇸 Iceland</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/is.m3u</code></td></tr> <tr><td>🇮🇸 Iceland</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/is.m3u</code></td></tr>
<tr><td>🇮🇳 India</td><td align="right">438</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/in.m3u</code></td></tr> <tr><td>🇮🇳 India</td><td align="right">439</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/in.m3u</code></td></tr>
<tr><td>🇮🇩 Indonesia</td><td align="right">207</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/id.m3u</code></td></tr> <tr><td>🇮🇩 Indonesia</td><td align="right">207</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/id.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aceh</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ac.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aceh</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ac.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bali</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ba.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bali</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ba.m3u</code></td></tr>
@ -483,8 +483,8 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kalimantan Timur</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ki.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kalimantan Timur</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ki.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kepulauan Bangka Belitung</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-bb.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kepulauan Bangka Belitung</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-bb.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lampung</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-la.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lampung</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-la.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maluku Utara</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-mu.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maluku</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ml.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maluku</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-ml.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maluku Utara</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-mu.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nusa Tenggara Barat</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-nb.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nusa Tenggara Barat</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-nb.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nusa Tenggara Timur</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-nt.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nusa Tenggara Timur</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-nt.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Papua</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-pp.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Papua</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-pp.m3u</code></td></tr>
@ -498,42 +498,42 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yogyakarta</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-yo.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yogyakarta</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/id-yo.m3u</code></td></tr>
<tr><td>🇮🇷 Iran</td><td align="right">129</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ir.m3u</code></td></tr> <tr><td>🇮🇷 Iran</td><td align="right">129</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ir.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tehran</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ir-23.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tehran</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ir-23.m3u</code></td></tr>
<tr><td>🇮🇶 Iraq</td><td align="right">126</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/iq.m3u</code></td></tr> <tr><td>🇮🇶 Iraq</td><td align="right">127</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/iq.m3u</code></td></tr>
<tr><td>🇮🇪 Ireland</td><td align="right">22</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ie.m3u</code></td></tr> <tr><td>🇮🇪 Ireland</td><td align="right">22</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ie.m3u</code></td></tr>
<tr><td>🇮🇱 Israel</td><td align="right">21</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/il.m3u</code></td></tr> <tr><td>🇮🇱 Israel</td><td align="right">21</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/il.m3u</code></td></tr>
<tr><td>🇮🇹 Italy</td><td align="right">409</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/it.m3u</code></td></tr> <tr><td>🇮🇹 Italy</td><td align="right">409</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/it.m3u</code></td></tr>
<tr><td>🇨🇮 Ivory Coast</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ci.m3u</code></td></tr> <tr><td>🇨🇮 Ivory Coast</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ci.m3u</code></td></tr>
<tr><td>🇯🇲 Jamaica</td><td align="right">11</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/jm.m3u</code></td></tr> <tr><td>🇯🇲 Jamaica</td><td align="right">11</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/jm.m3u</code></td></tr>
<tr><td>🇯🇵 Japan</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/jp.m3u</code></td></tr> <tr><td>🇯🇵 Japan</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/jp.m3u</code></td></tr>
<tr><td>🇯🇴 Jordan</td><td align="right">61</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/jo.m3u</code></td></tr> <tr><td>🇯🇴 Jordan</td><td align="right">62</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/jo.m3u</code></td></tr>
<tr><td>🇰🇿 Kazakhstan</td><td align="right">51</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kz.m3u</code></td></tr> <tr><td>🇰🇿 Kazakhstan</td><td align="right">51</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kz.m3u</code></td></tr>
<tr><td>🇰🇪 Kenya</td><td align="right">54</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ke.m3u</code></td></tr> <tr><td>🇰🇪 Kenya</td><td align="right">54</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ke.m3u</code></td></tr>
<tr><td>🇰🇮 Kiribati</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ki.m3u</code></td></tr> <tr><td>🇰🇮 Kiribati</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ki.m3u</code></td></tr>
<tr><td>🇽🇰 Kosovo</td><td align="right">25</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/xk.m3u</code></td></tr> <tr><td>🇽🇰 Kosovo</td><td align="right">25</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/xk.m3u</code></td></tr>
<tr><td>🇰🇼 Kuwait</td><td align="right">46</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kw.m3u</code></td></tr> <tr><td>🇰🇼 Kuwait</td><td align="right">47</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kw.m3u</code></td></tr>
<tr><td>🇰🇬 Kyrgyzstan</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kg.m3u</code></td></tr> <tr><td>🇰🇬 Kyrgyzstan</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kg.m3u</code></td></tr>
<tr><td>🇱🇦 Laos</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/la.m3u</code></td></tr> <tr><td>🇱🇦 Laos</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/la.m3u</code></td></tr>
<tr><td>🇱🇻 Latvia</td><td align="right">24</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lv.m3u</code></td></tr> <tr><td>🇱🇻 Latvia</td><td align="right">25</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lv.m3u</code></td></tr>
<tr><td>🇱🇧 Lebanon</td><td align="right">56</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lb.m3u</code></td></tr> <tr><td>🇱🇧 Lebanon</td><td align="right">57</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lb.m3u</code></td></tr>
<tr><td>🇱🇸 Lesotho</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ls.m3u</code></td></tr> <tr><td>🇱🇸 Lesotho</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ls.m3u</code></td></tr>
<tr><td>🇱🇷 Liberia</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lr.m3u</code></td></tr> <tr><td>🇱🇷 Liberia</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lr.m3u</code></td></tr>
<tr><td>🇱🇾 Libya</td><td align="right">56</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ly.m3u</code></td></tr> <tr><td>🇱🇾 Libya</td><td align="right">57</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ly.m3u</code></td></tr>
<tr><td>🇱🇮 Liechtenstein</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/li.m3u</code></td></tr> <tr><td>🇱🇮 Liechtenstein</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/li.m3u</code></td></tr>
<tr><td>🇱🇹 Lithuania</td><td align="right">18</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lt.m3u</code></td></tr> <tr><td>🇱🇹 Lithuania</td><td align="right">19</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lt.m3u</code></td></tr>
<tr><td>🇱🇺 Luxembourg</td><td align="right">22</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lu.m3u</code></td></tr> <tr><td>🇱🇺 Luxembourg</td><td align="right">22</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lu.m3u</code></td></tr>
<tr><td>🇲🇴 Macao</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mo.m3u</code></td></tr> <tr><td>🇲🇴 Macao</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mo.m3u</code></td></tr>
<tr><td>🇲🇬 Madagascar</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mg.m3u</code></td></tr> <tr><td>🇲🇬 Madagascar</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mg.m3u</code></td></tr>
<tr><td>🇲🇼 Malawi</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mw.m3u</code></td></tr> <tr><td>🇲🇼 Malawi</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mw.m3u</code></td></tr>
<tr><td>🇲🇾 Malaysia</td><td align="right">61</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/my.m3u</code></td></tr> <tr><td>🇲🇾 Malaysia</td><td align="right">61</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/my.m3u</code></td></tr>
<tr><td>🇲🇻 Maldives</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mv.m3u</code></td></tr> <tr><td>🇲🇻 Maldives</td><td align="right">10</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mv.m3u</code></td></tr>
<tr><td>🇲🇱 Mali</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ml.m3u</code></td></tr> <tr><td>🇲🇱 Mali</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ml.m3u</code></td></tr>
<tr><td>🇲🇹 Malta</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mt.m3u</code></td></tr> <tr><td>🇲🇹 Malta</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mt.m3u</code></td></tr>
<tr><td>🇲🇭 Marshall Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mh.m3u</code></td></tr> <tr><td>🇲🇭 Marshall Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mh.m3u</code></td></tr>
<tr><td>🇲🇶 Martinique</td><td align="right">10</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mq.m3u</code></td></tr> <tr><td>🇲🇶 Martinique</td><td align="right">10</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mq.m3u</code></td></tr>
<tr><td>🇲🇷 Mauritania</td><td align="right">42</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mr.m3u</code></td></tr> <tr><td>🇲🇷 Mauritania</td><td align="right">43</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mr.m3u</code></td></tr>
<tr><td>🇲🇺 Mauritius</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mu.m3u</code></td></tr> <tr><td>🇲🇺 Mauritius</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mu.m3u</code></td></tr>
<tr><td>🇾🇹 Mayotte</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/yt.m3u</code></td></tr> <tr><td>🇾🇹 Mayotte</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/yt.m3u</code></td></tr>
<tr><td>🇲🇽 Mexico</td><td align="right">207</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mx.m3u</code></td></tr> <tr><td>🇲🇽 Mexico</td><td align="right">210</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mx.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aguascalientes</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/mx-agu.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aguascalientes</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/mx-agu.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Baja California</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/mx-bcn.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Baja California</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/mx-bcn.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Chihuahua</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/mx-chh.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Chihuahua</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/mx-chh.m3u</code></td></tr>
@ -562,16 +562,16 @@ Same thing, but split up into separate files:
<tr><td>🇲🇪 Montenegro</td><td align="right">18</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/me.m3u</code></td></tr> <tr><td>🇲🇪 Montenegro</td><td align="right">18</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/me.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ulcinj</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/me-20.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ulcinj</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/me-20.m3u</code></td></tr>
<tr><td>🇲🇸 Montserrat</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ms.m3u</code></td></tr> <tr><td>🇲🇸 Montserrat</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ms.m3u</code></td></tr>
<tr><td>🇲🇦 Morocco</td><td align="right">59</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ma.m3u</code></td></tr> <tr><td>🇲🇦 Morocco</td><td align="right">60</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ma.m3u</code></td></tr>
<tr><td>🇲🇿 Mozambique</td><td align="right">15</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mz.m3u</code></td></tr> <tr><td>🇲🇿 Mozambique</td><td align="right">15</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mz.m3u</code></td></tr>
<tr><td>🇲🇲 Myanmar (Burma)</td><td align="right">47</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mm.m3u</code></td></tr> <tr><td>🇲🇲 Myanmar (Burma)</td><td align="right">47</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mm.m3u</code></td></tr>
<tr><td>🇳🇦 Namibia</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/na.m3u</code></td></tr> <tr><td>🇳🇦 Namibia</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/na.m3u</code></td></tr>
<tr><td>🇳🇷 Nauru</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nr.m3u</code></td></tr> <tr><td>🇳🇷 Nauru</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nr.m3u</code></td></tr>
<tr><td>🇳🇵 Nepal</td><td align="right">21</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/np.m3u</code></td></tr> <tr><td>🇳🇵 Nepal</td><td align="right">22</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/np.m3u</code></td></tr>
<tr><td>🇳🇱 Netherlands</td><td align="right">201</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nl.m3u</code></td></tr> <tr><td>🇳🇱 Netherlands</td><td align="right">201</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nl.m3u</code></td></tr>
<tr><td>🇳🇨 New Caledonia</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nc.m3u</code></td></tr> <tr><td>🇳🇨 New Caledonia</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nc.m3u</code></td></tr>
<tr><td>🇳🇿 New Zealand</td><td align="right">32</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nz.m3u</code></td></tr> <tr><td>🇳🇿 New Zealand</td><td align="right">32</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nz.m3u</code></td></tr>
<tr><td>🇳🇮 Nicaragua</td><td align="right">59</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ni.m3u</code></td></tr> <tr><td>🇳🇮 Nicaragua</td><td align="right">62</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ni.m3u</code></td></tr>
<tr><td>🇳🇪 Niger</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ne.m3u</code></td></tr> <tr><td>🇳🇪 Niger</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ne.m3u</code></td></tr>
<tr><td>🇳🇬 Nigeria</td><td align="right">55</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ng.m3u</code></td></tr> <tr><td>🇳🇬 Nigeria</td><td align="right">55</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ng.m3u</code></td></tr>
<tr><td>🇳🇺 Niue</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nu.m3u</code></td></tr> <tr><td>🇳🇺 Niue</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/nu.m3u</code></td></tr>
@ -580,21 +580,21 @@ Same thing, but split up into separate files:
<tr><td>🇲🇰 North Macedonia</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mk.m3u</code></td></tr> <tr><td>🇲🇰 North Macedonia</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mk.m3u</code></td></tr>
<tr><td>🇲🇵 Northern Mariana Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mp.m3u</code></td></tr> <tr><td>🇲🇵 Northern Mariana Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/mp.m3u</code></td></tr>
<tr><td>🇳🇴 Norway</td><td align="right">24</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/no.m3u</code></td></tr> <tr><td>🇳🇴 Norway</td><td align="right">24</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/no.m3u</code></td></tr>
<tr><td>🇴🇲 Oman</td><td align="right">39</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/om.m3u</code></td></tr> <tr><td>🇴🇲 Oman</td><td align="right">40</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/om.m3u</code></td></tr>
<tr><td>🇵🇰 Pakistan</td><td align="right">75</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pk.m3u</code></td></tr> <tr><td>🇵🇰 Pakistan</td><td align="right">76</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pk.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Islamabad</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pk-is.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Islamabad</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pk-is.m3u</code></td></tr>
<tr><td>🇵🇼 Palau</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pw.m3u</code></td></tr> <tr><td>🇵🇼 Palau</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pw.m3u</code></td></tr>
<tr><td>🇵🇸 Palestine</td><td align="right">59</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ps.m3u</code></td></tr> <tr><td>🇵🇸 Palestine</td><td align="right">60</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ps.m3u</code></td></tr>
<tr><td>🇵🇦 Panama</td><td align="right">62</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pa.m3u</code></td></tr> <tr><td>🇵🇦 Panama</td><td align="right">69</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pa.m3u</code></td></tr>
<tr><td>🇵🇬 Papua New Guinea</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pg.m3u</code></td></tr> <tr><td>🇵🇬 Papua New Guinea</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pg.m3u</code></td></tr>
<tr><td>🇵🇾 Paraguay</td><td align="right">86</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/py.m3u</code></td></tr> <tr><td>🇵🇾 Paraguay</td><td align="right">88</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/py.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alto Parana</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-10.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alto Parana</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-10.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boqueron</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-19.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boqueron</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-19.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caaguazu</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-5.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caaguazu</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-5.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Central</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-11.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Central</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-11.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Itapua</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-7.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Itapua</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-7.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Presidente Hayes</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-15.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Presidente Hayes</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/py-15.m3u</code></td></tr>
<tr><td>🇵🇪 Peru</td><td align="right">197</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pe.m3u</code></td></tr> <tr><td>🇵🇪 Peru</td><td align="right">201</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pe.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Amazonas</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-ama.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Amazonas</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-ama.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ancash</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-anc.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ancash</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-anc.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apurimac</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-apu.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apurimac</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-apu.m3u</code></td></tr>
@ -606,20 +606,20 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loreto</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-lor.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loreto</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-lor.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moquegua</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-moq.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moquegua</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-moq.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Puno</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-pun.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Puno</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-pun.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;San Martin</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-sam.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;San Martin</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/pe-sam.m3u</code></td></tr>
<tr><td>🇵🇭 Philippines</td><td align="right">50</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ph.m3u</code></td></tr> <tr><td>🇵🇭 Philippines</td><td align="right">50</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ph.m3u</code></td></tr>
<tr><td>🇵🇳 Pitcairn Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pn.m3u</code></td></tr> <tr><td>🇵🇳 Pitcairn Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pn.m3u</code></td></tr>
<tr><td>🇵🇱 Poland</td><td align="right">64</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pl.m3u</code></td></tr> <tr><td>🇵🇱 Poland</td><td align="right">66</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pl.m3u</code></td></tr>
<tr><td>🇵🇹 Portugal</td><td align="right">54</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pt.m3u</code></td></tr> <tr><td>🇵🇹 Portugal</td><td align="right">54</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pt.m3u</code></td></tr>
<tr><td>🇵🇷 Puerto Rico</td><td align="right">83</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pr.m3u</code></td></tr> <tr><td>🇵🇷 Puerto Rico</td><td align="right">86</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/pr.m3u</code></td></tr>
<tr><td>🇶🇦 Qatar</td><td align="right">37</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/qa.m3u</code></td></tr> <tr><td>🇶🇦 Qatar</td><td align="right">38</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/qa.m3u</code></td></tr>
<tr><td>🇨🇬 Republic of the Congo</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cg.m3u</code></td></tr> <tr><td>🇨🇬 Republic of the Congo</td><td align="right">16</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/cg.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Brazzaville</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cg-bzv.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Brazzaville</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/cg-bzv.m3u</code></td></tr>
<tr><td>🇷🇪 Réunion</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/re.m3u</code></td></tr>
<tr><td>🇷🇴 Romania</td><td align="right">110</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ro.m3u</code></td></tr> <tr><td>🇷🇴 Romania</td><td align="right">110</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ro.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gorj</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ro-gj.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gorj</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ro-gj.m3u</code></td></tr>
<tr><td>🇷🇺 Russia</td><td align="right">326</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ru.m3u</code></td></tr> <tr><td>🇷🇺 Russia</td><td align="right">326</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ru.m3u</code></td></tr>
<tr><td>🇷🇼 Rwanda</td><td align="right">24</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/rw.m3u</code></td></tr> <tr><td>🇷🇼 Rwanda</td><td align="right">24</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/rw.m3u</code></td></tr>
<tr><td>🇷🇪 Réunion</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/re.m3u</code></td></tr>
<tr><td>🇧🇱 Saint Barthélemy</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bl.m3u</code></td></tr> <tr><td>🇧🇱 Saint Barthélemy</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/bl.m3u</code></td></tr>
<tr><td>🇸🇭 Saint Helena</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sh.m3u</code></td></tr> <tr><td>🇸🇭 Saint Helena</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sh.m3u</code></td></tr>
<tr><td>🇰🇳 Saint Kitts and Nevis</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kn.m3u</code></td></tr> <tr><td>🇰🇳 Saint Kitts and Nevis</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kn.m3u</code></td></tr>
@ -629,7 +629,8 @@ Same thing, but split up into separate files:
<tr><td>🇻🇨 Saint Vincent and the Grenadines</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vc.m3u</code></td></tr> <tr><td>🇻🇨 Saint Vincent and the Grenadines</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vc.m3u</code></td></tr>
<tr><td>🇼🇸 Samoa</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ws.m3u</code></td></tr> <tr><td>🇼🇸 Samoa</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ws.m3u</code></td></tr>
<tr><td>🇸🇲 San Marino</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sm.m3u</code></td></tr> <tr><td>🇸🇲 San Marino</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sm.m3u</code></td></tr>
<tr><td>🇸🇦 Saudi Arabia</td><td align="right">73</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sa.m3u</code></td></tr> <tr><td>🇸🇹 São Tomé and Príncipe</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/st.m3u</code></td></tr>
<tr><td>🇸🇦 Saudi Arabia</td><td align="right">74</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sa.m3u</code></td></tr>
<tr><td>🇸🇳 Senegal</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sn.m3u</code></td></tr> <tr><td>🇸🇳 Senegal</td><td align="right">30</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sn.m3u</code></td></tr>
<tr><td>🇷🇸 Serbia</td><td align="right">89</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/rs.m3u</code></td></tr> <tr><td>🇷🇸 Serbia</td><td align="right">89</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/rs.m3u</code></td></tr>
<tr><td>🇸🇨 Seychelles</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sc.m3u</code></td></tr> <tr><td>🇸🇨 Seychelles</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sc.m3u</code></td></tr>
@ -639,7 +640,7 @@ Same thing, but split up into separate files:
<tr><td>🇸🇰 Slovakia</td><td align="right">62</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sk.m3u</code></td></tr> <tr><td>🇸🇰 Slovakia</td><td align="right">62</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sk.m3u</code></td></tr>
<tr><td>🇸🇮 Slovenia</td><td align="right">37</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/si.m3u</code></td></tr> <tr><td>🇸🇮 Slovenia</td><td align="right">37</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/si.m3u</code></td></tr>
<tr><td>🇸🇧 Solomon Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sb.m3u</code></td></tr> <tr><td>🇸🇧 Solomon Islands</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sb.m3u</code></td></tr>
<tr><td>🇸🇴 Somalia</td><td align="right">61</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/so.m3u</code></td></tr> <tr><td>🇸🇴 Somalia</td><td align="right">62</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/so.m3u</code></td></tr>
<tr><td>🇿🇦 South Africa</td><td align="right">36</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/za.m3u</code></td></tr> <tr><td>🇿🇦 South Africa</td><td align="right">36</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/za.m3u</code></td></tr>
<tr><td>🇬🇸 South Georgia and the South Sandwich Islands</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gs.m3u</code></td></tr> <tr><td>🇬🇸 South Georgia and the South Sandwich Islands</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gs.m3u</code></td></tr>
<tr><td>🇰🇷 South Korea</td><td align="right">112</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kr.m3u</code></td></tr> <tr><td>🇰🇷 South Korea</td><td align="right">112</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/kr.m3u</code></td></tr>
@ -658,13 +659,9 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ulsan-gwangyeoksi</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/kr-31.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ulsan-gwangyeoksi</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/kr-31.m3u</code></td></tr>
<tr><td>🇸🇸 South Sudan</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ss.m3u</code></td></tr> <tr><td>🇸🇸 South Sudan</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ss.m3u</code></td></tr>
<tr><td>🇪🇸 Spain</td><td align="right">326</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/es.m3u</code></td></tr> <tr><td>🇪🇸 Spain</td><td align="right">326</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/es.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asturias, Principado de</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-as.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Madrid, Comunidad de</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-md.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Murcia, Region de</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-mc.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Navarra, Comunidad Foral de</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-nc.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valenciana, Comunidad</td><td align="right">15</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-vc.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Andalucia</td><td align="right">38</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-an.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Andalucia</td><td align="right">38</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-an.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aragon</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ar.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aragon</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ar.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asturias, Principado de</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-as.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Canarias</td><td align="right">11</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-cn.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Canarias</td><td align="right">11</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-cn.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Castilla y Leon</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-cl.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Castilla y Leon</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-cl.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Castilla-La Mancha</td><td align="right">17</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-cm.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Castilla-La Mancha</td><td align="right">17</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-cm.m3u</code></td></tr>
@ -673,15 +670,18 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Galicia</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ga.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Galicia</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ga.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Illes Balears</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ib.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Illes Balears</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ib.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Rioja</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ri.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;La Rioja</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-ri.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Madrid, Comunidad de</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-md.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Murcia, Region de</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-mc.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Navarra, Comunidad Foral de</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-nc.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pais Vasco</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-pv.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pais Vasco</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-pv.m3u</code></td></tr>
<tr><td>🇱🇰 Sri Lanka</td><td align="right">18</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lk.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Valenciana, Comunidad</td><td align="right">15</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/es-vc.m3u</code></td></tr>
<tr><td>🇸🇩 Sudan</td><td align="right">49</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sd.m3u</code></td></tr> <tr><td>🇱🇰 Sri Lanka</td><td align="right">20</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/lk.m3u</code></td></tr>
<tr><td>🇸🇩 Sudan</td><td align="right">50</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sd.m3u</code></td></tr>
<tr><td>🇸🇷 Suriname</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sr.m3u</code></td></tr> <tr><td>🇸🇷 Suriname</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sr.m3u</code></td></tr>
<tr><td>🇸🇿 Swaziland</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sz.m3u</code></td></tr> <tr><td>🇸🇿 Swaziland</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sz.m3u</code></td></tr>
<tr><td>🇸🇪 Sweden</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/se.m3u</code></td></tr> <tr><td>🇸🇪 Sweden</td><td align="right">43</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/se.m3u</code></td></tr>
<tr><td>🇨🇭 Switzerland</td><td align="right">71</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ch.m3u</code></td></tr> <tr><td>🇨🇭 Switzerland</td><td align="right">71</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ch.m3u</code></td></tr>
<tr><td>🇸🇾 Syria</td><td align="right">45</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sy.m3u</code></td></tr> <tr><td>🇸🇾 Syria</td><td align="right">46</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sy.m3u</code></td></tr>
<tr><td>🇸🇹 São Tomé and Príncipe</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/st.m3u</code></td></tr>
<tr><td>🇹🇼 Taiwan</td><td align="right">69</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tw.m3u</code></td></tr> <tr><td>🇹🇼 Taiwan</td><td align="right">69</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tw.m3u</code></td></tr>
<tr><td>🇹🇯 Tajikistan</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tj.m3u</code></td></tr> <tr><td>🇹🇯 Tajikistan</td><td align="right">3</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tj.m3u</code></td></tr>
<tr><td>🇹🇿 Tanzania</td><td align="right">23</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tz.m3u</code></td></tr> <tr><td>🇹🇿 Tanzania</td><td align="right">23</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tz.m3u</code></td></tr>
@ -690,7 +690,7 @@ Same thing, but split up into separate files:
<tr><td>🇹🇰 Tokelau</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tk.m3u</code></td></tr> <tr><td>🇹🇰 Tokelau</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tk.m3u</code></td></tr>
<tr><td>🇹🇴 Tonga</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/to.m3u</code></td></tr> <tr><td>🇹🇴 Tonga</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/to.m3u</code></td></tr>
<tr><td>🇹🇹 Trinidad and Tobago</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tt.m3u</code></td></tr> <tr><td>🇹🇹 Trinidad and Tobago</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tt.m3u</code></td></tr>
<tr><td>🇹🇳 Tunisia</td><td align="right">53</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tn.m3u</code></td></tr> <tr><td>🇹🇳 Tunisia</td><td align="right">54</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tn.m3u</code></td></tr>
<tr><td>🇹🇷 Turkey</td><td align="right">226</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tr.m3u</code></td></tr> <tr><td>🇹🇷 Turkey</td><td align="right">226</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tr.m3u</code></td></tr>
<tr><td>🇹🇲 Turkmenistan</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tm.m3u</code></td></tr> <tr><td>🇹🇲 Turkmenistan</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tm.m3u</code></td></tr>
<tr><td>🇹🇨 Turks and Caicos Islands</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tc.m3u</code></td></tr> <tr><td>🇹🇨 Turks and Caicos Islands</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/tc.m3u</code></td></tr>
@ -698,10 +698,10 @@ Same thing, but split up into separate files:
<tr><td>🇻🇮 U.S. Virgin Islands</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vi.m3u</code></td></tr> <tr><td>🇻🇮 U.S. Virgin Islands</td><td align="right">5</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vi.m3u</code></td></tr>
<tr><td>🇺🇬 Uganda</td><td align="right">26</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ug.m3u</code></td></tr> <tr><td>🇺🇬 Uganda</td><td align="right">26</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ug.m3u</code></td></tr>
<tr><td>🇺🇦 Ukraine</td><td align="right">87</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ua.m3u</code></td></tr> <tr><td>🇺🇦 Ukraine</td><td align="right">87</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ua.m3u</code></td></tr>
<tr><td>🇦🇪 United Arab Emirates</td><td align="right">75</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ae.m3u</code></td></tr> <tr><td>🇦🇪 United Arab Emirates</td><td align="right">76</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ae.m3u</code></td></tr>
<tr><td>🇬🇧 United Kingdom</td><td align="right">194</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uk.m3u</code></td></tr> <tr><td>🇬🇧 United Kingdom</td><td align="right">194</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uk.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wales</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gb-wls.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wales</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gb-wls.m3u</code></td></tr>
<tr><td>🇺🇸 United States</td><td align="right">1889</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/us.m3u</code></td></tr> <tr><td>🇺🇸 United States</td><td align="right">1892</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/us.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alabama</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-al.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alabama</td><td align="right">4</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-al.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alaska</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-ak.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alaska</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-ak.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arizona</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-az.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arizona</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-az.m3u</code></td></tr>
@ -753,17 +753,17 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Washington</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-wa.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Washington</td><td align="right">8</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-wa.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wisconsin</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-wi.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wisconsin</td><td align="right">7</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-wi.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wyoming</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-wy.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wyoming</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/us-wy.m3u</code></td></tr>
<tr><td>🇺🇾 Uruguay</td><td align="right">58</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uy.m3u</code></td></tr> <tr><td>🇺🇾 Uruguay</td><td align="right">60</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uy.m3u</code></td></tr>
<tr><td>🇺🇿 Uzbekistan</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uz.m3u</code></td></tr> <tr><td>🇺🇿 Uzbekistan</td><td align="right">9</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uz.m3u</code></td></tr>
<tr><td>🇻🇺 Vanuatu</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vu.m3u</code></td></tr> <tr><td>🇻🇺 Vanuatu</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vu.m3u</code></td></tr>
<tr><td>🇻🇦 Vatican City</td><td align="right">19</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/va.m3u</code></td></tr> <tr><td>🇻🇦 Vatican City</td><td align="right">19</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/va.m3u</code></td></tr>
<tr><td>🇻🇪 Venezuela</td><td align="right">104</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ve.m3u</code></td></tr> <tr><td>🇻🇪 Venezuela</td><td align="right">107</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ve.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aragua</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ve-d.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aragua</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ve-d.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lara</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ve-k.m3u</code></td></tr> <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lara</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ve-k.m3u</code></td></tr>
<tr><td>🇻🇳 Vietnam</td><td align="right">125</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vn.m3u</code></td></tr> <tr><td>🇻🇳 Vietnam</td><td align="right">125</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vn.m3u</code></td></tr>
<tr><td>🇼🇫 Wallis and Futuna</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/wf.m3u</code></td></tr> <tr><td>🇼🇫 Wallis and Futuna</td><td align="right">6</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/wf.m3u</code></td></tr>
<tr><td>🇪🇭 Western Sahara</td><td align="right">17</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/eh.m3u</code></td></tr> <tr><td>🇪🇭 Western Sahara</td><td align="right">17</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/eh.m3u</code></td></tr>
<tr><td>🇾🇪 Yemen</td><td align="right">43</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ye.m3u</code></td></tr> <tr><td>🇾🇪 Yemen</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ye.m3u</code></td></tr>
<tr><td>🇿🇲 Zambia</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/zm.m3u</code></td></tr> <tr><td>🇿🇲 Zambia</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/zm.m3u</code></td></tr>
<tr><td>🇿🇼 Zimbabwe</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/zw.m3u</code></td></tr> <tr><td>🇿🇼 Zimbabwe</td><td align="right">12</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/zw.m3u</code></td></tr>
<tr><td>🌍 International</td><td align="right">73</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/int.m3u</code></td></tr> <tr><td>🌍 International</td><td align="right">73</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/int.m3u</code></td></tr>
@ -793,37 +793,37 @@ Same thing, but split up into separate files:
</thead> </thead>
<tbody> <tbody>
<tr><td align="left">Africa</td><td align="right">424</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/afr.m3u</code></td></tr> <tr><td align="left">Africa</td><td align="right">424</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/afr.m3u</code></td></tr>
<tr><td align="left">Americas</td><td align="right">3801</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/amer.m3u</code></td></tr> <tr><td align="left">Americas</td><td align="right">3817</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/amer.m3u</code></td></tr>
<tr><td align="left">Asia-Pacific</td><td align="right">1918</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/apac.m3u</code></td></tr> <tr><td align="left">Arab world</td><td align="right">428</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/arab.m3u</code></td></tr>
<tr><td align="left">Arab world</td><td align="right">427</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/arab.m3u</code></td></tr> <tr><td align="left">Asia</td><td align="right">2962</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asia.m3u</code></td></tr>
<tr><td align="left">Asia-Pacific</td><td align="right">1919</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/apac.m3u</code></td></tr>
<tr><td align="left">Association of Southeast Asian Nations</td><td align="right">472</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asean.m3u</code></td></tr> <tr><td align="left">Association of Southeast Asian Nations</td><td align="right">472</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asean.m3u</code></td></tr>
<tr><td align="left">Asia</td><td align="right">2961</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asia.m3u</code></td></tr>
<tr><td align="left">Benelux</td><td align="right">240</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/benelux.m3u</code></td></tr> <tr><td align="left">Benelux</td><td align="right">240</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/benelux.m3u</code></td></tr>
<tr><td align="left">Caribbean</td><td align="right">252</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/carib.m3u</code></td></tr> <tr><td align="left">Caribbean</td><td align="right">253</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/carib.m3u</code></td></tr>
<tr><td align="left">Central America</td><td align="right">206</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cenamer.m3u</code></td></tr>
<tr><td align="left">Central and Eastern Europe</td><td align="right">1022</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cee.m3u</code></td></tr>
<tr><td align="left">Central Asia</td><td align="right">64</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cas.m3u</code></td></tr> <tr><td align="left">Central Asia</td><td align="right">64</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cas.m3u</code></td></tr>
<tr><td align="left">Central and Eastern Europe</td><td align="right">1019</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cee.m3u</code></td></tr>
<tr><td align="left">Central America</td><td align="right">201</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cenamer.m3u</code></td></tr>
<tr><td align="left">Commonwealth of Independent States</td><td align="right">461</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cis.m3u</code></td></tr> <tr><td align="left">Commonwealth of Independent States</td><td align="right">461</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cis.m3u</code></td></tr>
<tr><td align="left">Europe, the Middle East and Africa</td><td align="right">4046</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/emea.m3u</code></td></tr> <tr><td align="left">Europe</td><td align="right">3246</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/eur.m3u</code></td></tr>
<tr><td align="left">Europe</td><td align="right">3227</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/eur.m3u</code></td></tr> <tr><td align="left">Europe, the Middle East and Africa</td><td align="right">4065</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/emea.m3u</code></td></tr>
<tr><td align="left">Hispanic America</td><td align="right">1458</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/hispam.m3u</code></td></tr> <tr><td align="left">Hispanic America</td><td align="right">1474</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/hispam.m3u</code></td></tr>
<tr><td align="left">Latin America and the Caribbean</td><td align="right">1793</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/lac.m3u</code></td></tr> <tr><td align="left">Latin America</td><td align="right">1785</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/latam.m3u</code></td></tr>
<tr><td align="left">Latin America</td><td align="right">1771</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/latam.m3u</code></td></tr> <tr><td align="left">Latin America and the Caribbean</td><td align="right">1807</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/lac.m3u</code></td></tr>
<tr><td align="left">Maghreb</td><td align="right">59</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/maghreb.m3u</code></td></tr> <tr><td align="left">Maghreb</td><td align="right">59</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/maghreb.m3u</code></td></tr>
<tr><td align="left">Middle East and North Africa</td><td align="right">755</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mena.m3u</code></td></tr>
<tr><td align="left">Middle East</td><td align="right">705</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mideast.m3u</code></td></tr> <tr><td align="left">Middle East</td><td align="right">705</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mideast.m3u</code></td></tr>
<tr><td align="left">Northern America</td><td align="right">2023</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/nam.m3u</code></td></tr> <tr><td align="left">Middle East and North Africa</td><td align="right">755</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mena.m3u</code></td></tr>
<tr><td align="left">Northern Europe</td><td align="right">125</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/neur.m3u</code></td></tr>
<tr><td align="left">North America</td><td align="right">2619</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/noram.m3u</code></td></tr>
<tr><td align="left">Nordics</td><td align="right">97</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/nord.m3u</code></td></tr> <tr><td align="left">Nordics</td><td align="right">97</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/nord.m3u</code></td></tr>
<tr><td align="left">North America</td><td align="right">2627</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/noram.m3u</code></td></tr>
<tr><td align="left">Northern America</td><td align="right">2026</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/nam.m3u</code></td></tr>
<tr><td align="left">Northern Europe</td><td align="right">126</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/neur.m3u</code></td></tr>
<tr><td align="left">Oceania</td><td align="right">55</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/oce.m3u</code></td></tr> <tr><td align="left">Oceania</td><td align="right">55</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/oce.m3u</code></td></tr>
<tr><td align="left">South Asia</td><td align="right">596</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/sas.m3u</code></td></tr> <tr><td align="left">South America</td><td align="right">1195</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/southam.m3u</code></td></tr>
<tr><td align="left">South Asia</td><td align="right">598</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/sas.m3u</code></td></tr>
<tr><td align="left">Southeast Asia</td><td align="right">493</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/sea.m3u</code></td></tr> <tr><td align="left">Southeast Asia</td><td align="right">493</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/sea.m3u</code></td></tr>
<tr><td align="left">Southern Europe</td><td align="right">1103</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/ser.m3u</code></td></tr> <tr><td align="left">Southern Europe</td><td align="right">1104</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/ser.m3u</code></td></tr>
<tr><td align="left">South America</td><td align="right">1187</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/southam.m3u</code></td></tr>
<tr><td align="left">Sub-Saharan Africa</td><td align="right">341</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/ssa.m3u</code></td></tr> <tr><td align="left">Sub-Saharan Africa</td><td align="right">341</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/ssa.m3u</code></td></tr>
<tr><td align="left">West Africa</td><td align="right">140</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/wafr.m3u</code></td></tr> <tr><td align="left">West Africa</td><td align="right">140</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/wafr.m3u</code></td></tr>
<tr><td align="left">Western Europe</td><td align="right">983</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/wer.m3u</code></td></tr> <tr><td align="left">Western Europe</td><td align="right">997</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/wer.m3u</code></td></tr>
</tbody> </tbody>
</table> </table>

5
act.json Normal file
View file

@ -0,0 +1,5 @@
{
"pull_request": {
"merged": true
}
}

370
package-lock.json generated
View file

@ -11,7 +11,6 @@
"@octokit/plugin-paginate-rest": "^7.1.2", "@octokit/plugin-paginate-rest": "^7.1.2",
"@octokit/plugin-rest-endpoint-methods": "^7.1.3", "@octokit/plugin-rest-endpoint-methods": "^7.1.3",
"@octokit/types": "^11.1.0", "@octokit/types": "^11.1.0",
"@seald-io/nedb": "^4.0.2",
"@types/fs-extra": "^11.0.1", "@types/fs-extra": "^11.0.1",
"@types/glob": "^8.1.0", "@types/glob": "^8.1.0",
"@types/jest": "^29.5.4", "@types/jest": "^29.5.4",
@ -1338,21 +1337,6 @@
"node": ">=14" "node": ">=14"
} }
}, },
"node_modules/@seald-io/binary-search-tree": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.3.tgz",
"integrity": "sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA=="
},
"node_modules/@seald-io/nedb": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-4.0.2.tgz",
"integrity": "sha512-gJ91fT1sgh2cLXYVcTSh7khZ8LdemI8+SojCdpZ5wy+DUQ4fSrEwGqOwbdV49NDs2BBO6GeBpSb8CnhG2IW1rw==",
"dependencies": {
"@seald-io/binary-search-tree": "^1.0.3",
"localforage": "^1.9.0",
"util": "^0.12.4"
}
},
"node_modules/@sinclair/typebox": { "node_modules/@sinclair/typebox": {
"version": "0.27.8", "version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@ -1658,17 +1642,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/available-typed-arrays": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
"integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/babel-jest": { "node_modules/babel-jest": {
"version": "29.6.4", "version": "29.6.4",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz",
@ -1855,18 +1828,6 @@
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"peer": true "peer": true
}, },
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/callsites": { "node_modules/callsites": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@ -2318,14 +2279,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dependencies": {
"is-callable": "^1.1.3"
}
},
"node_modules/foreground-child": { "node_modules/foreground-child": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
@ -2395,7 +2348,8 @@
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"peer": true
}, },
"node_modules/gensync": { "node_modules/gensync": {
"version": "1.0.0-beta.2", "version": "1.0.0-beta.2",
@ -2414,20 +2368,6 @@
"node": "6.* || 8.* || >= 10.*" "node": "6.* || 8.* || >= 10.*"
} }
}, },
"node_modules/get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-package-type": { "node_modules/get-package-type": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@ -2595,17 +2535,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dependencies": {
"get-intrinsic": "^1.1.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/graceful-fs": { "node_modules/graceful-fs": {
"version": "4.2.9", "version": "4.2.9",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
@ -2615,6 +2544,7 @@
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"peer": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
}, },
@ -2630,42 +2560,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dependencies": {
"has-symbols": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/html-escaper": { "node_modules/html-escaper": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@ -2681,11 +2575,6 @@
"node": ">=10.17.0" "node": ">=10.17.0"
} }
}, },
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
},
"node_modules/import-local": { "node_modules/import-local": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
@ -2737,32 +2626,6 @@
"validator": "^13.7.0" "validator": "^13.7.0"
} }
}, },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.13.0", "version": "2.13.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
@ -2800,20 +2663,6 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/is-generator-function": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-glob": { "node_modules/is-glob": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
@ -2864,20 +2713,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/is-typed-array": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
"integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"dependencies": {
"which-typed-array": "^1.1.11"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-valid-path": { "node_modules/is-valid-path": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
@ -3808,14 +3643,6 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/lie": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
"dependencies": {
"immediate": "~3.0.5"
}
},
"node_modules/lines-and-columns": { "node_modules/lines-and-columns": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
@ -3856,14 +3683,6 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/localforage": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
"dependencies": {
"lie": "3.1.1"
}
},
"node_modules/locate-path": { "node_modules/locate-path": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@ -5117,18 +4936,6 @@
"node": ">= 4.0.0" "node": ">= 4.0.0"
} }
}, },
"node_modules/util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
"which-typed-array": "^1.1.2"
}
},
"node_modules/v8-compile-cache-lib": { "node_modules/v8-compile-cache-lib": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
@ -5191,24 +4998,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/which-typed-array": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
"integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/wrap-ansi": { "node_modules/wrap-ansi": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@ -6319,21 +6108,6 @@
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"optional": true "optional": true
}, },
"@seald-io/binary-search-tree": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.3.tgz",
"integrity": "sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA=="
},
"@seald-io/nedb": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-4.0.2.tgz",
"integrity": "sha512-gJ91fT1sgh2cLXYVcTSh7khZ8LdemI8+SojCdpZ5wy+DUQ4fSrEwGqOwbdV49NDs2BBO6GeBpSb8CnhG2IW1rw==",
"requires": {
"@seald-io/binary-search-tree": "^1.0.3",
"localforage": "^1.9.0",
"util": "^0.12.4"
}
},
"@sinclair/typebox": { "@sinclair/typebox": {
"version": "0.27.8", "version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@ -6608,11 +6382,6 @@
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
"integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q=="
}, },
"available-typed-arrays": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
"integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
},
"babel-jest": { "babel-jest": {
"version": "29.6.4", "version": "29.6.4",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz",
@ -6761,15 +6530,6 @@
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"peer": true "peer": true
}, },
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"callsites": { "callsites": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@ -7089,14 +6849,6 @@
"path-exists": "^4.0.0" "path-exists": "^4.0.0"
} }
}, },
"for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"requires": {
"is-callable": "^1.1.3"
}
},
"foreground-child": { "foreground-child": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
@ -7145,7 +6897,8 @@
"function-bind": { "function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"peer": true
}, },
"gensync": { "gensync": {
"version": "1.0.0-beta.2", "version": "1.0.0-beta.2",
@ -7158,17 +6911,6 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
}, },
"get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
},
"get-package-type": { "get-package-type": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@ -7293,14 +7035,6 @@
} }
} }
}, },
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"requires": {
"get-intrinsic": "^1.1.3"
}
},
"graceful-fs": { "graceful-fs": {
"version": "4.2.9", "version": "4.2.9",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
@ -7310,6 +7044,7 @@
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"peer": true,
"requires": { "requires": {
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
} }
@ -7319,24 +7054,6 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
}, },
"has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
},
"has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"has-tostringtag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"requires": {
"has-symbols": "^1.0.2"
}
},
"html-escaper": { "html-escaper": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@ -7349,11 +7066,6 @@
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"peer": true "peer": true
}, },
"immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
},
"import-local": { "import-local": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
@ -7393,20 +7105,6 @@
"validator": "^13.7.0" "validator": "^13.7.0"
} }
}, },
"is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
}
},
"is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
},
"is-core-module": { "is-core-module": {
"version": "2.13.0", "version": "2.13.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
@ -7432,14 +7130,6 @@
"integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"peer": true "peer": true
}, },
"is-generator-function": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"requires": {
"has-tostringtag": "^1.0.0"
}
},
"is-glob": { "is-glob": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
@ -7472,14 +7162,6 @@
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"peer": true "peer": true
}, },
"is-typed-array": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
"integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"requires": {
"which-typed-array": "^1.1.11"
}
},
"is-valid-path": { "is-valid-path": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
@ -8186,14 +7868,6 @@
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"peer": true "peer": true
}, },
"lie": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
"requires": {
"immediate": "~3.0.5"
}
},
"lines-and-columns": { "lines-and-columns": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
@ -8227,14 +7901,6 @@
} }
} }
}, },
"localforage": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
"requires": {
"lie": "3.1.1"
}
},
"locate-path": { "locate-path": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@ -9116,18 +8782,6 @@
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
}, },
"util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"requires": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
"which-typed-array": "^1.1.2"
}
},
"v8-compile-cache-lib": { "v8-compile-cache-lib": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
@ -9180,18 +8834,6 @@
"isexe": "^2.0.0" "isexe": "^2.0.0"
} }
}, },
"which-typed-array": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
"integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
"requires": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.0"
}
},
"wrap-ansi": { "wrap-ansi": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",

View file

@ -2,11 +2,12 @@
"name": "iptv", "name": "iptv",
"scripts": { "scripts": {
"act:check": "act pull_request -W .github/workflows/check.yml", "act:check": "act pull_request -W .github/workflows/check.yml",
"act:format": "act workflow_dispatch -W .github/workflows/format.yml",
"act:update": "act workflow_dispatch -W .github/workflows/update.yml", "act:update": "act workflow_dispatch -W .github/workflows/update.yml",
"api:load": "./scripts/commands/api/load.sh", "api:load": "./scripts/commands/api/load.sh",
"api:generate": "npm run ts-node scripts/commands/api/generate.ts", "api:generate": "npm run ts-node scripts/commands/api/generate.ts",
"api:deploy": "npx gh-pages-clean && npx gh-pages -a -m \"Deploy to iptv-org/api\" -d .api -r https://$GITHUB_TOKEN@github.com/iptv-org/api.git", "api:deploy": "npx gh-pages-clean && npx gh-pages -a -m \"Deploy to iptv-org/api\" -d .api -r https://$GITHUB_TOKEN@github.com/iptv-org/api.git",
"db:create": "npm run ts-node scripts/commands/database/create.ts", "playlist:format": "npm run ts-node scripts/commands/playlist/format.ts",
"playlist:update": "npm run ts-node scripts/commands/playlist/update.ts", "playlist:update": "npm run ts-node scripts/commands/playlist/update.ts",
"playlist:generate": "npm run ts-node scripts/commands/playlist/generate.ts", "playlist:generate": "npm run ts-node scripts/commands/playlist/generate.ts",
"playlist:validate": "npm run ts-node scripts/commands/playlist/validate.ts", "playlist:validate": "npm run ts-node scripts/commands/playlist/validate.ts",
@ -14,9 +15,9 @@
"playlist:deploy": "npx gh-pages-clean && npx gh-pages -m \"Deploy to GitHub Pages\" -d .gh-pages -r https://$GITHUB_TOKEN@github.com/iptv-org/iptv.git", "playlist:deploy": "npx gh-pages-clean && npx gh-pages -m \"Deploy to GitHub Pages\" -d .gh-pages -r https://$GITHUB_TOKEN@github.com/iptv-org/iptv.git",
"readme:update": "npm run ts-node scripts/commands/readme/update.ts", "readme:update": "npm run ts-node scripts/commands/readme/update.ts",
"report:create": "npm run ts-node scripts/commands/report/create.ts", "report:create": "npm run ts-node scripts/commands/report/create.ts",
"format": "npm run db:create && npm run playlist:format", "format": "npm run api:load && npm run playlist:format",
"check": "npm run api:load && npm run playlist:lint && npm run playlist:validate", "check": "npm run api:load && npm run playlist:lint && npm run playlist:validate",
"update": "npm run api:load && npm run db:create && npm run playlist:generate && npm run api:generate && npm run readme:update", "update": "npm run api:load && npm run playlist:generate && npm run api:generate && npm run readme:update",
"deploy": "npm run playlist:deploy && npm run api:deploy", "deploy": "npm run playlist:deploy && npm run api:deploy",
"report": "npm run api:load && npm run report:create", "report": "npm run api:load && npm run report:create",
"test": "jest --runInBand", "test": "jest --runInBand",
@ -45,7 +46,6 @@
"@octokit/plugin-paginate-rest": "^7.1.2", "@octokit/plugin-paginate-rest": "^7.1.2",
"@octokit/plugin-rest-endpoint-methods": "^7.1.3", "@octokit/plugin-rest-endpoint-methods": "^7.1.3",
"@octokit/types": "^11.1.0", "@octokit/types": "^11.1.0",
"@seald-io/nedb": "^4.0.2",
"@types/fs-extra": "^11.0.1", "@types/fs-extra": "^11.0.1",
"@types/glob": "^8.1.0", "@types/glob": "^8.1.0",
"@types/jest": "^29.5.4", "@types/jest": "^29.5.4",

View file

@ -1,16 +1,16 @@
import { API_DIR, DB_DIR } from '../../constants' import { API_DIR, STREAMS_DIR } from '../../constants'
import { Logger, Database, Collection, Storage } from '../../core' import { Logger, PlaylistParser, Storage } from '../../core'
import { Stream } from '../../models' import { Stream } from '../../models'
async function main() { async function main() {
const logger = new Logger() const logger = new Logger()
logger.info(`loading streams...`) logger.info('loading streams...')
const db = new Database(DB_DIR) const streamsStorage = new Storage(STREAMS_DIR)
const dbStreams = await db.load('streams.db') const parser = new PlaylistParser({ storage: streamsStorage })
const docs = await dbStreams.find({}) const files = await streamsStorage.list('**/*.m3u')
let streams = await parser.parse(files)
const streams = new Collection(docs as any[]) streams = streams
.map(data => new Stream(data)) .map(data => new Stream(data))
.orderBy((stream: Stream) => stream.channel) .orderBy((stream: Stream) => stream.channel)
.map((stream: Stream) => stream.toJSON()) .map((stream: Stream) => stream.toJSON())
@ -18,8 +18,8 @@ async function main() {
logger.info(`found ${streams.count()} streams`) logger.info(`found ${streams.count()} streams`)
logger.info('saving to .api/streams.json...') logger.info('saving to .api/streams.json...')
const storage = new Storage(API_DIR) const apiStorage = new Storage(API_DIR)
await storage.save('streams.json', streams.toJSON()) await apiStorage.save('streams.json', streams.toJSON())
} }
main() main()

View file

@ -4,7 +4,6 @@ mkdir -p temp/data
curl -L -o temp/data/blocklist.json https://iptv-org.github.io/api/blocklist.json curl -L -o temp/data/blocklist.json https://iptv-org.github.io/api/blocklist.json
curl -L -o temp/data/categories.json https://iptv-org.github.io/api/categories.json curl -L -o temp/data/categories.json https://iptv-org.github.io/api/categories.json
curl -L -o temp/data/channels.json https://iptv-org.github.io/api/channels.json curl -L -o temp/data/channels.json https://iptv-org.github.io/api/channels.json
curl -L -o temp/data/streams.json https://iptv-org.github.io/api/streams.json
curl -L -o temp/data/countries.json https://iptv-org.github.io/api/countries.json curl -L -o temp/data/countries.json https://iptv-org.github.io/api/countries.json
curl -L -o temp/data/languages.json https://iptv-org.github.io/api/languages.json curl -L -o temp/data/languages.json https://iptv-org.github.io/api/languages.json
curl -L -o temp/data/regions.json https://iptv-org.github.io/api/regions.json curl -L -o temp/data/regions.json https://iptv-org.github.io/api/regions.json

View file

@ -1,33 +0,0 @@
import { Storage, Logger, PlaylistParser, Collection, Database } from '../../core'
import { Stream, Playlist } from '../../models'
import { STREAMS_DIR, DB_DIR } from '../../constants'
async function main() {
const logger = new Logger()
logger.info(`looking for streams...`)
const storage = new Storage(STREAMS_DIR)
const parser = new PlaylistParser({
storage
})
const files = await storage.list(`**/*.m3u`)
let streams = new Collection()
for (let filepath of files) {
const playlist: Playlist = await parser.parse(filepath)
streams = streams.concat(playlist.streams)
}
logger.info(`found ${streams.count()} streams`)
logger.info('clean up the storage...')
const dbStorage = new Storage(DB_DIR)
await dbStorage.clear('streams.db')
logger.info('saving streams to the database...')
const db = new Database(DB_DIR)
const dbStreams = await db.load('streams.db')
const data = streams.map((stream: Stream) => stream.data()).all()
await dbStreams.insert(data)
}
main()

View file

@ -0,0 +1,67 @@
import { STREAMS_DIR, DATA_DIR } from '../../constants'
import { Storage, Logger, PlaylistParser, Collection } from '../../core'
import { Stream, Playlist, Channel } from '../../models'
import { program } from 'commander'
program.argument('[filepath]', 'Path to file to validate').parse(process.argv)
async function main() {
const storage = new Storage(STREAMS_DIR)
const logger = new Logger()
logger.info('loading channels from api...')
const dataStorage = new Storage(DATA_DIR)
const channelsContent = await dataStorage.json('channels.json')
const groupedChannels = new Collection(channelsContent)
.map(data => new Channel(data))
.keyBy((channel: Channel) => channel.id)
logger.info('loading streams...')
const parser = new PlaylistParser({ storage })
const files = program.args.length ? program.args : await storage.list('**/*.m3u')
let streams = await parser.parse(files)
logger.info(`found ${streams.count()} streams`)
logger.info('normalizing links...')
streams = streams.map(stream => {
stream.normalizeURL()
return stream
})
logger.info('removing duplicates...')
streams = streams.uniqBy(stream => stream.url)
logger.info('removing wrong id...')
streams = streams.map((stream: Stream) => {
if (groupedChannels.missing(stream.channel)) {
stream.channel = ''
}
return stream
})
logger.info('sorting links...')
streams = streams.orderBy(
[
(stream: Stream) => stream.name,
(stream: Stream) => parseInt(stream.quality.replace('p', '')),
(stream: Stream) => stream.label,
(stream: Stream) => stream.url
],
['asc', 'desc', 'asc', 'asc']
)
logger.info('saving...')
const groupedStreams = streams.groupBy((stream: Stream) => stream.filepath)
for (let filepath of groupedStreams.keys()) {
const streams = groupedStreams.get(filepath) || []
if (!streams.length) return
const playlist = new Playlist(streams, { public: false })
await storage.save(filepath, playlist.toString())
}
}
main()

View file

@ -1,6 +1,5 @@
import { File, Storage } from '../../core' import { File, PlaylistParser, Storage } from '../../core'
import { Stream, Category, Channel, Language, Country, Region, Subdivision } from '../../models' import { Stream, Category, Channel, Language, Country, Region, Subdivision } from '../../models'
import { Database } from '../../core/database'
import { Collection } from '../../core/collection' import { Collection } from '../../core/collection'
import { Logger } from '../../core/logger' import { Logger } from '../../core/logger'
import _ from 'lodash' import _ from 'lodash'
@ -16,32 +15,31 @@ import {
IndexLanguageGenerator, IndexLanguageGenerator,
IndexRegionGenerator IndexRegionGenerator
} from '../../generators' } from '../../generators'
import { DATA_DIR, DB_DIR, LOGS_DIR } from '../../constants' import { DATA_DIR, LOGS_DIR, STREAMS_DIR } from '../../constants'
async function main() { async function main() {
const logger = new Logger() const logger = new Logger()
const dataStorage = new Storage(DATA_DIR)
const storage = new Storage(DATA_DIR) logger.info('loading data from api...')
const channelsContent = await dataStorage.json('channels.json')
const channelsContent = await storage.json('channels.json')
const channels = new Collection(channelsContent).map(data => new Channel(data)) const channels = new Collection(channelsContent).map(data => new Channel(data))
const categoriesContent = await dataStorage.json('categories.json')
const categoriesContent = await storage.json('categories.json')
const categories = new Collection(categoriesContent).map(data => new Category(data)) const categories = new Collection(categoriesContent).map(data => new Category(data))
const countriesContent = await dataStorage.json('countries.json')
const countriesContent = await storage.json('countries.json')
const countries = new Collection(countriesContent).map(data => new Country(data)) const countries = new Collection(countriesContent).map(data => new Country(data))
const languagesContent = await dataStorage.json('languages.json')
const languagesContent = await storage.json('languages.json')
const languages = new Collection(languagesContent).map(data => new Language(data)) const languages = new Collection(languagesContent).map(data => new Language(data))
const regionsContent = await dataStorage.json('regions.json')
const regionsContent = await storage.json('regions.json')
const regions = new Collection(regionsContent).map(data => new Region(data)) const regions = new Collection(regionsContent).map(data => new Region(data))
const subdivisionsContent = await dataStorage.json('subdivisions.json')
const subdivisionsContent = await storage.json('subdivisions.json')
const subdivisions = new Collection(subdivisionsContent).map(data => new Subdivision(data)) const subdivisions = new Collection(subdivisionsContent).map(data => new Subdivision(data))
const streams = await loadStreams({ channels, categories, languages }) logger.info('loading streams...')
let streams = await loadStreams({ channels, categories, languages })
let totalStreams = streams.count()
streams = streams.uniqBy((stream: Stream) => stream.channel || _.uniqueId())
logger.info(`found ${totalStreams} streams (including ${streams.count()} unique)`)
const generatorsLogger = new Logger({ const generatorsLogger = new Logger({
stream: await new Storage(LOGS_DIR).createStream(`generators.log`) stream: await new Storage(LOGS_DIR).createStream(`generators.log`)
@ -49,7 +47,6 @@ async function main() {
logger.info('generating categories/...') logger.info('generating categories/...')
await new CategoriesGenerator({ categories, streams, logger: generatorsLogger }).generate() await new CategoriesGenerator({ categories, streams, logger: generatorsLogger }).generate()
logger.info('generating countries/...') logger.info('generating countries/...')
await new CountriesGenerator({ await new CountriesGenerator({
countries, countries,
@ -58,10 +55,8 @@ async function main() {
subdivisions, subdivisions,
logger: generatorsLogger logger: generatorsLogger
}).generate() }).generate()
logger.info('generating languages/...') logger.info('generating languages/...')
await new LanguagesGenerator({ streams, logger: generatorsLogger }).generate() await new LanguagesGenerator({ streams, logger: generatorsLogger }).generate()
logger.info('generating regions/...') logger.info('generating regions/...')
await new RegionsGenerator({ await new RegionsGenerator({
streams, streams,
@ -69,16 +64,12 @@ async function main() {
subdivisions, subdivisions,
logger: generatorsLogger logger: generatorsLogger
}).generate() }).generate()
logger.info('generating index.m3u...') logger.info('generating index.m3u...')
await new IndexGenerator({ streams, logger: generatorsLogger }).generate() await new IndexGenerator({ streams, logger: generatorsLogger }).generate()
logger.info('generating index.nsfw.m3u...') logger.info('generating index.nsfw.m3u...')
await new IndexNsfwGenerator({ streams, logger: generatorsLogger }).generate() await new IndexNsfwGenerator({ streams, logger: generatorsLogger }).generate()
logger.info('generating index.category.m3u...') logger.info('generating index.category.m3u...')
await new IndexCategoryGenerator({ streams, logger: generatorsLogger }).generate() await new IndexCategoryGenerator({ streams, logger: generatorsLogger }).generate()
logger.info('generating index.country.m3u...') logger.info('generating index.country.m3u...')
await new IndexCountryGenerator({ await new IndexCountryGenerator({
streams, streams,
@ -87,10 +78,8 @@ async function main() {
subdivisions, subdivisions,
logger: generatorsLogger logger: generatorsLogger
}).generate() }).generate()
logger.info('generating index.language.m3u...') logger.info('generating index.language.m3u...')
await new IndexLanguageGenerator({ streams, logger: generatorsLogger }).generate() await new IndexLanguageGenerator({ streams, logger: generatorsLogger }).generate()
logger.info('generating index.region.m3u...') logger.info('generating index.region.m3u...')
await new IndexRegionGenerator({ streams, regions, logger: generatorsLogger }).generate() await new IndexRegionGenerator({ streams, regions, logger: generatorsLogger }).generate()
} }
@ -110,13 +99,13 @@ async function loadStreams({
const groupedCategories = categories.keyBy(category => category.id) const groupedCategories = categories.keyBy(category => category.id)
const groupedLanguages = languages.keyBy(language => language.code) const groupedLanguages = languages.keyBy(language => language.code)
const db = new Database(DB_DIR) const storage = new Storage(STREAMS_DIR)
const dbStreams = await db.load('streams.db') const parser = new PlaylistParser({ storage })
const docs = await dbStreams.find({}) const files = await storage.list('**/*.m3u')
const streams = new Collection(docs as any[]) let streams = await parser.parse(files)
.map((data: any) => new Stream(data))
streams = streams
.orderBy([(stream: Stream) => stream.channel, (stream: Stream) => stream.url], ['asc', 'asc']) .orderBy([(stream: Stream) => stream.channel, (stream: Stream) => stream.url], ['asc', 'asc'])
.uniqBy((stream: Stream) => stream.channel || _.uniqueId())
.map((stream: Stream) => { .map((stream: Stream) => {
const channel: Channel | undefined = groupedChannels.get(stream.channel) const channel: Channel | undefined = groupedChannels.get(stream.channel)

View file

@ -1,6 +1,6 @@
import { DB_DIR, DATA_DIR, STREAMS_DIR } from '../../constants' import { DATA_DIR, STREAMS_DIR } from '../../constants'
import { Database, Storage, Logger, Collection, Dictionary, IssueLoader } from '../../core' import { Storage, Logger, Collection, Dictionary, IssueLoader, PlaylistParser } from '../../core'
import { Stream, Playlist, Channel } from '../../models' import { Stream, Playlist, Channel, Issue } from '../../models'
let processedIssues = new Collection() let processedIssues = new Collection()
let streams: Collection let streams: Collection
@ -10,19 +10,19 @@ async function main() {
const logger = new Logger({ disabled: true }) const logger = new Logger({ disabled: true })
const loader = new IssueLoader() const loader = new IssueLoader()
logger.info('loading streams...') logger.info('loading channels from api...')
const db = new Database(DB_DIR) const dataStorage = new Storage(DATA_DIR)
const docs = await db.load('streams.db') const channelsContent = await dataStorage.json('channels.json')
const dbStreams = await docs.find({})
streams = new Collection(dbStreams as any[]).map(data => new Stream(data))
const storage = new Storage(DATA_DIR)
const channelsContent = await storage.json('channels.json')
groupedChannels = new Collection(channelsContent) groupedChannels = new Collection(channelsContent)
.map(data => new Channel(data)) .map(data => new Channel(data))
.keyBy((channel: Channel) => channel.id) .keyBy((channel: Channel) => channel.id)
logger.info('loading streams...')
const streamsStorage = new Storage(STREAMS_DIR)
const parser = new PlaylistParser({ storage: streamsStorage })
const files = await streamsStorage.list('**/*.m3u')
streams = await parser.parse(files)
logger.info('removing broken streams...') logger.info('removing broken streams...')
await removeStreams(loader) await removeStreams(loader)
@ -32,25 +32,7 @@ async function main() {
logger.info('add new streams...') logger.info('add new streams...')
await addStreams(loader) await addStreams(loader)
logger.info('normalizing links...')
streams = streams.map(stream => {
stream.normalizeURL()
return stream
})
logger.info('sorting links...')
streams = streams.orderBy(
[
(stream: Stream) => stream.name,
(stream: Stream) => parseInt(stream.quality.replace('p', '')),
(stream: Stream) => stream.label,
(stream: Stream) => stream.url
],
['asc', 'desc', 'asc', 'asc']
)
logger.info('saving...') logger.info('saving...')
const streamsStorage = new Storage(STREAMS_DIR)
const groupedStreams = streams.groupBy((stream: Stream) => stream.filepath) const groupedStreams = streams.groupBy((stream: Stream) => stream.filepath)
for (let filepath of groupedStreams.keys()) { for (let filepath of groupedStreams.keys()) {
const streams = groupedStreams.get(filepath) || [] const streams = groupedStreams.get(filepath) || []
@ -69,19 +51,22 @@ main()
async function removeStreams(loader: IssueLoader) { async function removeStreams(loader: IssueLoader) {
const issues = await loader.load({ labels: ['streams:remove', 'approved'] }) const issues = await loader.load({ labels: ['streams:remove', 'approved'] })
issues.forEach((data: Dictionary) => { issues.forEach((issue: Issue) => {
const data = issue.data
if (data.missing('stream_url')) return if (data.missing('stream_url')) return
const removed = streams.remove((_stream: Stream) => _stream.url === data.get('stream_url')) const removed = streams.remove((_stream: Stream) => _stream.url === data.get('stream_url'))
if (removed.notEmpty()) { if (removed.notEmpty()) {
processedIssues.add(data.get('issue_number')) processedIssues.add(issue.number)
} }
}) })
} }
async function editStreams(loader: IssueLoader) { async function editStreams(loader: IssueLoader) {
const issues = await loader.load({ labels: ['streams:edit', 'approved'] }) const issues = await loader.load({ labels: ['streams:edit', 'approved'] })
issues.forEach((data: Dictionary) => { issues.forEach((issue: Issue) => {
const data = issue.data
if (data.missing('stream_url')) return if (data.missing('stream_url')) return
let stream = streams.first( let stream = streams.first(
@ -111,13 +96,14 @@ async function editStreams(loader: IssueLoader) {
streams.remove((_stream: Stream) => _stream.channel === stream.channel) streams.remove((_stream: Stream) => _stream.channel === stream.channel)
streams.add(stream) streams.add(stream)
processedIssues.add(data.get('issue_number')) processedIssues.add(issue.number)
}) })
} }
async function addStreams(loader: IssueLoader) { async function addStreams(loader: IssueLoader) {
const issues = await loader.load({ labels: ['streams:add', 'approved'] }) const issues = await loader.load({ labels: ['streams:add', 'approved'] })
issues.forEach((data: Dictionary) => { issues.forEach((issue: Issue) => {
const data = issue.data
if (data.missing('channel_id') || data.missing('stream_url')) return if (data.missing('channel_id') || data.missing('stream_url')) return
if (streams.includes((_stream: Stream) => _stream.url === data.get('stream_url'))) return if (streams.includes((_stream: Stream) => _stream.url === data.get('stream_url'))) return
@ -138,6 +124,6 @@ async function addStreams(loader: IssueLoader) {
}) })
streams.add(stream) streams.add(stream)
processedIssues.add(data.get('issue_number')) processedIssues.add(issue.number)
}) })
} }

View file

@ -5,7 +5,6 @@ import chalk from 'chalk'
import { transliterate } from 'transliteration' import { transliterate } from 'transliteration'
import _ from 'lodash' import _ from 'lodash'
import { DATA_DIR, STREAMS_DIR } from '../../constants' import { DATA_DIR, STREAMS_DIR } from '../../constants'
import path from 'path'
program.argument('[filepath]', 'Path to file to validate').parse(process.argv) program.argument('[filepath]', 'Path to file to validate').parse(process.argv)
@ -19,73 +18,70 @@ async function main() {
const logger = new Logger() const logger = new Logger()
logger.info(`loading blocklist...`) logger.info(`loading blocklist...`)
const storage = new Storage(DATA_DIR) const dataStorage = new Storage(DATA_DIR)
const channelsContent = await storage.json('channels.json') const channelsContent = await dataStorage.json('channels.json')
const channels = new Collection(channelsContent).map(data => new Channel(data)) const channels = new Collection(channelsContent).map(data => new Channel(data))
const blocklistContent = await storage.json('blocklist.json') const blocklistContent = await dataStorage.json('blocklist.json')
const blocklist = new Collection(blocklistContent).map(data => new Blocked(data)) const blocklist = new Collection(blocklistContent).map(data => new Blocked(data))
logger.info(`found ${blocklist.count()} records`) logger.info(`found ${blocklist.count()} records`)
let errors = new Collection() logger.info('loading streams...')
let warnings = new Collection()
const streamsStorage = new Storage(STREAMS_DIR) const streamsStorage = new Storage(STREAMS_DIR)
const parser = new PlaylistParser({ storage: streamsStorage }) const parser = new PlaylistParser({ storage: streamsStorage })
const files = program.args.length ? program.args : await streamsStorage.list('**/*.m3u') const files = program.args.length ? program.args : await streamsStorage.list('**/*.m3u')
for (const filepath of files) { const streams = await parser.parse(files)
const file = new File(filepath)
if (file.extension() !== 'm3u') continue
logger.info(`found ${streams.count()} streams`)
let errors = new Collection()
let warnings = new Collection()
let groupedStreams = streams.groupBy((stream: Stream) => stream.filepath)
for (const filepath of groupedStreams.keys()) {
const streams = groupedStreams.get(filepath)
if (!streams) continue
const file = new File(filepath)
const [, countryCode] = file.basename().match(/([a-z]{2})(|_.*)\.m3u/i) || [null, ''] const [, countryCode] = file.basename().match(/([a-z]{2})(|_.*)\.m3u/i) || [null, '']
const log = new Collection() const log = new Collection()
const buffer = new Dictionary() const buffer = new Dictionary()
try { streams.forEach((stream: Stream) => {
const relativeFilepath = filepath.replace(path.normalize(STREAMS_DIR), '') const channelNotInDatabase =
const playlist = await parser.parse(relativeFilepath) stream.channel && !channels.first((channel: Channel) => channel.id === stream.channel)
playlist.streams.forEach((stream: Stream) => { if (channelNotInDatabase) {
const channelNotInDatabase = log.add({
stream.channel && !channels.first((channel: Channel) => channel.id === stream.channel) type: 'warning',
if (channelNotInDatabase) { line: stream.line,
log.add({ message: `"${stream.channel}" is not in the database`
type: 'warning', })
line: stream.line, }
message: `"${stream.channel}" is not in the database`
})
}
const alreadyOnPlaylist = stream.url && buffer.has(stream.url) const alreadyOnPlaylist = stream.url && buffer.has(stream.url)
if (alreadyOnPlaylist) { if (alreadyOnPlaylist) {
log.add({ log.add({
type: 'warning', type: 'warning',
line: stream.line, line: stream.line,
message: `"${stream.url}" is already on the playlist` message: `"${stream.url}" is already on the playlist`
}) })
} else { } else {
buffer.set(stream.url, true) buffer.set(stream.url, true)
} }
const channelId = generateChannelId(stream.name, countryCode) const channelId = generateChannelId(stream.name, countryCode)
const blocked = blocklist.first( const blocked = blocklist.first(
blocked => blocked =>
stream.channel.toLowerCase() === blocked.channel.toLowerCase() || stream.channel.toLowerCase() === blocked.channel.toLowerCase() ||
channelId.toLowerCase() === blocked.channel.toLowerCase() channelId.toLowerCase() === blocked.channel.toLowerCase()
) )
if (blocked) { if (blocked) {
log.add({ log.add({
type: 'error', type: 'error',
line: stream.line, line: stream.line,
message: `"${stream.name}" is on the blocklist due to claims of copyright holders (${blocked.ref})` message: `"${stream.name}" is on the blocklist due to claims of copyright holders (${blocked.ref})`
}) })
} }
}) })
} catch (error) {
log.add({
type: 'error',
line: 0,
message: error.message.toLowerCase()
})
}
if (log.notEmpty()) { if (log.notEmpty()) {
logger.info(`\n${chalk.underline(filepath)}`) logger.info(`\n${chalk.underline(filepath)}`)

View file

@ -1,36 +1,43 @@
import { DATA_DIR } from '../../constants' import { DATA_DIR, STREAMS_DIR } from '../../constants'
import { Collection, Dictionary, IssueLoader, Storage } from '../../core' import { Collection, Dictionary, IssueLoader, Storage, Logger, PlaylistParser } from '../../core'
import { Blocked, Channel, Stream } from '../../models' import { Blocked, Channel, Issue, Stream } from '../../models'
async function main() { async function main() {
const logger = new Logger()
const loader = new IssueLoader() const loader = new IssueLoader()
const storage = new Storage(DATA_DIR) const storage = new Storage(DATA_DIR)
logger.info('loading channels from api...')
const channelsContent = await storage.json('channels.json') const channelsContent = await storage.json('channels.json')
const groupedChannels = new Collection(channelsContent) const groupedChannels = new Collection(channelsContent)
.map(data => new Channel(data)) .map(data => new Channel(data))
.groupBy((channel: Channel) => channel.id) .groupBy((channel: Channel) => channel.id)
const streamsContent = await storage.json('streams.json') logger.info('loading blocklist from api...')
const groupedStreams = new Collection(streamsContent)
.map(data => new Stream(data))
.groupBy((stream: Stream) => stream.url)
const blocklistContent = await storage.json('blocklist.json') const blocklistContent = await storage.json('blocklist.json')
const groupedBlocklist = new Collection(blocklistContent) const groupedBlocklist = new Collection(blocklistContent)
.map(data => new Blocked(data)) .map(data => new Blocked(data))
.groupBy((blocked: Blocked) => blocked.channel) .groupBy((blocked: Blocked) => blocked.channel)
logger.info('loading streams...')
const streamsStorage = new Storage(STREAMS_DIR)
const parser = new PlaylistParser({ storage: streamsStorage })
const files = await streamsStorage.list('**/*.m3u')
const streams = await parser.parse(files)
const groupedStreams = streams.groupBy((stream: Stream) => stream.url)
logger.info('loading issue from github...')
const issues = await loader.load({ labels: ['streams:add'] }) const issues = await loader.load({ labels: ['streams:add'] })
logger.info('creating report...')
const buffer = new Dictionary() const buffer = new Dictionary()
const report = issues.map(data => { const report = issues.map((issue: Issue) => {
const channelId = data.get('channel_id') || undefined const channelId = issue.data.get('channel_id') || undefined
const streamUrl = data.get('stream_url') || undefined const streamUrl = issue.data.get('stream_url') || undefined
const result = new Dictionary({ const result = new Dictionary({
issueNumber: data.get('issue_number'), issueNumber: issue.number,
channelId, channelId,
status: undefined status: undefined
}) })

View file

@ -5,7 +5,6 @@ export const README_DIR = process.env.README_DIR || './.readme'
export const API_DIR = process.env.API_DIR || './.api' export const API_DIR = process.env.API_DIR || './.api'
export const DATA_DIR = process.env.DATA_DIR || './temp/data' export const DATA_DIR = process.env.DATA_DIR || './temp/data'
export const LOGS_DIR = process.env.LOGS_DIR || './temp/logs' export const LOGS_DIR = process.env.LOGS_DIR || './temp/logs'
export const DB_DIR = process.env.DB_DIR || './temp/database'
export const TESTING = process.env.NODE_ENV === 'test' ? true : false export const TESTING = process.env.NODE_ENV === 'test' ? true : false
export const OWNER = 'iptv-org' export const OWNER = 'iptv-org'
export const REPO = 'iptv' export const REPO = 'iptv'

View file

@ -1,22 +0,0 @@
import Datastore from '@seald-io/nedb'
import * as path from 'path'
export class Database {
rootDir: string
constructor(rootDir: string) {
this.rootDir = rootDir
}
async load(filepath: string) {
const absFilepath = path.join(this.rootDir, filepath)
return new Datastore({
filename: path.resolve(absFilepath),
autoload: true,
onload: (error: Error): any => {
if (error) console.error(error.message)
}
})
}
}

View file

@ -1,4 +1,3 @@
export * from './database'
export * from './logger' export * from './logger'
export * from './playlistParser' export * from './playlistParser'
export * from './numberParser' export * from './numberParser'

View file

@ -1,33 +1,31 @@
import { Dictionary } from './' import { Dictionary } from './'
import { Issue } from '../models'
import _ from 'lodash'
const FIELDS = new Dictionary({
'Channel ID': 'channel_id',
'Channel ID (required)': 'channel_id',
'Broken Link': 'stream_url',
'Stream URL': 'stream_url',
'Stream URL (optional)': 'stream_url',
'Stream URL (required)': 'stream_url',
Label: 'label',
Quality: 'quality',
'Channel Name': 'channel_name',
'HTTP User-Agent': 'user_agent',
'HTTP Referrer': 'http_referrer',
Reason: 'reason',
'What happened to the stream?': 'reason',
'Possible Replacement (optional)': 'possible_replacement',
Notes: 'notes',
'Notes (optional)': 'notes'
})
export class IssueParser { export class IssueParser {
parse(issue: any): Dictionary { parse(issue: any): Issue {
const data = new Dictionary()
data.set('issue_number', issue.number)
const idDict = new Dictionary({
'Channel ID': 'channel_id',
'Channel ID (required)': 'channel_id',
'Broken Link': 'stream_url',
'Stream URL': 'stream_url',
'Stream URL (optional)': 'stream_url',
'Stream URL (required)': 'stream_url',
Label: 'label',
Quality: 'quality',
'Channel Name': 'channel_name',
'HTTP User-Agent': 'user_agent',
'HTTP Referrer': 'http_referrer',
Reason: 'reason',
'What happened to the stream?': 'reason',
'Possible Replacement (optional)': 'possible_replacement',
Notes: 'notes',
'Notes (optional)': 'notes'
})
const fields = issue.body.split('###') const fields = issue.body.split('###')
if (!fields.length) return data const data = new Dictionary()
fields.forEach((field: string) => { fields.forEach((field: string) => {
let [_label, , _value] = field.split(/\r?\n/) let [_label, , _value] = field.split(/\r?\n/)
_label = _label ? _label.trim() : '' _label = _label ? _label.trim() : ''
@ -35,7 +33,7 @@ export class IssueParser {
if (!_label || !_value) return data if (!_label || !_value) return data
const id: string = idDict.get(_label) const id: string = FIELDS.get(_label)
const value: string = _value === '_No response_' || _value === 'None' ? '' : _value const value: string = _value === '_No response_' || _value === 'None' ? '' : _value
if (!id) return if (!id) return
@ -43,6 +41,6 @@ export class IssueParser {
data.set(id, value) data.set(id, value)
}) })
return data return new Issue({ number: issue.number, data })
} }
} }

View file

@ -1,6 +1,8 @@
import parser from 'iptv-playlist-parser' import parser from 'iptv-playlist-parser'
import { Playlist, Stream } from '../models' import { Stream } from '../models'
import { Collection, Storage } from './' import { Collection, Storage } from './'
import path from 'path'
import { STREAMS_DIR } from '../constants'
export class PlaylistParser { export class PlaylistParser {
storage: Storage storage: Storage
@ -9,7 +11,19 @@ export class PlaylistParser {
this.storage = storage this.storage = storage
} }
async parse(filepath: string): Promise<Playlist> { async parse(files: string[]): Promise<Collection> {
let streams = new Collection()
for (let filepath of files) {
const relativeFilepath = filepath.replace(path.normalize(STREAMS_DIR), '')
const _streams: Collection = await this.parseFile(relativeFilepath)
streams = streams.concat(_streams)
}
return streams
}
async parseFile(filepath: string): Promise<Collection> {
const streams = new Collection() const streams = new Collection()
const content = await this.storage.read(filepath) const content = await this.storage.read(filepath)
@ -32,7 +46,7 @@ export class PlaylistParser {
streams.add(stream) streams.add(stream)
}) })
return new Playlist(streams) return streams
} }
} }

View file

@ -10,10 +10,12 @@ export class Storage {
this.rootDir = path.normalize(rootDir || './') this.rootDir = path.normalize(rootDir || './')
} }
list(pattern: string): Promise<string[]> { async list(pattern: string): Promise<string[]> {
return glob(pattern, { const files = await glob(pattern, {
cwd: this.rootDir cwd: this.rootDir
}) })
return files.sort()
} }
async createDir(dir: string): Promise<void> { async createDir(dir: string): Promise<void> {

View file

@ -1,3 +1,4 @@
export * from './issue'
export * from './playlist' export * from './playlist'
export * from './blocked' export * from './blocked'
export * from './stream' export * from './stream'

16
scripts/models/issue.ts Normal file
View file

@ -0,0 +1,16 @@
import { Dictionary } from '../core'
type IssueProps = {
number: number
data: Dictionary
}
export class Issue {
number: number
data: Dictionary
constructor({ number, data }: IssueProps) {
this.number = number
this.data = data
}
}

View file

@ -2,4 +2,4 @@
#EXTINF:-1 tvg-id="AndorraTV.ad",ATV (720p) #EXTINF:-1 tvg-id="AndorraTV.ad",ATV (720p)
https://videos.rtva.ad/live/rtva/playlist.m3u8 https://videos.rtva.ad/live/rtva/playlist.m3u8
#EXTINF:-1 tvg-id="LoriaTV.ad",Lòria TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="LoriaTV.ad",Lòria TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCCCnrECJpv84QKM4olodZOQ.m3u8 https://ythls.onrender.com/channel/UCCCnrECJpv84QKM4olodZOQ.m3u8

View file

@ -33,23 +33,23 @@ https://raw.githubusercontent.com/taodicakhia/IPTV_Exception/master/channels/af/
https://d10rltuy0iweup.cloudfront.net/ATNINT/myStream/playlist.m3u8 https://d10rltuy0iweup.cloudfront.net/ATNINT/myStream/playlist.m3u8
#EXTINF:-1 tvg-id="SharqRadioTV.af",Sharq Radio TV (1080p) #EXTINF:-1 tvg-id="SharqRadioTV.af",Sharq Radio TV (1080p)
https://59nyqa5elwap-hls-live.5centscdn.com/Sharq/eec89088ee408b80387155272b113256.sdp/playlist.m3u8 https://59nyqa5elwap-hls-live.5centscdn.com/Sharq/eec89088ee408b80387155272b113256.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="NoorTV.af",Noor TV (720p) #EXTINF:-1 tvg-id="NoorTV.af",Noor TV (720p)
https://www.hewadwal.com:19360/noortv_abr/noortv_abr.m3u8 https://www.hewadwal.com:19360/noortv_abr/noortv_abr.m3u8
#EXTINF:-1 tvg-id="RTA.af",RTA (720p) #EXTINF:-1 tvg-id="RTA.af",RTA (720p)
https://hls.rta.live/hls/stream.m3u8 https://hls.rta.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="AfghanNobelMovies.ca",Afghan Nobel Movies (720p) #EXTINF:-1 tvg-id="AfghanNobelMovies.ca",Afghan Nobel Movies (720p)
https://live.relentlessinnovations.net:1936/afghannobel/afghannobel/playlist.m3u8 https://live.relentlessinnovations.net:1936/afghannobel/afghannobel/playlist.m3u8
#EXTINF:-1 tvg-id="ImanTV.af",Iman TV (480p) #EXTINF:-1 tvg-id="ImanTV.af",Iman TV (480p)
https://live.relentlessinnovations.net:1936/imantv/imantv/playlist.m3u8 https://live.relentlessinnovations.net:1936/imantv/imantv/playlist.m3u8
#EXTINF:-1 tvg-id="SohailTV.ca",Sohail TV (1080p) #EXTINF:-1 tvg-id="SohailTV.ca",Sohail TV (1080p)
https://iptv.sohailtv.com/sohail/playlist/index.m3u8 https://iptv.sohailtv.com/sohail/playlist/index.m3u8
#EXTINF:-1 tvg-id="WataneMaaTV.ca",Watan-e-Maa TV (720p) #EXTINF:-1 tvg-id="WataneMaaTV.ca",Watan-e-Maa TV (720p)
https://5caf24a595d94.streamlock.net:1937/8132/8132/playlist.m3u8 https://5caf24a595d94.streamlock.net:1937/8132/8132/playlist.m3u8
#EXTINF:-1 tvg-id="EslahTV.af",Eslah TV (720p) #EXTINF:-1 tvg-id="EslahTV.af",Eslah TV (720p)
https://eslahtvhls.wns.live/hls/stream.m3u8 https://eslahtvhls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="DunyaNawTV.af",Dunya Naw TV (576p) #EXTINF:-1 tvg-id="DunyaNawTV.af",Dunya Naw TV (576p)
https://dunyanhls.wns.live/hls/stream.m3u8 https://dunyanhls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="ABNAfghanistan.us",ABN Afghanistan (540p) #EXTINF:-1 tvg-id="ABNAfghanistan.us",ABN Afghanistan (540p)
https://rtmp2.abnvideos.com/hls/abnafghanistan.m3u8 https://rtmp2.abnvideos.com/hls/abnafghanistan.m3u8
#EXTINF:-1 tvg-id="SadaEHaqTV.us",Sada-E-Haq TV (720p) #EXTINF:-1 tvg-id="SadaEHaqTV.us",Sada-E-Haq TV (720p)
https://live.relentlessinnovations.net:1936/sadaehaq/sadaehaq/playlist.m3u8 https://live.relentlessinnovations.net:1936/sadaehaq/sadaehaq/playlist.m3u8

View file

@ -517,7 +517,7 @@ https://stmv1.cnarlatam.com/cinesuspenso/cinesuspenso/playlist.m3u8
https://stmv1.cnarlatam.com/cineterror/cineterror/playlist.m3u8 https://stmv1.cnarlatam.com/cineterror/cineterror/playlist.m3u8
#EXTINF:-1 tvg-id="ZondaTV.ar",Zonda TV (432p) [Geo-blocked] #EXTINF:-1 tvg-id="ZondaTV.ar",Zonda TV (432p) [Geo-blocked]
https://cnnsanjuan.com:9999/zonda/zonda/playlist.m3u8 https://cnnsanjuan.com:9999/zonda/zonda/playlist.m3u8
#EXTINF:-1 tvg-id="AcequiaTV.ar",Acequia TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="AcequiaTV.ar",Acequia TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCrYFBjFOP_zlFzsif9XDhgw.m3u8 https://ythls.onrender.com/channel/UCrYFBjFOP_zlFzsif9XDhgw.m3u8
#EXTINF:-1 tvg-id="CableImagenArmstrong.ar",Cable Imagen Armstrong (540p) [Not 24/7] #EXTINF:-1 tvg-id="CableImagenArmstrong.ar",Cable Imagen Armstrong (540p) [Not 24/7]
https://stream.arcast.com.ar/casse/casse/playlist.m3u8 https://stream.arcast.com.ar/casse/casse/playlist.m3u8
@ -551,7 +551,7 @@ https://videostream.shockmedia.com.ar:19360/canal4telecondor/canal4telecondor.m3
https://stmv1.cnarlatam.com/canal5pueblo/canal5pueblo/playlist.m3u8 https://stmv1.cnarlatam.com/canal5pueblo/canal5pueblo/playlist.m3u8
#EXTINF:-1 tvg-id="CanalE.ar",Canal E (720p) #EXTINF:-1 tvg-id="CanalE.ar",Canal E (720p)
https://unlimited1-us.dps.live/perfiltv/perfiltv.smil/playlist.m3u8 https://unlimited1-us.dps.live/perfiltv/perfiltv.smil/playlist.m3u8
#EXTINF:-1 tvg-id="LinkTV.ar",Link TV (1080p) #EXTINF:-1 tvg-id="LinkTV.ar",Link TV (1080p)
https://panel.dattalive.com/8128_1/8128_1/playlist.m3u8 https://panel.dattalive.com/8128_1/8128_1/playlist.m3u8
#EXTINF:-1 tvg-id="MalbecPlay.ar",Malbec Play (1080p) #EXTINF:-1 tvg-id="MalbecPlay.ar",Malbec Play (1080p)
https://streamlov.alsolnet.com/malbecplay/live/playlist.m3u8 https://streamlov.alsolnet.com/malbecplay/live/playlist.m3u8

View file

@ -63,25 +63,25 @@ https://live.seo.tv.bo/live/6SEO.m3u8
https://live.seo.tv.bo/live/7SEO.m3u8 https://live.seo.tv.bo/live/7SEO.m3u8
#EXTINF:-1 tvg-id="CineramaTelevision.bo",Cinerama TV (480p) [Not 24/7] #EXTINF:-1 tvg-id="CineramaTelevision.bo",Cinerama TV (480p) [Not 24/7]
https://5d00db0e0fcd5.streamlock.net/7062/7062/playlist.m3u8 https://5d00db0e0fcd5.streamlock.net/7062/7062/playlist.m3u8
#EXTINF:-1 tvg-id="CVC.bo",CVC (540p) #EXTINF:-1 tvg-id="CVC.bo",CVC (540p)
https://5d00db0e0fcd5.streamlock.net/7034/7034/playlist.m3u8 https://5d00db0e0fcd5.streamlock.net/7034/7034/playlist.m3u8
#EXTINF:-1 tvg-id="GogoPlayTV.bo",Gogo Play TV (720p) #EXTINF:-1 tvg-id="GogoPlayTV.bo",Gogo Play TV (720p)
https://tgn.bozztv.com/ssh101/ssh101/gogoplay/playlist.m3u8 https://tgn.bozztv.com/ssh101/ssh101/gogoplay/playlist.m3u8
#EXTINF:-1 tvg-id="Gigavision.bo",Gigavisión (1080p) [Not 24/7] #EXTINF:-1 tvg-id="Gigavision.bo",Gigavisión (1080p) [Not 24/7]
https://master.tucableip.com//gigavision/playlist.m3u8 https://master.tucableip.com//gigavision/playlist.m3u8
#EXTINF:-1 tvg-id="NeoTV.bo",Neo TV (720p) #EXTINF:-1 tvg-id="NeoTV.bo",Neo TV (720p)
https://tv1.mediacp.eu:3661/live/rlbpwxvhlive.m3u8 https://tv1.mediacp.eu:3661/live/rlbpwxvhlive.m3u8
#EXTINF:-1 tvg-id="PTV.bo",PTV (720p) #EXTINF:-1 tvg-id="PTV.bo",PTV (720p)
https://xhateaec.com:8800/hls/Pacenisima/Pacenisima/de5454962ef31da329d3a70355e62dfe/index.m3u8 https://xhateaec.com:8800/hls/Pacenisima/Pacenisima/de5454962ef31da329d3a70355e62dfe/index.m3u8
#EXTINF:-1 tvg-id="RedCCTV.bo",Red CCTV (480p) #EXTINF:-1 tvg-id="RedCCTV.bo",Red CCTV (480p)
https://solo.disfrutaenlared.com:1936/redcctv/redcctv/playlist.m3u8 https://solo.disfrutaenlared.com:1936/redcctv/redcctv/playlist.m3u8
#EXTINF:-1 tvg-id="TLEstrella.bo",TL Estrella (720p) #EXTINF:-1 tvg-id="TLEstrella.bo",TL Estrella (720p)
https://solo.disfrutaenlared.com:1936/teleestrella/teleestrella/playlist.m3u8 https://solo.disfrutaenlared.com:1936/teleestrella/teleestrella/playlist.m3u8
#EXTINF:-1 tvg-id="Megavision.bo",Megavisión (720p) #EXTINF:-1 tvg-id="Megavision.bo",Megavisión (720p)
https://video.live.com.bo:3699/live/megavisionlive.m3u8 https://video.live.com.bo:3699/live/megavisionlive.m3u8
#EXTINF:-1 tvg-id="UnivalleTelevision.bo",Univalle Televisión (1080p) #EXTINF:-1 tvg-id="UnivalleTelevision.bo",Univalle Televisión (1080p)
https://master.tucableip.com/univalletv/playlist.m3u8 https://master.tucableip.com/univalletv/playlist.m3u8
#EXTINF:-1 tvg-id="AgendaMineraTV.bo",Agenda Minera TV (720p) #EXTINF:-1 tvg-id="AgendaMineraTV.bo",Agenda Minera TV (720p)
https://srv.panelcast.net/amitel/amitel/playlist.m3u8 https://srv.panelcast.net/amitel/amitel/playlist.m3u8
#EXTINF:-1 tvg-id="DeltaTV.bo",Delta TV (480p) [Not 24/7] #EXTINF:-1 tvg-id="DeltaTV.bo",Delta TV (480p) [Not 24/7]
https://vsrv1.az-streamingserver.com:3068/live/vdsocmnulive.m3u8 https://vsrv1.az-streamingserver.com:3068/live/vdsocmnulive.m3u8
@ -89,13 +89,13 @@ https://vsrv1.az-streamingserver.com:3068/live/vdsocmnulive.m3u8
https://cdn.digital.com.bo/__cl/cg:sworigin2/__c/UNITEL/__op/hls-default/__f/index.m3u8 https://cdn.digital.com.bo/__cl/cg:sworigin2/__c/UNITEL/__op/hls-default/__f/index.m3u8
#EXTINF:-1 tvg-id="TelevisionCristal.bo",Cristal TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="TelevisionCristal.bo",Cristal TV (720p) [Not 24/7]
https://master.tucableip.com/cristaltv/index.m3u8 https://master.tucableip.com/cristaltv/index.m3u8
#EXTINF:-1 tvg-id="AYNITV.bo",AYNI TV (720p) #EXTINF:-1 tvg-id="AYNITV.bo",AYNI TV (720p)
http://hd.istbolivia.com:1935/aynitv/aynitv/playlist.m3u8 http://hd.istbolivia.com:1935/aynitv/aynitv/playlist.m3u8
#EXTINF:-1 tvg-id="TVShowOruro.bo",TV Show Oruro (480p) #EXTINF:-1 tvg-id="TVShowOruro.bo",TV Show Oruro (480p)
http://tv.istbolivia.com:1935/tvshow/tvshow/playlist.m3u8 http://tv.istbolivia.com:1935/tvshow/tvshow/playlist.m3u8
#EXTINF:-1 tvg-id="Canal50RTVE.bo",Canal 50 RTVE Punata (720p) #EXTINF:-1 tvg-id="Canal50RTVE.bo",Canal 50 RTVE Punata (720p)
https://vdo.grupolimalive.com:3241/live/encuentrotvlive.m3u8 https://vdo.grupolimalive.com:3241/live/encuentrotvlive.m3u8
#EXTINF:-1 tvg-id="CoralTV.bo",Coral TV (480p) #EXTINF:-1 tvg-id="CoralTV.bo",Coral TV (480p)
https://tv.mediacp.eu:8081/coraltv/index.m3u8 https://tv.mediacp.eu:8081/coraltv/index.m3u8
#EXTINF:-1 tvg-id="ImperialTV.bo",Imperial TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="ImperialTV.bo",Imperial TV (720p) [Not 24/7]
https://vdo.grupolimalive.com:3162/live/imperialtvlive.m3u8 https://vdo.grupolimalive.com:3162/live/imperialtvlive.m3u8

View file

@ -581,9 +581,9 @@ http://painelvj.com.br/tvaguaboa2/tvaguaboa2.sdp/playlist.m3u8
https://stmv1.srvstm.com/wtvbrasil/wtvbrasil/playlist.m3u8 https://stmv1.srvstm.com/wtvbrasil/wtvbrasil/playlist.m3u8
#EXTINF:-1 tvg-id="ForaTedioTV.br",Fora Tédio TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="ForaTedioTV.br",Fora Tédio TV (720p) [Not 24/7]
http://stream.foratedio.com/foratedio/foratedio/playlist.m3u8 http://stream.foratedio.com/foratedio/foratedio/playlist.m3u8
#EXTINF:-1 tvg-id="SBTRio.br",SBT Rio (720p) [Not 24/7] [Geo-blocked] #EXTINF:-1 tvg-id="SBTRio.br",SBT Rio (720p) [Not 24/7] [Geo-blocked]
https://ythls.onrender.com/channel/UCsRfBAspa72ExrsN347W2xg.m3u8 https://ythls.onrender.com/channel/UCsRfBAspa72ExrsN347W2xg.m3u8
#EXTINF:-1 tvg-id="SBTRioGrande.br",SBT RS (720p) [Not 24/7] [Geo-blocked] #EXTINF:-1 tvg-id="SBTRioGrande.br",SBT RS (720p) [Not 24/7] [Geo-blocked]
https://ythls.onrender.com/channel/UCHDfPYXReWt5EVIzBA6TzOQ.m3u8 https://ythls.onrender.com/channel/UCHDfPYXReWt5EVIzBA6TzOQ.m3u8
#EXTINF:-1 tvg-id="BandMinas.br",Band Minas (720p) [Not 24/7] #EXTINF:-1 tvg-id="BandMinas.br",Band Minas (720p) [Not 24/7]
http://evpp.mm.uol.com.br:1935/bandpracas/debatemg/playlist.m3u8 http://evpp.mm.uol.com.br:1935/bandpracas/debatemg/playlist.m3u8
@ -615,13 +615,13 @@ https://cdn.jmvstream.com/w/LVW-8719/LVW8719_AcLVAxWy5J/playlist.m3u8
https://stmv3.duvoxtv.com.br/tvcariocas/tvcariocas/playlist.m3u8 https://stmv3.duvoxtv.com.br/tvcariocas/tvcariocas/playlist.m3u8
#EXTINF:-1 tvg-id="RioTVCamara.br",Rio TV Câmara (1080p) [Not 24/7] #EXTINF:-1 tvg-id="RioTVCamara.br",Rio TV Câmara (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCmkgkpuRbUGzwLSpnV2nevQ.m3u8 https://ythls.onrender.com/channel/UCmkgkpuRbUGzwLSpnV2nevQ.m3u8
#EXTINF:-1 tvg-id="TVAldeia.br",TV Aldeia (720p) #EXTINF:-1 tvg-id="TVAldeia.br",TV Aldeia (720p)
https://stmv1.samcast.com.br/giovane7843/giovane7843/playlist.m3u8 https://stmv1.samcast.com.br/giovane7843/giovane7843/playlist.m3u8
#EXTINF:-1 tvg-id="TVTudoBH.br",TV Tudo BH (720p) #EXTINF:-1 tvg-id="TVTudoBH.br",TV Tudo BH (720p)
https://tv02.zas.media:1936/tvtudo/tvtudo/playlist.m3u8 https://tv02.zas.media:1936/tvtudo/tvtudo/playlist.m3u8
#EXTINF:-1 tvg-id="RedeTVMais.br",Rede TV! Mais (720p) #EXTINF:-1 tvg-id="RedeTVMais.br",Rede TV! Mais (720p)
https://stmv7.samcast.com.br/playredetvmais/playredetvmais/playlist.m3u8 https://stmv7.samcast.com.br/playredetvmais/playredetvmais/playlist.m3u8
#EXTINF:-1 tvg-id="RedeSul.br",Rede Sul (720p) #EXTINF:-1 tvg-id="RedeSul.br",Rede Sul (720p)
https://video05.logicahost.com.br/tvurbana/tvurbana/playlist.m3u8 https://video05.logicahost.com.br/tvurbana/tvurbana/playlist.m3u8
#EXTINF:-1 tvg-id="TVCamaraPortoAlegre.br",TV Câmara Porto Alegre (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TVCamaraPortoAlegre.br",TV Câmara Porto Alegre (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC-0IsdHsbWQcZolu66jkQZQ.m3u8 https://ythls.onrender.com/channel/UC-0IsdHsbWQcZolu66jkQZQ.m3u8
@ -633,11 +633,13 @@ https://5ad482a77183d.streamlock.net/marliomelohotmail.com/marliomelohotmail.com
https://ythls.onrender.com/channel/UCnLSKfHkgZ6ujEYCO9jq7Sw.m3u8 https://ythls.onrender.com/channel/UCnLSKfHkgZ6ujEYCO9jq7Sw.m3u8
#EXTINF:-1 tvg-id="TVSenado.br",TV Senado (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TVSenado.br",TV Senado (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCLgti7NuK0RuW9wty-fxPjQ.m3u8 https://ythls.onrender.com/channel/UCLgti7NuK0RuW9wty-fxPjQ.m3u8
#EXTINF:-1 tvg-id="TVGazeta.br",TV Gazeta (720p) #EXTINF:-1 tvg-id="TVGazeta.br",TV Gazeta (720p)
https://video02.logicahost.com.br/tvc21/tvc21/playlist.m3u8 https://video02.logicahost.com.br/tvc21/tvc21/playlist.m3u8
#EXTINF:-1 tvg-id="VTV.br",SBT VTV (720p) [Not 24/7] #EXTINF:-1 tvg-id="VTV.br",SBT VTV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8
#EXTINF:-1 tvg-id="SBTCuiaba.br",SBT Cuiabá (720p) #EXTINF:-1 tvg-id="SBTCuiaba.br",SBT Cuiabá (720p)
https://5ad482a77183d.streamlock.net/sbtsbtmt.com/sbtsbtmt.com/playlist.m3u8 https://5ad482a77183d.streamlock.net/sbtsbtmt.com/sbtsbtmt.com/playlist.m3u8
#EXTINF:-1 tvg-id="TVCorreio.br",TV Correio (720p) [Not 24/7] #EXTINF:-1 tvg-id="TVCorreio.br",TV Correio (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCJ4uxK_mo6gNoqk9cyvgWkw.m3u8 https://ythls.onrender.com/channel/UCJ4uxK_mo6gNoqk9cyvgWkw.m3u8
#EXTINF:-1 tvg-id="RecordTV.br",RecordTV
https://cdn.jmvstream.com/w/LVW-10842/LVW10842_513N26MDBL/chunklist.m3u8

View file

@ -17,31 +17,31 @@ http://51.254.199.122:8080/PSTV/index.m3u8
https://tv2.isi-broadcast.tech/ISI-BROADCAST/HDLIVE1/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/HDLIVE1/index.m3u8
#EXTINF:-1 tvg-id="MikubaTV.cd",Mikuba TV (480p) [Not 24/7] #EXTINF:-1 tvg-id="MikubaTV.cd",Mikuba TV (480p) [Not 24/7]
http://51.254.199.122:8080/MIKUBATV/index.m3u8 http://51.254.199.122:8080/MIKUBATV/index.m3u8
#EXTINF:-1 tvg-id="RTNC.cd",RTNC (540p) #EXTINF:-1 tvg-id="RTNC.cd",RTNC (540p)
https://tv2.isi-broadcast.tech/ISI-BROADCAST/RTNC-1/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/RTNC-1/index.m3u8
#EXTINF:-1 tvg-id="RTNC.cd",RTNC (1080p) [Not 24/7] #EXTINF:-1 tvg-id="RTNC.cd",RTNC (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCip2DNtZUPC82a_xLLTFcgA.m3u8 https://ythls.onrender.com/channel/UCip2DNtZUPC82a_xLLTFcgA.m3u8
#EXTINF:-1 tvg-id="Tele50.cd",Télé 50 (576p) #EXTINF:-1 tvg-id="Tele50.cd",Télé 50 (576p)
https://tv2.isi-broadcast.tech/ISI-BROADCAST/TELE-50/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/TELE-50/index.m3u8
#EXTINF:-1 tvg-id="DigitalCongoTV.cd",Digital Congo TV (480p) #EXTINF:-1 tvg-id="DigitalCongoTV.cd",Digital Congo TV (480p)
https://tv2.isi-broadcast.tech/ISI-BROADCAST/DIGITAL-TV/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/DIGITAL-TV/index.m3u8
#EXTINF:-1 tvg-id="MishapiVoiceTV.cd",Mishapi Voice TV (1080p) #EXTINF:-1 tvg-id="MishapiVoiceTV.cd",Mishapi Voice TV (1080p)
https://tv1.isi-broadcast.tech/MISHAPI-STREAM1/index.m3u8 https://tv1.isi-broadcast.tech/MISHAPI-STREAM1/index.m3u8
#EXTINF:-1 tvg-id="MetanoiaTV.cd",Metanoia TV (720p) #EXTINF:-1 tvg-id="MetanoiaTV.cd",Metanoia TV (720p)
https://tv1.isi-broadcast.tech/METANOIA-STREAM1/index.m3u8 https://tv1.isi-broadcast.tech/METANOIA-STREAM1/index.m3u8
#EXTINF:-1 tvg-id="ParoleEternelleTV.cd",Parole Éternelle TV (1080p) #EXTINF:-1 tvg-id="ParoleEternelleTV.cd",Parole Éternelle TV (1080p)
https://tv2.isi-broadcast.tech/ISI-BROADCAST/PAROLETV/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/PAROLETV/index.m3u8
#EXTINF:-1 tvg-id="GeopolisTV.cd",Géopolis TV (240p) #EXTINF:-1 tvg-id="GeopolisTV.cd",Géopolis TV (240p)
https://tv2.isi-broadcast.tech/ISI-BROADCAST/GeopoliceTV/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/GeopoliceTV/index.m3u8
#EXTINF:-1 tvg-id="SSMTV.cd",SSM TV (576p) #EXTINF:-1 tvg-id="SSMTV.cd",SSM TV (576p)
https://tv2.isi-broadcast.tech/ISI-BROADCAST/SSM/index.m3u8 https://tv2.isi-broadcast.tech/ISI-BROADCAST/SSM/index.m3u8
#EXTINF:-1 tvg-id="MadiTV.cd",Madi TV (576p) #EXTINF:-1 tvg-id="MadiTV.cd",Madi TV (576p)
https://tv1.isi-broadcast.tech/MADI-TV/index.m3u8 https://tv1.isi-broadcast.tech/MADI-TV/index.m3u8
#EXTINF:-1 tvg-id="CCPVTelevision.cd",CCPV TV (1080p) #EXTINF:-1 tvg-id="CCPVTelevision.cd",CCPV TV (1080p)
https://tv1.isi-broadcast.tech/CCPV-TV/index.m3u8 https://tv1.isi-broadcast.tech/CCPV-TV/index.m3u8
#EXTINF:-1 tvg-id="NumericaTV.cd",Numerica TV (1080p) #EXTINF:-1 tvg-id="NumericaTV.cd",Numerica TV (1080p)
https://tv1.isi-broadcast.tech/NUMERICA/index.m3u8 https://tv1.isi-broadcast.tech/NUMERICA/index.m3u8
#EXTINF:-1 tvg-id="CNTV.cd",CNTV Canal Numérique (720p) #EXTINF:-1 tvg-id="CNTV.cd",CNTV Canal Numérique (720p)
https://tv1.isi-broadcast.tech/CN-TV_CANAL/index.m3u8 https://tv1.isi-broadcast.tech/CN-TV_CANAL/index.m3u8
#EXTINF:-1 tvg-id="KingTV.cd",King TV (544p) #EXTINF:-1 tvg-id="KingTV.cd",King TV (544p)
https://tv1.isi-broadcast.tech/KING_TV/index.m3u8 https://tv1.isi-broadcast.tech/KING_TV/index.m3u8

View file

@ -81,9 +81,9 @@ https://bild-und-ton.stream/die-neue-zeit-tv-live/smil:dnz-de.smil/playlist.m3u8
http://sivantv.livebox.co.in/sivantvhls/sivan.m3u8 http://sivantv.livebox.co.in/sivantvhls/sivan.m3u8
#EXTINF:-1 tvg-id="MLeMedia.ch",M Le Média (720p) [Not 24/7] #EXTINF:-1 tvg-id="MLeMedia.ch",M Le Média (720p) [Not 24/7]
https://raw.githubusercontent.com/Sphinxroot/HSL/main/DM/ch/M.m3u8 https://raw.githubusercontent.com/Sphinxroot/HSL/main/DM/ch/M.m3u8
#EXTINF:-1 tvg-id="RTVPendimi.ch",RTV Pendimi (720p) #EXTINF:-1 tvg-id="RTVPendimi.ch",RTV Pendimi (720p)
http://live.rtvpendimi.com:8081/hls/RTVPendimi/index.m3u8 http://live.rtvpendimi.com:8081/hls/RTVPendimi/index.m3u8
#EXTINF:-1 tvg-id="RTVIslam.ch",RTV Islam (1080p) #EXTINF:-1 tvg-id="RTVIslam.ch",RTV Islam (1080p)
https://protokolldns.xyz/rtvislamweebstdkksdfsdjkd/index.m3u8 https://protokolldns.xyz/rtvislamweebstdkksdfsdjkd/index.m3u8
#EXTINF:-1 tvg-id="Meteonews.ch",Meteonews (1080p) #EXTINF:-1 tvg-id="Meteonews.ch",Meteonews (1080p)
https://streaming.meteonews.net/hls/stream.m3u8 https://streaming.meteonews.net/hls/stream.m3u8

View file

@ -309,7 +309,7 @@ https://mdstrm.com/live-stream-playlist/5fad9b1d978fe1080e3ac4a8.m3u8
https://paneltv.online:1936/8034/8034/playlist.m3u8 https://paneltv.online:1936/8034/8034/playlist.m3u8
#EXTINF:-1 tvg-id="T13.cl",T13 (720p) [Not 24/7] #EXTINF:-1 tvg-id="T13.cl",T13 (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCsRnhjcUCR78Q3Ud6OXCTNg.m3u8 https://ythls.onrender.com/channel/UCsRnhjcUCR78Q3Ud6OXCTNg.m3u8
#EXTINF:-1 tvg-id="T13.cl",T13 (720p) #EXTINF:-1 tvg-id="T13.cl",T13 (720p)
https://jireh-2-hls-video-us-isp.dps.live/hls-video/10b92cafdf3646cbc1e727f3dc76863621a327fd/t13/t13.smil/playlist.m3u8 https://jireh-2-hls-video-us-isp.dps.live/hls-video/10b92cafdf3646cbc1e727f3dc76863621a327fd/t13/t13.smil/playlist.m3u8
#EXTINF:-1 tvg-id="Tele2WebRetiro.cl",Tele 2 Web (Retiro) (720p) [Not 24/7] #EXTINF:-1 tvg-id="Tele2WebRetiro.cl",Tele 2 Web (Retiro) (720p) [Not 24/7]
https://inliveserver.com:1936/11516/11516/playlist.m3u8 https://inliveserver.com:1936/11516/11516/playlist.m3u8
@ -443,9 +443,9 @@ https://origin.dpsgo.com/ssai/event/LhHrVtyeQkKZ-Ye_xEU75g/master.m3u8
https://origin.dpsgo.com/ssai/event/cKWySXKgSK-SzlJmESkOWw/master.m3u8 https://origin.dpsgo.com/ssai/event/cKWySXKgSK-SzlJmESkOWw/master.m3u8
#EXTINF:-1 tvg-id="13Festival.cl",13 Festival (1080p) #EXTINF:-1 tvg-id="13Festival.cl",13 Festival (1080p)
https://origin.dpsgo.com/ssai/event/Nftd0fM2SXasfDlRphvUsg/master.m3u8 https://origin.dpsgo.com/ssai/event/Nftd0fM2SXasfDlRphvUsg/master.m3u8
#EXTINF:-1 tvg-id="TVN.cl",TVN (1080p) [Geo-blocked] #EXTINF:-1 tvg-id="TVN.cl",TVN (1080p) [Geo-blocked]
https://panel.miplay.cl:8081/tvn/index.m3u8 https://panel.miplay.cl:8081/tvn/index.m3u8
#EXTINF:-1 tvg-id="TVN3.cl",TVN3 (1080p) [Geo-blocked] #EXTINF:-1 tvg-id="TVN3.cl",TVN3 (1080p) [Geo-blocked]
https://mdstrm.com/live-stream-playlist/5653641561b4eba30a7e4929.m3u8 https://mdstrm.com/live-stream-playlist/5653641561b4eba30a7e4929.m3u8
#EXTINF:-1 tvg-id="AnimaxRevival.cl",Animax Revival (936p) #EXTINF:-1 tvg-id="AnimaxRevival.cl",Animax Revival (936p)
https://streaming.zappix.live:3062/live/animaxlive.m3u8 https://streaming.zappix.live:3062/live/animaxlive.m3u8

View file

@ -103,7 +103,7 @@ https://liveingesta118.cdnmedia.tv/teleamigatvlive/smil:dvrlive.smil/playlist.m3
#EXTINF:-1 tvg-id="Teleantioquia.co",Teleantioquia (360p) [Not 24/7] #EXTINF:-1 tvg-id="Teleantioquia.co",Teleantioquia (360p) [Not 24/7]
#EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/ #EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/
https://liveingesta118.cdnmedia.tv/teleantioquialive/smil:dvrlive.smil/playlist.m3u8 https://liveingesta118.cdnmedia.tv/teleantioquialive/smil:dvrlive.smil/playlist.m3u8
#EXTINF:-1 tvg-id="Teleantioquia.co",Teleantioquia (1080p) #EXTINF:-1 tvg-id="Teleantioquia.co",Teleantioquia (1080p)
https://d1xgz5r2yxvjwj.cloudfront.net/out/v1/49d5fdc5370d4f43aab4930ec7a9cbf8/index.m3u8 https://d1xgz5r2yxvjwj.cloudfront.net/out/v1/49d5fdc5370d4f43aab4930ec7a9cbf8/index.m3u8
#EXTINF:-1 tvg-id="Telecafe.co",Telecafé (720p) #EXTINF:-1 tvg-id="Telecafe.co",Telecafé (720p)
#EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/ #EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/
@ -120,7 +120,7 @@ https://stream.logicideas.media/telepacifico-live/smil:live.smil/playlist.m3u8
https://movil.ejeserver.com/live/telesanjacinto.m3u8 https://movil.ejeserver.com/live/telesanjacinto.m3u8
#EXTINF:-1 tvg-id="TeleSanJacinto.co",Tele San Jacinto (720p) #EXTINF:-1 tvg-id="TeleSanJacinto.co",Tele San Jacinto (720p)
https://video.ejeserver.com/live/telesanjacinto.m3u8 https://video.ejeserver.com/live/telesanjacinto.m3u8
#EXTINF:-1 tvg-id="Trece.co",Trece (720p) #EXTINF:-1 tvg-id="Trece.co",Trece (720p)
https://stream.logicideas.media/canaltrece-live/smil:live.smil/playlist.m3u8 https://stream.logicideas.media/canaltrece-live/smil:live.smil/playlist.m3u8
#EXTINF:-1 tvg-id="TrecePlus.co",Trece + (720p) #EXTINF:-1 tvg-id="TrecePlus.co",Trece + (720p)
https://stream.logicideas.media/canaltreceplus-live/smil:live1plus.smil/playlist.m3u8 https://stream.logicideas.media/canaltreceplus-live/smil:live1plus.smil/playlist.m3u8
@ -142,7 +142,7 @@ https://servidordevideo.com:3077/live/despechadalive.m3u8
https://movil.ejeserver.com/live/nets.m3u8 https://movil.ejeserver.com/live/nets.m3u8
#EXTINF:-1 tvg-id="CanalNets.co",Canal Nets (720p) [Not 24/7] #EXTINF:-1 tvg-id="CanalNets.co",Canal Nets (720p) [Not 24/7]
https://video.ejeserver.com/live/nets.m3u8 https://video.ejeserver.com/live/nets.m3u8
#EXTINF:-1 tvg-id="CanalTRO.co",Canal TRO (1080p) #EXTINF:-1 tvg-id="CanalTRO.co",Canal TRO (1080p)
#EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/ #EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/
https://liveingesta118.cdnmedia.tv/canaltro2live/smil:live.smil/playlist.m3u8 https://liveingesta118.cdnmedia.tv/canaltro2live/smil:live.smil/playlist.m3u8
#EXTINF:-1 tvg-id="NoticiasCaracolAhora.co",Noticias Caracol Ahora (720p) [Not 24/7] #EXTINF:-1 tvg-id="NoticiasCaracolAhora.co",Noticias Caracol Ahora (720p) [Not 24/7]
@ -177,21 +177,21 @@ https://hvtraficonew.ddns.net/pastocnc4/cnc4/playlist.m3u8
https://ythls.onrender.com/channel/UCnPwQV0-W7S02i_omPEpJBg.m3u8 https://ythls.onrender.com/channel/UCnPwQV0-W7S02i_omPEpJBg.m3u8
#EXTINF:-1 tvg-id="NTN24.co",NTN24 (720p) [Not 24/7] #EXTINF:-1 tvg-id="NTN24.co",NTN24 (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCEJs1fTF3KszRJGxJY14VrA.m3u8 https://ythls.onrender.com/channel/UCEJs1fTF3KszRJGxJY14VrA.m3u8
#EXTINF:-1 tvg-id="Telemedellin.co",Telemedellín (720p) #EXTINF:-1 tvg-id="Telemedellin.co",Telemedellín (720p)
https://d3cglye48cl6m2.cloudfront.net/out/v1/37d85e2ab37c4873aed6849fe74e78b8/index.m3u8 https://d3cglye48cl6m2.cloudfront.net/out/v1/37d85e2ab37c4873aed6849fe74e78b8/index.m3u8
#EXTINF:-1 tvg-id="RCNXtra.co",RCN Xtra (1080p) #EXTINF:-1 tvg-id="RCNXtra.co",RCN Xtra (1080p)
https://latv-rcn-xtra-1-mx.tcl.wurl.tv/playlist.m3u8 https://latv-rcn-xtra-1-mx.tcl.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-id="Cristovision.co",Cristovisión (480p) #EXTINF:-1 tvg-id="Cristovision.co",Cristovisión (480p)
https://151972.global.ssl.fastly.net/60a5a559e3414ce54aa8a44d/live_66dad780017a11ee87ff5592d1e02764/index.m3u8 https://151972.global.ssl.fastly.net/60a5a559e3414ce54aa8a44d/live_66dad780017a11ee87ff5592d1e02764/index.m3u8
#EXTINF:-1 tvg-id="CNCTulua.co",CNC Tuluá (720p) #EXTINF:-1 tvg-id="CNCTulua.co",CNC Tuluá (720p)
https://servers.amelbasoluciones.co:19360/cnctulualive/cnctulualive.m3u8 https://servers.amelbasoluciones.co:19360/cnctulualive/cnctulualive.m3u8
#EXTINF:-1 tvg-id="TuKanal.co",Tu Kanal (1080p) #EXTINF:-1 tvg-id="TuKanal.co",Tu Kanal (1080p)
http://45.33.63.98/hls/abdi.m3u8 http://45.33.63.98/hls/abdi.m3u8
#EXTINF:-1 tvg-id="TVSanJorge.co",TV San Jorge (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TVSanJorge.co",TV San Jorge (1080p) [Not 24/7]
https://asucap.com/livestream/asucap_envivo.m3u8 https://asucap.com/livestream/asucap_envivo.m3u8
#EXTINF:-1 tvg-id="ViveTV.co",Vive TV Colombia (1080p) #EXTINF:-1 tvg-id="ViveTV.co",Vive TV Colombia (1080p)
http://192.144.113.132:1935/live/ViveTV/playlist.m3u8 http://192.144.113.132:1935/live/ViveTV/playlist.m3u8
#EXTINF:-1 tvg-id="TuUniversoTV.co",Tu Universo TV (720p) #EXTINF:-1 tvg-id="TuUniversoTV.co",Tu Universo TV (720p)
https://5bf8041cb3fed.streamlock.net/TUUNIVERSOTV/TUUNIVERSOTV/playlist.m3u8 https://5bf8041cb3fed.streamlock.net/TUUNIVERSOTV/TUUNIVERSOTV/playlist.m3u8
#EXTINF:-1 tvg-id="ChamberofRepresentatives.co",Cámara de Representantes (720p) [Not 24/7] #EXTINF:-1 tvg-id="ChamberofRepresentatives.co",Cámara de Representantes (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCzescUFTh2jiZkYIx9uZtqA.m3u8 https://ythls.onrender.com/channel/UCzescUFTh2jiZkYIx9uZtqA.m3u8

View file

@ -91,7 +91,7 @@ https://videohd.live:19360/8076/8076.m3u8
https://59ef525c24caa.streamlock.net/vmtv/soyplancha/playlist.m3u8 https://59ef525c24caa.streamlock.net/vmtv/soyplancha/playlist.m3u8
#EXTINF:-1 tvg-id="VintageMusic.cr",Vintage Music (720p) #EXTINF:-1 tvg-id="VintageMusic.cr",Vintage Music (720p)
https://59ef525c24caa.streamlock.net/vmtv/tvvintage/playlist.m3u8 https://59ef525c24caa.streamlock.net/vmtv/tvvintage/playlist.m3u8
#EXTINF:-1 tvg-id="Teletica7.cr",Teletica 7 (720p) [Geo-blocked] #EXTINF:-1 tvg-id="Teletica7.cr",Teletica 7 (720p) [Geo-blocked]
#EXTVLCOPT:http-referrer=https://bradmax.com #EXTVLCOPT:http-referrer=https://bradmax.com
https://cdn01.teletica.com/TeleticaLiveStreamCR/Stream/playlist_dvr.m3u8 https://cdn01.teletica.com/TeleticaLiveStreamCR/Stream/playlist_dvr.m3u8
#EXTINF:-1 tvg-id="TeleredTelevision.cr",Telered (720p) #EXTINF:-1 tvg-id="TeleredTelevision.cr",Telered (720p)

View file

@ -3,5 +3,5 @@
http://190.122.96.187:8888/http/010 http://190.122.96.187:8888/http/010
#EXTINF:-1 tvg-id="CubavisionInternacional.cu",Cubavisión Internacional (480p) [Not 24/7] #EXTINF:-1 tvg-id="CubavisionInternacional.cu",Cubavisión Internacional (480p) [Not 24/7]
http://paz.sytes.net:32769/memfs/c153c555-6806-482e-9eee-aecf1dffbbef.m3u8 http://paz.sytes.net:32769/memfs/c153c555-6806-482e-9eee-aecf1dffbbef.m3u8
#EXTINF:-1 tvg-id="RadioyTelevisionMarti.us",Radio y Televisión Martí (720p) #EXTINF:-1 tvg-id="RadioyTelevisionMarti.us",Radio y Televisión Martí (720p)
https://ocb-ingest.akamaized.net/hls/live/2037032/tvmc01/playlist.m3u8 https://ocb-ingest.akamaized.net/hls/live/2037032/tvmc01/playlist.m3u8

View file

@ -5,7 +5,7 @@ https://seswa.bonce.tv/hls/bonceswa.m3u8
http://highvolume04.streampartner.nl/nos_pais_24_7/nos_pais_24_7/playlist.m3u8 http://highvolume04.streampartner.nl/nos_pais_24_7/nos_pais_24_7/playlist.m3u8
#EXTINF:-1 tvg-id="TVDirect13.cw",TV Direct 13 (480p) [Not 24/7] #EXTINF:-1 tvg-id="TVDirect13.cw",TV Direct 13 (480p) [Not 24/7]
https://oqgdrog4d4rm-hls-live.5centscdn.com/tvdirect/f7b44cfafd5c52223d5498196c8a2e7b.sdp/tvdirect/stream1/index.m3u8 https://oqgdrog4d4rm-hls-live.5centscdn.com/tvdirect/f7b44cfafd5c52223d5498196c8a2e7b.sdp/tvdirect/stream1/index.m3u8
#EXTINF:-1 tvg-id="",Intermediate League Curaçao [Geo-blocked] #EXTINF:-1 tvg-id="",Intermediate League Curaçao [Geo-blocked]
https://streannlivecariflix.cachefly.net/cariflix12/cariflix12/playlist.m3u8 https://streannlivecariflix.cachefly.net/cariflix12/cariflix12/playlist.m3u8
#EXTINF:-1 tvg-id="VAMTV.cw",VAM Vid's & More (720p) #EXTINF:-1 tvg-id="VAMTV.cw",VAM Vid's & More (720p)
https://cur.watch/api/get_stream/vam/streann/playlist.m3u8 https://cur.watch/api/get_stream/vam/streann/playlist.m3u8

View file

@ -73,5 +73,5 @@ https://sc-kuzeykibrissmarttv.ercdn.net/gunestv/bant1/playlist.m3u8
https://dev.aftermind.xyz/hls/unitrust/voulitv/index.m3u8?token=8TXWzhY3h6jrzqEqu https://dev.aftermind.xyz/hls/unitrust/voulitv/index.m3u8?token=8TXWzhY3h6jrzqEqu
#EXTINF:-1 tvg-id="VouliTV.cy",Vouli TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="VouliTV.cy",Vouli TV (1080p) [Not 24/7]
https://dev.aftermind.xyz/edge-hls/unitrust/voulitv/index.m3u8?token=8TXWzhY3h6jrzqEqu https://dev.aftermind.xyz/edge-hls/unitrust/voulitv/index.m3u8?token=8TXWzhY3h6jrzqEqu
#EXTINF:-1 tvg-id="OmegaChannel.cy",Omega Channel (1080p) #EXTINF:-1 tvg-id="OmegaChannel.cy",Omega Channel (1080p)
http://l1.cloudskep.com/tst/omcy/playlist.m3u8 http://l1.cloudskep.com/tst/omcy/playlist.m3u8

View file

@ -51,7 +51,7 @@ https://58bd5b7a98e04.streamlock.net/medienasa-live/_definst_/BLKonline_high/pla
https://58bd5b7a98e04.streamlock.net/medienasa-live/_definst_/mp4:BLKonline_high/playlist.m3u8 https://58bd5b7a98e04.streamlock.net/medienasa-live/_definst_/mp4:BLKonline_high/playlist.m3u8
#EXTINF:-1 tvg-id="BLKRegionalTV.de",BLK TV Hohenmölsen (1080p) #EXTINF:-1 tvg-id="BLKRegionalTV.de",BLK TV Hohenmölsen (1080p)
https://58bd5b7a98e04.streamlock.net/medienasa-live/_definst_/mp4:BLKonline_high/playlist.m3u8?ref=medienportal-sachsen- https://58bd5b7a98e04.streamlock.net/medienasa-live/_definst_/mp4:BLKonline_high/playlist.m3u8?ref=medienportal-sachsen-
#EXTINF:-1 tvg-id="BRFernsehenNord.de",BR Fernsehen Nord (720p) #EXTINF:-1 tvg-id="BRFernsehenNord.de",BR Fernsehen Nord (720p)
https://mcdn.br.de/br/fs/bfs_nord/hls/de/master.m3u8 https://mcdn.br.de/br/fs/bfs_nord/hls/de/master.m3u8
#EXTINF:-1 tvg-id="BRFernsehenSud.de",BR Fernsehen Süd (720p) #EXTINF:-1 tvg-id="BRFernsehenSud.de",BR Fernsehen Süd (720p)
https://brcdn.vo.llnwd.net/br/fs/bfs_sued/hls/de/master.m3u8 https://brcdn.vo.llnwd.net/br/fs/bfs_sued/hls/de/master.m3u8

View file

@ -29,13 +29,13 @@ https://cdn-lt-live.tvsyd.dk/env/cluster-1-e.live.nvp1/live/hls/p/1956351/e/0_e9
https://cdnapi.kaltura.com/p/2158211/sp/327418300/playManifest/entryId/1_24gfa7qq/protocol/https/format/applehttp/a.m3u8 https://cdnapi.kaltura.com/p/2158211/sp/327418300/playManifest/entryId/1_24gfa7qq/protocol/https/format/applehttp/a.m3u8
#EXTINF:-1 tvg-id="KanalHovedstaden.dk",Kanal Hovedstaden (720p) [Not 24/7] #EXTINF:-1 tvg-id="KanalHovedstaden.dk",Kanal Hovedstaden (720p) [Not 24/7]
http://khkbh.dk:8080/hls/livestream/index.m3u8 http://khkbh.dk:8080/hls/livestream/index.m3u8
#EXTINF:-1 tvg-id="DRTV.dk",DRTV (TV Avisen) (720p) #EXTINF:-1 tvg-id="DRTV.dk",DRTV (TV Avisen) (720p)
https://drevent01hls.akamaized.net/hls/live/2014198/drevent01/master.m3u8 https://drevent01hls.akamaized.net/hls/live/2014198/drevent01/master.m3u8
#EXTINF:-1 tvg-id="TVMidtvest.dk",TV Midtvest (1080p) #EXTINF:-1 tvg-id="TVMidtvest.dk",TV Midtvest (1080p)
https://cdnapisec.kaltura.com/p/1953371/sp/195337100/playManifest/entryId/1_qwqu2d0z/protocol/https/format/applehttp/a.m3u8 https://cdnapisec.kaltura.com/p/1953371/sp/195337100/playManifest/entryId/1_qwqu2d0z/protocol/https/format/applehttp/a.m3u8
#EXTINF:-1 tvg-id="TV2Ost.dk",TV2 Øst (1080p) #EXTINF:-1 tvg-id="TV2Ost.dk",TV2 Øst (1080p)
https://cdnapisec.kaltura.com/p/1953381/sp/195338100/playManifest/entryId/0_zphj9q61/protocol/https/format/applehttp/a.m3u8 https://cdnapisec.kaltura.com/p/1953381/sp/195338100/playManifest/entryId/0_zphj9q61/protocol/https/format/applehttp/a.m3u8
#EXTINF:-1 tvg-id="TV2Nord.dk",TV2 Nord (1080p) #EXTINF:-1 tvg-id="TV2Nord.dk",TV2 Nord (1080p)
https://cdnapisec.kaltura.com/p/1956931/sp/195693100/playManifest/entryId/1_h9yfe7h2/protocol/https/format/applehttp/a.m3u8 https://cdnapisec.kaltura.com/p/1956931/sp/195693100/playManifest/entryId/1_h9yfe7h2/protocol/https/format/applehttp/a.m3u8
#EXTINF:-1 tvg-id="TVStorbyen.dk",BL-TV/TV Storbyen (720p) [Not 24/7] #EXTINF:-1 tvg-id="TVStorbyen.dk",BL-TV/TV Storbyen (720p) [Not 24/7]
https://5eeb3940cfaa0.streamlock.net/webtv_live/_definst_/mp4:kanalnordvest/playlist.m3u8 https://5eeb3940cfaa0.streamlock.net/webtv_live/_definst_/mp4:kanalnordvest/playlist.m3u8

View file

@ -97,7 +97,7 @@ https://cm.hostlagarto.com:4445/Hmtv/hmtv.myStream/playlist.m3u8
https://hilandofinotv.essastream.com:3606/live/canalhilandofinotvlive.m3u8 https://hilandofinotv.essastream.com:3606/live/canalhilandofinotvlive.m3u8
#EXTINF:-1 tvg-id="Hits360TV.do",Hits 360 TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="Hits360TV.do",Hits 360 TV (720p) [Not 24/7]
http://cm.hostlagarto.com:8081/hits360tv/hits360HD.myStream/playlist.m3u8 http://cm.hostlagarto.com:8081/hits360tv/hits360HD.myStream/playlist.m3u8
#EXTINF:-1 tvg-id="HM.do",HMTV (720p) #EXTINF:-1 tvg-id="HM.do",HMTV (720p)
https://cm.hostlagarto.com:4445/Hmtv/hmtv.myStream/playlist.m3u8 https://cm.hostlagarto.com:4445/Hmtv/hmtv.myStream/playlist.m3u8
#EXTINF:-1 tvg-id="HTVLive.do",HTV Live (1080p) #EXTINF:-1 tvg-id="HTVLive.do",HTV Live (1080p)
https://vdo1.streamgato.us:3833/live/canalhtvlivelive.m3u8 https://vdo1.streamgato.us:3833/live/canalhtvlivelive.m3u8
@ -271,47 +271,47 @@ https://ss3.domint.net:3108/zol_str/vzol/playlist.m3u8
https://lb00zdigital.streamprolive.com/mnt/hls/live.m3u8 https://lb00zdigital.streamprolive.com/mnt/hls/live.m3u8
#EXTINF:-1 tvg-id="Area809ElOriginal.do",Area 809 El Original (1080p) #EXTINF:-1 tvg-id="Area809ElOriginal.do",Area 809 El Original (1080p)
https://samson.streamerr.co:8081/rudydurisimotv/index.m3u8 https://samson.streamerr.co:8081/rudydurisimotv/index.m3u8
#EXTINF:-1 tvg-id="Telemicro.do",Telemicro (480p) #EXTINF:-1 tvg-id="Telemicro.do",Telemicro (480p)
http://51.81.93.239:8084/hls/tmicro.m3u8 http://51.81.93.239:8084/hls/tmicro.m3u8
#EXTINF:-1 tvg-id="Digital15.do",Digital 15 (480p) #EXTINF:-1 tvg-id="Digital15.do",Digital 15 (480p)
http://51.81.93.29:8084/hls/d15.m3u8 http://51.81.93.29:8084/hls/d15.m3u8
#EXTINF:-1 tvg-id="Telecentro.do",Telecentro (480p) #EXTINF:-1 tvg-id="Telecentro.do",Telecentro (480p)
http://51.81.93.239:8084/hls/telecentro.m3u8 http://51.81.93.239:8084/hls/telecentro.m3u8
#EXTINF:-1 tvg-id="ColorVision.do",Color Visión (720p) [Not 24/7] #EXTINF:-1 tvg-id="ColorVision.do",Color Visión (720p) [Not 24/7]
http://paz.sytes.net:32769/memfs/6aa68aa7-49e0-427c-be37-d60daecb939f.m3u8 http://paz.sytes.net:32769/memfs/6aa68aa7-49e0-427c-be37-d60daecb939f.m3u8
#EXTINF:-1 tvg-id="BonchesLatinosTV.do",Bonches Latinos TV (720p) #EXTINF:-1 tvg-id="BonchesLatinosTV.do",Bonches Latinos TV (720p)
https://ss5.domint.net:3172/btv_str/bonchestv/playlist.m3u8 https://ss5.domint.net:3172/btv_str/bonchestv/playlist.m3u8
#EXTINF:-1 tvg-id="ClaroTelevisionDominicana.do",Claro Televisión Dominicana (360p) #EXTINF:-1 tvg-id="ClaroTelevisionDominicana.do",Claro Televisión Dominicana (360p)
https://vsrv2.az-streamingserver.com:3960/live/claroteledomlive.m3u8 https://vsrv2.az-streamingserver.com:3960/live/claroteledomlive.m3u8
#EXTINF:-1 tvg-id="ClaroVisionTV.do",Claro Visión TV (720p) #EXTINF:-1 tvg-id="ClaroVisionTV.do",Claro Visión TV (720p)
https://vsrv2.az-streamingserver.com:3057/live/clarovisiontvlive.m3u8 https://vsrv2.az-streamingserver.com:3057/live/clarovisiontvlive.m3u8
#EXTINF:-1 tvg-id="El75.do",El 75 (720p) #EXTINF:-1 tvg-id="El75.do",El 75 (720p)
https://castv10.plugstreaming.com:19360/el75/el75.m3u8 https://castv10.plugstreaming.com:19360/el75/el75.m3u8
#EXTINF:-1 tvg-id="Enntivision.do",Enntivisión (720p) #EXTINF:-1 tvg-id="Enntivision.do",Enntivisión (720p)
https://rdn.essastream.com:3356/live/enntivisiontvlive.m3u8 https://rdn.essastream.com:3356/live/enntivisiontvlive.m3u8
#EXTINF:-1 tvg-id="FRATATV.do",FRATA TV (720p) #EXTINF:-1 tvg-id="FRATATV.do",FRATA TV (720p)
https://cdn9.streamgato.us:3602/live/fratatvlive.m3u8 https://cdn9.streamgato.us:3602/live/fratatvlive.m3u8
#EXTINF:-1 tvg-id="LaVozdelTropico.do",La Voz del Trópico (480p) [Not 24/7] #EXTINF:-1 tvg-id="LaVozdelTropico.do",La Voz del Trópico (480p) [Not 24/7]
https://ss2.domint.net:3226/vttv_str/tropicotv/playlist.m3u8 https://ss2.domint.net:3226/vttv_str/tropicotv/playlist.m3u8
#EXTINF:-1 tvg-id="LocomotionTV.do",Locomotion TV (480p) [Not 24/7] #EXTINF:-1 tvg-id="LocomotionTV.do",Locomotion TV (480p) [Not 24/7]
http://51.222.85.85:81/hls/loco/index.m3u8 http://51.222.85.85:81/hls/loco/index.m3u8
#EXTINF:-1 tvg-id="NisibonTV.do",Nisibon TV (480p) #EXTINF:-1 tvg-id="NisibonTV.do",Nisibon TV (480p)
https://250weu.bozztv.com/ssh101/ssh101/nisibontv48/playlist.m3u8 https://250weu.bozztv.com/ssh101/ssh101/nisibontv48/playlist.m3u8
#EXTINF:-1 tvg-id="PinponTV.do",Pinpon TV (720p) #EXTINF:-1 tvg-id="PinponTV.do",Pinpon TV (720p)
https://vdo2.streamgato.us:3613/live/pinpontvlive.m3u8 https://vdo2.streamgato.us:3613/live/pinpontvlive.m3u8
#EXTINF:-1 tvg-id="RETV.do",R&E TV (480p) [Not 24/7] #EXTINF:-1 tvg-id="RETV.do",R&E TV (480p) [Not 24/7]
https://multimedia.tmcreativos.com:1936/ekhmygctur/ekhmygctur/playlist.m3u8 https://multimedia.tmcreativos.com:1936/ekhmygctur/ekhmygctur/playlist.m3u8
#EXTINF:-1 tvg-id="Rumba985FM.do",Rumba 98.5 FM (720p) #EXTINF:-1 tvg-id="Rumba985FM.do",Rumba 98.5 FM (720p)
https://ss5.domint.net:3038/rum_str/rumba985fm/playlist.m3u8 https://ss5.domint.net:3038/rum_str/rumba985fm/playlist.m3u8
#EXTINF:-1 tvg-id="SomosTopoPointTV.do",Somos Topo Point TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="SomosTopoPointTV.do",Somos Topo Point TV (1080p) [Not 24/7]
https://cloudflare.streamgato.us:3901/live/somostopopointtvlive.m3u8 https://cloudflare.streamgato.us:3901/live/somostopopointtvlive.m3u8
#EXTINF:-1 tvg-id="Televida.do",Televida Canal 41 (720p) [Not 24/7] #EXTINF:-1 tvg-id="Televida.do",Televida Canal 41 (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCGwhsjKuqSNscX-XjtuF_yA.m3u8 https://ythls.onrender.com/channel/UCGwhsjKuqSNscX-XjtuF_yA.m3u8
#EXTINF:-1 tvg-id="TVLuz.do",TV Luz (480p) #EXTINF:-1 tvg-id="TVLuz.do",TV Luz (480p)
https://rdn.essastream.com:3307/live/tvluzlive.m3u8 https://rdn.essastream.com:3307/live/tvluzlive.m3u8
#EXTINF:-1 tvg-id="VegaTeve.do",VegaTeve (1080p) [Not 24/7] #EXTINF:-1 tvg-id="VegaTeve.do",VegaTeve (1080p) [Not 24/7]
https://kali.vdopanel.com:3396/live/arseniolive.m3u8 https://kali.vdopanel.com:3396/live/arseniolive.m3u8
#EXTINF:-1 tvg-id="VTVCanal32.do",VTV Canal 32 (1080p) #EXTINF:-1 tvg-id="VTVCanal32.do",VTV Canal 32 (1080p)
https://cnn.livestreaminggroup.info:3507/live/vtv32live.m3u8 https://cnn.livestreaminggroup.info:3507/live/vtv32live.m3u8
#EXTINF:-1 tvg-id="CanaTVDigital.do",Cana TV Digital (720p) [Not 24/7] #EXTINF:-1 tvg-id="CanaTVDigital.do",Cana TV Digital (720p) [Not 24/7]
https://livetv.305streamhd.com:3707/live/canatvdigitallive.m3u8 https://livetv.305streamhd.com:3707/live/canatvdigitallive.m3u8

View file

@ -14,5 +14,5 @@ https://ennahar-live.dzsecurity.net/fullres/EnnaharTV_First/playlist.m3u8
https://d2p6676ajpsg1j.cloudfront.net/out/v1/2daff8b433344d659bd5079224afc3ab/index.m3u8 https://d2p6676ajpsg1j.cloudfront.net/out/v1/2daff8b433344d659bd5079224afc3ab/index.m3u8
#EXTINF:-1 tvg-id="SamiraTV.dz",Samira TV (1080p) #EXTINF:-1 tvg-id="SamiraTV.dz",Samira TV (1080p)
https://shls-live-ak.akamaized.net/out/v1/2daff8b433344d659bd5079224afc3ab/index.m3u8 https://shls-live-ak.akamaized.net/out/v1/2daff8b433344d659bd5079224afc3ab/index.m3u8
#EXTINF:-1 tvg-id="TV2.dz",Canal Algérie (480p) #EXTINF:-1 tvg-id="TV2.dz",Canal Algérie (480p)
https://bozztv.com/inim03/live1/giniko_canalalgerie/chunks.m3u8 https://bozztv.com/inim03/live1/giniko_canalalgerie/chunks.m3u8

View file

@ -47,17 +47,17 @@ https://video1.makrodigital.com/rtu/rtu/chunks.m3u8?nimblesessionid=
https://live.obslivestream.com/sonoondatv/index.m3u8 https://live.obslivestream.com/sonoondatv/index.m3u8
#EXTINF:-1 tvg-id="Telerama.ec",Telerama (240p) [Not 24/7] #EXTINF:-1 tvg-id="Telerama.ec",Telerama (240p) [Not 24/7]
https://envivo.telerama.ec/stream.m3u8 https://envivo.telerama.ec/stream.m3u8
#EXTINF:-1 tvg-id="TVC.ec",TVC (480p) #EXTINF:-1 tvg-id="TVC.ec",TVC (480p)
https://d2vb5iv6i34lh5.cloudfront.net/TVCEC/d58f5eb5cbb9ad9c56649a0083de7c8b.sdp/playlist.m3u8 https://d2vb5iv6i34lh5.cloudfront.net/TVCEC/d58f5eb5cbb9ad9c56649a0083de7c8b.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="WuanPlus.ec",Wuan+ (1080p) #EXTINF:-1 tvg-id="WuanPlus.ec",Wuan+ (1080p)
https://video2.makrodigital.com/wuanplus/wuanplus/playlist.m3u8 https://video2.makrodigital.com/wuanplus/wuanplus/playlist.m3u8
#EXTINF:-1 tvg-id="ZaracayTV.ec",Zaracay TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="ZaracayTV.ec",Zaracay TV (1080p) [Not 24/7]
https://video2.makrodigital.com/zaracay/zaracay/playlist.m3u8 https://video2.makrodigital.com/zaracay/zaracay/playlist.m3u8
#EXTINF:-1 tvg-id="AntenaUnoRadiovideo.ec",Antena Uno RadioVideo (360p) #EXTINF:-1 tvg-id="AntenaUnoRadiovideo.ec",Antena Uno RadioVideo (360p)
https://tvdatta.com:3578/live/antenaunolive.m3u8 https://tvdatta.com:3578/live/antenaunolive.m3u8
#EXTINF:-1 tvg-id="EcuadorTV.ec",Ecuador TV (720p) #EXTINF:-1 tvg-id="EcuadorTV.ec",Ecuador TV (720p)
https://customer-qczi39xffvq35rae.cloudflarestream.com/f41c1d91e17809daf3bc4a6c212680b7/manifest/video.m3u8 https://customer-qczi39xffvq35rae.cloudflarestream.com/f41c1d91e17809daf3bc4a6c212680b7/manifest/video.m3u8
#EXTINF:-1 tvg-id="TVLegislativa.ec",TV Legislativa (1080p) #EXTINF:-1 tvg-id="TVLegislativa.ec",TV Legislativa (1080p)
http://181.198.32.153:8080/hls/stream.m3u8 http://181.198.32.153:8080/hls/stream.m3u8
#EXTINF:-1 tvg-id="UCSGTV.ec",UCSG TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="UCSGTV.ec",UCSG TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCH5499PHqkqKPsGEUJl5lZg.m3u8 https://ythls.onrender.com/channel/UCH5499PHqkqKPsGEUJl5lZg.m3u8

View file

@ -15,5 +15,7 @@ http://dc.tbnbaltia.eu:8088/dvr/rewind-21600.m3u8
https://le02.euddn.net/6487956abb8faf0706d8c4c2465f54cb3625b812fec8e13d11668907ff00f44b004ea22691a9216c71ebda22b7e6e57c8b923aeee9e1e6aa447947c014b7a3babd73ab865562f4ae463ce0c617da65805296ed52a0af64d7d881781d282ea970de7a1ab524c1ea73e271a8df71d43212f4850e2d81241308886184db1abf516f2d6d0b9965402fc7c960e27fa968eabb077474e7493c278ebae58d614923fb2f5c76c2865cb681763ffd765a39a629ce/smil:rk_live_1.smil/playlist.m3u8 https://le02.euddn.net/6487956abb8faf0706d8c4c2465f54cb3625b812fec8e13d11668907ff00f44b004ea22691a9216c71ebda22b7e6e57c8b923aeee9e1e6aa447947c014b7a3babd73ab865562f4ae463ce0c617da65805296ed52a0af64d7d881781d282ea970de7a1ab524c1ea73e271a8df71d43212f4850e2d81241308886184db1abf516f2d6d0b9965402fc7c960e27fa968eabb077474e7493c278ebae58d614923fb2f5c76c2865cb681763ffd765a39a629ce/smil:rk_live_1.smil/playlist.m3u8
#EXTINF:-1 tvg-id="DelfiTV.ee",Delfi TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="DelfiTV.ee",Delfi TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCQGN5-eIjRRy6MGcHKDE_6g.m3u8 https://ythls.onrender.com/channel/UCQGN5-eIjRRy6MGcHKDE_6g.m3u8
#EXTINF:-1 tvg-id="TVN.ee",TVN (1080p) #EXTINF:-1 tvg-id="TVN.ee",TVN (1080p)
https://s4.telset.ee/tvn/index.m3u8?filter.tracks=v1a1&token=tvn_token https://s4.telset.ee/tvn/index.m3u8?filter.tracks=v1a1&token=tvn_token
#EXTINF:-1 tvg-id="Kanal7.ee",Kanal 7
http://89.254.128.5:22280/duo7_hd/index.m3u8

View file

@ -57,7 +57,7 @@ https://ythls.onrender.com/channel/UCXw5vClfMWccw-OocfhQHiA.m3u8
https://ythls.onrender.com/channel/UCzKamNFKCvzLOrqfBUAsD6Q.m3u8 https://ythls.onrender.com/channel/UCzKamNFKCvzLOrqfBUAsD6Q.m3u8
#EXTINF:-1 tvg-id="DaawahTV.tr",Daawah TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="DaawahTV.tr",Daawah TV (720p) [Not 24/7]
https://cdg8.edge.technocdn.com/daawahtv/live/playlist.m3u8 https://cdg8.edge.technocdn.com/daawahtv/live/playlist.m3u8
#EXTINF:-1 tvg-id="AlhayatTV.eg",Alhayat TV (720p) #EXTINF:-1 tvg-id="AlhayatTV.eg",Alhayat TV (720p)
https://cdn3.wowza.com/5/OE5HREpIcEkySlNT/alhayat-live/ngrp:livestream_all/playlist.m3u8 https://cdn3.wowza.com/5/OE5HREpIcEkySlNT/alhayat-live/ngrp:livestream_all/playlist.m3u8
#EXTINF:-1 tvg-id="CAFTV.eg",CAF TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="CAFTV.eg",CAF TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCr5K057x3mHroPHsNk9OiwA.m3u8 https://ythls.onrender.com/channel/UCr5K057x3mHroPHsNk9OiwA.m3u8

View file

@ -237,7 +237,7 @@ https://streamingtvi.gestec-video.com/hls/tvixa.m3u8
https://nim.controlstreams.com/LiveApp/islatel/playlist.m3u8 https://nim.controlstreams.com/LiveApp/islatel/playlist.m3u8
#EXTINF:-1 tvg-id="JuntadeCastillayLeon.es",Junta de Castilla y León (1080p) [Not 24/7] #EXTINF:-1 tvg-id="JuntadeCastillayLeon.es",Junta de Castilla y León (1080p) [Not 24/7]
https://16escalones-live2.flumotion.com/chunks.m3u8 https://16escalones-live2.flumotion.com/chunks.m3u8
#EXTINF:-1 tvg-id="La1.es",La 1 (720p) #EXTINF:-1 tvg-id="La1.es",La 1 (720p)
https://ztnr.rtve.es/ztnr/1688877.m3u8 https://ztnr.rtve.es/ztnr/1688877.m3u8
#EXTINF:-1 tvg-id="La1.es",La 1 (720p) [Geo-blocked] #EXTINF:-1 tvg-id="La1.es",La 1 (720p) [Geo-blocked]
https://rtvelivestream.akamaized.net/rtvesec/la1/la1_main_720.m3u8 https://rtvelivestream.akamaized.net/rtvesec/la1/la1_main_720.m3u8
@ -550,7 +550,7 @@ https://liveingesta318.cdnmedia.tv/9tvlive/smil:live.smil/playlist.m3u8?DVR
#EXTINF:-1 tvg-id="etv.es",ETV Terramar (1080p) #EXTINF:-1 tvg-id="etv.es",ETV Terramar (1080p)
#EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/ #EXTVLCOPT:http-referrer=https://player.instantvideocloud.net/
https://liveingesta318.cdnmedia.tv/tvetvlive/smil:rtmp01.smil/playlist.m3u8 https://liveingesta318.cdnmedia.tv/tvetvlive/smil:rtmp01.smil/playlist.m3u8
#EXTINF:-1 tvg-id="La1Catalunya.es",La 1 Catalunya (720p) #EXTINF:-1 tvg-id="La1Catalunya.es",La 1 Catalunya (720p)
https://ztnr.rtve.es/ztnr/3293681.m3u8 https://ztnr.rtve.es/ztnr/3293681.m3u8
#EXTINF:-1 tvg-id="La1Catalunya.es",La 1 Catalunya (720p) [Geo-blocked] #EXTINF:-1 tvg-id="La1Catalunya.es",La 1 Catalunya (720p) [Geo-blocked]
https://rtvelivestream-clnx.rtve.es/rtvesec/cat/la1_cat_main_720.m3u8 https://rtvelivestream-clnx.rtve.es/rtvesec/cat/la1_cat_main_720.m3u8

View file

@ -37,13 +37,13 @@ https://yletv.akamaized.net/hls/live/622367/yletvteemafemfin/playlist.m3u8
https://yletv.akamaized.net/hls/live/622365/yletv1fin/playlist.m3u8 https://yletv.akamaized.net/hls/live/622365/yletv1fin/playlist.m3u8
#EXTINF:-1 tvg-id="YleTV2.fi",YLE TV 2 (720p) [Geo-blocked] #EXTINF:-1 tvg-id="YleTV2.fi",YLE TV 2 (720p) [Geo-blocked]
https://yletv.akamaized.net/hls/live/622366/yletv2fin/playlist.m3u8 https://yletv.akamaized.net/hls/live/622366/yletv2fin/playlist.m3u8
#EXTINF:-1 tvg-id="MTVUutiset.fi",MTV Uutiset (720p) #EXTINF:-1 tvg-id="MTVUutiset.fi",MTV Uutiset (720p)
https://live.streaming.a2d.tv/asset/20025962.isml/.m3u8 https://live.streaming.a2d.tv/asset/20025962.isml/.m3u8
#EXTINF:-1 tvg-id="AlfaTV.fi",IRR-TV (576p) [Not 24/7] #EXTINF:-1 tvg-id="AlfaTV.fi",IRR-TV (576p) [Not 24/7]
https://irrtv.digitacdn.net/live/_definst_/irrtv/amlst:irrtv.amlst/playlist.m3u8 https://irrtv.digitacdn.net/live/_definst_/irrtv/amlst:irrtv.amlst/playlist.m3u8
#EXTINF:-1 tvg-id="ArvasTV.fi",ÅrvasTV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="ArvasTV.fi",ÅrvasTV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC__baaN73Zp5Hn0N_d4BTdg.m3u8 https://ythls.onrender.com/channel/UC__baaN73Zp5Hn0N_d4BTdg.m3u8
#EXTINF:-1 tvg-id="WorTV.fi",WörTV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="WorTV.fi",WörTV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCQ36NJ8-XNhBDvSSsh8gS2Q.m3u8 https://ythls.onrender.com/channel/UCQ36NJ8-XNhBDvSSsh8gS2Q.m3u8
#EXTINF:-1 tvg-id="SundomTV.fi",Sundom TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="SundomTV.fi",Sundom TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCyDiTtktwmrc20Bvs_G4pow.m3u8 https://ythls.onrender.com/channel/UCyDiTtktwmrc20Bvs_G4pow.m3u8

View file

@ -301,7 +301,7 @@ https://ythls.onrender.com/channel/UCjbvuMcOCvyYFZKKPvU6QHw.m3u8
https://mn-nl.mncdn.com/awraastv/awraastv_hd.smil/playlist.m3u8 https://mn-nl.mncdn.com/awraastv/awraastv_hd.smil/playlist.m3u8
#EXTINF:-1 tvg-id="",Evangélisation des Nations (EVDN) #EXTINF:-1 tvg-id="",Evangélisation des Nations (EVDN)
https://ythls.onrender.com/channel/UCt6UJcNkqVKIGAuFg23oh2w.m3u8 https://ythls.onrender.com/channel/UCt6UJcNkqVKIGAuFg23oh2w.m3u8
#EXTINF:-1 tvg-id="",HANDICAP TV France #EXTINF:-1 tvg-id="",HANDICAP TV France
https://srv.webtvmanager.fr:3697/stream/play.m3u8 https://srv.webtvmanager.fr:3697/stream/play.m3u8
#EXTINF:-1 tvg-id="LEquipe.fr",L'EQUIPE 21 TV #EXTINF:-1 tvg-id="LEquipe.fr",L'EQUIPE 21 TV
https://d3awaj0f2u3w26.cloudfront.net/v1/manifest/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-gy7euubgydp20-ssai-prd/8fd3efae-4468-4ca0-9486-c6cdcb7b65d7/2.m3u8 https://d3awaj0f2u3w26.cloudfront.net/v1/manifest/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-gy7euubgydp20-ssai-prd/8fd3efae-4468-4ca0-9486-c6cdcb7b65d7/2.m3u8
@ -309,7 +309,7 @@ https://d3awaj0f2u3w26.cloudfront.net/v1/manifest/3722c60a815c199d9c0ef36c5b73da
https://d2l55nvfkhk4sg.cloudfront.net/v1/manifest/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-jg7go1lqzgpny-ssai-prd/435d04a5-ab47-47c5-a2c1-bae01ae6d0c1/2.m3u8 https://d2l55nvfkhk4sg.cloudfront.net/v1/manifest/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-jg7go1lqzgpny-ssai-prd/435d04a5-ab47-47c5-a2c1-bae01ae6d0c1/2.m3u8
#EXTINF:-1 tvg-id="MosaikCristal.fr",Mosaik Cristal #EXTINF:-1 tvg-id="MosaikCristal.fr",Mosaik Cristal
https://ythls.onrender.com/channel/UCQC0xLG_W0QpqAXQ4-yhwBA.m3u8 https://ythls.onrender.com/channel/UCQC0xLG_W0QpqAXQ4-yhwBA.m3u8
#EXTINF:-1 tvg-id="MuseumTV.fr",Museum TV #EXTINF:-1 tvg-id="MuseumTV.fr",Museum TV
https://live2.creacast.com/museum-france/smil:museum-france.smil/master.m3u8 https://live2.creacast.com/museum-france/smil:museum-france.smil/master.m3u8
#EXTINF:-1 tvg-id="P2MTV.fr",P2M TV (720p) #EXTINF:-1 tvg-id="P2MTV.fr",P2M TV (720p)
https://vdo2.pro-fhi.net:3207/stream/play.m3u8 https://vdo2.pro-fhi.net:3207/stream/play.m3u8
@ -337,3 +337,33 @@ https://tv3v.hdr-tv.com/live/tv3v/livestream/master.m3u8
https://static.lefigaro.fr/secom/tnt.m3u8 https://static.lefigaro.fr/secom/tnt.m3u8
#EXTINF:-1 tvg-id="",LE FIGARO IDF #EXTINF:-1 tvg-id="",LE FIGARO IDF
https://figarotv-live.freecaster.com/live/freecaster/figarotv.m3u8 https://figarotv-live.freecaster.com/live/freecaster/figarotv.m3u8
#EXTINF:-1 tvg-id="TFX.fr",TFX
http://livetv.ktv.zone/13/play.m3u8
#EXTINF:-1 tvg-id="TMC.fr",TMC
http://livetv.ktv.zone/12/play.m3u8
#EXTINF:-1 tvg-id="TF1SeriesFilms.fr",TF1 Series Films
http://livetv.ktv.zone/22/play.m3u8
#EXTINF:-1 tvg-id="TF1.fr",TF 1
http://livetv.ktv.zone/3/play.m3u8
#EXTINF:-1 tvg-id="France3RhoneAlpes.fr",France 3 Rhone-Alpes
http://livetv.ktv.zone/233/play.m3u8
#EXTINF:-1 tvg-id="France3ProvenceAlpes.fr",France 3 Provence-Alpes
http://livetv.ktv.zone/232/play.m3u8
#EXTINF:-1 tvg-id="France3NouvelleAquitaine.fr",France 3 Nouvelle-Aquitaine
http://livetv.ktv.zone/231/play.m3u8
#EXTINF:-1 tvg-id="France3NouvelleAquitaine.fr",France 3 Nouvelle-Aquitaine
http://livetv.ktv.zone/224/play.m3u8
#EXTINF:-1 tvg-id="France3CotedAzur.fr",France 3 Cote d'Azur
http://livetv.ktv.zone/220/play.m3u8
#EXTINF:-1 tvg-id="France3Bretagne.fr",France 3 Bretagne
http://livetv.ktv.zone/216/play.m3u8
#EXTINF:-1 tvg-id="France3Auvergne.fr",France 3 Auvergne
http://livetv.ktv.zone/213/play.m3u8
#EXTINF:-1 tvg-id="France3Aquitaine.fr",France 3 Aquitaine
http://livetv.ktv.zone/212/play.m3u8
#EXTINF:-1 tvg-id="France5.fr",France 5
http://livetv.ktv.zone/107/play.m3u8
#EXTINF:-1 tvg-id="France3.fr",France 3
http://livetv.ktv.zone/105/play.m3u8
#EXTINF:-1 tvg-id="France2.fr",France 2
http://livetv.ktv.zone/104/play.m3u8

View file

@ -47,7 +47,7 @@ https://persiana-sonnati.icdndhcp.com/hls/stream.m3u8
http://51.210.199.16/hls/stream.m3u8 http://51.210.199.16/hls/stream.m3u8
#EXTINF:-1 tvg-id="Persiana1.fr",Persiana One (720p) [Not 24/7] #EXTINF:-1 tvg-id="Persiana1.fr",Persiana One (720p) [Not 24/7]
https://persiana-one.icdndhcp.com/hls/stream.m3u8 https://persiana-one.icdndhcp.com/hls/stream.m3u8
#EXTINF:-1 tvg-id="PersianaRap.fr",Persiana Rap (720p) #EXTINF:-1 tvg-id="PersianaRap.fr",Persiana Rap (720p)
https://persiana-rap.icdndhcp.com/hls/stream.m3u8 https://persiana-rap.icdndhcp.com/hls/stream.m3u8
#EXTINF:-1 tvg-id="PersianaSports.fr",Persiana Sports (720p) #EXTINF:-1 tvg-id="PersianaSports.fr",Persiana Sports (720p)
https://af.ayas.ir/hls2/persiana.m3u8 https://af.ayas.ir/hls2/persiana.m3u8

View file

@ -47,5 +47,5 @@ https://ythls.onrender.com/channel/UC9hyY_wWSJnkUKPfrfOP4dQ.m3u8
https://ythls.onrender.com/channel/UCZVRKO43AAGpAJs1isPEg-g.m3u8 https://ythls.onrender.com/channel/UCZVRKO43AAGpAJs1isPEg-g.m3u8
#EXTINF:-1 tvg-id="WontumiTV.gh",Wontumi TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="WontumiTV.gh",Wontumi TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCn7CnwFDT3wXBE3xqQm5riQ.m3u8 https://ythls.onrender.com/channel/UCn7CnwFDT3wXBE3xqQm5riQ.m3u8
#EXTINF:-1 tvg-id="EwenyigbaTV.de",Ewenyigba TV (720p) #EXTINF:-1 tvg-id="EwenyigbaTV.de",Ewenyigba TV (720p)
https://barakyah-hls.secdn.net/barakyah-channel/play/mp4:enyigba/playlist.m3u8 https://barakyah-hls.secdn.net/barakyah-channel/play/mp4:enyigba/playlist.m3u8

View file

@ -187,7 +187,7 @@ http://web.onair-radio.eu:1935/explorecy/explorecy/playlist.m3u8
http://5db313b643fd8.streamlock.net:1935/ZerounoTV/ZerounoTV/playlist.m3u8 http://5db313b643fd8.streamlock.net:1935/ZerounoTV/ZerounoTV/playlist.m3u8
#EXTINF:-1 tvg-id="ZouglaTV.gr",Zougla TV (720p) #EXTINF:-1 tvg-id="ZouglaTV.gr",Zougla TV (720p)
https://zouglacam-mdc-secure.akamaized.net/zouglalive/main/playlist.m3u8 https://zouglacam-mdc-secure.akamaized.net/zouglalive/main/playlist.m3u8
#EXTINF:-1 tvg-id="MakedoniaTV.gr",Makedonia TV (1080p) [Geo-blocked] #EXTINF:-1 tvg-id="MakedoniaTV.gr",Makedonia TV (1080p) [Geo-blocked]
http://dlm34ll53zqql.cloudfront.net/out/v1/d4177931deff4c7ba994b8126d153d9f/maktv.m3u8 http://dlm34ll53zqql.cloudfront.net/out/v1/d4177931deff4c7ba994b8126d153d9f/maktv.m3u8
#EXTINF:-1 tvg-id="PronewsTV.gr",ProNews TV (720p) #EXTINF:-1 tvg-id="PronewsTV.gr",ProNews TV (720p)
http://di-8zai2lrc.leasewebultracdn.com/pronews/ngrp:myStream_all/playlist.m3u8 http://di-8zai2lrc.leasewebultracdn.com/pronews/ngrp:myStream_all/playlist.m3u8
@ -235,5 +235,6 @@ http://d1nfykbwa3n98t.cloudfront.net/out/v1/6e5667da5a6843899a337dea72adb61b/ant
http://ovh-edge-h.evrideo.com:8080/23e234f2-aec8-4804-b694-4cdd71d2d48d_MONITORING_HLS/video_240p_WEBRTC_MONITORING.m3u8 http://ovh-edge-h.evrideo.com:8080/23e234f2-aec8-4804-b694-4cdd71d2d48d_MONITORING_HLS/video_240p_WEBRTC_MONITORING.m3u8
#EXTINF:-1 tvg-id="AigaioTV.gr",Aigaio TV (360p) #EXTINF:-1 tvg-id="AigaioTV.gr",Aigaio TV (360p)
https://250weu.bozztv.com/ssh101/ssh101/aigaiotv/playlist.m3u8 https://250weu.bozztv.com/ssh101/ssh101/aigaiotv/playlist.m3u8
#EXTINF:-1 tvg-id="AstraTV.gr",Astra TV (480p) #EXTINF:-1 tvg-id="AstraTV.gr",Astra TV (480p) [Not 24/7]
#EXTVLCOPT:http-referrer=https://astratv.gr
https://ssh101.bozztv.com/ssh101/astratv/playlist.m3u8 https://ssh101.bozztv.com/ssh101/astratv/playlist.m3u8

View file

@ -99,11 +99,11 @@ https://cdn.streamhispanatv.net:3409/live/soltvlive.m3u8
https://streamtv.intervenhosting.net:3155/live/juandelacruz3live.m3u8 https://streamtv.intervenhosting.net:3155/live/juandelacruz3live.m3u8
#EXTINF:-1 tvg-id="CanalAntigua.gt",Canal Antigua (1080p) [Not 24/7] #EXTINF:-1 tvg-id="CanalAntigua.gt",Canal Antigua (1080p) [Not 24/7]
https://5ca9af4645e15.streamlock.net/antigua/antigua.smil/playlist.m3u8 https://5ca9af4645e15.streamlock.net/antigua/antigua.smil/playlist.m3u8
#EXTINF:-1 tvg-id="CanaldeGobierno.gt",Canal de Gobierno (1080p) [Not 24/7] #EXTINF:-1 tvg-id="CanaldeGobierno.gt",Canal de Gobierno (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCh4GjKBcqxOsL_Bt8gCCSLg.m3u8 https://ythls.onrender.com/channel/UCh4GjKBcqxOsL_Bt8gCCSLg.m3u8
#EXTINF:-1 tvg-id="ElRoiTV.gt",El-Roi TV (720p) #EXTINF:-1 tvg-id="ElRoiTV.gt",El-Roi TV (720p)
https://cdn.streamhispanatv.net:3648/live/elroitvlive.m3u8 https://cdn.streamhispanatv.net:3648/live/elroitvlive.m3u8
#EXTINF:-1 tvg-id="PMCSTV.gt",PMCS TV (720p) #EXTINF:-1 tvg-id="PMCSTV.gt",PMCS TV (720p)
https://cdn.streamhispanatv.net:3787/live/pmcstvlive.m3u8 https://cdn.streamhispanatv.net:3787/live/pmcstvlive.m3u8
#EXTINF:-1 tvg-id="Canal25Regional.gt",Canal 25 Regional (720p) #EXTINF:-1 tvg-id="Canal25Regional.gt",Canal 25 Regional (720p)
https://srv6.zcast.com.br/canalsantarosa/canalsantarosa/playlist.m3u8 https://srv6.zcast.com.br/canalsantarosa/canalsantarosa/playlist.m3u8

View file

@ -103,19 +103,19 @@ https://mdstrm.com/live-stream-playlist/6287fdc9303e3008289ab711.m3u8
https://mdstrm.com/live-stream-playlist/6287fda8ea3b8b397d1ca2ed.m3u8 https://mdstrm.com/live-stream-playlist/6287fda8ea3b8b397d1ca2ed.m3u8
#EXTINF:-1 tvg-id="AlfaOmegaVision.hn",Alfa & Omega Vision (480p) [Not 24/7] #EXTINF:-1 tvg-id="AlfaOmegaVision.hn",Alfa & Omega Vision (480p) [Not 24/7]
https://srv.panelcast.net/dorian/dorian/playlist.m3u8 https://srv.panelcast.net/dorian/dorian/playlist.m3u8
#EXTINF:-1 tvg-id="45TV.hn",45 TV (720p) #EXTINF:-1 tvg-id="45TV.hn",45 TV (720p)
https://stream.alojamientowebgt.com:3656/live/tv45live.m3u8 https://stream.alojamientowebgt.com:3656/live/tv45live.m3u8
#EXTINF:-1 tvg-id="GloboTV.hn",Globo TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="GloboTV.hn",Globo TV (1080p) [Not 24/7]
https://panel.dattalive.com/8122/8122/playlist.m3u8 https://panel.dattalive.com/8122/8122/playlist.m3u8
#EXTINF:-1 tvg-id="MayaTV.hn",Maya TV (480p) [Not 24/7] #EXTINF:-1 tvg-id="MayaTV.hn",Maya TV (480p) [Not 24/7]
https://media.streambrothers.com:19360/8356/8356.m3u8 https://media.streambrothers.com:19360/8356/8356.m3u8
#EXTINF:-1 tvg-id="RTV.hn",RTV Honduras (1080p) #EXTINF:-1 tvg-id="RTV.hn",RTV Honduras (1080p)
https://stmv1.zcasthn.com.br/rtv/rtv/playlist.m3u8 https://stmv1.zcasthn.com.br/rtv/rtv/playlist.m3u8
#EXTINF:-1 tvg-id="GuayapeTV.hn",Guayape TV (1080p) #EXTINF:-1 tvg-id="GuayapeTV.hn",Guayape TV (1080p)
https://srv6.zcast.com.br/guayapetv/guayapetv/playlist.m3u8 https://srv6.zcast.com.br/guayapetv/guayapetv/playlist.m3u8
#EXTINF:-1 tvg-id="Canal51.hn",Canal 51 (720p) #EXTINF:-1 tvg-id="Canal51.hn",Canal 51 (720p)
https://tvcn51.com/hls/cn51480.m3u8 https://tvcn51.com/hls/cn51480.m3u8
#EXTINF:-1 tvg-id="GirasolTV.hn",Girasol TV (720p) #EXTINF:-1 tvg-id="GirasolTV.hn",Girasol TV (720p)
https://video.misistemareseller.com/Girasoltv/Girasoltv/playlist.m3u8 https://video.misistemareseller.com/Girasoltv/Girasoltv/playlist.m3u8
#EXTINF:-1 tvg-id="Telerayo.hn",Telerayo (1080p) #EXTINF:-1 tvg-id="Telerayo.hn",Telerayo (1080p)
https://emisoras.hn:8081/telerayo/index.m3u8 https://emisoras.hn:8081/telerayo/index.m3u8

View file

@ -51,15 +51,15 @@ https://ythls.onrender.com/channel/UCOvGbDh5biuOqjx6G3CdrQg.m3u8
https://ythls.onrender.com/channel/UCBJ9zxns1hxblYZw4urBd_w.m3u8 https://ythls.onrender.com/channel/UCBJ9zxns1hxblYZw4urBd_w.m3u8
#EXTINF:-1 tvg-id="TVCaraibes.ht",RTV Caraibes (480p) [Not 24/7] #EXTINF:-1 tvg-id="TVCaraibes.ht",RTV Caraibes (480p) [Not 24/7]
https://ythls.onrender.com/channel/UCWwP6VfG61i7BWSV0H3Jn9A.m3u8 https://ythls.onrender.com/channel/UCWwP6VfG61i7BWSV0H3Jn9A.m3u8
#EXTINF:-1 tvg-id="RadioTelevisionHirondelle.ht",Radio Télévision Hirondelle (480p) #EXTINF:-1 tvg-id="RadioTelevisionHirondelle.ht",Radio Télévision Hirondelle (480p)
https://acwstream.com/acw/hbrtvh/index.fmp4.m3u8 https://acwstream.com/acw/hbrtvh/index.fmp4.m3u8
#EXTINF:-1 tvg-id="TelemastersTV.us",Telemasters TV (720p) #EXTINF:-1 tvg-id="TelemastersTV.us",Telemasters TV (720p)
https://link.frontlayer.com/services/hls2/fl823467/index.m3u8 https://link.frontlayer.com/services/hls2/fl823467/index.m3u8
#EXTINF:-1 tvg-id="TeleMIX.us",TeleMIX (720p) #EXTINF:-1 tvg-id="TeleMIX.us",TeleMIX (720p)
https://haititivi.com/haiti/telemix1/index.m3u8 https://haititivi.com/haiti/telemix1/index.m3u8
#EXTINF:-1 tvg-id="RTHTV1.us",RTH-TV1 (1080p) #EXTINF:-1 tvg-id="RTHTV1.us",RTH-TV1 (1080p)
https://2-fss-2.streamhoster.com/pl_120/amlst:206708-4203440/playlist.m3u8 https://2-fss-2.streamhoster.com/pl_120/amlst:206708-4203440/playlist.m3u8
#EXTINF:-1 tvg-id="RTHTV2.us",RTH-TV2 Gospel (1080p) #EXTINF:-1 tvg-id="RTHTV2.us",RTH-TV2 Gospel (1080p)
https://2-fss-2.streamhoster.com/pl_120/amlst:206708-4202592/playlist.m3u8 https://2-fss-2.streamhoster.com/pl_120/amlst:206708-4202592/playlist.m3u8
#EXTINF:-1 tvg-id="",Radio Télé Yaguana (1080p) #EXTINF:-1 tvg-id="",Radio Télé Yaguana (1080p)
https://lakay.online/relay/teleyaguana/index.m3u8 https://lakay.online/relay/teleyaguana/index.m3u8

View file

@ -169,101 +169,101 @@ http://146.59.85.40:89/m2hd/index.m3u8
http://194.76.186.33:8000/play/a03z/index.m3u8 http://194.76.186.33:8000/play/a03z/index.m3u8
#EXTINF:-1 tvg-id="HBOHungary.hu",HBO Hungary (1080p) #EXTINF:-1 tvg-id="HBOHungary.hu",HBO Hungary (1080p)
http://194.76.186.33:8000/play/a03n/index.m3u8 http://194.76.186.33:8000/play/a03n/index.m3u8
#EXTINF:-1 tvg-id="SuperOne.hu",SuperOne (1080p) #EXTINF:-1 tvg-id="SuperOne.hu",SuperOne (1080p)
http://84.17.61.203:8086/udp/238.2.25.83:1234 http://84.17.61.203:8086/udp/238.2.25.83:1234
#EXTINF:-1 tvg-id="CoolTV.hu",Cool TV (1080p) #EXTINF:-1 tvg-id="CoolTV.hu",Cool TV (1080p)
http://146.59.85.40:89/coolhd/index.m3u8 http://146.59.85.40:89/coolhd/index.m3u8
#EXTINF:-1 tvg-id="CoolTV.hu",Cool TV (576p) #EXTINF:-1 tvg-id="CoolTV.hu",Cool TV (576p)
http://194.76.186.33:8000/play/a01l/index.m3u8 http://194.76.186.33:8000/play/a01l/index.m3u8
#EXTINF:-1 tvg-id="CoolTV.hu",Cool TV (576p) #EXTINF:-1 tvg-id="CoolTV.hu",Cool TV (576p)
http://194.76.186.33:8000/play/a04i/index.m3u8 http://194.76.186.33:8000/play/a04i/index.m3u8
#EXTINF:-1 tvg-id="SorozatPlus.hu",Sorozat+ (576p) #EXTINF:-1 tvg-id="SorozatPlus.hu",Sorozat+ (576p)
http://194.76.186.33:8000/play/a05e/index.m3u8 http://194.76.186.33:8000/play/a05e/index.m3u8
#EXTINF:-1 tvg-id="MAX4.hu",MAX4 (576p) #EXTINF:-1 tvg-id="MAX4.hu",MAX4 (576p)
http://146.59.85.40:89/max4/index.m3u8 http://146.59.85.40:89/max4/index.m3u8
#EXTINF:-1 tvg-id="RTLGold.hu",RTL Gold (576p) #EXTINF:-1 tvg-id="RTLGold.hu",RTL Gold (576p)
http://194.76.186.33:8000/play/a05h/index.m3u8 http://194.76.186.33:8000/play/a05h/index.m3u8
#EXTINF:-1 tvg-id="TV2.hu",TV2 (1080p) #EXTINF:-1 tvg-id="TV2.hu",TV2 (1080p)
http://194.76.186.33:8000/play/a023/index.m3u8 http://194.76.186.33:8000/play/a023/index.m3u8
#EXTINF:-1 tvg-id="TV2.hu",TV2 (1080p) #EXTINF:-1 tvg-id="TV2.hu",TV2 (1080p)
http://146.59.85.40:89/tv2hd/index.m3u8 http://146.59.85.40:89/tv2hd/index.m3u8
#EXTINF:-1 tvg-id="TV2.hu",TV2 (576p) #EXTINF:-1 tvg-id="TV2.hu",TV2 (576p)
http://194.76.186.33:8000/play/a01f/index.m3u8 http://194.76.186.33:8000/play/a01f/index.m3u8
#EXTINF:-1 tvg-id="TV2.hu",TV2 (1080p) #EXTINF:-1 tvg-id="TV2.hu",TV2 (1080p)
http://194.76.186.33:8000/play/a043/index.m3u8 http://194.76.186.33:8000/play/a043/index.m3u8
#EXTINF:-1 tvg-id="TV2.hu",TV2 (576p) #EXTINF:-1 tvg-id="TV2.hu",TV2 (576p)
http://194.76.186.33:8000/play/a04f/index.m3u8 http://194.76.186.33:8000/play/a04f/index.m3u8
#EXTINF:-1 tvg-id="RTLKETTO.hu",RTL KETTŐ (1080p) #EXTINF:-1 tvg-id="RTLKETTO.hu",RTL KETTŐ (1080p)
http://194.76.186.33:8000/play/a01z/index.m3u8 http://194.76.186.33:8000/play/a01z/index.m3u8
#EXTINF:-1 tvg-id="RTLKETTO.hu",RTL KETTŐ (576p) #EXTINF:-1 tvg-id="RTLKETTO.hu",RTL KETTŐ (576p)
http://194.76.186.33:8000/play/a05c/index.m3u8 http://194.76.186.33:8000/play/a05c/index.m3u8
#EXTINF:-1 tvg-id="RTLKETTO.hu",RTL KETTŐ (576p) #EXTINF:-1 tvg-id="RTLKETTO.hu",RTL KETTŐ (576p)
http://194.76.186.33:8000/play/a05i/index.m3u8 http://194.76.186.33:8000/play/a05i/index.m3u8
#EXTINF:-1 tvg-id="RTLHAROM.hu",RTL HÁROM (1080p) #EXTINF:-1 tvg-id="RTLHAROM.hu",RTL HÁROM (1080p)
http://194.76.186.33:8000/play/a02a/index.m3u8 http://194.76.186.33:8000/play/a02a/index.m3u8
#EXTINF:-1 tvg-id="RTLHAROM.hu",RTL HÁROM (576p) #EXTINF:-1 tvg-id="RTLHAROM.hu",RTL HÁROM (576p)
http://194.76.186.33:8000/play/a05d/index.m3u8 http://194.76.186.33:8000/play/a05d/index.m3u8
#EXTINF:-1 tvg-id="TV4.hu",TV4 (576p) #EXTINF:-1 tvg-id="TV4.hu",TV4 (576p)
http://194.76.186.33:8000/play/a02z/index.m3u8 http://194.76.186.33:8000/play/a02z/index.m3u8
#EXTINF:-1 tvg-id="TV2Kids.hu",TV2 Kids (576p) #EXTINF:-1 tvg-id="TV2Kids.hu",TV2 Kids (576p)
http://146.59.85.40:89/tv2kids/index.m3u8 http://146.59.85.40:89/tv2kids/index.m3u8
#EXTINF:-1 tvg-id="TV2Kids.hu",TV2 Kids (576p) #EXTINF:-1 tvg-id="TV2Kids.hu",TV2 Kids (576p)
http://194.76.186.33:8000/play/a033/index.m3u8 http://194.76.186.33:8000/play/a033/index.m3u8
#EXTINF:-1 tvg-id="MuzsikaTV.hu",Muzsika TV (576p) #EXTINF:-1 tvg-id="MuzsikaTV.hu",Muzsika TV (576p)
http://194.76.186.33:8000/play/a05f/index.m3u8 http://194.76.186.33:8000/play/a05f/index.m3u8
#EXTINF:-1 tvg-id="FonixTV.hu",Főnix TV (576p) #EXTINF:-1 tvg-id="FonixTV.hu",Főnix TV (576p)
https://stream.streaming4u.hu/FonixTV/index.fmp4.m3u8 https://stream.streaming4u.hu/FonixTV/index.fmp4.m3u8
#EXTINF:-1 tvg-id="DikhTV.hu",Dikh TV (576p) #EXTINF:-1 tvg-id="DikhTV.hu",Dikh TV (576p)
http://194.76.186.33:8000/play/a04h/index.m3u8 http://194.76.186.33:8000/play/a04h/index.m3u8
#EXTINF:-1 tvg-id="TV2040.hu",TV2040 (720p) [Not 24/7] #EXTINF:-1 tvg-id="TV2040.hu",TV2040 (720p) [Not 24/7]
https://ythls.onrender.com/channel/UC9-eDX-ZzjriryVPE2VnEfQ.m3u8 https://ythls.onrender.com/channel/UC9-eDX-ZzjriryVPE2VnEfQ.m3u8
#EXTINF:-1 tvg-id="ObudaTV.hu",Óbuda TV (576p) #EXTINF:-1 tvg-id="ObudaTV.hu",Óbuda TV (576p)
https://stream.streaming4u.hu/ObudaTV/index.m3u8 https://stream.streaming4u.hu/ObudaTV/index.m3u8
#EXTINF:-1 tvg-id="NYTV.hu",NYTV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="NYTV.hu",NYTV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCx7cFh63AWsK3cbfgX3GaaQ.m3u8 https://ythls.onrender.com/channel/UCx7cFh63AWsK3cbfgX3GaaQ.m3u8
#EXTINF:-1 tvg-id="XVTV.hu",XV TV (480p) #EXTINF:-1 tvg-id="XVTV.hu",XV TV (480p)
https://cloudfront44.lexanetwork.com:1344/relay01/HDE051.sdp/playlist.m3u8 https://cloudfront44.lexanetwork.com:1344/relay01/HDE051.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="BTV.hu",Bábolnai TV (360p) #EXTINF:-1 tvg-id="BTV.hu",Bábolnai TV (360p)
https://cloudfront44.lexanetwork.com:1344/freerelay/babolnatv.sdp/playlist.m3u8 https://cloudfront44.lexanetwork.com:1344/freerelay/babolnatv.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="SzarvasiTelevizio.hu",Szarvasi Televízió (720p) [Not 24/7] #EXTINF:-1 tvg-id="SzarvasiTelevizio.hu",Szarvasi Televízió (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCI25fQ-PhqM2vsdQRLcR8bw.m3u8 https://ythls.onrender.com/channel/UCI25fQ-PhqM2vsdQRLcR8bw.m3u8
#EXTINF:-1 tvg-id="EgykerTV.hu",Elsö Kerület TV (1080p) #EXTINF:-1 tvg-id="EgykerTV.hu",Elsö Kerület TV (1080p)
https://iptv01.eurocable.co.hu:443/EC-EGYKERTVHD/index.m3u8 https://iptv01.eurocable.co.hu:443/EC-EGYKERTVHD/index.m3u8
#EXTINF:-1 tvg-id="",Hangulat TV (720p) #EXTINF:-1 tvg-id="",Hangulat TV (720p)
https://iptv01.eurocable.co.hu:443/EC-HANGULATTV/index.m3u8 https://iptv01.eurocable.co.hu:443/EC-HANGULATTV/index.m3u8
#EXTINF:-1 tvg-id="SIXOTV.hu",SIXO TV (360p) #EXTINF:-1 tvg-id="SIXOTV.hu",SIXO TV (360p)
https://cloudfront44.lexanetwork.com:1344/relay01/HDE038.sdp/playlist.m3u8 https://cloudfront44.lexanetwork.com:1344/relay01/HDE038.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="RTLHungary.hu",RTL Hungary (576p) #EXTINF:-1 tvg-id="RTLHungary.hu",RTL Hungary (576p)
http://194.76.186.33:8000/play/a01e/index.m3u8 http://194.76.186.33:8000/play/a01e/index.m3u8
#EXTINF:-1 tvg-id="RTLHungary.hu",RTL Hungary (1080p) #EXTINF:-1 tvg-id="RTLHungary.hu",RTL Hungary (1080p)
http://194.76.186.33:8000/play/a041/index.m3u8 http://194.76.186.33:8000/play/a041/index.m3u8
#EXTINF:-1 tvg-id="RTLHungary.hu",RTL Hungary (576p) #EXTINF:-1 tvg-id="RTLHungary.hu",RTL Hungary (576p)
http://194.76.186.33:8000/play/a04g/index.m3u8 http://194.76.186.33:8000/play/a04g/index.m3u8
#EXTINF:-1 tvg-id="M4Sport.hu",M4 Sport (1080p) #EXTINF:-1 tvg-id="M4Sport.hu",M4 Sport (1080p)
http://146.59.85.40:89/m4hd/index.m3u8 http://146.59.85.40:89/m4hd/index.m3u8
#EXTINF:-1 tvg-id="M4Sport.hu",M4 Sport (1080p) #EXTINF:-1 tvg-id="M4Sport.hu",M4 Sport (1080p)
http://194.76.186.33:8000/play/a02c/index.m3u8 http://194.76.186.33:8000/play/a02c/index.m3u8
#EXTINF:-1 tvg-id="M4Sport.hu",M4 Sport (576p) #EXTINF:-1 tvg-id="M4Sport.hu",M4 Sport (576p)
http://194.76.186.33:8000/play/a02p/index.m3u8 http://194.76.186.33:8000/play/a02p/index.m3u8
#EXTINF:-1 tvg-id="M1.hu",M1 (576p) #EXTINF:-1 tvg-id="M1.hu",M1 (576p)
http://146.59.85.40:89/m1sd/index.m3u8 http://146.59.85.40:89/m1sd/index.m3u8
#EXTINF:-1 tvg-id="M1.hu",M1 (576p) #EXTINF:-1 tvg-id="M1.hu",M1 (576p)
http://194.76.186.33:8000/play/a00w/index.m3u8 http://194.76.186.33:8000/play/a00w/index.m3u8
#EXTINF:-1 tvg-id="M1.hu",M1 (1080p) #EXTINF:-1 tvg-id="M1.hu",M1 (1080p)
http://194.76.186.33:8000/play/a024/index.m3u8 http://194.76.186.33:8000/play/a024/index.m3u8
#EXTINF:-1 tvg-id="M1.hu",M1 (720p) [Not 24/7] #EXTINF:-1 tvg-id="M1.hu",M1 (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCHJ8gW2vKH5R3VohymtBCrQ.m3u8 https://ythls.onrender.com/channel/UCHJ8gW2vKH5R3VohymtBCrQ.m3u8
#EXTINF:-1 tvg-id="M5.hu",M5 (1080p) #EXTINF:-1 tvg-id="M5.hu",M5 (1080p)
http://146.59.85.40:89/m5/index.m3u8 http://146.59.85.40:89/m5/index.m3u8
#EXTINF:-1 tvg-id="M5.hu",M5 (576p) #EXTINF:-1 tvg-id="M5.hu",M5 (576p)
http://194.76.186.33:8000/play/a030/index.m3u8 http://194.76.186.33:8000/play/a030/index.m3u8
#EXTINF:-1 tvg-id="M5.hu",M5 (1080p) #EXTINF:-1 tvg-id="M5.hu",M5 (1080p)
http://194.76.186.33:8000/play/a045/index.m3u8 http://194.76.186.33:8000/play/a045/index.m3u8
#EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576p) #EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576p)
http://146.59.85.40:89/dunaworld/index.m3u8 http://146.59.85.40:89/dunaworld/index.m3u8
#EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576p) #EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576p)
http://194.76.186.33:8000/play/a01i/index.m3u8 http://194.76.186.33:8000/play/a01i/index.m3u8
#EXTINF:-1 tvg-id="DunaTV.hu",Duna TV (1080p) #EXTINF:-1 tvg-id="DunaTV.hu",Duna TV (1080p)
http://146.59.85.40:89/dunahd/index.m3u8 http://146.59.85.40:89/dunahd/index.m3u8
#EXTINF:-1 tvg-id="DunaTV.hu",Duna TV (576p) #EXTINF:-1 tvg-id="DunaTV.hu",Duna TV (576p)
http://194.76.186.33:8000/play/a01u/index.m3u8 http://194.76.186.33:8000/play/a01u/index.m3u8
@ -271,25 +271,27 @@ http://194.76.186.33:8000/play/a01u/index.m3u8
http://194.76.186.33:8000/play/a029/index.m3u8 http://194.76.186.33:8000/play/a029/index.m3u8
#EXTINF:-1 tvg-id="OrszaggyulesOGYplenaris.hu",Országgyűlés (Plenáris) (720p) [Not 24/7] #EXTINF:-1 tvg-id="OrszaggyulesOGYplenaris.hu",Országgyűlés (Plenáris) (720p) [Not 24/7]
http://plenaris.parlament.hu:1935/edgelive/smil:mkogyplen.smil/playlist.m3u8 http://plenaris.parlament.hu:1935/edgelive/smil:mkogyplen.smil/playlist.m3u8
#EXTINF:-1 tvg-id="OrszaggyulesOGYplenaris.hu",Országgyűlés (Plenáris) (720p) [Not 24/7] #EXTINF:-1 tvg-id="OrszaggyulesOGYplenaris.hu",Országgyűlés (Plenáris) (720p) [Not 24/7]
https://plenaris.parlament.hu:446/edgelive/smil:mkogyplen.smil/playlist.m3u8 https://plenaris.parlament.hu:446/edgelive/smil:mkogyplen.smil/playlist.m3u8
#EXTINF:-1 tvg-id="OrszaggyulesOGYTAB.hu",Országgyűlés (Törvényalkotási bizottság) (720p) [Not 24/7] #EXTINF:-1 tvg-id="OrszaggyulesOGYTAB.hu",Országgyűlés (Törvényalkotási bizottság) (720p) [Not 24/7]
http://tab.parlament.hu:1935/edgelive/smil:mkogytab.smil/playlist.m3u8 http://tab.parlament.hu:1935/edgelive/smil:mkogytab.smil/playlist.m3u8
#EXTINF:-1 tvg-id="OrszaggyulesOGYTAB.hu",Országgyűlés (Törvényalkotási bizottság) (720p) [Not 24/7] #EXTINF:-1 tvg-id="OrszaggyulesOGYTAB.hu",Országgyűlés (Törvényalkotási bizottság) (720p) [Not 24/7]
https://tab.parlament.hu:446/edgelive/smil:mkogytab.smil/playlist.m3u8 https://tab.parlament.hu:446/edgelive/smil:mkogytab.smil/playlist.m3u8
#EXTINF:-1 tvg-id="TV2Comedy.hu",TV2 Comedy (576p) #EXTINF:-1 tvg-id="TV2Comedy.hu",TV2 Comedy (576p)
http://194.76.186.33:8000/play/a031/index.m3u8 http://194.76.186.33:8000/play/a031/index.m3u8
#EXTINF:-1 tvg-id="TV2Sef.hu",TV2 Séf (576p) #EXTINF:-1 tvg-id="TV2Sef.hu",TV2 Séf (576p)
http://194.76.186.33:8000/play/a02s/index.m3u8 http://194.76.186.33:8000/play/a02s/index.m3u8
#EXTINF:-1 tvg-id="IzauraTV.hu",Izaura TV (576p) #EXTINF:-1 tvg-id="IzauraTV.hu",Izaura TV (576p)
http://146.59.85.40:89/izaura/index.m3u8 http://146.59.85.40:89/izaura/index.m3u8
#EXTINF:-1 tvg-id="IzauraTV.hu",Izaura TV (576p) #EXTINF:-1 tvg-id="IzauraTV.hu",Izaura TV (576p)
http://194.76.186.33:8000/play/a05j/index.m3u8 http://194.76.186.33:8000/play/a05j/index.m3u8
#EXTINF:-1 tvg-id="JockyTV.hu",Jocky TV (576p) #EXTINF:-1 tvg-id="JockyTV.hu",Jocky TV (576p)
http://146.59.85.40:89/jocky/index.m3u8 http://146.59.85.40:89/jocky/index.m3u8
#EXTINF:-1 tvg-id="JockyTV.hu",Jocky TV (576p) #EXTINF:-1 tvg-id="JockyTV.hu",Jocky TV (576p)
http://194.76.186.33:8000/play/a012/index.m3u8 http://194.76.186.33:8000/play/a012/index.m3u8
#EXTINF:-1 tvg-id="GranTV.hu",Gran TV (720p) #EXTINF:-1 tvg-id="GranTV.hu",Gran TV (720p)
https://stream.medialive.hu/gran/grantvlive/playlist.m3u8 https://stream.medialive.hu/gran/grantvlive/playlist.m3u8
#EXTINF:-1 tvg-id="LadanyTV.hu",Ladány TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="LadanyTV.hu",Ladány TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCnG322MGBA4q5QWwDzUTh0Q.m3u8 https://ythls.onrender.com/channel/UCnG322MGBA4q5QWwDzUTh0Q.m3u8
#EXTINF:-1 tvg-id="Match4.hu",Match4
http://194.76.186.33:8000/play/a04d/index.m3u8

View file

@ -522,13 +522,13 @@ https://wowza.convergen.co/ctv/ctv.stream/playlist.m3u8
https://dhohotv.siar.us/dhohotv/live/playlist.m3u8 https://dhohotv.siar.us/dhohotv/live/playlist.m3u8
#EXTINF:-1 tvg-id="RadarTasikmalayaTV.id",Radar Tasikmalaya TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="RadarTasikmalayaTV.id",Radar Tasikmalaya TV (720p) [Not 24/7]
http://103.140.188.211:1935/radartv/myStream/playlist.m3u8 http://103.140.188.211:1935/radartv/myStream/playlist.m3u8
#EXTINF:-1 tvg-id="TVTempo.id",TV Tempo (1080p) #EXTINF:-1 tvg-id="TVTempo.id",TV Tempo (1080p)
https://app-etslive-2.vidio.com/live/7946/master.m3u8 https://app-etslive-2.vidio.com/live/7946/master.m3u8
#EXTINF:-1 tvg-id="MentariTV.id",Mentari TV (720p) #EXTINF:-1 tvg-id="MentariTV.id",Mentari TV (720p)
https://app-etslive-2.vidio.com/live/8237/master.m3u8 https://app-etslive-2.vidio.com/live/8237/master.m3u8
#EXTINF:-1 tvg-id="WesalTV.id",Wesal TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="WesalTV.id",Wesal TV (720p) [Not 24/7]
https://ams.juraganstreaming.com:5443/LiveApp/streams/wesaltv.m3u8 https://ams.juraganstreaming.com:5443/LiveApp/streams/wesaltv.m3u8
#EXTINF:-1 tvg-id="TawafTV.id",Tawaf TV (720p) #EXTINF:-1 tvg-id="TawafTV.id",Tawaf TV (720p)
https://app-etslive-2.vidio.com/live/12607/master.m3u8 https://app-etslive-2.vidio.com/live/12607/master.m3u8
#EXTINF:-1 tvg-id="DuniaGamesTV.id",Dunia Games TV (720p) [Not 24/7] [Geo-blocked] #EXTINF:-1 tvg-id="DuniaGamesTV.id",Dunia Games TV (720p) [Not 24/7] [Geo-blocked]
https://cdn01-telkomsel-01.akamaized.net/Content/HLS/Live/channel(6854467f-52fe-48ee-9822-00233c678709)/index.m3u8 https://cdn01-telkomsel-01.akamaized.net/Content/HLS/Live/channel(6854467f-52fe-48ee-9822-00233c678709)/index.m3u8

View file

@ -504,7 +504,7 @@ https://ythls.onrender.com/channel/UCsfh2Zb7-m4qzT8jLhK_Fzw.m3u8
https://5b48d7e1b4bce.streamlock.net/myapp/newslive/playlist.m3u8 https://5b48d7e1b4bce.streamlock.net/myapp/newslive/playlist.m3u8
#EXTINF:-1 tvg-id="NewsNation.in",News Nation (720p) [Not 24/7] #EXTINF:-1 tvg-id="NewsNation.in",News Nation (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCsNdeLwEZf86swPD3qJJ7Dw.m3u8 https://ythls.onrender.com/channel/UCsNdeLwEZf86swPD3qJJ7Dw.m3u8
#EXTINF:-1 tvg-id="NewsNation.in",News Nation (720p) #EXTINF:-1 tvg-id="NewsNation.in",News Nation (720p)
https://livetv-channels.b-cdn.net/8006/playlist.m3u8 https://livetv-channels.b-cdn.net/8006/playlist.m3u8
#EXTINF:-1 tvg-id="NewsStateMPCHG.in",News State MP & CHG (1080p) [Not 24/7] #EXTINF:-1 tvg-id="NewsStateMPCHG.in",News State MP & CHG (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCz6sfaICYbi4LEXC-022qpg.m3u8 https://ythls.onrender.com/channel/UCz6sfaICYbi4LEXC-022qpg.m3u8
@ -929,3 +929,7 @@ https://mntv.livebox.co.in/mntvhls/live.m3u8
https://mntv.livebox.co.in/musichls/live.m3u8 https://mntv.livebox.co.in/musichls/live.m3u8
#EXTINF:-1 tvg-id="ReporterTV.in",Reporter TV #EXTINF:-1 tvg-id="ReporterTV.in",Reporter TV
https://ythls.onrender.com/channel/UCFx1nseXKTc1Culiu3neeSQ.m3u8 https://ythls.onrender.com/channel/UCFx1nseXKTc1Culiu3neeSQ.m3u8
#EXTINF:-1 tvg-id="ManoramaNews.in",Manorama News
https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8
#EXTINF:-1 tvg-id="AajTak.in",Aaj Tak
https://feeds.intoday.in/aajtak/api/aajtakhd/master.m3u8

View file

@ -21,7 +21,7 @@ http://63b03f7689049.streamlock.net:1935/live/13/playlist.m3u8
http://63b03f7689049.streamlock.net:1935/live/19/playlist.m3u8 http://63b03f7689049.streamlock.net:1935/live/19/playlist.m3u8
#EXTINF:-1 tvg-id="AlEtejahTV.iq",Al Etejah TV #EXTINF:-1 tvg-id="AlEtejahTV.iq",Al Etejah TV
http://63b03f7689049.streamlock.net:1935/live/33/playlist.m3u8 http://63b03f7689049.streamlock.net:1935/live/33/playlist.m3u8
#EXTINF:-1 tvg-id="AlforatTV.iq",Alforat TV (1080p) #EXTINF:-1 tvg-id="AlforatTV.iq",Alforat TV (1080p)
http://95.216.180.111:1935/live/10/playlist.m3u8 http://95.216.180.111:1935/live/10/playlist.m3u8
#EXTINF:-1 tvg-id="AlGhadeerTV.iq",Al Ghadeer TV #EXTINF:-1 tvg-id="AlGhadeerTV.iq",Al Ghadeer TV
http://63b03f7689049.streamlock.net:1935/live/2/playlist.m3u8 http://63b03f7689049.streamlock.net:1935/live/2/playlist.m3u8
@ -87,7 +87,7 @@ http://77.36.160.164:1935/live4/thaghalayn/playlist.m3u8
http://63b03f7689049.streamlock.net:1935/live/16/playlist.m3u8 http://63b03f7689049.streamlock.net:1935/live/16/playlist.m3u8
#EXTINF:-1 tvg-id="Alqanat9TV.iq",Alqanat9 TV (1080p) #EXTINF:-1 tvg-id="Alqanat9TV.iq",Alqanat9 TV (1080p)
https://cdn.bestream.io:19360/alqanat9/alqanat9.m3u8 https://cdn.bestream.io:19360/alqanat9/alqanat9.m3u8
#EXTINF:-1 tvg-id="Alquran.iq",Alquran (1080p) #EXTINF:-1 tvg-id="Alquran.iq",Alquran (1080p)
https://ktv.imamhussain.org/stream/hls/ch1.m3u8 https://ktv.imamhussain.org/stream/hls/ch1.m3u8
#EXTINF:-1 tvg-id="AmozhgaryTV.iq",Amozhgary TV (1080p) #EXTINF:-1 tvg-id="AmozhgaryTV.iq",Amozhgary TV (1080p)
https://media.streambrothers.com:1936/8248/8248/playlist.m3u8 https://media.streambrothers.com:1936/8248/8248/playlist.m3u8
@ -131,9 +131,9 @@ https://live.imamhossaintv.com/live/ih4.m3u8
https://mn-nl.mncdn.com/alzahra/alzahra_hd.smil/playlist.m3u8 https://mn-nl.mncdn.com/alzahra/alzahra_hd.smil/playlist.m3u8
#EXTINF:-1 tvg-id="ImamHusseinTV6.iq",Imam Hussein TV 6 (1080p) [Not 24/7] #EXTINF:-1 tvg-id="ImamHusseinTV6.iq",Imam Hussein TV 6 (1080p) [Not 24/7]
https://mn-nl.mncdn.com/arbaeen/arbaeen_hd.smil/index.m3u8 https://mn-nl.mncdn.com/arbaeen/arbaeen_hd.smil/index.m3u8
#EXTINF:-1 tvg-id="INews.iq",iNEWS TV (1080p) #EXTINF:-1 tvg-id="INews.iq",iNEWS TV (1080p)
https://svs.itworkscdn.net/inewsiqlive/inewsiq.smil/playlist.m3u8 https://svs.itworkscdn.net/inewsiqlive/inewsiq.smil/playlist.m3u8
#EXTINF:-1 tvg-id="IshtarTV.iq",Ishtar TV (1080p) #EXTINF:-1 tvg-id="IshtarTV.iq",Ishtar TV (1080p)
http://ishtar.cdncast.xyz:1935/live/iShtarHD/playlist.m3u8 http://ishtar.cdncast.xyz:1935/live/iShtarHD/playlist.m3u8
#EXTINF:-1 tvg-id="KarbalaTV.iq",Karbala TV (1080p) [Geo-blocked] #EXTINF:-1 tvg-id="KarbalaTV.iq",Karbala TV (1080p) [Geo-blocked]
https://livestream.almanasa.tv:8117/islamic/ch3/ch3_1080.m3u8 https://livestream.almanasa.tv:8117/islamic/ch3/ch3_1080.m3u8
@ -175,9 +175,9 @@ https://livestream.almanasa.tv:8001/islamic/ch7/ch7_1080.m3u8
https://livestream.almanasa.tv:8045/enter/ch6/ch6_1080.m3u8 https://livestream.almanasa.tv:8045/enter/ch6/ch6_1080.m3u8
#EXTINF:-1 tvg-id="SPITV.iq",SPI TV (720p) #EXTINF:-1 tvg-id="SPITV.iq",SPI TV (720p)
https://cdn1.karwan.tv/spi-tv/index.m3u8 https://cdn1.karwan.tv/spi-tv/index.m3u8
#EXTINF:-1 tvg-id="SpedaTV.iq",Speda TV (720p) #EXTINF:-1 tvg-id="SpedaTV.iq",Speda TV (720p)
https://speda.dwasat.com/upload/images/spedahd.m3u8 https://speda.dwasat.com/upload/images/spedahd.m3u8
#EXTINF:-1 tvg-id="UTV.iq",UTV (1080p) #EXTINF:-1 tvg-id="UTV.iq",UTV (1080p)
https://mn-nl.mncdn.com/utviraqi2/64c80359/index.m3u8 https://mn-nl.mncdn.com/utviraqi2/64c80359/index.m3u8
#EXTINF:-1 tvg-id="WaarTV.iq",Waar TV (720p) #EXTINF:-1 tvg-id="WaarTV.iq",Waar TV (720p)
https://ikomg4.s.llnwi.net/waarhd/waar-hd.m3u8 https://ikomg4.s.llnwi.net/waarhd/waar-hd.m3u8

View file

@ -89,77 +89,77 @@ http://51.210.227.134/hls/stream.m3u8
https://af.ayas.ir/hls2/tv3.m3u8 https://af.ayas.ir/hls2/tv3.m3u8
#EXTINF:-1 tvg-id="iFilmPersian.ir",iFilm Persian (540p) #EXTINF:-1 tvg-id="iFilmPersian.ir",iFilm Persian (540p)
https://live.aionet.ir/hls/ifilm/ifilm.m3u8 https://live.aionet.ir/hls/ifilm/ifilm.m3u8
#EXTINF:-1 tvg-id="AioSport1.ir",Aio Sport 1 (480p) #EXTINF:-1 tvg-id="AioSport1.ir",Aio Sport 1 (480p)
https://af.ayas.ir/hls2/aiosport.m3u8 https://af.ayas.ir/hls2/aiosport.m3u8
#EXTINF:-1 tvg-id="AioSport2.ir",Aio Sport 2 (480p) [Not 24/7] #EXTINF:-1 tvg-id="AioSport2.ir",Aio Sport 2 (480p) [Not 24/7]
https://af.ayas.ir/hls2/aiosport2.m3u8 https://af.ayas.ir/hls2/aiosport2.m3u8
#EXTINF:-1 tvg-id="AvangTV.us",Avang TV (720p) #EXTINF:-1 tvg-id="AvangTV.us",Avang TV (720p)
https://hls.avang.live/hls/stream.m3u8 https://hls.avang.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="AlZahraTV.ir",Al Zahra TV (1080p) #EXTINF:-1 tvg-id="AlZahraTV.ir",Al Zahra TV (1080p)
https://mn-nl.mncdn.com/alzahra/alzahra_hd.smil/playlist.m3u8 https://mn-nl.mncdn.com/alzahra/alzahra_hd.smil/playlist.m3u8
#EXTINF:-1 tvg-id="MihanTV.ir",Mihan TV (720p) #EXTINF:-1 tvg-id="MihanTV.ir",Mihan TV (720p)
https://iptv.mihantv.com/mihantv/playlist.m3u8 https://iptv.mihantv.com/mihantv/playlist.m3u8
#EXTINF:-1 tvg-id="NegahTV.ir",Negah TV (720p) #EXTINF:-1 tvg-id="NegahTV.ir",Negah TV (720p)
https://iptv.negahtv.com/negahtv/playlist.m3u8 https://iptv.negahtv.com/negahtv/playlist.m3u8
#EXTINF:-1 tvg-id="AMGTV.ca",AMG TV (720p) #EXTINF:-1 tvg-id="AMGTV.ca",AMG TV (720p)
https://nl.livekadeh.com/hls2/AMG_src.m3u8 https://nl.livekadeh.com/hls2/AMG_src.m3u8
#EXTINF:-1 tvg-id="BravoFarsiTV.ir",Bravo Farsi TV (360p) #EXTINF:-1 tvg-id="BravoFarsiTV.ir",Bravo Farsi TV (360p)
https://bravoohls.wns.live/hls/stream.m3u8 https://bravoohls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="FarsiTV.us",Farsi TV (1080p) #EXTINF:-1 tvg-id="FarsiTV.us",Farsi TV (1080p)
https://live.farsitv.us/live/stream.m3u8 https://live.farsitv.us/live/stream.m3u8
#EXTINF:-1 tvg-id="TODAYTV.us",Today TV (720p) #EXTINF:-1 tvg-id="TODAYTV.us",Today TV (720p)
https://todayhls.wns.live/hls/stream.m3u8 https://todayhls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="",Health Media TV (720p) #EXTINF:-1 tvg-id="",Health Media TV (720p)
https://6n3yowknl9ok-hls-live.5centscdn.com/HMN/271ddf829afeece44d8732757fba1a66.sdp/playlist.m3u8 https://6n3yowknl9ok-hls-live.5centscdn.com/HMN/271ddf829afeece44d8732757fba1a66.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="PersianBazaarTV.us",Persian Bazaar TV (720p) #EXTINF:-1 tvg-id="PersianBazaarTV.us",Persian Bazaar TV (720p)
https://stream.persiantv1.com/ptv1/playlist.m3u8 https://stream.persiantv1.com/ptv1/playlist.m3u8
#EXTINF:-1 tvg-id="ChannelOne.us",Channel Yek (720p) #EXTINF:-1 tvg-id="ChannelOne.us",Channel Yek (720p)
https://ch1hls.wns.live/hls/stream.m3u8 https://ch1hls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="IraneFardaTV.us",IraneFarda TV (576p) #EXTINF:-1 tvg-id="IraneFardaTV.us",IraneFarda TV (576p)
https://hls.iranfarda.live/hls/stream.m3u8 https://hls.iranfarda.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="MTC.us",MTC (720p) #EXTINF:-1 tvg-id="MTC.us",MTC (720p)
https://mtchls.wns.live/hls/stream.m3u8 https://mtchls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="OXIRTV.ir",OXIR TV (720p) #EXTINF:-1 tvg-id="OXIRTV.ir",OXIR TV (720p)
https://hls.oxir.live/hls/stream.m3u8 https://hls.oxir.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="ICCTV.ir",ICC TV (1080p) #EXTINF:-1 tvg-id="ICCTV.ir",ICC TV (1080p)
https://icchls.wns.live/hls/stream.m3u8 https://icchls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="JavananTV.us",Javanan TV (480p) #EXTINF:-1 tvg-id="JavananTV.us",Javanan TV (480p)
https://nl.livekadeh.com/hls2/javanantv.m3u8 https://nl.livekadeh.com/hls2/javanantv.m3u8
#EXTINF:-1 tvg-id="DamacPersian.ae",Damac Persian (720p) #EXTINF:-1 tvg-id="DamacPersian.ae",Damac Persian (720p)
https://damac-tv.icdndhcp.com/hls/stream.m3u8 https://damac-tv.icdndhcp.com/hls/stream.m3u8
#EXTINF:-1 tvg-id="TBNNejatTV.ir",TBN Nejat TV (720p) #EXTINF:-1 tvg-id="TBNNejatTV.ir",TBN Nejat TV (720p)
https://hls.nejat.live/hls/stream.m3u8 https://hls.nejat.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="Shabakeh7.us",Shabakeh 7 (576p) #EXTINF:-1 tvg-id="Shabakeh7.us",Shabakeh 7 (576p)
https://t.northtelecom.org/Shabakeh.m3u8 https://t.northtelecom.org/Shabakeh.m3u8
#EXTINF:-1 tvg-id="ErfanHalghehTV.ca",Erfan Halgheh TV (720p) #EXTINF:-1 tvg-id="ErfanHalghehTV.ca",Erfan Halgheh TV (720p)
https://hls.erfanhalgheh.live/hls/stream.m3u8 https://hls.erfanhalgheh.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="KanalJadid.uk",Kanal Jadid (720p) #EXTINF:-1 tvg-id="KanalJadid.uk",Kanal Jadid (720p)
https://kjhls.wns.live/hls/stream.m3u8 https://kjhls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="SimayeAzadi.uk",Simaye Azadi (1080p) #EXTINF:-1 tvg-id="SimayeAzadi.uk",Simaye Azadi (1080p)
https://simaytv.akamaized.net/hls/live/2043550/simayhls/index.m3u8 https://simaytv.akamaized.net/hls/live/2043550/simayhls/index.m3u8
#EXTINF:-1 tvg-id="KhaterehTV.de",Khatereh TV (720p) #EXTINF:-1 tvg-id="KhaterehTV.de",Khatereh TV (720p)
https://khaterehhls.wns.live/hls/stream.m3u8 https://khaterehhls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="CafeTradeTV.us",Cafe Trade TV (720p) #EXTINF:-1 tvg-id="CafeTradeTV.us",Cafe Trade TV (720p)
https://cafetradehls.wns.live/hls/stream.m3u8 https://cafetradehls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="",FX TV Iran (720p) #EXTINF:-1 tvg-id="",FX TV Iran (720p)
https://fxtvhls.wns.live/hls/stream.m3u8 https://fxtvhls.wns.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="PayameArameshTV.us",Payame Aramesh TV (720p) #EXTINF:-1 tvg-id="PayameArameshTV.us",Payame Aramesh TV (720p)
https://hls.keshishhamid.live/hls/stream.m3u8 https://hls.keshishhamid.live/hls/stream.m3u8
#EXTINF:-1 tvg-id="DerakhteZendegiTV.us",Derakhte Zendegi TV (404p) #EXTINF:-1 tvg-id="DerakhteZendegiTV.us",Derakhte Zendegi TV (404p)
http://iran620.com:1935/derakhte-zendegi/test/playlist.m3u8 http://iran620.com:1935/derakhte-zendegi/test/playlist.m3u8
#EXTINF:-1 tvg-id="RanTVIsrael.il",Ran TV Israel (720p) #EXTINF:-1 tvg-id="RanTVIsrael.il",Ran TV Israel (720p)
https://streaminglive.co.il:3730/live/raniamranilive.m3u8 https://streaminglive.co.il:3730/live/raniamranilive.m3u8
#EXTINF:-1 tvg-id="iFilmEnglish.ir",iFilm English (480p) #EXTINF:-1 tvg-id="iFilmEnglish.ir",iFilm English (480p)
https://live1.presstv.ir/live/ifilmen.m3u8 https://live1.presstv.ir/live/ifilmen.m3u8
#EXTINF:-1 tvg-id="IRNA24.ir",IRNA24 (720p) #EXTINF:-1 tvg-id="IRNA24.ir",IRNA24 (720p)
https://irna-tv.icdndhcp.com/live/stream/index.m3u8 https://irna-tv.icdndhcp.com/live/stream/index.m3u8
#EXTINF:-1 tvg-id="iFilm2.ir",iFilm 2 (480p) #EXTINF:-1 tvg-id="iFilm2.ir",iFilm 2 (480p)
https://live1.presstv.ir/live/ifilm2.m3u8 https://live1.presstv.ir/live/ifilm2.m3u8
#EXTINF:-1 tvg-id="VelayatTVNetwork.us",Velayat TV (480p) #EXTINF:-1 tvg-id="VelayatTVNetwork.us",Velayat TV (480p)
https://nl.livekadeh.com/hls2/velayattv.m3u8 https://nl.livekadeh.com/hls2/velayattv.m3u8
#EXTINF:-1 tvg-id="AbalfadhlTV.ir",Abalfadhl TV (720p) #EXTINF:-1 tvg-id="AbalfadhlTV.ir",Abalfadhl TV (720p)
https://t.northtelecom.org/ABALFADHLTV.m3u8 https://t.northtelecom.org/ABALFADHLTV.m3u8
#EXTINF:-1 tvg-id="HausaTV.ir",Hausa TV (432p) #EXTINF:-1 tvg-id="HausaTV.ir",Hausa TV (432p)
https://live1.presstv.ir/live/hausatvha/index.m3u8 https://live1.presstv.ir/live/hausatvha/index.m3u8
#EXTINF:-1 tvg-id="ParsTV.ir",Pars TV (720p) #EXTINF:-1 tvg-id="ParsTV.ir",Pars TV (720p)
http://167.235.204.214/hls/stream.m3u8 http://167.235.204.214/hls/stream.m3u8

View file

@ -5,7 +5,7 @@ https://althingi-live.secure.footprint.net/althingi/live/index.m3u8
https://ruvlive.akamaized.net/out/v1/2ff7673de40f419fa5164498fae89089/index.m3u8 https://ruvlive.akamaized.net/out/v1/2ff7673de40f419fa5164498fae89089/index.m3u8
#EXTINF:-1 tvg-id="RUV.is",RÚV (720p) #EXTINF:-1 tvg-id="RUV.is",RÚV (720p)
https://ruv-web-live.akamaized.net/streymi/ruverl/ruverl.m3u8 https://ruv-web-live.akamaized.net/streymi/ruverl/ruverl.m3u8
#EXTINF:-1 tvg-id="Visir.is",Vísir (1080p) #EXTINF:-1 tvg-id="Visir.is",Vísir (1080p)
https://live.visir.is/hls-live/visir.smil/playlist.m3u8 https://live.visir.is/hls-live/visir.smil/playlist.m3u8
#EXTINF:-1 tvg-id="Omega.is",Omega (1080p) #EXTINF:-1 tvg-id="Omega.is",Omega (1080p)
https://196914.global.ssl.fastly.net/63fe5f3a8f037f47ac36fb2a/live_1d411f00b7a411eda9b5d3bb4704377e/index.m3u8 https://196914.global.ssl.fastly.net/63fe5f3a8f037f47ac36fb2a/live_1d411f00b7a411eda9b5d3bb4704377e/index.m3u8

View file

@ -85,7 +85,7 @@ https://ythls.onrender.com/channel/UC8iN-WKPu820ve-4t9NxHRw.m3u8
https://ythls.onrender.com/channel/UCvF5vIejmf-H_XSluaBldfg.m3u8 https://ythls.onrender.com/channel/UCvF5vIejmf-H_XSluaBldfg.m3u8
#EXTINF:-1 tvg-id="HOMEHiroshimaNews.jp",HOME Hiroshima News (1080p) [Not 24/7] #EXTINF:-1 tvg-id="HOMEHiroshimaNews.jp",HOME Hiroshima News (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCRnFGOp_mjaCYEhMzsE2iHA.m3u8 https://ythls.onrender.com/channel/UCRnFGOp_mjaCYEhMzsE2iHA.m3u8
#EXTINF:-1 tvg-id="JOCXDTV.jp",Fuji TV (540p) #EXTINF:-1 tvg-id="JOCXDTV.jp",Fuji TV (540p)
https://fujitv4.mov3.co/hls/fujitv.m3u8 https://fujitv4.mov3.co/hls/fujitv.m3u8
#EXTINF:-1 tvg-id="MBSNews.jp",MBS News (1080p) [Not 24/7] #EXTINF:-1 tvg-id="MBSNews.jp",MBS News (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCkKJhKO73xF1pK5h9R82ZGQ.m3u8 https://ythls.onrender.com/channel/UCkKJhKO73xF1pK5h9R82ZGQ.m3u8
@ -115,3 +115,5 @@ https://cdn.nhkworld.jp/www11/nhkworld-tv/bmcc-live/fr/playlist.m3u8
https://cdn.nhkworld.jp/www11/nhkworld-tv/bmcc-live/pt/playlist.m3u8 https://cdn.nhkworld.jp/www11/nhkworld-tv/bmcc-live/pt/playlist.m3u8
#EXTINF:-1 tvg-id="NHKGeneralTV.jp",NHK G (360p) [Not 24/7] #EXTINF:-1 tvg-id="NHKGeneralTV.jp",NHK G (360p) [Not 24/7]
https://newssimul-stream.nhk.jp/hls/live/2010561/nhknewssimul/master.m3u8 https://newssimul-stream.nhk.jp/hls/live/2010561/nhknewssimul/master.m3u8
#EXTINF:-1 tvg-id="Weathernews.jp",Weathernews
https://ythls.onrender.com/channel/UCNsidkYpIAQ4QaufptQBPHQ.m3u8

View file

@ -35,11 +35,11 @@ https://goliveafrica.media:9998/live/638da5440743c/index.m3u8
https://goliveafrica.media:9998/live/627e198474bd1/index.m3u8 https://goliveafrica.media:9998/live/627e198474bd1/index.m3u8
#EXTINF:-1 tvg-id="FaithTVKenya.ke",Faith TV Kenya (1080p) [Not 24/7] #EXTINF:-1 tvg-id="FaithTVKenya.ke",Faith TV Kenya (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCQFnIxX1vwsqW7MPcJdYTeg.m3u8 https://ythls.onrender.com/channel/UCQFnIxX1vwsqW7MPcJdYTeg.m3u8
#EXTINF:-1 tvg-id="DestinyVoicesTV.ke",Destiny Voices TV (480p) #EXTINF:-1 tvg-id="DestinyVoicesTV.ke",Destiny Voices TV (480p)
https://apps.digitaltv.co.ke/live/2004.m3u8 https://apps.digitaltv.co.ke/live/2004.m3u8
#EXTINF:-1 tvg-id="SasaTV.ke",Sasa TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="SasaTV.ke",Sasa TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCrBGAWr24pPQn-HUWZDBelQ.m3u8 https://ythls.onrender.com/channel/UCrBGAWr24pPQn-HUWZDBelQ.m3u8
#EXTINF:-1 tvg-id="MuthingiTV.ke",Muthingi TV (480p) #EXTINF:-1 tvg-id="MuthingiTV.ke",Muthingi TV (480p)
https://apps.digitaltv.co.ke/live/2005.m3u8 https://apps.digitaltv.co.ke/live/2005.m3u8
#EXTINF:-1 tvg-id="TestimonyTV.ke",Testimony TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TestimonyTV.ke",Testimony TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCDmLoDM4S60MhbfmO2yr_SA.m3u8 https://ythls.onrender.com/channel/UCDmLoDM4S60MhbfmO2yr_SA.m3u8
@ -49,7 +49,7 @@ https://goliveafrica.media:9998/live/6389d571d20af/index.m3u8
https://goliveafrica.media:9998/live/64a26e4dd21a3/index.m3u8 https://goliveafrica.media:9998/live/64a26e4dd21a3/index.m3u8
#EXTINF:-1 tvg-id="GTNTV.ke",GTN TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="GTNTV.ke",GTN TV (1080p) [Not 24/7]
https://goliveafrica.media:9998/live/644e07abdc1d3/index.m3u8 https://goliveafrica.media:9998/live/644e07abdc1d3/index.m3u8
#EXTINF:-1 tvg-id="AviationTV.ke",Aviation TV (480p) #EXTINF:-1 tvg-id="AviationTV.ke",Aviation TV (480p)
http://streamer02.nbo1.angani.co:1935/aviationtv/myStream/playlist.m3u8 http://streamer02.nbo1.angani.co:1935/aviationtv/myStream/playlist.m3u8
#EXTINF:-1 tvg-id="JCMTV.ke",JCM TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="JCMTV.ke",JCM TV (720p) [Not 24/7]
https://goliveafrica.media:9998/live/646c92d07b16c/index.m3u8 https://goliveafrica.media:9998/live/646c92d07b16c/index.m3u8
@ -81,5 +81,5 @@ https://goliveafrica.media:9998/live/628e5c1991061/index.m3u8
https://goliveafrica.media:9998/live/647460ac1ddd6/index.m3u8 https://goliveafrica.media:9998/live/647460ac1ddd6/index.m3u8
#EXTINF:-1 tvg-id="KTNHome.ke",KTN Home (720p) [Not 24/7] [Geo-blocked] #EXTINF:-1 tvg-id="KTNHome.ke",KTN Home (720p) [Not 24/7] [Geo-blocked]
https://ythls.onrender.com/channel/UCkWr5PLM8hp8M4WNIkjpKsQ.m3u8 https://ythls.onrender.com/channel/UCkWr5PLM8hp8M4WNIkjpKsQ.m3u8
#EXTINF:-1 tvg-id="AlHudaTV.ke",Al Huda TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="AlHudaTV.ke",Al Huda TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCdTAsRrQEp-IVoMzKoRG4ZQ.m3u8 https://ythls.onrender.com/channel/UCdTAsRrQEp-IVoMzKoRG4ZQ.m3u8

View file

@ -15,3 +15,5 @@ http://onlinetv.ktrk.kg:1935/live/myStream2/playlist.m3u8
http://onlinetv.ktrk.kg:1935/live/myStream/playlist.m3u8 http://onlinetv.ktrk.kg:1935/live/myStream/playlist.m3u8
#EXTINF:-1 tvg-id="KTRKSport.kg",KTRK Sport (576p) #EXTINF:-1 tvg-id="KTRKSport.kg",KTRK Sport (576p)
http://onlinetv.ktrk.kg:1935/live/myStream4/playlist.m3u8 http://onlinetv.ktrk.kg:1935/live/myStream4/playlist.m3u8
#EXTINF:-1 tvg-id="Balastan.kg",Balastan
https://64e5ed58c00d4.streamlock.net/live/smil:balastan.smil/playlist.m3u8

View file

@ -249,7 +249,7 @@ http://live.kytv.co.kr:8080/hls/stream.m3u8
http://210.210.155.37/dr9445/h/h21/index.m3u8 http://210.210.155.37/dr9445/h/h21/index.m3u8
#EXTINF:-1 tvg-id="YTNWorld.kr",YTN Korean (1080p) [Not 24/7] #EXTINF:-1 tvg-id="YTNWorld.kr",YTN Korean (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCizGMtU0Lt-O9X0tLJzyZ2Q.m3u8 https://ythls.onrender.com/channel/UCizGMtU0Lt-O9X0tLJzyZ2Q.m3u8
#EXTINF:-1 tvg-id="OUN.kr",OUN (1080p) #EXTINF:-1 tvg-id="OUN.kr",OUN (1080p)
https://live.knou.ac.kr/knou1/live1/playlist.m3u8 https://live.knou.ac.kr/knou1/live1/playlist.m3u8
#EXTINF:-1 tvg-id="PaxEconomyTV.kr",Pax Economy TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="PaxEconomyTV.kr",Pax Economy TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC6UEuBvk-0rmV4FUu0LDiTw.m3u8 https://ythls.onrender.com/channel/UC6UEuBvk-0rmV4FUu0LDiTw.m3u8

View file

@ -1,5 +1,5 @@
#EXTM3U #EXTM3U
#EXTINF:-1 tvg-id="CaribbeanHot7TV.lc",Caribbean Hot 7 TV (720p) #EXTINF:-1 tvg-id="CaribbeanHot7TV.lc",Caribbean Hot 7 TV (720p)
https://586a9edea75f1.streamlock.net/caribbeanhot7tv/ch7-1.stream/playlist.m3u8 https://586a9edea75f1.streamlock.net/caribbeanhot7tv/ch7-1.stream/playlist.m3u8
#EXTINF:-1 tvg-id="GovernmentofSaintLucia.lc",Government of Saint Lucia (1080p) [Not 24/7] #EXTINF:-1 tvg-id="GovernmentofSaintLucia.lc",Government of Saint Lucia (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC4al3A_gysYEIzAM1L2qZbg.m3u8 https://ythls.onrender.com/channel/UC4al3A_gysYEIzAM1L2qZbg.m3u8

View file

@ -25,3 +25,5 @@ https://ythls.onrender.com/channel/UC37lrcLuvJmWDoooxwiPXXA.m3u8
https://ythls.onrender.com/channel/UC1WREaxq8LRhdOOmzSFg2pA.m3u8 https://ythls.onrender.com/channel/UC1WREaxq8LRhdOOmzSFg2pA.m3u8
#EXTINF:-1 tvg-id="AdaDerana24x7.lk",Ada Derana News (720p) [Not 24/7] #EXTINF:-1 tvg-id="AdaDerana24x7.lk",Ada Derana News (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCCK3OZi788Ok44K97WAhLKQ.m3u8 https://ythls.onrender.com/channel/UCCK3OZi788Ok44K97WAhLKQ.m3u8
#EXTINF:-1 tvg-id="MethTV.lk",Meth TV
https://ythls.onrender.com/channel/UC7kBHRaynsJMB6JcooGLTmA.m3u8

View file

@ -75,11 +75,11 @@ https://616eee1852d6c.streamlock.net/live/myStream/playlist.m3u8
https://dish.akamaized.net/Content/HLS_HLS_CLR/Live/channel(mvs)/variant.m3u8 https://dish.akamaized.net/Content/HLS_HLS_CLR/Live/channel(mvs)/variant.m3u8
#EXTINF:-1 tvg-id="NoticiasCanal10.mx",Noticias Canal 10 (360p) [Not 24/7] #EXTINF:-1 tvg-id="NoticiasCanal10.mx",Noticias Canal 10 (360p) [Not 24/7]
https://canal10.mediaflix.istream.mx/wza_live/live/movil/playlist.m3u8 https://canal10.mediaflix.istream.mx/wza_live/live/movil/playlist.m3u8
#EXTINF:-1 tvg-id="NPlus.mx",NMás (1080p) #EXTINF:-1 tvg-id="NPlus.mx",NMás (1080p)
https://channel07-notusa.akamaized.net/hls/live/2036971/event01/index.m3u8 https://channel07-notusa.akamaized.net/hls/live/2036971/event01/index.m3u8
#EXTINF:-1 tvg-id="NPlusMedia.mx",NMás Media (1080p) #EXTINF:-1 tvg-id="NPlusMedia.mx",NMás Media (1080p)
https://channel04-notusa.akamaized.net/hls/live/2029754-b/event01/index.m3u8 https://channel04-notusa.akamaized.net/hls/live/2029754-b/event01/index.m3u8
#EXTINF:-1 tvg-id="NPlusMedia.mx",NMás Media (1080p) #EXTINF:-1 tvg-id="NPlusMedia.mx",NMás Media (1080p)
https://channel04-notusa.akamaized.net/hls/live/2029754/event01/index.m3u8 https://channel04-notusa.akamaized.net/hls/live/2029754/event01/index.m3u8
#EXTINF:-1 tvg-id="NRTMexico.mx",NRT México Canal 4 (720p) #EXTINF:-1 tvg-id="NRTMexico.mx",NRT México Canal 4 (720p)
https://59e88b197fb16.streamlock.net:4443/live/canal4/playlist.m3u8 https://59e88b197fb16.streamlock.net:4443/live/canal4/playlist.m3u8
@ -207,7 +207,7 @@ https://channel01.akamaized.net/hls/live/2022749/event01/index.m3u8
https://ssh101.bozztv.com/ssh101/ochotv/playlist.m3u8 https://ssh101.bozztv.com/ssh101/ochotv/playlist.m3u8
#EXTINF:-1 tvg-id="UMTV.mx",UMTV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="UMTV.mx",UMTV (1080p) [Not 24/7]
https://60417ddeaf0d9.streamlock.net:443/montemorelos/videomontemorelos/playlist.m3u8 https://60417ddeaf0d9.streamlock.net:443/montemorelos/videomontemorelos/playlist.m3u8
#EXTINF:-1 tvg-id="RomanzaPlusAfrica.mx",Romanza+ Africa (720p) #EXTINF:-1 tvg-id="RomanzaPlusAfrica.mx",Romanza+ Africa (720p)
https://origin3.afxp.telemedia.co.za/PremiumFree/romanza/playlist.m3u8 https://origin3.afxp.telemedia.co.za/PremiumFree/romanza/playlist.m3u8
#EXTINF:-1 tvg-id="Canal13Oaxaca.mx",Canal 13 Oaxaca (720p) [Not 24/7] #EXTINF:-1 tvg-id="Canal13Oaxaca.mx",Canal 13 Oaxaca (720p) [Not 24/7]
https://dbdfj5y8nz2u4.cloudfront.net/c13oaxaca/d0dbe915091d400bd8ee7f27f0791303.sdp/playlist.m3u8 https://dbdfj5y8nz2u4.cloudfront.net/c13oaxaca/d0dbe915091d400bd8ee7f27f0791303.sdp/playlist.m3u8
@ -227,5 +227,5 @@ https://dbdfj5y8nz2u4.cloudfront.net/c13tabasco/d0dbe915091d400bd8ee7f27f0791303
https://dbdfj5y8nz2u4.cloudfront.net/c13tapachula/d0dbe915091d400bd8ee7f27f0791303.sdp/playlist.m3u8 https://dbdfj5y8nz2u4.cloudfront.net/c13tapachula/d0dbe915091d400bd8ee7f27f0791303.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="Canal13Yucatan.mx",Canal 13 Yucatán (720p) [Not 24/7] #EXTINF:-1 tvg-id="Canal13Yucatan.mx",Canal 13 Yucatán (720p) [Not 24/7]
https://dbdfj5y8nz2u4.cloudfront.net/c13yucatan/d0dbe915091d400bd8ee7f27f0791303.sdp/playlist.m3u8 https://dbdfj5y8nz2u4.cloudfront.net/c13yucatan/d0dbe915091d400bd8ee7f27f0791303.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="TN23.mx",TN23 México (720p) [Not 24/7] #EXTINF:-1 tvg-id="TN23.mx",TN23 México (720p) [Not 24/7]
https://dbdfj5y8nz2u4.cloudfront.net/TN23/139a1b22959c10235fe85f3db0041ecf.sdp/playlist.m3u8 https://dbdfj5y8nz2u4.cloudfront.net/TN23/139a1b22959c10235fe85f3db0041ecf.sdp/playlist.m3u8

View file

@ -72,3 +72,5 @@ https://d25tgymtnqzu8s.cloudfront.net/smil:tv2/playlist.m3u8?id=2
https://d25tgymtnqzu8s.cloudfront.net/smil:tv6/playlist.m3u8?id=6 https://d25tgymtnqzu8s.cloudfront.net/smil:tv6/playlist.m3u8?id=6
#EXTINF:-1 tvg-id="",TVIKIM #EXTINF:-1 tvg-id="",TVIKIM
https://edge-sg1.vediostream.com/abr/tvikim/playlist.m3u8 https://edge-sg1.vediostream.com/abr/tvikim/playlist.m3u8
#EXTINF:-1 tvg-id="TV3.my",TV3
https://live-streams-ssai-01.tonton.com.my/live/2dd2b7cd-1b34-4871-b669-57b5c9beca23/live.isml/.m3u8

View file

@ -68,15 +68,15 @@ https://tv.ifastekpanel.com:3013/live/atntvlive.m3u8
https://webstreaming-11.viewmedia.tv/web_160/Stream/playlist.m3u8 https://webstreaming-11.viewmedia.tv/web_160/Stream/playlist.m3u8
#EXTINF:-1 tvg-id="QausainTV.ng",Qausain TV (720p) #EXTINF:-1 tvg-id="QausainTV.ng",Qausain TV (720p)
https://acasmedia2.acangroup.org/qausaintv/qausaintv_output/playlist.m3u8 https://acasmedia2.acangroup.org/qausaintv/qausaintv_output/playlist.m3u8
#EXTINF:-1 tvg-id="SuperscreenTV.ng",Superscreen TV (412p) #EXTINF:-1 tvg-id="SuperscreenTV.ng",Superscreen TV (412p)
https://video1.getstreamhosting.com:1936/8398/8398/playlist.m3u8 https://video1.getstreamhosting.com:1936/8398/8398/playlist.m3u8
#EXTINF:-1 tvg-id="MFMTV.ng",MFM TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="MFMTV.ng",MFM TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCMd5fYoenMlMJQ6-Bt6gsRw.m3u8 https://ythls.onrender.com/channel/UCMd5fYoenMlMJQ6-Bt6gsRw.m3u8
#EXTINF:-1 tvg-id="LN247.ng",LN247 (1080p) #EXTINF:-1 tvg-id="LN247.ng",LN247 (1080p)
https://oj7lnn58lg82-hls-live.5centscdn.com/LN247/e54a58cc63ad1a32f28ef53006be2937.sdp/playlist.m3u8 https://oj7lnn58lg82-hls-live.5centscdn.com/LN247/e54a58cc63ad1a32f28ef53006be2937.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="MoreGraceTV.ng",More Grace TV (410p) #EXTINF:-1 tvg-id="MoreGraceTV.ng",More Grace TV (410p)
https://atechgroupuk.site/ETV.m3u8 https://atechgroupuk.site/ETV.m3u8
#EXTINF:-1 tvg-id="PhenomenalLifeTV.ng",Phenomenal Life TV (1080p) #EXTINF:-1 tvg-id="PhenomenalLifeTV.ng",Phenomenal Life TV (1080p)
https://5be80bd118c27.streamlock.net:433/phenomenaltv/phenomenal/playlist.m3u8 https://5be80bd118c27.streamlock.net:433/phenomenaltv/phenomenal/playlist.m3u8
#EXTINF:-1 tvg-id="TV360Nigeria.ng",TV360 Nigeria (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TV360Nigeria.ng",TV360 Nigeria (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCBzu4YqGiBxBD8pq8NiBuKw.m3u8 https://ythls.onrender.com/channel/UCBzu4YqGiBxBD8pq8NiBuKw.m3u8

View file

@ -15,15 +15,15 @@ https://vcp4.myplaytv.com:1936/mas23/mas23/playlist.m3u8
https://vcp4.myplaytv.com:1936/nextv/nextv/playlist.m3u8 https://vcp4.myplaytv.com:1936/nextv/nextv/playlist.m3u8
#EXTINF:-1 tvg-id="OyeTV.pa",Oye TV (480p) [Geo-blocked] #EXTINF:-1 tvg-id="OyeTV.pa",Oye TV (480p) [Geo-blocked]
https://mdstrm.com/live-stream-playlist/5d88df173853e7072f3f953f.m3u8 https://mdstrm.com/live-stream-playlist/5d88df173853e7072f3f953f.m3u8
#EXTINF:-1 tvg-id="RPCTV.pa",RPC TV (720p) #EXTINF:-1 tvg-id="RPCTV.pa",RPC TV (720p)
https://mdstrm.com/live-stream-playlist/5d88d659120a717cf93ce620.m3u8 https://mdstrm.com/live-stream-playlist/5d88d659120a717cf93ce620.m3u8
#EXTINF:-1 tvg-id="Telemetro.pa",Telemetro (720p) #EXTINF:-1 tvg-id="Telemetro.pa",Telemetro (720p)
https://mdstrm.com/live-stream-playlist/5d88dd2229b0890723df2165.m3u8 https://mdstrm.com/live-stream-playlist/5d88dd2229b0890723df2165.m3u8
#EXTINF:-1 tvg-id="TVMax.pa",TVMAX (720p) #EXTINF:-1 tvg-id="TVMax.pa",TVMAX (720p)
https://bcovlive-a.akamaihd.net/474b6caf58f8407fb1d1cc1ef64f50ff/us-west-2/6058004209001/playlist_dvr.m3u8 https://bcovlive-a.akamaihd.net/474b6caf58f8407fb1d1cc1ef64f50ff/us-west-2/6058004209001/playlist_dvr.m3u8
#EXTINF:-1 tvg-id="TVN.pa",TVN (720p) #EXTINF:-1 tvg-id="TVN.pa",TVN (720p)
https://bcovlive-a.akamaihd.net/628aecb4fccb4c52b4f9c8d5cc57fb73/us-west-2/6058004209001/playlist_dvr.m3u8 https://bcovlive-a.akamaihd.net/628aecb4fccb4c52b4f9c8d5cc57fb73/us-west-2/6058004209001/playlist_dvr.m3u8
#EXTINF:-1 tvg-id="LaXitosaPanama.pa",LaXitosa Panamá (360p) #EXTINF:-1 tvg-id="LaXitosaPanama.pa",LaXitosa Panamá (360p)
https://stmvideo2.livecastv.com/lax953/lax953/playlist.m3u8 https://stmvideo2.livecastv.com/lax953/lax953/playlist.m3u8
#EXTINF:-1 tvg-id="TuCanalTV.pa",Tu Canal TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TuCanalTV.pa",Tu Canal TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCziREKwhu2KgoDVNlRrfMBw.m3u8 https://ythls.onrender.com/channel/UCziREKwhu2KgoDVNlRrfMBw.m3u8

View file

@ -273,23 +273,25 @@ https://live-latinav2-mdstrm.secure.footprint.net/live-stream-mp/d1aden84nxx8u4/
https://servilive.com:3531/stream/play.m3u8 https://servilive.com:3531/stream/play.m3u8
#EXTINF:-1 tvg-id="PlanetaTV.pe",Planeta TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="PlanetaTV.pe",Planeta TV (720p) [Not 24/7]
https://live.obslivestream.com/planetatv/index.m3u8 https://live.obslivestream.com/planetatv/index.m3u8
#EXTINF:-1 tvg-id="AtmosferaTV.pe",Atmósfera TV (1080p) #EXTINF:-1 tvg-id="AtmosferaTV.pe",Atmósfera TV (1080p)
https://castv10.plugstreaming.com:19360/atmosferatv/atmosferatv.m3u8 https://castv10.plugstreaming.com:19360/atmosferatv/atmosferatv.m3u8
#EXTINF:-1 tvg-id="Canal33Ayacucho.pe",Canal 33 Ayacucho (360p) #EXTINF:-1 tvg-id="Canal33Ayacucho.pe",Canal 33 Ayacucho (360p)
https://video2.getstreamhosting.com:19360/8206/8206.m3u8 https://video2.getstreamhosting.com:19360/8206/8206.m3u8
#EXTINF:-1 tvg-id="CanalB.pe",CanalB (1080p) [Not 24/7] #EXTINF:-1 tvg-id="CanalB.pe",CanalB (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCFrOdZIiGOGFP5kk4xZgH6Q.m3u8 https://ythls.onrender.com/channel/UCFrOdZIiGOGFP5kk4xZgH6Q.m3u8
#EXTINF:-1 tvg-id="CTC.pe",CTC (1080p) [Not 24/7] #EXTINF:-1 tvg-id="CTC.pe",CTC (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCJqwSXVmnG6hZrIoqdpjRYQ.m3u8 https://ythls.onrender.com/channel/UCJqwSXVmnG6hZrIoqdpjRYQ.m3u8
#EXTINF:-1 tvg-id="DobleAA.pe",Doble AA (1080p) #EXTINF:-1 tvg-id="DobleAA.pe",Doble AA (1080p)
https://videoserver.tmcreativos.com:19360/yvmgbdpqmp/yvmgbdpqmp.m3u8 https://videoserver.tmcreativos.com:19360/yvmgbdpqmp/yvmgbdpqmp.m3u8
#EXTINF:-1 tvg-id="NovaTVStar.pe",Nova TV Star (360p) [Not 24/7] #EXTINF:-1 tvg-id="NovaTVStar.pe",Nova TV Star (360p) [Not 24/7]
https://7.innovatestream.pe:19360/radionovastar/radionovastar.m3u8 https://7.innovatestream.pe:19360/radionovastar/radionovastar.m3u8
#EXTINF:-1 tvg-id="QuassarTV.pe",Quassar TV (720p) #EXTINF:-1 tvg-id="QuassarTV.pe",Quassar TV (720p)
https://gnstreammedia.com:19360/4000/4000.m3u8 https://gnstreammedia.com:19360/4000/4000.m3u8
#EXTINF:-1 tvg-id="VivaTVYurimaguas.pe",Viva TV Yurimaguas (720p) #EXTINF:-1 tvg-id="VivaTVYurimaguas.pe",Viva TV Yurimaguas (720p)
https://live.obslivestream.com/vivatv/index.m3u8 https://live.obslivestream.com/vivatv/index.m3u8
#EXTINF:-1 tvg-id="Wtv.pe",Wtv (720p) [Not 24/7] #EXTINF:-1 tvg-id="Wtv.pe",Wtv (720p) [Not 24/7]
https://live.obslivestream.com/wtv/index.m3u8 https://live.obslivestream.com/wtv/index.m3u8
#EXTINF:-1 tvg-id="CumoTV.pe",Cumo TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="CumoTV.pe",Cumo TV (720p) [Not 24/7]
https://live.obslivestream.com/cumo/index.m3u8 https://live.obslivestream.com/cumo/index.m3u8
#EXTINF:-1 tvg-id="ATVPlus.pe",ATV+
https://linear-258.frequency.stream/dist/vix/258/hls/master/playlist.m3u8

View file

@ -27,7 +27,7 @@ https://ythls.onrender.com/channel/UCDXPB23ws_T0rVvrXVCYqyA.m3u8
https://untv.mmdlive.lldns.net/untv/0251dac212a94932ae3563150cbb3788/untvweb.m3u8 https://untv.mmdlive.lldns.net/untv/0251dac212a94932ae3563150cbb3788/untvweb.m3u8
#EXTINF:-1 tvg-id="",Super Radyo DZBB (720p) [Not 24/7] #EXTINF:-1 tvg-id="",Super Radyo DZBB (720p) [Not 24/7]
https://stream.gmanews.tv/ioslive/livestream/playlist.m3u8 https://stream.gmanews.tv/ioslive/livestream/playlist.m3u8
#EXTINF:-1 tvg-id="GreatCommissionTV.ph",Great Commission TV (468p) #EXTINF:-1 tvg-id="GreatCommissionTV.ph",Great Commission TV (468p)
http://45.32.115.103/live/livestream/index.m3u8 http://45.32.115.103/live/livestream/index.m3u8
#EXTINF:-1 tvg-id="PIE.ph",PIE Channel (1080p) [Not 24/7] #EXTINF:-1 tvg-id="PIE.ph",PIE Channel (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCAxAaFQnH5IK_ZTwiQWV-9A.m3u8 https://ythls.onrender.com/channel/UCAxAaFQnH5IK_ZTwiQWV-9A.m3u8

View file

@ -131,15 +131,15 @@ https://ythls.onrender.com/channel/UCmqlO4sewQO97iCeakXTdaw.m3u8
https://ythls.onrender.com/channel/UC95lddVg_04jAevVGYknx_w.m3u8 https://ythls.onrender.com/channel/UC95lddVg_04jAevVGYknx_w.m3u8
#EXTINF:-1 tvg-id="CapitalTV.pk",Capital TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="CapitalTV.pk",Capital TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UC-an6pHQfTVZXgrLP0p1EGA.m3u8 https://ythls.onrender.com/channel/UC-an6pHQfTVZXgrLP0p1EGA.m3u8
#EXTINF:-1 tvg-id="GeoTez.pk",Geo Tez (576p) #EXTINF:-1 tvg-id="GeoTez.pk",Geo Tez (576p)
https://jk3lz82elw79-hls-live.5centscdn.com/TEZ/955ad3298db330b5ee880c2c9e6f23a0.sdp/playlist.m3u8 https://jk3lz82elw79-hls-live.5centscdn.com/TEZ/955ad3298db330b5ee880c2c9e6f23a0.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="SunoNewsHD.pk",Suno News HD (720p) #EXTINF:-1 tvg-id="SunoNewsHD.pk",Suno News HD (720p)
https://cdn.bmstudiopk.com/sunotv/live/playlist.m3u8 https://cdn.bmstudiopk.com/sunotv/live/playlist.m3u8
#EXTINF:-1 tvg-id="SunoNewsHD.pk",Suno News HD (1080p) [Not 24/7] #EXTINF:-1 tvg-id="SunoNewsHD.pk",Suno News HD (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCB82Zom1MYh8VV4q7wXkfGA.m3u8 https://ythls.onrender.com/channel/UCB82Zom1MYh8VV4q7wXkfGA.m3u8
#EXTINF:-1 tvg-id="VoiceNews.pk",Voice News (720p) #EXTINF:-1 tvg-id="VoiceNews.pk",Voice News (720p)
https://cdn.bmstudiopk.com/vop/live/playlist.m3u8 https://cdn.bmstudiopk.com/vop/live/playlist.m3u8
#EXTINF:-1 tvg-id="CityNewsHD.pk",City News HD (1080p) #EXTINF:-1 tvg-id="CityNewsHD.pk",City News HD (1080p)
http://cdn.citymediagroupreg.com:1935/citynewshd/myStream/playlist.m3u8 http://cdn.citymediagroupreg.com:1935/citynewshd/myStream/playlist.m3u8
#EXTINF:-1 tvg-id="CityNewsHD.pk",City News HD (1080p) [Not 24/7] #EXTINF:-1 tvg-id="CityNewsHD.pk",City News HD (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC5DtDCEclIwhOlP0p8UeQMA.m3u8 https://ythls.onrender.com/channel/UC5DtDCEclIwhOlP0p8UeQMA.m3u8

View file

@ -55,21 +55,21 @@ https://59a564764e2b6.streamlock.net/palestra/palestra/playlist.m3u8
https://59825a54e4454.streamlock.net:8443/william652/william652/playlist.m3u8 https://59825a54e4454.streamlock.net:8443/william652/william652/playlist.m3u8
#EXTINF:-1 tvg-id="Zeta93.pr",WZNT (Zeta 93) (1080p) [Not 24/7] #EXTINF:-1 tvg-id="Zeta93.pr",WZNT (Zeta 93) (1080p) [Not 24/7]
https://livestream.lamusica.com/nacionz/ngrp:nacionz_all/playlist.m3u8 https://livestream.lamusica.com/nacionz/ngrp:nacionz_all/playlist.m3u8
#EXTINF:-1 tvg-id="WAPADT1.pr",WAPA-DT1 (WAPA-TV) (1080p) #EXTINF:-1 tvg-id="WAPADT1.pr",WAPA-DT1 (WAPA-TV) (1080p)
https://live.field59.com/wapa/wapa1/playlist.m3u8 https://live.field59.com/wapa/wapa1/playlist.m3u8
#EXTINF:-1 tvg-id="WAPADT2.pr",WAPA-DT2 (WAPA Deportes) (1080p) #EXTINF:-1 tvg-id="WAPADT2.pr",WAPA-DT2 (WAPA Deportes) (1080p)
https://live.field59.com/wapa/wapa2/playlist.m3u8 https://live.field59.com/wapa/wapa2/playlist.m3u8
#EXTINF:-1 tvg-id="FarodeSantidadTV.pr",Faro de Santidad TV (720p) #EXTINF:-1 tvg-id="FarodeSantidadTV.pr",Faro de Santidad TV (720p)
https://5dbcd1053301e.streamlock.net:4443/farodesantidad/farodesantidad/playlist.m3u8 https://5dbcd1053301e.streamlock.net:4443/farodesantidad/farodesantidad/playlist.m3u8
#EXTINF:-1 tvg-id="ParaisoTV.pr",Paraíso TV (720p) #EXTINF:-1 tvg-id="ParaisoTV.pr",Paraíso TV (720p)
https://stream.eleden.com/livewtpm/ngrp:livewtpm_all/playlist.m3u8 https://stream.eleden.com/livewtpm/ngrp:livewtpm_all/playlist.m3u8
#EXTINF:-1 tvg-id="DNJTV.pr",DNJ TV (720p) #EXTINF:-1 tvg-id="DNJTV.pr",DNJ TV (720p)
https://eu1.servers10.com:8081/wegqaafnsa/index.m3u8 https://eu1.servers10.com:8081/wegqaafnsa/index.m3u8
#EXTINF:-1 tvg-id="RadioYaucanaTV.pr",Radio Yaucana TV (720p) #EXTINF:-1 tvg-id="RadioYaucanaTV.pr",Radio Yaucana TV (720p)
https://stmvideo2.livecastv.com/rytv2015/rytv2015/playlist.m3u8 https://stmvideo2.livecastv.com/rytv2015/rytv2015/playlist.m3u8
#EXTINF:-1 tvg-id="Telenorte.pr",Telenorte (720p) #EXTINF:-1 tvg-id="Telenorte.pr",Telenorte (720p)
https://627bb251f23c7.streamlock.net:444/TopRadioTV/TopRadioTV/playlist.m3u8 https://627bb251f23c7.streamlock.net:444/TopRadioTV/TopRadioTV/playlist.m3u8
#EXTINF:-1 tvg-id="XLevelTV.pr",XLevel TV (1080p) #EXTINF:-1 tvg-id="XLevelTV.pr",XLevel TV (1080p)
https://tv.portalexpress.es:3220/live/xleveladminlive.m3u8 https://tv.portalexpress.es:3220/live/xleveladminlive.m3u8
#EXTINF:-1 tvg-id="TheRetroChannel.pr",The Retro Channel (1080p) #EXTINF:-1 tvg-id="TheRetroChannel.pr",The Retro Channel (1080p)
https://5fd5567570c0e.streamlock.net/theretrochannel/stream/playlist.m3u8 https://5fd5567570c0e.streamlock.net/theretrochannel/stream/playlist.m3u8

View file

@ -11,7 +11,7 @@ https://w1.manasat.com/ktv/smil:ktv.smil/playlist.m3u8
http://176.79.76.155:8000/play/a01x/index.m3u8 http://176.79.76.155:8000/play/a01x/index.m3u8
#EXTINF:-1 tvg-id="PortoCanal.pt",Porto Canal (720p) #EXTINF:-1 tvg-id="PortoCanal.pt",Porto Canal (720p)
https://raw.githubusercontent.com/azgaresncf/strm2hls/main/streams/PortoCanal.m3u8 https://raw.githubusercontent.com/azgaresncf/strm2hls/main/streams/PortoCanal.m3u8
#EXTINF:-1 tvg-id="RTP1.pt",RTP 1 (480p) #EXTINF:-1 tvg-id="RTP1.pt",RTP 1 (480p)
http://162.212.178.69:41042/bysid/608 http://162.212.178.69:41042/bysid/608
#EXTINF:-1 tvg-id="RTP1.pt" user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0",RTP 1 (720p) [Not 24/7] #EXTINF:-1 tvg-id="RTP1.pt" user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0",RTP 1 (720p) [Not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0 #EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0

View file

@ -95,11 +95,11 @@ https://daiconnect.com/live/hls/rotana/classical/.m3u8
https://rotanastudios-rotanaclassic-1-eu.xiaomi.wurl.tv/playlist.m3u8 https://rotanastudios-rotanaclassic-1-eu.xiaomi.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-id="RotanaClassic.sa",Rotana Classic (1080p) #EXTINF:-1 tvg-id="RotanaClassic.sa",Rotana Classic (1080p)
https://shls-rotanaclassic-prod-dub.shahid.net/out/v1/4eebed211c8441228321b4f67a46c5a5/index.m3u8 https://shls-rotanaclassic-prod-dub.shahid.net/out/v1/4eebed211c8441228321b4f67a46c5a5/index.m3u8
#EXTINF:-1 tvg-id="RotanaComedy.sa",Rotana Comedy (1080p) #EXTINF:-1 tvg-id="RotanaComedy.sa",Rotana Comedy (1080p)
https://daiconnect.com/live/hls/rotana/comedy/.m3u8 https://daiconnect.com/live/hls/rotana/comedy/.m3u8
#EXTINF:-1 tvg-id="RotanaComedy.sa",Rotana Comedy (1080p) #EXTINF:-1 tvg-id="RotanaComedy.sa",Rotana Comedy (1080p)
https://rotanastudios-rotanacomedy-1-eu.xiaomi.wurl.tv/playlist.m3u8 https://rotanastudios-rotanacomedy-1-eu.xiaomi.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-id="RotanaDrama.sa",Rotana Drama (1080p) #EXTINF:-1 tvg-id="RotanaDrama.sa",Rotana Drama (1080p)
https://daiconnect.com/live/hls/rotana/drama/.m3u8 https://daiconnect.com/live/hls/rotana/drama/.m3u8
#EXTINF:-1 tvg-id="RotanaDrama.sa",Rotana Drama (1080p) #EXTINF:-1 tvg-id="RotanaDrama.sa",Rotana Drama (1080p)
https://rotanastudios-rotanadrama-1-eu.xiaomi.wurl.tv/playlist.m3u8 https://rotanastudios-rotanadrama-1-eu.xiaomi.wurl.tv/playlist.m3u8

View file

@ -27,5 +27,5 @@ https://svtk-c.akamaized.net/se/svtk/master.m3u8
https://livecdn.live247stream.com/missionasia/tv/playlist.m3u8 https://livecdn.live247stream.com/missionasia/tv/playlist.m3u8
#EXTINF:-1 tvg-id="AryenTV.se",Aryen TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="AryenTV.se",Aryen TV (1080p) [Not 24/7]
https://aryen.tv/live/tv/playlist.m3u8 https://aryen.tv/live/tv/playlist.m3u8
#EXTINF:-1 tvg-id="",LifeStyleTV (1080p) #EXTINF:-1 tvg-id="",LifeStyleTV (1080p)
https://app.viloud.tv/hls/channel/711fd3f3a4728449889ee22ba72958ff.m3u8 https://app.viloud.tv/hls/channel/711fd3f3a4728449889ee22ba72958ff.m3u8

View file

@ -23,5 +23,5 @@ https://ythls.onrender.com/channel/UCOGseusAY1nMkEhpmmz6Mmg.m3u8
http://ott.sgn.net/hls/tvurslja.m3u8 http://ott.sgn.net/hls/tvurslja.m3u8
#EXTINF:-1 tvg-id="TopTV.si",Top TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="TopTV.si",Top TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCsvbFFKlD-oZXO9igJfcdJw.m3u8 https://ythls.onrender.com/channel/UCsvbFFKlD-oZXO9igJfcdJw.m3u8
#EXTINF:-1 tvg-id="RadioAktualTV.si",Radio Aktual TV (1080p) #EXTINF:-1 tvg-id="RadioAktualTV.si",Radio Aktual TV (1080p)
https://vr1.radioaktual.si/hls/stream.m3u8 https://vr1.radioaktual.si/hls/stream.m3u8

View file

@ -81,5 +81,5 @@ https://ythls.onrender.com/channel/UCdsKjmExW-0pFskKYbjNIQg.m3u8
https://ythls.onrender.com/channel/UCnEQCNDsMtPlrVwCrRViaeQ.m3u8 https://ythls.onrender.com/channel/UCnEQCNDsMtPlrVwCrRViaeQ.m3u8
#EXTINF:-1 tvg-id="TVDK.sk",TV DK (486p) [Not 24/7] #EXTINF:-1 tvg-id="TVDK.sk",TV DK (486p) [Not 24/7]
https://5ca49f2417d90.streamlock.net/live/dolnykubin1/playlist.m3u8 https://5ca49f2417d90.streamlock.net/live/dolnykubin1/playlist.m3u8
#EXTINF:-1 tvg-id="ZapadoslovenskaTV.sk",Západoslovenská TV (1080p) #EXTINF:-1 tvg-id="ZapadoslovenskaTV.sk",Západoslovenská TV (1080p)
https://live.zstv.sk/memfs/5b0f9dd2-8f77-4fe5-9527-bc11bb8b18e5.m3u8 https://live.zstv.sk/memfs/5b0f9dd2-8f77-4fe5-9527-bc11bb8b18e5.m3u8

View file

@ -3,9 +3,9 @@
https://ap02.iqplay.tv:8082/iqb8002/s03btv/playlist.m3u8 https://ap02.iqplay.tv:8082/iqb8002/s03btv/playlist.m3u8
#EXTINF:-1 tvg-id="SomaliNationalTV.so",Somali National TV (576p) #EXTINF:-1 tvg-id="SomaliNationalTV.so",Somali National TV (576p)
https://ap02.iqplay.tv:8082/iqb8002/s4ne/playlist.m3u8 https://ap02.iqplay.tv:8082/iqb8002/s4ne/playlist.m3u8
#EXTINF:-1 tvg-id="PuntlandTV.so",Puntland TV (720p) #EXTINF:-1 tvg-id="PuntlandTV.so",Puntland TV (720p)
http://cdn.mediavisionuae.com:1935/live/putlandtv2.stream/playlist.m3u8 http://cdn.mediavisionuae.com:1935/live/putlandtv2.stream/playlist.m3u8
#EXTINF:-1 tvg-id="SNTV2.so",SNTV Daljir (576p) #EXTINF:-1 tvg-id="SNTV2.so",SNTV Daljir (576p)
https://ap02.iqplay.tv:8082/iqb8002/s2tve/playlist.m3u8 https://ap02.iqplay.tv:8082/iqb8002/s2tve/playlist.m3u8
#EXTINF:-1 tvg-id="SBCTV.so",SBC TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="SBCTV.so",SBC TV (720p) [Not 24/7]
http://cdn.mediavisionuae.com:1935/live/sbctv.stream/playlist.m3u8 http://cdn.mediavisionuae.com:1935/live/sbctv.stream/playlist.m3u8

View file

@ -33,7 +33,7 @@ http://vod.alikhbaria.net:1935/oLive/snews05042022/playlist.m3u8
http://vod.ortas.sy:1935/oLive/snews05042022/playlist.m3u8 http://vod.ortas.sy:1935/oLive/snews05042022/playlist.m3u8
#EXTINF:-1 tvg-id="SyrianSatelliteChannel.sy",Syria Satellite Channel (360p) [Not 24/7] #EXTINF:-1 tvg-id="SyrianSatelliteChannel.sy",Syria Satellite Channel (360p) [Not 24/7]
http://vod.ortas.sy:1935/oLive/sat05042022/playlist.m3u8 http://vod.ortas.sy:1935/oLive/sat05042022/playlist.m3u8
#EXTINF:-1 tvg-id="AlalamNewsChannelSyria.sy",Alalam News Channel Syria (576p) #EXTINF:-1 tvg-id="AlalamNewsChannelSyria.sy",Alalam News Channel Syria (576p)
https://live2.alalam.ir/alalam.m3u8 https://live2.alalam.ir/alalam.m3u8
#EXTINF:-1 tvg-id="RadioAlkulTV.sy",Radio Alkul TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="RadioAlkulTV.sy",Radio Alkul TV (1080p) [Not 24/7]
https://ffs.gulfsat.com/AlkulTV/video.m3u8 https://ffs.gulfsat.com/AlkulTV/video.m3u8

View file

@ -184,3 +184,7 @@ http://183.89.246.119:8010/play/a00c/index.m3u8
http://183.89.246.119:8010/play/a00u/index.m3u8 http://183.89.246.119:8010/play/a00u/index.m3u8
#EXTINF:-1 tvg-id="TopNews.th",Top News (480p) #EXTINF:-1 tvg-id="TopNews.th",Top News (480p)
https://live.topnews.co.th/hls/topnews.m3u8 https://live.topnews.co.th/hls/topnews.m3u8
#EXTINF:-1 tvg-id="AmarinTV.th",Amarin TV
https://cdn6.goprimetime.info/feed/202306140918/chamarin/index.m3u8
#EXTINF:-1 tvg-id="MCOTHD.th",MCOT HD
https://cdn6.goprimetime.info/feed/202306140918/chmcothd/index.m3u8

View file

@ -19,3 +19,5 @@ https://ythls.onrender.com/channel/UCdvWVsmQBROkgcGzVep73oA.m3u8
http://live.watania2.tn:1935/live/watanya2.stream/playlist.m3u8 http://live.watania2.tn:1935/live/watanya2.stream/playlist.m3u8
#EXTINF:-1 tvg-id="Watania2.tn",Watania 2 (480p) #EXTINF:-1 tvg-id="Watania2.tn",Watania 2 (480p)
https://ythls.onrender.com/channel/UCJW9gatYczI191TunQxMGbA.m3u8 https://ythls.onrender.com/channel/UCJW9gatYczI191TunQxMGbA.m3u8
#EXTINF:-1 tvg-id="EssaidaTV.tn",Essaida TV
https://app.rtvli.com/hls/stream/index.m3u8

View file

@ -495,3 +495,21 @@ https://win29.yayin.com.tr/erzurumwebtv/erzurumwebtv/iptvdelisi.m3u8
https://ythls.onrender.com/channel/UCqq-1-YntK4Gq53Ka9PaVlg.m3u8 https://ythls.onrender.com/channel/UCqq-1-YntK4Gq53Ka9PaVlg.m3u8
#EXTINF:-1 tvg-id="MinikaGo.tr",Minika Go (576p) [Not 24/7] #EXTINF:-1 tvg-id="MinikaGo.tr",Minika Go (576p) [Not 24/7]
https://ythls.onrender.com/channel/UCVbCXWXWd0WCNhdBnmP_TmA.m3u8 https://ythls.onrender.com/channel/UCVbCXWXWd0WCNhdBnmP_TmA.m3u8
#EXTINF:-1 tvg-id="PowerTurkTV.tr",PowerTurk TV
https://powerturk.blutv.com/blutv_powerturk/powerturk_sd.smil/playlist.m3u8
#EXTINF:-1 tvg-id="BloombergHT.tr",Bloomberg HT
https://bloomberght2dvr.blutv.com/blutv_bloomberght_dvr/live.m3u8
#EXTINF:-1 tvg-id="24TV.tr",24 TV
https://kanal24.blutv.com/blutv_kanal24_live/live.m3u8
#EXTINF:-1 tvg-id="Ekoturk.tr",Ekoturk
https://ekoturk.blutv.com/blutv_ekoturk2/live.m3u8
#EXTINF:-1 tvg-id="HaberGlobal.tr",Haber Global
https://haberglobaldvr.blutv.com/blutv_haberglobal_dvr/live.m3u8
#EXTINF:-1 tvg-id="TRT2.tr",TRT 2
https://trt2.blutv.com/blutv_trt2/live.m3u8
#EXTINF:-1 tvg-id="TRTTurk.tr",TRT Turk
https://trtturk.blutv.com/blutv_trtturk2/live.m3u8
#EXTINF:-1 tvg-id="ShowTurk.tr",Show Turk
https://showturk.blutv.com/blutv_showturk2/live.m3u8
#EXTINF:-1 tvg-id="ShowTV.tr",Show TV
https://showtv.blutv.com/blutv_showtv_live/live.m3u8

View file

@ -205,3 +205,7 @@ https://a.jsrdn.com/broadcast/22680_3BR3zocwi9/-0500/c.m3u8
https://ap02.iqplay.tv:8082/iqb8002/ka1s0n/playlist.m3u8 https://ap02.iqplay.tv:8082/iqb8002/ka1s0n/playlist.m3u8
#EXTINF:-1 tvg-id="LollyKids.uk",Lolly Kids (480p) #EXTINF:-1 tvg-id="LollyKids.uk",Lolly Kids (480p)
http://45.225.95.170:8000/play/a0ei/index.m3u8 http://45.225.95.170:8000/play/a0ei/index.m3u8
#EXTINF:-1 tvg-id="BBCWorldNewsSouthAsia.uk",BBC World News South Asia
http://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2801%29/index.m3u8
#EXTINF:-1 tvg-id="BeanoTV.uk",Beano TV
https://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8

View file

@ -1010,7 +1010,7 @@ https://cdn-unified-hls.streamspot.com/ingest1/6ec6f5ba47/playlist.m3u8?origin=1
https://hls-cdn.tvstartup16.net/tvstartup16-channel/live/mp4:jimbobklynedge/playlist.m3u8 https://hls-cdn.tvstartup16.net/tvstartup16-channel/live/mp4:jimbobklynedge/playlist.m3u8
#EXTINF:-1 tvg-id="",BLUES TV #EXTINF:-1 tvg-id="",BLUES TV
https://2-fss-2.streamhoster.com/pl_138/205510-3094608-1/playlist.m3u8 https://2-fss-2.streamhoster.com/pl_138/205510-3094608-1/playlist.m3u8
#EXTINF:-1 tvg-id="Alhurra.us",Alhurra (720p) #EXTINF:-1 tvg-id="Alhurra.us",Alhurra (720p)
https://mbn-ingest-worldsafe.akamaized.net/hls/live/2038900/MBN_Alhurra_Worldsafe_HLS/master.m3u8 https://mbn-ingest-worldsafe.akamaized.net/hls/live/2038900/MBN_Alhurra_Worldsafe_HLS/master.m3u8
#EXTINF:-1 tvg-id="",30A TV Classic Movies #EXTINF:-1 tvg-id="",30A TV Classic Movies
https://30a-tv.com/feeds/pzaz/30atvmovies.m3u8 https://30a-tv.com/feeds/pzaz/30atvmovies.m3u8
@ -1088,15 +1088,27 @@ https://origin1.noisypeak.com/4XhPa5v93P3za6G0cMyV/playlist.m3u8
https://unidfp-nlds145.global.ssl.fastly.net/nlds/univisionnow/univision_hou2/as/live/univision_hou2_hd_pc.m3u8?t1= https://unidfp-nlds145.global.ssl.fastly.net/nlds/univisionnow/univision_hou2/as/live/univision_hou2_hd_pc.m3u8?t1=
#EXTINF:-1 tvg-id="WXTVDT1.us",WXTV-DT1 (Univision New York) [Geo-blocked] #EXTINF:-1 tvg-id="WXTVDT1.us",WXTV-DT1 (Univision New York) [Geo-blocked]
https://unidfp-nlds143.global.ssl.fastly.net/nlds/univisionnow/univision_ny2/as/live/univision_ny2_hd_pc.m3u8?t1= https://unidfp-nlds143.global.ssl.fastly.net/nlds/univisionnow/univision_ny2/as/live/univision_ny2_hd_pc.m3u8?t1=
#EXTINF:-1 tvg-id="ABNAfrica.us",ABN Africa (480p) #EXTINF:-1 tvg-id="ABNAfrica.us",ABN Africa (480p)
https://rtmp2.abnvideos.com/hls/abnafrica.m3u8 https://rtmp2.abnvideos.com/hls/abnafrica.m3u8
#EXTINF:-1 tvg-id="ABNChina.us",ABN China (720p) #EXTINF:-1 tvg-id="ABNChina.us",ABN China (720p)
https://rtmp2.abnvideos.com/hls/abnchina.m3u8 https://rtmp2.abnvideos.com/hls/abnchina.m3u8
#EXTINF:-1 tvg-id="ABNTVIndia.us",ABN TV India (540p) #EXTINF:-1 tvg-id="ABNTVIndia.us",ABN TV India (540p)
https://rtmp2.abnvideos.com/hls/abntvindia.m3u8 https://rtmp2.abnvideos.com/hls/abntvindia.m3u8
#EXTINF:-1 tvg-id="ABNUrdu.us",ABN Urdu (540p) #EXTINF:-1 tvg-id="ABNUrdu.us",ABN Urdu (540p)
https://rtmp2.abnvideos.com/hls/abnurdu.m3u8 https://rtmp2.abnvideos.com/hls/abnurdu.m3u8
#EXTINF:-1 tvg-id="ABNBibleMoviesChannel.us",ABN Bible Movies (720p) #EXTINF:-1 tvg-id="ABNBibleMoviesChannel.us",ABN Bible Movies (720p)
https://rtmp2.abnvideos.com/hls/abnbiblemovies.m3u8 https://rtmp2.abnvideos.com/hls/abnbiblemovies.m3u8
#EXTINF:-1 tvg-id="DNews.us",DNews (1080p) [Not 24/7] #EXTINF:-1 tvg-id="DNews.us",DNews (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC4dWvSKVWJ36tJyhjDQCCaQ.m3u8 https://ythls.onrender.com/channel/UC4dWvSKVWJ36tJyhjDQCCaQ.m3u8
#EXTINF:-1 tvg-id="TropicalMoonUrbanTV.us",Tropical Moon Urban TV
https://srv.tropicalmoonmedia.com/urbantvnetott/urbantvnetott/playlist.m3u8
#EXTINF:-1 tvg-id="TropicalMoonEventosTV.us",Tropical Moon Eventos TV
https://srv2.tropicalmoonmedia.com/eventostv/eventostv/playlist.m3u8
#EXTINF:-1 tvg-id="TropicalMoonSalsaTV.us",Tropical Moon Salsa TV
https://srv.tropicalmoonmedia.com/musictv/musictv/playlist.m3u8
#EXTINF:-1 tvg-id="TUTV.us",TUTV
https://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="StarTrek2.us",Star Trek 2
https://service-stitcher.clusters.pluto.tv/v1/stitch/embed/hls/channel/634dacf51d90320007fcd5fa/master.m3u8?advertisingId=channel&appName=rokuchannel&appVersion=1.0&bmodel=bm1&channel_id=channel&content=channel&content_rating=ROKU_ADS_CONTENT_RATING&content_type=livefeed&coppa=false&deviceDNT=1&deviceId=channel&deviceMake=rokuChannel&deviceModel=web&deviceType=rokuChannel&deviceVersion=1.0&embedPartner=rokuChannel&genre=ROKU_ADS_CONTENT_GENRE&is_lat=1&platform=web&rdid=channel&studio_id=viacom&tags=ROKU_CONTENT_TAGS
#EXTINF:-1 tvg-id="FastTV.us",Fast TV
https://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8

View file

@ -43,7 +43,7 @@ https://stream.ads.ottera.tv/playlist.m3u8?network_id=771
https://stream.ads.ottera.tv/playlist.m3u8?network_id=4312 https://stream.ads.ottera.tv/playlist.m3u8?network_id=4312
#EXTINF:-1 tvg-id="",Canela Hits #EXTINF:-1 tvg-id="",Canela Hits
https://stream.ads.ottera.tv/playlist.m3u8?network_id=1058 https://stream.ads.ottera.tv/playlist.m3u8?network_id=1058
#EXTINF:-1 tvg-id="",Canela Music Presents #EXTINF:-1 tvg-id="",Canela Music Presents
https://stream.ads.ottera.tv/playlist.m3u8?network_id=2548 https://stream.ads.ottera.tv/playlist.m3u8?network_id=2548
#EXTINF:-1 tvg-id="",CHILL LATINO #EXTINF:-1 tvg-id="",CHILL LATINO
https://stream.ads.ottera.tv/playlist.m3u8?network_id=1085 https://stream.ads.ottera.tv/playlist.m3u8?network_id=1085

View file

@ -625,7 +625,7 @@ http://trn03.tulix.tv/teleup-nbc-wgal-new1/playlist.m3u8
http://trn03.tulix.tv/teleup-cw-whp/playlist.m3u8 http://trn03.tulix.tv/teleup-cw-whp/playlist.m3u8
#EXTINF:-1 tvg-id="WJLADT1.us",ABC 7 Washington DC (WJLA) (720p) #EXTINF:-1 tvg-id="WJLADT1.us",ABC 7 Washington DC (WJLA) (720p)
https://content.uplynk.com/40cec2bf074c40f08932da03ab4510be.m3u8 https://content.uplynk.com/40cec2bf074c40f08932da03ab4510be.m3u8
#EXTINF:-1 tvg-id="WLCT96.us",Wolcott Governmental TV (720p) (Wolcott CT) #EXTINF:-1 tvg-id="WLCT96.us",Wolcott Governmental TV (Wolcott CT) (720p)
https://5a5c57d042315.streamlock.net/live11704001/ngrp:government_all/playlist.m3u8 https://5a5c57d042315.streamlock.net/live11704001/ngrp:government_all/playlist.m3u8
#EXTINF:-1 tvg-id="WLIIDT1.us",TeleOnce (WLII-DT) (1080p) #EXTINF:-1 tvg-id="WLIIDT1.us",TeleOnce (WLII-DT) (1080p)
https://univision-live.cdn.vustreams.com/live/ce88b839-6376-4494-a2ee-83d66bc7cfc1/live.isml/ce88b839-6376-4494-a2ee-83d66bc7cfc1.m3u8 https://univision-live.cdn.vustreams.com/live/ce88b839-6376-4494-a2ee-83d66bc7cfc1/live.isml/ce88b839-6376-4494-a2ee-83d66bc7cfc1.m3u8

View file

@ -33,9 +33,9 @@ https://ythls.onrender.com/channel/UCVklphu0DdSFQaoRu1e0fsw.m3u8
https://ythls.onrender.com/channel/UCwgzvE6tj56aYkCF8_65TKQ.m3u8 https://ythls.onrender.com/channel/UCwgzvE6tj56aYkCF8_65TKQ.m3u8
#EXTINF:-1 tvg-id="RabboniTV.za",Rabboni TV (1080p) [Not 24/7] #EXTINF:-1 tvg-id="RabboniTV.za",Rabboni TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UCWnCfp6jZHGuuX547SJ5F7g.m3u8 https://ythls.onrender.com/channel/UCWnCfp6jZHGuuX547SJ5F7g.m3u8
#EXTINF:-1 tvg-id="BOKTV.za",BOKTV (720p) #EXTINF:-1 tvg-id="BOKTV.za",BOKTV (720p)
https://livestream2.bokradio.co.za/hls/Bok5c.m3u8 https://livestream2.bokradio.co.za/hls/Bok5c.m3u8
#EXTINF:-1 tvg-id="RaphaTV.za",Rapha TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="RaphaTV.za",Rapha TV (720p) [Not 24/7]
https://ythls.onrender.com/channel/UCYo1cBqDWMAQ-_krJdEw9ew.m3u8 https://ythls.onrender.com/channel/UCYo1cBqDWMAQ-_krJdEw9ew.m3u8
#EXTINF:-1 tvg-id="SeraphimTV.za",Seraphim TV (720p) #EXTINF:-1 tvg-id="SeraphimTV.za",Seraphim TV (720p)
https://932y48q5djv8-hls-live.5centscdn.com/dncpull/live.stream/chunks.m3u8 https://932y48q5djv8-hls-live.5centscdn.com/dncpull/live.stream/chunks.m3u8

View file

@ -1 +1 @@
[{"channel":"AndorraTV.ad","url":"https://iptv-all.lanesh4d0w.repl.co/andorra/atv","http_referrer":"http://imn.iq","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"},{"channel":"BBCNews.uk","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null},{"channel":"BBCNewsHD.uk","url":"https://master.starmena-cloud.com/hls/bbc.m3u8","http_referrer":null,"user_agent":null},{"channel":"KayhanTV.af","url":"http://208.93.117.113/live/Stream1/playlist.m3u8","http_referrer":null,"user_agent":null},{"channel":"LDPRTV.ru","url":"http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8","http_referrer":null,"user_agent":null},{"channel":"LibyasChannel.ly","url":"https://master.starmena-cloud.com/hls/libyas.m3u8","http_referrer":null,"user_agent":null},{"channel":"Sharq.af","url":"https://forerunnerrtmp.livestreamingcdn.com/output18/output18.stream/playlist.m3u8","http_referrer":null,"user_agent":null}] [{"channel":"","url":"http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8","http_referrer":null,"user_agent":null},{"channel":"","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8","http_referrer":"http://imn.iq","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"},{"channel":"AndorraTV.ad","url":"https://iptv-all.lanesh4d0w.repl.co/andorra/atv","http_referrer":null,"user_agent":null},{"channel":"BBCNews.uk","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null},{"channel":"LDPRTV.ru","url":"http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8","http_referrer":null,"user_agent":null},{"channel":"MeteoMedia.ca","url":"http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8","http_referrer":null,"user_agent":null},{"channel":"VisitXTV.nl","url":"https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8","http_referrer":null,"user_agent":null},{"channel":"Zoo.ad","url":"https://iptv-all.lanesh4d0w.repl.co/andorra/zoo","http_referrer":null,"user_agent":null}]

View file

@ -1,5 +0,0 @@
#EXTM3U
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8

View file

@ -9,9 +9,9 @@ http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8
http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8
#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russia",ЛДПР ТВ (1080p) #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russia",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="United Kingdom" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] #EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq #EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 #EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8
#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8

View file

@ -9,20 +9,12 @@ http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8
#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ЛДПР ТВ (1080p) #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Europe" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8
#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Europe",ATV #EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Europe",ATV
https://iptv-all.lanesh4d0w.repl.co/andorra/atv https://iptv-all.lanesh4d0w.repl.co/andorra/atv
#EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Europe",Zoo (720p) #EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Europe",Zoo (720p)
https://iptv-all.lanesh4d0w.repl.co/andorra/zoo https://iptv-all.lanesh4d0w.repl.co/andorra/zoo
#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ЛДПР ТВ (1080p) #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Europe, the Middle East and Africa" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8
#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV #EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV
https://iptv-all.lanesh4d0w.repl.co/andorra/atv https://iptv-all.lanesh4d0w.repl.co/andorra/atv
#EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Europe, the Middle East and Africa",Zoo (720p) #EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Europe, the Middle East and Africa",Zoo (720p)
@ -35,10 +27,6 @@ http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8
http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="South Asia",Daawah TV #EXTINF:-1 tvg-id="" tvg-logo="" group-title="South Asia",Daawah TV
http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Worldwide" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8
#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Worldwide",ATV #EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Worldwide",ATV
https://iptv-all.lanesh4d0w.repl.co/andorra/atv https://iptv-all.lanesh4d0w.repl.co/andorra/atv
#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Worldwide",BBC News HD #EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="Worldwide",BBC News HD
@ -51,3 +39,7 @@ http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8
https://iptv-all.lanesh4d0w.repl.co/andorra/zoo https://iptv-all.lanesh4d0w.repl.co/andorra/zoo
#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Worldwide",ЛДПР ТВ (1080p) #EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Worldwide",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8

View file

@ -1,8 +1,4 @@
#EXTM3U #EXTM3U
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8
#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Undefined",ATV #EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Undefined",ATV
https://iptv-all.lanesh4d0w.repl.co/andorra/atv https://iptv-all.lanesh4d0w.repl.co/andorra/atv
#EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Undefined",Zoo (720p) #EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Undefined",Zoo (720p)

View file

@ -1,8 +1,4 @@
#EXTM3U #EXTM3U
#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8
#EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Undefined",ATV #EXTINF:-1 tvg-id="AndorraTV.ad" tvg-logo="" group-title="Undefined",ATV
https://iptv-all.lanesh4d0w.repl.co/andorra/atv https://iptv-all.lanesh4d0w.repl.co/andorra/atv
#EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Undefined",Zoo (720p) #EXTINF:-1 tvg-id="Zoo.ad" tvg-logo="" group-title="Undefined",Zoo (720p)

View file

@ -1,7 +0,0 @@
{"line":2,"channel":"ATV.ad","quality":"720p","label":"Offline","name":"ATV","filepath":"ad.m3u","url":"https://iptv-all.lanesh4d0w.repl.co/andorra/atv","httpReferrer":"http://imn.iq","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148","_id":"k4XpZHQAyqyTbcf0"}
{"line":2,"channel":"LibyasChannel.ly","quality":"","label":"","name":"Libyas Channel","filepath":"ly.m3u","url":"https://master.starmena-cloud.com/hls/libyas.m3u8","httpReferrer":"","userAgent":"","_id":"ki4YjAoNNoIY8sSm"}
{"line":2,"channel":"","quality":"720p","label":"","name":"1A Network","filepath":"unsorted.m3u","url":"https://simultv.s.llnwi.net/n4s4/2ANetwork/interlink.m3u8","httpReferrer":"","userAgent":"","_id":"IZpCJjjWPaBYh7Dr"}
{"line":2,"channel":"","quality":"720p","label":"","name":"Fox Sports 2 Asia (Thai)","filepath":"us_blocked.m3u","url":"https://example.com/playlist.m3u8","httpReferrer":"","userAgent":"","_id":"6c4J4vs8K69wMJ7S"}
{"line":4,"channel":"","quality":"","label":"","name":"TVN","filepath":"us_blocked.m3u","url":"https://example.com/playlist2.m3u8","httpReferrer":"","userAgent":"","_id":"xEmbX384v3t3F5Wg"}
{"line":6,"channel":"EverydayHeroes.us","quality":"720p","label":"","name":"Everyday Heroes","filepath":"us_blocked.m3u","url":"https://a.jsrdn.com/broadcast/7b1451fa52/+0000/c.m3u8","httpReferrer":"","userAgent":"","_id":"BZsRPt8VS4kIJnfi"}
{"line":2,"channel":"qib22lAq1L.us","quality":"720p","label":"","name":"ABC","filepath":"wrong_id.m3u","url":"https://example.com/playlist2.m3u8","httpReferrer":"","userAgent":"","_id":"eFUlUnST5zJSBWAF"}

View file

@ -32,14 +32,13 @@
{"filepath":"subdivisions/ca-on.m3u","count":1} {"filepath":"subdivisions/ca-on.m3u","count":1}
{"filepath":"countries/in.m3u","count":1} {"filepath":"countries/in.m3u","count":1}
{"filepath":"countries/ru.m3u","count":1} {"filepath":"countries/ru.m3u","count":1}
{"filepath":"countries/uk.m3u","count":1}
{"filepath":"countries/int.m3u","count":1} {"filepath":"countries/int.m3u","count":1}
{"filepath":"index.category.m3u","count":8} {"filepath":"index.category.m3u","count":8}
{"filepath":"index.country.m3u","count":7} {"filepath":"index.country.m3u","count":7}
{"filepath":"index.language.m3u","count":7} {"filepath":"index.language.m3u","count":7}
{"filepath":"index.m3u","count":7} {"filepath":"index.m3u","count":7}
{"filepath":"index.nsfw.m3u","count":8} {"filepath":"index.nsfw.m3u","count":8}
{"filepath":"index.region.m3u","count":23} {"filepath":"index.region.m3u","count":21}
{"filepath":"languages/eng.m3u","count":1} {"filepath":"languages/eng.m3u","count":1}
{"filepath":"languages/rus.m3u","count":1} {"filepath":"languages/rus.m3u","count":1}
{"filepath":"languages/cat.m3u","count":1} {"filepath":"languages/cat.m3u","count":1}
@ -54,8 +53,8 @@
{"filepath":"regions/cas.m3u","count":0} {"filepath":"regions/cas.m3u","count":0}
{"filepath":"regions/cenamer.m3u","count":0} {"filepath":"regions/cenamer.m3u","count":0}
{"filepath":"regions/cis.m3u","count":1} {"filepath":"regions/cis.m3u","count":1}
{"filepath":"regions/emea.m3u","count":4} {"filepath":"regions/emea.m3u","count":3}
{"filepath":"regions/eur.m3u","count":4} {"filepath":"regions/eur.m3u","count":3}
{"filepath":"regions/hispam.m3u","count":0} {"filepath":"regions/hispam.m3u","count":0}
{"filepath":"regions/lac.m3u","count":0} {"filepath":"regions/lac.m3u","count":0}
{"filepath":"regions/latam.m3u","count":0} {"filepath":"regions/latam.m3u","count":0}

View file

@ -1,5 +0,0 @@
#EXTM3U
#EXTINF:-1 tvg-id="AndorraTV.ad" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",ATV (720p) [Offline]
#EXTVLCOPT:http-referrer=http://imn.iq
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
https://iptv-all.lanesh4d0w.repl.co/andorra/atv

View file

@ -1,5 +0,0 @@
#EXTM3U
#EXTINF:-1 tvg-id="KayhanTV.af",Kayhan TV
http://208.93.117.113/live/Stream1/playlist.m3u8
#EXTINF:-1 tvg-id="Sharq.af",Sharq
http://51.210.199.50/hls/stream.m3u8

View file

@ -1,6 +0,0 @@
#EXTM3U
#EXTINF:-1 tvg-id="Telearuba.aw",Telearuba (720p)
http://cdn.setar.aw:1935/Telearuba/smil:telearuba.smil/playlist.m3u8
#EXTINF:-1 tvg-id="Telearuba.aw" user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",Telearuba (480p) [Not 24/7]
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
https://backend-server-dot-telearuba-app.appspot.com/media/livestream13/playlist.m3u8

View file

@ -1,7 +0,0 @@
#EXTM3U
#EXTINF:-1 tvg-id="",Caillou
https://dhx-caillou-1-es.samsung.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-id="",iHola Play
https://rakuten-hola-2-es.samsung.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-id="",Planeta Junior TV
https://deaplaneta-planetakidz-1-es.samsung.wurl.tv/playlist.m3u8

View file

@ -1,9 +0,0 @@
#EXTM3U
#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8
#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8
#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p)
http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8
#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p)
https://service-stitcher.clusters.pluto.tv/stitch/hls/channel/5ca525b650be2571e3943c63/master.m3u8?advertisingId=&appName=web&deviceId=5ca525b650be2571e3943c63

Some files were not shown because too many files have changed in this diff Show more