Merge branch 'master' into patch-2025.03.2

pull/20404/head
Aleksandr Statciuk 1 month ago committed by GitHub
commit 942af8ef4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -10,17 +10,24 @@ jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: tj-actions/changed-files@v35
- name: changed files
id: files
with:
files: streams/*.m3u
- uses: actions/setup-node@v3
run: |
FILES=streams/*.m3u
ANY_CHANGED=false
ALL_CHANGED_FILES=$(git diff --name-only "${FILES}" | tr '\n' ' ')
if [ -n "${ALL_CHANGED_FILES}" ]; then
ANY_CHANGED=true
fi
echo "all_changed_files=$ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT"
echo "any_changed=$ANY_CHANGED" >> "$GITHUB_OUTPUT"
- uses: actions/setup-node@v4
if: ${{ !env.ACT && steps.files.outputs.any_changed == 'true' }}
with:
node-version: 20
node-version: 22
cache: 'npm'
- name: install dependencies
if: steps.files.outputs.any_changed == 'true'

@ -2,14 +2,18 @@ name: format
on:
workflow_dispatch:
# pull_request:
# types:
# - closed
# types: [closed]
# branches:
# - master
# schedule:
# - cron: "0 12 * * *"
jobs:
main:
# if: ${{ github.event.pull_request.merged == true }}
on_trigger:
# if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
if: ${{ github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: tibdex/github-app-token@v1.8.2
@ -18,38 +22,120 @@ jobs:
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: actions/checkout@v3
- uses: actions/checkout@v4
if: ${{ !env.ACT }}
with:
fetch-depth: 2
token: ${{ steps.create-app-token.outputs.token }}
- uses: actions/setup-node@v4
if: ${{ !env.ACT }}
with:
node-version: 22
cache: 'npm'
- name: setup git
run: |
git config user.name "iptv-bot[bot]"
git config user.email "84861620+iptv-bot[bot]@users.noreply.github.com"
- uses: tj-actions/changed-files@v35
id: files
- name: install dependencies
run: npm install
- name: format internal playlists
run: npm run playlist:format
- name: check internal playlists
run: |
npm run playlist:lint
npm run playlist:validate
- name: changed files
id: files_after
run: |
FILES=streams/*.m3u
ANY_CHANGED=false
ALL_CHANGED_FILES=$(git diff --name-only "${FILES}" | tr '\n' ' ')
if [ -n "${ALL_CHANGED_FILES}" ]; then
ANY_CHANGED=true
fi
echo "all_changed_files=$ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT"
echo "any_changed=$ANY_CHANGED" >> "$GITHUB_OUTPUT"
- name: git status
run: git status
- name: commit changes
if: steps.files_after.outputs.any_changed == 'true'
run: |
git add streams
git status
git commit -m "[Bot] Format /streams" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [format](https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }}) workflow." --no-verify
- name: push all changes to the repository
if: ${{ !env.ACT && github.ref == 'refs/heads/master' && steps.files_after.outputs.any_changed == 'true' }}
run: git push
on_merge:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
files: streams/*.m3u
- uses: actions/setup-node@v3
fetch-depth: 2
- uses: tibdex/github-app-token@v1.8.2
if: ${{ !env.ACT }}
id: create-app-token
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
- uses: actions/checkout@v4
if: ${{ !env.ACT }}
with:
node-version: 20
fetch-depth: 2
token: ${{ steps.create-app-token.outputs.token }}
- name: changed files
id: files
run: |
FILES=streams/*.m3u
ANY_CHANGED=false
ALL_CHANGED_FILES=$(git diff --name-only "${FILES}" | tr '\n' ' ')
if [ -n "${ALL_CHANGED_FILES}" ]; then
ANY_CHANGED=true
fi
echo "all_changed_files=$ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT"
echo "any_changed=$ANY_CHANGED" >> "$GITHUB_OUTPUT"
- uses: actions/setup-node@v4
if: ${{ !env.ACT && steps.files.outputs.any_changed == 'true' }}
with:
node-version: 22
cache: 'npm'
- name: setup git
if: steps.files.outputs.any_changed == 'true'
run: |
git config user.name "iptv-bot[bot]"
git config user.email "84861620+iptv-bot[bot]@users.noreply.github.com"
- name: install dependencies
if: steps.files.outputs.any_changed == 'true'
run: npm install
- name: format internal playlists
run: npm run playlist:format
if: steps.files.outputs.any_changed == 'true'
run: npm run playlist:format -- ${{ steps.files.outputs.all_changed_files }}
- name: check internal playlists
if: steps.files.outputs.any_changed == 'true'
run: |
npm run playlist:lint
npm run playlist:validate
- run: git status
- name: commit changes to /streams
npm run playlist:lint -- ${{ steps.files.outputs.all_changed_files }}
npm run playlist:validate -- ${{ steps.files.outputs.all_changed_files }}
- name: git status
if: steps.files.outputs.any_changed == 'true'
run: git status
- name: changed files
id: files_after
run: |
FILES=streams/*.m3u
ANY_CHANGED=false
ALL_CHANGED_FILES=$(git diff --name-only "${FILES}" | tr '\n' ' ')
if [ -n "${ALL_CHANGED_FILES}" ]; then
ANY_CHANGED=true
fi
echo "all_changed_files=$ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT"
echo "any_changed=$ANY_CHANGED" >> "$GITHUB_OUTPUT"
- name: commit changes
if: steps.files_after.outputs.any_changed == 'true'
run: |
git add streams
git status
git commit -m "[Bot] Format /streams" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [format](https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }}) workflow." --no-verify
- name: push all changes to the repository
if: ${{ !env.ACT && github.ref == 'refs/heads/master' }}
if: ${{ !env.ACT && github.ref == 'refs/heads/master' && steps.files_after.outputs.any_changed == 'true' }}
run: git push

@ -65,7 +65,7 @@ Same thing, but split up into separate files:
<tr><td>Education</td><td align="right">161</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/education.m3u</code></td></tr>
<tr><td>Entertainment</td><td align="right">581</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/entertainment.m3u</code></td></tr>
<tr><td>Family</td><td align="right">48</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/family.m3u</code></td></tr>
<tr><td>General</td><td align="right">2379</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/general.m3u</code></td></tr>
<tr><td>General</td><td align="right">2382</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/general.m3u</code></td></tr>
<tr><td>Kids</td><td align="right">226</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/kids.m3u</code></td></tr>
<tr><td>Legislative</td><td align="right">191</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/legislative.m3u</code></td></tr>
<tr><td>Lifestyle</td><td align="right">91</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/lifestyle.m3u</code></td></tr>
@ -82,7 +82,7 @@ Same thing, but split up into separate files:
<tr><td>Travel</td><td align="right">44</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/travel.m3u</code></td></tr>
<tr><td>Weather</td><td align="right">13</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/weather.m3u</code></td></tr>
<tr><td>XXX</td><td align="right">0</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/xxx.m3u</code></td></tr>
<tr><td>Undefined</td><td align="right">4348</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/undefined.m3u</code></td></tr>
<tr><td>Undefined</td><td align="right">4347</td><td nowrap><code>https://iptv-org.github.io/iptv/categories/undefined.m3u</code></td></tr>
</tbody>
</table>
@ -115,7 +115,7 @@ Same thing, but split up into separate files:
<tr><td align="left">Albanian</td><td align="right">43</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/sqi.m3u</code></td></tr>
<tr><td align="left">Alur</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/alz.m3u</code></td></tr>
<tr><td align="left">Amharic</td><td align="right">8</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/amh.m3u</code></td></tr>
<tr><td align="left">Arabic</td><td align="right">379</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ara.m3u</code></td></tr>
<tr><td align="left">Arabic</td><td align="right">381</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/ara.m3u</code></td></tr>
<tr><td align="left">Armenian</td><td align="right">25</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/hye.m3u</code></td></tr>
<tr><td align="left">Assamese</td><td align="right">7</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/asm.m3u</code></td></tr>
<tr><td align="left">Assyrian Neo-Aramaic</td><td align="right">1</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/languages/aii.m3u</code></td></tr>
@ -472,7 +472,7 @@ Same thing, but split up into separate files:
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Azuay</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-a.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loja</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-l.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Orellana</td><td align="right">1</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/ec-d.m3u</code></td></tr>
<tr><td>🇪🇬 Egypt</td><td align="right">92</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/eg.m3u</code></td></tr>
<tr><td>🇪🇬 Egypt</td><td align="right">93</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/eg.m3u</code></td></tr>
<tr><td>🇸🇻 El Salvador</td><td align="right">108</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/sv.m3u</code></td></tr>
<tr><td>🇬🇶 Equatorial Guinea</td><td align="right">27</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/gq.m3u</code></td></tr>
<tr><td>🇪🇷 Eritrea</td><td align="right">23</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/er.m3u</code></td></tr>
@ -753,7 +753,7 @@ Same thing, but split up into separate files:
<tr><td>🇻🇮 U.S. Virgin Islands</td><td align="right">14</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/vi.m3u</code></td></tr>
<tr><td>🇺🇬 Uganda</td><td align="right">51</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ug.m3u</code></td></tr>
<tr><td>🇺🇦 Ukraine</td><td align="right">100</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ua.m3u</code></td></tr>
<tr><td>🇦🇪 United Arab Emirates</td><td align="right">91</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ae.m3u</code></td></tr>
<tr><td>🇦🇪 United Arab Emirates</td><td align="right">92</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/ae.m3u</code></td></tr>
<tr><td>🇬🇧 United Kingdom</td><td align="right">225</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/uk.m3u</code></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wales</td><td align="right">2</td><td nowrap><code>https://iptv-org.github.io/iptv/subdivisions/gb-wls.m3u</code></td></tr>
<tr><td>🇺🇸 United States</td><td align="right">2049</td><td nowrap><code>https://iptv-org.github.io/iptv/countries/us.m3u</code></td></tr>
@ -843,10 +843,10 @@ Same thing, but split up into separate files:
<tr><th align="left">Region</th><th align="left">Channels</th><th align="left">Playlist</th></tr>
</thead>
<tbody>
<tr><td align="left">Africa</td><td align="right">513</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/afr.m3u</code></td></tr>
<tr><td align="left">Africa</td><td align="right">514</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/afr.m3u</code></td></tr>
<tr><td align="left">Americas</td><td align="right">4595</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/amer.m3u</code></td></tr>
<tr><td align="left">Arab world</td><td align="right">369</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/arab.m3u</code></td></tr>
<tr><td align="left">Asia</td><td align="right">2644</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asia.m3u</code></td></tr>
<tr><td align="left">Arab world</td><td align="right">371</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/arab.m3u</code></td></tr>
<tr><td align="left">Asia</td><td align="right">2645</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asia.m3u</code></td></tr>
<tr><td align="left">Asia-Pacific</td><td align="right">1681</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/apac.m3u</code></td></tr>
<tr><td align="left">Association of Southeast Asian Nations</td><td align="right">339</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/asean.m3u</code></td></tr>
<tr><td align="left">Balkan</td><td align="right">661</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/balkan.m3u</code></td></tr>
@ -857,14 +857,14 @@ Same thing, but split up into separate files:
<tr><td align="left">Central Asia</td><td align="right">78</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cas.m3u</code></td></tr>
<tr><td align="left">Commonwealth of Independent States</td><td align="right">401</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/cis.m3u</code></td></tr>
<tr><td align="left">Europe</td><td align="right">4107</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/eur.m3u</code></td></tr>
<tr><td align="left">Europe, the Middle East and Africa</td><td align="right">4980</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/emea.m3u</code></td></tr>
<tr><td align="left">Europe, the Middle East and Africa</td><td align="right">4982</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/emea.m3u</code></td></tr>
<tr><td align="left">European Union</td><td align="right">2855</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/eu.m3u</code></td></tr>
<tr><td align="left">Hispanic America</td><td align="right">1844</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/hispam.m3u</code></td></tr>
<tr><td align="left">Latin America</td><td align="right">2136</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/latam.m3u</code></td></tr>
<tr><td align="left">Latin America and the Caribbean</td><td align="right">2169</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/lac.m3u</code></td></tr>
<tr><td align="left">Maghreb</td><td align="right">48</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/maghreb.m3u</code></td></tr>
<tr><td align="left">Middle East</td><td align="right">726</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mideast.m3u</code></td></tr>
<tr><td align="left">Middle East and North Africa</td><td align="right">759</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mena.m3u</code></td></tr>
<tr><td align="left">Middle East</td><td align="right">728</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mideast.m3u</code></td></tr>
<tr><td align="left">Middle East and North Africa</td><td align="right">761</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/mena.m3u</code></td></tr>
<tr><td align="left">Nordics</td><td align="right">85</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/nord.m3u</code></td></tr>
<tr><td align="left">North America</td><td align="right">3299</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/noram.m3u</code></td></tr>
<tr><td align="left">Northern America</td><td align="right">2436</td><td align="left" nowrap><code>https://iptv-org.github.io/iptv/regions/nam.m3u</code></td></tr>

@ -151,3 +151,5 @@ https://weyyak-live.akamaized.net/weyyak_mix/index.m3u8
https://weyyak-live.akamaized.net/weyyak_nawaem/index.m3u8
#EXTINF:-1 tvg-id="YasTV.ae",Yas TV (1080p)
https://vo-live.cdb.cdn.orange.com/Content/Channel/YASSportsChannel/HLS/index.m3u8
#EXTINF:-1 tvg-id="AlDafrahTV.ae",Al Dafrah TV (720p)
https://rtmp-live-ingest-eu-west-3-universe-dacast-com.akamaized.net/transmuxv1/streams/dbb8ac05-a020-784c-3a95-6ed027941532.m3u8

@ -49,3 +49,5 @@ https://d35j504z0x2vu2.cloudfront.net/v1/master/0bc8e8376bd8417a1b6761138aa41c26
https://bcovlive-a.akamaihd.net/0e524e1838ed411dad0a674d18e07914/eu-central-1/6415808954001/playlist_dvr.m3u8
#EXTINF:-1 tvg-id="WatanTV.eg",Watan TV (1080p)
https://rp.tactivemedia.com/watantv_source/live/playlist.m3u8
#EXTINF:-1 tvg-id="TeN.eg",TeN (720p) [Geo-blocked]
https://weyyak-live.akamaized.net/weyyak_ten_tv/index.m3u8

@ -53,3 +53,5 @@ https://playlist.fasttvcdn.com/pl/ptllxjd03j6g9oxxjdfapg/roya-kids-originals/pla
https://playlist.fasttvcdn.com/pl/toa2uuhhygheuly7xtuqrg/roya-kitchen/playlist.m3u8
#EXTINF:-1 tvg-id="RoyaTV.jo",Roya TV (1080p) [Not 24/7]
https://royatv-live.daioncdn.net/royatv/royatv.m3u8
#EXTINF:-1 tvg-id="RoyaTV.jo",Roya TV (720p)
https://weyyak-live.akamaized.net/weyyak_roya/index.m3u8

@ -105,18 +105,6 @@ http://185.236.229.62:9981/play/a06s
http://109.233.89.170/CBS_Reality_HD/index.m3u8
#EXTINF:-1 tvg-id="CBSReality.pl",CBS Reality (1080p)
http://185.236.229.62:9981/play/a02v
#EXTINF:-1 tvg-id="Cinemax.pl",Cinemax (1080p)
http://109.233.89.166/CINEMAX_HD/index.m3u8
#EXTINF:-1 tvg-id="Cinemax.pl",Cinemax (1080p)
http://109.233.89.170/CINEMAX_HD/index.m3u8
#EXTINF:-1 tvg-id="Cinemax.pl",Cinemax (1080p)
http://185.236.229.62:9981/play/a05p
#EXTINF:-1 tvg-id="Cinemax2.pl",Cinemax 2 (1080p)
http://109.233.89.166/CINEMAX_2_HD/index.m3u8
#EXTINF:-1 tvg-id="Cinemax2.pl",Cinemax 2 (1080p)
http://109.233.89.170/CINEMAX_2_HD/index.m3u8
#EXTINF:-1 tvg-id="Cinemax2.pl",Cinemax 2 (1080p)
http://185.236.229.62:9981/play/a07r
#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p)
http://109.233.89.166/Comedy_Central_HD/index.m3u8
#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p)

@ -61,8 +61,6 @@ https://5d658d7e9f562.streamlock.net/atfal1.com/atfal2/playlist.m3u8
https://shls-live-enc.edgenextcdn.net/out/v1/97427be47b79457b9ca245e22a8db23a/index.m3u8
#EXTINF:-1 tvg-id="BigTimePlus.sa",Big Time Plus (1080p)
https://big-time-plus-enc.edgenextcdn.net/out/v1/c885383fb76943c98fa223e7fd08b125/index.m3u8
#EXTINF:-1 tvg-id="IqraaArabic.sa",Iqraa (576p) [Not 24/7]
https://jmc-live.ercdn.net/iqraa/iqraa.m3u8
#EXTINF:-1 tvg-id="IqraaArabic.sa",Iqraa Arabic (1080p) [Not 24/7]
https://playlist.fasttvcdn.com/pl/dlkqw1ftuvuuzkcb4pxdcg/Iqraafasttv3/playlist.m3u8
#EXTINF:-1 tvg-id="IqraaQuran.sa",Iqraa Quran (1080p)

Loading…
Cancel
Save