diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml
index 213deb39b..51cf6df50 100644
--- a/.github/workflows/auto-update.yml
+++ b/.github/workflows/auto-update.yml
@@ -20,90 +20,6 @@ jobs:
format:
runs-on: ubuntu-latest
needs: create-branch
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Install Dependencies
- run: npm install
- - name: Format Playlists
- run: node scripts/format.js
- - name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: '[Bot] Formate playlists'
- commit_user_name: iptv-bot
- commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
- branch: bot/auto-update
- file_pattern: channels/*
- sort:
- runs-on: ubuntu-latest
- needs: format
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Install Dependencies
- run: npm install
- - name: Sort Channels
- run: node scripts/sort.js
- - name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: '[Bot] Sort channels'
- commit_user_name: iptv-bot
- commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
- branch: bot/auto-update
- file_pattern: channels/*
- remove-duplicates:
- runs-on: ubuntu-latest
- needs: sort
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Install Dependencies
- run: npm install
- - name: Remove Duplicates
- run: node scripts/remove-duplicates.js
- - name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: '[Bot] Remove duplicates'
- commit_user_name: iptv-bot
- commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
- branch: bot/auto-update
- file_pattern: channels/*
- filter:
- runs-on: ubuntu-latest
- needs: remove-duplicates
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/auto-update
- - name: Install Dependencies
- run: npm install
- - name: Filter Playlists
- run: node scripts/filter.js
- - name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: '[Bot] Filter channels'
- commit_user_name: iptv-bot
- commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
- branch: bot/auto-update
- file_pattern: channels/*
- detect-resolution:
- runs-on: ubuntu-latest
- needs: filter
continue-on-error: true
strategy:
fail-fast: false
@@ -277,10 +193,12 @@ jobs:
uses: actions/checkout@v2
with:
ref: bot/auto-update
+ - name: Setup FFmpeg
+ uses: FedericoCarboni/setup-ffmpeg@v1
- name: Install Dependencies
run: npm install
- - name: Detect Resolution
- run: node scripts/detect-resolution.js --country=${{ matrix.country }}
+ - name: Format Playlists
+ run: node scripts/format.js --country=${{ matrix.country }} --status --resolution --debug
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
@@ -288,7 +206,7 @@ jobs:
path: channels/${{ matrix.country }}.m3u
commit-changes:
runs-on: ubuntu-latest
- needs: detect-resolution
+ needs: format
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -302,7 +220,70 @@ jobs:
- name: Commit Changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
- commit_message: '[Bot] Detect resolution'
+ commit_message: '[Bot] Format playlists'
+ commit_user_name: iptv-bot
+ commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
+ commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
+ branch: bot/auto-update
+ file_pattern: channels/*
+ remove-duplicates:
+ runs-on: ubuntu-latest
+ needs: commit-changes
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ ref: bot/auto-update
+ - name: Install Dependencies
+ run: npm install
+ - name: Remove Duplicates
+ run: node scripts/remove-duplicates.js
+ - name: Commit Changes
+ uses: stefanzweifel/git-auto-commit-action@v4
+ with:
+ commit_message: '[Bot] Remove duplicates'
+ commit_user_name: iptv-bot
+ commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
+ commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
+ branch: bot/auto-update
+ file_pattern: channels/*
+ sort:
+ runs-on: ubuntu-latest
+ needs: remove-duplicates
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ ref: bot/auto-update
+ - name: Install Dependencies
+ run: npm install
+ - name: Sort Channels
+ run: node scripts/sort.js
+ - name: Commit Changes
+ uses: stefanzweifel/git-auto-commit-action@v4
+ with:
+ commit_message: '[Bot] Sort channels'
+ commit_user_name: iptv-bot
+ commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
+ commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
+ branch: bot/auto-update
+ file_pattern: channels/*
+ filter:
+ runs-on: ubuntu-latest
+ needs: sort
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ ref: bot/auto-update
+ - name: Install Dependencies
+ run: npm install
+ - name: Filter Playlists
+ run: node scripts/filter.js
+ - name: Commit Changes
+ uses: stefanzweifel/git-auto-commit-action@v4
+ with:
+ commit_message: '[Bot] Filter channels'
commit_user_name: iptv-bot
commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
@@ -310,7 +291,7 @@ jobs:
file_pattern: channels/*
generate:
runs-on: ubuntu-latest
- needs: commit-changes
+ needs: filter
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -376,6 +357,7 @@ jobs:
branch: bot/auto-update
file_pattern: README.md
pull-request:
+ if: ${{ github.ref == 'refs/heads/master' }}
needs: update-readme
runs-on: ubuntu-latest
steps:
@@ -408,7 +390,6 @@ jobs:
pull-request-number: ${{ steps.pr.outputs.pr_number }}
merge-method: squash
- name: Approve Pull Request
- if: github.ref == 'refs/heads/master'
uses: juliangruber/approve-pull-request-action@v1
with:
github-token: ${{ secrets.PAT }}
diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml
deleted file mode 100644
index 3c1f9a452..000000000
--- a/.github/workflows/clean.yml
+++ /dev/null
@@ -1,257 +0,0 @@
-name: clean
-on:
- workflow_dispatch:
- schedule:
- - cron: '0 6 * * 0'
-jobs:
- create-branch:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: ${{ github.ref }}
- - name: Create Branch
- uses: peterjgrainger/action-create-branch@v2.0.1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- branch: 'bot/remove-broken-links'
- check:
- runs-on: ubuntu-latest
- needs: create-branch
- continue-on-error: true
- strategy:
- fail-fast: false
- matrix:
- country:
- [
- ad,
- ae,
- af,
- ag,
- al,
- am,
- an,
- ao,
- ar,
- at,
- au,
- aw,
- az,
- ba,
- bb,
- bd,
- be,
- bf,
- bg,
- bh,
- bn,
- bo,
- br,
- bs,
- by,
- ca,
- cd,
- cg,
- ch,
- ci,
- cl,
- cm,
- cn,
- co,
- cr,
- cu,
- cw,
- cy,
- cz,
- de,
- dk,
- do,
- dz,
- ec,
- ee,
- eg,
- es,
- et,
- fi,
- fj,
- fo,
- fr,
- pf,
- ge,
- gh,
- gm,
- gn,
- gp,
- gq,
- gr,
- gt,
- hk,
- hn,
- hr,
- ht,
- hu,
- id,
- ie,
- il,
- in,
- iq,
- ir,
- is,
- it,
- jm,
- jo,
- jp,
- ke,
- kg,
- kh,
- kp,
- kr,
- kw,
- kz,
- la,
- lb,
- li,
- lk,
- lt,
- lu,
- lv,
- ly,
- ma,
- mc,
- md,
- me,
- mk,
- ml,
- mm,
- mn,
- mo,
- mt,
- mv,
- mx,
- my,
- mz,
- ne,
- ng,
- ni,
- nl,
- no,
- np,
- nz,
- om,
- pa,
- pe,
- ph,
- pk,
- pl,
- pr,
- ps,
- pt,
- py,
- qa,
- ro,
- rs,
- ru,
- rw,
- sa,
- sd,
- se,
- sg,
- si,
- sk,
- sl,
- sm,
- sn,
- so,
- sv,
- sy,
- th,
- tj,
- tm,
- tn,
- tr,
- tt,
- tw,
- tz,
- ua,
- ug,
- uk,
- us,
- uy,
- uz,
- va,
- ve,
- vi,
- vn,
- xk,
- ye,
- zm,
- unsorted
- ]
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/remove-broken-links
- - name: Setup FFmpeg
- uses: FedericoCarboni/setup-ffmpeg@v1
- - name: Install Dependencies
- run: npm install
- - name: Remove Broken Links
- run: node scripts/clean.js --country=${{ matrix.country }} --debug
- - name: Upload Artifact
- uses: actions/upload-artifact@v2
- with:
- name: channels
- path: channels/${{ matrix.country }}.m3u
- commit-changes:
- runs-on: ubuntu-latest
- needs: check
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/remove-broken-links
- - name: Download Artifacts
- uses: actions/download-artifact@v2
- - name: Commit Changes
- uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: '[Bot] Remove broken links'
- commit_user_name: iptv-bot
- commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com
- commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>'
- branch: bot/remove-broken-links
- file_pattern: channels/*
- pull-request:
- if: ${{ github.ref == 'refs/heads/master' }}
- runs-on: ubuntu-latest
- needs: commit-changes
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- ref: bot/remove-broken-links
- - name: Generate Token
- uses: tibdex/github-app-token@v1
- id: generate-token
- with:
- app_id: ${{ secrets.APP_ID }}
- private_key: ${{ secrets.APP_PRIVATE_KEY }}
- - name: Create Pull Request
- uses: repo-sync/pull-request@v2
- with:
- source_branch: 'bot/remove-broken-links'
- destination_branch: 'master'
- pr_title: '[Bot] Remove broken links'
- pr_body: |
- This pull request is created by [clean][1] workflow.
-
- The script checks all links except those with labels `[Geo-blocked]`, `[Offline]` or `[Not 24/7]` in the title.
-
- **IMPORTANT:** Before merging all links should be checked manually to make sure that the response from the server has not changed. If the link works for you but occasionally return an HTTP code 403 (Forbidden) then it should be marked as `[Geo-blocked]`. If the link does not work but has no alternative, you can mark it as `[Offline]` to save it in the playlist along with a description. Working links should be marked as `[Not 24/7]` so that the script will skip them next time.
-
- [1]: https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }}
- pr_draft: true
- github_token: ${{ steps.generate-token.outputs.token }}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a111b6713..ef08f6c07 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -125,7 +125,7 @@ STREAM_URL
| `LANGUAGE` | Channel language. The name of the language must conform to the standard [ISO 639-3](https://iso639-3.sil.org/code_tables/639/data?title=&field_iso639_cd_st_mmbrshp_639_1_tid=94671&name_3=&field_iso639_element_scope_tid=All&field_iso639_language_type_tid=51&items_per_page=500). If the channel is broadcast in several languages you can list them separated by a semicolon. (optional) |
| `LOGO_URL` | The logo of the channel that will be displayed if the player supports it. Supports files in png, jpeg and gif format. (optional) |
| `CATEGORY` | The category to which the channel belongs. The list of currently supported categories can be found [here](https://github.com/iptv-org/iptv#playlists-by-category). (optional) |
-| `FULL_NAME` | Full name of the channel. It is recommended to use the name listed on [lyngsat](https://www.lyngsat.com/search.html) or [wikipedia](https://www.wikipedia.org/) if possible. May contain any characters except plus sign, minus sign, round and square brackets. |
+| `FULL_NAME` | Full name of the channel. It is recommended to use the name listed on [lyngsat](https://www.lyngsat.com/search.html) or [wikipedia](https://www.wikipedia.org/) if possible. May contain any characters except round and square brackets. |
| `STREAM_TIME_SHIFT` | Must be specified if the channel is broadcast with a shift in time relative to the main stream. Should only contain a number and a sign. (optional) |
| `ALTERNATIVE_NAME` | Can be used to specify a short name or name in another language. May contain any characters except round and square brackets. (optional) |
| `STREAM_RESOLUTION` | The maximum height of the frame with a "p" at the end. In case of VLC Player this information can be found in `Window > Media Information... > Codec Details`. (optional) |
@@ -153,7 +153,8 @@ http://example.com/stream.m3u8
- `.github/`
- `ISSUE_TEMPLATE/`: issue templates for this repository.
- `workflows/`
- - `auto-update.yml`: contain actions that automatically updates all playlists every day.
+ - `auto-update.yml`: GitHub Action that automatically updates all playlists every day.
+ - `check.yml`: GitHub Action that automatically checks every pull request for syntax errors.
- `CODE_OF_CONDUCT.md`: rules you shouldn't break if you don't want to get banned.
- `.readme/`
- `_categories.md`: automatically generated list of all categories and their corresponding playlists.
@@ -168,8 +169,6 @@ http://example.com/stream.m3u8
- `unsorted.m3u`: playlist with channels not yet sorted.
- `scripts/`
- `helpers/`: helper scripts used in GitHub Actions.
- - `clean.js`: used in GitHub Action to check all links and remove broken ones.
- - `detect-resolution.js`: used in GitHub Action to detect resolution of the streams.
- `filter.js`: used within GitHub Action to remove blacklisted channels from playlists.
- `format.js`: used within GitHub Action to format channel descriptions.
- `generate.js`: used within GitHub Action to generate all additional playlists.
diff --git a/README.md b/README.md
index f8bad600c..9848dbd62 100644
--- a/README.md
+++ b/README.md
@@ -40,8 +40,8 @@ Or select one of the playlists from the list below.
| Classic | 78 | https://iptv-org.github.io/iptv/categories/classic.m3u |
| Comedy | 89 | https://iptv-org.github.io/iptv/categories/comedy.m3u |
| Cooking | 54 | https://iptv-org.github.io/iptv/categories/cooking.m3u |
- | Culture | 12 | https://iptv-org.github.io/iptv/categories/culture.m3u |
- | Documentary | 70 | https://iptv-org.github.io/iptv/categories/documentary.m3u |
+ | Culture | 13 | https://iptv-org.github.io/iptv/categories/culture.m3u |
+ | Documentary | 68 | https://iptv-org.github.io/iptv/categories/documentary.m3u |
| Education | 22 | https://iptv-org.github.io/iptv/categories/education.m3u |
| Entertainment | 212 | https://iptv-org.github.io/iptv/categories/entertainment.m3u |
| Family | 54 | https://iptv-org.github.io/iptv/categories/family.m3u |
@@ -49,10 +49,10 @@ Or select one of the playlists from the list below.
| Kids | 213 | https://iptv-org.github.io/iptv/categories/kids.m3u |
| Legislative | 61 | https://iptv-org.github.io/iptv/categories/legislative.m3u |
| Lifestyle | 94 | https://iptv-org.github.io/iptv/categories/lifestyle.m3u |
- | Local | 543 | https://iptv-org.github.io/iptv/categories/local.m3u |
- | Movies | 277 | https://iptv-org.github.io/iptv/categories/movies.m3u |
- | Music | 410 | https://iptv-org.github.io/iptv/categories/music.m3u |
- | News | 491 | https://iptv-org.github.io/iptv/categories/news.m3u |
+ | Local | 549 | https://iptv-org.github.io/iptv/categories/local.m3u |
+ | Movies | 278 | https://iptv-org.github.io/iptv/categories/movies.m3u |
+ | Music | 411 | https://iptv-org.github.io/iptv/categories/music.m3u |
+ | News | 492 | https://iptv-org.github.io/iptv/categories/news.m3u |
| Outdoor | 52 | https://iptv-org.github.io/iptv/categories/outdoor.m3u |
| Relax | 19 | https://iptv-org.github.io/iptv/categories/relax.m3u |
| Religious | 287 | https://iptv-org.github.io/iptv/categories/religious.m3u |
@@ -63,7 +63,7 @@ Or select one of the playlists from the list below.
| Travel | 28 | https://iptv-org.github.io/iptv/categories/travel.m3u |
| Weather | 19 | https://iptv-org.github.io/iptv/categories/weather.m3u |
| XXX | 59 | https://iptv-org.github.io/iptv/categories/xxx.m3u |
- | Other | 4923 | https://iptv-org.github.io/iptv/categories/other.m3u |
+ | Other | 4880 | https://iptv-org.github.io/iptv/categories/other.m3u |
@@ -84,7 +84,7 @@ Or select one of the playlists from the list below.
| Akan | 2 | https://iptv-org.github.io/iptv/languages/aka.m3u |
| Albanian | 17 | https://iptv-org.github.io/iptv/languages/sqi.m3u |
| Amharic | 1 | https://iptv-org.github.io/iptv/languages/amh.m3u |
- | Arabic | 413 | https://iptv-org.github.io/iptv/languages/ara.m3u |
+ | Arabic | 415 | https://iptv-org.github.io/iptv/languages/ara.m3u |
| Armenian | 28 | https://iptv-org.github.io/iptv/languages/hye.m3u |
| Assyrian Neo-Aramaic | 1 | https://iptv-org.github.io/iptv/languages/aii.m3u |
| Azerbaijani | 10 | https://iptv-org.github.io/iptv/languages/aze.m3u |
@@ -93,17 +93,17 @@ Or select one of the playlists from the list below.
| Bosnian | 11 | https://iptv-org.github.io/iptv/languages/bos.m3u |
| Bulgarian | 10 | https://iptv-org.github.io/iptv/languages/bul.m3u |
| Burmese | 1 | https://iptv-org.github.io/iptv/languages/mya.m3u |
- | Catalan | 10 | https://iptv-org.github.io/iptv/languages/cat.m3u |
- | Chinese | 670 | https://iptv-org.github.io/iptv/languages/zho.m3u |
+ | Catalan | 11 | https://iptv-org.github.io/iptv/languages/cat.m3u |
+ | Chinese | 659 | https://iptv-org.github.io/iptv/languages/zho.m3u |
| Croatian | 14 | https://iptv-org.github.io/iptv/languages/hrv.m3u |
| Czech | 21 | https://iptv-org.github.io/iptv/languages/ces.m3u |
| Danish | 4 | https://iptv-org.github.io/iptv/languages/dan.m3u |
| Dutch | 60 | https://iptv-org.github.io/iptv/languages/nld.m3u |
- | English | 2439 | https://iptv-org.github.io/iptv/languages/eng.m3u |
+ | English | 2441 | https://iptv-org.github.io/iptv/languages/eng.m3u |
| Estonian | 3 | https://iptv-org.github.io/iptv/languages/est.m3u |
| Faroese | 1 | https://iptv-org.github.io/iptv/languages/fao.m3u |
| Finnish | 1 | https://iptv-org.github.io/iptv/languages/fin.m3u |
- | French | 194 | https://iptv-org.github.io/iptv/languages/fra.m3u |
+ | French | 193 | https://iptv-org.github.io/iptv/languages/fra.m3u |
| Galician | 9 | https://iptv-org.github.io/iptv/languages/glg.m3u |
| Georgian | 8 | https://iptv-org.github.io/iptv/languages/kat.m3u |
| German | 206 | https://iptv-org.github.io/iptv/languages/deu.m3u |
@@ -130,7 +130,7 @@ Or select one of the playlists from the list below.
| Malay (macrolanguage) | 7 | https://iptv-org.github.io/iptv/languages/msa.m3u |
| Malayalam | 24 | https://iptv-org.github.io/iptv/languages/mal.m3u |
| Maltese | 3 | https://iptv-org.github.io/iptv/languages/mlt.m3u |
- | Mandarin Chinese | 77 | https://iptv-org.github.io/iptv/languages/cmn.m3u |
+ | Mandarin Chinese | 78 | https://iptv-org.github.io/iptv/languages/cmn.m3u |
| Maori | 2 | https://iptv-org.github.io/iptv/languages/mri.m3u |
| Min Nan Chinese | 3 | https://iptv-org.github.io/iptv/languages/nan.m3u |
| Modern Greek (1453-) | 31 | https://iptv-org.github.io/iptv/languages/ell.m3u |
@@ -144,13 +144,13 @@ Or select one of the playlists from the list below.
| Polish | 33 | https://iptv-org.github.io/iptv/languages/pol.m3u |
| Portuguese | 108 | https://iptv-org.github.io/iptv/languages/por.m3u |
| Romanian | 64 | https://iptv-org.github.io/iptv/languages/ron.m3u |
- | Russian | 300 | https://iptv-org.github.io/iptv/languages/rus.m3u |
+ | Russian | 302 | https://iptv-org.github.io/iptv/languages/rus.m3u |
| Serbian | 17 | https://iptv-org.github.io/iptv/languages/srp.m3u |
| Sinhala | 5 | https://iptv-org.github.io/iptv/languages/sin.m3u |
| Slovak | 26 | https://iptv-org.github.io/iptv/languages/slk.m3u |
| Slovenian | 6 | https://iptv-org.github.io/iptv/languages/slv.m3u |
| Somali | 6 | https://iptv-org.github.io/iptv/languages/som.m3u |
- | Spanish | 626 | https://iptv-org.github.io/iptv/languages/spa.m3u |
+ | Spanish | 624 | https://iptv-org.github.io/iptv/languages/spa.m3u |
| Sundanese | 1 | https://iptv-org.github.io/iptv/languages/sun.m3u |
| Swedish | 11 | https://iptv-org.github.io/iptv/languages/swe.m3u |
| Tagalog | 6 | https://iptv-org.github.io/iptv/languages/tgl.m3u |
@@ -165,7 +165,7 @@ Or select one of the playlists from the list below.
| Vietnamese | 69 | https://iptv-org.github.io/iptv/languages/vie.m3u |
| Western Frisian | 1 | https://iptv-org.github.io/iptv/languages/fry.m3u |
| Yue Chinese | 10 | https://iptv-org.github.io/iptv/languages/yue.m3u |
- | Undefined | 2688 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
+ | Undefined | 2659 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
@@ -187,10 +187,10 @@ Or select one of the playlists from the list below.
| 🇦🇱 Albania | 24 | https://iptv-org.github.io/iptv/countries/al.m3u |
| 🇩🇿 Algeria | 72 | https://iptv-org.github.io/iptv/countries/dz.m3u |
| 🇦🇸 American Samoa | 3 | https://iptv-org.github.io/iptv/countries/as.m3u |
- | 🇦🇩 Andorra | 10 | https://iptv-org.github.io/iptv/countries/ad.m3u |
+ | 🇦🇩 Andorra | 11 | https://iptv-org.github.io/iptv/countries/ad.m3u |
| 🇦🇴 Angola | 3 | https://iptv-org.github.io/iptv/countries/ao.m3u |
| 🇦🇬 Antigua & Barbuda | 1 | https://iptv-org.github.io/iptv/countries/ag.m3u |
- | 🇦🇷 Argentina | 77 | https://iptv-org.github.io/iptv/countries/ar.m3u |
+ | 🇦🇷 Argentina | 72 | https://iptv-org.github.io/iptv/countries/ar.m3u |
| 🇦🇲 Armenia | 35 | https://iptv-org.github.io/iptv/countries/am.m3u |
| 🇦🇼 Aruba | 2 | https://iptv-org.github.io/iptv/countries/aw.m3u |
| 🇦🇺 Australia | 99 | https://iptv-org.github.io/iptv/countries/au.m3u |
@@ -204,10 +204,10 @@ Or select one of the playlists from the list below.
| 🇧🇪 Belgium | 29 | https://iptv-org.github.io/iptv/countries/be.m3u |
| 🇧🇯 Benin | 1 | https://iptv-org.github.io/iptv/countries/bj.m3u |
| 🇧🇹 Bhutan | 7 | https://iptv-org.github.io/iptv/countries/bt.m3u |
- | 🇧🇴 Bolivia | 33 | https://iptv-org.github.io/iptv/countries/bo.m3u |
+ | 🇧🇴 Bolivia | 28 | https://iptv-org.github.io/iptv/countries/bo.m3u |
| 🇧🇦 Bosnia | 16 | https://iptv-org.github.io/iptv/countries/ba.m3u |
| 🇧🇼 Botswana | 1 | https://iptv-org.github.io/iptv/countries/bw.m3u |
- | 🇧🇷 Brazil | 162 | https://iptv-org.github.io/iptv/countries/br.m3u |
+ | 🇧🇷 Brazil | 157 | https://iptv-org.github.io/iptv/countries/br.m3u |
| 🇧🇳 Brunei | 5 | https://iptv-org.github.io/iptv/countries/bn.m3u |
| 🇧🇬 Bulgaria | 33 | https://iptv-org.github.io/iptv/countries/bg.m3u |
| 🇧🇫 Burkina Faso | 5 | https://iptv-org.github.io/iptv/countries/bf.m3u |
@@ -218,16 +218,16 @@ Or select one of the playlists from the list below.
| 🇨🇻 Cape Verde | 1 | https://iptv-org.github.io/iptv/countries/cv.m3u |
| 🇨🇫 Central African Republic | 1 | https://iptv-org.github.io/iptv/countries/cf.m3u |
| 🇹🇩 Chad | 1 | https://iptv-org.github.io/iptv/countries/td.m3u |
- | 🇨🇱 Chile | 93 | https://iptv-org.github.io/iptv/countries/cl.m3u |
- | 🇨🇳 China | 790 | https://iptv-org.github.io/iptv/countries/cn.m3u |
- | 🇨🇴 Colombia | 54 | https://iptv-org.github.io/iptv/countries/co.m3u |
+ | 🇨🇱 Chile | 88 | https://iptv-org.github.io/iptv/countries/cl.m3u |
+ | 🇨🇳 China | 772 | https://iptv-org.github.io/iptv/countries/cn.m3u |
+ | 🇨🇴 Colombia | 49 | https://iptv-org.github.io/iptv/countries/co.m3u |
| 🇰🇲 Comoros | 43 | https://iptv-org.github.io/iptv/countries/km.m3u |
| 🇨🇬 Congo - Brazzaville | 9 | https://iptv-org.github.io/iptv/countries/cg.m3u |
| 🇨🇩 Congo - Kinshasa | 6 | https://iptv-org.github.io/iptv/countries/cd.m3u |
| 🇨🇰 Cook Islands | 3 | https://iptv-org.github.io/iptv/countries/ck.m3u |
- | 🇨🇷 Costa Rica | 52 | https://iptv-org.github.io/iptv/countries/cr.m3u |
+ | 🇨🇷 Costa Rica | 47 | https://iptv-org.github.io/iptv/countries/cr.m3u |
| 🇭🇷 Croatia | 18 | https://iptv-org.github.io/iptv/countries/hr.m3u |
- | 🇨🇺 Cuba | 29 | https://iptv-org.github.io/iptv/countries/cu.m3u |
+ | 🇨🇺 Cuba | 24 | https://iptv-org.github.io/iptv/countries/cu.m3u |
| 🇨🇼 Curaçao | 5 | https://iptv-org.github.io/iptv/countries/cw.m3u |
| 🇦🇳 Curaçao | 1 | https://iptv-org.github.io/iptv/countries/an.m3u |
| 🇨🇾 Cyprus | 15 | https://iptv-org.github.io/iptv/countries/cy.m3u |
@@ -235,10 +235,10 @@ Or select one of the playlists from the list below.
| 🇨🇮 Côte d’Ivoire | 2 | https://iptv-org.github.io/iptv/countries/ci.m3u |
| 🇩🇰 Denmark | 16 | https://iptv-org.github.io/iptv/countries/dk.m3u |
| 🇩🇯 Djibouti | 45 | https://iptv-org.github.io/iptv/countries/dj.m3u |
- | 🇩🇴 Dominican Republic | 88 | https://iptv-org.github.io/iptv/countries/do.m3u |
- | 🇪🇨 Ecuador | 27 | https://iptv-org.github.io/iptv/countries/ec.m3u |
+ | 🇩🇴 Dominican Republic | 83 | https://iptv-org.github.io/iptv/countries/do.m3u |
+ | 🇪🇨 Ecuador | 22 | https://iptv-org.github.io/iptv/countries/ec.m3u |
| 🇪🇬 Egypt | 75 | https://iptv-org.github.io/iptv/countries/eg.m3u |
- | 🇸🇻 El Salvador | 37 | https://iptv-org.github.io/iptv/countries/sv.m3u |
+ | 🇸🇻 El Salvador | 32 | https://iptv-org.github.io/iptv/countries/sv.m3u |
| 🇬🇶 Equatorial Guinea | 4 | https://iptv-org.github.io/iptv/countries/gq.m3u |
| 🇪🇷 Eritrea | 1 | https://iptv-org.github.io/iptv/countries/er.m3u |
| 🇪🇪 Estonia | 14 | https://iptv-org.github.io/iptv/countries/ee.m3u |
@@ -247,8 +247,8 @@ Or select one of the playlists from the list below.
| 🇫🇴 Faroe Islands | 1 | https://iptv-org.github.io/iptv/countries/fo.m3u |
| 🇫🇯 Fiji | 4 | https://iptv-org.github.io/iptv/countries/fj.m3u |
| 🇫🇮 Finland | 10 | https://iptv-org.github.io/iptv/countries/fi.m3u |
- | 🇫🇷 France | 219 | https://iptv-org.github.io/iptv/countries/fr.m3u |
- | 🇬🇫 French Guiana | 23 | https://iptv-org.github.io/iptv/countries/gf.m3u |
+ | 🇫🇷 France | 218 | https://iptv-org.github.io/iptv/countries/fr.m3u |
+ | 🇬🇫 French Guiana | 18 | https://iptv-org.github.io/iptv/countries/gf.m3u |
| 🇵🇫 French Polynesia | 4 | https://iptv-org.github.io/iptv/countries/pf.m3u |
| 🇹🇫 French Southern Territories | 1 | https://iptv-org.github.io/iptv/countries/tf.m3u |
| 🇬🇦 Gabon | 1 | https://iptv-org.github.io/iptv/countries/ga.m3u |
@@ -257,13 +257,13 @@ Or select one of the playlists from the list below.
| 🇩🇪 Germany | 258 | https://iptv-org.github.io/iptv/countries/de.m3u |
| 🇬🇭 Ghana | 3 | https://iptv-org.github.io/iptv/countries/gh.m3u |
| 🇬🇷 Greece | 122 | https://iptv-org.github.io/iptv/countries/gr.m3u |
- | 🇬🇵 Guadeloupe | 24 | https://iptv-org.github.io/iptv/countries/gp.m3u |
+ | 🇬🇵 Guadeloupe | 19 | https://iptv-org.github.io/iptv/countries/gp.m3u |
| 🇬🇺 Guam | 3 | https://iptv-org.github.io/iptv/countries/gu.m3u |
- | 🇬🇹 Guatemala | 28 | https://iptv-org.github.io/iptv/countries/gt.m3u |
+ | 🇬🇹 Guatemala | 23 | https://iptv-org.github.io/iptv/countries/gt.m3u |
| 🇬🇳 Guinea | 2 | https://iptv-org.github.io/iptv/countries/gn.m3u |
| 🇬🇼 Guinea-Bissau | 1 | https://iptv-org.github.io/iptv/countries/gw.m3u |
- | 🇭🇹 Haiti | 26 | https://iptv-org.github.io/iptv/countries/ht.m3u |
- | 🇭🇳 Honduras | 36 | https://iptv-org.github.io/iptv/countries/hn.m3u |
+ | 🇭🇹 Haiti | 21 | https://iptv-org.github.io/iptv/countries/ht.m3u |
+ | 🇭🇳 Honduras | 31 | https://iptv-org.github.io/iptv/countries/hn.m3u |
| 🇭🇰 Hong Kong | 21 | https://iptv-org.github.io/iptv/countries/hk.m3u |
| 🇭🇺 Hungary | 36 | https://iptv-org.github.io/iptv/countries/hu.m3u |
| 🇮🇸 Iceland | 9 | https://iptv-org.github.io/iptv/countries/is.m3u |
@@ -286,7 +286,7 @@ Or select one of the playlists from the list below.
| 🇰🇬 Kyrgyzstan | 3 | https://iptv-org.github.io/iptv/countries/kg.m3u |
| 🇱🇦 Laos | 6 | https://iptv-org.github.io/iptv/countries/la.m3u |
| 🇱🇻 Latvia | 9 | https://iptv-org.github.io/iptv/countries/lv.m3u |
- | 🇱🇧 Lebanon | 69 | https://iptv-org.github.io/iptv/countries/lb.m3u |
+ | 🇱🇧 Lebanon | 71 | https://iptv-org.github.io/iptv/countries/lb.m3u |
| 🇱🇸 Lesotho | 1 | https://iptv-org.github.io/iptv/countries/ls.m3u |
| 🇱🇷 Liberia | 1 | https://iptv-org.github.io/iptv/countries/lr.m3u |
| 🇱🇾 Libya | 53 | https://iptv-org.github.io/iptv/countries/ly.m3u |
@@ -298,14 +298,14 @@ Or select one of the playlists from the list below.
| 🇲🇼 Malawi | 1 | https://iptv-org.github.io/iptv/countries/mw.m3u |
| 🇲🇾 Malaysia | 44 | https://iptv-org.github.io/iptv/countries/my.m3u |
| 🇲🇻 Maldives | 8 | https://iptv-org.github.io/iptv/countries/mv.m3u |
- | 🇲🇱 Mali | 1 | https://iptv-org.github.io/iptv/countries/ml.m3u |
+ | 🇲🇱 Mali | 2 | https://iptv-org.github.io/iptv/countries/ml.m3u |
| 🇲🇹 Malta | 7 | https://iptv-org.github.io/iptv/countries/mt.m3u |
| 🇲🇭 Marshall Islands | 3 | https://iptv-org.github.io/iptv/countries/mh.m3u |
- | 🇲🇶 Martinique | 23 | https://iptv-org.github.io/iptv/countries/mq.m3u |
+ | 🇲🇶 Martinique | 18 | https://iptv-org.github.io/iptv/countries/mq.m3u |
| 🇲🇷 Mauritania | 43 | https://iptv-org.github.io/iptv/countries/mr.m3u |
| 🇲🇺 Mauritius | 2 | https://iptv-org.github.io/iptv/countries/mu.m3u |
| 🇾🇹 Mayotte | 1 | https://iptv-org.github.io/iptv/countries/yt.m3u |
- | 🇲🇽 Mexico | 80 | https://iptv-org.github.io/iptv/countries/mx.m3u |
+ | 🇲🇽 Mexico | 75 | https://iptv-org.github.io/iptv/countries/mx.m3u |
| 🇫🇲 Micronesia | 3 | https://iptv-org.github.io/iptv/countries/fm.m3u |
| 🇲🇩 Moldova | 21 | https://iptv-org.github.io/iptv/countries/md.m3u |
| 🇲🇨 Monaco | 7 | https://iptv-org.github.io/iptv/countries/mc.m3u |
@@ -320,7 +320,7 @@ Or select one of the playlists from the list below.
| 🇳🇱 Netherlands | 135 | https://iptv-org.github.io/iptv/countries/nl.m3u |
| 🇳🇨 New Caledonia | 3 | https://iptv-org.github.io/iptv/countries/nc.m3u |
| 🇳🇿 New Zealand | 22 | https://iptv-org.github.io/iptv/countries/nz.m3u |
- | 🇳🇮 Nicaragua | 34 | https://iptv-org.github.io/iptv/countries/ni.m3u |
+ | 🇳🇮 Nicaragua | 29 | https://iptv-org.github.io/iptv/countries/ni.m3u |
| 🇳🇪 Niger | 2 | https://iptv-org.github.io/iptv/countries/ne.m3u |
| 🇳🇬 Nigeria | 7 | https://iptv-org.github.io/iptv/countries/ng.m3u |
| 🇳🇺 Niue | 3 | https://iptv-org.github.io/iptv/countries/nu.m3u |
@@ -333,18 +333,18 @@ Or select one of the playlists from the list below.
| 🇵🇰 Pakistan | 29 | https://iptv-org.github.io/iptv/countries/pk.m3u |
| 🇵🇼 Palau | 3 | https://iptv-org.github.io/iptv/countries/pw.m3u |
| 🇵🇸 Palestine | 68 | https://iptv-org.github.io/iptv/countries/ps.m3u |
- | 🇵🇦 Panama | 35 | https://iptv-org.github.io/iptv/countries/pa.m3u |
+ | 🇵🇦 Panama | 30 | https://iptv-org.github.io/iptv/countries/pa.m3u |
| 🇵🇬 Papua New Guinea | 3 | https://iptv-org.github.io/iptv/countries/pg.m3u |
- | 🇵🇾 Paraguay | 33 | https://iptv-org.github.io/iptv/countries/py.m3u |
- | 🇵🇪 Peru | 107 | https://iptv-org.github.io/iptv/countries/pe.m3u |
+ | 🇵🇾 Paraguay | 28 | https://iptv-org.github.io/iptv/countries/py.m3u |
+ | 🇵🇪 Peru | 108 | https://iptv-org.github.io/iptv/countries/pe.m3u |
| 🇵🇭 Philippines | 20 | https://iptv-org.github.io/iptv/countries/ph.m3u |
| 🇵🇳 Pitcairn Islands | 3 | https://iptv-org.github.io/iptv/countries/pn.m3u |
| 🇵🇱 Poland | 45 | https://iptv-org.github.io/iptv/countries/pl.m3u |
| 🇵🇹 Portugal | 41 | https://iptv-org.github.io/iptv/countries/pt.m3u |
- | 🇵🇷 Puerto Rico | 33 | https://iptv-org.github.io/iptv/countries/pr.m3u |
+ | 🇵🇷 Puerto Rico | 28 | https://iptv-org.github.io/iptv/countries/pr.m3u |
| 🇶🇦 Qatar | 56 | https://iptv-org.github.io/iptv/countries/qa.m3u |
| 🇷🇴 Romania | 76 | https://iptv-org.github.io/iptv/countries/ro.m3u |
- | 🇷🇺 Russia | 396 | https://iptv-org.github.io/iptv/countries/ru.m3u |
+ | 🇷🇺 Russia | 386 | https://iptv-org.github.io/iptv/countries/ru.m3u |
| 🇷🇼 Rwanda | 5 | https://iptv-org.github.io/iptv/countries/rw.m3u |
| 🇷🇪 Réunion | 1 | https://iptv-org.github.io/iptv/countries/re.m3u |
| 🇼🇸 Samoa | 3 | https://iptv-org.github.io/iptv/countries/ws.m3u |
@@ -362,11 +362,11 @@ Or select one of the playlists from the list below.
| 🇿🇦 South Africa | 1 | https://iptv-org.github.io/iptv/countries/za.m3u |
| 🇰🇷 South Korea | 83 | https://iptv-org.github.io/iptv/countries/kr.m3u |
| 🇸🇸 South Sudan | 1 | https://iptv-org.github.io/iptv/countries/ss.m3u |
- | 🇪🇸 Spain | 357 | https://iptv-org.github.io/iptv/countries/es.m3u |
+ | 🇪🇸 Spain | 343 | https://iptv-org.github.io/iptv/countries/es.m3u |
| 🇱🇰 Sri Lanka | 17 | https://iptv-org.github.io/iptv/countries/lk.m3u |
- | 🇧🇱 St. Barthélemy | 23 | https://iptv-org.github.io/iptv/countries/bl.m3u |
+ | 🇧🇱 St. Barthélemy | 18 | https://iptv-org.github.io/iptv/countries/bl.m3u |
| 🇸🇭 St. Helena | 1 | https://iptv-org.github.io/iptv/countries/sh.m3u |
- | 🇲🇫 St. Martin | 23 | https://iptv-org.github.io/iptv/countries/mf.m3u |
+ | 🇲🇫 St. Martin | 18 | https://iptv-org.github.io/iptv/countries/mf.m3u |
| 🇸🇩 Sudan | 47 | https://iptv-org.github.io/iptv/countries/sd.m3u |
| 🇸🇪 Sweden | 23 | https://iptv-org.github.io/iptv/countries/se.m3u |
| 🇨🇭 Switzerland | 124 | https://iptv-org.github.io/iptv/countries/ch.m3u |
@@ -390,12 +390,12 @@ Or select one of the playlists from the list below.
| 🇺🇦 Ukraine | 116 | https://iptv-org.github.io/iptv/countries/ua.m3u |
| 🇦🇪 United Arab Emirates | 88 | https://iptv-org.github.io/iptv/countries/ae.m3u |
| 🇬🇧 United Kingdom | 229 | https://iptv-org.github.io/iptv/countries/uk.m3u |
- | 🇺🇸 United States | 2266 | https://iptv-org.github.io/iptv/countries/us.m3u |
- | 🇺🇾 Uruguay | 27 | https://iptv-org.github.io/iptv/countries/uy.m3u |
+ | 🇺🇸 United States | 2269 | https://iptv-org.github.io/iptv/countries/us.m3u |
+ | 🇺🇾 Uruguay | 22 | https://iptv-org.github.io/iptv/countries/uy.m3u |
| 🇺🇿 Uzbekistan | 3 | https://iptv-org.github.io/iptv/countries/uz.m3u |
| 🇻🇺 Vanuatu | 3 | https://iptv-org.github.io/iptv/countries/vu.m3u |
| 🇻🇦 Vatican City | 5 | https://iptv-org.github.io/iptv/countries/va.m3u |
- | 🇻🇪 Venezuela | 49 | https://iptv-org.github.io/iptv/countries/ve.m3u |
+ | 🇻🇪 Venezuela | 44 | https://iptv-org.github.io/iptv/countries/ve.m3u |
| 🇻🇳 Vietnam | 71 | https://iptv-org.github.io/iptv/countries/vn.m3u |
| 🇼🇫 Wallis & Futuna | 3 | https://iptv-org.github.io/iptv/countries/wf.m3u |
| 🇪🇭 Western Sahara | 3 | https://iptv-org.github.io/iptv/countries/eh.m3u |
diff --git a/channels/ar.m3u b/channels/ar.m3u
index 97494f417..4a3551cf5 100644
--- a/channels/ar.m3u
+++ b/channels/ar.m3u
@@ -120,3 +120,5 @@ https://wowza.telpin.com.ar:1935/telpintv/ttv.stream/playlist.m3u8
http://live-edge01.telecentro.net.ar/live/smil:trm.smil/playlist.m3u8
#EXTINF:-1 tvg-id="TVManaArgentina.ar" tvg-name="TV Maná Argentina" tvg-country="AR" tvg-language="Spanish" tvg-logo="https://i.imgur.com/GVI8kkp.jpg" group-title="Local",TV Maná Argentina (576p)
http://streamspub.manasat.com:1935/tvar/tvmanaar2/playlist.m3u8
+#EXTINF:-1 tvg-id="elnueve.ar" tvg-name="El Nueve" tvg-country="AR" tvg-language="Spanish" tvg-logo="https://www.elnueve.com.ar/wp-content/themes/elnueve-ned-theme/img/logo.png" group-title="",El Nueve
+https://cdn88.theus6tv.tk/argentina/broadcast/el-nueve.m3u8
diff --git a/channels/cl.m3u b/channels/cl.m3u
index bb2ed89fb..1c5a92181 100644
--- a/channels/cl.m3u
+++ b/channels/cl.m3u
@@ -87,9 +87,9 @@ http://server1.oklanet.cl:1935/maximavideo1/maximavideo1/playlist.m3u8
https://unlimited1-cl.dps.live/radioztv/radioztv.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RadioZetaTV.cl" tvg-name="Radio Zeta TV" tvg-country="CL" tvg-language="Spanish" tvg-logo="http://ik.imagekit.io/ulangotv/image/upload/3788384_logo_radio_zeta.png" group-title="",Radio Zeta TV (480p) [Not 24/7]
https://unlimited1-us.dps.live/radioztv/radioztv.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="RetroPlus2HD.cl" tvg-name="Retro Plus 2 HD" tvg-country="CL" tvg-language="" tvg-logo="https://i.imgur.com/i0rZsgG.png" group-title="Music",Retro Plus 2 HD (720p)
+#EXTINF:-1 tvg-id="RetroPlus2HD.cl" tvg-name="Retro Plus 2 HD" tvg-country="CL;PE" tvg-language="" tvg-logo="https://i.imgur.com/i0rZsgG.png" group-title="Music",Retro Plus 2 HD (720p)
https://59f1cbe63db89.streamlock.net:1443/retroplussenal2/retroplussenal2/playlist.m3u8
-#EXTINF:-1 tvg-id="RetroPlusHD.cl" tvg-name="Retro Plus HD" tvg-country="CL" tvg-language="" tvg-logo="https://i.imgur.com/i0rZsgG.png" group-title="Music",Retro Plus HD (720p)
+#EXTINF:-1 tvg-id="RetroPlusHD.cl" tvg-name="Retro Plus HD" tvg-country="CL;PE" tvg-language="" tvg-logo="https://i.imgur.com/i0rZsgG.png" group-title="Music",Retro Plus HD (720p)
https://59f1cbe63db89.streamlock.net:1443/retroplustv/retroplustv/playlist.m3u8
#EXTINF:-1 tvg-id="RewindHD.cl" tvg-name="Rewind HD" tvg-country="CL" tvg-language="" tvg-logo="https://i.imgur.com/Ni2jlBi.png" group-title="Music",Rewind HD (720p) [Not 24/7]
https://tls.cdnz.cl/rewindtv/rewindtv/playlist.m3u8
diff --git a/channels/cn.m3u b/channels/cn.m3u
index 62d883533..35593a4ed 100644
--- a/channels/cn.m3u
+++ b/channels/cn.m3u
@@ -1,14 +1,30 @@
#EXTM3U
-#EXTINF:-1 tvg-id="ATVAsiaYaZhouDianShiTai.cn" tvg-name="ATV Asia (亞洲電視台)" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://www.hkatv.com/images/logo.png" group-title="",ATV Asia (亞洲電視台)
-https://15813114727637862976168173814320.live.prod.hkatv.com/a1_cbr_hi_1080p.m3u8
-#EXTINF:-1 tvg-id="BlueMeiJuPinDao.cn" tvg-name="Blue 美剧频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/BLUE.png" group-title="",Blue 美剧频道
-http://210.210.155.35:80/session/676c25ba-724e-11e9-834b-8ac28bf32f5a/dr9445/h/h16/02.m3u8
+#EXTINF:-1 tvg-id="BlueMeiJuPinDao.cn" tvg-name="Blue 美剧频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/BLUE.png" group-title="",Blue 美剧频道 [Geo-blocked]
+http://210.210.155.35:80/dr9445/h/h16/02.m3u8
+#EXTINF:-1 tvg-id="BTVWeiShi.cn" tvg-name="BTV卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV卫视HD
+http://ivi.bupt.edu.cn/hls/btv1hd.m3u8
+#EXTINF:-1 tvg-id="BTVYingShi.cn" tvg-name="BTV影视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV影视 [Not 24/7]
+http://ivi.bupt.edu.cn/hls/btv4.m3u8
+#EXTINF:-1 tvg-id="BTVWenYi.cn" tvg-name="BTV文艺" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV文艺 [Not 24/7]
+http://ivi.bupt.edu.cn/hls/btv2.m3u8
+#EXTINF:-1 tvg-id="BTVWenYi.cn" tvg-name="BTV文艺" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV文艺HD
+http://ivi.bupt.edu.cn/hls/btv2hd.m3u8
+#EXTINF:-1 tvg-id="BTVXinWen.cn" tvg-name="BTV新闻" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV新闻
+http://ivi.bupt.edu.cn/hls/btv9.m3u8
+#EXTINF:-1 tvg-id="BTVShengHuo.cn" tvg-name="BTV生活" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV生活 [Not 24/7]
+http://ivi.bupt.edu.cn/hls/btv7.m3u8
+#EXTINF:-1 tvg-id="BTVKeJiao.cn" tvg-name="BTV科教" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV科教 [Not 24/7]
+http://ivi.bupt.edu.cn/hls/btv3.m3u8
+#EXTINF:-1 tvg-id="BTVJiShi.cn" tvg-name="BTV纪实" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",BTV纪实HD
+http://ivi.bupt.edu.cn/hls/btv11hd.m3u8
#EXTINF:-1 tvg-id="CCTV3.cn" tvg-name="CCTV 3" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://i.imgur.com/HqScjKW.jpg" group-title="",CCTV 3
http://183.207.249.14/PLTV/3/224/3221225588/index.m3u8
#EXTINF:-1 tvg-id="CCTV4.cn" tvg-name="CCTV 4" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://i.imgur.com/l8PQ7fy.jpg" group-title="",CCTV 4
https://cctvcnch5ca.v.wscdns.com/live/cctveurope_2/index.m3u8
-#EXTINF:-1 tvg-id="CCTVPLUSLD.cn" tvg-name="CCTV PLUS LD" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CCTV PLUS LD (360p)
-http://cd-live-stream.news.cctvplus.com/live/CHANNEL1_360p/playlist.m3u8
+#EXTINF:-1 tvg-id="CCTVPLUS.cn" tvg-name="CCTV PLUS" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CCTV PLUS Channel 1 (720p)
+https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL1.smil/playlist.m3u8
+#EXTINF:-1 tvg-id="CCTVPLUS.cn" tvg-name="CCTV PLUS" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CCTV PLUS Channel 2 (720p)
+https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL2.smil/playlist.m3u8
#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV-1" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CCTV-1
http://223.110.245.159/ott.js.chinamobile.com/PLTV/3/224/3221225852/index.m3u8
#EXTINF:-1 tvg-id="CCTV10.cn" tvg-name="CCTV-10" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CCTV-10
@@ -37,137 +53,121 @@ http://223.110.243.171/PLTV/3/224/3221227204/index.m3u8
http://223.82.250.72/live/cctv-9/1.m3u8
#EXTINF:-1 tvg-id="CCTVNuXingShiShang.cn" tvg-name="CCTV-女性时尚" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CCTV-女性时尚
http://223.110.245.153/ott.js.chinamobile.com/PLTV/3/224/3221227026/index.m3u8
-#EXTINF:-1 tvg-id="1" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
+#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
http://117.148.187.37/PLTV/88888888/224/3221226154/index.m3u8
-#EXTINF:-1 tvg-id="1" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
+#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
http://117.169.120.140:8080/live/cctv-1/.m3u8
-#EXTINF:-1 tvg-id="1" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
+#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
http://121.31.30.90:8085/ysten-business/live/cctv-1/1.m3u8
-#EXTINF:-1 tvg-id="1" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
+#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
http://125.210.152.10:8060/live/CCTV1HD_H265.m3u8
-#EXTINF:-1 tvg-id="1" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
+#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/6/65/CCTV-1_Logo.png" group-title="General",CCTV中国中央电视台-1 综合
http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
-#EXTINF:-1 tvg-id="11" tvg-name="CCTV10" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/fd/CCTV-10_Logo.png" group-title="Education",CCTV中国中央电视台-10 科教
+#EXTINF:-1 tvg-id="CCTV10.cn" tvg-name="CCTV10" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/fd/CCTV-10_Logo.png" group-title="Education",CCTV中国中央电视台-10 科教
http://117.169.120.140:8080/live/cctv-10/.m3u8
-#EXTINF:-1 tvg-id="11" tvg-name="CCTV10" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/fd/CCTV-10_Logo.png" group-title="Education",CCTV中国中央电视台-10 科教
+#EXTINF:-1 tvg-id="CCTV10.cn" tvg-name="CCTV10" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/fd/CCTV-10_Logo.png" group-title="Education",CCTV中国中央电视台-10 科教
http://121.31.30.90:8085/ysten-business/live/cctv-10/yst.m3u8
-#EXTINF:-1 tvg-id="12" tvg-name="CCTV11" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/9c/CCTV-11_Logo.png" group-title="",CCTV中国中央电视台-11 戏曲
+#EXTINF:-1 tvg-id="CCTV11.cn" tvg-name="CCTV11" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/9c/CCTV-11_Logo.png" group-title="",CCTV中国中央电视台-11 戏曲
http://117.148.187.37/PLTV/88888888/224/3221226219/index.m3u8
-#EXTINF:-1 tvg-id="12" tvg-name="CCTV11" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/9c/CCTV-11_Logo.png" group-title="",CCTV中国中央电视台-11 戏曲
+#EXTINF:-1 tvg-id="CCTV11.cn" tvg-name="CCTV11" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/9c/CCTV-11_Logo.png" group-title="",CCTV中国中央电视台-11 戏曲
http://117.169.120.140:8080/live/cctv-11/.m3u8
-#EXTINF:-1 tvg-id="12" tvg-name="CCTV11" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/9c/CCTV-11_Logo.png" group-title="",CCTV中国中央电视台-11 戏曲
+#EXTINF:-1 tvg-id="CCTV11.cn" tvg-name="CCTV11" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/9c/CCTV-11_Logo.png" group-title="",CCTV中国中央电视台-11 戏曲
http://121.31.30.90:8085/ysten-business/live/cctv-11/1.m3u8
-#EXTINF:-1 tvg-id="13" tvg-name="CCTV12" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/7/71/CCTV-12_Logo.png" group-title="",CCTV中国中央电视台-12 社会与法制
+#EXTINF:-1 tvg-id="CCTV12.cn" tvg-name="CCTV12" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/7/71/CCTV-12_Logo.png" group-title="",CCTV中国中央电视台-12 社会与法制
http://117.148.187.37/PLTV/88888888/224/3221226167/index.m3u8
-#EXTINF:-1 tvg-id="13" tvg-name="CCTV12" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/7/71/CCTV-12_Logo.png" group-title="",CCTV中国中央电视台-12 社会与法制
+#EXTINF:-1 tvg-id="CCTV12.cn" tvg-name="CCTV12" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/7/71/CCTV-12_Logo.png" group-title="",CCTV中国中央电视台-12 社会与法制
http://121.31.30.90:8085/ysten-business/live/cctv-12/1.m3u8
-#EXTINF:-1 tvg-id="14" tvg-name="CCTV13" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0b/CCTV-13_Logo.png" group-title="News",CCTV中国中央电视台-13 新闻
+#EXTINF:-1 tvg-id="CCTV13.cn" tvg-name="CCTV13" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0b/CCTV-13_Logo.png" group-title="News",CCTV中国中央电视台-13 新闻
http://117.148.187.37/PLTV/88888888/224/3221226193/index.m3u8
-#EXTINF:-1 tvg-id="14" tvg-name="CCTV13" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0b/CCTV-13_Logo.png" group-title="News",CCTV中国中央电视台-13 新闻
+#EXTINF:-1 tvg-id="CCTV13.cn" tvg-name="CCTV13" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0b/CCTV-13_Logo.png" group-title="News",CCTV中国中央电视台-13 新闻
http://117.169.120.140:8080/live/cctv-13/.m3u8
-#EXTINF:-1 tvg-id="14" tvg-name="CCTV13" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0b/CCTV-13_Logo.png" group-title="News",CCTV中国中央电视台-13 新闻
+#EXTINF:-1 tvg-id="CCTV13.cn" tvg-name="CCTV13" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0b/CCTV-13_Logo.png" group-title="News",CCTV中国中央电视台-13 新闻
http://121.31.30.90:8085/ysten-business/live/cctv-13/1.m3u8
-#EXTINF:-1 tvg-id="15" tvg-name="CCTV14" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/c/c8/CCTV-14_Logo.png" group-title="Kids",CCTV中国中央电视台-14 少儿
+#EXTINF:-1 tvg-id="CCTV14.cn" tvg-name="CCTV14" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/c/c8/CCTV-14_Logo.png" group-title="Kids",CCTV中国中央电视台-14 少儿
http://117.148.187.37/PLTV/88888888/224/3221226126/index.m3u8
-#EXTINF:-1 tvg-id="15" tvg-name="CCTV14" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/c/c8/CCTV-14_Logo.png" group-title="Kids",CCTV中国中央电视台-14 少儿
+#EXTINF:-1 tvg-id="CCTV14.cn" tvg-name="CCTV14" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/c/c8/CCTV-14_Logo.png" group-title="Kids",CCTV中国中央电视台-14 少儿
http://117.148.187.37/PLTV/88888888/224/3221226565/index.m3u8
-#EXTINF:-1 tvg-id="15" tvg-name="CCTV14" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/c/c8/CCTV-14_Logo.png" group-title="Kids",CCTV中国中央电视台-14 少儿
+#EXTINF:-1 tvg-id="CCTV14.cn" tvg-name="CCTV14" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/c/c8/CCTV-14_Logo.png" group-title="Kids",CCTV中国中央电视台-14 少儿
http://121.31.30.90:8085/ysten-business/live/cctv-14/1.m3u8
-#EXTINF:-1 tvg-id="16" tvg-name="CCTV15" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f8/CCTV-15_Logo.png" group-title="Music",CCTV中国中央电视台-15 音乐
+#EXTINF:-1 tvg-id="CCTV15.cn" tvg-name="CCTV15" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f8/CCTV-15_Logo.png" group-title="Music",CCTV中国中央电视台-15 音乐
http://121.31.30.90:8085/ysten-business/live/cctv-15/1.m3u8
-#EXTINF:-1 tvg-id="2" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
+#EXTINF:-1 tvg-id="CCTV2.cn" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
http://117.148.187.37/PLTV/88888888/224/3221226138/index.m3u8
-#EXTINF:-1 tvg-id="2" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
+#EXTINF:-1 tvg-id="CCTV2.cn" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
http://117.169.120.140:8080/live/cctv-2/.m3u8
-#EXTINF:-1 tvg-id="2" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
+#EXTINF:-1 tvg-id="CCTV2.cn" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
http://121.31.30.90:8085/ysten-business/live/cctv-2/1.m3u8
-#EXTINF:-1 tvg-id="2" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
+#EXTINF:-1 tvg-id="CCTV2.cn" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
http://121.31.30.90:8085/ysten-business/live/cctv-2/yst.m3u8
-#EXTINF:-1 tvg-id="2" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
+#EXTINF:-1 tvg-id="CCTV2.cn" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
http://125.210.152.10:8060/live/CCTV2HD_H265.m3u8
-#EXTINF:-1 tvg-id="2" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
+#EXTINF:-1 tvg-id="CCTV2.cn" tvg-name="CCTV2" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/3/34/CCTV-2_Logo.svg/800px-CCTV-2_Logo.svg.png" group-title="",CCTV中国中央电视台-2 财经
http://ivi.bupt.edu.cn/hls/cctv2.m3u8
-#EXTINF:-1 tvg-id="3" tvg-name="CCTV3" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/34/CCTV-3_Logo.png" group-title="Entertainment",CCTV中国中央电视台-3 综艺
+#EXTINF:-1 tvg-id="CCTV3.cn" tvg-name="CCTV3" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/34/CCTV-3_Logo.png" group-title="Entertainment",CCTV中国中央电视台-3 综艺
http://117.169.120.140:8080/live/cctv-3/.m3u8
-#EXTINF:-1 tvg-id="3" tvg-name="CCTV3" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/34/CCTV-3_Logo.png" group-title="Entertainment",CCTV中国中央电视台-3 综艺
+#EXTINF:-1 tvg-id="CCTV3.cn" tvg-name="CCTV3" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/34/CCTV-3_Logo.png" group-title="Entertainment",CCTV中国中央电视台-3 综艺
http://121.31.30.90:8085/ysten-business/live/cctv-3/1.m3u8
-#EXTINF:-1 tvg-id="3" tvg-name="CCTV3" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/34/CCTV-3_Logo.png" group-title="Entertainment",CCTV中国中央电视台-3 综艺
+#EXTINF:-1 tvg-id="CCTV3.cn" tvg-name="CCTV3" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/34/CCTV-3_Logo.png" group-title="Entertainment",CCTV中国中央电视台-3 综艺
http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
-#EXTINF:-1 tvg-id="4" tvg-name="CCTV4" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/0/07/CCTV-4_Logo.svg/800px-CCTV-4_Logo.svg.png" group-title="General",CCTV中国中央电视台-4 中文国际
+#EXTINF:-1 tvg-id="CCTV4.cn" tvg-name="CCTV4" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/0/07/CCTV-4_Logo.svg/800px-CCTV-4_Logo.svg.png" group-title="General",CCTV中国中央电视台-4 中文国际
http://117.148.187.37/PLTV/88888888/224/3221226171/index.m3u8
-#EXTINF:-1 tvg-id="4" tvg-name="CCTV4" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/0/07/CCTV-4_Logo.svg/800px-CCTV-4_Logo.svg.png" group-title="General",CCTV中国中央电视台-4 中文国际
+#EXTINF:-1 tvg-id="CCTV4.cn" tvg-name="CCTV4" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/0/07/CCTV-4_Logo.svg/800px-CCTV-4_Logo.svg.png" group-title="General",CCTV中国中央电视台-4 中文国际
http://117.169.120.140:8080/live/cctv-4/.m3u8
-#EXTINF:-1 tvg-id="4" tvg-name="CCTV4" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/0/07/CCTV-4_Logo.svg/800px-CCTV-4_Logo.svg.png" group-title="General",CCTV中国中央电视台-4 中文国际
+#EXTINF:-1 tvg-id="CCTV4.cn" tvg-name="CCTV4" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/thumb/0/07/CCTV-4_Logo.svg/800px-CCTV-4_Logo.svg.png" group-title="General",CCTV中国中央电视台-4 中文国际
http://121.31.30.90:8085/ysten-business/live/cctv-4/1.m3u8
-#EXTINF:-1 tvg-id="5" tvg-name="CCTV5" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/33/CCTV-5_Logo.png" group-title="Sports",CCTV中国中央电视台-5 体育
+#EXTINF:-1 tvg-id="CCTV5.cn" tvg-name="CCTV5" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/33/CCTV-5_Logo.png" group-title="Sports",CCTV中国中央电视台-5 体育
http://117.148.187.37/PLTV/88888888/224/3221226400/index.m3u8
-#EXTINF:-1 tvg-id="5" tvg-name="CCTV5" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/33/CCTV-5_Logo.png" group-title="Sports",CCTV中国中央电视台-5 体育
+#EXTINF:-1 tvg-id="CCTV5.cn" tvg-name="CCTV5" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/3/33/CCTV-5_Logo.png" group-title="Sports",CCTV中国中央电视台-5 体育
http://121.31.30.90:8085/ysten-business/live/cctv-5/yst.m3u8
-#EXTINF:-1 tvg-id="6" tvg-name="CCTV5+" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/90/CCTV-5%2B_Logo.png" group-title="Sports",CCTV中国中央电视台-5+ 体育赛事
+#EXTINF:-1 tvg-id="CCTV5.cn" tvg-name="CCTV5+" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/90/CCTV-5%2B_Logo.png" group-title="Sports",CCTV中国中央电视台-5+ 体育赛事
http://121.31.30.90:8085/ysten-business/live/hdcctv05plus/yst.m3u8
-#EXTINF:-1 tvg-id="6" tvg-name="CCTV5+" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/90/CCTV-5%2B_Logo.png" group-title="Sports",CCTV中国中央电视台-5+ 体育赛事
+#EXTINF:-1 tvg-id="CCTV5Plus.cn" tvg-name="CCTV5+" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/9/90/CCTV-5%2B_Logo.png" group-title="Sports",CCTV中国中央电视台-5+ 体育赛事
http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
-#EXTINF:-1 tvg-id="7" tvg-name="CCTV6" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0c/CCTV-6_Logo.png" group-title="Movies",CCTV中国中央电视台-6 电影
+#EXTINF:-1 tvg-id="CCTV6.cn" tvg-name="CCTV6" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0c/CCTV-6_Logo.png" group-title="Movies",CCTV中国中央电视台-6 电影
http://117.169.120.140:8080/live/cctv-6/.m3u8
-#EXTINF:-1 tvg-id="7" tvg-name="CCTV6" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0c/CCTV-6_Logo.png" group-title="Movies",CCTV中国中央电视台-6 电影
+#EXTINF:-1 tvg-id="CCTV6.cn" tvg-name="CCTV6" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0c/CCTV-6_Logo.png" group-title="Movies",CCTV中国中央电视台-6 电影
http://121.31.30.90:8085/ysten-business/live/cctv-6/1.m3u8
-#EXTINF:-1 tvg-id="7" tvg-name="CCTV6" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0c/CCTV-6_Logo.png" group-title="Movies",CCTV中国中央电视台-6 电影
+#EXTINF:-1 tvg-id="CCTV6.cn" tvg-name="CCTV6" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/0/0c/CCTV-6_Logo.png" group-title="Movies",CCTV中国中央电视台-6 电影
http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8
-#EXTINF:-1 tvg-id="8" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
+#EXTINF:-1 tvg-id="CCTV7.cn" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
http://117.148.187.37/PLTV/88888888/224/3221226122/index.m3u8
-#EXTINF:-1 tvg-id="8" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
+#EXTINF:-1 tvg-id="CCTV7.cn" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
http://117.148.187.37/PLTV/88888888/224/3221226470/index.m3u8
-#EXTINF:-1 tvg-id="8" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
+#EXTINF:-1 tvg-id="CCTV7.cn" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
http://117.169.120.140:8080/live/cctv-7/.m3u8
-#EXTINF:-1 tvg-id="8" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
+#EXTINF:-1 tvg-id="CCTV7.cn" tvg-name="CCTV7" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/f/f0/CCTV-7_Logo.png" group-title="",CCTV中国中央电视台-7 国防军事
http://121.31.30.90:8085/ysten-business/live/cctv-7/1.m3u8
-#EXTINF:-1 tvg-id="9" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
+#EXTINF:-1 tvg-id="CCTV8.cn" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
http://117.148.187.37/PLTV/88888888/224/3221226493/index.m3u8
-#EXTINF:-1 tvg-id="9" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
+#EXTINF:-1 tvg-id="CCTV8.cn" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
http://117.169.120.140:8080/live/cctv-8/.m3u8
-#EXTINF:-1 tvg-id="9" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
+#EXTINF:-1 tvg-id="CCTV8.cn" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
http://121.31.30.90:8085/ysten-business/live/cctv-8/1.m3u8
-#EXTINF:-1 tvg-id="9" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
+#EXTINF:-1 tvg-id="CCTV8.cn" tvg-name="CCTV8" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/4/49/CCTV-8_Logo.png" group-title="",CCTV中国中央电视台-8 电视剧
http://ivi.bupt.edu.cn/hls/cctv8hd.m3u8
-#EXTINF:-1 tvg-id="10" tvg-name="CCTV9" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/1/11/CCTV-9_Logo.png" group-title="Documentary",CCTV中国中央电视台-9 纪录
+#EXTINF:-1 tvg-id="CCTV9.cn" tvg-name="CCTV9" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/1/11/CCTV-9_Logo.png" group-title="Documentary",CCTV中国中央电视台-9 纪录
http://117.148.187.37/PLTV/88888888/224/3221226156/index.m3u8
-#EXTINF:-1 tvg-id="CGTN.cn" tvg-name="CGTN" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://i.imgur.com/6rlt5Ph.png" group-title="",CGTN
-http://live.cgtn.com/500/prog_index.m3u8
-#EXTINF:-1 tvg-id="CGTN.cn" tvg-name="CGTN" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CGTN (432p)
-https://dai.google.com/linear/hls/event/r4sa-f6GSN2XIvzKv5jVng/master.m3u8
-#EXTINF:-1 tvg-id="18" tvg-name="CGTN" tvg-country="CN" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/CGTN.svg/800px-CGTN.svg.png" group-title="News",CGTN (720p)
-https://news.cgtn.com/resource/live/english/cgtn-news.m3u8
-#EXTINF:-1 tvg-id="CGTN.cn" tvg-name="CGTN" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CGTN (720p)
-https://news.cgtn.com/resource/live/espanol/cgtn-e.m3u8
-#EXTINF:-1 tvg-id="CGTN1.cn" tvg-name="CGTN 1" tvg-country="CN" tvg-language="Spanish" tvg-logo="https://astrocontent.s3.amazonaws.com/Images/ChannelLogo/Pos/509_300.png" group-title="",CGTN 1
-https://livees.cgtn.com/1000e/prog_index.m3u8
-#EXTINF:-1 tvg-id="CGTNArabic.cn" tvg-name="CGTN Arabic" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",CGTN Arabic
-http://livear.cgtn.com/1000a/prog_index.m3u8
-#EXTINF:-1 tvg-id="CGTNArabic.cn" tvg-name="CGTN Arabic" tvg-country="CN" tvg-language="Arabic" tvg-logo="https://ui.cgtn.com/static/resource/images/icon_new/live/live_AR.png" group-title="",CGTN Arabic (720p)
-https://news.cgtn.com/resource/live/arabic/cgtn-a.m3u8
-#EXTINF:-1 tvg-id="472" tvg-name="CGTNDocumentary" tvg-country="CN" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/d/d6/CGTN_Documentary_logo.png" group-title="Documentary",CGTN Documentary
+#EXTINF:-1 tvg-id="CCTV9.cn" tvg-name="CCTV9" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/1/11/CCTV-9_Logo.png" group-title="Documentary",CCTV中国中央电视台-9 纪录
http://121.31.30.90:8085/ysten-business/live/cctv-9/yst.m3u8
-#EXTINF:-1 tvg-id="CGTNDocumentary.cn" tvg-name="CGTN Documentary" tvg-country="CN" tvg-language="" tvg-logo="" group-title="Documentary",CGTN Documentary
-https://livedoc.cgtn.com/500d/prog_index.m3u8
-#EXTINF:-1 tvg-id="CGTNDocumentaryEN.cn" tvg-name="CGTN Documentary EN" tvg-country="CN" tvg-language="" tvg-logo="" group-title="Documentary",CGTN Documentary EN (720p)
+#EXTINF:-1 tvg-id="CGTNArabic.cn" tvg-name="CGTN Arabic" tvg-country="CN" tvg-language="Arabic" tvg-logo="https://ui.cgtn.com/static/resource/images/icon_new/live/live_AR.png" group-title="News",CGTN Arabic (720p)
+https://news.cgtn.com/resource/live/arabic/cgtn-a.m3u8
+#EXTINF:-1 tvg-id="CGTNDocumentary.cn" tvg-name="CGTN Documentary" tvg-country="CN" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/d/d6/CGTN_Documentary_logo.png" group-title="Documentary",CGTN Documentary (English) (720p)
https://news.cgtn.com/resource/live/document/cgtn-doc.m3u8
-#EXTINF:-1 tvg-id="CGTNDocumentaryZhongGuo.cn" tvg-name="CGTN Documentary(中国)" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://static.epg.best/au/CGTNDocu.au.png" group-title="News",CGTN Documentary(中国)
-https://livedoc.cgtn.com/1000d/prog_index.m3u8
-#EXTINF:-1 tvg-id="CGTNEspanol.cn" tvg-name="CGTN Español" tvg-country="CN;LATAM;ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/yXc4j9J.png" group-title="",CGTN Español
-http://livees.cgtn.com/500e/prog_index.m3u8
-#EXTINF:-1 tvg-id="CGTNFrance.cn" tvg-name="CGTN France" tvg-country="FR" tvg-language="French" tvg-logo="https://i.imgur.com/yXc4j9J.png" group-title="",CGTN France
-http://livefr.cgtn.com/1000f/prog_index.m3u8
+#EXTINF:-1 tvg-id="CGTNEnglish.cn" tvg-name="CGTN English" tvg-country="CN" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/CGTN.svg/800px-CGTN.svg.png" group-title="News",CGTN English (720p)
+https://dai.google.com/linear/hls/event/r4sa-f6GSN2XIvzKv5jVng/master.m3u8
+#EXTINF:-1 tvg-id="CGTNEnglish.cn" tvg-name="CGTN English" tvg-country="CN" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/CGTN.svg/800px-CGTN.svg.png" group-title="News",CGTN English (720p)
+https://news.cgtn.com/resource/live/english/cgtn-news.m3u8
+#EXTINF:-1 tvg-id="CGTNEspanol.cn" tvg-name="CGTN Español" tvg-country="CN" tvg-language="Spanish" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/CGTN.svg/800px-CGTN.svg.png" group-title="News",CGTN Español (720p)
+https://news.cgtn.com/resource/live/espanol/cgtn-e.m3u8
#EXTINF:-1 tvg-id="CGTNFrancais.cn" tvg-name="CGTN Français" tvg-country="CN" tvg-language="French" tvg-logo="" group-title="",CGTN Français (720p)
https://news.cgtn.com/resource/live/french/cgtn-f.m3u8
-#EXTINF:-1 tvg-id="CGTNZhongGuo.cn" tvg-name="CGTN(中国)" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://static.epg.best/au/CGTN.au.png" group-title="News",CGTN(中国)
-https://live.cgtn.com/1000/prog_index.m3u8
#EXTINF:-1 tvg-id="ChannelV.cn" tvg-name="Channel V" tvg-country="APAC" tvg-language="Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Channel_V_Logo.svg/1200px-Channel_V_Logo.svg.png" group-title="Music",Channel V
rtmp://ivi.bupt.edu.cn:1935/livetv/channelv
-#EXTINF:-1 tvg-id="6241" tvg-name="CHC高清电影" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://i.imgur.com/GjGiNIA.jpg" group-title="Movies",CHC高清电影
+#EXTINF:-1 tvg-id="CHCGaoQīngDianYing.cn" tvg-name="CHC高清电影" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="https://i.imgur.com/GjGiNIA.jpg" group-title="Movies",CHC高清电影
http://ivi.bupt.edu.cn/hls/chchd.m3u8
-#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",CNC中文
+#EXTINF:-1 tvg-id="CNCZhongWen.cn" tvg-name="CNC中文" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",CNC中文
http://source07.v.news.cn/live/CNC_CN/playlist.m3u8
-#EXTINF:-1 tvg-id="CCTV1.cn" tvg-name="CCTV1" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",CNC英文
+#EXTINF:-1 tvg-id="CNCZhongWen.cn" tvg-name="CNC中文" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",CNC中文
http://source07.v.news.cn/live/CNC_EN/playlist.m3u8
#EXTINF:-1 tvg-id="HunanCity.cn" tvg-name="Hunan City" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",Hunan City (576p)
http://hnsd.chinashadt.com:2036/live/stream:hunandushi.stream/playlist.m3u8
@@ -234,9 +234,9 @@ http://123.146.162.24:8013/tslslive/vWlnEzU/hls/live_sd.m3u8
#EXTINF:-1 tvg-id="WanShengXinWenZongHe.cn" tvg-name="万盛新闻综合" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",万盛新闻综合 (576p)
http://qxlmlive.cbg.cn:1935/app_2/ls_40.stream/playlist.m3u8
#EXTINF:-1 tvg-id="SanMingGongGongPinDao.cn" tvg-name="三明公共频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",三明公共频道
-http://stream.smntv.cn/smtv2/sd/live.m3u8
+http://stream.smntv.cn/smtv2/playlist.m3u8
#EXTINF:-1 tvg-id="SanMingXinWenZongHe.cn" tvg-name="三明新闻综合" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",三明新闻综合
-http://stream.smntv.cn/smtv1/sd/live.m3u8
+http://stream.smntv.cn/smtv1/playlist.m3u8
#EXTINF:-1 tvg-id="SanLiXinWen.cn" tvg-name="三立新聞" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://epg.51zmt.top:8000/tb1/gt/SETNews.png" group-title="News",三立新聞
http://seb.sason.top/sc/sllive_fhd.m3u8
#EXTINF:-1 tvg-id="ShangHaiDongFangWeiShi.cn" tvg-name="上海东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",上海东方卫视
@@ -251,27 +251,25 @@ http://l.cztvcloud.com/channels/lantian/SXshangyu1/720p.m3u8
http://l.cztvcloud.com/channels/lantian/SXshangyu3/720p.m3u8
#EXTINF:-1 tvg-id="DongXiangDianShiTai.cn" tvg-name="东乡电视台" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/zh/2/28/%E7%94%98%E8%82%83%E5%8D%AB%E8%A7%86.png" group-title="",东乡电视台
http://117.156.28.119/270000001111/1110000131/index.m3u8
-#EXTINF:-1 tvg-id="41" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
-http://121.31.30.90:8085/ysten-business/live/dongnanstv/1.m3u8
-#EXTINF:-1 tvg-id="41" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
-http://121.31.30.90:8085/ysten-business/live/dongnanstv/yst.m3u8
-#EXTINF:-1 tvg-id="41" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
-http://ivi.bupt.edu.cn/hls/dntv.m3u8
-#EXTINF:-1 tvg-id="41" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
-http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/dongnanstv/1.m3u8
-#EXTINF:-1 tvg-id="41" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视高清
+#EXTINF:-1 tvg-id="DongNanTV.cn" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
http://117.169.120.140:8080/live/dongnanstv/.m3u8
-#EXTINF:-1 tvg-id="31" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东方卫视
-http://121.31.30.90:8085/ysten-business/live/dongfangstv/1.m3u8
-#EXTINF:-1 tvg-id="31" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东方卫视
-http://121.31.30.90:8085/ysten-business/live/dongfangstv/yst.m3u8
+#EXTINF:-1 tvg-id="DongnanTV.cn" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
+http://121.31.30.90:8085/ysten-business/live/dongnanstv/1.m3u8
+#EXTINF:-1 tvg-id="DongnanTV.cn" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
+http://121.31.30.90:8085/ysten-business/live/dongnanstv/yst.m3u8
+#EXTINF:-1 tvg-id="DongnanTV.cn" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
+http://ivi.bupt.edu.cn/hls/dntv.m3u8
+#EXTINF:-1 tvg-id="DongnanTV.cn" tvg-name="东南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东南卫视
+http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/dongnanstv/1.m3u8
#EXTINF:-1 tvg-id="DongFangWeiShi.cn" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/dongfang.jpg" group-title="",东方卫视
-http://ivi.bupt.edu.cn/hls/dftv.m3u8
-#EXTINF:-1 tvg-id="31" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东方卫视FHD
+http://121.31.30.90:8085/ysten-business/live/dongfangstv/1.m3u8
+#EXTINF:-1 tvg-id="DongFangWeiShi.cn" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/dongfang.jpg" group-title="",东方卫视
+http://121.31.30.90:8085/ysten-business/live/dongfangstv/yst.m3u8
+#EXTINF:-1 tvg-id="DongFangWeiShi.cn" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/dongfang.jpg" group-title="",东方卫视 HD
http://117.148.187.37/PLTV/88888888/224/3221226142/index.m3u8
-#EXTINF:-1 tvg-id="31" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东方卫视HD
+#EXTINF:-1 tvg-id="DongFangWeiShi.cn" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/dongfang.jpg" group-title="",东方卫视 HD
http://121.31.30.90:8085/ysten-business/live/hddongfangstv/1.m3u8
-#EXTINF:-1 tvg-id="31" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东方卫视HD
+#EXTINF:-1 tvg-id="DongFangWeiShi.cn" tvg-name="东方卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/dongfang.jpg" group-title="",东方卫视 HD
http://223.82.250.72/live/hddongfangstv/1.m3u8
#EXTINF:-1 tvg-id="DongZhiYingShiPinDao.cn" tvg-name="东至影视频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",东至影视频道 (576p)
http://223.247.33.124:1935/live/yingshi/playlist.m3u8
@@ -327,15 +325,13 @@ http://111.231.194.231:85/live/lyzx.m3u8
http://111.231.194.231:85/live/lyzx_500k.m3u8
#EXTINF:-1 tvg-id="YunNanGongGong.cn" tvg-name="云南公共" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/yunnan.png" group-title="",云南公共
http://yntvpullhls.ynradio.com/live/yunnangonggong/playlist.m3u8
-#EXTINF:-1 tvg-id="58" tvg-name="云南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",云南卫视
+#EXTINF:-1 tvg-id="YunNanWeiShi.cn" tvg-name="云南卫视" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",云南卫视
http://121.31.30.90:8085/ysten-business/live/yunnanstv/1.m3u8
-#EXTINF:-1 tvg-id="58" tvg-name="云南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",云南卫视
-http://121.31.30.90:8085/ysten-business/live/yunnanstv/yst.m3u8
#EXTINF:-1 tvg-id="YunNanWeiShi.cn" tvg-name="云南卫视" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",云南卫视
http://223.110.245.157/ott.js.chinamobile.com/PLTV/3/224/3221225591/index.m3u8
-#EXTINF:-1 tvg-id="58" tvg-name="云南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",云南卫视
+#EXTINF:-1 tvg-id="YunNanWeiShi.cn" tvg-name="云南卫视" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",云南卫视
http://ivi.bupt.edu.cn/hls/yntv.m3u8
-#EXTINF:-1 tvg-id="58" tvg-name="云南卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",云南卫视
+#EXTINF:-1 tvg-id="YunNanWeiShi.cn" tvg-name="云南卫视" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",云南卫视
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/yunnanstv/1.m3u8
#EXTINF:-1 tvg-id="YunNanGuoJi.cn" tvg-name="云南国际" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/yunnan.png" group-title="",云南国际
http://yntvpullhls.ynradio.com/live/yunnanguoji/playlist.m3u8
@@ -361,16 +357,16 @@ http://220.180.110.101:8083/videos/live/39/13/o4ncrHkSp7q09/o4ncrHkSp7q09.M3U8
http://220.180.110.101:8083/videos/live/33/59/NC7XQdEveyncq/NC7XQdEveyncq.M3U8
#EXTINF:-1 tvg-id="JinRiELuoSi.cn" tvg-name="今日俄罗斯" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Russia-today-logo.svg/1200px-Russia-today-logo.svg.png" group-title="",今日俄罗斯
https://rt-news-gd.secure2.footprint.net/1103_2500Kb.m3u8
-#EXTINF:-1 tvg-id="6605" tvg-name="优优宝贝" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.wangjing.cn/upload/ypshop/1363166697e721a.jpg" group-title="",优优宝贝
+#EXTINF:-1 tvg-id="YouYouBaoBei.cn" tvg-name="优优宝贝" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.wangjing.cn/upload/ypshop/1363166697e721a.jpg" group-title="",优优宝贝
http://112.17.40.140/PLTV/88888888/224/3221226829/index.m3u8
-#EXTINF:-1 tvg-id="1046" tvg-name="优漫卡通" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",优漫卡通
+#EXTINF:-1 tvg-id="YouManKaTon.cn" tvg-name="优漫卡通" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",优漫卡通
http://121.31.30.90:8085/ysten-business/live/youmankaton/1.m3u8
-#EXTINF:-1 tvg-id="1046" tvg-name="优漫卡通" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",优漫卡通
+#EXTINF:-1 tvg-id="YouManKaTon.cn" tvg-name="优漫卡通" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",优漫卡通
http://121.31.30.90:8085/ysten-business/live/youmankaton/yst.m3u8
-#EXTINF:-1 tvg-id="1046" tvg-name="优漫卡通" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",优漫卡通
+#EXTINF:-1 tvg-id="YouManKaTon.cn" tvg-name="优漫卡通" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",优漫卡通
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/youmankaton/1.m3u8
-#EXTINF:-1 tvg-id="YouShiPinDao.cn" tvg-name="优视频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",优视频道
-http://1-fss24-s0.streamhoster.com/lv_uchannel/_definst_/broadcast1/chunklist.m3u8
+#EXTINF:-1 tvg-id="YouShiPinDao.cn" tvg-name="优视频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",优视频道 (720p)
+http://1-fss24-s0.streamhoster.com/lv_uchannel/broadcast1/playlist.m3u8
#EXTINF:-1 tvg-id="YuYaoXinWenZongHe.cn" tvg-name="余姚新闻综合" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",余姚新闻综合
http://l.cztvcloud.com/channels/lantian/SXyuyao1/720p.m3u8
#EXTINF:-1 tvg-id="QiaoXiangPinDao.cn" tvg-name="侨乡频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="qiaoxiangpingdao.png" group-title="",侨乡频道
@@ -382,27 +378,25 @@ http://121.31.30.91:8081/ysten-business/live/ljiankangyouyue/1.m3u8
#EXTINF:-1 tvg-id="GongGongNongCun.cn" tvg-name="公共农村" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",公共农村
http://219.153.252.50/PLTV/88888888/224/3221225626/chunklist.m3u8
#EXTINF:-1 tvg-id="LiuAnGongGongPinDao.cn" tvg-name="六安公共频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.china-latv.com/t/icon/201901/20190107160038YJK.png" group-title="",六安公共频道
-http://live.china-latv.com/channel2/sd/live.m3u8
+http://live.china-latv.com/channel2/playlist.m3u8
#EXTINF:-1 tvg-id="LiuAnXinWenZongHe.cn" tvg-name="六安新闻综合" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.china-latv.com/t/icon/201901/20190107160038YJK.png" group-title="",六安新闻综合
-http://live.china-latv.com/channel1/sd/live.m3u8
-#EXTINF:-1 tvg-id="61" tvg-name="兵团卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.tvyan.com/uploads/dianshi/bingtuantv.jpg" group-title="",兵团卫视
+http://live.china-latv.com/channel1/playlist.m3u8
+#EXTINF:-1 tvg-id="BingTuanWeiShi.cn" tvg-name="兵团卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.tvyan.com/uploads/dianshi/bingtuantv.jpg" group-title="",兵团卫视
http://112.17.40.140/PLTV/88888888/224/3221226186/index.m3u8
-#EXTINF:-1 tvg-id="61" tvg-name="兵团卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",兵团卫视
+#EXTINF:-1 tvg-id="BingTuanWeiShi.cn" tvg-name="兵团卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.tvyan.com/uploads/dianshi/bingtuantv.jpg" group-title="",兵团卫视
http://ivi.bupt.edu.cn/hls/bttv.m3u8
-#EXTINF:-1 tvg-id="61" tvg-name="兵团卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",兵团卫视 (360p)
+#EXTINF:-1 tvg-id="BingTuanWeiShi.cn" tvg-name="兵团卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.tvyan.com/uploads/dianshi/bingtuantv.jpg" group-title="",兵团卫视 (360p)
http://v.btzx.com.cn:1935/live/weishi.stream/playlist.m3u8
-#EXTINF:-1 tvg-id="BingTuanJianShe.cn" tvg-name="兵团建设" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",兵团建设 (360p)
+#EXTINF:-1 tvg-id="BingTuanJianShe.cn" tvg-name="兵团建设" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.tvyan.com/uploads/dianshi/bingtuantv.jpg" group-title="",兵团建设 News (360p)
http://v.btzx.com.cn:1935/live/news.stream/playlist.m3u8
-#EXTINF:-1 tvg-id="52" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",内蒙古卫视
+#EXTINF:-1 tvg-id="NeiMengGuWeiShi.cn" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/neimeng.png" group-title="",内蒙古卫视
http://117.169.120.140:8080/live/neimenggustv/.m3u8
-#EXTINF:-1 tvg-id="52" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",内蒙古卫视
-http://121.31.30.90:8085/ysten-business/live/neimenggustv/1.m3u8
-#EXTINF:-1 tvg-id="52" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",内蒙古卫视
-http://121.31.30.90:8085/ysten-business/live/neimenggustv/yst.m3u8
#EXTINF:-1 tvg-id="NeiMengGuWeiShi.cn" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/neimeng.png" group-title="",内蒙古卫视
http://live.m2oplus.nmtv.cn/1/playlist.m3u8
-#EXTINF:-1 tvg-id="NeiMengGuWeiShi.cn" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",内蒙古卫视
+#EXTINF:-1 tvg-id="NeiMengGuWeiShi.cn" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/neimeng.png" group-title="",内蒙古卫视
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/neimenggustv/1.m3u8
+#EXTINF:-1 tvg-id="NeiMengGuWeiShi.cn" tvg-name="内蒙古卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/neimeng.png" group-title="",内蒙古卫视
+http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/neimenggustv/yst.m3u8
#EXTINF:-1 tvg-id="MianNingDianShiTai.cn" tvg-name="冕宁电视台" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://www.sichuanmianning.com/images/mianlin_tv/img/logo.png" group-title="",冕宁电视台
http://live.sichuanmianning.com/live/xwpd.m3u8
#EXTINF:-1 tvg-id="JunShiPingLun.cn" tvg-name="军事评论" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/new13.png" group-title="",军事评论
@@ -449,30 +443,14 @@ http://121.31.30.90:8085/ysten-business/live/beijingstv/1.m3u8
http://121.31.30.90:8085/ysten-business/live/beijingstv/yst.m3u8
#EXTINF:-1 tvg-id="BeiJingWeiShi.cn" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/bjbtv.jpg" group-title="",北京卫视 [Not 24/7]
http://ivi.bupt.edu.cn/hls/btv1.m3u8
-#EXTINF:-1 tvg-id="30" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京卫视
+#EXTINF:-1 tvg-id="BeiJingWeiShi.cn" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/bjbtv.jpg" group-title="",北京卫视
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/beijingstv/1.m3u8
-#EXTINF:-1 tvg-id="30" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京卫视HD
+#EXTINF:-1 tvg-id="BeiJingWeiShi.cn" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/bjbtv.jpg" group-title="",北京卫视HD
http://121.31.30.90:8085/ysten-business/live/hdbeijingstv/1.m3u8
-#EXTINF:-1 tvg-id="30" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京卫视HD
+#EXTINF:-1 tvg-id="BeiJingWeiShi.cn" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/bjbtv.jpg" group-title="",北京卫视HD
http://121.31.30.90:8085/ysten-business/live/hdbeijingstv/yst.m3u8
-#EXTINF:-1 tvg-id="30" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京卫视HD
+#EXTINF:-1 tvg-id="BeiJingWeiShi.cn" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/bjbtv.jpg" group-title="",北京卫视HD
http://223.82.250.72/live/hdbeijingstv/1.m3u8
-#EXTINF:-1 tvg-id="30" tvg-name="北京卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京卫视HD
-http://ivi.bupt.edu.cn/hls/btv1hd.m3u8
-#EXTINF:-1 tvg-id="BTVYingShi.cn" tvg-name="BTV影视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京影视 [Not 24/7]
-http://ivi.bupt.edu.cn/hls/btv4.m3u8
-#EXTINF:-1 tvg-id="BTVWenYi.cn" tvg-name="BTV文艺" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京文艺 [Not 24/7]
-http://ivi.bupt.edu.cn/hls/btv2.m3u8
-#EXTINF:-1 tvg-id="BTVWenYi.cn" tvg-name="BTV文艺" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京文艺HD
-http://ivi.bupt.edu.cn/hls/btv2hd.m3u8
-#EXTINF:-1 tvg-id="BTVXinWen.cn" tvg-name="BTV新闻" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京新闻
-http://ivi.bupt.edu.cn/hls/btv9.m3u8
-#EXTINF:-1 tvg-id="BTVShengHuo.cn" tvg-name="BTV生活" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京生活 [Not 24/7]
-http://ivi.bupt.edu.cn/hls/btv7.m3u8
-#EXTINF:-1 tvg-id="BTVKeJiao.cn" tvg-name="BTV科教" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京科教 [Not 24/7]
-http://ivi.bupt.edu.cn/hls/btv3.m3u8
-#EXTINF:-1 tvg-id="1872" tvg-name="北京纪实" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京纪实
-http://ivi.bupt.edu.cn/hls/btv11hd.m3u8
#EXTINF:-1 tvg-id="BTVCaiJing.cn" tvg-name="BTV财经" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京财经 [Not 24/7]
http://ivi.bupt.edu.cn/hls/btv5.m3u8
#EXTINF:-1 tvg-id="BTVQingNian.cn" tvg-name="BTV青年" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",北京青年 [Not 24/7]
@@ -549,15 +527,15 @@ http://stream1.jlntv.cn/xcpd/sd/live.m3u8
http://stream1.jlntv.cn/ggpd/sd/live.m3u8
#EXTINF:-1 tvg-id="JiLinGongGongXinWen.cn" tvg-name="吉林公共新闻" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林公共新闻
http://stream1.jlntv.cn/ggpd/sd/live.m3u8?_upt=b95938311531576098
-#EXTINF:-1 tvg-id="51" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林卫视
+#EXTINF:-1 tvg-id="JiLinWeiShi.cn" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林卫视
http://121.31.30.90:8085/ysten-business/live/jilinstv/1.m3u8
-#EXTINF:-1 tvg-id="51" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林卫视
+#EXTINF:-1 tvg-id="JiLinWeiShi.cn" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林卫视
http://121.31.30.90:8085/ysten-business/live/jilinstv/yst.m3u8
#EXTINF:-1 tvg-id="JiLinWeiShi.cn" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201511/20/564ebec005f68.png" group-title="",吉林卫视
http://ivi.bupt.edu.cn/hls/jltv.m3u8
#EXTINF:-1 tvg-id="JiLinWeiShi.cn" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/jilin.png" group-title="",吉林卫视
http://stream4.jlntv.cn/test2/sd/live.m3u8
-#EXTINF:-1 tvg-id="51" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林卫视高清
+#EXTINF:-1 tvg-id="JiLinWeiShi.cn" tvg-name="吉林卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林卫视高清
http://117.169.120.140:8080/live/jilinstv/.m3u8
#EXTINF:-1 tvg-id="JiLinShanCun.cn" tvg-name="吉林山村" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",吉林山村
http://stream1.jlntv.cn/xcpd/sd/live.m3u8?_upt=ed8b01841531576074
@@ -599,15 +577,15 @@ http://149.129.100.78/guangdong.php?id=66
http://112.17.40.140/PLTV/88888888/224/3221226358/index.m3u8
#EXTINF:-1 tvg-id="SCTV9.cn" tvg-name="SCTV9" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/sheng/sctv9.png" group-title="",四川公共乡村 (720p)
http://scgctvshow.sctv.com/hdlive/sctv9/index.m3u8
-#EXTINF:-1 tvg-id="56" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
+#EXTINF:-1 tvg-id="SiChuanWeiShi.cn" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
http://121.31.30.90:8085/ysten-business/live/sichuanstv/1.m3u8
-#EXTINF:-1 tvg-id="56" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
+#EXTINF:-1 tvg-id="SiChuanWeiShi.cn" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
http://121.31.30.90:8085/ysten-business/live/sichuanstv/yst.m3u8
-#EXTINF:-1 tvg-id="56" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
+#EXTINF:-1 tvg-id="SiChuanWeiShi.cn" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
http://223.82.250.72/live/sichuanstv/1.m3u8
#EXTINF:-1 tvg-id="SiChuanWeiShi.cn" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201511/20/564ebb7c2f272.png" group-title="",四川卫视
http://ivi.bupt.edu.cn/hls/sctv.m3u8
-#EXTINF:-1 tvg-id="56" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
+#EXTINF:-1 tvg-id="SiChuanWeiShi.cn" tvg-name="四川卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四川卫视
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/sichuanstv/1.m3u8
#EXTINF:-1 tvg-id="SCTV7.cn" tvg-name="SCTV7" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/sheng/sctv7.png" group-title="",四川妇女儿童 (720p)
http://scgctvshow.sctv.com/hdlive/sctv7/index.m3u8
@@ -617,13 +595,13 @@ http://scgctvshow.sctv.com/hdlive/sctv5/index.m3u8
http://scgctvshow.sctv.com/hdlive/sctv2/index.m3u8
#EXTINF:-1 tvg-id="SCTV4.cn" tvg-name="SCTV4" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/sheng/sctv4.png" group-title="",四川新闻 (720p)
http://scgctvshow.sctv.com/hdlive/sctv4/index.m3u8
-#EXTINF:-1 tvg-id="SiChuanXingKongGouWu.cn" tvg-name="四川星空购物" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/sheng/sctv6.png" group-title="",四川星空购物 (720p)
+#EXTINF:-1 tvg-id="SCTV6.cn" tvg-name="SCTV6" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/sheng/sctv6.png" group-title="",四川星空购物 (720p)
http://scgctvshow.sctv.com/hdlive/sctv6/index.m3u8
#EXTINF:-1 tvg-id="SCTV3.cn" tvg-name="SCTV3" tvg-country="CN" tvg-language="" tvg-logo="http://epg.51zmt.top:8000/tb1/sheng/sctv3.png" group-title="",四川经济 (720p)
http://scgctvshow.sctv.com/hdlive/sctv3/index.m3u8
#EXTINF:-1 tvg-id="SiPingXinWenZongHe.cn" tvg-name="四平新闻综合" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",四平新闻综合
http://stream2.jlntv.cn/sptv/sd/live.m3u8
-#EXTINF:-1 tvg-id="6606" tvg-name="四海钓鱼" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://p2.diaoyu.com/M01/15/16/CgAAilUJTaOAWJnRAAA2KD1DMWU213.png" group-title="",四海钓鱼
+#EXTINF:-1 tvg-id="SiHaiDiaoYu.cn" tvg-name="四海钓鱼" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://p2.diaoyu.com/M01/15/16/CgAAilUJTaOAWJnRAAA2KD1DMWU213.png" group-title="",四海钓鱼
http://112.17.40.140/PLTV/88888888/224/3221226533/index.m3u8
#EXTINF:-1 tvg-id="GuoJiXinWen.cn" tvg-name="国际新闻" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/TELESUR.png" group-title="",国际新闻 (1080p)
https://d2ajt1gpdtnw25.cloudfront.net/mbliveMain/hd/playlist.m3u8
@@ -645,20 +623,20 @@ https://pulltv3.wanfudaluye.com/live/tv3.m3u8
https://liveanevia.mncnow.id/live/eds/CelestialClassic/sa_dash_vmx/CelestialClassic.mpd
#EXTINF:-1 tvg-id="TianYingPinDao.cn" tvg-name="天映频道" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://console.celestialtiger.com/images/upload/f50f7261d3c260ac6e3a38f85152b3f33833fc52.png" group-title="",天映频道
https://liveanevia.mncnow.id/live/eds/CelestialMovie/sa_dash_vmx/CelestialMovie.mpd
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
http://121.31.30.90:8085/ysten-business/live/tianjinstv/1.m3u8
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
http://121.31.30.90:8085/ysten-business/live/tianjinstv/yst.m3u8
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
http://ivi.bupt.edu.cn/hls/tjtv.m3u8
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视
-http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/hdtianjinstv/1.m3u8
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视HD
-http://121.31.30.90:8085/ysten-business/live/hdtianjinstv/1.m3u8
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视HD
-http://121.31.30.90:8085/ysten-business/live/hdtianjinstv/yst.m3u8
-#EXTINF:-1 tvg-id="39" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视高清
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视HD
http://117.169.120.140:8080/live/hdtianjinstv/.m3u8
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视HD
+http://121.31.30.90:8085/ysten-business/live/hdtianjinstv/1.m3u8
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视HD
+http://121.31.30.90:8085/ysten-business/live/hdtianjinstv/yst.m3u8
+#EXTINF:-1 tvg-id="TianJinWeiShi.cn" tvg-name="天津卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",天津卫视HD
+http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/hdtianjinstv/1.m3u8
#EXTINF:-1 tvg-id="TianJinWeiShiGaoQing.cn" tvg-name="天津卫视高清" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/TJWS.png" group-title="",天津卫视高清
http://ivi.bupt.edu.cn/hls/tjhd.m3u8
#EXTINF:-1 tvg-id="YangShiTiYuPinDaoCCTV5FHD100.cn" tvg-name="央视体育频道-CCTV5FHD100" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",央视体育频道-CCTV5FHD100
@@ -671,15 +649,15 @@ http://mms.ldntv.cn:1935/live/zonghe/playlist.m3u8
http://218.77.102.118:1935/live/zonghe_iphone/playlist.m3u8
#EXTINF:-1 tvg-id="NingHuaDianShiYiTao.cn" tvg-name="宁化电视一套" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁化电视一套 (576p)
http://fjnh.chinashadt.com:2036/live/stream:nh1.stream/playlist.m3u8
-#EXTINF:-1 tvg-id="53" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
+#EXTINF:-1 tvg-id="NingXiaWeiShi.cn" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
http://117.169.120.140:8080/live/ningxiastv/.m3u8
-#EXTINF:-1 tvg-id="53" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
+#EXTINF:-1 tvg-id="NingXiaWeiShi.cn" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
http://121.31.30.90:8085/ysten-business/live/ningxiastv/1.m3u8
-#EXTINF:-1 tvg-id="53" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
+#EXTINF:-1 tvg-id="NingXiaWeiShi.cn" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
http://121.31.30.90:8085/ysten-business/live/ningxiastv/yst.m3u8
-#EXTINF:-1 tvg-id="53" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
+#EXTINF:-1 tvg-id="NingXiaWeiShi.cn" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
http://ivi.bupt.edu.cn/hls/nxtv.m3u8
-#EXTINF:-1 tvg-id="53" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
+#EXTINF:-1 tvg-id="NingXiaWeiShi.cn" tvg-name="宁夏卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",宁夏卫视
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/ningxiastv/1.m3u8
#EXTINF:-1 tvg-id="NingBoShaoEr.cn" tvg-name="宁波少儿" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",宁波少儿
http://149.129.100.78/ningbo.php?id=5
@@ -699,20 +677,20 @@ http://149.129.100.78/anhui.php?id=69
http://149.129.100.78/anhui.php?id=50
#EXTINF:-1 tvg-id="AnHuiNongYeKeJiao.cn" tvg-name="安徽农业科教" tvg-country="CN" tvg-language="" tvg-logo="http://www.tvyan.com/uploads/dianshi/ahkj.jpg" group-title="",安徽农业科教
http://149.129.100.78/anhui.php?id=51
-#EXTINF:-1 tvg-id="32" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",安徽卫视
+#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
http://121.31.30.90:8085/ysten-business/live/anhuistv/1.m3u8
-#EXTINF:-1 tvg-id="32" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",安徽卫视
+#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
http://121.31.30.90:8085/ysten-business/live/anhuistv/yst.m3u8
-#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",安徽卫视
+#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
+http://125.210.152.10:8060/live/AHWSHD_H265.m3u8
+#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
+http://219.153.252.50/PLTV/88888888/224/3221225534/playlist.m3u8
+#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
http://223.110.245.143/ott.js.chinamobile.com/PLTV/3/224/3221225800/index.m3u8
-#EXTINF:-1 tvg-id="32" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",安徽卫视
+#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
http://ivi.bupt.edu.cn/hls/ahhd.m3u8
#EXTINF:-1 tvg-id="AnHuiWeiShi.cn" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://s.wasu.cn/data/images/201512/24/567b9d7479d83.png" group-title="",安徽卫视
http://ivi.bupt.edu.cn/hls/ahtv.m3u8
-#EXTINF:-1 tvg-id="32" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",安徽卫视高清
-http://125.210.152.10:8060/live/AHWSHD_H265.m3u8
-#EXTINF:-1 tvg-id="32" tvg-name="安徽卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",安徽卫视高清
-http://219.153.252.50/PLTV/88888888/224/3221225534/chunklist.m3u8
#EXTINF:-1 tvg-id="AnHuiXiaoShuoPingShuGuangBo.cn" tvg-name="安徽小说评书广播" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",安徽小说评书广播
http://stream1.ahrtv.cn/xspsgb/sd/live.m3u8
#EXTINF:-1 tvg-id="AnHuiYingShi.cn" tvg-name="安徽影视" tvg-country="CN" tvg-language="" tvg-logo="http://www.tvyan.com/uploads/dianshi/anhys.jpg" group-title="",安徽影视
@@ -793,15 +771,15 @@ http://livealone302.iqilu.com/iqilu/zypd.m3u8
http://livealone302.iqilu.com/iqilu/qlpd.m3u8
#EXTINF:-1 tvg-id="ShanXiGongGong.cn" tvg-name="山西公共" tvg-country="CN" tvg-language="" tvg-logo="http://app.sxrtv.com/images/2019/5/15/20195151557897422066_33_t1080.jpg" group-title="",山西公共
http://149.129.100.78/tv.php?id=sxgg
-#EXTINF:-1 tvg-id="54" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
+#EXTINF:-1 tvg-id="ShanXiWeiShi.cn" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
http://117.169.120.140:8080/live/shanxistv/.m3u8
-#EXTINF:-1 tvg-id="54" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
+#EXTINF:-1 tvg-id="ShanXiWeiShi.cn" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
http://121.31.30.90:8085/ysten-business/live/shanxistv/1.m3u8
-#EXTINF:-1 tvg-id="54" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
+#EXTINF:-1 tvg-id="ShanXiWeiShi.cn" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
http://121.31.30.90:8085/ysten-business/live/shanxistv/yst.m3u8
-#EXTINF:-1 tvg-id="54" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
+#EXTINF:-1 tvg-id="ShanXiWeiShi.cn" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
http://125.210.152.10:8060/live/SXWS.m3u8
-#EXTINF:-1 tvg-id="54" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
+#EXTINF:-1 tvg-id="ShanXiWeiShi.cn" tvg-name="山西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",山西卫视
http://223.82.250.72/live/shanxistv/1.m3u8
#EXTINF:-1 tvg-id="ShanXiYingShi.cn" tvg-name="山西影视" tvg-country="CN" tvg-language="" tvg-logo="http://app.sxrtv.com/images/2019/5/15/20195151557897361061_33_t1080.jpg" group-title="",山西影视
http://149.129.100.78/tv.php?id=sxys
@@ -833,14 +811,14 @@ http://hbpx.chinashadt.com:2036/live/px1.stream/chunklist.m3u8
http://hbpx.chinashadt.com:2036/live/px1.stream/playlist.m3u8
#EXTINF:-1 tvg-id="GuangDongTiYu.cn" tvg-name="广东体育" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",广东体育
http://149.129.100.78/guangdong.php?id=47
-#EXTINF:-1 tvg-id="33" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广东卫视
+#EXTINF:-1 tvg-id="GuangDongWeiShi.cn" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/guangdong.jpg" group-title="",广东卫视
http://121.31.30.90:8085/ysten-business/live/guangdongstv/1.m3u8
-#EXTINF:-1 tvg-id="33" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广东卫视
-http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/hdguangdongstv/1.m3u8
-#EXTINF:-1 tvg-id="33" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广东卫视HD
+#EXTINF:-1 tvg-id="GuangDongWeiShi.cn" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/guangdong.jpg" group-title="",广东卫视HD
http://121.31.30.90:8085/ysten-business/live/hdguangdongstv/1.m3u8
-#EXTINF:-1 tvg-id="GuangDongWeiShiGaoQing.cn" tvg-name="广东卫视高清" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/guangdong.jpg" group-title="",广东卫视高清
+#EXTINF:-1 tvg-id="GuangDongWeiShi.cn" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/guangdong.jpg" group-title="",广东卫视HD
http://ivi.bupt.edu.cn/hls/gdhd.m3u8
+#EXTINF:-1 tvg-id="GuangDongWeiShi.cn" tvg-name="广东卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://parco-zh.github.io/demo/guangdong.jpg" group-title="",广东卫视HD
+http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/hdguangdongstv/1.m3u8
#EXTINF:-1 tvg-id="GuangDongGuoJi.cn" tvg-name="广东国际" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",广东国际
http://149.129.100.78/guangdong.php?id=46
#EXTINF:-1 tvg-id="GuangDongShaoEr.cn" tvg-name="广东少儿" tvg-country="CN" tvg-language="" tvg-logo="" group-title="",广东少儿
@@ -887,16 +865,16 @@ http://149.129.100.78/gztv.php?id=zhonghe
https://iptv--iptv.repl.co/Chinese/zhonghe/
#EXTINF:-1 tvg-id="GuangShuiXinWenZongHe.cn" tvg-name="广水新闻综合" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://ku.90sjimg.com/element_pic/17/12/31/2ec189f5167bd017e47acd441800487b.jpg" group-title="",广水新闻综合
http://guangshui.live.tempsource.cjyun.org/videotmp/s10146-GSXW.m3u8
-#EXTINF:-1 tvg-id="43" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
+#EXTINF:-1 tvg-id="GuangXiWeiShi.cn" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
http://121.31.30.90:8085/ysten-business/live/guangxistv/1.m3u8
-#EXTINF:-1 tvg-id="43" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
+#EXTINF:-1 tvg-id="GuangXiWeiShi.cn" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
http://121.31.30.90:8085/ysten-business/live/guangxistv/yst.m3u8
-#EXTINF:-1 tvg-id="43" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
+#EXTINF:-1 tvg-id="GuangXiWeiShi.cn" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
http://223.82.250.72/live/guangxistv/1.m3u8
-#EXTINF:-1 tvg-id="43" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
+#EXTINF:-1 tvg-id="GuangXiWeiShi.cn" tvg-name="广西卫视" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西卫视
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/guangxistv/1.m3u8
#EXTINF:-1 tvg-id="GuangXiLuYouGuangBo.cn" tvg-name="广西旅游广播" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",广西旅游广播
-http://media.bbrtv.com:1935/live/_definst_/lypl/chunklist_w1542235389.m3u8
+http://media.bbrtv.com:1935/live/lypl/playlist.m3u8
#EXTINF:-1 tvg-id="YanAn1Tai.cn" tvg-name="延安1台" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://static2.tvzhe.com/channel/logo/YA1.jpg" group-title="",延安1台
http://stream2.liveyun.hoge.cn/YATV1/sd/live.m3u8
#EXTINF:-1 tvg-id="YanAn2Tai.cn" tvg-name="延安2台" tvg-country="CN" tvg-language="Chinese" tvg-logo="http://static2.tvzhe.com/channel/logo/YA2.jpg" group-title="",延安2台
diff --git a/channels/cr.m3u b/channels/cr.m3u
index 1b08d8364..e9cc2d681 100644
--- a/channels/cr.m3u
+++ b/channels/cr.m3u
@@ -55,3 +55,11 @@ http://tv.ticosmedia.com:1935/TVSUR/TVSUR/playlist.m3u8
http://k4.usastreams.com/videotour/videotour/playlist.m3u8
#EXTINF:-1 tvg-id="ZonaFilmsTV.cr" tvg-name="Zona Films TV" tvg-country="CR" tvg-language="" tvg-logo="" group-title="Music",Zona Films TV
http://cdn2.envivo.win/HLS/?canal=zonafilmstv&c=ZwNjYwRkBF4kBQLhZmt=&p=ZGH4AGD1ZGtjZN==
+#EXTINF:-1 tvg-id="Canaltwo.cr" tvg-name="Canal 2" tvg-country="CR" tvg-language="" tvg-logo="https://yt3.ggpht.com/ytc/AKedOLSalPTzbA5vd1NjQo6O28oTYy2b7qSZS0R7-Q55" group-title="",Canal 2
+http://cdn88.theus6tv.tk/costa-rica/broadcast/canal-two.m3u8
+#EXTINF:-1 tvg-id="Canalfour.cr" tvg-name="Canal 4" tvg-country="CR" tvg-language="" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Repretel_4_logo.png/1200px-Repretel_4_logo.png" group-title="",Canal 4
+http://cdn88.theus6tv.tk/costa-rica/broadcast/canal-four.m3u8
+#EXTINF:-1 tvg-id="Canaleleven.cr" tvg-name="Canal 11" tvg-country="CR" tvg-language="" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Repretel_11_logo.png/600px-Repretel_11_logo.png" group-title="",Canal 11
+http://cdn88.theus6tv.tk/costa-rica/broadcast/canal-eleven.m3u8
+#EXTINF:-1 tvg-id="Canalsix.cr" tvg-name="Canal 11" tvg-country="CR" tvg-language="" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/e/eb/Repretel_6_logo.png" group-title="",Canal 6
+http://cdn88.theus6tv.tk/costa-rica/broadcast/canal-six.m3u8
diff --git a/channels/es.m3u b/channels/es.m3u
index 1ec5a578a..b6391cdbe 100644
--- a/channels/es.m3u
+++ b/channels/es.m3u
@@ -81,9 +81,9 @@ https://streamtv.mediasector.es/hls/activatv/.m3u8
https://streaming01.gestec-video.com/hls/artequatreAlacanti.m3u8
#EXTINF:-1 tvg-id="AlcarriaTV.es" tvg-name="Alcarria TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/pzJAYan.png" group-title="",Alcarria TV
http://217.182.77.27/live/alcarriatv-livestream.m3u8
-#EXTINF:-1 tvg-id="AlcarriaTV.es" tvg-name="Alcarria TV" tvg-country="ES" tvg-language="" tvg-logo="https://i.imgur.com/aJL1mjy.png" group-title="",Alcarria TV (576p)
+#EXTINF:-1 tvg-id="AlcarriaTV.es" tvg-name="Alcarria TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/pzJAYan.png" group-title="",Alcarria TV (576p)
http://cls.alcarria.tv/alcarriatv/livestream/playlist.m3u8
-#EXTINF:-1 tvg-id="AlcarriaTV.es" tvg-name="Alcarria TV" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Alcarria TV
+#EXTINF:-1 tvg-id="AlcarriaTV.es" tvg-name="Alcarria TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/pzJAYan.png" group-title="",Alcarria TV
https://cls.alcarria.tv/live/alcarriatv-livestream.m3u8
#EXTINF:-1 tvg-id="AragonRadioZaragoza.es" tvg-name="Aragón Radio (Zaragoza)" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Aragón Radio (Zaragoza)
https://cartv.streaming.aranova.es/hls/live/aragonradio_aragonradio1.m3u8
@@ -105,8 +105,8 @@ https://cloudvideo.servers10.com:8081/8004/index.m3u8
https://cdn01.yowi.tv/4131RI73I9/master.m3u8
#EXTINF:-1 tvg-id="Canal10Emporda.es" tvg-name="Canal 10 Empordà" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Canal 10 Empordà
http://ventdelnord.tv:8080/escala/directe.m3u8
-#EXTINF:-1 tvg-id="Canal2000LaSolana.es" tvg-name="Canal 2000 La Solana" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Canal 2000 La Solana
-http://canal2000.berkano-systems.net/streaming/streams/canal2000-720p.m3u8
+#EXTINF:-1 tvg-id="Canal2000LaSolana.es" tvg-name="Canal 2000 La Solana" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Canal 2000 La Solana (720p)
+http://canal2000.berkano-systems.net/streaming/streams/canal2000.m3u8
#EXTINF:-1 tvg-id="Canal25TV.es" tvg-name="Canal 25 TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/2BBGZ1H.png" group-title="Local",Canal 25 TV (Barbastro) [Not 24/7]
https://common01.todostreaming.es/live/tvbarbastro-livestream.m3u8
#EXTINF:-1 tvg-id="Canal33Madrid.es" tvg-name="Canal 33 Madrid" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/1zJpDIX.png" group-title="",Canal 33 Madrid (1080p)
@@ -358,43 +358,27 @@ http://streamer1.streamhost.org/salive/logosH/playlist.m3u8
#EXTINF:-1 tvg-id="LogosTV.es" tvg-name="Logos TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://proyectoesperanza.es/wp-content/uploads/2017/02/logos-logo-big.png" group-title="",Logos TV (720p)
https://streamer1.streamhost.org/salive/logosH/master.m3u8
#EXTINF:-1 tvg-id="MAccion.es" tvg-name="M. Accion" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Accion
-http://212.224.98.207:2200/NL/maccion-esp/index.m3u8?token=
-#EXTINF:-1 tvg-id="MAccion.es" tvg-name="M. Accion" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Accion
http://5.255.90.184:2001/play/a048
#EXTINF:-1 tvg-id="MComedia.es" tvg-name="M. Comedia" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Comedia
-http://212.224.98.207:2200/NL/mcomedia-esp/index.m3u8?token=
-#EXTINF:-1 tvg-id="MComedia.es" tvg-name="M. Comedia" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Comedia
http://5.255.90.184:2001/play/a03y
#EXTINF:-1 tvg-id="MComedia.es" tvg-name="M. Comedia" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Comedia
http://5.255.90.184:2001/play/a05f
#EXTINF:-1 tvg-id="MDeportes.es" tvg-name="M. Deportes" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Deportes
-http://212.224.98.207:2200/NL/mdeporteshd-esp/index.m3u8?token=
-#EXTINF:-1 tvg-id="MDeportes.es" tvg-name="M. Deportes" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Deportes
http://5.255.90.184:2001/play/a04h
#EXTINF:-1 tvg-id="MDeportes.es" tvg-name="M. Deportes" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Deportes
http://5.255.90.184:2001/play/a057
#EXTINF:-1 tvg-id="MDrama.es" tvg-name="M. Drama" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Drama
-http://212.224.98.207:2200/NL/mdrama-esp/index.m3u8?token=
-#EXTINF:-1 tvg-id="MDrama.es" tvg-name="M. Drama" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Drama
http://5.255.90.184:2001/play/a049
#EXTINF:-1 tvg-id="MFest.es" tvg-name="M. Fest" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Fest
http://5.255.90.184:2001/play/a046
#EXTINF:-1 tvg-id="MFest.es" tvg-name="M. Fest" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Fest
http://5.255.90.184:2001/play/a058
#EXTINF:-1 tvg-id="MLaLiga.es" tvg-name="M. La Liga" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. La Liga
-http://212.224.98.207:2200/NL/mlaligahd-esp/index.m3u8?token=
-#EXTINF:-1 tvg-id="MLaLiga.es" tvg-name="M. La Liga" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. La Liga
http://5.255.90.184:2001/play/a04b
#EXTINF:-1 tvg-id="MLaLiga.es" tvg-name="M. La Liga" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. La Liga
http://5.255.90.184:2001/play/a059
#EXTINF:-1 tvg-id="MLaLiga2.es" tvg-name="M. La Liga 2" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. La Liga 2
-http://212.224.98.207:2200/NL/mlaliga2hd-esp/index.m3u8?token=
-#EXTINF:-1 tvg-id="MLaLiga2.es" tvg-name="M. La Liga 2" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. La Liga 2
http://5.255.90.184:2001/play/a03u
-#EXTINF:-1 tvg-id="MLigadeCampeones.es" tvg-name="M. Liga de Campeones" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Liga de Campeones
-http://212.224.98.207:2200/NL/mlcampeonhd-esp/playlist.m3u8?token=
-#EXTINF:-1 tvg-id="MLigadeCampeones2.es" tvg-name="M. Liga de Campeones 2" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",M. Liga de Campeones 2 [Not 24/7]
-http://212.224.98.207:2200/NL/mlcampeon2hd-esp/playlist.m3u8?token=
#EXTINF:-1 tvg-id="M95TelevisionMarbella.es" tvg-name="M95 Televisión Marbella" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/m95tvmarbella/picture?width=320&height=320" group-title="Local",M95 Televisión Marbella
https://limited2.todostreaming.es/live/m95-livestream.m3u8
#EXTINF:-1 tvg-id="MaestratTV.es" tvg-name="Maestrat TV" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Maestrat TV [Not 24/7]
@@ -431,8 +415,6 @@ https://iptv-all.lanesh4d0w.codes/special/olympics
https://adc-hls.flumotion.com/playlist.m3u8
#EXTINF:-1 tvg-id="OndaMadrid.es" tvg-name="Onda Madrid" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/ondamadridradio/picture?width=320&height=320" group-title="",Onda Madrid (360p)
http://ondamadridhls-live.hls.adaptive.level3.net/telemadrid/ondamadrid1/index.m3u8
-#EXTINF:-1 tvg-id="OndaMadrid.es" tvg-name="Onda Madrid" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/gh5VQtG.jpg" group-title="",Onda Madrid
-http://telemadridhls-live.hls.adaptive.level3.net/telemadrid/tvradio/bitrate_2.m3u8
#EXTINF:-1 tvg-id="OndaMadrid.es" tvg-name="Onda Madrid" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/BA6HVt3.png" group-title="",Onda Madrid (360p)
http://telemadridhls-live.hls.adaptive.level3.net/telemadrid/tvradio/index.m3u8
#EXTINF:-1 tvg-id="OndaMezquita7TV.es" tvg-name="OndaMezquita 7 TV" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",OndaMezquita 7 TV
@@ -445,8 +427,6 @@ https://deaplaneta-planetakidz-1-es.samsung.wurl.com/manifest/playlist.m3u8
https://limited12.todostreaming.es/live/ptvcantabria-livestream.m3u8
#EXTINF:-1 tvg-id="PopularTVMelilla.es" tvg-name="Popular TV Melilla" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Popular TV Melilla (720p)
http://5940924978228.streamlock.net:1935/8009/8009/playlist.m3u8
-#EXTINF:-1 tvg-id="PopularTVMelilla.es" tvg-name="Popular TV Melilla" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Popular TV Melilla
-https://5940924978228.streamlock.net/8009/8009/chunklist_w922827150.m3u8
#EXTINF:-1 tvg-id="PopularTVMelilla.es" tvg-name="Popular TV Melilla" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/hwlTrtF.png" group-title="Local",Popular TV Melilla (720p)
https://5940924978228.streamlock.net/8009/8009/master.m3u8
#EXTINF:-1 tvg-id="PopularTVMurcia.es" tvg-name="Popular TV Murcia" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Popular TV Murcia [Not 24/7]
@@ -697,12 +677,8 @@ https://cdn01.yowi.tv/5RO3JQE6LN/master.m3u8
http://212.104.160.156:1935/live/trebujenatv2/master.m3u8
#EXTINF:-1 tvg-id="TrebujenaTV.es" tvg-name="Trebujena TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://bopiweb.com/imagenes/2580/tomo.1.M-3503739-3.jpg" group-title="Local",Trebujena TV (360p)
https://wowzaprod256-i.akamaihd.net/hls/live/779970/7e9bac89/playlist.m3u8
-#EXTINF:-1 tvg-id="TRECE.es" tvg-name="TRECE" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",TRECE
-https://play.cdn.enetres.net/091DB7AFBD77442B9BA2F141DCC182F5021/live.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="TreceTV.es" tvg-name="Trece TV" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Trece TV
-https://play.cdn.enetres.net/091DB7AFBD77442B9BA2F141DCC182F5021/021/playlist.m3u8
#EXTINF:-1 tvg-id="TRECETV.es" tvg-name="TRECE TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Trece.svg/320px-Trece.svg.png" group-title="",TRECE TV
-https://streaming.enetres.net/091DB7AFBD77442B9BA2F141DCC182F5021/live.smil/master.m3u8
+https://play.cdn.enetres.net/091DB7AFBD77442B9BA2F141DCC182F5021/live.smil/playlist.m3u8
#EXTINF:-1 tvg-id="TuyaLaJandaTelevision.es" tvg-name="Tuya La Janda Televisión" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/8lajanda/picture?width=320&height=320" group-title="",Tuya La Janda Televisión
http://185.210.20.13:8080/0.m3u8
#EXTINF:-1 tvg-id="TVArtequatre.es" tvg-name="TV Artequatre" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",TV Artequatre
@@ -729,10 +705,6 @@ https://directes-tv-int.ccma.cat/int/ngrp:tvi_web/playlist_DVR.m3u8
https://unlimited1-us.dps.live/tv5/tv5.smil/playlist.m3u8
#EXTINF:-1 tvg-id="TV5LIMARESHD.es" tvg-name="TV5 LIMARES HD" tvg-country="ES" tvg-language="" tvg-logo="https://pbs.twimg.com/profile_images/1192795318749945858/o-jIBTK-_400x400.jpg" group-title="",TV5 LIMARES HD (720p)
https://unlimited6-cl.dps.live/tv5/tv5.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="TVG.es" tvg-name="TVG" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",TVG
-http://europa-crtvg.flumotion.com/crtvg/europa_med/chunks.m3u8
-#EXTINF:-1 tvg-id="TVGAmerica.es" tvg-name="TVG América" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/1Z6svKc.jpg" group-title="General",TVG América (720p)
-https://america-crtvg.flumotion.com/crtvg/america_high/playlist.m3u8
#EXTINF:-1 tvg-id="TVGAmerica.es" tvg-name="TVG América" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/1Z6svKc.jpg" group-title="General",TVG América (720p)
https://america-crtvg.flumotion.com/playlist.m3u8
#EXTINF:-1 tvg-id="TVGCultural.es" tvg-name="TVG Cultural" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/KgbNv4G.png" group-title="Local",TVG Cultural (720p)
@@ -745,22 +717,16 @@ https://events1-crtvg.flumotion.com/playlist.m3u8
https://amodino-crtvg.flumotion.com/playlist.m3u8
#EXTINF:-1 tvg-id="TVGInfantil.es" tvg-name="TVG Infantil" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/KgbNv4G.png" group-title="Local",TVG Infantil (720p)
https://infantil-crtvg.flumotion.com/playlist.m3u8
-#EXTINF:-1 tvg-id="TVGMomento.es" tvg-name="TVG Momento" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",TVG Momento (720p)
-http://momentog-crtvg.flumotion.com:80/playlist.m3u8
#EXTINF:-1 tvg-id="TVGMomento.es" tvg-name="TVG Momento" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/QkhxAuY.png" group-title="Local",TVG Momento (720p)
https://momentog-crtvg.flumotion.com/playlist.m3u8
#EXTINF:-1 tvg-id="TVGMusigal.es" tvg-name="TVG Musigal" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/KgbNv4G.png" group-title="Local",TVG Musigal (360p)
https://musigal-crtvg.flumotion.com/playlist.m3u8
-#EXTINF:-1 tvg-id="TVGXabarin.es" tvg-name="TVG Xabarin" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",TVG Xabarin
-http://infantil-crtvg.flumotion.com/chunks.m3u8
#EXTINF:-1 tvg-id="tvG2.es" tvg-name="tvG2" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.imgur.com/YAnSTc6.jpg" group-title="Local",tvG2 (720p)
https://events2-crtvg.flumotion.com/playlist.m3u8
#EXTINF:-1 tvg-id="tvG2.es" tvg-name="tvG2" tvg-country="ES" tvg-language="Galician" tvg-logo="https://i.ibb.co/2jtvMq0/TVG-GALICIA-2.png" group-title="Local",tvG2 (720p)
https://events3-crtvg.flumotion.com/playlist.m3u8
#EXTINF:-1 tvg-id="TVMCordoba.es" tvg-name="TVM Córdoba" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/TVM.Cordoba/picture?width=320&height=320" group-title="",TVM Córdoba (414p)
http://teledifusion.tv/cordoba/cordobalive/playlist.m3u8
-#EXTINF:-1 tvg-id="TVMCordoba.es" tvg-name="TVM Córdoba" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/HAbq91X.png" group-title="",TVM Córdoba (414p)
-http://teledifusion.tv:1935/cordoba/cordobalive/.m3u8
#EXTINF:-1 tvg-id="TVMCordoba.es" tvg-name="TVM Córdoba" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",TVM Córdoba (414p)
https://5924d3ad0efcf.streamlock.net/cordoba/cordobalive/playlist.m3u8
#EXTINF:-1 tvg-id="UDLasPalmasTV.es" tvg-name="UD Las Palmas TV" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",UD Las Palmas TV
@@ -771,10 +737,6 @@ http://78.41.83.88:8880/hls/unesd.m3u8
http://ventdelnord.tv:8080/hls/directe.m3u8
#EXTINF:-1 tvg-id="Vision6TV.es" tvg-name="Visión 6 TV" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/TB1wMQ7.jpg" group-title="",Visión 6 TV
https://secure3.todostreaming.es/live/visionseis-livestream.m3u8
-#EXTINF:-1 tvg-id="WebcamOndaMadrid.es" tvg-name="Webcam OndaMadrid" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Webcam OndaMadrid (360p)
-https://telemadridhls2-live-hls.secure2.footprint.net/egress/chandler/telemadrid/ondamadrid_1/index.m3u8
-#EXTINF:-1 tvg-id="WebcamOndaMadrid.es" tvg-name="Webcam OndaMadrid" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Webcam OndaMadrid (720p)
-https://telemadridhls2-live-hls.secure2.footprint.net/egress/chandler/telemadrid/tvradio_1/index.m3u8
#EXTINF:-1 tvg-id="XtraTVHD.es" tvg-name="Xtra TV HD" tvg-country="ES" tvg-language="" tvg-logo="https://i.imgur.com/w1Lc150.jpg" group-title="Music",Xtra TV HD
https://mccdn-hls-a01-rbx.datah0stn3t.com/live/xtra/playlist.m3u8
#EXTINF:-1 tvg-id="XtraHitsTV.es" tvg-name="XtraHits TV" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",XtraHits TV
diff --git a/channels/kw.m3u b/channels/kw.m3u
index 5cb39f24a..7ee08a4d8 100644
--- a/channels/kw.m3u
+++ b/channels/kw.m3u
@@ -17,7 +17,7 @@ http://www.elahmad.com/tv/m3u8/alkass.m3u8?id=alkass1
http://www.elahmad.com/tv/m3u8/alkass.m3u8?id=alkass2
#EXTINF:-1 tvg-id="Alkasssport3.kw" tvg-name="Alkass sport 3" tvg-country="KW" tvg-language="" tvg-logo="" group-title="Sports",Alkass sport 3
http://www.elahmad.com/tv/m3u8/alkass.m3u8?id=alkass3
-#EXTINF:-1 tvg-id="Alkasssport4.kw" tvg-name="Alkass sport 4" tvg-country="KW" tvg-language="" tvg-logo="" group-title="Sports",Alkass sport 4
+#EXTINF:-1 tvg-id="Alkasssport4.kw" tvg-name="Alkass sport 4" tvg-country="KW" tvg-language="" tvg-logo="" group-title="Sports",Alkass sport 4 (576p)
http://www.elahmad.com/tv/m3u8/alkass.m3u8?id=alkass4
#EXTINF:-1 tvg-id="Alkasssport5.kw" tvg-name="Alkass sport 5" tvg-country="KW" tvg-language="" tvg-logo="" group-title="Sports",Alkass sport 5
http://www.elahmad.com/tv/m3u8/alkass.m3u8?id=alkass5
diff --git a/channels/lb.m3u b/channels/lb.m3u
index f63801598..2a1aea6a0 100644
--- a/channels/lb.m3u
+++ b/channels/lb.m3u
@@ -1,4 +1,6 @@
#EXTM3U
+#EXTINF:-1 tvg-id="AghaniAghani.lb" tvg-name="Aghani Aghani" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://aghaniaghani.com/images/logo.png" group-title="Music",Aghani Aghani (1080p)
+https://svs.itworkscdn.net/aghanilive/aghanilive/playlist.m3u8
#EXTINF:-1 tvg-id="AlIttihad.lb" tvg-name="Al Ittihad" tvg-country="LB" tvg-language="Arabic" tvg-logo="http://alittihad.tv/assets/images/logo.png" group-title="General",Al Ittihad (552p)
https://live.alittihad.tv/ittihad/index.m3u8
#EXTINF:-1 tvg-id="AlManar.lb" tvg-name="Al Manar" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://i.imgur.com/dmDzNQO.png" group-title="News",Al Manar (576p)
@@ -13,7 +15,7 @@ https://wowzaprod140-i.akamaihd.net/hls/live/750788/7552102e/playlist.m3u8
https://svs.itworkscdn.net/alimanlive/imantv.smil/playlist.m3u8
#EXTINF:-1 tvg-id="ArabicaMusic.lb" tvg-name="Arabica Music" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://arabicagroup.tv/images/app1.png" group-title="Music",Arabica TV (720p)
http://istream.binarywaves.com:8081/hls/arabica/playlist.m3u8
-#EXTINF:-1 tvg-id="CharityTV.lb" tvg-name="CharityTV" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://kreim-storage.fra1.digitaloceanspaces.com/APP%20Logo%20PNG.png" group-title="Religious",CharityTV (1080p)
+#EXTINF:-1 tvg-id="CharityTV.lb" tvg-name="CharityTV" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://kreim-storage.fra1.digitaloceanspaces.com/APP%20Logo%20PNG.png" group-title="Religious",CharityTV [Offline]
http://185.105.4.236:1935/live/ngrp:livestream_all/live.m3u8
#EXTINF:-1 tvg-id="FutureTV.lb" tvg-name="Future TV" tvg-country="LB" tvg-language="Arabic" tvg-logo="http://futuretvnetwork.com/images/logo.png" group-title="General",Future TV
#EXTVLCOPT:http-referrer=http://azrotv.com/
@@ -53,5 +55,8 @@ https://svs.itworkscdn.net/madalive/mada/playlist.m3u8
#EXTVLCOPT:http-referrer=http://azrotv.com/
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
http://teledunet.com:8080/live/azrotv/azrotv2021/10012.m3u8
+#EXTINF:-1 tvg-id="TeleLiban.lb" tvg-name="Tele Liban" tvg-country="LB" tvg-language="Arabic" tvg-logo="http://www.teleliban.com.lb/images/telelogo.png" group-title="General",Tele Liban (576p)
+#EXTVLCOPT:http-referrer=https://www.teleliban.com.lb/live
+https://cdn.catiacast.video/abr/ed8f807e2548db4507d2a6f4ba0c4a06/tl/mbs1/chunks.m3u8
#EXTINF:-1 tvg-id="TVSeventeen.lb" tvg-name="TV Seventeen" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://www.tvseventeen.com/img/logo.png" group-title="News",TV Seventeen (720p)
https://cdn.tvseventeen.com/test_tv_seventeen/index.m3u8
diff --git a/channels/pe.m3u b/channels/pe.m3u
index b7b7ec361..0d589d481 100644
--- a/channels/pe.m3u
+++ b/channels/pe.m3u
@@ -31,7 +31,7 @@ http://cdnh4.iblups.com/hls/OVJNKV4pSr.m3u8
https://live.obslivestream.com:1936/crtv/ngrp:crtv_all/playlist.m3u8
#EXTINF:-1 tvg-id="Cultura24tv.pe" tvg-name="Cultura 24" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://i.imgur.com/2mSwwpH.png" group-title="Culture",Cultura 24 (720p)
https://vs8.live.opencaster.com/cultura24/smil:cultura24/playlist.m3u8
-#EXTINF:-1 tvg-id="DiarioHechiceraTumbes.pe" tvg-name="Diario Hechicera (Tumbes)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/diariohechicera/picture?width=320&height=320" group-title="Local",Diario Hechicera (Tumbes) [Not 24/7]
+#EXTINF:-1 tvg-id="DiarioHechiceraTumbes.pe" tvg-name="Diario Hechicera (Tumbes)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/diariohechicera/picture?width=320&height=320" group-title="Local",Diario Hechicera (Tumbes) (720p) [Not 24/7]
https://panel.streamingtv-mediacp.online:1936/8108/8108/playlist.m3u8
#EXTINF:-1 tvg-id="ExitosaTV.pe" tvg-name="Exitosa TV" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/Exitosanoticias/picture?width=320&height=320" group-title="News",Exitosa TV
https://cu.onliv3.com/livevd1/user2.m3u8
@@ -43,6 +43,8 @@ https://tvsource.gacetaucayalina.com/hls/prueba.m3u8
https://envivo.galacticatv.com:3913/stream/play.m3u8
#EXTINF:-1 tvg-id="GeniosTVMoyobamba.pe" tvg-name="Genios TV (Moyobamba)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/geniostvmoyobamba/picture?width=320&height=320" group-title="Local",Genios TV (Moyobamba) (720p) [Not 24/7]
https://live.obslivestream.com:1936/geniostv/ngrp:geniostv_all/playlist.m3u8?DVR
+#EXTINF:-1 tvg-id="GoldValleyTV.pe" tvg-name="Gold Valley TV (Cafsma)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/Goldvalleytvcasma/picture?width=320&height=320" group-title="Local",Gold Valley TV (Casma) [Not 24/7]
+https://stmv.panel.grupolimalive.com/gold/gold/chunklist_w210808895.m3u8
#EXTINF:-1 tvg-id="HatunTV.pe" tvg-name="Hatun TV" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://yt3.ggpht.com/ytc/AAUvwnhI0HKESXrVQ8-ktPCeRap6-cP_4upPtEpAlwPa=s88-c-k-c0x00ffffff-no-rj" group-title="Music",Hatun TV (720p)
https://tv.siete.us/bestcablehatuntv/bestcablehatuntv/index.m3u8
#EXTINF:-1 tvg-id="JNETV.pe" tvg-name="JNE TV" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/JNE.Peru/picture?width=320&height=320" group-title="Legislative",JNE TV [Not 24/7]
@@ -57,7 +59,7 @@ https://mdstrm.com/live-stream-playlist/5ce7109c7398b977dc0744cd.m3u8
https://tv.oyotunstream.com/master/master/playlist.m3u8
#EXTINF:-1 tvg-id="MegaTV.pe" tvg-name="Mega TV" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/MTVAQP/picture?width=320&height=320" group-title="Local",Mega TV (360p) [Not 24/7]
https://cp.sradiotv.com:1936/Stream/Stream/playlist.m3u8
-#EXTINF:-1 tvg-id="Millenium49TVPucallpa.pe" tvg-name="Millenium 49 TV (Pucallpa)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://i.imgur.com/zYpMHhQ.png" group-title="Local",Millenium 49 TV (Pucallpa) [Not 24/7]
+#EXTINF:-1 tvg-id="Millenium49TVPucallpa.pe" tvg-name="Millenium 49 TV (Pucallpa)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://i.imgur.com/zYpMHhQ.png" group-title="Local",Millenium 49 TV (Pucallpa) (720p) [Not 24/7]
https://stmv.panel.grupolimalive.com/milleniuntv/milleniuntv/playlist.m3u8
#EXTINF:-1 tvg-id="ModaHuancayo.pe" tvg-name="Moda Huancayo" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/ModaHuancayoTv/picture?width=320&height=320" group-title="Local",Moda Huancayo TV [Not 24/7]
https://tvdatta.com:3383/live/huancayotvlive.m3u8
@@ -87,10 +89,12 @@ https://linkastream.co/headless?url=https://www.dailymotion.com/PanamericanaPTV
https://d2fxrfbiedz1tm.cloudfront.net/livepaxtv/smil:PC.smil/playlist.m3u8
#EXTINF:-1 tvg-id="PBO.pe" tvg-name="PBO Digital" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/PBOPeru/picture?width=320&height=320" group-title="News",PBO Digital [Not 24/7]
https://linkastream.co/headless?url=https://www.youtube.com/channel/UCgR0st4ZLABi-LQcWNu3wnQ/live
-#EXTINF:-1 tvg-id="PlanetaTVMoyobamba.pe" tvg-name="Planeta TV (Moyobamba)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/PlanetaTeleInformativo/picture?width=320&height=320" group-title="Local",Planeta TV (Moyobamba) (720p) [Not 24/7]
-https://live.obslivestream.com:1936/planetatv/ngrp:planetatv_all/playlist.m3u8?DVR
+#EXTINF:-1 tvg-id="PeruvianRadioTV.pe" tvg-name="Peruvian Radio TV" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://peruvianradiotv.pe/wp-content/uploads/2021/03/Logo-Peruvian-6.png" group-title="Local",PeruvianRadio TV (720p) [Not 24/7]
+https://stmv.panel.grupolimalive.com/peruviantv/peruviantv/playlist.m3u8
#EXTINF:-1 tvg-id="PlanetaTVBagua.pe" tvg-name="Planeta TV (Bagua)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/planeatvperu/picture?width=320&height=320" group-title="Local",Planeta TV (Bagua) (720p) [Not 24/7]
https://stmv.panel.grupolimalive.com/planeatv/planeatv/playlist.m3u8
+#EXTINF:-1 tvg-id="PlanetaTVMoyobamba.pe" tvg-name="Planeta TV (Moyobamba)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/PlanetaTeleInformativo/picture?width=320&height=320" group-title="Local",Planeta TV (Moyobamba) (720p) [Not 24/7]
+https://live.obslivestream.com:1936/planetatv/ngrp:planetatv_all/playlist.m3u8?DVR
#EXTINF:-1 tvg-id="Primavera15RadiotelevisionMoquegua.pe" tvg-name="Primavera 15 Radiotelevisión (Moquegua)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/radioprimaveramoquegua/picture?width=320&height=320" group-title="Local",Primavera 15 Radiotelevisión (Moquegua) (720p)
https://rtmp02.portalexpress.es/primaveratv/primaveratv/playlist.m3u8
#EXTINF:-1 tvg-id="QTTelevision.pe" tvg-name="QT Televisión" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/QTTelevision/picture?width=320&height=320" group-title="Local",QT Televisión (Cuzco) [Not 24/7]
@@ -119,6 +123,8 @@ https://query-streamlink.lanesh4d0w.repl.co/iptv-query?streaming-ip=https://www.
https://servers.amelbasoluciones.co:19360/5medialive/5medialive.m3u8
#EXTINF:-1 tvg-id="SuperCanalYurimaguas.pe" tvg-name="Super Canal (Yurimaguas)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/supercanalyuri/picture?width=320&height=320" group-title="Local",Super Canal (Yurimaguas) [Not 24/7]
https://7.innovatestream.pe:19360/supercanal/supercanal.m3u8
+#EXTINF:-1 tvg-id="SurTVIlo.pe" tvg-name="SurTV (Ilo)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/surtvilo/picture?width=320&height=320" group-title="Local",SurTV (Ilo) (720p) [Not 24/7]
+https://stmv.panel.grupolimalive.com/surtv/surtv/playlist.m3u8
#EXTINF:-1 tvg-id="TelesurCamana.pe" tvg-name="Telesur (Camana)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/telesurexpresion/picture?width=320&height=320" group-title="Local",Telesur (Camana) [Not 24/7]
https://qlobbidev.s.llnwi.net/telesur3/hls/camana.m3u8
#EXTINF:-1 tvg-id="TelesurIlo.pe" tvg-name="Telesur (Ilo)" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/telesurexpresion/picture?width=320&height=320" group-title="Local",Telesur (Ilo)
diff --git a/channels/ru.m3u b/channels/ru.m3u
index 7bc1d4671..5a83cdf8a 100644
--- a/channels/ru.m3u
+++ b/channels/ru.m3u
@@ -331,8 +331,6 @@ https://edge2.uk.kab.tv/live/tvrus-rus-medium/playlist.m3u8
https://strm.yandex.ru/kal/kavkaz24_supres/kavkaz24_supres0.m3u8
#EXTINF:-1 tvg-id="KarapuzTV.ru" tvg-name="Карапуз ТВ" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="Kids",Карапуз ТВ
https://karapuztv.fenixplustv.xyz/content/33418/index.m3u8
-#EXTINF:-1 tvg-id="TVKvarc.ru" tvg-name="ТВ Кварц" tvg-country="RU" tvg-language="" tvg-logo="" group-title="Local",ТВ Кварц (576p)
-https://video.quartztelecom.ru:18080/hls/2386168/71fe656b993c510f39a5/playlist.m3u8
#EXTINF:-1 tvg-id="KinozalVHS90s.ru" tvg-name="Кинозал (VHS 90s)" tvg-country="RU" tvg-language="" tvg-logo="" group-title="",Кинозал (VHS 90s)
https://v2.catcast.tv/content/37925/index.m3u8
#EXTINF:-1 tvg-id="Kinokomediya.ru" tvg-name="Кинокомедия" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="Comedy",Кинокомедия
@@ -653,11 +651,11 @@ https://gtrkchita.ru:8081/hls/r1-chita_360p.m3u8
http://cdnmg.secure.live.rtr-vesti.ru/hls/russia_hd/playlist.m3u8
#EXTINF:-1 tvg-id="Rossiya1HD.ru" tvg-name="Россия 1 HD" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="General",Россия 1 HD
https://a3569458063-s26881.cdn.ngenix.net/hls/russia_hd/playlist_4.m3u8
-#EXTINF:-1 tvg-id="Rossiya24.ru" tvg-name="Россия 24" tvg-country="RU" tvg-language="Russian" tvg-logo="https://i.imgur.com/wu7O85f.png" group-title="News",Россия 24 (576p)
-http://radio-live-mg.rtr-vesti.ru/hls/russia_24/playlist.m3u8
#EXTINF:-1 tvg-id="Rossiya24.ru" tvg-name="Россия 24" tvg-country="RU" tvg-language="Russian" tvg-logo="https://i.imgur.com/wu7O85f.png" group-title="News",Россия 24 (480p)
#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://ott-cdn.ucom.am/s21/index.m3u8
+#EXTINF:-1 tvg-id="Rossiya24.ru" tvg-name="Россия 24" tvg-country="RU" tvg-language="Russian" tvg-logo="https://i.imgur.com/wu7O85f.png" group-title="News",Россия 24 (576p)
+http://radio-live-mg.rtr-vesti.ru/hls/russia_24/playlist.m3u8
#EXTINF:-1 tvg-id="Rossiya24.ru" tvg-name="Россия 24" tvg-country="RU" tvg-language="Russian" tvg-logo="https://i.imgur.com/wu7O85f.png" group-title="News",Россия 24 (576p) [Not 24/7]
http://uiptv.do.am/1ufc/000000006/playlist.m3u8
#EXTINF:-1 tvg-id="Rossiya24NNovgorod.ru" tvg-name="Россия 24 (Н.Новгород)" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="News",Россия 24 (Н.Новгород) (576p)
@@ -707,7 +705,7 @@ https://live2.mediacdn.ru/sr1/sever-mobile/playlist.m3u8
https://live2.mediacdn.ru/sr1/sever/playlist.m3u8
#EXTINF:-1 tvg-id="SelengaTV.ru" tvg-name="Селенга ТВ" tvg-country="RU" tvg-language="" tvg-logo="" group-title="",Селенга ТВ
http://90.188.37.86/live/playlist.m3u8
-#EXTINF:-1 tvg-id="Siesta.ru" tvg-name="Сиеста" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="",Сиеста
+#EXTINF:-1 tvg-id="Siesta.ru" tvg-name="Сиеста" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="",Сиеста (720p)
https://1hdru-hls-otcnet.cdnvideo.ru/siesta/index.m3u8
#EXTINF:-1 tvg-id="SmaylikTV.ru" tvg-name="Смайлик ТВ" tvg-country="RU" tvg-language="Russian" tvg-logo="http://smilik.tv/wp-content/uploads/2016/02/Desktop_-1.png" group-title="Kids",Смайлик ТВ (720p)
http://62.32.67.187:1935/WEB_Smilik/ngrp:Smilik.stream-adaptive/playlist.m3u8
@@ -752,6 +750,8 @@ http://stream.efir24.tv:1935/live/efir24tv/playlist.m3u8
http://62.32.67.187:1935/WEB_TBN/TBN.stream/playlist.m3u8
#EXTINF:-1 tvg-id="TVEvropa.ru" tvg-name="ТВ Европа" tvg-country="RU" tvg-language="" tvg-logo="" group-title="",ТВ Европа
https://cdn1.mobiletv.bg/T10/tvevropa/tvevropa_794613_850k.m3u8
+#EXTINF:-1 tvg-id="TVKvarc.ru" tvg-name="ТВ Кварц" tvg-country="RU" tvg-language="" tvg-logo="" group-title="Local",ТВ Кварц (576p)
+https://video.quartztelecom.ru:18080/hls/2386168/71fe656b993c510f39a5/playlist.m3u8
#EXTINF:-1 tvg-id="TVCentr.ru" tvg-name="ТВ Центр" tvg-country="RU" tvg-language="Russian" tvg-logo="https://i.imgur.com/fIkd01t.png" group-title="",ТВ Центр (480p)
#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://ott-cdn.ucom.am/s54/index.m3u8
diff --git a/channels/tz.m3u b/channels/tz.m3u
index 50f6dea01..20074e47e 100644
--- a/channels/tz.m3u
+++ b/channels/tz.m3u
@@ -1,7 +1,7 @@
#EXTM3U
#EXTINF:-1 tvg-id="AzamSports1.tz" tvg-name="Azam Sports 1" tvg-country="TZ" tvg-language="" tvg-logo="https://azamtv.co.tz/tan/thumb/c/124/70/channels/channel_image1444752374.jpg" group-title="Sports",Azam Sports 1
https://1446000130.rsc.cdn77.org/1446000130/index.m3u8
-#EXTINF:-1 tvg-id="AzamSports2.tz" tvg-name="Azam Sports 2" tvg-country="TZ" tvg-language="" tvg-logo="https://azamtv.co.tz/tan/thumb/c/124/70/channels/channel_image1508329528.png" group-title="Sports",Azam Sports 2
+#EXTINF:-1 tvg-id="AzamSports2.tz" tvg-name="Azam Sports 2" tvg-country="TZ" tvg-language="" tvg-logo="https://azamtv.co.tz/tan/thumb/c/124/70/channels/channel_image1508329528.png" group-title="Sports",Azam Sports 2 (540p)
https://1326605225.rsc.cdn77.org/1326605225/index.m3u8
#EXTINF:-1 tvg-id="ChannelTen.tz" tvg-name="Channel Ten" tvg-country="TZ" tvg-language="" tvg-logo="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSlgi36jeSD2_aTBenoZYVRo53N_WjRVK9EcA&usqp=CAU" group-title="",Channel Ten
http://hls-pull-switchinternational.speedws.com/live/test1/playlist.m3u8
diff --git a/channels/us.m3u b/channels/us.m3u
index 01b33c9a3..b5dbc725a 100644
--- a/channels/us.m3u
+++ b/channels/us.m3u
@@ -5710,19 +5710,11 @@ http://stadium.sinclair.wurl.com/manifest/playlist.m3u8
https://dai.google.com/linear/hls/event/0jRU1DBXSW6a_TFheLfAUQ/master.m3u8
#EXTINF:-1 tvg-id="StadiumLive.us" tvg-name="Stadium | Live" tvg-country="US" tvg-language="English" tvg-logo="https://raw.githubusercontent.com/geonsey/Free2ViewTV/master/images/logos/Stadium.png" group-title="Sports",Stadium | Live (720p)
https://bcovlive-a.akamaihd.net/e64d564b9275484f85981d8c146fb915/us-east-1/5994000126001/f3d8696d886f4c3b9612132643061743/playlist_ssaiM.m3u8
-#EXTINF:-1 tvg-id="STARAction.us" tvg-name="STAR Action Latinoamérica" tvg-country="LATAM" tvg-language="Spanish" tvg-logo="" group-title="",STAR Action Latinoamérica
-http://209.91.213.10:8088/play/a02b
#EXTINF:-1 tvg-id="STARChannel.us" tvg-name="STAR Channel (Spain)" tvg-country="ES" tvg-language="Spanish;English" tvg-logo="https://i.imgur.com/e4izZbC.jpg" group-title="",STAR Channel (Spain)
http://45.179.140.242:8000/play/a0h5
-#EXTINF:-1 tvg-id="STARClassics.us" tvg-name="STAR Classics Latinoamérica" tvg-country="LATAM" tvg-language="Spanish" tvg-logo="" group-title="",STAR Classics Latinoamérica
-http://209.91.213.10:8088/play/a02d
-#EXTINF:-1 tvg-id="STARFun.us" tvg-name="STAR Fun Latinoamérica" tvg-country="LATAM" tvg-language="Spanish" tvg-logo="" group-title="",STAR Fun Latinoamérica
-http://209.91.213.10:8088/play/a02c
#EXTINF:-1 tvg-id="STARLife.us" tvg-name="STAR Life (Spain)" tvg-country="ES" tvg-language="Spanish;English" tvg-logo="https://i.imgur.com/e4izZbC.png" group-title="",STAR Life (Spain)
http://45.179.140.242:8000/play/a0h4
-#EXTINF:-1 tvg-id="STARLife.us" tvg-name="STAR Life Latinoamérica" tvg-country="LATAM" tvg-language="English;Spanish" tvg-logo="https://i.imgur.com/e4izZbC.png" group-title="",STAR Life Latinoamérica
-http://209.91.213.10:8088/play/a00q
-#EXTINF:-1 tvg-id="STARMOVIEMISTIRR.us" tvg-name="STAR MOVIEMI (STIRR)" tvg-country="US" tvg-language="English" tvg-logo="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT2kTZnEQilym8ptRCEoFwFHsTvp0m_y-VOdvWZSFErs4Nyke_m&usqp=CAU" group-title="",STAR MOVIEMI (STIRR) (720p)
+#EXTINF:-1 tvg-id="STARMOVIEMIHDSTIRR.us" tvg-name="STAR MOVIEMI HD (STIRR)" tvg-country="US" tvg-language="English" tvg-logo="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT2kTZnEQilym8ptRCEoFwFHsTvp0m_y-VOdvWZSFErs4Nyke_m&usqp=CAU" group-title="",STAR MOVIEMI HD (STIRR) (720p)
https://sonar.sinclair.wurl.com/manifest/playlist.m3u8
#EXTINF:-1 tvg-id="KVBCLP2.us" tvg-name="StartTV West (13.2 KVBC-LP2)" tvg-country="US" tvg-language="English" tvg-logo="https://media-usba.mybtv.net/logos/starttv.png" group-title="Entertainment",StartTV West (13.2 KVBC-LP2) (432p)
https://streams.the6tv.duckdns.org:2443/locals/Fresno/kvbc-13.2.m3u8
@@ -5815,7 +5807,7 @@ https://tastemade-xumo.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16xu
#EXTINF:-1 tvg-id="Tastemade.us" tvg-name="Tastemade" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/8s6aRwv.png" group-title="Cooking",Tastemade (720p)
https://tastemade.samsung.wurl.com/manifest/playlist.m3u8
#EXTINF:-1 tvg-id="Tastemade.us" tvg-name="Tastemade" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/8s6aRwv.png" group-title="Cooking",Tastemade (1080p)
-https://tastemadefr16min-redbox.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-redbox/CDN/playlist.m3u8?p=Redbox&deviceid=&is_lat=&subp=RedboxdesktopWebWindows
+https://tastemadefr16min-redbox.amagi.tv/hls/amagi_hls_data_tastemade-tastemadefreetv16-redbox/CDN/playlist.m3u8
#EXTINF:-1 tvg-id="Tastemade.us" tvg-name="Tastemade" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/8s6aRwv.png" group-title="Cooking",Tastemade (1080p)
https://tastemadessai.akamaized.net/amagi_hls_data_tastemade-tastemade/CDN/playlist.m3u8
#EXTINF:-1 tvg-id="TastemadeBrazil.us" tvg-name="Tastemade (Brazil)" tvg-country="US" tvg-language="" tvg-logo="https://i.imgur.com/8s6aRwv.png" group-title="Cooking",Tastemade (Brazil) (1080p)
@@ -6463,6 +6455,8 @@ https://jukin-weatherspy-2-eu.rakuten.wurl.com/manifest/playlist.m3u8
https://dai.google.com/linear/hls/event/fLqJePs_QR-FRTttC8fMIA/master.m3u8
#EXTINF:-1 tvg-id="WETA.us" tvg-name="WETA Metro (WETA) (Do Not Broadcast .1)" tvg-country="US" tvg-language="English" tvg-logo="https://image.pbs.org/stations/weta-color-single-brand-logo-ZeUHAPm.png" group-title="General",WETA Metro (WETA) (Do Not Broadcast .1) (1080p) [Geo-blocked]
https://wetadt5.lls.cdn.pbs.org/wetadt5/92d89794-5ff0-4fe6-a443-cc888104e021/primary.m3u8
+#EXTINF:-1 tvg-id="WFMZDT2.us" tvg-name="WFMZ-DT2" tvg-country="US" tvg-language="English" tvg-logo="https://zap2it.tmsimg.com/h3/NowShowing/35859/s35859_h3_aa.png" group-title="",WFMZ-DT2 (69News Weather Channel)
+https://cdn88.theus6tv.tk/united-states/locals/philadelphia/wfmz-dt2.m3u8
#EXTINF:-1 tvg-id="WGN.us" tvg-name="WGN 9 Chicago IL" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/dpI43Wg.png" group-title="Local",WGN 9 Chicago IL (720p)
https://bozztv.com/teleyupp1/teleup-mBm5MQ50rA/playlist.m3u8
#EXTINF:-1 tvg-id="WhistleSports.us" tvg-name="Whistle Sports" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/CNO8eQ7.png" group-title="Sports",Whistle Sports (720p)
@@ -6509,6 +6503,8 @@ https://dai.google.com/linear/hls/event/0DG8p66IRES7ZzEe1WJS-w/master.m3u8
https://dai2.xumo.com/amagi_hls_data_xumo1212A-redboxwired/CDN/playlist.m3u8
#EXTINF:-1 tvg-id="Wired2Fish.us" tvg-name="Wired2Fish" tvg-country="US" tvg-language="English" tvg-logo="https://f9q4g5j6.ssl.hwcdn.net/605d1769345cf61eb60b5893" group-title="Sports",Wired2Fish (720p)
https://linear-80.frequency.stream/dist/localnow/80/hls/master/playlist.m3u8
+#EXTINF:-1 tvg-id="WISCDT2.us" tvg-name="WISC-DT2" tvg-country="US" tvg-language="English" tvg-logo="https://zap2it.tmsimg.com/h3/NowShowing/25125/s51307_h3_aa.png" group-title="",WISC-DT2 (My Madison TV) (720p)
+https://cdn88.theus6tv.tk/united-states/locals/madison/wisc-dt2.m3u8
#EXTINF:-1 tvg-id="WisconsinGreenBaySTIRR.us" tvg-name="Wisconsin: Green Bay (STIRR)" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/7JgPJxx.png" group-title="Local",Wisconsin: Green Bay (STIRR) (720p)
https://dai.google.com/linear/hls/event/a6lsWNYDQwyM9fjytUCrcw/master.m3u8
#EXTINF:-1 tvg-id="WisconsinMilwaukeeSTIRR.us" tvg-name="Wisconsin: Milwaukee (STIRR)" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/7JgPJxx.png" group-title="Local",Wisconsin: Milwaukee (STIRR) (720p)
@@ -6549,6 +6545,8 @@ https://world-poker-tour.samsung.wurl.com/manifest/playlist.m3u8
http://cdn.elsalvadordigital.com:1935/wowtv/wowtv/playlist.m3u8
#EXTINF:-1 tvg-id="wowkids.us" tvg-name="wow!! kids" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/AWXw9LW.jpg" group-title="Kids",wow!! kids (1080p)
https://wownow-wownowkids-1.vizio.wurl.com/manifest/playlist.m3u8
+#EXTINF:-1 tvg-id="WSNNLD1.us" tvg-name="WSNN-LD1" tvg-country="US" tvg-language="English" tvg-logo="https://zap2it.tmsimg.com/h3/NowShowing/75548/s75548_h3_aa.png" group-title="",WSNN-LD1 (Suncoast News Network) (720p)
+https://cdn88.theus6tv.tk/united-states/locals/tampa/wsnn-ld.m3u8
#EXTINF:-1 tvg-id="WuTangCollection.us" tvg-name="Wu Tang Collection" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/jbMmsjI.png" group-title="Music",Wu Tang Collection (720p)
https://stream-us-east-1.getpublica.com/playlist.m3u8?network_id=73
#EXTINF:-1 tvg-id="Xcorps.us" tvg-name="Xcorps" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/SDKWWQu.png" group-title="Series",Xcorps (720p)
diff --git a/channels/vn.m3u b/channels/vn.m3u
index d41a65d46..7cd40461a 100644
--- a/channels/vn.m3u
+++ b/channels/vn.m3u
@@ -19,8 +19,9 @@ http://drtdnglive.e49a7c38.cdnviet.com/livestream/chunklist.m3u8
https://livefta.malimarcdn.com/ftaedge00/khaomwungmai.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="DhammasaphaTV.vn" tvg-name="Dhammasapha TV" tvg-country="VN" tvg-language="Vietnamese" tvg-logo="" group-title="",Dhammasapha TV (1080p)
https://livefta.malimarcdn.com/ftaedge00/dhammasapha.stream/playlist.m3u8
-#EXTINF:-1 tvg-id="FBNCHD.vn" tvg-name="FBNC (HD)" tvg-country="VN" tvg-language="Vietnamese" tvg-logo="" group-title="",FBNC (HD) (1080p)
-http://htv-drm-live-cdn.fptplay.net/CDN-FPT02/FBNC-HD-1080p/playlist.m3u8
+#EXTINF:-1 tvg-id="FBNC.vn" tvg-name="FBNC" tvg-country="VN" tvg-language="Vietnamese" tvg-logo="" group-title="",FBNC (720p)
+#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
+https://livecdn.fptplay.net/sdc/fbnchd_hls.smil/playlist.m3u8
#EXTINF:-1 tvg-id="GiaLaiTV.vn" tvg-name="Gia Lai TV" tvg-country="VN" tvg-language="" tvg-logo="" group-title="",Gia Lai TV
http://113.161.25.3:8134/hls/gialaitv/gialaitv.m3u8
#EXTINF:-1 tvg-id="GoodIdeaTV.vn" tvg-name="Good Idea TV" tvg-country="VN" tvg-language="Vietnamese" tvg-logo="" group-title="",Good Idea TV (720p)
diff --git a/package-lock.json b/package-lock.json
index 06cebc1d6..ffc2acf87 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,14 +7,12 @@
"license": "MIT",
"dependencies": {
"@freearhey/iso-639-3": "^1.0.0",
- "axios": "^0.21.1",
- "chalk": "^4.1.1",
"commander": "^7.0.0",
- "escape-string-regexp": "^2.0.0",
"iptv-checker": "^0.20.2",
"iptv-playlist-parser": "^0.5.4",
"m3u-linter": "^0.1.3",
"markdown-include": "^0.4.3",
+ "normalize-url": "^6.1.0",
"pre-push": "^0.1.1",
"progress": "^2.0.3",
"transliteration": "^2.2.0"
@@ -2963,6 +2961,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@@ -6045,6 +6054,11 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
+ "normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
+ },
"npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
diff --git a/package.json b/package.json
index ea3700063..64d55e8f7 100644
--- a/package.json
+++ b/package.json
@@ -11,14 +11,12 @@
"license": "MIT",
"dependencies": {
"@freearhey/iso-639-3": "^1.0.0",
- "axios": "^0.21.1",
- "chalk": "^4.1.1",
"commander": "^7.0.0",
- "escape-string-regexp": "^2.0.0",
"iptv-checker": "^0.20.2",
"iptv-playlist-parser": "^0.5.4",
"m3u-linter": "^0.1.3",
"markdown-include": "^0.4.3",
+ "normalize-url": "^6.1.0",
"pre-push": "^0.1.1",
"progress": "^2.0.3",
"transliteration": "^2.2.0"
diff --git a/scripts/clean.js b/scripts/clean.js
deleted file mode 100644
index d1ab7c2e7..000000000
--- a/scripts/clean.js
+++ /dev/null
@@ -1,74 +0,0 @@
-const IPTVChecker = require('iptv-checker')
-const { program } = require('commander')
-const ProgressBar = require('progress')
-const parser = require('./helpers/parser')
-const utils = require('./helpers/utils')
-const log = require('./helpers/log')
-
-program
- .usage('[OPTIONS]...')
- .option('-d, --debug', 'Enable debug mode')
- .option('-c, --country ', 'Comma-separated list of country codes', '')
- .option('-e, --exclude ', 'Comma-separated list of country codes to be excluded', '')
- .option('--timeout ', 'Set timeout for each request', 5000)
- .parse(process.argv)
-
-let bar
-const config = program.opts()
-const ignoreStatus = ['Geo-blocked', 'Not 24/7', 'Offline']
-const checker = new IPTVChecker({
- timeout: config.timeout
-})
-
-async function main() {
- log.start()
-
- if (config.debug) log.print(`Debug mode enabled\n`)
-
- let playlists = parser.parseIndex()
- playlists = utils.filterPlaylists(playlists, config.country, config.exclude)
- for (const playlist of playlists) {
- await parser
- .parsePlaylist(playlist.url)
- .then(checkPlaylist)
- .then(p => p.save())
- }
-
- log.finish()
-}
-
-async function checkPlaylist(playlist) {
- if (!config.debug) {
- bar = new ProgressBar(`Checking '${playlist.url}': [:bar] :current/:total (:percent) `, {
- total: playlist.channels.length
- })
- }
- const channels = []
- const total = playlist.channels.length
- for (const [index, channel] of playlist.channels.entries()) {
- const skipChannel =
- channel.status &&
- ignoreStatus.map(i => i.toLowerCase()).includes(channel.status.toLowerCase())
- if (skipChannel) {
- channels.push(channel)
- } else {
- const result = await checker.checkStream(channel.data)
- if (result.status.ok || result.status.reason.includes('timed out')) {
- channels.push(channel)
- } else {
- if (config.debug) log.print(`ERR: ${channel.url} (${result.status.reason})\n`)
- }
- }
- if (!config.debug) bar.tick()
- }
-
- if (playlist.channels.length !== channels.length) {
- log.print(`File '${playlist.url}' has been updated\n`)
- playlist.channels = channels
- playlist.updated = true
- }
-
- return playlist
-}
-
-main()
diff --git a/scripts/detect-resolution.js b/scripts/detect-resolution.js
deleted file mode 100644
index 5da6a282f..000000000
--- a/scripts/detect-resolution.js
+++ /dev/null
@@ -1,114 +0,0 @@
-const { program } = require('commander')
-const ProgressBar = require('progress')
-const axios = require('axios')
-const https = require('https')
-const parser = require('./helpers/parser')
-const utils = require('./helpers/utils')
-const log = require('./helpers/log')
-
-program
- .usage('[OPTIONS]...')
- .option('-c, --country ', 'Comma-separated list of country codes', '')
- .option('-e, --exclude ', 'Comma-separated list of country codes to be excluded', '')
- .option('--delay ', 'Delay between parser requests', 1000)
- .option('--timeout ', 'Set timeout for each request', 5000)
- .parse(process.argv)
-
-const config = program.opts()
-const ignoreStatus = ['Offline']
-const instance = axios.create({
- timeout: config.timeout,
- maxContentLength: 200000,
- httpsAgent: new https.Agent({
- rejectUnauthorized: false
- })
-})
-
-async function main() {
- log.start()
-
- log.print(`Parsing 'index.m3u'...\n`)
- let playlists = parser.parseIndex()
- playlists = utils
- .filterPlaylists(playlists, config.country, config.exclude)
- .filter(i => i.url !== 'channels/unsorted.m3u')
-
- for (const playlist of playlists) {
- await parser
- .parsePlaylist(playlist.url)
- .then(detectResolution)
- .then(p => p.save())
- }
-
- log.finish()
-}
-
-async function detectResolution(playlist) {
- const channels = []
- const bar = new ProgressBar(`Processing '${playlist.url}': [:bar] :current/:total (:percent) `, {
- total: playlist.channels.length
- })
- let updated = false
- for (const channel of playlist.channels) {
- bar.tick()
- const skipChannel =
- channel.status &&
- ignoreStatus.map(i => i.toLowerCase()).includes(channel.status.toLowerCase())
- if (!channel.resolution.height && !skipChannel) {
- const CancelToken = axios.CancelToken
- const source = CancelToken.source()
- const timeout = setTimeout(() => {
- source.cancel()
- }, config.timeout)
-
- const response = await instance
- .get(channel.url, { cancelToken: source.token })
- .then(res => {
- clearTimeout(timeout)
-
- return res
- })
- .then(utils.sleep(config.delay))
- .catch(err => {
- clearTimeout(timeout)
- })
-
- if (response && response.status === 200) {
- if (/^#EXTM3U/.test(response.data)) {
- const resolution = parseResolution(response.data)
- if (resolution) {
- channel.resolution = resolution
- updated = true
- }
- }
- }
- }
-
- channels.push(channel)
- }
-
- if (updated) {
- log.print(`File '${playlist.url}' has been updated\n`)
- playlist.channels = channels
- playlist.updated = true
- }
-
- return playlist
-}
-
-function parseResolution(string) {
- const regex = /RESOLUTION=(\d+)x(\d+)/gm
- const match = string.matchAll(regex)
- const arr = Array.from(match).map(m => ({
- width: parseInt(m[1]),
- height: parseInt(m[2])
- }))
-
- return arr.length
- ? arr.reduce(function (prev, current) {
- return prev.height > current.height ? prev : current
- })
- : undefined
-}
-
-main()
diff --git a/scripts/format.js b/scripts/format.js
index fb77cab20..22c633d38 100644
--- a/scripts/format.js
+++ b/scripts/format.js
@@ -1,21 +1,46 @@
+const IPTVChecker = require('iptv-checker')
+const normalize = require('normalize-url')
+const { program } = require('commander')
+const ProgressBar = require('progress')
const parser = require('./helpers/parser')
const utils = require('./helpers/utils')
const file = require('./helpers/file')
const log = require('./helpers/log')
+program
+ .usage('[OPTIONS]...')
+ .option('-d, --debug', 'Enable debug mode')
+ .option('-s, --status', 'Update stream status')
+ .option('-r, --resolution', 'Detect stream resolution')
+ .option('-c, --country ', 'Comma-separated list of country codes', '')
+ .option('-e, --exclude ', 'Comma-separated list of country codes to be excluded', '')
+ .option('--timeout ', 'Set timeout for each request', 5000)
+ .parse(process.argv)
+
+let bar
+const ignoreStatus = ['Geo-blocked', 'Not 24/7']
+const config = program.opts()
+const checker = new IPTVChecker({
+ timeout: config.timeout
+})
+
async function main() {
log.start()
- log.print(`Parsing 'index.m3u'...`)
+ if (config.debug) log.print(`Debug mode enabled\n`)
+ if (config.status) log.print(`Status check enabled\n`)
+ if (config.resolution) log.print(`Resolution detection enabled\n`)
+
let playlists = parser.parseIndex().filter(i => i.url !== 'channels/unsorted.m3u')
+ playlists = utils.filterPlaylists(playlists, config.country, config.exclude)
+ if (!playlists.length) log.print(`No playlist is selected\n`)
for (const playlist of playlists) {
- log.print(`\nProcessing '${playlist.url}'...`)
await parser
.parsePlaylist(playlist.url)
- .then(formatPlaylist)
+ .then(updatePlaylist)
.then(playlist => {
if (file.read(playlist.url) !== playlist.toString()) {
- log.print('updated')
+ log.print(`File '${playlist.url}' has been updated\n`)
playlist.updated = true
}
@@ -23,33 +48,116 @@ async function main() {
})
}
- log.print('\n')
log.finish()
}
-async function formatPlaylist(playlist) {
+async function updatePlaylist(playlist) {
+ if (!config.debug) {
+ bar = new ProgressBar(`Processing '${playlist.url}': [:bar] :current/:total (:percent) `, {
+ total: playlist.channels.length
+ })
+ } else {
+ log.print(`Processing '${playlist.url}'...\n`)
+ }
+
for (const channel of playlist.channels) {
- const code = file.getBasename(playlist.url)
- // add missing tvg-name
- if (!channel.tvg.name && code !== 'unsorted' && channel.name) {
- channel.tvg.name = channel.name.replace(/\"/gi, '')
+ addMissingData(channel)
+ updateGroupTitle(channel)
+ normalizeUrl(channel)
+
+ const checkOnline = config.status || config.resolution
+ const skipChannel =
+ channel.status &&
+ ignoreStatus.map(i => i.toLowerCase()).includes(channel.status.toLowerCase())
+ if (checkOnline && !skipChannel) {
+ await checker
+ .checkStream(channel.data)
+ .then(result => {
+ const status = parseStatus(result.status)
+
+ if (config.status) {
+ updateStatus(channel, status)
+ }
+
+ if (config.resolution && status === 'online') {
+ updateResolution(channel, result.status.metadata)
+ }
+
+ if (config.debug && status === 'offline') {
+ log.print(` ERR: ${channel.url} (${result.status.reason})\n`)
+ }
+ })
+ .catch(err => {
+ if (config.debug) log.print(` ERR: ${channel.url} (${err.message})\n`)
+ })
}
- // add missing tvg-id
- if (!channel.tvg.id && code !== 'unsorted' && channel.tvg.name) {
- const id = utils.name2id(channel.tvg.name)
- channel.tvg.id = id ? `${id}.${code}` : ''
- }
- // add missing country
- if (!channel.countries.length) {
- const name = utils.code2name(code)
- channel.countries = name ? [{ code, name }] : []
- channel.tvg.country = channel.countries.map(c => c.code.toUpperCase()).join(';')
- }
- // update group-title
- channel.group.title = channel.category
+ if (!config.debug) bar.tick()
}
return playlist
}
+function parseStatus(status) {
+ if (status.ok) {
+ return 'online'
+ } else if (status.reason.includes('timed out')) {
+ return 'timeout'
+ } else if (status.reason.includes('403')) {
+ return 'error_403'
+ } else if (status.reason.includes('not one of 40{0,1,3,4}')) {
+ return 'error_40x' // 402, 451
+ } else {
+ return 'offline'
+ }
+}
+
+function updateStatus(channel, status) {
+ switch (status) {
+ case 'online':
+ channel.status = null
+ break
+ case 'offline':
+ channel.status = 'Offline'
+ break
+ }
+}
+
+function addMissingData(channel) {
+ // tvg-name
+ if (!channel.tvg.name && channel.name) {
+ channel.tvg.name = channel.name.replace(/\"/gi, '')
+ }
+ // tvg-id
+ if (!channel.tvg.id && channel.tvg.name) {
+ const id = utils.name2id(channel.tvg.name)
+ channel.tvg.id = id ? `${id}.${code}` : ''
+ }
+ // country
+ if (!channel.countries.length) {
+ const name = utils.code2name(code)
+ channel.countries = name ? [{ code, name }] : []
+ channel.tvg.country = channel.countries.map(c => c.code.toUpperCase()).join(';')
+ }
+}
+
+function updateGroupTitle(channel) {
+ channel.group.title = channel.category
+}
+
+function normalizeUrl(channel) {
+ const normalized = normalize(channel.url, { stripWWW: false })
+ const decoded = decodeURIComponent(normalized).replace(/\s/g, '+')
+ channel.updateUrl(decoded)
+}
+
+function updateResolution(channel, metadata) {
+ const streams = metadata ? metadata.streams.filter(stream => stream.codec_type === 'video') : []
+ if (!channel.resolution.height && streams.length) {
+ channel.resolution = streams.reduce((acc, curr) => {
+ if (curr.height > acc.height) return { width: curr.width, height: curr.height }
+ return acc
+ })
+ }
+}
+
main()
diff --git a/scripts/helpers/Channel.js b/scripts/helpers/Channel.js
index 043f7886f..8c4b0c397 100644
--- a/scripts/helpers/Channel.js
+++ b/scripts/helpers/Channel.js
@@ -22,6 +22,11 @@ module.exports = class Channel {
this.languages = this.parseLanguages(data.tvg.language)
}
+ updateUrl(url) {
+ this.url = url
+ this.data.url = url
+ }
+
parseName(title) {
return title
.trim()
diff --git a/scripts/helpers/utils.js b/scripts/helpers/utils.js
index 7a2bae063..f0d9b3e50 100644
--- a/scripts/helpers/utils.js
+++ b/scripts/helpers/utils.js
@@ -1,4 +1,3 @@
-const escapeStringRegexp = require('escape-string-regexp')
const transliteration = require('transliteration')
const iso6393 = require('@freearhey/iso-639-3')
const categories = require('./categories')
@@ -71,16 +70,6 @@ utils.sortBy = function (arr, fields) {
})
}
-utils.escapeStringRegexp = function (scring) {
- return escapeStringRegexp(string)
-}
-
-utils.sleep = function (ms) {
- return function (x) {
- return new Promise(resolve => setTimeout(() => resolve(x), ms))
- }
-}
-
utils.removeProtocol = function (string) {
return string.replace(/(^\w+:|^)\/\//, '')
}