diff --git a/.gitignore b/.gitignore index 3fe46ea01..ad225b41d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ node_modules .secrets .actrc .DS_Store -.gh-pages -.api +/.gh-pages/ +/.api/ .env -/temp \ No newline at end of file +/temp/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 022381c63..1ddaf545d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ You have several options: -1. Create a new [issue](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams:add&projects=&template=-----streams_add.yml&title=Add%3A+) and provide all the required information. If the request is approved, the link will be added to the playlist in the next update. +1. Create a new [issue](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams:add&projects=&template=1_streams_add.yml&title=Add%3A+) and provide all the required information. If the request is approved, the link will be added to the playlist in the next update. 2. Add the link to the playlist directly using a [pull request](https://github.com/iptv-org/iptv/pulls). @@ -51,7 +51,7 @@ If the link answers, you're with an Xtream Codes server. ### How to report a broken stream? -Fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=broken+stream&projects=&template=---broken-stream.yml&title=Broken%3A+) and as soon as a working replacement appears, we will add it to the playlist or at least remove the non-working one. +Fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=broken+stream,streams:remove&projects=&template=3_broken-stream.yml&title=Broken%3A+) and as soon as a working replacement appears, we will add it to the playlist or at least remove the non-working one. The only thing before publishing your report is to make sure that: @@ -93,7 +93,7 @@ After that, all you have to do is report any broken streams you find. ### How do I remove my channel from playlist? -To request removal of a link to a channel from the repository, you need to fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=removal+request&projects=&template=-removal-request.yml&title=Remove%3A+) and wait for the request to be reviewed (this usually takes no more than 1 business day). And if the request is approved, links to the channel will be immediately removed from the repository. +To request removal of a link to a channel from the repository, you need to fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=removal+request&projects=&template=6_copyright-claim.yml&title=Remove%3A+) and wait for the request to be reviewed (this usually takes no more than 1 business day). And if the request is approved, links to the channel will be immediately removed from the repository. The channel will also be added to our [blocklist](https://github.com/iptv-org/database/blob/master/data/blocklist.csv) to avoid its appearance in our playlists in the future. diff --git a/README.md b/README.md index 93ad85c86..547810ecf 100644 --- a/README.md +++ b/README.md @@ -54,35 +54,35 @@ Same thing, but split up into separate files: CategoryChannelsPlaylist - Animation46https://iptv-org.github.io/iptv/categories/animation.m3u + Animation45https://iptv-org.github.io/iptv/categories/animation.m3u Auto14https://iptv-org.github.io/iptv/categories/auto.m3u - Business61https://iptv-org.github.io/iptv/categories/business.m3u + Business60https://iptv-org.github.io/iptv/categories/business.m3u Classic44https://iptv-org.github.io/iptv/categories/classic.m3u - Comedy59https://iptv-org.github.io/iptv/categories/comedy.m3u - Cooking24https://iptv-org.github.io/iptv/categories/cooking.m3u - Culture168https://iptv-org.github.io/iptv/categories/culture.m3u - Documentary81https://iptv-org.github.io/iptv/categories/documentary.m3u - Education152https://iptv-org.github.io/iptv/categories/education.m3u - Entertainment545https://iptv-org.github.io/iptv/categories/entertainment.m3u + Comedy60https://iptv-org.github.io/iptv/categories/comedy.m3u + Cooking23https://iptv-org.github.io/iptv/categories/cooking.m3u + Culture167https://iptv-org.github.io/iptv/categories/culture.m3u + Documentary78https://iptv-org.github.io/iptv/categories/documentary.m3u + Education150https://iptv-org.github.io/iptv/categories/education.m3u + Entertainment543https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u - General2346https://iptv-org.github.io/iptv/categories/general.m3u - Kids181https://iptv-org.github.io/iptv/categories/kids.m3u + General2344https://iptv-org.github.io/iptv/categories/general.m3u + Kids174https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u - Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u - Movies236https://iptv-org.github.io/iptv/categories/movies.m3u - Music664https://iptv-org.github.io/iptv/categories/music.m3u - News767https://iptv-org.github.io/iptv/categories/news.m3u + Lifestyle77https://iptv-org.github.io/iptv/categories/lifestyle.m3u + Movies234https://iptv-org.github.io/iptv/categories/movies.m3u + Music660https://iptv-org.github.io/iptv/categories/music.m3u + News768https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u Relax2https://iptv-org.github.io/iptv/categories/relax.m3u - Religious692https://iptv-org.github.io/iptv/categories/religious.m3u + Religious693https://iptv-org.github.io/iptv/categories/religious.m3u Science21https://iptv-org.github.io/iptv/categories/science.m3u Series149https://iptv-org.github.io/iptv/categories/series.m3u - Shop86https://iptv-org.github.io/iptv/categories/shop.m3u - Sports268https://iptv-org.github.io/iptv/categories/sports.m3u + Shop87https://iptv-org.github.io/iptv/categories/shop.m3u + Sports263https://iptv-org.github.io/iptv/categories/sports.m3u Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4721https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4710https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -112,10 +112,10 @@ Same thing, but split up into separate files: Adhola1https://iptv-org.github.io/iptv/languages/adh.m3u Afghan Persian7https://iptv-org.github.io/iptv/languages/prs.m3u Afrikaans3https://iptv-org.github.io/iptv/languages/afr.m3u - Albanian37https://iptv-org.github.io/iptv/languages/sqi.m3u + Albanian46https://iptv-org.github.io/iptv/languages/sqi.m3u Alur1https://iptv-org.github.io/iptv/languages/alz.m3u Amharic7https://iptv-org.github.io/iptv/languages/amh.m3u - Arabic393https://iptv-org.github.io/iptv/languages/ara.m3u + Arabic392https://iptv-org.github.io/iptv/languages/ara.m3u Armenian25https://iptv-org.github.io/iptv/languages/hye.m3u Assamese7https://iptv-org.github.io/iptv/languages/asm.m3u Assyrian Neo-Aramaic1https://iptv-org.github.io/iptv/languages/aii.m3u @@ -138,7 +138,7 @@ Same thing, but split up into separate files: Chewa3https://iptv-org.github.io/iptv/languages/nya.m3u Chhattisgarhi1https://iptv-org.github.io/iptv/languages/hne.m3u Chiga1https://iptv-org.github.io/iptv/languages/cgg.m3u - Chinese188https://iptv-org.github.io/iptv/languages/zho.m3u + Chinese181https://iptv-org.github.io/iptv/languages/zho.m3u Croatian22https://iptv-org.github.io/iptv/languages/hrv.m3u Czech35https://iptv-org.github.io/iptv/languages/ces.m3u Danish19https://iptv-org.github.io/iptv/languages/dan.m3u @@ -150,7 +150,7 @@ Same thing, but split up into separate files: Dutch188https://iptv-org.github.io/iptv/languages/nld.m3u Dyula1https://iptv-org.github.io/iptv/languages/dyu.m3u Egyptian Arabic2https://iptv-org.github.io/iptv/languages/arz.m3u - English2113https://iptv-org.github.io/iptv/languages/eng.m3u + English2109https://iptv-org.github.io/iptv/languages/eng.m3u Estonian9https://iptv-org.github.io/iptv/languages/est.m3u Ewe2https://iptv-org.github.io/iptv/languages/ewe.m3u Faroese1https://iptv-org.github.io/iptv/languages/fao.m3u @@ -158,14 +158,14 @@ Same thing, but split up into separate files: Filipino1https://iptv-org.github.io/iptv/languages/fil.m3u Finnish23https://iptv-org.github.io/iptv/languages/fin.m3u Fon3https://iptv-org.github.io/iptv/languages/fon.m3u - French418https://iptv-org.github.io/iptv/languages/fra.m3u + French414https://iptv-org.github.io/iptv/languages/fra.m3u Fulah2https://iptv-org.github.io/iptv/languages/ful.m3u Gaelic2https://iptv-org.github.io/iptv/languages/gla.m3u Galician13https://iptv-org.github.io/iptv/languages/glg.m3u Ganda5https://iptv-org.github.io/iptv/languages/lug.m3u Gen1https://iptv-org.github.io/iptv/languages/gej.m3u Georgian9https://iptv-org.github.io/iptv/languages/kat.m3u - German257https://iptv-org.github.io/iptv/languages/deu.m3u + German259https://iptv-org.github.io/iptv/languages/deu.m3u Gikuyu2https://iptv-org.github.io/iptv/languages/kik.m3u Goan Konkani1https://iptv-org.github.io/iptv/languages/gom.m3u Greek125https://iptv-org.github.io/iptv/languages/ell.m3u @@ -184,14 +184,14 @@ Same thing, but split up into separate files: Iranian Persian1https://iptv-org.github.io/iptv/languages/pes.m3u Irish7https://iptv-org.github.io/iptv/languages/gle.m3u Isekiri1https://iptv-org.github.io/iptv/languages/its.m3u - Italian288https://iptv-org.github.io/iptv/languages/ita.m3u - Japanese70https://iptv-org.github.io/iptv/languages/jpn.m3u + Italian289https://iptv-org.github.io/iptv/languages/ita.m3u + Japanese69https://iptv-org.github.io/iptv/languages/jpn.m3u Javanese3https://iptv-org.github.io/iptv/languages/jav.m3u Kabiyรจ1https://iptv-org.github.io/iptv/languages/kbp.m3u Kabyle1https://iptv-org.github.io/iptv/languages/kab.m3u Kannada11https://iptv-org.github.io/iptv/languages/kan.m3u Kapampangan1https://iptv-org.github.io/iptv/languages/pam.m3u - Kazakh29https://iptv-org.github.io/iptv/languages/kaz.m3u + Kazakh28https://iptv-org.github.io/iptv/languages/kaz.m3u Khmer22https://iptv-org.github.io/iptv/languages/khm.m3u Khorasani Turkish1https://iptv-org.github.io/iptv/languages/kmz.m3u Kinyarwanda7https://iptv-org.github.io/iptv/languages/kin.m3u @@ -201,19 +201,19 @@ Same thing, but split up into separate files: Konkani (macrolanguage)2https://iptv-org.github.io/iptv/languages/kok.m3u Korean96https://iptv-org.github.io/iptv/languages/kor.m3u Kumam1https://iptv-org.github.io/iptv/languages/kdi.m3u - Kurdish31https://iptv-org.github.io/iptv/languages/kur.m3u + Kurdish32https://iptv-org.github.io/iptv/languages/kur.m3u Lango (Uganda)1https://iptv-org.github.io/iptv/languages/laj.m3u Lao8https://iptv-org.github.io/iptv/languages/lao.m3u - Latin3https://iptv-org.github.io/iptv/languages/lat.m3u - Latvian13https://iptv-org.github.io/iptv/languages/lav.m3u + Latin2https://iptv-org.github.io/iptv/languages/lat.m3u + Latvian8https://iptv-org.github.io/iptv/languages/lav.m3u Letzeburgesch12https://iptv-org.github.io/iptv/languages/ltz.m3u Lingala5https://iptv-org.github.io/iptv/languages/lin.m3u Lithuanian8https://iptv-org.github.io/iptv/languages/lit.m3u Luba-Lulua1https://iptv-org.github.io/iptv/languages/lua.m3u Macedonian34https://iptv-org.github.io/iptv/languages/mkd.m3u Maithili1https://iptv-org.github.io/iptv/languages/mai.m3u - Malay17https://iptv-org.github.io/iptv/languages/msa.m3u - Malayalam64https://iptv-org.github.io/iptv/languages/mal.m3u + Malay18https://iptv-org.github.io/iptv/languages/msa.m3u + Malayalam65https://iptv-org.github.io/iptv/languages/mal.m3u Maltese8https://iptv-org.github.io/iptv/languages/mlt.m3u Mandarin Chinese3https://iptv-org.github.io/iptv/languages/cmn.m3u Mandinka1https://iptv-org.github.io/iptv/languages/mnk.m3u @@ -234,25 +234,25 @@ Same thing, but split up into separate files: Papiamento18https://iptv-org.github.io/iptv/languages/pap.m3u Parsi-Dari3https://iptv-org.github.io/iptv/languages/prd.m3u Pashto16https://iptv-org.github.io/iptv/languages/pus.m3u - Persian138https://iptv-org.github.io/iptv/languages/fas.m3u - Polish152https://iptv-org.github.io/iptv/languages/pol.m3u - Portuguese334https://iptv-org.github.io/iptv/languages/por.m3u + Persian139https://iptv-org.github.io/iptv/languages/fas.m3u + Polish141https://iptv-org.github.io/iptv/languages/pol.m3u + Portuguese337https://iptv-org.github.io/iptv/languages/por.m3u Pulaar1https://iptv-org.github.io/iptv/languages/fuc.m3u Quechua1https://iptv-org.github.io/iptv/languages/que.m3u Romanian127https://iptv-org.github.io/iptv/languages/ron.m3u Romany1https://iptv-org.github.io/iptv/languages/rom.m3u Rundi1https://iptv-org.github.io/iptv/languages/run.m3u - Russian279https://iptv-org.github.io/iptv/languages/rus.m3u + Russian259https://iptv-org.github.io/iptv/languages/rus.m3u Saint Lucian Creole French2https://iptv-org.github.io/iptv/languages/acf.m3u Samoan2https://iptv-org.github.io/iptv/languages/smo.m3u Santali1https://iptv-org.github.io/iptv/languages/sat.m3u - Serbian46https://iptv-org.github.io/iptv/languages/srp.m3u + Serbian47https://iptv-org.github.io/iptv/languages/srp.m3u Serbo-Croatian1https://iptv-org.github.io/iptv/languages/hbs.m3u Sinhala5https://iptv-org.github.io/iptv/languages/sin.m3u Slovak49https://iptv-org.github.io/iptv/languages/slk.m3u Slovenian13https://iptv-org.github.io/iptv/languages/slv.m3u Somali11https://iptv-org.github.io/iptv/languages/som.m3u - Spanish2070https://iptv-org.github.io/iptv/languages/spa.m3u + Spanish2072https://iptv-org.github.io/iptv/languages/spa.m3u Sranan Tongo3https://iptv-org.github.io/iptv/languages/srn.m3u Swahili24https://iptv-org.github.io/iptv/languages/swa.m3u Swedish16https://iptv-org.github.io/iptv/languages/swe.m3u @@ -271,7 +271,7 @@ Same thing, but split up into separate files: Tooro1https://iptv-org.github.io/iptv/languages/ttj.m3u Tswana1https://iptv-org.github.io/iptv/languages/tsn.m3u Tumzabt1https://iptv-org.github.io/iptv/languages/mzb.m3u - Turkish259https://iptv-org.github.io/iptv/languages/tur.m3u + Turkish260https://iptv-org.github.io/iptv/languages/tur.m3u Turkmen8https://iptv-org.github.io/iptv/languages/tuk.m3u Uighur3https://iptv-org.github.io/iptv/languages/uig.m3u Ukrainian60https://iptv-org.github.io/iptv/languages/ukr.m3u @@ -284,9 +284,9 @@ Same thing, but split up into separate files: Yakut1https://iptv-org.github.io/iptv/languages/sah.m3u Yoruba1https://iptv-org.github.io/iptv/languages/yor.m3u Yucatec Maya1https://iptv-org.github.io/iptv/languages/yua.m3u - Yue Chinese7https://iptv-org.github.io/iptv/languages/yue.m3u + Yue Chinese5https://iptv-org.github.io/iptv/languages/yue.m3u Zarma1https://iptv-org.github.io/iptv/languages/dje.m3u - Undefined2889https://iptv-org.github.io/iptv/languages/undefined.m3u + Undefined2880https://iptv-org.github.io/iptv/languages/undefined.m3u @@ -316,11 +316,11 @@ Same thing, but split up into separate files: ๐Ÿ‡ฆ๐Ÿ‡ฑ Albania42https://iptv-org.github.io/iptv/countries/al.m3u ๐Ÿ‡ฉ๐Ÿ‡ฟ Algeria71https://iptv-org.github.io/iptv/countries/dz.m3u ๐Ÿ‡ฆ๐Ÿ‡ธ American Samoa5https://iptv-org.github.io/iptv/countries/as.m3u - ๐Ÿ‡ฆ๐Ÿ‡ฉ Andorra34https://iptv-org.github.io/iptv/countries/ad.m3u + ๐Ÿ‡ฆ๐Ÿ‡ฉ Andorra33https://iptv-org.github.io/iptv/countries/ad.m3u ๐Ÿ‡ฆ๐Ÿ‡ด Angola27https://iptv-org.github.io/iptv/countries/ao.m3u ๐Ÿ‡ฆ๐Ÿ‡ฎ Anguilla12https://iptv-org.github.io/iptv/countries/ai.m3u ๐Ÿ‡ฆ๐Ÿ‡ฌ Antigua and Barbuda13https://iptv-org.github.io/iptv/countries/ag.m3u - ๐Ÿ‡ฆ๐Ÿ‡ท Argentina222https://iptv-org.github.io/iptv/countries/ar.m3u + ๐Ÿ‡ฆ๐Ÿ‡ท Argentina224https://iptv-org.github.io/iptv/countries/ar.m3u       Buenos Aires18https://iptv-org.github.io/iptv/subdivisions/ar-b.m3u       Catamarca1https://iptv-org.github.io/iptv/subdivisions/ar-k.m3u       Chaco3https://iptv-org.github.io/iptv/subdivisions/ar-h.m3u @@ -343,31 +343,33 @@ Same thing, but split up into separate files:       Santa Fe3https://iptv-org.github.io/iptv/subdivisions/ar-s.m3u       Santiago del Estero1https://iptv-org.github.io/iptv/subdivisions/ar-g.m3u       Tucuman2https://iptv-org.github.io/iptv/subdivisions/ar-t.m3u - ๐Ÿ‡ฆ๐Ÿ‡ฒ Armenia55https://iptv-org.github.io/iptv/countries/am.m3u + ๐Ÿ‡ฆ๐Ÿ‡ฒ Armenia52https://iptv-org.github.io/iptv/countries/am.m3u ๐Ÿ‡ฆ๐Ÿ‡ผ Aruba21https://iptv-org.github.io/iptv/countries/aw.m3u - ๐Ÿ‡ฆ๐Ÿ‡บ Australia38https://iptv-org.github.io/iptv/countries/au.m3u - ๐Ÿ‡ฆ๐Ÿ‡น Austria74https://iptv-org.github.io/iptv/countries/at.m3u - ๐Ÿ‡ฆ๐Ÿ‡ฟ Azerbaijan49https://iptv-org.github.io/iptv/countries/az.m3u + ๐Ÿ‡ฆ๐Ÿ‡บ Australia40https://iptv-org.github.io/iptv/countries/au.m3u + ๐Ÿ‡ฆ๐Ÿ‡น Austria75https://iptv-org.github.io/iptv/countries/at.m3u +       Karnten1https://iptv-org.github.io/iptv/subdivisions/at-2.m3u +       Steiermark1https://iptv-org.github.io/iptv/subdivisions/at-6.m3u + ๐Ÿ‡ฆ๐Ÿ‡ฟ Azerbaijan46https://iptv-org.github.io/iptv/countries/az.m3u ๐Ÿ‡ง๐Ÿ‡ธ Bahamas15https://iptv-org.github.io/iptv/countries/bs.m3u ๐Ÿ‡ง๐Ÿ‡ญ Bahrain46https://iptv-org.github.io/iptv/countries/bh.m3u ๐Ÿ‡ง๐Ÿ‡ฉ Bangladesh20https://iptv-org.github.io/iptv/countries/bd.m3u ๐Ÿ‡ง๐Ÿ‡ง Barbados13https://iptv-org.github.io/iptv/countries/bb.m3u - ๐Ÿ‡ง๐Ÿ‡พ Belarus50https://iptv-org.github.io/iptv/countries/by.m3u - ๐Ÿ‡ง๐Ÿ‡ช Belgium71https://iptv-org.github.io/iptv/countries/be.m3u + ๐Ÿ‡ง๐Ÿ‡พ Belarus47https://iptv-org.github.io/iptv/countries/by.m3u + ๐Ÿ‡ง๐Ÿ‡ช Belgium70https://iptv-org.github.io/iptv/countries/be.m3u ๐Ÿ‡ง๐Ÿ‡ฟ Belize9https://iptv-org.github.io/iptv/countries/bz.m3u ๐Ÿ‡ง๐Ÿ‡ฏ Benin33https://iptv-org.github.io/iptv/countries/bj.m3u ๐Ÿ‡ง๐Ÿ‡ฒ Bermuda7https://iptv-org.github.io/iptv/countries/bm.m3u ๐Ÿ‡ง๐Ÿ‡น Bhutan5https://iptv-org.github.io/iptv/countries/bt.m3u - ๐Ÿ‡ง๐Ÿ‡ด Bolivia127https://iptv-org.github.io/iptv/countries/bo.m3u + ๐Ÿ‡ง๐Ÿ‡ด Bolivia129https://iptv-org.github.io/iptv/countries/bo.m3u       Cochabamba1https://iptv-org.github.io/iptv/subdivisions/bo-c.m3u       La Paz2https://iptv-org.github.io/iptv/subdivisions/bo-l.m3u       Oruro1https://iptv-org.github.io/iptv/subdivisions/bo-o.m3u       Santa Cruz2https://iptv-org.github.io/iptv/subdivisions/bo-s.m3u ๐Ÿ‡ง๐Ÿ‡ถ Bonaire5https://iptv-org.github.io/iptv/countries/bq.m3u - ๐Ÿ‡ง๐Ÿ‡ฆ Bosnia and Herzegovina46https://iptv-org.github.io/iptv/countries/ba.m3u + ๐Ÿ‡ง๐Ÿ‡ฆ Bosnia and Herzegovina45https://iptv-org.github.io/iptv/countries/ba.m3u ๐Ÿ‡ง๐Ÿ‡ผ Botswana24https://iptv-org.github.io/iptv/countries/bw.m3u ๐Ÿ‡ง๐Ÿ‡ป Bouvet Island5https://iptv-org.github.io/iptv/countries/bv.m3u - ๐Ÿ‡ง๐Ÿ‡ท Brazil298https://iptv-org.github.io/iptv/countries/br.m3u + ๐Ÿ‡ง๐Ÿ‡ท Brazil301https://iptv-org.github.io/iptv/countries/br.m3u       Alagoas3https://iptv-org.github.io/iptv/subdivisions/br-al.m3u       Amazonas1https://iptv-org.github.io/iptv/subdivisions/br-am.m3u       Bahia5https://iptv-org.github.io/iptv/subdivisions/br-ba.m3u @@ -391,12 +393,12 @@ Same thing, but split up into separate files:       Sao Paulo24https://iptv-org.github.io/iptv/subdivisions/br-sp.m3u ๐Ÿ‡ป๐Ÿ‡ฌ British Virgin Islands14https://iptv-org.github.io/iptv/countries/vg.m3u ๐Ÿ‡ง๐Ÿ‡ณ Brunei17https://iptv-org.github.io/iptv/countries/bn.m3u - ๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria63https://iptv-org.github.io/iptv/countries/bg.m3u - ๐Ÿ‡ง๐Ÿ‡ซ Burkina Faso26https://iptv-org.github.io/iptv/countries/bf.m3u + ๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria62https://iptv-org.github.io/iptv/countries/bg.m3u + ๐Ÿ‡ง๐Ÿ‡ซ Burkina Faso28https://iptv-org.github.io/iptv/countries/bf.m3u ๐Ÿ‡ง๐Ÿ‡ฎ Burundi24https://iptv-org.github.io/iptv/countries/bi.m3u ๐Ÿ‡ฐ๐Ÿ‡ญ Cambodia35https://iptv-org.github.io/iptv/countries/kh.m3u ๐Ÿ‡จ๐Ÿ‡ฒ Cameroon55https://iptv-org.github.io/iptv/countries/cm.m3u - ๐Ÿ‡จ๐Ÿ‡ฆ Canada171https://iptv-org.github.io/iptv/countries/ca.m3u + ๐Ÿ‡จ๐Ÿ‡ฆ Canada172https://iptv-org.github.io/iptv/countries/ca.m3u       Alberta5https://iptv-org.github.io/iptv/subdivisions/ca-ab.m3u       British Columbia5https://iptv-org.github.io/iptv/subdivisions/ca-bc.m3u       Manitoba3https://iptv-org.github.io/iptv/subdivisions/ca-mb.m3u @@ -423,8 +425,8 @@ Same thing, but split up into separate files:       Maule1https://iptv-org.github.io/iptv/subdivisions/cl-ml.m3u       Nuble3https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u       Valparaiso2https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u - ๐Ÿ‡จ๐Ÿ‡ณ China143https://iptv-org.github.io/iptv/countries/cn.m3u - ๐Ÿ‡จ๐Ÿ‡ด Colombia193https://iptv-org.github.io/iptv/countries/co.m3u + ๐Ÿ‡จ๐Ÿ‡ณ China138https://iptv-org.github.io/iptv/countries/cn.m3u + ๐Ÿ‡จ๐Ÿ‡ด Colombia194https://iptv-org.github.io/iptv/countries/co.m3u       Antioquia1https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u       Atlantico1https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u       Bolivar1https://iptv-org.github.io/iptv/subdivisions/co-bol.m3u @@ -443,19 +445,19 @@ Same thing, but split up into separate files:       Valle del Cauca5https://iptv-org.github.io/iptv/subdivisions/co-vac.m3u ๐Ÿ‡ฐ๐Ÿ‡ฒ Comoros60https://iptv-org.github.io/iptv/countries/km.m3u ๐Ÿ‡จ๐Ÿ‡ฐ Cook Islands5https://iptv-org.github.io/iptv/countries/ck.m3u - ๐Ÿ‡จ๐Ÿ‡ท Costa Rica136https://iptv-org.github.io/iptv/countries/cr.m3u + ๐Ÿ‡จ๐Ÿ‡ท Costa Rica137https://iptv-org.github.io/iptv/countries/cr.m3u       Puntarenas1https://iptv-org.github.io/iptv/subdivisions/cr-p.m3u       San Jose1https://iptv-org.github.io/iptv/subdivisions/cr-sj.m3u - ๐Ÿ‡ญ๐Ÿ‡ท Croatia62https://iptv-org.github.io/iptv/countries/hr.m3u - ๐Ÿ‡จ๐Ÿ‡บ Cuba67https://iptv-org.github.io/iptv/countries/cu.m3u + ๐Ÿ‡ญ๐Ÿ‡ท Croatia61https://iptv-org.github.io/iptv/countries/hr.m3u + ๐Ÿ‡จ๐Ÿ‡บ Cuba68https://iptv-org.github.io/iptv/countries/cu.m3u ๐Ÿ‡จ๐Ÿ‡ผ Curacao18https://iptv-org.github.io/iptv/countries/cw.m3u - ๐Ÿ‡จ๐Ÿ‡พ Cyprus73https://iptv-org.github.io/iptv/countries/cy.m3u - ๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic72https://iptv-org.github.io/iptv/countries/cz.m3u + ๐Ÿ‡จ๐Ÿ‡พ Cyprus72https://iptv-org.github.io/iptv/countries/cy.m3u + ๐Ÿ‡จ๐Ÿ‡ฟ Czech Republic71https://iptv-org.github.io/iptv/countries/cz.m3u ๐Ÿ‡จ๐Ÿ‡ฉ Democratic Republic of the Congo60https://iptv-org.github.io/iptv/countries/cd.m3u - ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark58https://iptv-org.github.io/iptv/countries/dk.m3u + ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark57https://iptv-org.github.io/iptv/countries/dk.m3u ๐Ÿ‡ฉ๐Ÿ‡ฏ Djibouti63https://iptv-org.github.io/iptv/countries/dj.m3u ๐Ÿ‡ฉ๐Ÿ‡ฒ Dominica13https://iptv-org.github.io/iptv/countries/dm.m3u - ๐Ÿ‡ฉ๐Ÿ‡ด Dominican Republic251https://iptv-org.github.io/iptv/countries/do.m3u + ๐Ÿ‡ฉ๐Ÿ‡ด Dominican Republic253https://iptv-org.github.io/iptv/countries/do.m3u       Distrito Nacional (Santo Domingo)2https://iptv-org.github.io/iptv/subdivisions/do-01.m3u       El Seibo1https://iptv-org.github.io/iptv/subdivisions/do-08.m3u       La Altagracia2https://iptv-org.github.io/iptv/subdivisions/do-11.m3u @@ -466,32 +468,32 @@ Same thing, but split up into separate files:       Santiago1https://iptv-org.github.io/iptv/subdivisions/do-25.m3u       Valverde1https://iptv-org.github.io/iptv/subdivisions/do-27.m3u ๐Ÿ‡น๐Ÿ‡ฑ East Timor10https://iptv-org.github.io/iptv/countries/tl.m3u - ๐Ÿ‡ช๐Ÿ‡จ Ecuador138https://iptv-org.github.io/iptv/countries/ec.m3u + ๐Ÿ‡ช๐Ÿ‡จ Ecuador139https://iptv-org.github.io/iptv/countries/ec.m3u       Azuay1https://iptv-org.github.io/iptv/subdivisions/ec-a.m3u       Loja2https://iptv-org.github.io/iptv/subdivisions/ec-l.m3u       Orellana1https://iptv-org.github.io/iptv/subdivisions/ec-d.m3u ๐Ÿ‡ช๐Ÿ‡ฌ Egypt92https://iptv-org.github.io/iptv/countries/eg.m3u - ๐Ÿ‡ธ๐Ÿ‡ป El Salvador99https://iptv-org.github.io/iptv/countries/sv.m3u + ๐Ÿ‡ธ๐Ÿ‡ป El Salvador100https://iptv-org.github.io/iptv/countries/sv.m3u ๐Ÿ‡ฌ๐Ÿ‡ถ Equatorial Guinea27https://iptv-org.github.io/iptv/countries/gq.m3u ๐Ÿ‡ช๐Ÿ‡ท Eritrea23https://iptv-org.github.io/iptv/countries/er.m3u - ๐Ÿ‡ช๐Ÿ‡ช Estonia66https://iptv-org.github.io/iptv/countries/ee.m3u + ๐Ÿ‡ช๐Ÿ‡ช Estonia65https://iptv-org.github.io/iptv/countries/ee.m3u ๐Ÿ‡ช๐Ÿ‡น Ethiopia27https://iptv-org.github.io/iptv/countries/et.m3u ๐Ÿ‡ซ๐Ÿ‡ฐ Falkland Islands5https://iptv-org.github.io/iptv/countries/fk.m3u ๐Ÿ‡ซ๐Ÿ‡ด Faroe Islands1https://iptv-org.github.io/iptv/countries/fo.m3u ๐Ÿ‡ซ๐Ÿ‡ฏ Fiji6https://iptv-org.github.io/iptv/countries/fj.m3u - ๐Ÿ‡ซ๐Ÿ‡ฎ Finland63https://iptv-org.github.io/iptv/countries/fi.m3u + ๐Ÿ‡ซ๐Ÿ‡ฎ Finland62https://iptv-org.github.io/iptv/countries/fi.m3u       Keski-Suomi1https://iptv-org.github.io/iptv/subdivisions/fi-08.m3u       Pohjanmaa1https://iptv-org.github.io/iptv/subdivisions/fi-12.m3u - ๐Ÿ‡ซ๐Ÿ‡ท France155https://iptv-org.github.io/iptv/countries/fr.m3u - ๐Ÿ‡ฌ๐Ÿ‡ซ French Guiana18https://iptv-org.github.io/iptv/countries/gf.m3u + ๐Ÿ‡ซ๐Ÿ‡ท France154https://iptv-org.github.io/iptv/countries/fr.m3u + ๐Ÿ‡ฌ๐Ÿ‡ซ French Guiana19https://iptv-org.github.io/iptv/countries/gf.m3u ๐Ÿ‡ต๐Ÿ‡ซ French Polynesia6https://iptv-org.github.io/iptv/countries/pf.m3u ๐Ÿ‡น๐Ÿ‡ซ French Southern Territories23https://iptv-org.github.io/iptv/countries/tf.m3u ๐Ÿ‡ฌ๐Ÿ‡ฆ Gabon28https://iptv-org.github.io/iptv/countries/ga.m3u ๐Ÿ‡ฌ๐Ÿ‡ฒ Gambia24https://iptv-org.github.io/iptv/countries/gm.m3u - ๐Ÿ‡ฌ๐Ÿ‡ช Georgia37https://iptv-org.github.io/iptv/countries/ge.m3u - ๐Ÿ‡ฉ๐Ÿ‡ช Germany249https://iptv-org.github.io/iptv/countries/de.m3u + ๐Ÿ‡ฌ๐Ÿ‡ช Georgia36https://iptv-org.github.io/iptv/countries/ge.m3u + ๐Ÿ‡ฉ๐Ÿ‡ช Germany248https://iptv-org.github.io/iptv/countries/de.m3u ๐Ÿ‡ฌ๐Ÿ‡ญ Ghana42https://iptv-org.github.io/iptv/countries/gh.m3u - ๐Ÿ‡ฌ๐Ÿ‡ท Greece146https://iptv-org.github.io/iptv/countries/gr.m3u + ๐Ÿ‡ฌ๐Ÿ‡ท Greece145https://iptv-org.github.io/iptv/countries/gr.m3u       Attiki10https://iptv-org.github.io/iptv/subdivisions/gr-i.m3u       Dytiki Ellada5https://iptv-org.github.io/iptv/subdivisions/gr-g.m3u       Dytiki Makedonia2https://iptv-org.github.io/iptv/subdivisions/gr-c.m3u @@ -503,9 +505,9 @@ Same thing, but split up into separate files:       Thessalia4https://iptv-org.github.io/iptv/subdivisions/gr-e.m3u ๐Ÿ‡ฌ๐Ÿ‡ฑ Greenland7https://iptv-org.github.io/iptv/countries/gl.m3u ๐Ÿ‡ฌ๐Ÿ‡ฉ Grenada12https://iptv-org.github.io/iptv/countries/gd.m3u - ๐Ÿ‡ฌ๐Ÿ‡ต Guadeloupe26https://iptv-org.github.io/iptv/countries/gp.m3u + ๐Ÿ‡ฌ๐Ÿ‡ต Guadeloupe27https://iptv-org.github.io/iptv/countries/gp.m3u ๐Ÿ‡ฌ๐Ÿ‡บ Guam7https://iptv-org.github.io/iptv/countries/gu.m3u - ๐Ÿ‡ฌ๐Ÿ‡น Guatemala147https://iptv-org.github.io/iptv/countries/gt.m3u + ๐Ÿ‡ฌ๐Ÿ‡น Guatemala148https://iptv-org.github.io/iptv/countries/gt.m3u       Escuintla2https://iptv-org.github.io/iptv/subdivisions/gt-05.m3u       Huehuetenango1https://iptv-org.github.io/iptv/subdivisions/gt-13.m3u       Izabal1https://iptv-org.github.io/iptv/subdivisions/gt-18.m3u @@ -518,11 +520,11 @@ Same thing, but split up into separate files: ๐Ÿ‡ฌ๐Ÿ‡ณ Guinea35https://iptv-org.github.io/iptv/countries/gn.m3u ๐Ÿ‡ฌ๐Ÿ‡ผ Guinea-Bissau23https://iptv-org.github.io/iptv/countries/gw.m3u ๐Ÿ‡ฌ๐Ÿ‡พ Guyana18https://iptv-org.github.io/iptv/countries/gy.m3u - ๐Ÿ‡ญ๐Ÿ‡น Haiti44https://iptv-org.github.io/iptv/countries/ht.m3u - ๐Ÿ‡ญ๐Ÿ‡ณ Honduras138https://iptv-org.github.io/iptv/countries/hn.m3u - ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong14https://iptv-org.github.io/iptv/countries/hk.m3u - ๐Ÿ‡ญ๐Ÿ‡บ Hungary138https://iptv-org.github.io/iptv/countries/hu.m3u - ๐Ÿ‡ฎ๐Ÿ‡ธ Iceland33https://iptv-org.github.io/iptv/countries/is.m3u + ๐Ÿ‡ญ๐Ÿ‡น Haiti45https://iptv-org.github.io/iptv/countries/ht.m3u + ๐Ÿ‡ญ๐Ÿ‡ณ Honduras139https://iptv-org.github.io/iptv/countries/hn.m3u + ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong11https://iptv-org.github.io/iptv/countries/hk.m3u + ๐Ÿ‡ญ๐Ÿ‡บ Hungary137https://iptv-org.github.io/iptv/countries/hu.m3u + ๐Ÿ‡ฎ๐Ÿ‡ธ Iceland32https://iptv-org.github.io/iptv/countries/is.m3u ๐Ÿ‡ฎ๐Ÿ‡ณ India304https://iptv-org.github.io/iptv/countries/in.m3u ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia143https://iptv-org.github.io/iptv/countries/id.m3u       Aceh2https://iptv-org.github.io/iptv/subdivisions/id-ac.m3u @@ -554,15 +556,15 @@ Same thing, but split up into separate files:       Sumatera Barat2https://iptv-org.github.io/iptv/subdivisions/id-sb.m3u       Sumatera Selatan2https://iptv-org.github.io/iptv/subdivisions/id-ss.m3u       Yogyakarta3https://iptv-org.github.io/iptv/subdivisions/id-yo.m3u - ๐Ÿ‡ฎ๐Ÿ‡ท Iran123https://iptv-org.github.io/iptv/countries/ir.m3u - ๐Ÿ‡ฎ๐Ÿ‡ถ Iraq108https://iptv-org.github.io/iptv/countries/iq.m3u - ๐Ÿ‡ฎ๐Ÿ‡ช Ireland57https://iptv-org.github.io/iptv/countries/ie.m3u + ๐Ÿ‡ฎ๐Ÿ‡ท Iran124https://iptv-org.github.io/iptv/countries/ir.m3u + ๐Ÿ‡ฎ๐Ÿ‡ถ Iraq109https://iptv-org.github.io/iptv/countries/iq.m3u + ๐Ÿ‡ฎ๐Ÿ‡ช Ireland56https://iptv-org.github.io/iptv/countries/ie.m3u ๐Ÿ‡ฎ๐Ÿ‡ฑ Israel22https://iptv-org.github.io/iptv/countries/il.m3u ๐Ÿ‡ฎ๐Ÿ‡น Italy325https://iptv-org.github.io/iptv/countries/it.m3u       Trentino-Alto Adige3https://iptv-org.github.io/iptv/subdivisions/it-32.m3u ๐Ÿ‡จ๐Ÿ‡ฎ Ivory Coast52https://iptv-org.github.io/iptv/countries/ci.m3u ๐Ÿ‡ฏ๐Ÿ‡ฒ Jamaica19https://iptv-org.github.io/iptv/countries/jm.m3u - ๐Ÿ‡ฏ๐Ÿ‡ต Japan68https://iptv-org.github.io/iptv/countries/jp.m3u + ๐Ÿ‡ฏ๐Ÿ‡ต Japan67https://iptv-org.github.io/iptv/countries/jp.m3u       Chiba2https://iptv-org.github.io/iptv/subdivisions/jp-12.m3u       Gunma1https://iptv-org.github.io/iptv/subdivisions/jp-10.m3u       Ibaraki1https://iptv-org.github.io/iptv/subdivisions/jp-08.m3u @@ -572,34 +574,34 @@ Same thing, but split up into separate files:       Tochigi1https://iptv-org.github.io/iptv/subdivisions/jp-09.m3u       Tokyo1https://iptv-org.github.io/iptv/subdivisions/jp-13.m3u ๐Ÿ‡ฏ๐Ÿ‡ด Jordan68https://iptv-org.github.io/iptv/countries/jo.m3u - ๐Ÿ‡ฐ๐Ÿ‡ฟ Kazakhstan70https://iptv-org.github.io/iptv/countries/kz.m3u + ๐Ÿ‡ฐ๐Ÿ‡ฟ Kazakhstan67https://iptv-org.github.io/iptv/countries/kz.m3u ๐Ÿ‡ฐ๐Ÿ‡ช Kenya63https://iptv-org.github.io/iptv/countries/ke.m3u ๐Ÿ‡ฐ๐Ÿ‡ฎ Kiribati5https://iptv-org.github.io/iptv/countries/ki.m3u - ๐Ÿ‡ฝ๐Ÿ‡ฐ Kosovo10https://iptv-org.github.io/iptv/countries/xk.m3u + ๐Ÿ‡ฝ๐Ÿ‡ฐ Kosovo18https://iptv-org.github.io/iptv/countries/xk.m3u ๐Ÿ‡ฐ๐Ÿ‡ผ Kuwait53https://iptv-org.github.io/iptv/countries/kw.m3u - ๐Ÿ‡ฐ๐Ÿ‡ฌ Kyrgyzstan22https://iptv-org.github.io/iptv/countries/kg.m3u + ๐Ÿ‡ฐ๐Ÿ‡ฌ Kyrgyzstan20https://iptv-org.github.io/iptv/countries/kg.m3u ๐Ÿ‡ฑ๐Ÿ‡ฆ Laos24https://iptv-org.github.io/iptv/countries/la.m3u - ๐Ÿ‡ฑ๐Ÿ‡ป Latvia58https://iptv-org.github.io/iptv/countries/lv.m3u + ๐Ÿ‡ฑ๐Ÿ‡ป Latvia51https://iptv-org.github.io/iptv/countries/lv.m3u ๐Ÿ‡ฑ๐Ÿ‡ง Lebanon69https://iptv-org.github.io/iptv/countries/lb.m3u ๐Ÿ‡ฑ๐Ÿ‡ธ Lesotho23https://iptv-org.github.io/iptv/countries/ls.m3u ๐Ÿ‡ฑ๐Ÿ‡ท Liberia24https://iptv-org.github.io/iptv/countries/lr.m3u ๐Ÿ‡ฑ๐Ÿ‡พ Libya70https://iptv-org.github.io/iptv/countries/ly.m3u - ๐Ÿ‡ฑ๐Ÿ‡ฎ Liechtenstein31https://iptv-org.github.io/iptv/countries/li.m3u - ๐Ÿ‡ฑ๐Ÿ‡น Lithuania48https://iptv-org.github.io/iptv/countries/lt.m3u - ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg57https://iptv-org.github.io/iptv/countries/lu.m3u + ๐Ÿ‡ฑ๐Ÿ‡ฎ Liechtenstein30https://iptv-org.github.io/iptv/countries/li.m3u + ๐Ÿ‡ฑ๐Ÿ‡น Lithuania47https://iptv-org.github.io/iptv/countries/lt.m3u + ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg56https://iptv-org.github.io/iptv/countries/lu.m3u ๐Ÿ‡ฒ๐Ÿ‡ด Macao7https://iptv-org.github.io/iptv/countries/mo.m3u ๐Ÿ‡ฒ๐Ÿ‡ฌ Madagascar23https://iptv-org.github.io/iptv/countries/mg.m3u ๐Ÿ‡ฒ๐Ÿ‡ผ Malawi26https://iptv-org.github.io/iptv/countries/mw.m3u - ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia32https://iptv-org.github.io/iptv/countries/my.m3u + ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia34https://iptv-org.github.io/iptv/countries/my.m3u ๐Ÿ‡ฒ๐Ÿ‡ป Maldives15https://iptv-org.github.io/iptv/countries/mv.m3u - ๐Ÿ‡ฒ๐Ÿ‡ฑ Mali29https://iptv-org.github.io/iptv/countries/ml.m3u - ๐Ÿ‡ฒ๐Ÿ‡น Malta46https://iptv-org.github.io/iptv/countries/mt.m3u + ๐Ÿ‡ฒ๐Ÿ‡ฑ Mali28https://iptv-org.github.io/iptv/countries/ml.m3u + ๐Ÿ‡ฒ๐Ÿ‡น Malta45https://iptv-org.github.io/iptv/countries/mt.m3u ๐Ÿ‡ฒ๐Ÿ‡ญ Marshall Islands5https://iptv-org.github.io/iptv/countries/mh.m3u - ๐Ÿ‡ฒ๐Ÿ‡ถ Martinique24https://iptv-org.github.io/iptv/countries/mq.m3u + ๐Ÿ‡ฒ๐Ÿ‡ถ Martinique25https://iptv-org.github.io/iptv/countries/mq.m3u ๐Ÿ‡ฒ๐Ÿ‡ท Mauritania62https://iptv-org.github.io/iptv/countries/mr.m3u ๐Ÿ‡ฒ๐Ÿ‡บ Mauritius24https://iptv-org.github.io/iptv/countries/mu.m3u ๐Ÿ‡พ๐Ÿ‡น Mayotte24https://iptv-org.github.io/iptv/countries/yt.m3u - ๐Ÿ‡ฒ๐Ÿ‡ฝ Mexico253https://iptv-org.github.io/iptv/countries/mx.m3u + ๐Ÿ‡ฒ๐Ÿ‡ฝ Mexico254https://iptv-org.github.io/iptv/countries/mx.m3u       Chihuahua2https://iptv-org.github.io/iptv/subdivisions/mx-chh.m3u       Coahuila de Zaragoza1https://iptv-org.github.io/iptv/subdivisions/mx-coa.m3u       Durango1https://iptv-org.github.io/iptv/subdivisions/mx-dur.m3u @@ -611,10 +613,10 @@ Same thing, but split up into separate files:       San Luis Potosi1https://iptv-org.github.io/iptv/subdivisions/mx-slp.m3u       Yucatan1https://iptv-org.github.io/iptv/subdivisions/mx-yuc.m3u ๐Ÿ‡ซ๐Ÿ‡ฒ Micronesia5https://iptv-org.github.io/iptv/countries/fm.m3u - ๐Ÿ‡ฒ๐Ÿ‡ฉ Moldova65https://iptv-org.github.io/iptv/countries/md.m3u - ๐Ÿ‡ฒ๐Ÿ‡จ Monaco33https://iptv-org.github.io/iptv/countries/mc.m3u + ๐Ÿ‡ฒ๐Ÿ‡ฉ Moldova62https://iptv-org.github.io/iptv/countries/md.m3u + ๐Ÿ‡ฒ๐Ÿ‡จ Monaco32https://iptv-org.github.io/iptv/countries/mc.m3u ๐Ÿ‡ฒ๐Ÿ‡ณ Mongolia24https://iptv-org.github.io/iptv/countries/mn.m3u - ๐Ÿ‡ฒ๐Ÿ‡ช Montenegro36https://iptv-org.github.io/iptv/countries/me.m3u + ๐Ÿ‡ฒ๐Ÿ‡ช Montenegro35https://iptv-org.github.io/iptv/countries/me.m3u       Ulcinj1https://iptv-org.github.io/iptv/subdivisions/me-20.m3u ๐Ÿ‡ฒ๐Ÿ‡ธ Montserrat12https://iptv-org.github.io/iptv/countries/ms.m3u ๐Ÿ‡ฒ๐Ÿ‡ฆ Morocco75https://iptv-org.github.io/iptv/countries/ma.m3u @@ -623,32 +625,32 @@ Same thing, but split up into separate files: ๐Ÿ‡ณ๐Ÿ‡ฆ Namibia24https://iptv-org.github.io/iptv/countries/na.m3u ๐Ÿ‡ณ๐Ÿ‡ท Nauru5https://iptv-org.github.io/iptv/countries/nr.m3u ๐Ÿ‡ณ๐Ÿ‡ต Nepal17https://iptv-org.github.io/iptv/countries/np.m3u - ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands196https://iptv-org.github.io/iptv/countries/nl.m3u + ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands195https://iptv-org.github.io/iptv/countries/nl.m3u ๐Ÿ‡ณ๐Ÿ‡จ New Caledonia5https://iptv-org.github.io/iptv/countries/nc.m3u ๐Ÿ‡ณ๐Ÿ‡ฟ New Zealand24https://iptv-org.github.io/iptv/countries/nz.m3u - ๐Ÿ‡ณ๐Ÿ‡ฎ Nicaragua81https://iptv-org.github.io/iptv/countries/ni.m3u + ๐Ÿ‡ณ๐Ÿ‡ฎ Nicaragua82https://iptv-org.github.io/iptv/countries/ni.m3u ๐Ÿ‡ณ๐Ÿ‡ช Niger25https://iptv-org.github.io/iptv/countries/ne.m3u ๐Ÿ‡ณ๐Ÿ‡ฌ Nigeria82https://iptv-org.github.io/iptv/countries/ng.m3u ๐Ÿ‡ณ๐Ÿ‡บ Niue5https://iptv-org.github.io/iptv/countries/nu.m3u ๐Ÿ‡ณ๐Ÿ‡ซ Norfolk Island5https://iptv-org.github.io/iptv/countries/nf.m3u ๐Ÿ‡ฐ๐Ÿ‡ต North Korea5https://iptv-org.github.io/iptv/countries/kp.m3u - ๐Ÿ‡ฒ๐Ÿ‡ฐ North Macedonia65https://iptv-org.github.io/iptv/countries/mk.m3u + ๐Ÿ‡ฒ๐Ÿ‡ฐ North Macedonia64https://iptv-org.github.io/iptv/countries/mk.m3u ๐Ÿ‡ฒ๐Ÿ‡ต Northern Mariana Islands5https://iptv-org.github.io/iptv/countries/mp.m3u - ๐Ÿ‡ณ๐Ÿ‡ด Norway38https://iptv-org.github.io/iptv/countries/no.m3u + ๐Ÿ‡ณ๐Ÿ‡ด Norway37https://iptv-org.github.io/iptv/countries/no.m3u ๐Ÿ‡ด๐Ÿ‡ฒ Oman47https://iptv-org.github.io/iptv/countries/om.m3u ๐Ÿ‡ต๐Ÿ‡ฐ Pakistan39https://iptv-org.github.io/iptv/countries/pk.m3u ๐Ÿ‡ต๐Ÿ‡ผ Palau5https://iptv-org.github.io/iptv/countries/pw.m3u ๐Ÿ‡ต๐Ÿ‡ธ Palestine63https://iptv-org.github.io/iptv/countries/ps.m3u - ๐Ÿ‡ต๐Ÿ‡ฆ Panama83https://iptv-org.github.io/iptv/countries/pa.m3u + ๐Ÿ‡ต๐Ÿ‡ฆ Panama84https://iptv-org.github.io/iptv/countries/pa.m3u ๐Ÿ‡ต๐Ÿ‡ฌ Papua New Guinea6https://iptv-org.github.io/iptv/countries/pg.m3u - ๐Ÿ‡ต๐Ÿ‡พ Paraguay123https://iptv-org.github.io/iptv/countries/py.m3u + ๐Ÿ‡ต๐Ÿ‡พ Paraguay124https://iptv-org.github.io/iptv/countries/py.m3u       Alto Parana2https://iptv-org.github.io/iptv/subdivisions/py-10.m3u       Boqueron1https://iptv-org.github.io/iptv/subdivisions/py-19.m3u       Caaguazu1https://iptv-org.github.io/iptv/subdivisions/py-5.m3u       Central1https://iptv-org.github.io/iptv/subdivisions/py-11.m3u       Itapua1https://iptv-org.github.io/iptv/subdivisions/py-7.m3u       Presidente Hayes1https://iptv-org.github.io/iptv/subdivisions/py-15.m3u - ๐Ÿ‡ต๐Ÿ‡ช Peru207https://iptv-org.github.io/iptv/countries/pe.m3u + ๐Ÿ‡ต๐Ÿ‡ช Peru208https://iptv-org.github.io/iptv/countries/pe.m3u       Amazonas2https://iptv-org.github.io/iptv/subdivisions/pe-ama.m3u       Ancash1https://iptv-org.github.io/iptv/subdivisions/pe-anc.m3u       Apurimac1https://iptv-org.github.io/iptv/subdivisions/pe-apu.m3u @@ -665,36 +667,36 @@ Same thing, but split up into separate files:       Ucayali2https://iptv-org.github.io/iptv/subdivisions/pe-uca.m3u ๐Ÿ‡ต๐Ÿ‡ญ Philippines26https://iptv-org.github.io/iptv/countries/ph.m3u ๐Ÿ‡ต๐Ÿ‡ณ Pitcairn Islands5https://iptv-org.github.io/iptv/countries/pn.m3u - ๐Ÿ‡ต๐Ÿ‡ฑ Poland196https://iptv-org.github.io/iptv/countries/pl.m3u + ๐Ÿ‡ต๐Ÿ‡ฑ Poland181https://iptv-org.github.io/iptv/countries/pl.m3u ๐Ÿ‡ต๐Ÿ‡น Portugal83https://iptv-org.github.io/iptv/countries/pt.m3u ๐Ÿ‡ต๐Ÿ‡ท Puerto Rico99https://iptv-org.github.io/iptv/countries/pr.m3u ๐Ÿ‡ถ๐Ÿ‡ฆ Qatar54https://iptv-org.github.io/iptv/countries/qa.m3u ๐Ÿ‡จ๐Ÿ‡ฌ Republic of the Congo33https://iptv-org.github.io/iptv/countries/cg.m3u       Brazzaville1https://iptv-org.github.io/iptv/subdivisions/cg-bzv.m3u ๐Ÿ‡ท๐Ÿ‡ช Reunion24https://iptv-org.github.io/iptv/countries/re.m3u - ๐Ÿ‡ท๐Ÿ‡ด Romania143https://iptv-org.github.io/iptv/countries/ro.m3u + ๐Ÿ‡ท๐Ÿ‡ด Romania142https://iptv-org.github.io/iptv/countries/ro.m3u       Gorj1https://iptv-org.github.io/iptv/subdivisions/ro-gj.m3u - ๐Ÿ‡ท๐Ÿ‡บ Russia228https://iptv-org.github.io/iptv/countries/ru.m3u + ๐Ÿ‡ท๐Ÿ‡บ Russia209https://iptv-org.github.io/iptv/countries/ru.m3u ๐Ÿ‡ท๐Ÿ‡ผ Rwanda31https://iptv-org.github.io/iptv/countries/rw.m3u - ๐Ÿ‡ง๐Ÿ‡ฑ Saint Barthรฉlemy20https://iptv-org.github.io/iptv/countries/bl.m3u + ๐Ÿ‡ง๐Ÿ‡ฑ Saint Barthรฉlemy21https://iptv-org.github.io/iptv/countries/bl.m3u ๐Ÿ‡ธ๐Ÿ‡ญ Saint Helena23https://iptv-org.github.io/iptv/countries/sh.m3u ๐Ÿ‡ฐ๐Ÿ‡ณ Saint Kitts and Nevis13https://iptv-org.github.io/iptv/countries/kn.m3u ๐Ÿ‡ฑ๐Ÿ‡จ Saint Lucia13https://iptv-org.github.io/iptv/countries/lc.m3u - ๐Ÿ‡ฒ๐Ÿ‡ซ Saint Martin20https://iptv-org.github.io/iptv/countries/mf.m3u + ๐Ÿ‡ฒ๐Ÿ‡ซ Saint Martin21https://iptv-org.github.io/iptv/countries/mf.m3u ๐Ÿ‡ต๐Ÿ‡ฒ Saint Pierre and Miquelon7https://iptv-org.github.io/iptv/countries/pm.m3u ๐Ÿ‡ป๐Ÿ‡จ Saint Vincent and the Grenadines12https://iptv-org.github.io/iptv/countries/vc.m3u ๐Ÿ‡ผ๐Ÿ‡ธ Samoa7https://iptv-org.github.io/iptv/countries/ws.m3u - ๐Ÿ‡ธ๐Ÿ‡ฒ San Marino30https://iptv-org.github.io/iptv/countries/sm.m3u + ๐Ÿ‡ธ๐Ÿ‡ฒ San Marino29https://iptv-org.github.io/iptv/countries/sm.m3u ๐Ÿ‡ธ๐Ÿ‡น Sao Tome and Principe24https://iptv-org.github.io/iptv/countries/st.m3u ๐Ÿ‡ธ๐Ÿ‡ฆ Saudi Arabia90https://iptv-org.github.io/iptv/countries/sa.m3u - ๐Ÿ‡ธ๐Ÿ‡ณ Senegal54https://iptv-org.github.io/iptv/countries/sn.m3u + ๐Ÿ‡ธ๐Ÿ‡ณ Senegal49https://iptv-org.github.io/iptv/countries/sn.m3u ๐Ÿ‡ท๐Ÿ‡ธ Serbia69https://iptv-org.github.io/iptv/countries/rs.m3u ๐Ÿ‡ธ๐Ÿ‡จ Seychelles23https://iptv-org.github.io/iptv/countries/sc.m3u ๐Ÿ‡ธ๐Ÿ‡ฑ Sierra Leone25https://iptv-org.github.io/iptv/countries/sl.m3u - ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore21https://iptv-org.github.io/iptv/countries/sg.m3u + ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore22https://iptv-org.github.io/iptv/countries/sg.m3u ๐Ÿ‡ธ๐Ÿ‡ฝ Sint Maarten18https://iptv-org.github.io/iptv/countries/sx.m3u - ๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia92https://iptv-org.github.io/iptv/countries/sk.m3u - ๐Ÿ‡ธ๐Ÿ‡ฎ Slovenia56https://iptv-org.github.io/iptv/countries/si.m3u + ๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia91https://iptv-org.github.io/iptv/countries/sk.m3u + ๐Ÿ‡ธ๐Ÿ‡ฎ Slovenia55https://iptv-org.github.io/iptv/countries/si.m3u ๐Ÿ‡ธ๐Ÿ‡ง Solomon Islands5https://iptv-org.github.io/iptv/countries/sb.m3u ๐Ÿ‡ธ๐Ÿ‡ด Somalia69https://iptv-org.github.io/iptv/countries/so.m3u ๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa61https://iptv-org.github.io/iptv/countries/za.m3u @@ -714,7 +716,7 @@ Same thing, but split up into separate files:       Seoul-teukbyeolsi1https://iptv-org.github.io/iptv/subdivisions/kr-11.m3u       Ulsan-gwangyeoksi1https://iptv-org.github.io/iptv/subdivisions/kr-31.m3u ๐Ÿ‡ธ๐Ÿ‡ธ South Sudan23https://iptv-org.github.io/iptv/countries/ss.m3u - ๐Ÿ‡ช๐Ÿ‡ธ Spain341https://iptv-org.github.io/iptv/countries/es.m3u + ๐Ÿ‡ช๐Ÿ‡ธ Spain340https://iptv-org.github.io/iptv/countries/es.m3u       Andalucia38https://iptv-org.github.io/iptv/subdivisions/es-an.m3u       Aragon1https://iptv-org.github.io/iptv/subdivisions/es-ar.m3u       Asturias, Principado de1https://iptv-org.github.io/iptv/subdivisions/es-as.m3u @@ -736,28 +738,28 @@ Same thing, but split up into separate files: ๐Ÿ‡ธ๐Ÿ‡ฉ Sudan66https://iptv-org.github.io/iptv/countries/sd.m3u ๐Ÿ‡ธ๐Ÿ‡ท Suriname10https://iptv-org.github.io/iptv/countries/sr.m3u ๐Ÿ‡ธ๐Ÿ‡ฟ Swaziland24https://iptv-org.github.io/iptv/countries/sz.m3u - ๐Ÿ‡ธ๐Ÿ‡ช Sweden58https://iptv-org.github.io/iptv/countries/se.m3u - ๐Ÿ‡จ๐Ÿ‡ญ Switzerland76https://iptv-org.github.io/iptv/countries/ch.m3u + ๐Ÿ‡ธ๐Ÿ‡ช Sweden57https://iptv-org.github.io/iptv/countries/se.m3u + ๐Ÿ‡จ๐Ÿ‡ญ Switzerland75https://iptv-org.github.io/iptv/countries/ch.m3u ๐Ÿ‡ธ๐Ÿ‡พ Syria46https://iptv-org.github.io/iptv/countries/sy.m3u ๐Ÿ‡น๐Ÿ‡ผ Taiwan29https://iptv-org.github.io/iptv/countries/tw.m3u - ๐Ÿ‡น๐Ÿ‡ฏ Tajikistan30https://iptv-org.github.io/iptv/countries/tj.m3u + ๐Ÿ‡น๐Ÿ‡ฏ Tajikistan28https://iptv-org.github.io/iptv/countries/tj.m3u ๐Ÿ‡น๐Ÿ‡ฟ Tanzania31https://iptv-org.github.io/iptv/countries/tz.m3u ๐Ÿ‡น๐Ÿ‡ญ Thailand75https://iptv-org.github.io/iptv/countries/th.m3u - ๐Ÿ‡น๐Ÿ‡ฌ Togo36https://iptv-org.github.io/iptv/countries/tg.m3u + ๐Ÿ‡น๐Ÿ‡ฌ Togo35https://iptv-org.github.io/iptv/countries/tg.m3u ๐Ÿ‡น๐Ÿ‡ฐ Tokelau5https://iptv-org.github.io/iptv/countries/tk.m3u ๐Ÿ‡น๐Ÿ‡ด Tonga5https://iptv-org.github.io/iptv/countries/to.m3u ๐Ÿ‡น๐Ÿ‡น Trinidad and Tobago18https://iptv-org.github.io/iptv/countries/tt.m3u ๐Ÿ‡น๐Ÿ‡ณ Tunisia66https://iptv-org.github.io/iptv/countries/tn.m3u - ๐Ÿ‡น๐Ÿ‡ท Turkey281https://iptv-org.github.io/iptv/countries/tr.m3u + ๐Ÿ‡น๐Ÿ‡ท Turkey280https://iptv-org.github.io/iptv/countries/tr.m3u ๐Ÿ‡น๐Ÿ‡ฒ Turkmenistan16https://iptv-org.github.io/iptv/countries/tm.m3u ๐Ÿ‡น๐Ÿ‡จ Turks and Caicos Islands12https://iptv-org.github.io/iptv/countries/tc.m3u ๐Ÿ‡น๐Ÿ‡ป Tuvalu5https://iptv-org.github.io/iptv/countries/tv.m3u ๐Ÿ‡ป๐Ÿ‡ฎ U.S. Virgin Islands12https://iptv-org.github.io/iptv/countries/vi.m3u ๐Ÿ‡บ๐Ÿ‡ฌ Uganda51https://iptv-org.github.io/iptv/countries/ug.m3u - ๐Ÿ‡บ๐Ÿ‡ฆ Ukraine92https://iptv-org.github.io/iptv/countries/ua.m3u + ๐Ÿ‡บ๐Ÿ‡ฆ Ukraine91https://iptv-org.github.io/iptv/countries/ua.m3u ๐Ÿ‡ฆ๐Ÿ‡ช United Arab Emirates88https://iptv-org.github.io/iptv/countries/ae.m3u - ๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom175https://iptv-org.github.io/iptv/countries/uk.m3u - ๐Ÿ‡บ๐Ÿ‡ธ United States1421https://iptv-org.github.io/iptv/countries/us.m3u + ๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom174https://iptv-org.github.io/iptv/countries/uk.m3u + ๐Ÿ‡บ๐Ÿ‡ธ United States1422https://iptv-org.github.io/iptv/countries/us.m3u       Alabama3https://iptv-org.github.io/iptv/subdivisions/us-al.m3u       Alaska2https://iptv-org.github.io/iptv/subdivisions/us-ak.m3u       Arizona13https://iptv-org.github.io/iptv/subdivisions/us-az.m3u @@ -805,11 +807,11 @@ Same thing, but split up into separate files:       Virginia3https://iptv-org.github.io/iptv/subdivisions/us-va.m3u       Washington5https://iptv-org.github.io/iptv/subdivisions/us-wa.m3u       Wisconsin4https://iptv-org.github.io/iptv/subdivisions/us-wi.m3u - ๐Ÿ‡บ๐Ÿ‡พ Uruguay74https://iptv-org.github.io/iptv/countries/uy.m3u - ๐Ÿ‡บ๐Ÿ‡ฟ Uzbekistan30https://iptv-org.github.io/iptv/countries/uz.m3u + ๐Ÿ‡บ๐Ÿ‡พ Uruguay75https://iptv-org.github.io/iptv/countries/uy.m3u + ๐Ÿ‡บ๐Ÿ‡ฟ Uzbekistan28https://iptv-org.github.io/iptv/countries/uz.m3u ๐Ÿ‡ป๐Ÿ‡บ Vanuatu5https://iptv-org.github.io/iptv/countries/vu.m3u - ๐Ÿ‡ป๐Ÿ‡ฆ Vatican City29https://iptv-org.github.io/iptv/countries/va.m3u - ๐Ÿ‡ป๐Ÿ‡ช Venezuela115https://iptv-org.github.io/iptv/countries/ve.m3u + ๐Ÿ‡ป๐Ÿ‡ฆ Vatican City28https://iptv-org.github.io/iptv/countries/va.m3u + ๐Ÿ‡ป๐Ÿ‡ช Venezuela116https://iptv-org.github.io/iptv/countries/ve.m3u       Aragua2https://iptv-org.github.io/iptv/subdivisions/ve-d.m3u       Lara1https://iptv-org.github.io/iptv/subdivisions/ve-k.m3u ๐Ÿ‡ป๐Ÿ‡ณ Vietnam71https://iptv-org.github.io/iptv/countries/vn.m3u @@ -818,7 +820,7 @@ Same thing, but split up into separate files: ๐Ÿ‡พ๐Ÿ‡ช Yemen46https://iptv-org.github.io/iptv/countries/ye.m3u ๐Ÿ‡ฟ๐Ÿ‡ฒ Zambia24https://iptv-org.github.io/iptv/countries/zm.m3u ๐Ÿ‡ฟ๐Ÿ‡ผ Zimbabwe24https://iptv-org.github.io/iptv/countries/zw.m3u - Undefined2889https://iptv-org.github.io/iptv/countries/undefined.m3u + Undefined2880https://iptv-org.github.io/iptv/countries/undefined.m3u @@ -844,42 +846,42 @@ Same thing, but split up into separate files: RegionChannelsPlaylist - Africa546https://iptv-org.github.io/iptv/regions/afr.m3u - Americas3598https://iptv-org.github.io/iptv/regions/amer.m3u - Arab world402https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2162https://iptv-org.github.io/iptv/regions/asia.m3u - Asia-Pacific1135https://iptv-org.github.io/iptv/regions/apac.m3u - Association of Southeast Asian Nations344https://iptv-org.github.io/iptv/regions/asean.m3u - Balkan681https://iptv-org.github.io/iptv/regions/balkan.m3u - Benelux241https://iptv-org.github.io/iptv/regions/benelux.m3u - Caribbean365https://iptv-org.github.io/iptv/regions/carib.m3u - Central America372https://iptv-org.github.io/iptv/regions/cenamer.m3u - Central and Eastern Europe1000https://iptv-org.github.io/iptv/regions/cee.m3u - Central Asia112https://iptv-org.github.io/iptv/regions/cas.m3u - Commonwealth of Independent States373https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2874https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3785https://iptv-org.github.io/iptv/regions/emea.m3u - European Union1956https://iptv-org.github.io/iptv/regions/eu.m3u - Hispanic America1680https://iptv-org.github.io/iptv/regions/hispam.m3u - Latin America1995https://iptv-org.github.io/iptv/regions/latam.m3u - Latin America and the Caribbean2039https://iptv-org.github.io/iptv/regions/lac.m3u + Africa542https://iptv-org.github.io/iptv/regions/afr.m3u + Americas3603https://iptv-org.github.io/iptv/regions/amer.m3u + Arab world403https://iptv-org.github.io/iptv/regions/arab.m3u + Asia2142https://iptv-org.github.io/iptv/regions/asia.m3u + Asia-Pacific1134https://iptv-org.github.io/iptv/regions/apac.m3u + Association of Southeast Asian Nations347https://iptv-org.github.io/iptv/regions/asean.m3u + Balkan689https://iptv-org.github.io/iptv/regions/balkan.m3u + Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u + Caribbean366https://iptv-org.github.io/iptv/regions/carib.m3u + Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u + Central and Eastern Europe976https://iptv-org.github.io/iptv/regions/cee.m3u + Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u + Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u + Europe2841https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3750https://iptv-org.github.io/iptv/regions/emea.m3u + European Union1939https://iptv-org.github.io/iptv/regions/eu.m3u + Hispanic America1682https://iptv-org.github.io/iptv/regions/hispam.m3u + Latin America1999https://iptv-org.github.io/iptv/regions/latam.m3u + Latin America and the Caribbean2043https://iptv-org.github.io/iptv/regions/lac.m3u Maghreb90https://iptv-org.github.io/iptv/regions/maghreb.m3u - Middle East807https://iptv-org.github.io/iptv/regions/mideast.m3u - Middle East and North Africa836https://iptv-org.github.io/iptv/regions/mena.m3u - Nordics112https://iptv-org.github.io/iptv/regions/nord.m3u - North America2419https://iptv-org.github.io/iptv/regions/noram.m3u - Northern America1581https://iptv-org.github.io/iptv/regions/nam.m3u - Northern Europe154https://iptv-org.github.io/iptv/regions/neur.m3u - Oceania54https://iptv-org.github.io/iptv/regions/oce.m3u - South America1258https://iptv-org.github.io/iptv/regions/southam.m3u + Middle East808https://iptv-org.github.io/iptv/regions/mideast.m3u + Middle East and North Africa837https://iptv-org.github.io/iptv/regions/mena.m3u + Nordics111https://iptv-org.github.io/iptv/regions/nord.m3u + North America2421https://iptv-org.github.io/iptv/regions/noram.m3u + Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u + Northern Europe147https://iptv-org.github.io/iptv/regions/neur.m3u + Oceania56https://iptv-org.github.io/iptv/regions/oce.m3u + South America1262https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u - Southeast Asia344https://iptv-org.github.io/iptv/regions/sea.m3u - Southern Europe1057https://iptv-org.github.io/iptv/regions/ser.m3u - Sub-Saharan Africa491https://iptv-org.github.io/iptv/regions/ssa.m3u - West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u - Western Europe782https://iptv-org.github.io/iptv/regions/wer.m3u + Southeast Asia347https://iptv-org.github.io/iptv/regions/sea.m3u + Southern Europe1058https://iptv-org.github.io/iptv/regions/ser.m3u + Sub-Saharan Africa487https://iptv-org.github.io/iptv/regions/ssa.m3u + West Africa249https://iptv-org.github.io/iptv/regions/wafr.m3u + Western Europe783https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u - Undefined2889https://iptv-org.github.io/iptv/regions/undefined.m3u + Undefined2880https://iptv-org.github.io/iptv/regions/undefined.m3u diff --git a/package-lock.json b/package-lock.json index 4df46535d..e09fd3949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@eslint/eslintrc": "^3.3.0", "@eslint/js": "^9.21.0", - "@freearhey/core": "^0.7.0", + "@freearhey/core": "^0.8.2", "@freearhey/search-js": "^0.1.2", "@inquirer/prompts": "^7.4.1", "@octokit/core": "^6.1.4", @@ -18,6 +18,7 @@ "@octokit/plugin-rest-endpoint-methods": "^7.1.3", "@octokit/types": "^11.1.0", "@types/cli-progress": "^3.11.3", + "@types/fs-extra": "^11.0.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.198", "@types/numeral": "^2.0.3", @@ -31,6 +32,7 @@ "commander": "^8.3.0", "console-table-printer": "^2.12.1", "eslint": "^9.17.0", + "glob": "^11.0.2", "globals": "^16.0.0", "iptv-checker": "^0.29.1", "iptv-playlist-parser": "^0.13.0", @@ -1065,23 +1067,20 @@ } }, "node_modules/@freearhey/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.7.0.tgz", - "integrity": "sha512-HXkKPYGY7ife7JAc1q/Qxzy0WUdSnyt3rHThCShZHgnH3rz0tpkjHFW7LNegB3he0IKn/Zc95/YSOQ97Fq8ctA==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.8.2.tgz", + "integrity": "sha512-jlb1XUbhUf3lqD3B9Wmx3c8qYG4+s1I0cr2FFQfiMpJh4nMvfUNdJr2OhH31S/dbNP12ycT6RPVoZ2j2G3+mXA==", "dependencies": { - "@types/fs-extra": "^11.0.2", - "@types/lodash": "^4.14.198", - "@types/luxon": "^3.3.2", - "fs-extra": "^11.1.1", - "glob": "^10.3.4", + "consola": "^3.4.2", + "dayjs": "^1.11.13", + "fs-extra": "^11.3.0", + "glob": "^11.0.1", "lodash": "^4.17.21", - "luxon": "^3.4.3", - "natural-orderby": "^3.0.2", - "node-gzip": "^1.1.2", + "natural-orderby": "^5.0.0", "normalize-url": "^6.1.0", "object-treeify": "^2.1.1", - "run-script-os": "^1.1.6", - "signale": "^1.4.0" + "pako": "^2.1.0", + "timer-node": "^5.0.9" } }, "node_modules/@freearhey/core/node_modules/normalize-url": { @@ -1493,9 +1492,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -2287,15 +2286,6 @@ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2379,9 +2369,9 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/fs-extra": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz", - "integrity": "sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", "dependencies": { "@types/jsonfile": "*", "@types/node": "*" @@ -2432,9 +2422,9 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", "dependencies": { "@types/node": "*" } @@ -2444,11 +2434,6 @@ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" }, - "node_modules/@types/luxon": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", - "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==" - }, "node_modules/@types/node": { "version": "22.13.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", @@ -3221,6 +3206,14 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/console-table-printer": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz", @@ -3285,6 +3278,11 @@ "node": ">=12.20" } }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -3400,6 +3398,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -3407,7 +3406,8 @@ "node_modules/error-ex/node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "peer": true }, "node_modules/esbuild": { "version": "0.25.1", @@ -3790,25 +3790,6 @@ "bser": "2.1.1" } }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -3949,9 +3930,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -3962,9 +3943,9 @@ } }, "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -4058,21 +4039,22 @@ } }, "node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", + "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4117,14 +4099,14 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4529,20 +4511,17 @@ } }, "node_modules/jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -5197,11 +5176,6 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5241,9 +5215,9 @@ } }, "node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -5292,40 +5266,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "peer": true }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5364,14 +5304,6 @@ "yallist": "^3.0.2" } }, - "node_modules/luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", - "engines": { - "node": ">=12" - } - }, "node_modules/m3u-linter": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.4.2.tgz", @@ -5389,14 +5321,6 @@ "node": ">=10.0.0" } }, - "node_modules/m3u-linter/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/m3u-linter/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -5405,79 +5329,6 @@ "node": ">= 10" } }, - "node_modules/m3u-linter/node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/m3u-linter/node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/m3u-linter/node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/m3u-linter/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/m3u-linter/node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -5664,9 +5515,9 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/natural-orderby": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-3.0.2.tgz", - "integrity": "sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz", + "integrity": "sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==", "engines": { "node": ">=18" } @@ -5676,11 +5527,6 @@ "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", "integrity": "sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==" }, - "node_modules/node-gzip": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz", - "integrity": "sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw==" - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5836,6 +5682,11 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5897,26 +5748,26 @@ "peer": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { @@ -5940,14 +5791,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -5957,79 +5800,6 @@ "node": ">= 6" } }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -6335,15 +6105,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", - "bin": { - "run-os": "index.js", - "run-script-os": "index.js" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -6385,83 +6146,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "peer": true }, - "node_modules/signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dependencies": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signale/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/signale/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/signale/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/signale/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/simple-wcswidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", @@ -6723,6 +6407,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/timer-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/timer-node/-/timer-node-5.0.9.tgz", + "integrity": "sha512-zXxCE/5/YDi0hY9pygqgRqjRbrFRzigYxOudG0I3syaqAAmX9/w9sxex1bNFCN6c1S66RwPtEIJv65dN+1psew==" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -7741,23 +7430,20 @@ } }, "@freearhey/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.7.0.tgz", - "integrity": "sha512-HXkKPYGY7ife7JAc1q/Qxzy0WUdSnyt3rHThCShZHgnH3rz0tpkjHFW7LNegB3he0IKn/Zc95/YSOQ97Fq8ctA==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.8.2.tgz", + "integrity": "sha512-jlb1XUbhUf3lqD3B9Wmx3c8qYG4+s1I0cr2FFQfiMpJh4nMvfUNdJr2OhH31S/dbNP12ycT6RPVoZ2j2G3+mXA==", "requires": { - "@types/fs-extra": "^11.0.2", - "@types/lodash": "^4.14.198", - "@types/luxon": "^3.3.2", - "fs-extra": "^11.1.1", - "glob": "^10.3.4", + "consola": "^3.4.2", + "dayjs": "^1.11.13", + "fs-extra": "^11.3.0", + "glob": "^11.0.1", "lodash": "^4.17.21", - "luxon": "^3.4.3", - "natural-orderby": "^3.0.2", - "node-gzip": "^1.1.2", + "natural-orderby": "^5.0.0", "normalize-url": "^6.1.0", "object-treeify": "^2.1.1", - "run-script-os": "^1.1.6", - "signale": "^1.4.0" + "pako": "^2.1.0", + "timer-node": "^5.0.9" }, "dependencies": { "normalize-url": { @@ -7982,9 +7668,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" }, "ansi-styles": { "version": "6.2.1", @@ -8623,12 +8309,6 @@ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, "@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -8712,9 +8392,9 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "@types/fs-extra": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz", - "integrity": "sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", "requires": { "@types/jsonfile": "*", "@types/node": "*" @@ -8765,9 +8445,9 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", "requires": { "@types/node": "*" } @@ -8777,11 +8457,6 @@ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" }, - "@types/luxon": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", - "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==" - }, "@types/node": { "version": "22.13.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", @@ -9318,6 +8993,11 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==" + }, "console-table-printer": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz", @@ -9367,6 +9047,11 @@ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", "integrity": "sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==" }, + "dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, "debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -9443,6 +9128,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "peer": true, "requires": { "is-arrayish": "^0.2.1" }, @@ -9450,7 +9136,8 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "peer": true } } }, @@ -9726,21 +9413,6 @@ "bser": "2.1.1" } }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, "file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -9838,9 +9510,9 @@ } }, "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -9848,9 +9520,9 @@ }, "dependencies": { "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" } } }, @@ -9909,15 +9581,16 @@ } }, "glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", + "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -9929,9 +9602,9 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "requires": { "brace-expansion": "^2.0.1" } @@ -10255,12 +9928,11 @@ } }, "jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" } }, "jake": { @@ -10761,11 +10433,6 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -10797,9 +10464,9 @@ }, "dependencies": { "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" } } }, @@ -10838,33 +10505,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "peer": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - } - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -10897,11 +10537,6 @@ "yallist": "^3.0.2" } }, - "luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==" - }, "m3u-linter": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.4.2.tgz", @@ -10913,61 +10548,10 @@ "is-valid-path": "^0.1.1" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - } - }, - "jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", - "requires": { - "@isaacs/cliui": "^8.0.2" - } - }, - "lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==" - }, - "minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "requires": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - } } } }, @@ -11102,20 +10686,15 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "natural-orderby": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-3.0.2.tgz", - "integrity": "sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz", + "integrity": "sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==" }, "node-cleanup": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", "integrity": "sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==" }, - "node-gzip": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz", - "integrity": "sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw==" - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -11226,6 +10805,11 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11269,18 +10853,18 @@ "peer": true }, "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "dependencies": { "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==" } } }, @@ -11299,71 +10883,12 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, "pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "peer": true }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -11560,11 +11085,6 @@ "queue-microtask": "^1.2.2" } }, - "run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==" - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11594,67 +11114,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "peer": true }, - "signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "requires": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "simple-wcswidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", @@ -11846,6 +11305,11 @@ } } }, + "timer-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/timer-node/-/timer-node-5.0.9.tgz", + "integrity": "sha512-zXxCE/5/YDi0hY9pygqgRqjRbrFRzigYxOudG0I3syaqAAmX9/w9sxex1bNFCN6c1S66RwPtEIJv65dN+1psew==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", diff --git a/package.json b/package.json index 6533852a2..8b957e01c 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "dependencies": { "@eslint/eslintrc": "^3.3.0", "@eslint/js": "^9.21.0", - "@freearhey/core": "^0.7.0", + "@freearhey/core": "^0.8.2", "@freearhey/search-js": "^0.1.2", "@inquirer/prompts": "^7.4.1", "@octokit/core": "^6.1.4", @@ -48,6 +48,7 @@ "@octokit/plugin-rest-endpoint-methods": "^7.1.3", "@octokit/types": "^11.1.0", "@types/cli-progress": "^3.11.3", + "@types/fs-extra": "^11.0.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.198", "@types/numeral": "^2.0.3", @@ -61,6 +62,7 @@ "commander": "^8.3.0", "console-table-printer": "^2.12.1", "eslint": "^9.17.0", + "glob": "^11.0.2", "globals": "^16.0.0", "iptv-checker": "^0.29.1", "iptv-playlist-parser": "^0.13.0", diff --git a/scripts/commands/playlist/edit.ts b/scripts/commands/playlist/edit.ts index c57a62d1e..d87590b1f 100644 --- a/scripts/commands/playlist/edit.ts +++ b/scripts/commands/playlist/edit.ts @@ -1,7 +1,7 @@ import { Storage, Collection, Logger, Dictionary } from '@freearhey/core' import { DataLoader, DataProcessor, PlaylistParser } from '../../core' -import { Channel, Feed, Playlist, Stream } from '../../models' import type { ChannelSearchableData } from '../../types/channel' +import { Channel, Feed, Playlist, Stream } from '../../models' import { DataProcessorData } from '../../types/dataProcessor' import { DataLoaderData } from '../../types/dataLoader' import { select, input } from '@inquirer/prompts' diff --git a/scripts/commands/playlist/generate.ts b/scripts/commands/playlist/generate.ts index c323d5395..b903b5a43 100644 --- a/scripts/commands/playlist/generate.ts +++ b/scripts/commands/playlist/generate.ts @@ -1,27 +1,25 @@ -import { Logger, Storage } from '@freearhey/core' import { PlaylistParser, DataProcessor, DataLoader } from '../../core' +import type { DataProcessorData } from '../../types/dataProcessor' +import { DATA_DIR, LOGS_DIR, STREAMS_DIR } from '../../constants' +import type { DataLoaderData } from '../../types/dataLoader' +import { Logger, Storage, File } from '@freearhey/core' import { Stream } from '../../models' import { uniqueId } from 'lodash' import { + IndexCategoryGenerator, + IndexLanguageGenerator, + IndexCountryGenerator, + IndexRegionGenerator, CategoriesGenerator, CountriesGenerator, LanguagesGenerator, RegionsGenerator, - IndexGenerator, - IndexCategoryGenerator, - IndexCountryGenerator, - IndexLanguageGenerator, - IndexRegionGenerator + IndexGenerator } from '../../generators' -import { DATA_DIR, LOGS_DIR, STREAMS_DIR } from '../../constants' -import type { DataProcessorData } from '../../types/dataProcessor' -import type { DataLoaderData } from '../../types/dataLoader' async function main() { const logger = new Logger() - const generatorsLogger = new Logger({ - stream: await new Storage(LOGS_DIR).createStream(`generators.log`) - }) + const logFile = new File('generators.log') logger.info('loading data from api...') const processor = new DataProcessor() @@ -29,19 +27,19 @@ async function main() { const loader = new DataLoader({ storage: dataStorage }) const data: DataLoaderData = await loader.load() const { + feedsGroupedByChannelId, + channelsKeyById, categories, countries, - regions, - channelsKeyById, - feedsGroupedByChannelId + regions }: DataProcessorData = processor.process(data) logger.info('loading streams...') const streamsStorage = new Storage(STREAMS_DIR) const parser = new PlaylistParser({ storage: streamsStorage, - channelsKeyById, - feedsGroupedByChannelId + feedsGroupedByChannelId, + channelsKeyById }) const files = await streamsStorage.list('**/*.m3u') let streams = await parser.parse(files) @@ -62,42 +60,46 @@ async function main() { ) logger.info('generating categories/...') - await new CategoriesGenerator({ categories, streams, logger: generatorsLogger }).generate() + await new CategoriesGenerator({ categories, streams, logFile }).generate() logger.info('generating countries/...') await new CountriesGenerator({ countries, streams, - logger: generatorsLogger + logFile }).generate() logger.info('generating languages/...') - await new LanguagesGenerator({ streams, logger: generatorsLogger }).generate() + await new LanguagesGenerator({ streams, logFile }).generate() logger.info('generating regions/...') await new RegionsGenerator({ streams, regions, - logger: generatorsLogger + logFile }).generate() logger.info('generating index.m3u...') - await new IndexGenerator({ streams, logger: generatorsLogger }).generate() + await new IndexGenerator({ streams, logFile }).generate() logger.info('generating index.category.m3u...') - await new IndexCategoryGenerator({ streams, logger: generatorsLogger }).generate() + await new IndexCategoryGenerator({ streams, logFile }).generate() logger.info('generating index.country.m3u...') await new IndexCountryGenerator({ streams, - logger: generatorsLogger + logFile }).generate() logger.info('generating index.language.m3u...') - await new IndexLanguageGenerator({ streams, logger: generatorsLogger }).generate() + await new IndexLanguageGenerator({ streams, logFile }).generate() logger.info('generating index.region.m3u...') - await new IndexRegionGenerator({ streams, regions, logger: generatorsLogger }).generate() + await new IndexRegionGenerator({ streams, regions, logFile }).generate() + + logger.info('saving generators.log...') + const logStorage = new Storage(LOGS_DIR) + logStorage.saveFile(logFile) } main() diff --git a/scripts/commands/playlist/test.ts b/scripts/commands/playlist/test.ts index cc6f1dc14..777c19f8d 100644 --- a/scripts/commands/playlist/test.ts +++ b/scripts/commands/playlist/test.ts @@ -154,15 +154,24 @@ function drawTable() { } } -function onFinish() { +function onFinish(error) { clearInterval(interval) + if (error) { + console.error(error) + process.exit(1) + } + drawTable() - logger.error(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`) + if (errors > 0 || warnings > 0) { + console.log( + chalk.red(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`) + ) - if (errors > 0) { - process.exit(1) + if (errors > 0) { + process.exit(1) + } } process.exit(0) diff --git a/scripts/commands/playlist/validate.ts b/scripts/commands/playlist/validate.ts index 57bca4f6f..f1f7742eb 100644 --- a/scripts/commands/playlist/validate.ts +++ b/scripts/commands/playlist/validate.ts @@ -94,14 +94,14 @@ async function main() { }) if (log.notEmpty()) { - logger.info(`\n${chalk.underline(filepath)}`) + console.log(`\n${chalk.underline(filepath)}`) log.forEach((logItem: LogItem) => { const position = logItem.line.toString().padEnd(6, ' ') const type = logItem.type.padEnd(9, ' ') const status = logItem.type === 'error' ? chalk.red(type) : chalk.yellow(type) - logger.info(` ${chalk.gray(position)}${status}${logItem.message}`) + console.log(` ${chalk.gray(position)}${status}${logItem.message}`) }) errors = errors.concat(log.filter((logItem: LogItem) => logItem.type === 'error')) @@ -109,16 +109,18 @@ async function main() { } } - logger.error( - chalk.red( - `\n${ - errors.count() + warnings.count() - } problems (${errors.count()} errors, ${warnings.count()} warnings)` + if (errors.count() || warnings.count()) { + console.log( + chalk.red( + `\n${ + errors.count() + warnings.count() + } problems (${errors.count()} errors, ${warnings.count()} warnings)` + ) ) - ) - if (errors.count()) { - process.exit(1) + if (errors.count()) { + process.exit(1) + } } } diff --git a/scripts/core/htmlTable.ts b/scripts/core/htmlTable.ts index 1caa85fa0..b4f7b42ac 100644 --- a/scripts/core/htmlTable.ts +++ b/scripts/core/htmlTable.ts @@ -16,15 +16,15 @@ export class HTMLTable { } toString() { - let output = '\n' + let output = '
\r\n' - output += ' \n ' + output += ' \r\n ' for (const column of this.columns) { output += `` } - output += '\n \n' + output += '\r\n \r\n' - output += ' \n' + output += ' \r\n' for (const item of this.data) { output += ' ' let i = 0 @@ -35,9 +35,9 @@ export class HTMLTable { output += `${item[prop]}` i++ } - output += '\n' + output += '\r\n' } - output += ' \n' + output += ' \r\n' output += '
${column.name}
' diff --git a/scripts/core/streamTester.ts b/scripts/core/streamTester.ts index 89c44de74..860844b40 100644 --- a/scripts/core/streamTester.ts +++ b/scripts/core/streamTester.ts @@ -18,8 +18,8 @@ export class StreamTester { return this.checker.checkStream({ url: stream.url, http: { - referrer: stream.getHttpReferrer(), - 'user-agent': stream.getHttpUserAgent() + referrer: stream.getReferrer(), + 'user-agent': stream.getUserAgent() } }) } diff --git a/scripts/generators/categoriesGenerator.ts b/scripts/generators/categoriesGenerator.ts index cd20b6ea4..f6d455d4b 100644 --- a/scripts/generators/categoriesGenerator.ts +++ b/scripts/generators/categoriesGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, Logger, File } from '@freearhey/core' import { Stream, Category, Playlist } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type CategoriesGeneratorProps = { streams: Collection categories: Collection - logger: Logger + logFile: File } export class CategoriesGenerator implements Generator { streams: Collection categories: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, categories, logger }: CategoriesGeneratorProps) { + constructor({ streams, categories, logFile }: CategoriesGeneratorProps) { this.streams = streams this.categories = categories this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate() { @@ -37,8 +38,8 @@ export class CategoriesGenerator implements Generator { const playlist = new Playlist(categoryStreams, { public: true }) const filepath = `categories/${category.id}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + EOL ) }) @@ -46,8 +47,8 @@ export class CategoriesGenerator implements Generator { const playlist = new Playlist(undefinedStreams, { public: true }) const filepath = 'categories/undefined.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + EOL ) } } diff --git a/scripts/generators/countriesGenerator.ts b/scripts/generators/countriesGenerator.ts index c935da5a4..7dc707cf9 100644 --- a/scripts/generators/countriesGenerator.ts +++ b/scripts/generators/countriesGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' import { Country, Subdivision, Stream, Playlist } from '../models' +import { Collection, Storage, File } from '@freearhey/core' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type CountriesGeneratorProps = { streams: Collection countries: Collection - logger: Logger + logFile: File } export class CountriesGenerator implements Generator { streams: Collection countries: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, countries, logger }: CountriesGeneratorProps) { + constructor({ streams, countries, logFile }: CountriesGeneratorProps) { this.streams = streams this.countries = countries this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -36,8 +37,8 @@ export class CountriesGenerator implements Generator { const playlist = new Playlist(countryStreams, { public: true }) const filepath = `countries/${country.code.toLowerCase()}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'country', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'country', filepath, count: playlist.streams.count() }) + EOL ) country.getSubdivisions().forEach(async (subdivision: Subdivision) => { @@ -50,8 +51,8 @@ export class CountriesGenerator implements Generator { const playlist = new Playlist(subdivisionStreams, { public: true }) const filepath = `subdivisions/${subdivision.code.toLowerCase()}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'subdivision', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'subdivision', filepath, count: playlist.streams.count() }) + EOL ) }) }) @@ -60,12 +61,12 @@ export class CountriesGenerator implements Generator { const undefinedPlaylist = new Playlist(undefinedStreams, { public: true }) const undefinedFilepath = 'countries/undefined.m3u' await this.storage.save(undefinedFilepath, undefinedPlaylist.toString()) - this.logger.info( + this.logFile.append( JSON.stringify({ type: 'country', filepath: undefinedFilepath, count: undefinedPlaylist.streams.count() - }) + }) + EOL ) } } diff --git a/scripts/generators/indexCategoryGenerator.ts b/scripts/generators/indexCategoryGenerator.ts index 529ee8336..665f4cb0c 100644 --- a/scripts/generators/indexCategoryGenerator.ts +++ b/scripts/generators/indexCategoryGenerator.ts @@ -1,22 +1,23 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Category } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexCategoryGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexCategoryGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexCategoryGeneratorProps) { + constructor({ streams, logFile }: IndexCategoryGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -48,6 +49,8 @@ export class IndexCategoryGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.category.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexCountryGenerator.ts b/scripts/generators/indexCountryGenerator.ts index c65a43734..82eb335ef 100644 --- a/scripts/generators/indexCountryGenerator.ts +++ b/scripts/generators/indexCountryGenerator.ts @@ -1,22 +1,23 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Country } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexCountryGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexCountryGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexCountryGeneratorProps) { + constructor({ streams, logFile }: IndexCountryGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -56,6 +57,8 @@ export class IndexCountryGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.country.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexGenerator.ts b/scripts/generators/indexGenerator.ts index fafda061f..5cfa86c66 100644 --- a/scripts/generators/indexGenerator.ts +++ b/scripts/generators/indexGenerator.ts @@ -1,22 +1,23 @@ -import { Collection, Logger, Storage } from '@freearhey/core' +import { Collection, File, Storage } from '@freearhey/core' import { Stream, Playlist } from '../models' -import { Generator } from './generator' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexGeneratorProps) { + constructor({ streams, logFile }: IndexGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -27,6 +28,8 @@ export class IndexGenerator implements Generator { const playlist = new Playlist(sfwStreams, { public: true }) const filepath = 'index.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexLanguageGenerator.ts b/scripts/generators/indexLanguageGenerator.ts index 1116eb740..3df9f71f2 100644 --- a/scripts/generators/indexLanguageGenerator.ts +++ b/scripts/generators/indexLanguageGenerator.ts @@ -1,22 +1,23 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Language } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexLanguageGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexLanguageGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexLanguageGeneratorProps) { + constructor({ streams, logFile }: IndexLanguageGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -47,6 +48,8 @@ export class IndexLanguageGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.language.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexNsfwGenerator.ts b/scripts/generators/indexNsfwGenerator.ts index a89cf0a10..e1e98375b 100644 --- a/scripts/generators/indexNsfwGenerator.ts +++ b/scripts/generators/indexNsfwGenerator.ts @@ -1,22 +1,23 @@ -import { Collection, Logger, Storage } from '@freearhey/core' +import { Collection, File, Storage } from '@freearhey/core' import { Stream, Playlist } from '../models' -import { Generator } from './generator' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexNsfwGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexNsfwGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexNsfwGeneratorProps) { + constructor({ streams, logFile }: IndexNsfwGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -25,6 +26,8 @@ export class IndexNsfwGenerator implements Generator { const playlist = new Playlist(allStreams, { public: true }) const filepath = 'index.nsfw.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexRegionGenerator.ts b/scripts/generators/indexRegionGenerator.ts index 94537c9af..c462fcfce 100644 --- a/scripts/generators/indexRegionGenerator.ts +++ b/scripts/generators/indexRegionGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Region } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexRegionGeneratorProps = { streams: Collection regions: Collection - logger: Logger + logFile: File } export class IndexRegionGenerator implements Generator { streams: Collection regions: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, regions, logger }: IndexRegionGeneratorProps) { + constructor({ streams, regions, logFile }: IndexRegionGeneratorProps) { this.streams = streams this.regions = regions this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -58,6 +59,8 @@ export class IndexRegionGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.region.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/languagesGenerator.ts b/scripts/generators/languagesGenerator.ts index 114fcddb2..f7ae9976e 100644 --- a/scripts/generators/languagesGenerator.ts +++ b/scripts/generators/languagesGenerator.ts @@ -1,19 +1,20 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Playlist, Language, Stream } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' -type LanguagesGeneratorProps = { streams: Collection; logger: Logger } +type LanguagesGeneratorProps = { streams: Collection; logFile: File } export class LanguagesGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: LanguagesGeneratorProps) { + constructor({ streams, logFile }: LanguagesGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -38,8 +39,8 @@ export class LanguagesGenerator implements Generator { const playlist = new Playlist(languageStreams, { public: true }) const filepath = `languages/${language.code}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + EOL ) }) @@ -50,8 +51,8 @@ export class LanguagesGenerator implements Generator { const playlist = new Playlist(undefinedStreams, { public: true }) const filepath = 'languages/undefined.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + EOL ) } } diff --git a/scripts/generators/regionsGenerator.ts b/scripts/generators/regionsGenerator.ts index fb0a5d688..4d649a351 100644 --- a/scripts/generators/regionsGenerator.ts +++ b/scripts/generators/regionsGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Playlist, Region, Stream } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type RegionsGeneratorProps = { streams: Collection regions: Collection - logger: Logger + logFile: File } export class RegionsGenerator implements Generator { streams: Collection regions: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, regions, logger }: RegionsGeneratorProps) { + constructor({ streams, regions, logFile }: RegionsGeneratorProps) { this.streams = streams this.regions = regions this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -35,8 +36,8 @@ export class RegionsGenerator implements Generator { const playlist = new Playlist(regionStreams, { public: true }) const filepath = `regions/${region.code.toLowerCase()}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() }) + EOL ) }) @@ -44,18 +45,20 @@ export class RegionsGenerator implements Generator { const internationalPlaylist = new Playlist(internationalStreams, { public: true }) const internationalFilepath = 'regions/int.m3u' await this.storage.save(internationalFilepath, internationalPlaylist.toString()) - this.logger.info( + this.logFile.append( JSON.stringify({ type: 'region', filepath: internationalFilepath, count: internationalPlaylist.streams.count() - }) + }) + EOL ) const undefinedStreams = streams.filter((stream: Stream) => !stream.hasBroadcastArea()) const playlist = new Playlist(undefinedStreams, { public: true }) const filepath = 'regions/undefined.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/models/feed.ts b/scripts/models/feed.ts index 03ae31184..2b1fa9d34 100644 --- a/scripts/models/feed.ts +++ b/scripts/models/feed.ts @@ -144,8 +144,8 @@ export class Feed { this.broadcastRegions = regions.filter((region: Region) => { if (region.code === 'INT') return false - - return region.countryCodes.intersects(countriesCodes) + const intersected = region.countryCodes.intersects(countriesCodes) + return intersected.notEmpty() }) return this diff --git a/scripts/models/playlist.ts b/scripts/models/playlist.ts index ba0a25c5c..d3022a5af 100644 --- a/scripts/models/playlist.ts +++ b/scripts/models/playlist.ts @@ -17,10 +17,10 @@ export class Playlist { } toString() { - let output = '#EXTM3U\n' + let output = '#EXTM3U\r\n' this.streams.forEach((stream: Stream) => { - output += stream.toString(this.options) + '\n' + output += stream.toString(this.options) + '\r\n' }) return output diff --git a/scripts/models/stream.ts b/scripts/models/stream.ts index 2de399efc..443a249b9 100644 --- a/scripts/models/stream.ts +++ b/scripts/models/stream.ts @@ -352,14 +352,14 @@ export class Stream { output += `,${this.getTitle()}` if (this.referrer) { - output += `\n#EXTVLCOPT:http-referrer=${this.referrer}` + output += `\r\n#EXTVLCOPT:http-referrer=${this.referrer}` } if (this.userAgent) { - output += `\n#EXTVLCOPT:http-user-agent=${this.userAgent}` + output += `\r\n#EXTVLCOPT:http-user-agent=${this.userAgent}` } - output += `\n${this.url}` + output += `\r\n${this.url}` return output } diff --git a/streams/al.m3u b/streams/al.m3u index 8ee8a13f9..5bf3da0c8 100644 --- a/streams/al.m3u +++ b/streams/al.m3u @@ -29,3 +29,5 @@ https://live.prostream.al/al/smil:tropojatv.smil/playlist.m3u8 https://fe.tring.al/delta/105/out/u/rdghfhsfhfshs.m3u8 #EXTINF:-1 tvg-id="ZjarrTV.al",Zjarr TV (720p) [Not 24/7] https://cdn.jwplayer.com/live/events/r2qgHu7W.m3u8 +#EXTINF:-1 tvg-id="EuronewsAlbania.al",Euronews Albania +https://gjirafa-video-live.gjirafa.net/gjvideo-live/2dw-zuf-1c9-pxu/index.m3u8 diff --git a/streams/am_vnet.m3u b/streams/am_vnet.m3u index c61bcbd39..9188290eb 100644 --- a/streams/am_vnet.m3u +++ b/streams/am_vnet.m3u @@ -5,32 +5,8 @@ http://stream01.vnet.am/AmediaPremium/mono.m3u8 http://stream02.vnet.am/Kinoman/mono.m3u8 #EXTINF:-1 tvg-id="FightBox.nl",FightBox http://stream01.vnet.am/Fightbox/mono.m3u8 -#EXTINF:-1 tvg-id="Fox.ru",Fox -https://stream01.vnet.am/Fox/mono.m3u8 -#EXTINF:-1 tvg-id="Hollywood.ru",Hollywood -http://stream01.vnet.am/ParamountChannel/mono.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.ru",National Geographic Wild -http://stream02.vnet.am/NatGeoWild/mono.m3u8 -#EXTINF:-1 tvg-id="NicktoonsCIS.ru",Nicktoons -https://stream01.vnet.am/Boomerang/mono.m3u8 -#EXTINF:-1 tvg-id="BoksTV.ru",ะ‘ะพะบั ะขะ’ -http://stream01.vnet.am/BoksTv/mono.m3u8 #EXTINF:-1 tvg-id="Detskimir.ru",ะ”ะตั‚ัะบะธะน ะผะธั€ http://stream01.vnet.am/CartoonNetwork/mono.m3u8 -#EXTINF:-1 tvg-id="Domkino.ru",ะ”ะพะผ ะšะธะฝะพ -https://stream01.vnet.am/DomKino/mono.m3u8 -#EXTINF:-1 tvg-id="India.ru",ะ˜ะฝะดะธั -https://stream01.vnet.am/ZeeTV/mono.m3u8 -#EXTINF:-1 tvg-id="CarouselInternational.ru",ะšะฐั€ัƒัะตะปัŒ Int -http://stream02.vnet.am/Karusel/mono.m3u8 -#EXTINF:-1 tvg-id="Kinopremyera.ru@HD",ะšะธะฝะพะฟั€ะตะผัŒะตั€ะฐ HD -http://stream02.vnet.am/Kinopremera/mono.m3u8 -#EXTINF:-1 tvg-id="KukhnyaTV.ru",ะšัƒั…ะฝั ะขะ’ HD -http://stream01.vnet.am/KukhnyaTv/mono.m3u8 -#EXTINF:-1 tvg-id="MuzTV.ru",ะœัƒะท ะขะ’ -http://stream01.vnet.am/MuzTv/mono.m3u8 -#EXTINF:-1 tvg-id="Mult.ru",ะœัƒะปัŒั‚ -http://stream01.vnet.am/Mult/mono.m3u8 #EXTINF:-1 tvg-id="Nauka.ru",ะะฐัƒะบะฐ 2.0 http://stream01.vnet.am/Nauka/mono.m3u8 #EXTINF:-1 tvg-id="NTVMir.ru",ะะขะ’ ะœะธั€ @@ -41,7 +17,5 @@ http://stream01.vnet.am/Evrika/mono.m3u8 http://stream01.vnet.am/Perec/mono.m3u8 #EXTINF:-1 tvg-id="FridayInternational.ru",ะŸัั‚ะฝะธั†ะฐ International https://stream01.vnet.am/Pyatnica/mono.m3u8 -#EXTINF:-1 tvg-id="STSkids.ru",ะกะขะก Kids -http://stream02.vnet.am/DisneyChannel/mono.m3u8 #EXTINF:-1 tvg-id="Telecafe.ru",ะขะตะปะตะบะฐั„ะต http://stream01.vnet.am/Telekafe/mono.m3u8 diff --git a/streams/ar.m3u b/streams/ar.m3u index add4e13fd..dd2368076 100644 --- a/streams/ar.m3u +++ b/streams/ar.m3u @@ -368,3 +368,5 @@ https://stmv1.cnarlatam.com/xtremaseries/xtremaseries/playlist.m3u8 #EXTINF:-1 tvg-id="XtremaTerror.ar" http-referrer="https://xtrematv.com/?p=1456",Xtrema Terror #EXTVLCOPT:http-referrer=https://xtrematv.com/?p=1456 https://stmv6.voxtvhd.com.br/cineterror/cineterror/playlist.m3u8 +#EXTINF:-1 tvg-id="RetroMagico.ar",Retro Magico (720p) +https://stream.gia.tv/giatv/giatv-retromagico/retromagico/playlist.m3u8 diff --git a/streams/at.m3u b/streams/at.m3u index cbacd60ff..f275b90c3 100644 --- a/streams/at.m3u +++ b/streams/at.m3u @@ -68,3 +68,7 @@ http://89.187.168.245:8080/live/sUPPERchannel2/index.m3u8 https://live1.markenfunk.com/t1/ngrp:live_all/playlist.m3u8 #EXTINF:-1 tvg-id="W24.at",W24 (720p) [Not 24/7] https://ms01.w24.at/W24/smil:liveevent.smil/playlist.m3u8 +#EXTINF:-1 tvg-id="AntenneSteiermark.at",Antenne Steiermark (720p) +https://60efd7a2b4d02.streamlock.net/a_steiermark/ngrp:livestream_all/playlist.m3u8 +#EXTINF:-1 tvg-id="AntenneKaernten.at",Antenne Kaernten (720p) +https://60efd7a2b4d02.streamlock.net/a_kaernten/ngrp:livestream_all/playlist.m3u8 diff --git a/streams/au.m3u b/streams/au.m3u index 5c041d0ef..625e71951 100644 --- a/streams/au.m3u +++ b/streams/au.m3u @@ -55,6 +55,12 @@ https://9now-livestreams-fhd-t.akamaized.net/u/prod/simulcast/per/ch9/hls/r1/ind https://9now-livestreams-fhd-t.akamaized.net/u/prod/simulcast/syd/ch9/hls/r1/index.m3u8 #EXTINF:-1 tvg-id="Channel44.au",Channel 44 (480p) https://d1k6kax80wecy5.cloudfront.net/WFqZJc/index.m3u8 +#EXTINF:-1 tvg-id="CTBPerth.au",CTB Perth (720p) +https://live.ctbperth.net.au/hls/0/stream.m3u8 +#EXTINF:-1 tvg-id="CTBPerthMovies.au",CTB Perth Movies (720p) +https://movies.ctbperth.net.au/hls/stream.m3u8 +#EXTINF:-1 tvg-id="",CTB Perth News (720p) +https://news.ctbperth.net.au/hls/stream.m3u8 #EXTINF:-1 tvg-id="ExpoChannel.au",Expo Channel (360p) https://tvsnhlslivetest.akamaized.net/hls/live/2034711/EXPO-MSL4/master.m3u8 #EXTINF:-1 tvg-id="HopeChannelAustralia.au",Hope Channel Australia (1080p) diff --git a/streams/bf.m3u b/streams/bf.m3u index 0f552635c..6ec5f0c18 100644 --- a/streams/bf.m3u +++ b/streams/bf.m3u @@ -3,5 +3,9 @@ https://547f72e6652371c3.mediapackage.us-east-1.amazonaws.com/out/v1/7e66f389bec3463dac81e8d55e680431/index.m3u8 #EXTINF:-1 tvg-id="BurkinaInfoTV.bf",Burkina Info TV (540p) http://69.64.57.208/burkinainfo/index.m3u8 -#EXTINF:-1 tvg-id="RTB.bf",RTB [Not 24/7] -https://edge20.vedge.infomaniak.com/livecast/ik:rtblive1_8/manifest.m3u8 +#EXTINF:-1 tvg-id="ImpactTV.bf",Impact TV (360p) [Not 24/7] +https://edge12.vedge.infomaniak.com/livecast/ik:emcv/manifest.m3u8 +#EXTINF:-1 tvg-id="RTB.bf",RTB (360p) [Not 24/7] +https://edge12.vedge.infomaniak.com/livecast/ik:rtblive1_8/manifest.m3u8 +#EXTINF:-1 tvg-id="RTBZenith.bf",RTB Zรฉnith (360p) [Geo-blocked] +https://edge20.vedge.infomaniak.com/livecast/ik:la2/manifest.m3u8 diff --git a/streams/bo.m3u b/streams/bo.m3u index 06a5384ad..914132edb 100644 --- a/streams/bo.m3u +++ b/streams/bo.m3u @@ -15,8 +15,6 @@ https://video2.getstreamhosting.com:19360/8038/8038.m3u8 https://stmvideo3.livecastv.com/aynitv/aynitv/playlist.m3u8 #EXTINF:-1 tvg-id="BoliviaRadioTV.bo",Bolivia Radio TV (720p) [Not 24/7] https://glb.bozztv.com/glb/ssh101/boliviaradiotv/playlist.m3u8 -#EXTINF:-1 tvg-id="BoliviaTV.bo",Bolivia TV (720p) -https://5fe2654d6127d.streamlock.net/boliviatv/videoboliviatv/playlist.m3u8 #EXTINF:-1 tvg-id="BoliviaTV.bo",Bolivia TV (720p) [Not 24/7] http://boliviatv1.srfms.com:5735/live/livestream/playlist.m3u8 #EXTINF:-1 tvg-id="BoliviaTV72.bo",Bolivia TV 7.2 (720p) @@ -57,7 +55,7 @@ https://glb.bozztv.com/glb/ssh101/fortalezacueto/index.m3u8 https://master.tucableip.com/ftv/index.m3u8 #EXTINF:-1 tvg-id="Gigavision.bo",Gigavisiรณn (1080p) [Not 24/7] https://master.tucableip.com/gigavision/playlist.m3u8 -#EXTINF:-1 tvg-id="GoGoPlayTV.bo@SD",Gogo Play TV (720p) +#EXTINF:-1 tvg-id="",Gogo Play TV (720p) https://glb.bozztv.com/glb/ssh101/gogoplay/index.m3u8 #EXTINF:-1 tvg-id="GTV.bo",Guadalupe TV (720p) [Not 24/7] https://solo.disfrutaenlared.com:1936/guadalupetv/guadalupetv/playlist.m3u8 @@ -155,3 +153,11 @@ https://fl1004.bozztv.com/ssh101/zoytvsports4/index.m3u8 https://fl1004.bozztv.com/ssh101/zoytvsports5/index.m3u8 #EXTINF:-1 tvg-id="ZoyTVTurcas.bo",Zoy TV Turcas https://fl1004.bozztv.com/ssh101/zoytvturcas/index.m3u8 +#EXTINF:-1 tvg-id="BoliviaTV.bo",Bolivia TV (720p) +https://5fe2654d6127d.streamlock.net:443/boliviatv/videoboliviatv/playlist.m3u8 +#EXTINF:-1 tvg-id="ZoyTVSports1.bo",Zoy TV Sports 1 (1080p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytvsports/playlist.m3u8 +#EXTINF:-1 tvg-id="ZoyTVTurcas.bo",Zoy TV Turcas (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytvturcas/playlist.m3u8 +#EXTINF:-1 tvg-id="ZoyTVPlus.bo",ZoyTV Plus (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytv/playlist.m3u8 diff --git a/streams/br.m3u b/streams/br.m3u index 3292b5d8f..01eb343ae 100644 --- a/streams/br.m3u +++ b/streams/br.m3u @@ -599,3 +599,11 @@ https://video01.kshost.com.br/seap8272/seap8272/playlist.m3u8 http://painelvj.com.br/tvaguaboa2/tvaguaboa2.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="WTVBrasil.br",WTV Brasil (720p) https://stmv1.srvstm.com/wtvbrasil/wtvbrasil/playlist.m3u8 +#EXTINF:-1 tvg-id="TVCancaoNova.br",TV Cancao Nova (720p) +https://5c65286fc6ace.streamlock.net/cancaonova/CancaoNova.stream_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="TVMAX.br",TV MAX (720p) +https://5cf4a2c2512a2.streamlock.net/tvmax/tvmax/playlist.m3u8 +#EXTINF:-1 tvg-id="TVBrasil.br",TV Brasil (720p) +https://tvbrasil-stream.ebc.com.br/index.m3u8 +#EXTINF:-1 tvg-id="RedeTV.br",Rede TV! (720p) +https://cdn.jmvstream.com/w/AVJ-15235/playlist/playlist.m3u8 diff --git a/streams/cl.m3u b/streams/cl.m3u index 030ff8b40..bf50205e4 100644 --- a/streams/cl.m3u +++ b/streams/cl.m3u @@ -317,8 +317,6 @@ https://panel.miplay.cl:8082/spectrumchannel/index.m3u8 https://stv.janus.cl/playlist/stream.m3u8 #EXTINF:-1 tvg-id="Subela.cl",Sรบbela (720p) https://mdstrm.com/live-stream-playlist/5fad9b1d978fe1080e3ac4a8.m3u8 -#EXTINF:-1 tvg-id="SURTV.cl",Sur TV (720p) -https://paneltv.online:1936/8034/8034/playlist.m3u8 #EXTINF:-1 tvg-id="T13.cl",T13 (720p) https://jireh-2-hls-video-us-isp.dps.live/hls-video/10b92cafdf3646cbc1e727f3dc76863621a327fd/t13/t13.smil/playlist.m3u8 #EXTINF:-1 tvg-id="TVinet.cl",T-Vinet (480p) @@ -447,3 +445,16 @@ https://zmlive.zappingtv.com/zm-free/zm.smil/playlist.m3u8 http://190.2.212.209:8050/play/a0oj #EXTINF:-1 tvg-id="ZonaPlayTV.cl",Zona Play TV (720p) https://paneltv.online:1936/8100/8100/playlist.m3u8 +#EXTINF:-1 tvg-id="EnerGeekRadio.cl",EnerGeek Radio +https://xui-backend.energeek.cl/live/11/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF +#EXTINF:-1 tvg-id="EnerGeekFAN.cl@SD",EnerGeek FAN (1080p) +https://xui-backend.energeek.cl/live/10/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF +#EXTINF:-1 tvg-id="EnerGeek.cl",EnerGeek (1080p) +https://xui-backend.energeek.cl/live/9/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF +#EXTINF:-1 tvg-id="Kanade.cl",Kanade (1080p) +https://xui-backend.energeek.cl/live/deM0kanADeweB/Cerq7EpWHiWDuHTJ8ikz/13.m3u8 +#EXTINF:-1 tvg-id="VisionPlusTV.cl" http-referrer="https://visionplustv.cl/",Vision Plus TV (1080i) +#EXTVLCOPT:http-referrer=https://visionplustv.cl/ +https://5ff3d9babae13.streamlock.net/jwagpqxehu/jwagpqxehu/playlist.m3u8 +#EXTINF:-1 tvg-id="Nublevision.cl",Nublevision (720p) +https://tv.arkeo.cl:1936/nublevision/nublevision/playlist.m3u8 diff --git a/streams/cn_cctv.m3u b/streams/cn_cctv.m3u index 3c5d148f8..fce9ccb8b 100644 --- a/streams/cn_cctv.m3u +++ b/streams/cn_cctv.m3u @@ -3,37 +3,19 @@ https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL1.smil/playlist.m3u8 #EXTINF:-1 tvg-id="CCTVPlus2.cn",CCTV+ 2 (600p) [Not 24/7] https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL2.smil/playlist.m3u8 -#EXTINF:-1 tvg-id="CCTV1.cn",CCTV-1็ปผๅˆ (1080p) -https://node1.olelive.com:6443/live/CCTV1HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV1.cn",CCTV-1็ปผๅˆ (576p) http://42.176.185.28:9901/tsfile/live/1022_1.m3u8 -#EXTINF:-1 tvg-id="CCTV2.cn",CCTV-2่ดข็ป (1080p) -https://node1.olelive.com:6443/live/CCTV2HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV4America.cn",CCTV-4 America (1080p) https://global.cgtn.cicc.media.caton.cloud/master/cgtn-america.m3u8 #EXTINF:-1 tvg-id="CCTV4Asia.cn",CCTV-4 Asia (480p) http://210.210.155.37/qwr9ew/s/s19/index.m3u8 -#EXTINF:-1 tvg-id="CCTV5Plus.cn",CCTV-5+ไฝ“่‚ฒ่ต›ไบ‹ (1080p) -https://node1.olelive.com:6443/live/CCTV5PHD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5ไฝ“่‚ฒ (1080p) http://1.85.0.62:808/hls/503/index.m3u8 #EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5ไฝ“่‚ฒ (1080p) http://220.178.228.153:1935/live/cctv5/playlist.m3u8 #EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5ไฝ“่‚ฒ (1080p) http://223.95.111.98:5555/newlive/live/hls/5/live.m3u8 -#EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5ไฝ“่‚ฒ (1080p) -https://node1.olelive.com:6443/live/CCTV5HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV6.cn",CCTV-6็”ตๅฝฑ (1080p) http://1.85.0.62:808/hls/6/index.m3u8 -#EXTINF:-1 tvg-id="CCTV7.cn",CCTV-7ๅ›ฝ้˜ฒๅ†›ไบ‹ (1080p) -https://node1.olelive.com:6443/live/CCTV7HD/hls.m3u8 -#EXTINF:-1 tvg-id="CCTV8.cn",CCTV-8็”ต่ง†ๅ‰ง (1080p) -https://node1.olelive.com:6443/live/CCTV8HD/hls.m3u8 -#EXTINF:-1 tvg-id="CCTV9.cn",CCTV-9็บชๅฝ• (1080p) -https://node1.olelive.com:6443/live/CCTV9HD/hls.m3u8 -#EXTINF:-1 tvg-id="CCTV10.cn",CCTV-10็ง‘ๆ•™ (1080p) -https://node1.olelive.com:6443/live/CCTV10HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV13.cn",CCTV-13ๆ–ฐ้—ป (1080p) https://live-play.cctvnews.cctv.com/cctv/merge_cctv13.m3u8 -#EXTINF:-1 tvg-id="CCTV13.cn",CCTV-13ๆ–ฐ้—ป (1080p) -https://node1.olelive.com:6443/live/CCTV13HD/hls.m3u8 diff --git a/streams/cn_yeslivetv.m3u b/streams/cn_yeslivetv.m3u index 7d265c390..84c908f7a 100644 --- a/streams/cn_yeslivetv.m3u +++ b/streams/cn_yeslivetv.m3u @@ -1,27 +1,3 @@ #EXTM3U -#EXTINF:-1 tvg-id="CCTV5Plus.cn",CCTV5+ -https://pull-f5-spe.ixigua.com/live/YesLiveTV-7d098b36-c7e5-4941-8eb0-6af0f5ad3f8d.flv -#EXTINF:-1 tvg-id="HOYTV.hk",HOY TV้–‹้›ป่ฆ– -https://pull-f5-spe.ixigua.com/yeslivetv.com/934973832-202925490/index.m3u8 -#EXTINF:-1 tvg-id="",HOY่ณ‡่จŠๅฐ -https://pull-f5-spe.ixigua.com/live/YesLiveTV-3e9f20e4-e6fd-4292-ac7a-3180610b1edd/index.m3u8 -#EXTINF:-1 tvg-id="J2.hk",J2 -https://pull-f5-spe.ixigua.com/yeslivetv.com/6027316-581799927/index.m3u8 -#EXTINF:-1 tvg-id="ViuTV.hk",ViuTV -https://pull-f5-spe.ixigua.com/yeslivetv.com/711923214-581799927/index.m3u8 -#EXTINF:-1 tvg-id="ViuTVsix.hk",ViuTV Six -https://pull-f5-spe.ixigua.com/yeslivetv.com/154548299-581799927/index.m3u8 #EXTINF:-1 tvg-id="",ๅšๆ–ฏ้ซ˜็ƒๅฐ https://yeslivetv.com/twiptv/litv-longturn05/index.m3u8 -#EXTINF:-1 tvg-id="",็„ก็ถซๆ–ฐ่žๅฐ -https://pull-f5-spe.ixigua.com/yeslivetv.com/446133069-816601364/index.m3u8 -#EXTINF:-1 tvg-id="",็„ก็ถซ่ฒก็ถ“ยท้ซ”่‚ฒยท่ณ‡่จŠๅฐ -https://pull-f5-spe.ixigua.com/yeslivetv.com/944048695-106799677/index.m3u8 -#EXTINF:-1 tvg-id="",็ฟก็ฟ ๅฐ -https://pull-f5-spe.ixigua.com/yeslivetv.com/291403ea-fabd-4dc1-bdfa-f14ebe74411e/index.m3u8 -#EXTINF:-1 tvg-id="",้ฆ™ๆธฏๅœ‹้š›่ฒก็ถ“ๅฐ -https://pull-f5-spe.ixigua.com/live/YesLiveTV-312f21aa-d8cf-4d55-bd8f-87069342457d/index.m3u8 -#EXTINF:-1 tvg-id="",้ณณๅ‡ฐไธญๆ–‡ -https://pull-f5-spe.ixigua.com/yeslivetv.com/592947253-711982631/index.m3u8 -#EXTINF:-1 tvg-id="",้ณณๅ‡ฐ่ณ‡่จŠ -https://pull-f5-spe.ixigua.com/yeslivetv.com/303328069-581799927/index.m3u8 diff --git a/streams/co.m3u b/streams/co.m3u index f34282d33..52f9c14f9 100644 --- a/streams/co.m3u +++ b/streams/co.m3u @@ -320,3 +320,15 @@ http://190.2.212.209:8050/play/a0n2 #EXTINF:-1 tvg-id="Zoom.co" http-referrer="https://canalzoom.org/senal-en-vivo",Zoom (1080p) #EXTVLCOPT:http-referrer=https://canalzoom.org/senal-en-vivo https://canalzoom.smoothcloud.co:3027/live/canalzoombr1live.m3u8 +#EXTINF:-1 tvg-id="TDIColombia.co",TDI Colombia (720p) +https://streaming.amelbasoluciones.co:19360/tdicolombia/tdicolombia.m3u8 +#EXTINF:-1 tvg-id="CanalCapital.co",Canal Capital (720p) +https://cdns.livewave.co:19360/canalcapital/canalcapital.m3u8 +#EXTINF:-1 tvg-id="MulticanalTelevision.co",Multicanal Television (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/multicanal/playlist.m3u8 +#EXTINF:-1 tvg-id="Telepacifico.co",Telepacifico (1080p) +https://play.cdn.enetres.net/6E5C615AA5FF4123ACAF0DAB57B7B8DC021/022/playlist.m3u8 +#EXTINF:-1 tvg-id="NSTV.co",NSTV (720p) +https://cp.panelchs.com:1936/8038/8038/playlist.m3u8 +#EXTINF:-1 tvg-id="NSTV.co",NSTV (720p) +http://138.186.23.7:22281/nstv/nstv/playlist.m3u8 diff --git a/streams/cr.m3u b/streams/cr.m3u index d4b406e01..c04632b40 100644 --- a/streams/cr.m3u +++ b/streams/cr.m3u @@ -160,3 +160,5 @@ https://stmv.streamingvip.click/xpressojovenradiotv/xpressojovenradiotv/playlist https://acceso.radiosportstv.online:3022/stream/play.m3u8 #EXTINF:-1 tvg-id="ZurquiTV.cr",Zurquรญ TV (720p) https://videoserver.tmcreativos.com:19360/gesfnvpamn/gesfnvpamn.m3u8 +#EXTINF:-1 tvg-id="RetroxTV.cr",Retrox TV (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/tvtvtv/playlist.m3u8 diff --git a/streams/de.m3u b/streams/de.m3u index 1ce2ef96e..82a1da476 100644 --- a/streams/de.m3u +++ b/streams/de.m3u @@ -73,7 +73,7 @@ https://sdn-global-live-streaming-packager-cache.3qsdn.com/13456/13456_264_live. https://sdn-global-live-streaming-packager-cache.3qsdn.com/65183/65183_264_live.m3u8 #EXTINF:-1 tvg-id="",Deluxe Rock (1080p) https://sdn-global-live-streaming-packager-cache.3qsdn.com/65181/65181_264_live.m3u8 -#EXTINF:-1 tvg-id="DeutschesMusikFernsehen.de",Deutsches Musik Fernsehen (1080p) [Not 24/7] +#EXTINF:-1 tvg-id="DMF.de@SD",DMF (1080p) [Not 24/7] https://d-m-f.iptv-playoutcenter.de/dmf/dmf1/playlist.m3u8 #EXTINF:-1 tvg-id="DF1.de",DF1 (720p) https://dbjwcot8t7nyd.cloudfront.net/out/v1/9d068a9428444b458324ad77b5a0a4b8/index.m3u8 @@ -371,17 +371,12 @@ https://live.creacast.com/rockland-radio/smil:rockland-radio.smil/playlist.m3u8 https://rt-ger.rttv.com/dvr/rtdeutsch/playlist.m3u8 #EXTINF:-1 tvg-id="RTDE.de",RT DE (1080p) [Not 24/7] https://rt-ger.rttv.com/live/rtdeutsch/playlist.m3u8 -#EXTINF:-1 tvg-id="RTL.de",RTL (576p) -https://s6.hopslan.com/rtlc1/tracks-v1a1/mono.m3u8 #EXTINF:-1 tvg-id="RTL.de",RTL (Germany) (576p) http://178.219.128.68:64888/RTL #EXTINF:-1 tvg-id="RTLSuper.de",RTL Super (576p) http://178.219.128.68:64888/SUPERTL #EXTINF:-1 tvg-id="RTLZwei.de",RTL Zwei (1080p) http://178.219.128.68:64888/RTL2 -#EXTINF:-1 tvg-id="RTLZwei.de" http-referrer="https://www.2ix2.com/rtl2-live/",RTL Zwei (576p) -#EXTVLCOPT:http-referrer=https://www.2ix2.com/rtl2-live/ -https://s6.hopslan.com/rtl2x1/index.m3u8 #EXTINF:-1 tvg-id="SaarlandFernsehen1.de",Saarland Fernsehen 1 (1080p) https://saarland1.iptv-playoutcenter.de/saarland1/saarland1.stream_1/playlist.m3u8 #EXTINF:-1 tvg-id="SaarlandFernsehen2.de",Saarland Fernsehen 2 (720p) [Not 24/7] diff --git a/streams/do.m3u b/streams/do.m3u index c501704ec..1c1b79230 100644 --- a/streams/do.m3u +++ b/streams/do.m3u @@ -519,3 +519,5 @@ https://ss3.domint.net:3108/zol_str/vzol/playlist.m3u8 https://5790d294af2dc.streamlock.net/Zonavisiontv/Zonavisiontv/playlist.m3u8 #EXTINF:-1 tvg-id="ZTV.do",ZTV (720p) [Not 24/7] https://lb00zdigital.streamprolive.com/mnt/hls/live.m3u8 +#EXTINF:-1 tvg-id="AvivamientoTV.do",Avivamiento TV (480p) +https://ssh101.bozztv.com/ssh101/avivamientotv/playlist.m3u8 diff --git a/streams/es_samsung.m3u b/streams/es_samsung.m3u index d31665e36..ea2bd6911 100644 --- a/streams/es_samsung.m3u +++ b/streams/es_samsung.m3u @@ -3,8 +3,6 @@ https://dhx-caillou-1-es.samsung.wurl.tv/playlist.m3u8 #EXTINF:-1 tvg-id="EuronewsSpanish.fr",Euronews en Espaรฑol (720p) https://rakuten-euronews-4-es.samsung.wurl.tv/manifest/playlist.m3u8 -#EXTINF:-1 tvg-id="FashionTVEurope.fr",Fashion TV (Spain) (1080p) -https://fashiontv-fashiontv-2-es.samsung.wurl.tv/manifest/playlist.m3u8 #EXTINF:-1 tvg-id="",iHola Play https://rakuten-hola-2-es.samsung.wurl.tv/playlist.m3u8 #EXTINF:-1 tvg-id="PeopleAreAwesome.us",People are Awesome diff --git a/streams/gr.m3u b/streams/gr.m3u index 9d5c900c3..da7ee1987 100644 --- a/streams/gr.m3u +++ b/streams/gr.m3u @@ -67,8 +67,6 @@ http://live.streams.ovh:1935/tvcreta/tvcreta/playlist.m3u8 http://81.171.10.42:554/liveD/DStream.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="DiavataTV.gr",Diavata TV (720p) https://ssh101.bozztv.com/ssh101/diavatatvweb/playlist.m3u8 -#EXTINF:-1 tvg-id="DiavataTV.gr",Diavata TV (720p) -https://video.streams.ovh:1936/DiavataTV/DiavataTV/playlist.m3u8 #EXTINF:-1 tvg-id="DiktyoTV.gr",Diktyo TV (576p) https://5d00db0e0fcd5.streamlock.net/7322/7322/playlist.m3u8 #EXTINF:-1 tvg-id="DipsoTV.gr",Dipso TV (720p) [Not 24/7] diff --git a/streams/hu.m3u b/streams/hu.m3u index 4711e943b..f7582ade5 100644 --- a/streams/hu.m3u +++ b/streams/hu.m3u @@ -261,3 +261,5 @@ https://cloudfront44.lexanetwork.com:1344/relay01/HDE051.sdp/playlist.m3u8 https://cloudfront44.lexanetwork.com:1344/freerelay/zegtv.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="ZugloTV.hu",Zuglo TV (360p) https://cloudfront44.lexanetwork.com:1344/freerelay/zuglotv.sdp/playlist.m3u8 +#EXTINF:-1 tvg-id="AXNSpin.hu@Poland",AXN Spin Poland (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/0577b50c-92ca-49bc-a769-48203eb96bfd.ts diff --git a/streams/iq.m3u b/streams/iq.m3u index d67bac805..846617e9e 100644 --- a/streams/iq.m3u +++ b/streams/iq.m3u @@ -150,3 +150,5 @@ https://ca-rt.onetv.app/Waar/index-0.m3u8 https://5a3ed7a72ed4b.streamlock.net/zagrostv/SMIL:myStream.smil/playlist.m3u8 #EXTINF:-1 tvg-id="",Zarok TV Sorani (720p) https://zindisorani.zaroktv.com.tr/hls/stream.m3u8 +#EXTINF:-1 tvg-id="AvarTV.iq",Avar TV (1080p) +https://avr.host247.net/live/AvarTv/playlist.m3u8 diff --git a/streams/ir.m3u b/streams/ir.m3u index 9dc324649..905b75f2c 100644 --- a/streams/ir.m3u +++ b/streams/ir.m3u @@ -71,3 +71,5 @@ https://hls.nejat.live/hls/stream.m3u8 https://hls.vox1.live/hls/stream.m3u8 #EXTINF:-1 tvg-id="YourTimeTV.ir",YourTime TV (720p) [Not 24/7] https://hls.yourtime.live/hls/stream.m3u8 +#EXTINF:-1 tvg-id="VarzeshTV.ir",Varzesh TV (480p) +https://stream.sainaertebat.com/hls2/varzeshtest.m3u8 diff --git a/streams/it.m3u b/streams/it.m3u index 356d77e6b..03e6e6ed0 100644 --- a/streams/it.m3u +++ b/streams/it.m3u @@ -1,6 +1,4 @@ #EXTM3U -#EXTINF:-1 tvg-id="7RadioVisione.it",7 RadioVisione (720p) -https://stream10.xdevel.com/video1s976543-1932/stream/playlist.m3u8 #EXTINF:-1 tvg-id="12TVParma.it",12 TV Parma (540p) [Not 24/7] https://5929b138b139d.streamlock.net/12TVParma/livestream/playlist.m3u8 #EXTINF:-1 tvg-id="20.it",20 Mediaset [Geo-blocked] @@ -139,16 +137,16 @@ https://tsw.streamingwebtv24.it:1936/insuranceconnect/insuranceconnect/playlist. https://live3-mediaset-it.akamaized.net/Content/hls_h0_clr_vos/live/channel(ki)/index.m3u8 #EXTINF:-1 tvg-id="Italia1.it",Italia 1 [Geo-blocked] https://live3-mediaset-it.akamaized.net/Content/hls_h0_clr_vos/live/channel(i1)/index.m3u8 -#EXTINF:-1 tvg-id="Italia2.it",Italia 2 (480p) [Geo-blocked] -https://59d7d6f47d7fc.streamlock.net/italia2/italia2/playlist.m3u8 #EXTINF:-1 tvg-id="Italia2.it",Italia 2 [Geo-blocked] https://live3-mediaset-it.akamaized.net/Content/hls_h0_clr_vos/live/channel(i2)/index.m3u8 +#EXTINF:-1 tvg-id="Italia2.it",Italia 2 (480p) [Geo-blocked] +https://59d7d6f47d7fc.streamlock.net/italia2/italia2/playlist.m3u8 #EXTINF:-1 tvg-id="Italia2TV.it",Italia 2 TV (480p) [Geo-blocked] http://wms.shared.streamshow.it/italia2/mp4:italia2/playlist.m3u8 -#EXTINF:-1 tvg-id="Italia7.it",Italia 7 (576p) -http://151.0.207.99:1935/italia7/italia7/playlist.m3u8 #EXTINF:-1 tvg-id="Italia7.it",Italia 7 https://streaming.softwarecreation.it/Italia7/Italia7/playlist.m3u8 +#EXTINF:-1 tvg-id="Italia7.it",Italia 7 (576p) +http://151.0.207.99:1935/italia7/italia7/playlist.m3u8 #EXTINF:-1 tvg-id="ItaliaChannel.it",Italia Channel (1080p) https://stream1.aswifi.it/italiachannel/stream/index.m3u8 #EXTINF:-1 tvg-id="",Iunior TV (720p) [Not 24/7] @@ -251,7 +249,7 @@ https://iptv.peer.biz/live/peertv-it.m3u8 https://iptv.peer.biz/live/peertv-en.m3u8 #EXTINF:-1 tvg-id="PeerTVSudtirol.it",Peer TV Sรผdtirol (1080p) https://iptv.peer.biz/live/peertv.m3u8 -#EXTINF:-1 tvg-id="PlutoTVTopGear.us@Italy" http-referrer="https://pluto.tv/it/live-tv/64c109a4798def0008a6e03e",Pluto TV Top Gear +#EXTINF:-1 tvg-id="PlutoTVTopGear.it" http-referrer="https://pluto.tv/it/live-tv/64c109a4798def0008a6e03e",Pluto TV Top Gear #EXTVLCOPT:http-referrer=https://pluto.tv/it/live-tv/64c109a4798def0008a6e03e https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY #EXTINF:-1 tvg-id="",POP Television (720p) @@ -318,7 +316,7 @@ https://mediapolisevent.rai.it/relinker/relinkerServlet.htm?cont=2606803 https://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=308718 #EXTINF:-1 tvg-id="Rai2.it",Rai 2 (302p) [Geo-blocked] http://stream.tvtap.net:8081/live/it-rai2.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="Rai2.it@HD" http-referrer="https://babaktv.com/",Rai 2 HD +#EXTINF:-1 tvg-id="Rai2HD.it" http-referrer="https://babaktv.com/",Rai 2 HD #EXTVLCOPT:http-referrer=https://babaktv.com/ https://m3u.iranvids.com/rai02/output.m3u8 #EXTINF:-1 tvg-id="Rai3.it",Rai 3 (720p) @@ -347,7 +345,7 @@ http://stream.tvtap.net:8081/live/it-rai5.stream/playlist.m3u8 http://188.60.179.180:8000/play/xxRaiGulpxx #EXTINF:-1 tvg-id="RaiGulp.it",Rai Gulp (576p) https://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=746953 -#EXTINF:-1 tvg-id="RaiItalia.it@Asia",RAI Italia Asia (576p) +#EXTINF:-1 tvg-id="RaiItaliaAsia.it",RAI Italia Asia (576p) http://210.210.155.37/x6bnqe/s/s63/index2.m3u8 #EXTINF:-1 tvg-id="RaiMovie.it",Rai Movie (1080p) http://188.60.179.180:8000/play/xxRaiMOviexx @@ -425,8 +423,6 @@ https://5f22d76e220e1.streamlock.net/rtm/rtm/playlist.m3u8 https://flash2.xdevel.com/rtptv/rtptv/playlist.m3u8 #EXTINF:-1 tvg-id="RTTRTrento.it",RTTR Trento (720p) https://5f204aff97bee.streamlock.net/RTTRlive/livestream/playlist.m3u8 -#EXTINF:-1 tvg-id="RTV38.it",RTV38 (576p) -https://streamcdne1-845d8509d2cb4f249dd0b2ae5755b6c2.msvdn.net/rtv38/rtv38_live_main/mainabr/rtv38_live_main/main_576/chunks_dvr.m3u8 #EXTINF:-1 tvg-id="SardegnaUno.it",Sardegna Uno https://raw.githubusercontent.com/azgaresncf/strm2hls/main/streams/Sardegna1.m3u8 #EXTINF:-1 tvg-id="SienaTV.it",Siena TV (1080p) @@ -443,10 +439,10 @@ https://di-yx2saj20.vo.lswcdn.net/sportitalia/smil:silive24.smil/playlist.m3u8 https://di-g7ij0rwh.vo.lswcdn.net/sportitalia/silive24.smil/playlist.m3u8 #EXTINF:-1 tvg-id="SportitaliaMotori.it",Sportitalia Motori (720p) [Geo-blocked] https://di-yx2saj20.vo.lswcdn.net/sportitalia/smil:simotori.smil/playlist.m3u8 -#EXTINF:-1 tvg-id="SportitaliaSolocalcio.it",Sportitalia Solocalcio (720p) [Geo-blocked] -https://di-yx2saj20.vo.lswcdn.net/sportitalia/smil:sisolocalcio.smil/playlist.m3u8 #EXTINF:-1 tvg-id="SportitaliaSolocalcio.it",Sportitalia SoloCalcio https://di-g7ij0rwh.vo.lswcdn.net/sportitalia/sisolocalcio.smil/playlist.m3u8 +#EXTINF:-1 tvg-id="SportitaliaSolocalcio.it",Sportitalia Solocalcio (720p) [Geo-blocked] +https://di-yx2saj20.vo.lswcdn.net/sportitalia/smil:sisolocalcio.smil/playlist.m3u8 #EXTINF:-1 tvg-id="Sportitalia.it",Sportitalia TV/Sportitalia/SI https://di-g7ij0rwh.vo.lswcdn.net/sportitalia/sihd/playlist.m3u8 #EXTINF:-1 tvg-id="STEuropeChannel.it",ST Europe Channel (720p) @@ -465,11 +461,9 @@ https://59d7d6f47d7fc.streamlock.net/supertv/supertv/playlist.m3u8 http://wms.shared.streamshow.it:1935/supertv/supertv/live.m3u8 #EXTINF:-1 tvg-id="SuperTVOristano.it",Super TV Oristano (720p) [Not 24/7] http://193.70.81.40:1935/supertvoristano/supertvoristano/playlist.m3u8 -#EXTINF:-1 tvg-id="Super.it",Super! (480p) -https://vimnitaly.akamaized.net/hls/live/2094034/super/master-2500.m3u8 #EXTINF:-1 tvg-id="SuperSix.it",SuperSix Lombardia (720p) https://5db313b643fd8.streamlock.net/SUPERSIXLombardia/SUPERSIXLombardia/playlist.m3u8 -#EXTINF:-1 tvg-id="SuperTennis.it@HD",SuperTennis HD +#EXTINF:-1 tvg-id="SuperTennisHD.it",SuperTennis HD https://live-embed.supertennix.hiway.media/restreamer/supertennix_client/gpu-a-c0-16/restreamer/outgest/h24_supertennix/manifest.m3u8 #EXTINF:-1 tvg-id="T9.it",T9 (288p) https://streaming.softwarecreation.it/tnove/tnove/playlist.m3u8 @@ -489,8 +483,6 @@ https://ssh101-fl.bozztv.com/ssh101/telemessina/index.m3u8 http://wms.shared.streamshow.it/telepavia/telepavia/playlist.m3u8 #EXTINF:-1 tvg-id="TelePegasoCatania.it",Tele Pegaso Catania (404p) [Not 24/7] https://flash2.xdevel.com/telepegasocanale812/telepegasocanale812/playlist.m3u8 -#EXTINF:-1 tvg-id="TeleQuattro.it",Tele Quattro (720p) -https://59d7d6f47d7fc.streamlock.net/telequattro/telequattro/playlist.m3u8 #EXTINF:-1 tvg-id="TeleQuattro.it",Tele Quattro (480p) [Not 24/7] http://wms.shared.streamshow.it/telequattro/telequattro/playlist.m3u8 #EXTINF:-1 tvg-id="TeleRadioSciacca.it",Tele Radio Sciacca (240p) [Not 24/7] @@ -519,7 +511,7 @@ https://1aadf145546f475282c5b4e658c0ac4b.msvdn.net/live/324149/hlbAWtl/playlist. http://wms.shared.streamshow.it/telefoggia/mp4:telefoggia/playlist.m3u8 #EXTINF:-1 tvg-id="Telefoggia.it",Telefoggia (480p) [Not 24/7] https://59d7d6f47d7fc.streamlock.net/telefoggia/telefoggia/playlist.m3u8 -#EXTINF:-1 tvg-id="TeleFormula.mx@SD",TeleFormula (720p) [Not 24/7] +#EXTINF:-1 tvg-id="",TeleFormula (720p) [Not 24/7] https://wms60.tecnoxia.com/radiof/abr_radioftele/playlist.m3u8 #EXTINF:-1 tvg-id="Telefriuli.it",Telefriuli (1080p) https://5757bf2aa08e42248fb9b9d620f5d900.msvdn.net/live/S11646715/pE3ax0lT0rBd/playlist.m3u8 @@ -551,8 +543,6 @@ http://wms.shared.streamshow.it:1935/telemonteneve/telemonteneve/live.m3u8 http://stream2.xdevel.com/video2s976570-2303/stream/playlist_dvr.m3u8 #EXTINF:-1 tvg-id="Telenord.it",Telenord (576p) [Not 24/7] https://5db313b643fd8.streamlock.net/Telenord/Telenord/playlist.m3u8 -#EXTINF:-1 tvg-id="Telenova.it",Telenova (720p) -https://64b16f23efbee.streamlock.net/telenova/telenova/playlist.m3u8 #EXTINF:-1 tvg-id="Telepace1.it",Telepace 1 (1080p) https://live.mariatvcdn.com/teleradiopace1/efcc8fc46cab26315ce3f5845d76008f.sdp/index.m3u8 #EXTINF:-1 tvg-id="Telepace2.it",Telepace 2 (1080p) @@ -675,3 +665,15 @@ https://stream.cp.ets-sistemi.it:1936/profservtv/profservtv/playlist.m3u8 https://5f22d76e220e1.streamlock.net/canale5/canale5/playlist.m3u8 #EXTINF:-1 tvg-id="ZerounoTVNews.it",Zerouno TV News (720p) https://5db313b643fd8.streamlock.net/ZerounoTVEventi/ZerounoTVEventi/playlist.m3u8 +#EXTINF:-1 tvg-id="Telenova.it",Telenova (720p) +https://64b16f23efbee.streamlock.net/telenova/telenova/playlist.m3u8 +#EXTINF:-1 tvg-id="TeleQuattro.it",Tele Quattro (720p) +https://59d7d6f47d7fc.streamlock.net/telequattro/telequattro/playlist.m3u8 +#EXTINF:-1 tvg-id="7RadioVisione.it",7 RadioVisione (720p) +https://stream10.xdevel.com/video1s976543-1932/stream/playlist.m3u8 +#EXTINF:-1 tvg-id="RTV38.it",RTV38 (576p) +https://streamcdne1-845d8509d2cb4f249dd0b2ae5755b6c2.msvdn.net/rtv38/rtv38_live_main/mainabr/rtv38_live_main/main_576/chunks_dvr.m3u8 +#EXTINF:-1 tvg-id="Super.it",Super! +https://495c5a85d9074f29acffeaea9e0215eb.msvdn.net/super/super_main/super_main_hbbtv/playlist.m3u8 +#EXTINF:-1 tvg-id="tv9Telemaremma.it",tv9 Telemaremma (576p) +https://rtmp-live-ingest-us-east-1-universe-dacast-com.akamaized.net/transmuxv1/streams/2095a288-1384-ed2e-5da0-278ccbb72295.m3u8 diff --git a/streams/jp.m3u b/streams/jp.m3u index 33e9a1736..d698488a8 100644 --- a/streams/jp.m3u +++ b/streams/jp.m3u @@ -32,10 +32,6 @@ https://cdn.skygo.mn/live/disk1/NHK_World_Premium/HLSv3-FTA/NHK_World_Premium.m3 https://master.nhkworld.jp/nhkworld-tv/playlist/live.m3u8 #EXTINF:-1 tvg-id="JOAXDTV.jp",Nippon TV (540p) [Not 24/7] https://ntv4.mov3.co/hls/ntv.m3u8 -#EXTINF:-1 tvg-id="NTVNEWS24.jp",NTV News24 (480p) -https://n24-cdn-live.ntv.co.jp/ch01/index.m3u8 -#EXTINF:-1 tvg-id="NTVNEWS24.jp",NTV News24 (480p) -https://n24-cdn-live.ntv.co.jp/ch02/index.m3u8 #EXTINF:-1 tvg-id="QVC.jp",QVC Japan (720p) https://cdn-live1.qvc.jp/iPhone/1501/1501.m3u8 #EXTINF:-1 tvg-id="ShopChannel.jp",Shop Channel (1080p) [Not 24/7] diff --git a/streams/kr.m3u b/streams/kr.m3u index f422ec9bf..b24287bc6 100644 --- a/streams/kr.m3u +++ b/streams/kr.m3u @@ -105,8 +105,6 @@ http://kbs-dokdo.gscdn.com/dokdo_300/dokdo_300.stream/playlist.m3u8 http://mytv.dothome.co.kr/ch/catv/4.php #EXTINF:-1 tvg-id="KBSWorld.kr",KBS World http://mytv.dothome.co.kr/ch/catv/7.php -#EXTINF:-1 tvg-id="KBSWorld.kr",KBS World (Vietnamese Subtitles) (720p) -https://livecdn.fptplay.net/sdb/kbs_hls.smil/playlist.m3u8 #EXTINF:-1 tvg-id="KCTV.kr",KCTV ๊ด‘์ฃผ CH05 (720p) [Not 24/7] http://119.77.96.184:1935/chn05/chn05/playlist.m3u8 #EXTINF:-1 tvg-id="KTV.kr",Korea TV (1080p) diff --git a/streams/lu.m3u b/streams/lu.m3u index b384d987f..c1afc1387 100644 --- a/streams/lu.m3u +++ b/streams/lu.m3u @@ -6,7 +6,7 @@ https://media02.webtvlive.eu/chd-edge/smil:chamber_tv_hd.smil/playlist.m3u8 #EXTINF:-1 tvg-id="DudelangeTV.lu",Dudelange TV (720p) https://streamer20.multimedia.blue/Eltrona/DudelangeTV/playlist.m3u8 #EXTINF:-1 tvg-id="eldoTV.lu",eldo.TV (1080p) -https://eldo-streaming.eldo.lu/eldotv/smil:eldotv.smil/playlist.m3u8 +https://stream.eldo.lu/data/live/tele/eldotv/1080p.m3u8 #EXTINF:-1 tvg-id="HesperTV.lu",Hesper TV (1080p) https://streamer20.multimedia.blue/Eltrona/HesperangeTV/playlist.m3u8 #EXTINF:-1 tvg-id="LuxeTV.lu",Luxe TV (1080p) diff --git a/streams/lv.m3u b/streams/lv.m3u index 7a3d2d8e5..1b67e65d9 100644 --- a/streams/lv.m3u +++ b/streams/lv.m3u @@ -1,26 +1,13 @@ #EXTM3U -#EXTINF:-1 tvg-id="1Plus2.lv",1+2 -http://89.254.128.5:22280/1_2/mono.m3u8 -#EXTINF:-1 tvg-id="8TV.lv",8TV (1080p) -http://89.254.128.5:22280/8tv_hd/index.m3u8 -#EXTINF:-1 tvg-id="Kanal7Baltics.lv",Kanal 7 Baltics (Latvia) (1080p) -http://89.254.128.5:22280/duo7_hd/index.m3u8 #EXTINF:-1 tvg-id="",Latvijas Radio 2 (240p) https://5a44e5b800a41.streamlock.net/liveVLR2/mp4:LR2/playlist.m3u8 #EXTINF:-1 tvg-id="",Latvijas Radio 3 Klasika (240p) https://5a44e5b800a41.streamlock.net/liveVLR3/mp4:Klasika/playlist.m3u8 -#EXTINF:-1 tvg-id="LatvijasSlagerkanals.lv",Latvijas ล lฤgerkanฤls (720p) -https://stream.onlive-media.com/live/streams/smk.m3u8 -#EXTINF:-1 tvg-id="LTV1.lv" http-referrer="http://89.254.128.5:22280/",LTV1 (1080p) -#EXTVLCOPT:http-referrer=http://89.254.128.5:22280/ -http://89.254.128.5:22280/ltv1_hd/index.m3u8 #EXTINF:-1 tvg-id="MovifyKino.lv" http-referrer="https://void.greenhosting.ru/",Movify Kino (576p) #EXTVLCOPT:http-referrer=https://void.greenhosting.ru/ https://void.greenhosting.ru/MovifyKino_Mpeg4/index.m3u8 #EXTINF:-1 tvg-id="Multimania.lv",Multimania (Latvia) (576p) https://void.greenhosting.ru/Multimania_Mpeg4/index.m3u8 -#EXTINF:-1 tvg-id="MuzikasVideoKanals.lv",Mลซzikas Video Kanฤls (720p) -https://stream.onlive-media.com/live/streams/mvk.m3u8 #EXTINF:-1 tvg-id="Pingviins.lv" http-referrer="https://void.greenhosting.ru/",Pingvฤซns (576p) [Geo-blocked] #EXTVLCOPT:http-referrer=https://void.greenhosting.ru/ https://void.greenhosting.ru/PingvinsLV_Mpeg4/video.m3u8 diff --git a/streams/my.m3u b/streams/my.m3u index 3980fed75..fc1d4451c 100644 --- a/streams/my.m3u +++ b/streams/my.m3u @@ -50,3 +50,13 @@ https://d25tgymtnqzu8s.cloudfront.net/smil:tv6/playlist.m3u8?id=6 https://tonton-live-switch-ssar.akamaized.net/stream-tv9/master.m3u8?bpkio_serviceid=6c0958d82a830a02ca0936d9cfab8311 #EXTINF:-1 tvg-id="TVIKIM.my",TVIKIM https://edge-sg1.vediostream.com/abr/tvikim/playlist.m3u8 +#EXTINF:-1 tvg-id="TVIKIM.my",TVIKIM (1080p) +https://live.mana2.my/TvIkim/index.m3u8?auth_key=1745177920-648b7df03f404bc4ac20e90e96f817eb-0-35d3be6e85a129ce175b39a9819ca942&token=1745177920-648b7df03f404bc4ac20e90e96f817eb-0-35d3be6e85a129ce175b39a9819ca942 +#EXTINF:-1 tvg-id="SukeTV.my",Suke TV (720p) +https://live.mana2.my/SukeTv/index.m3u8?auth_key=1745177878-c9b78020e8d64aac92e7d5db06493530-0-951f497899c978ee5fbc2f1375671272&token=1745177878-c9b78020e8d64aac92e7d5db06493530-0-951f497899c978ee5fbc2f1375671272 +#EXTINF:-1 tvg-id="TV2.my",TV2 (1080p) +https://live.mana2.my/Tv2/index.m3u8?auth_key=1745177833-e4f0090e3d3b4ed1b2b4f5df87a24d34-0-d43f8be1101f9bb00363d62de6514e4d&token=1745177833-e4f0090e3d3b4ed1b2b4f5df87a24d34-0-d43f8be1101f9bb00363d62de6514e4d +#EXTINF:-1 tvg-id="SelangorTV.my",SelangorTV (1080p) +https://live.mana2.my/SelangorTv/index.m3u8?auth_key=1745177902-0210d7bbc24749879b1c370bfbd2b512-0-1a02652c616fd55ef43edbcf07d9c7dd&token=1745177902-0210d7bbc24749879b1c370bfbd2b512-0-1a02652c616fd55ef43edbcf07d9c7dd +#EXTINF:-1 tvg-id="TV1.my",TV1 (1080p) +https://live.mana2.my/Tv1/index.m3u8?auth_key=1745177809-03fbff3dfc194161829ff0dbf94a205a-0-c6dcdd3499b8b5488b7de0f6613b8047&token=1745177809-03fbff3dfc194161829ff0dbf94a205a-0-c6dcdd3499b8b5488b7de0f6613b8047 diff --git a/streams/pl.m3u b/streams/pl.m3u index cf594bdb6..353049fef 100644 --- a/streams/pl.m3u +++ b/streams/pl.m3u @@ -1,135 +1,59 @@ #EXTM3U #EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) -http://178.219.128.68:64888/4FUNDANC -#EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) -http://178.219.128.68:64889/4FUNDANC -#EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) http://185.236.229.62:9981/play/a020 -#EXTINF:-1 tvg-id="4FunKids.pl",4 Fun Kids (576p) -http://178.219.128.68:64888/4FUNKIDS -#EXTINF:-1 tvg-id="4FunTV.pl",4 Fun TV (576p) -http://178.219.128.68:64888/4FUNTV #EXTINF:-1 tvg-id="4FunTV.pl",4FUN TV (576p) [Not 24/7] https://stream.4fun.tv:8888/hls/4f.m3u8 #EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) -http://109.233.89.166/13_Ulica_HD/index.m3u8 -#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) -http://109.233.89.170/13_Ulica_HD/index.m3u8 -#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) -http://178.219.128.68:64888/13ULICHD -#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) http://185.236.229.62:9981/play/a03o #EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) -http://109.233.89.166/Active_Family_HD/index.m3u8 -#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) -http://178.219.128.68:64888/ACTIFAMIHD -#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) -http://178.219.128.68:64889/ACTIFAMIHD -#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) http://185.236.229.62:9981/play/a04a -#EXTINF:-1 tvg-id="AdventureTV.pl",Adventure TV (1080p) -http://109.233.89.170/Adventure_HD/index.m3u8 -#EXTINF:-1 tvg-id="AFVFamily.us@Poland",AFV Family (720p) +#EXTINF:-1 tvg-id="AFVFamily.pl",AFV Family (720p) https://ec4a5bcc9d664b48985de6095931aaa7.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-eu_AmericasFunniestHomeVideos/playlist.m3u8 -#EXTINF:-1 tvg-id="AlfaTVP.pl",Alfa TVP (1080p) -http://109.233.89.166/Alfa_TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="AlfaTVP.pl",Alfa TVP (1080p) -http://109.233.89.170/Alfa_TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="AMC.us",AMC (1080p) -http://109.233.89.166/AMC_HD/index.m3u8 -#EXTINF:-1 tvg-id="AMCEurope.uk@Polnad",AMC (1080p) -http://109.233.89.170/AMC_HD/index.m3u8 -#EXTINF:-1 tvg-id="AMCEurope.uk@Polnad",AMC (1080p) -http://178.219.128.68:64889/AMCHD -#EXTINF:-1 tvg-id="AMCEurope.uk@Polnad",AMC (1080p) +#EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) http://185.236.229.62:9981/play/a05g -#EXTINF:-1 tvg-id="AntenaHD.pl",Antena HD (1080p) -http://109.233.89.170/Antena_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="AXNCEE.es@Poland",AXN (1080p) -http://178.219.128.68:64888/AXN -#EXTINF:-1 tvg-id="AXNCEE.es@Poland",AXN (1080p) +#EXTINF:-1 tvg-id="AXN.pl",AXN (1080p) http://185.236.229.62:9981/play/a07s -#EXTINF:-1 tvg-id="AXNBlack.us@Poland",AXN Black (576p) +#EXTINF:-1 tvg-id="AXNBlack.pl",AXN Black (576p) http://185.236.229.62:9981/play/a075 -#EXTINF:-1 tvg-id="AXNSpin.hu@Poland",AXN Spin (1080p) +#EXTINF:-1 tvg-id="AXNSpin.pl",AXN Spin (1080p) http://185.236.229.62:9981/play/a044 -#EXTINF:-1 tvg-id="AXNWhite.us@Poland",AXN White (576p) +#EXTINF:-1 tvg-id="AXNWhite.pl",AXN White (576p) http://185.236.229.62:9981/play/a074 -#EXTINF:-1 tvg-id="BBCBrit.uk@Poland",BBC Brit (1080p) -http://109.233.89.170/BBC_Brit_HD/index.m3u8 -#EXTINF:-1 tvg-id="BBCBrit.uk@Poland",BBC Brit (1080p) -http://178.219.128.68:64889/BBCBRITHD -#EXTINF:-1 tvg-id="BBCBrit.uk@Poland",BBC Brit (1080p) +#EXTINF:-1 tvg-id="BBCBrit.pl",BBC Brit (1080p) http://185.236.229.62:9981/play/a06r -#EXTINF:-1 tvg-id="BBCEarth.uk@Poland",BBC Earth (1080p) -http://109.233.89.170/BBC_Earth_HD/index.m3u8 -#EXTINF:-1 tvg-id="BBCEarth.uk@Poland",BBC Earth (1080p) -http://178.219.128.68:64888/BBCEARTHD -#EXTINF:-1 tvg-id="BBCEarth.uk@Poland",BBC Earth (1080p) -http://178.219.128.68:64889/BBCEARTHD -#EXTINF:-1 tvg-id="BBCEarth.uk@Poland",BBC Earth (1080p) +#EXTINF:-1 tvg-id="BBCEarth.pl",BBC Earth (1080p) http://185.236.229.62:9981/play/a02o -#EXTINF:-1 tvg-id="BBCFirst.uk@Poland",BBC First (1080p) +#EXTINF:-1 tvg-id="BBCFirst.pl",BBC First (1080p) http://185.236.229.62:9981/play/a02n -#EXTINF:-1 tvg-id="BBCLifestyle.uk@Poland",BBC Lifestyle (1080p) -http://178.219.128.68:64888/BBCLIFEHD -#EXTINF:-1 tvg-id="BBCLifestyle.uk@Poland",BBC Lifestyle (1080p) +#EXTINF:-1 tvg-id="BBCLifestyle.pl",BBC Lifestyle (1080p) http://185.236.229.62:9981/play/a06t #EXTINF:-1 tvg-id="Bigtime.pl",Bigtime (720p) https://103f01c3ff79408e83c9212f8a374ecc.mediatailor.us-east-1.amazonaws.com/v1/master/0fb304b2320b25f067414d481a779b77db81760d/RakutenTV-eu_BjgtjmeDarmoweFilmy/playlist.m3u8 #EXTINF:-1 tvg-id="CarCityAdventures.pl",Car City Adventures (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/b6397b24-18b0-49c2-80bf-0333ae568e37/5.m3u8 -#EXTINF:-1 tvg-id="CBeebies.pl",CBeebies (1080p) -http://185.236.229.62:9981/play/a06s #EXTINF:-1 tvg-id="CBSEuropa.pl",CBS Europa (1080p) http://185.236.229.62:9981/play/a06i #EXTINF:-1 tvg-id="CBSReality.pl",CBS Reality (1080p) -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="ComedyCentral.pl",Comedy Central (1080p) -http://109.233.89.170/Comedy_Central_HD/index.m3u8 -#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p) -http://178.219.128.68:64889/COMECENTHD -#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p) http://185.236.229.62:9981/play/a068 #EXTINF:-1 tvg-id="CrimePlusInvestigationPolsat.pl",Crime + Investigation Polsat (1080p) http://185.236.229.62:9981/play/a07w -#EXTINF:-1 tvg-id="DaVinci.pl",Da Vinci (1080p) -http://109.233.89.170/Da_Vinci_HD/index.m3u8 #EXTINF:-1 tvg-id="DaVinci.pl",Da Vinci (576p) http://185.236.229.62:9981/play/a024 -#EXTINF:-1 tvg-id="DAZNCombat.uk@Poland",DAZN Combat (1080p) +#EXTINF:-1 tvg-id="DAZNCombat.pl",DAZN Combat (1080p) https://dazn-combat-rakuten.amagi.tv/hls/amagi_hls_data_rakutenAA-dazn-combat-rakuten/CDN/master.m3u8 -#EXTINF:-1 tvg-id="DAZNWomensFootball.uk@Poland",DAZN Women's Football (1080p) +#EXTINF:-1 tvg-id="DAZNWomensFootball.pl",DAZN Women's Football (1080p) https://dazn-daznwomensfootball-rakuten.amagi.tv/hls/amagi_hls_data_rakutenAA-dazn-daznwomensfootball-rakuten/CDN/master.m3u8 #EXTINF:-1 tvg-id="DiscoPoloMusic.pl",Disco Polo Music (1080p) http://185.236.229.62:9981/play/a078 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://109.233.89.166/Disney_Channel/index.m3u8 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://109.233.89.170/Disney_Channel/index.m3u8 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://109.233.89.170/Disney_Channel/mono.m3u8 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://178.219.128.68:64888/DISNCHAN #EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel PL (1080p) http://185.236.229.62:9981/play/a07d -#EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (1080p) -http://178.219.128.68:64888/DISNJUNI -#EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) -http://109.233.89.166/Disney_Junior/index.m3u8 -#EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) -http://109.233.89.170/Disney_Junior/index.m3u8 #EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) http://185.236.229.62:9981/play/a06n #EXTINF:-1 tvg-id="DisneyXD.pl",Disney XD (576p) -http://178.219.128.68:64888/DISNXD -#EXTINF:-1 tvg-id="DisneyXD.pl",Disney XD (576p) http://185.236.229.62:9981/play/a07c #EXTINF:-1 tvg-id="dlaCiebietv.pl",dlaCiebie.tv (1080p) -http://178.219.128.68:64889/DLAC -#EXTINF:-1 tvg-id="dlaCiebietv.pl",dlaCiebie.tv (1080p) http://185.236.229.62:9981/play/a04u #EXTINF:-1 tvg-id="dlaCiebietv.pl",dlaCiebie.tv (1080p) [Not 24/7] http://94.246.128.53:1935/tv/dlaCiebieTv/playlist.m3u8 @@ -144,202 +68,86 @@ http://9b129915.akadatel.com/iptv/83GA6FAV4DPTPQ/20068/index.m3u8 #EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (2160p) http://185.236.229.62:9981/play/a03t #EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (1080p) -http://109.233.89.166/Eleven_Sports_1_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (1080p) -http://109.233.89.170/Eleven_Sports_1_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (1080p) http://185.236.229.62:9981/play/a05w #EXTINF:-1 tvg-id="ElevenSports1.pl" http-referrer="https://newembedplay.xyz/",Eleven Sports 1 (1080p) #EXTVLCOPT:http-referrer=https://newembedplay.xyz/ https://windnew.iosplayer.ru/wind/premium71/mono.m3u8 #EXTINF:-1 tvg-id="ElevenSports2.pl",Eleven Sports 2 (1080p) -http://109.233.89.166/Eleven_Sports_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports2.pl",Eleven Sports 2 (1080p) -http://109.233.89.170/Eleven_Sports_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports2.pl",Eleven Sports 2 (1080p) http://185.236.229.62:9981/play/a05y #EXTINF:-1 tvg-id="ElevenSports2.pl" http-referrer="https://newembedplay.xyz/",Eleven Sports 2 (1080p) #EXTVLCOPT:http-referrer=https://newembedplay.xyz/ https://windnew.iosplayer.ru/wind/premium72/mono.m3u8 #EXTINF:-1 tvg-id="ElevenSports3.pl",Eleven Sports 3 (1080p) -http://109.233.89.166/Eleven_Sports_3_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports3.pl",Eleven Sports 3 (1080p) -http://109.233.89.170/Eleven_Sports_3_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports3.pl",Eleven Sports 3 (1080p) http://185.236.229.62:9981/play/a061 #EXTINF:-1 tvg-id="ElevenSports3.pl" http-referrer="https://newembedplay.xyz/",Eleven Sports 3 (1080p) #EXTVLCOPT:http-referrer=https://newembedplay.xyz/ https://ddy6new.iosplayer.ru/ddy6/premium428/mono.m3u8 -#EXTINF:-1 tvg-id="ElevenSports4.pl",Eleven Sports 4 (1080p) -http://109.233.89.166/ELEVEN_SPORTS_4_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports4.pl",Eleven Sports 4 (1080p) -http://109.233.89.170/ELEVEN_SPORTS_4_HD/index.m3u8 -#EXTINF:-1 tvg-id="EpicDrama.uk@Poland",Epic Drama (1080p) +#EXTINF:-1 tvg-id="EpicDrama.pl",Epic Drama (1080p) http://185.236.229.62:9981/play/a029 -#EXTINF:-1 tvg-id="EpicDrama.uk@Poland",Epic Drama (1080p) -http://195.189.60.33:9010/play/a00e -#EXTINF:-1 tvg-id="EskaHitynaCzasie.pl",Eska Hity na Czasie (1080i) -https://s-pl-01.mediatool.tv/playout/espl-abr/index.m3u8 -#EXTINF:-1 tvg-id="EskaRockDobrzeRockuje.pl",Eska Rock Dobrze Rockuje (1080i) -https://s-pl-01.mediatool.tv/playout/erpl-abr/index.m3u8 -#EXTINF:-1 tvg-id="EskaRockTV.pl",Eska Rock TV (1080p) -http://178.219.128.68:64889/ESKAROCKTV -#EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) -http://109.233.89.166/ESKA_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) -http://109.233.89.170/ESKA_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) -http://178.219.128.68:64888/ESKATVHD #EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) http://185.236.229.62:9981/play/a02f -#EXTINF:-1 tvg-id="EskaTVExtra.pl",Eska TV Extra (1080p) -http://178.219.128.68:64888/ESKATVEXTRHD -#EXTINF:-1 tvg-id="Euronews.pl",Euronews (720p) -https://euronews-live-pol-pl.fast.rakuten.tv/v1/master/0547f18649bd788bec7b67b746e47670f558b6b2/production-LiveChannel-6769/bitok/eyJzdGlkIjoiNDgyYjMzYzEtYmYwYi00NTIzLThlMGMtZGZmY2ZkNjYyMGU1IiwibWt0IjoicGwiLCJjaCI6Njc2OSwicHRmIjo1fQ==/26235/euronews-pl.m3u8 #EXTINF:-1 tvg-id="EWTNPoland.pl",EWTN Poland (1080p) https://cdn3.wowza.com/1/ZHdrMWt1NjlDSzFu/bzdDVG10/hls/live/playlist.m3u8 -#EXTINF:-1 tvg-id="EzoTV.pl",Ezo TV (576p) [Not 24/7] -http://live.ezotv.pl:1935/live/EZOTV/playlist.m3u8 -#EXTINF:-1 tvg-id="FailArmy.us@Poland",Fail Army (720p) +#EXTINF:-1 tvg-id="FailArmy.pl",Fail Army (720p) https://bd93cfed.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0ZhaWxBcm15X0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="FIFAPlus.pl",FIFA+ (720p) https://a62dad94.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0ZJRkFQbHVzRW5nbGlzaF9ITFM/playlist.m3u8 -#EXTINF:-1 tvg-id="FightKlub.pl",Fight Klub (1080p) -http://185.236.229.62:9981/play/a02l -#EXTINF:-1 tvg-id="FightBox.nl@Poland",FightBox (1080p) +#EXTINF:-1 tvg-id="FightBox.pl",FightBox (1080p) http://185.236.229.62:9981/play/a03n -#EXTINF:-1 tvg-id="FightBox.nl@Poland",FightBox (1080p) -http://195.189.60.33:9002/play/a007 -#EXTINF:-1 tvg-id="FilmBoxAction.nl@Poland",FilmBox Action (576p) +#EXTINF:-1 tvg-id="FilmBoxAction.pl",FilmBox Action (576p) http://185.236.229.62:9981/play/a033 -#EXTINF:-1 tvg-id="FilmBoxAction.nl@Poland",FilmBox Action (576p) -http://195.189.60.33:9004/play/a00g -#EXTINF:-1 tvg-id="FilmBoxArthouse.nl@Poland",FilmBox Arthouse (576p) -http://195.189.60.33:9010/play/a00a -#EXTINF:-1 tvg-id="FilmBoxExtra.nl@Poland",FilmBox Extra (1080p) -http://178.219.128.68:64888/FILMEXTRHD -#EXTINF:-1 tvg-id="FilmBoxExtra.nl@Poland",FilmBox Extra (1080p) +#EXTINF:-1 tvg-id="FilmBoxExtra.pl",FilmBox Extra (1080p) http://185.236.229.62:9981/play/a036 -#EXTINF:-1 tvg-id="FilmBoxFamily.nl@Poland",FilmBox Family (1080p) -http://178.219.128.68:64888/FILMFAMI -#EXTINF:-1 tvg-id="FilmBoxFamily.nl@Poland",FilmBox Family (576p) +#EXTINF:-1 tvg-id="FilmBoxFamily.pl",FilmBox Family (576p) http://185.236.229.62:9981/play/a032 -#EXTINF:-1 tvg-id="FilmBoxFamily.nl@Poland",FilmBox Family (576p) +#EXTINF:-1 tvg-id="FilmBoxFamily.pl",FilmBox Family (576p) http://185.236.229.62:9981/play/a037 -#EXTINF:-1 tvg-id="FilmBoxPremium.nl@PolandHD",FilmBox Premium HD (1080p) -http://178.219.128.68:64888/FILMPREMHD -#EXTINF:-1 tvg-id="FilmBoxPremium.nl@PolandHD",FilmBox Premium HD (1080p) +#EXTINF:-1 tvg-id="FilmBoxPremiumHD.pl",FilmBox Premium HD (1080p) http://185.236.229.62:9981/play/a02x #EXTINF:-1 tvg-id="FokusTV.pl",Fokus TV (1080p) -http://178.219.128.68:64889/FOKUTV -#EXTINF:-1 tvg-id="FokusTV.pl",Fokus TV (1080p) http://185.236.229.62:9981/play/a02g #EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) -http://109.233.89.166/FOX_HD/index.m3u8 -#EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) -http://109.233.89.170/FOX_HD/index.m3u8 -#EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) -http://178.219.128.68:64889/FOXHD -#EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) http://185.236.229.62:9981/play/a07u #EXTINF:-1 tvg-id="FoxComedy.pl",Fox Comedy (1080p) -http://178.219.128.68:64889/FOXCOMEHD -#EXTINF:-1 tvg-id="FoxComedy.pl",Fox Comedy (1080p) http://185.236.229.62:9981/play/a07t #EXTINF:-1 tvg-id="GolfChannel.pl",Golf Channel (1080p) http://185.236.229.62:9981/play/a03m -#EXTINF:-1 tvg-id="GolfZone.pl",Golf Zone (1080p) -http://195.189.60.33:9002/play/a006 #EXTINF:-1 tvg-id="Grjngo.pl",Grjngo (720p) https://b6c7c7d1020a4588982ca7c2625f85d1.mediatailor.us-east-1.amazonaws.com/v1/master/0fb304b2320b25f067414d481a779b77db81760d/RakutenTV-eu_GrjngoWesterny/playlist.m3u8 #EXTINF:-1 tvg-id="HardKnocksFightingChampionship.pl",Hard Knocks Fighting Championship (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/2ee2b8d4-acc4-4296-9dc8-66f1ffd0fff8/5.m3u8 -#EXTINF:-1 tvg-id="HiDance.pl",HiDance (1080i) -https://s-pl-01.mediatool.tv/playout/hdpl-abr/index.m3u8 -#EXTINF:-1 tvg-id="HiMusic.pl",HiMusic (1080i) -https://s-pl-01.mediatool.tv/playout/hmpl-abr/index.m3u8 -#EXTINF:-1 tvg-id="History.pl",History (1080p) -http://109.233.89.166/History_HD/index.m3u8 -#EXTINF:-1 tvg-id="History.pl",History (1080p) -http://109.233.89.170/History_HD/index.m3u8 #EXTINF:-1 tvg-id="History.pl",History (1080p) http://185.236.229.62:9981/play/a07v #EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) -http://109.233.89.166/History_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) -http://109.233.89.170/History_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) http://185.236.229.62:9981/play/a03l -#EXTINF:-1 tvg-id="HomeTV.pl",Home TV (1080p) -http://109.233.89.166/TVR_HD/index.m3u8 -#EXTINF:-1 tvg-id="HomeTV.pl",Home TV (1080p) -http://178.219.128.68:64889/HOMETV -#EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) -http://109.233.89.166/Kino_Polska_HD/index.m3u8 -#EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) -http://178.219.128.68:64888/KINOPOLSHD #EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) http://185.236.229.62:9981/play/a05v #EXTINF:-1 tvg-id="KinoPolskaMuzyka.pl",Kino Polska Muzyka (576p) http://185.236.229.62:9981/play/a030 #EXTINF:-1 tvg-id="KinoTV.pl",Kino TV (1080p) -http://178.219.128.68:64888/KINOTV -#EXTINF:-1 tvg-id="KinoTV.pl",Kino TV (1080p) http://185.236.229.62:9981/play/a031 -#EXTINF:-1 tvg-id="LoneStar.us@Poland",Lone Star (720p) +#EXTINF:-1 tvg-id="LoneStar.pl",Lone Star (720p) https://6b88cde9.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0xvbmVTdGFyX0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="Moconomy.pl",Moconomy (1080p) https://3ee905090d464be5a51478fd9c642e93.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-pl_Moconomy/playlist.m3u8 #EXTINF:-1 tvg-id="MonsterJam.pl",Monster Jam (720p) https://4b9627c7.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X01vbnN0ZXJKYW1fSExT/playlist.m3u8 #EXTINF:-1 tvg-id="Motowizja.pl",Motowizja (1080p) -http://109.233.89.170/Motowizja_HD/index.m3u8 -#EXTINF:-1 tvg-id="Motowizja.pl",Motowizja (1080p) http://185.236.229.62:9981/play/a02r -#EXTINF:-1 tvg-id="MTV.pl",MTV (1080p) -http://109.233.89.166/MTV_Polska_HD/index.m3u8 -#EXTINF:-1 tvg-id="MTV.pl",MTV (1080p) -http://178.219.128.68:64888/MTVHD -#EXTINF:-1 tvg-id="MuratorTV.pl",Murator TV (1080i) -https://s-pl-01.mediatool.tv/playout/mupl-abr/index.m3u8 #EXTINF:-1 tvg-id="NatGeoPeople.pl",Nat Geo People http://185.236.229.62:9981/play/a06f #EXTINF:-1 tvg-id="NationalGeographic.pl",National Geographic (1080p) -http://178.219.128.68:64889/NATIGEOGHD -#EXTINF:-1 tvg-id="NationalGeographic.pl",National Geographic (1080p) http://185.236.229.62:9981/play/a04d #EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) -http://109.233.89.166/National_Geographic_Wild_HD/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) -http://109.233.89.170/National_Geographic_Wild_HD/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) http://185.236.229.62:9981/play/a05z #EXTINF:-1 tvg-id="NickJr.pl",Nick Jr. (576p) http://185.236.229.62:9981/play/a065 -#EXTINF:-1 tvg-id="NickJr.pl",Nick Jr. Poland (576i) -http://178.219.128.68:64888/NICKJR -#EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) -http://109.233.89.166/Nickelodeon/index.m3u8 -#EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) -http://109.233.89.170/Nickelodeon/index.m3u8 -#EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) -http://178.219.128.68:64889/NICK #EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) http://185.236.229.62:9981/play/a067 #EXTINF:-1 tvg-id="Nicktoons.pl",Nicktoons (1080p) http://185.236.229.62:9981/play/a06a #EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) -http://109.233.89.170/NOWA_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) -http://178.219.128.68:64889/NOWATVHD -#EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) http://185.236.229.62:9981/play/a02h -#EXTINF:-1 tvg-id="NutaTV.pl",Nuta TV (576p) -http://178.219.128.68:64888/NUTA -#EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) -http://109.233.89.166/Paramount_Channel_HD/index.m3u8 -#EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) -http://109.233.89.170/Paramount_Channel_HD/index.m3u8 #EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) http://185.236.229.62:9981/play/a069 #EXTINF:-1 tvg-id="PeopleAreAwesome.pl",People Are Awesome (720p) @@ -347,166 +155,54 @@ https://3ab76e42.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdX #EXTINF:-1 tvg-id="PFLMMA.pl",PFL MMA (720p) https://a883593c.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1BGTE1NQV9ITFM/playlist.m3u8 #EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) -http://109.233.89.166/Polo_TV/index.m3u8 -#EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) -http://178.219.128.68:64888/POLOTV -#EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) http://185.236.229.62:9981/play/a02e -#EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (1080p) -http://178.219.128.68:64889/POLO1 -#EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (576p) -http://109.233.89.166/Polonia_1/index.m3u8 -#EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (576p) -http://109.233.89.170/Polonia_1/index.m3u8 -#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) -http://109.233.89.166/Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) -http://109.233.89.170/Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) -http://178.219.128.68:64889/POLSHD #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) http://185.236.229.62:9981/play/a03v #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) [Geo-blocked] https://lb2-e2-19.pluscdn.pl/ch/1502600/308/dash/20a18c30/live.mpd #EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) -http://109.233.89.166/Polsat_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) -http://109.233.89.170/Polsat_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) -http://178.219.128.68:64888/POLS2HD -#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) http://185.236.229.62:9981/play/a042 #EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) -http://109.233.89.170/Polsat_Cafe_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) -http://178.219.128.68:64889/POLSCAFEHD -#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) http://185.236.229.62:9981/play/a03z #EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) -http://109.233.89.166/Polsat_Doku_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) -http://109.233.89.170/Polsat_Doku_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) -http://178.219.128.68:64888/POLSDOKUHD -#EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) http://185.236.229.62:9981/play/a07z #EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) -http://109.233.89.166/Polsat_Film_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) -http://109.233.89.170/Polsat_Film_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) -http://178.219.128.68:64889/POLSFILMHD -#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) http://185.236.229.62:9981/play/a040 #EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) -http://109.233.89.166/Polsat_Games/index.m3u8 -#EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) -http://178.219.128.68:64889/POLSGAME -#EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) http://185.236.229.62:9981/play/a025 #EXTINF:-1 tvg-id="PolsatJimJam.pl",Polsat JimJam (576p) -http://109.233.89.166/Polsat_JimJam/index.m3u8 -#EXTINF:-1 tvg-id="PolsatJimJam.pl",Polsat JimJam (576p) http://185.236.229.62:9981/play/a07e #EXTINF:-1 tvg-id="PolsatMusic.pl",Polsat Music (1080p) -http://109.233.89.170/Polsat_Music_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatMusic.pl",Polsat Music (1080p) http://185.236.229.62:9981/play/a02b -#EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) -http://109.233.89.166/Polsat_News_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) -http://109.233.89.170/Polsat_News_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) -http://178.219.128.68:64888/POLSNEWSHD #EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (720p) [Geo-blocked] http://cdn-s-lb2.pluscdn.pl/lv/1517830/349/dash/81ec4c32/live.mpd #EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) -http://109.233.89.166/Polsat_News_2/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) -http://178.219.128.68:64889/POLSNEWS2 -#EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) http://185.236.229.62:9981/play/a03u #EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) -http://109.233.89.166/Polsat_News_Polityka/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) -http://109.233.89.170/Polsat_News_Polityka/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) -http://178.219.128.68:64888/SUPEHD -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) http://185.236.229.62:9981/play/a07h -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) [Geo-blocked] -https://lb2-e3-20.pluscdn.pl/lv/1511888/322/dash/52a9b70b/live.mpd -#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) -http://109.233.89.166/Polsat_Play_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) -http://109.233.89.170/Polsat_Play_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) -http://178.219.128.68:64888/POLSPLAYHD #EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) http://185.236.229.62:9981/play/a03w #EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) -http://109.233.89.170/Polsat_Rodzina_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) -http://178.219.128.68:64889/POLSRODZHD -#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) http://185.236.229.62:9981/play/a079 #EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) -http://109.233.89.166/Polsat_Seriale_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) -http://109.233.89.170/Polsat_Seriale_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) -http://178.219.128.68:64888/POLSROMA -#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) http://185.236.229.62:9981/play/a07b #EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) -http://109.233.89.170/Polsat_Sport_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) -http://178.219.128.68:64889/POLSSPORHD -#EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) http://185.236.229.62:9981/play/a07n #EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) -http://109.233.89.170/Polsat_Sport_Extra_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) -http://178.219.128.68:64889/POLSSPOREXTRHD -#EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) http://185.236.229.62:9981/play/a07q #EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) -http://109.233.89.170/Polsat_Sport_Fight_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) -http://178.219.128.68:64888/POLSSPORFIGHHD -#EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) -http://178.219.128.68:64889/POLSSPORFIGHHD -#EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) http://185.236.229.62:9981/play/a06l #EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) -http://109.233.89.170/Polsat_Sport_News_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) -http://178.219.128.68:64889/POLSSPORNEWSHD -#EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) http://185.236.229.62:9981/play/a06m -#EXTINF:-1 tvg-id="PolsatViasatExplore.pl",Polsat Viasat Explore (1080p) -http://178.219.128.68:64888/POLSVIASEXPLHD -#EXTINF:-1 tvg-id="PolsatViasatExplore.pl",Polsat Viasat Explore (1080p) -http://178.219.128.68:64889/POLSVIASEXPLHD -#EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) -http://178.219.128.68:64888/POLSVIASHISTHD -#EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) -http://178.219.128.68:64889/POLSVIASHISTHD #EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) http://185.236.229.62:9981/play/a07o #EXTINF:-1 tvg-id="PolsatViasatNature.pl",Polsat Viasat Nature (1080p) -http://178.219.128.68:64888/POLSVIASNATUHD -#EXTINF:-1 tvg-id="PolsatViasatNature.pl",Polsat Viasat Nature (1080p) http://185.236.229.62:9981/play/a06g -#EXTINF:-1 tvg-id="PoradnikZdrowieTV.pl",Poradnik Zdrowie TV (1080i) -https://s-pl-01.mediatool.tv/playout/pzpl-abr/index.m3u8 -#EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (1080p) -http://178.219.128.68:64889/PULS2HD #EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (1080p) http://185.236.229.62:9981/play/a02y #EXTINF:-1 tvg-id="RadiowaCzworka.pl",Radio Czwรณrka (1080p) https://stream14.polskieradio.pl/pr4_video/video_pr4.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="RakutenViki.es@Poland",Rakuten VIKI (720p) +#EXTINF:-1 tvg-id="RakutenVIKI.pl",Rakuten VIKI (720p) https://fd18f1cadd404894a31a3362c5f319bd.mediatailor.us-east-1.amazonaws.com/v1/master/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_RakutenViki-1/playlist.m3u8 #EXTINF:-1 tvg-id="RedCarpetTV.pl",Red Carpet TV (1080p) http://185.236.229.62:9981/play/a02q @@ -515,19 +211,7 @@ https://fast-rakuten.okast.tv/fa2e8c4385712f9a9076eaf728c751de/channels/1a6ecfaa #EXTINF:-1 tvg-id="Revry.pl",Revry (720p) https://99d8b4b6.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1JldnJ5X0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) -http://109.233.89.166/Romance_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) -http://109.233.89.170/Romance_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) http://185.236.229.62:9981/play/a05j -#EXTINF:-1 tvg-id="Royalworld.pl",Royalworld (720p) -https://ac76260b1102416c93f3d20958bfeb4b.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-pl_Royalworld/playlist.m3u8 -#EXTINF:-1 tvg-id="SAYHi.pl",SAYHi (1080i) -https://s-pl-01.mediatool.tv/playout/shpl-abr/index.m3u8 -#EXTINF:-1 tvg-id="SciFi.pl",Sci Fi (1080p) -http://109.233.89.166/SciFi_HD/index.m3u8 -#EXTINF:-1 tvg-id="SciFi.pl",Sci Fi (1080p) -http://109.233.89.170/SciFi_HD/index.m3u8 #EXTINF:-1 tvg-id="SciFi.pl",Sci Fi (1080p) http://185.236.229.62:9981/play/a03k #EXTINF:-1 tvg-id="SferaTV.pl",Sfera TV (480p) [Not 24/7] @@ -536,46 +220,14 @@ http://stream.sferatv.pl:1935/sferalive/smil:sferalive.smil/playlist.m3u8 https://rakutenaa-fusemedia-shadesofblack-rakutena-giu24.amagi.tv/playlist/rakutenAA-fusemedia-shadesofblack-rakutenA/playlist.m3u8 #EXTINF:-1 tvg-id="SportKlub.pl",Sport Klub (1080p) http://185.236.229.62:9981/play/a02k -#EXTINF:-1 tvg-id="StarsTV.pl",Stars TV (1080p) -http://178.219.128.68:64888/STARTVHD -#EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) -http://109.233.89.166/Stopklatka_HD/index.m3u8 -#EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) -http://109.233.89.170/Stopklatka_HD/index.m3u8 -#EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) -http://178.219.128.68:64889/STOPTV #EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (576p) http://185.236.229.62:9981/play/a023 #EXTINF:-1 tvg-id="SundanceTV.pl",Sundance TV (1080p) http://185.236.229.62:9981/play/a03i -#EXTINF:-1 tvg-id="SuperExpressTV.pl",Super Express TV (1080i) -https://s-pl-01.mediatool.tv/playout/sepl-abr/index.m3u8 -#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) -http://109.233.89.166/Super_Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) -http://109.233.89.170/Super_Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) -http://178.219.128.68:64889/SUPEPOLSHD #EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) http://185.236.229.62:9981/play/a043 #EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) -http://109.233.89.166/Wydarzenia_24_HD/index.m3u8 -#EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) -http://109.233.89.170/Wydarzenia_24_HD/index.m3u8 -#EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) http://185.236.229.62:9981/play/a06j -#EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) -http://109.233.89.166/TeenNick/index.m3u8 -#EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) -http://109.233.89.170/TeenNick/index.m3u8 -#EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) -http://109.233.89.173/TeenNick/index.m3u8 -#EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) -http://109.233.89.166/Tele_5_HD/index.m3u8 -#EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) -http://109.233.89.170/Tele_5_HD/index.m3u8 -#EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) -http://178.219.128.68:64888/TELE5HD #EXTINF:-1 tvg-id="TelewizjaBiznesowa.pl",Telewizja Biznesowa (1080p) https://s-pl-01.mediatool.tv/playout/tbpl-abr/index.m3u8 #EXTINF:-1 tvg-id="TelewizjaJaslo.pl",Telewizja Jaslo (720p) @@ -584,35 +236,19 @@ https://cdn01.sesja.pl/live_tvjaslo/live_tvjaslo.stream/playlist.m3u8 http://stream.herissons.cloud/hls/tvluban.m3u8 #EXTINF:-1 tvg-id="TelewizjaTorun.pl",Telewizja Toruล„ (1080p) [Not 24/7] http://217.173.176.107:1935/live/ngrp:tvk.stream_mobile/chunks.m3u8 -#EXTINF:-1 tvg-id="ThePetCollective.us@Poland",The Pet Collective (720p) +#EXTINF:-1 tvg-id="ThePetCollective.pl",The Pet Collective (720p) https://6ec8627d.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1RoZVBldENvbGxlY3RpdmVfSExT/playlist.m3u8 #EXTINF:-1 tvg-id="TNAWrestlingChannel.pl",TNA Wrestling Channel (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/master/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/master.m3u8?ads.xumo_channelId=88883039 #EXTINF:-1 tvg-id="TOPBarca.pl",TOP Barca (1080p) https://amg17560-fcb-amg17560c1-rakuten-uk-4891.playouts.now.amagi.tv/playlist/amg17560-fcbarcelona-topbarcaenglish-rakutenuk/playlist.m3u8 -#EXTINF:-1 tvg-id="TopMoviesPolska.pl",Top Movies Polska (720p) -https://d14678b7277b4f21964f367309c8f3e2.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-pl_TopMoviesPolska/playlist.m3u8 -#EXTINF:-1 tvg-id="TopMoviesPolska.pl",Top Movies Polska (1080i) -https://top-movies-rakuten-tv-pl.fast.rakuten.tv/v1/master/0547f18649bd788bec7b67b746e47670f558b6b2/production-LiveChannel-6059/master.m3u8 #EXTINF:-1 tvg-id="TrusoTV.pl",Truso TV (576p) [Not 24/7] https://stream.truso.tv/elblag/myStream_aac/playlist.m3u8 #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) -http://109.233.89.166/TV4_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) -http://109.233.89.170/TV4_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) -http://178.219.128.68:64889/TV4HD -#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) http://185.236.229.62:9981/play/a03x #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) [Geo-blocked] https://lb2-e2-32.pluscdn.pl/ch/1502601/309/dash/e25c2c93/live.mpd #EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) -http://109.233.89.166/TV6_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) -http://109.233.89.170/TV6_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) -http://178.219.128.68:64889/TV6HD -#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) http://185.236.229.62:9981/play/a03y #EXTINF:-1 tvg-id="TVASTA.pl",TV ASTA (720p) https://5cce8c6f0e84c.streamlock.net/LiveCast/smil:PlayStream9.smil/playlist.m3u8 @@ -627,45 +263,17 @@ http://185.236.229.62:9981/play/a07l #EXTINF:-1 tvg-id="TVOkazje.pl",TV Okazje (576p) http://185.236.229.62:9981/play/a07m #EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) -http://109.233.89.166/TV_Puls_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) -http://178.219.128.68:64889/TVPULSHD -#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) http://185.236.229.62:9981/play/a034 #EXTINF:-1 tvg-id="TVRegionalnaLubin.pl",TV Regionalna Lubin (576p) [Not 24/7] https://tvreg.klemit.net/regionalna/stream/index.m3u8 #EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) -http://109.233.89.166/TV_Republika_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) -http://109.233.89.170/TV_Republika_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) -http://178.219.128.68:64888/TVREPU -#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) http://185.236.229.62:9981/play/a027 #EXTINF:-1 tvg-id="TVTorun.pl",TV Toruล„ (1080p) [Not 24/7] http://217.173.176.107:1935/live/tvk.stream/playlist.m3u8 #EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (1080p) [Geo-blocked] https://live-ch1.trwam.cf.insyscd.net/out/v1/b99041a282774d4a8fe84a54243af5de/trwamtv-live-ch1.mpd -#EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (576p) -http://109.233.89.170/TV_TRWAM/index.m3u8 -#EXTINF:-1 tvg-id="TVWielkopolska.pl",TV Wielkopolska (614p) -https://stream6.nadaje.com:35308/live/stream-1/playlist.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) -http://109.233.89.166/TVP1_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) -http://109.233.89.170/TVP1_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) -http://178.219.128.68:64889/TVP1HD #EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) https://ec06-krk3.cache.orange.pl/dai4/org1/vb/104/tvp1hd/index.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080i) -http://nowatv.stream2.link:8080/live/64:1c:b0:a1:48:c1/tfAjswfz6H/172c116f-0e21-4c80-9146-327a2ee05918.ts -#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) -http://109.233.89.166/TVP2_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) -http://109.233.89.170/TVP2_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) -http://178.219.128.68:64889/TVP2HD #EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) http://185.236.229.62:9981/play/a07p #EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) @@ -698,90 +306,28 @@ https://cdndai.pl/tvp3poznansd/index.m3u8 https://cdndai.pl/tvp3rzeszowsd/index.m3u8 #EXTINF:-1 tvg-id="TVP3Szczecin.pl",TVP 3 Szczecin (576p) https://cdndai.pl/tvp3szczecinsd/index.m3u8 -#EXTINF:-1 tvg-id="TVP3Warszawa.pl",TVP 3 Warszawa (1080p) -http://185.236.229.62:9981/play/a060 #EXTINF:-1 tvg-id="TVP3Warszawa.pl",TVP 3 Warszawa (576p) https://cdndai.pl/tvp3warszawasd/index.m3u8 #EXTINF:-1 tvg-id="TVP3Wroclaw.pl",TVP 3 Wrocล‚aw (576p) https://cdndai.pl/tvp3wroclawsd/index.m3u8 -#EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (1080p) -http://109.233.89.170/TVP_ABC/index.m3u8 -#EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (1080p) -http://178.219.128.68:64888/TVPABC #EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (576p) http://185.236.229.62:9981/play/a02z #EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) -http://109.233.89.166/TVP_Dokument_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) -http://109.233.89.170/TVP_Dokument_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) -http://178.219.128.68:64889/TVPDOKUHD -#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) http://185.236.229.62:9981/play/a05b #EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) -http://109.233.89.166/TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) -http://109.233.89.170/TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) http://185.236.229.62:9981/play/a02i -#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (1080p) -http://109.233.89.170/TVP_Historia/index.m3u8 -#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (1080p) -http://178.219.128.68:64889/TVPHIST #EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576p) http://185.236.229.62:9981/play/a035 #EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) -http://109.233.89.166/TVP_INFO_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) -http://109.233.89.170/TVP_INFO_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) -http://178.219.128.68:64889/TVPINFOHD -#EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) http://185.236.229.62:9981/play/a02j -#EXTINF:-1 tvg-id="TVPKobieta.pl",TVP Kobieta (1080p) -http://109.233.89.170/TVP_Kobieta_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPKobieta.pl",TVP Kobieta (1080p) -http://178.219.128.68:64889/TVPKOBIHD -#EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080p) -http://178.219.128.68:64889/TVPKULT #EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080p) http://185.236.229.62:9981/play/a02t -#EXTINF:-1 tvg-id="TVPNauka.pl",TVP Nauka (1080p) -http://109.233.89.166/TVP_Nauka/index.m3u8 -#EXTINF:-1 tvg-id="TVPNauka.pl",TVP Nauka (1080p) -http://109.233.89.170/TVP_Nauka/index.m3u8 -#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) -http://109.233.89.166/TVP_Polonia_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) -http://109.233.89.170/TVP_Polonia_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) -http://178.219.128.68:64889/TVPPOLOHD #EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) http://185.236.229.62:9981/play/a08m -#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) -http://109.233.89.166/TVP_Rozrywka/index.m3u8 -#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) -http://109.233.89.170/TVP_Rozrywka/index.m3u8 -#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) -http://178.219.128.68:64889/TVPROZR #EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (576p) http://185.236.229.62:9981/play/a026 #EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) -http://109.233.89.166/TVP_Seriale/index.m3u8 -#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) -http://178.219.128.68:64889/TVPSERI -#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) http://185.236.229.62:9981/play/a02w -#EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) -http://109.233.89.166/TVP_Sport_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) -http://109.233.89.170/TVP_Sport_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) -http://178.219.128.68:64889/TVPSPORHD -#EXTINF:-1 tvg-id="TVPWorld.pl",TVP World (1080p) -http://178.219.128.68:64888/TVPWORLHD -#EXTINF:-1 tvg-id="TVS.pl",TVS (1080p) -http://178.219.128.68:64888/TVS #EXTINF:-1 tvg-id="TVS.pl",TVS (576p) http://185.236.229.62:9981/play/a02p #EXTINF:-1 tvg-id="TVT.pl",TVT (720p) @@ -790,41 +336,189 @@ https://live.streamtvt.pl/LiveAppStreamTVT/streams/853271271313930867905724.m3u8 http://gargoyle.tomkow.pl/hls/tvt.m3u8 #EXTINF:-1 tvg-id="ViasatExploreClassic.pl",Viasat Explore Classic (720p) https://da9c49fa.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLXBsX1ZpYXNhdEV4cGxvcmVfSExT/playlist.m3u8 -#EXTINF:-1 tvg-id="ViDocTV.pl",ViDoc TV (1080p) -http://185.236.229.62:9981/play/a051 -#EXTINF:-1 tvg-id="VOXMusicTV.pl",VOX Music TV (576p) -http://109.233.89.166/VOX/index.m3u8 -#EXTINF:-1 tvg-id="VoxwRytmieHitow.pl",Vox w Rytmie Hitow (1080i) -https://s-pl-01.mediatool.tv/playout/vxpl-abr/index.m3u8 -#EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (1080p) -http://109.233.89.170/wPolsce.PL/index.m3u8 -#EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (576p) -http://109.233.89.166/wPolsce.PL/index.m3u8 #EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (576p) http://185.236.229.62:9981/play/a022 #EXTINF:-1 tvg-id="WorldBilliards.pl",World Billiards (720p) https://9a81dd4ee3884d0dbcacafaf0d81327a.mediatailor.us-east-1.amazonaws.com/v1/master/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BilliardsTV/playlist.m3u8 #EXTINF:-1 tvg-id="WorldofFreesports.pl",World of Freesports (1080p) https://rakutenaa-mainstreammediafreesportsintl-rakuten-t7dc0.amagi.tv/playlist/rakutenAA-mainstreammediafreesportsintl-rakuten/playlist.m3u8 -#EXTINF:-1 tvg-id="WorldPokerTour.us@Poland",World Poker Tour (1080p) +#EXTINF:-1 tvg-id="WorldPokerTour.pl",World Poker Tour (1080p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/15d59f2f-80da-4448-9bce-775cc9f470f7/1.m3u8 -#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) -http://109.233.89.166/WP_HD/index.m3u8 -#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) -http://109.233.89.170/WP_HD/index.m3u8 -#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) -http://178.219.128.68:64889/WPHD #EXTINF:-1 tvg-id="WPTV.pl",WP TV (576p) http://185.236.229.62:9981/play/a02u #EXTINF:-1 tvg-id="ZNation.pl",Z Nation (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/master/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/master.m3u8?ads.xumo_channelId=88883098 #EXTINF:-1 tvg-id="ZeeOne.pl",Zee One (720p) https://89ec2d15e090480bb419d940b8793b9c.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-eu_ZeeWorld-1/playlist.m3u8 -#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) -http://109.233.89.166/Zoom_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) -http://109.233.89.170/Zoom_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) -http://178.219.128.68:64889/ZOOMTVHD #EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (576p) http://185.236.229.62:9981/play/a02a +#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) [Geo-blocked] +https://lb2-e3-20.pluscdn.pl/lv/1511888/322/dash/52a9b70b/live.mpd +#EXTINF:-1 tvg-id="Royalworld.pl",Royalworld (720p) +https://ac76260b1102416c93f3d20958bfeb4b.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-pl_Royalworld/playlist.m3u8 +#EXTINF:-1 tvg-id="Euronews.pl",Euronews (720p) +https://euronews-live-pol-pl.fast.rakuten.tv/v1/master/0547f18649bd788bec7b67b746e47670f558b6b2/production-LiveChannel-6769/bitok/eyJzdGlkIjoiNDgyYjMzYzEtYmYwYi00NTIzLThlMGMtZGZmY2ZkNjYyMGU1IiwibWt0IjoicGwiLCJjaCI6Njc2OSwicHRmIjo1fQ%3D%3D/26235/euronews-pl.m3u8 +#EXTINF:-1 tvg-id="TopMoviesPolska.pl",Top Movies Polska (1080i) +https://top-movies-rakuten-tv-pl.fast.rakuten.tv/v1/master/0547f18649bd788bec7b67b746e47670f558b6b2/production-LiveChannel-6059/master.m3u8 +#EXTINF:-1 tvg-id="HiDance.pl",HiDance (1080i) +https://s-pl-01.mediatool.tv/playout/hdpl-abr/index.m3u8 +#EXTINF:-1 tvg-id="HiMusic.pl",HiMusic (1080i) +https://s-pl-01.mediatool.tv/playout/hmpl-abr/index.m3u8 +#EXTINF:-1 tvg-id="SAYHi.pl",SAYHi (1080i) +https://s-pl-01.mediatool.tv/playout/shpl-abr/index.m3u8 +#EXTINF:-1 tvg-id="VoxwRytmieHitow.pl",Vox w Rytmie Hitow (1080i) +https://s-pl-01.mediatool.tv/playout/vxpl-abr/index.m3u8 +#EXTINF:-1 tvg-id="EskaRockDobrzeRockuje.pl",Eska Rock Dobrze Rockuje (1080i) +https://s-pl-01.mediatool.tv/playout/erpl-abr/index.m3u8 +#EXTINF:-1 tvg-id="EskaHitynaCzasie.pl",Eska Hity na Czasie (1080i) +https://s-pl-01.mediatool.tv/playout/espl-abr/index.m3u8 +#EXTINF:-1 tvg-id="PoradnikZdrowieTV.pl",Poradnik Zdrowie TV (1080i) +https://s-pl-01.mediatool.tv/playout/pzpl-abr/index.m3u8 +#EXTINF:-1 tvg-id="MuratorTV.pl",Murator TV (1080i) +https://s-pl-01.mediatool.tv/playout/mupl-abr/index.m3u8 +#EXTINF:-1 tvg-id="SuperExpressTV.pl",Super Express TV (1080i) +https://s-pl-01.mediatool.tv/playout/sepl-abr/index.m3u8 +#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/172c116f-0e21-4c80-9146-327a2ee05918.ts +#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (540i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ecf03eb6-acc5-4c9e-9339-9e6a4fe31d98.ts +#EXTINF:-1 tvg-id="VOD205.pl",VOD 205 (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/9dac17c7-98be-4b05-8ef2-038aa3a37cc4.ts +#EXTINF:-1 tvg-id="VOD206.pl",VOD 206 (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/4a4bb8f0-c5bc-4001-94ed-1b8d628e097d.ts +#EXTINF:-1 tvg-id="VOD207.pl",VOD 207 (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1e51c6c3-a5a2-4f0e-8482-d1bc9f94d2e5.ts +#EXTINF:-1 tvg-id="VOD208.pl",VOD 208 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ffb9bcf6-96e8-4a7a-9bcd-a32a8b399f5a.ts +#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ced900ec-18e3-4500-be3d-5642227688f7.ts +#EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/62d1cae5-4864-4c79-9224-96e4a1dfe9f3.ts +#EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6e627418-a319-4d09-a627-4b612193147d.ts +#EXTINF:-1 tvg-id="PowerTV.pl",Power TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ca44c966-c2d9-48a4-aa6c-c22f1c95fd17.ts +#EXTINF:-1 tvg-id="RedCarpetTV.pl",Red Carpet TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6109dcb5-ebdd-41a0-b7f0-0c1ab0c1ddd2.ts +#EXTINF:-1 tvg-id="StarsTV.pl",Stars TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f78056d5-c76b-4ed5-9186-f02217dcfb48.ts +#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/693f29bf-70ac-432d-bed6-458b1ed144e7.ts +#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/9f075b25-a8e2-4801-9ed5-e599c6e281c4.ts +#EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a58cea4f-b711-4935-ab88-5848b99d76e2.ts +#EXTINF:-1 tvg-id="SundanceTV.pl",Sundance TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/e02f357c-de0f-461f-9928-949889a786fb.ts +#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/0a234f82-e4ff-470e-864c-bfc560b00f6a.ts +#EXTINF:-1 tvg-id="WPTV.pl",WP TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/afd2ddbf-a0f9-481a-8dcd-fcfa8f97939b.ts +#EXTINF:-1 tvg-id="E.pl",E! (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1edbd119-5fef-4b2f-b3ef-7bb9e27a49aa.ts +#EXTINF:-1 tvg-id="TVS.pl",TVS (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a8ddbe08-496f-4aba-9f18-6bef849a01fa.ts +#EXTINF:-1 tvg-id="TVS.pl",TVS (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/38e7bf79-ed62-4242-968d-df18f04181de.ts +#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f9057d34-8caf-4cf6-894d-9e4ca197095e.ts +#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/95b37a9f-4e7f-4c72-9595-5c1b27324cab.ts +#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (540i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3499eccd-fe22-444a-9129-2975ae097d42.ts +#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/b78c60f0-b186-485a-822c-2ee6822b006f.ts +#EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/aef35b7b-ac74-4207-9db9-b1bfae15be28.ts +#EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/e0286f10-a4c8-45fb-983c-f6ebec907fd8.ts +#EXTINF:-1 tvg-id="TVOkazje.pl",TV Okazje (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/26e34e37-6cf4-49d8-bcf3-f1a2eac28c57.ts +#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/aeb45398-d540-43df-814d-b9eab064cb13.ts +#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/53c57b24-742a-42d0-ae2b-998408f4c19c.ts +#EXTINF:-1 tvg-id="TV4.pl",TV4 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/85edd39f-d0c7-42ca-b3b4-43c25b427c3a.ts +#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/2b98fc49-f914-4b76-83dc-50a16d039e8f.ts +#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ddd92d16-e9fc-405a-9cde-3b39297dc7db.ts +#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1e84efe5-b400-470a-847d-2ff4e511fdf6.ts +#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6fbc38af-7ef3-4997-a9cd-d95f3adffa10.ts +#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/580e1210-a4e7-4538-a335-ba0778c2a88c.ts +#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/426e3874-1088-452b-86b9-d5ffd907645c.ts +#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f342f17c-f85c-4940-8192-e12f20065006.ts +#EXTINF:-1 tvg-id="PolsatComedyCentralExtra.pl",Polsat Comedy Central Extra (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/dcd9bfb6-3cf1-4ed3-8071-8bb7c5584dd9.ts +#EXTINF:-1 tvg-id="PolsatComedyCentralExtra.pl",Polsat Comedy Central Extra (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/47026565-02f2-49ec-aa83-f0e12630be0d.ts +#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/4b49481c-3ec7-4a54-91e1-4406aec5074e.ts +#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ab79c293-a2d0-4352-addf-3abd775c056a.ts +#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6be8bf64-18d0-49a0-8da9-a2e93359597f.ts +#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d23ca912-3c76-4384-8609-b3efb74d6860.ts +#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/873595c1-87e1-4acb-a856-021ef40de90d.ts +#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/842750a0-b7fc-4261-bd56-2a68b03c5a27.ts +#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3313df7a-4f5a-49d4-b75a-d3ed161915ca.ts +#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/185dd46e-4702-42ac-84f3-a4ddcfdd9704.ts +#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3623e2ea-d0eb-450e-bdbd-8ba4806553a1.ts +#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/0affc19c-ec65-4558-a9a7-07f0445f341a.ts +#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f13879f3-bcd4-4321-9d62-313670edbd64.ts +#EXTINF:-1 tvg-id="StudioMedTV.pl",StudioMed TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/729629f0-1c3f-4504-a229-17cab8264f6d.ts +#EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a221dbe9-fe9c-448b-ac03-c888235c32f9.ts +#EXTINF:-1 tvg-id="HomeTV.pl",Home TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/cd50060a-0ab8-42c4-a245-473fab0e27a1.ts +#EXTINF:-1 tvg-id="TVC.pl",TVC (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/23d51aa6-9daa-45d5-857f-a73f741f0655.ts +#EXTINF:-1 tvg-id="AntenaHD.pl",Antena HD (576p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/648835f7-46e6-4b32-bfae-2536848f708d.ts +#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/c7eebc71-bd18-4042-886c-e9aaefb7477f.ts +#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3ab29e79-8cf7-4f7b-9f7d-56ac82451e77.ts +#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1126cb0c-d437-4f64-bd74-e66b085a72ef.ts +#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d19b3e42-40ab-4a06-bfa1-d659d0d0c926.ts +#EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/77234e51-d22e-4941-9644-e4537a9f0691.ts +#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d91afe3f-da34-4537-96b1-02dd5e1dc6eb.ts +#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (540i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6ac08ec1-579b-4033-ab8e-85cdc83b62fe.ts +#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d4cd00a3-60f5-40dc-bfcf-0c5e228d4dc5.ts +#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (360p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/470aea40-e244-4d07-9d03-1305cc51c5eb.ts +#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/47400c2a-f645-47a3-860a-ee745a2ee678.ts +#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/5445b6cd-c1ed-4d3b-be39-55ac3dc85ba8.ts +#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a8ef46c5-142a-4c2a-bb0d-27fdb7ba3a36.ts +#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/610afe23-79a2-4d0d-b607-dbbe08297b50.ts +#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/896c4efd-0a92-4b7a-9152-bfba2ecd12ec.ts +#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/5242aace-e131-4449-af51-46207be50da5.ts +#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/00eb3d6b-3ce1-4016-aa67-944190ae0103.ts diff --git a/streams/ps.m3u b/streams/ps.m3u index 5011cd8fb..92093d8e0 100644 --- a/streams/ps.m3u +++ b/streams/ps.m3u @@ -48,3 +48,5 @@ https://streaming.zaytonatube.com:8081/ShababFM/shabab/index.m3u8 http://htvint.mada.ps:8889/orient/index.m3u8 #EXTINF:-1 tvg-id="WatarTV.ps",Watar TV (720p) [Not 24/7] https://htvint.mada.ps/orient/index.m3u8 +#EXTINF:-1 tvg-id="NablusTV.ps",Nablus TV (1080p) +https://htvint.mada.ps/nabluslive/index.m3u8 diff --git a/streams/pt.m3u b/streams/pt.m3u index b34a62b3c..904aa678d 100644 --- a/streams/pt.m3u +++ b/streams/pt.m3u @@ -99,3 +99,9 @@ https://video-auth4.iol.pt/live_tvi_reality/live_tvi_reality/edge_servers/tvirea https://video-auth2.iol.pt/live_vmais/live_vmais/edge_servers/vmais-720p/playlist.m3u8 #EXTINF:-1 tvg-id="WayTV.pt",Way TV (1080p) http://213.13.26.11:1935/live/sobrenaturaltv/livestream.m3u8 +#EXTINF:-1 tvg-id="ADBTV.pt",ADB TV (1080p) +https://customer-dxeagripmkqbhyeq.cloudflarestream.com/580c36d77be200bf5c7d3efc06487bd4/manifest/video.m3u8 +#EXTINF:-1 tvg-id="NPCRadioeTV.pt",NPC Radio e TV (720p) +https://stmv1.srvif.com/npc/npc/playlist.m3u8 +#EXTINF:-1 tvg-id="TVI.pt",TVI (720p) +https://raw.githubusercontent.com/ipstreet312/freeiptv/master/ressources/tvipt/sh/tvi.m3u8 diff --git a/streams/ro.m3u b/streams/ro.m3u index 852bd705c..518230122 100644 --- a/streams/ro.m3u +++ b/streams/ro.m3u @@ -249,3 +249,6 @@ https://mn-nl.mncdn.com/tvrtgmures_new/smil:tvrtgmures_new.smil/index.m3u8 https://tvr-tvrtimisoara.cdn.zitec.com/live/tvrtimisoara/main.m3u8 #EXTINF:-1 tvg-id="TVSat.ro",TVSat (576p) [Not 24/7] http://89.38.8.130:39443 +#EXTINF:-1 tvg-id="SuperTV.ro" http-referrer="https://supertv.ro",Super TV (1080i) [Not 24/7] +#EXTVLCOPT:http-referrer=https://supertv.ro +https://live.supertv.ro/live/supertv/playlist.m3u8 diff --git a/streams/ru.m3u b/streams/ru.m3u index 92592c5ad..65124dbb0 100644 --- a/streams/ru.m3u +++ b/streams/ru.m3u @@ -1,8 +1,4 @@ #EXTM3U -#EXTINF:-1 tvg-id="7tv.ru",7 TV -http://v4.proofix.ru/7tv-live/tracks-v1a1/index.m3u8 -#EXTINF:-1 tvg-id="Channel43.ru",43 ะบะฐะฝะฐะป (ะขัƒะฐะฟัะต) (720p) -http://sochinskayatrk.ru/hdtv/hls/43Channel_hd/playlist.m3u8 #EXTINF:-1 tvg-id="360.ru",360ยฐ (1080p) [Not 24/7] https://edge2-tv-ll.facecast.io/evacoder_hls_hi/CkxfR1xNUAJwTgtXTBZTAJli/index.m3u8 #EXTINF:-1 tvg-id="360.ru",360ยฐ (720p) @@ -21,8 +17,6 @@ http://retj.educom.ru/mosobrtv/tv1/index.m3u8 http://retc.educom.ru/mosobrtv/tv1/index.m3u8 #EXTINF:-1 tvg-id="Pro100TV.ru",Pro100TV https://sirius.greenhosting.ru/Pro100tvRu/video.m3u8 -#EXTINF:-1 tvg-id="",Relax -http://185.57.68.33:8091/232/tracks-v1a1/index.m3u8 #EXTINF:-1 tvg-id="RUTV.ru",RU TV https://hls-03-video.webcaramba.com/rutv/live.m3u8 #EXTINF:-1 tvg-id="RussianMusicBox.ru",Russian MusicBox (1080p) @@ -77,8 +71,6 @@ http://serv24.vintera.tv:8081/vetta/vetta_office/playlist.m3u8 http://tele2dvrnat01-02.cdnvideo.ru/stream/NAT_Volga/hls/1920x1080@4504/playlist.m3u8 #EXTINF:-1 tvg-id="Volgograd24.ru",ะ’ะพะปะณะพะณั€ะฐะด 24 https://vgtrkregion-reg.cdnvideo.ru/vgtrk/volgograd/russia1-hd/index.m3u8 -#EXTINF:-1 tvg-id="Gorodskoytelekanal.ru",ะ“ะพั€ะพะดัะบะพะน ั‚ะตะปะตะบะฐะฝะฐะป (ะฏั€ะพัะปะฐะฒะปัŒ) (576p) -https://www.gtk.tv/hls/gtyar.m3u8 #EXTINF:-1 tvg-id="GuberniaSamara.ru",ะ“ัƒะฑะตั€ะฝะธั (ะกะฐะผะฐั€ะฐ) (576p) http://live.guberniatv.cdnvideo.ru/guberniatv/guberniatv.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="TVRain.ru",ะ”ะพะถะดัŒ (1080p) [Geo-blocked] @@ -99,7 +91,7 @@ http://igi-hls.cdnvideo.ru/igi/igi_tcode/playlist.m3u8 http://serv25.vintera.tv:8081/test/k16/playlist.m3u8 #EXTINF:-1 tvg-id="KabbalaTV.ru",ะšะฐะฑะฑะฐะปะฐ ะขะ’ (360p) [Not 24/7] https://edge2.uk.kab.tv/live/tvrus-rus-medium/playlist.m3u8 -#EXTINF:-1 tvg-id="Kinopremyera.ru@HD",ะšะธะฝะพะฟั€ะตะผัŒะตั€ะฐ HD +#EXTINF:-1 tvg-id="KinopremyeraHD.ru",ะšะธะฝะพะฟั€ะตะผัŒะตั€ะฐ HD http://45.159.74.13/Kinopremera/index.m3u8 #EXTINF:-1 tvg-id="RedLine.ru",ะšั€ะฐัะฝะฐั ะปะธะฝะธั http://s55766.cdn.ngenix.net/s55766-media-origin/rline_high/index.m3u8 @@ -123,11 +115,11 @@ https://live.trkmillet.ru/millet/index.m3u8 http://hls.mirtv.cdnvideo.ru/mirtv-parampublish/mirtv_2500/playlist.m3u8 #EXTINF:-1 tvg-id="Mir24.ru",ะœะธั€ 24 (1080p) http://hls.mirtv.cdnvideo.ru/mirtv-parampublish/mir24_2500/playlist.m3u8 -#EXTINF:-1 tvg-id="Mir.ru@Plus2",ะœะธั€ +2 (540p) [Not 24/7] +#EXTINF:-1 tvg-id="MirPlus2.ru",ะœะธั€ +2 (540p) [Not 24/7] http://hls.mirtv.cdnvideo.ru/mirtv-parampublish/mirtv2_2500/playlist.m3u8 -#EXTINF:-1 tvg-id="Mir.ru@Plus4",ะœะธั€ +4 (540p) [Not 24/7] +#EXTINF:-1 tvg-id="MirPlus4.ru",ะœะธั€ +4 (540p) [Not 24/7] http://hls.mirtv.cdnvideo.ru/mirtv-parampublish/mirtv3_2500/playlist.m3u8 -#EXTINF:-1 tvg-id="Mir.ru@Plus7",ะœะธั€ +7 (540p) +#EXTINF:-1 tvg-id="MirPlus7.ru",ะœะธั€ +7 (540p) http://hls.mirtv.cdnvideo.ru/mirtv-parampublish/mirtv7_2500/playlist.m3u8 #EXTINF:-1 tvg-id="MirBelogorya.ru",ะœะธั€ ะ‘ะตะปะฐะณะพั€ัŒั (720p) [Geo-blocked] http://mirbelogorya.ru:8080/mirbelogorya/index.m3u8 @@ -145,7 +137,7 @@ http://sirius.greenhosting.ru/MultimaniaRu/video.m3u8 https://live-tvhope.cdnvideo.ru/tvhope-pull/tvhope_1/playlist.m3u8 #EXTINF:-1 tvg-id="HopeChannelRussia.ru",ะะฐะดะตะถะดะฐ (720p) https://tvhope.cdnvideo.ru/tvhope-pull/tvhope_1/playlist.m3u8 -#EXTINF:-1 tvg-id="Nano.ru@HD",ะะฐะฝะพ ะขะ’ HD +#EXTINF:-1 tvg-id="NanoHD.ru",ะะฐะฝะพ ะขะ’ HD http://s1.tv-nano.com/Nano_rec/index.m3u8 #EXTINF:-1 tvg-id="NVKSakha.ru",ะะ’ะš ะกะฐั…ะฐ (1080p) [Not 24/7] https://live-saha.cdnvideo.ru/saha/saha/playlist.m3u8 @@ -159,15 +151,8 @@ https://live-ntm13.cdnvideo.ru/ntm13/smil:ntm13.smil/playlist.m3u8 https://peqk71plnjy.a.trbcdn.net/livemaster/w4kz7pki62_nts_tv/playlist.m3u8 #EXTINF:-1 tvg-id="OSN.ru",ะžะกะ http://osnmedia.servicecdn.ru/streams/17603_88089/playlist.m3u8 -#EXTINF:-1 tvg-id="Ostrosyuzhetnoye.ru@HD",ะžัั‚ั€ะพััŽะถะตั‚ะฝะพะต HD -http://213.172.73.133:8081/nimble_live/9009_ะžัั‚ั€ะพััŽะถะตั‚ะฝะพะต_HD/playlist.m3u8 #EXTINF:-1 tvg-id="ChannelOne.ru",ะŸะตั€ะฒั‹ะน ะบะฐะฝะฐะป https://edge1.1internet.tv/dash-live2/streams/1tv-dvr/1tvdash.mpd -#EXTINF:-1 tvg-id="Pobeda.ru" http-referrer="https://pobeda.tv/",ะŸะพะฑะตะดะฐ (720p) -#EXTVLCOPT:http-referrer=https://pobeda.tv/ -https://pkvc-hls3.cdnvideo.ru/Pobeda/smil:Pobeda.smil/chunklist_b5128000_slru.m3u8 -#EXTINF:-1 tvg-id="Premialnoe.ru@HD",ะŸั€ะตะผะธะฐะปัŒะฝะพะต HD -http://213.172.73.133:8081/nimble_live/9008_ะŸั€ะตะผะธะฐะปัŒะฝะพะต_HD/playlist.m3u8 #EXTINF:-1 tvg-id="Prima.ru",ะŸั€ะธะผะฐ (1080p) https://tele2dvrnat01-02.cdnvideo.ru/stream/NAT_Prima/hls/index.m3u8 #EXTINF:-1 tvg-id="GovoritMoskva.ru",ะ ะฐะดะธะพ ะ“ะพะฒะพั€ะธั‚ ะœะพัะบะฒะฐ (404p) [Not 24/7] @@ -202,14 +187,10 @@ https://sitv.ru/hls/stv.m3u8 http://45.67.57.9:8080/new/new/playlist.m3u8 #EXTINF:-1 tvg-id="SvoyoTV.ru",ะกะฒะพั‘ HD http://live.stv24.tv:8080/svoetv/HQ_video.m3u8 -#EXTINF:-1 tvg-id="Solnce.ru",ะกะพะปะฝั†ะต -http://tv.mediacdn.ru/live/disney/playlist.m3u8 #EXTINF:-1 tvg-id="Soyuz.ru",ะกะพัŽะท (576p) https://hls-tvsoyuz.cdnvideo.ru/tvsoyuz/soyuz/playlist.m3u8 #EXTINF:-1 tvg-id="StranaFM.ru",ะกั‚ั€ะฐะฝะฐ FM (720p) [Not 24/7] http://live.stranafm.cdnvideo.ru/stranafm/stranafm_hd.sdp/playlist.m3u8 -#EXTINF:-1 tvg-id="STRK.ru",ะกะขะ ะš (720p) [Not 24/7] -http://sochinskayatrk.ru/hdtv/hls/strc_hd/playlist.m3u8 #EXTINF:-1 tvg-id="Surgut24.ru",ะกัƒั€ะณัƒั‚ 24 (720p) [Not 24/7] https://video1.in-news.ru/c24/index.m3u8 #EXTINF:-1 tvg-id="TVK.ru",ะขะ’ะš 24 (576p) diff --git a/streams/ru_bonustv.m3u b/streams/ru_bonustv.m3u index d8c2da3fc..9791e65a8 100644 --- a/streams/ru_bonustv.m3u +++ b/streams/ru_bonustv.m3u @@ -1,19 +1,17 @@ #EXTM3U -#EXTINF:-1 tvg-id="9Volna.ru",9 ะ’ะพะปะฝะฐ (ะงะตั€ะบะตััะบ) -http://cdn-01.bonus-tv.ru/9volna/playlist.m3u8 -#EXTINF:-1 tvg-id="Channel12.ru",12 ะบะฐะฝะฐะป (1080p) -https://12channel.bonus-tv.ru/cdn/12channel/playlist.m3u8 #EXTINF:-1 tvg-id="Channel12.ru",12 ะบะฐะฝะฐะป https://12channel.bonus-tv.ru/cdn/12channel_blackout/playlist.m3u8 +#EXTINF:-1 tvg-id="Channel12.ru",12 ะบะฐะฝะฐะป (1080p) +https://12channel.bonus-tv.ru/cdn/12channel/playlist.m3u8 #EXTINF:-1 tvg-id="",49 ะบะฐะฝะฐะป (ะะพะฒะพัะธะฑะธั€ัะบ) https://49channel.mediacdn.ru/live/cdn/49channel/playlist.m3u8 #EXTINF:-1 tvg-id="ArirangTV.kr",Arirang https://cdn-01.bonus-tv.ru/arirang_edge/playlist.m3u8 -#EXTINF:-1 tvg-id="",E +#EXTINF:-1 tvg-id="",E! https://cdn-01.bonus-tv.ru/gsl/playlist.m3u8 #EXTINF:-1 tvg-id="Leomax24.ru",Leomax 24 (1080p) https://tvshops.bonus-tv.ru/cdn/shop24/playlist.m3u8 -#EXTINF:-1 tvg-id="RTDocumentary.ru@Russian",RTะ” +#EXTINF:-1 tvg-id="RTDocumentaryRussian.ru",RTะ” https://cdn-01.bonus-tv.ru/rtdoc/playlist.m3u8 #EXTINF:-1 tvg-id="RT.ru",Russia Today https://cdn-01.bonus-tv.ru/RussiaToday/playlist.m3u8 @@ -65,8 +63,6 @@ https://cdn-01.bonus-tv.ru/prosveschenie_edge/playlist.m3u8 https://radm.mediacdn.ru/cdn/radost/playlist.m3u8 #EXTINF:-1 tvg-id="Salyam.ru",ะกะฐะปัะผ (ะฃั„ะฐ) (576p) https://bsttv.bonus-tv.ru/cdn/salyam/playlist.m3u8 -#EXTINF:-1 tvg-id="SanktPeterburg.ru",ะกะฐะฝะบั‚-ะŸะตั‚ะตั€ะฑัƒั€ะณ -https://streamsrv2.tvspb.ru/OTT/playlist.m3u8 #EXTINF:-1 tvg-id="SvoyoTV.ru",ะกะฒะพั‘ ะขะ’ (ะกั‚ะฐะฒั€ะพะฟะพะปัŒ) https://svoetv.mediacdn.ru/cdn/svoetv/playlist.m3u8 #EXTINF:-1 tvg-id="Sever.ru",ะกะตะฒะตั€ (ะะฐั€ัŒัะฝ-ะœะฐั€) (1080p) diff --git a/streams/ru_smotrim.m3u b/streams/ru_smotrim.m3u index 932284295..1761da3dd 100644 --- a/streams/ru_smotrim.m3u +++ b/streams/ru_smotrim.m3u @@ -3,14 +3,10 @@ https://live-vgtrksmotrim.cdnvideo.ru/vgtrksmotrim/smotrim-live-04-srt.smil/playlist.m3u8 #EXTINF:-1 tvg-id="360News.ru",360ยฐ ะะพะฒะพัั‚ะธ https://live-vgtrksmotrim.cdnvideo.ru/vgtrksmotrim/smotrim-live-03-srt.smil/playlist.m3u8 -#EXTINF:-1 tvg-id="",Thematical Stream 1 -https://vgtrksmotrim.cdnvideo.ru/hls2/givc11_hd/playlist.m3u8 #EXTINF:-1 tvg-id="",ะั€ะบั‚ะธะบะฐ 24 https://vgtrkregion-reg.cdnvideo.ru/vgtrk/arhangelsk/arktika24-hd/index.m3u8 #EXTINF:-1 tvg-id="",ะ‘ะฐัˆะบะพั€ั‚ะพัั‚ะฐะฝ 24 https://vgtrkregion-reg.cdnvideo.ru/vgtrk/ufa/bashkortostan24-hd/index.m3u8 -#EXTINF:-1 tvg-id="Bashkortostan24.ru",ะ‘ะฐัˆะบะพั€ั‚ะพัั‚ะฐะฝ 24 (ะฃั„ะฐ) -https://vgtrkregion-reg.cdnvideo.ru/vgtrk/ufa/russia1-hd/index.m3u8 #EXTINF:-1 tvg-id="BigAsia.ru",ะ‘ะพะปัŒัˆะฐั ะะทะธั https://live-bigasia.cdnvideo.ru/bigasia/bigasia.smil/playlist.m3u8 #EXTINF:-1 tvg-id="",ะ’ะตัั‚ะธ ะคะœ diff --git a/streams/sg.m3u b/streams/sg.m3u index 40f1edbcd..f9a33527d 100644 --- a/streams/sg.m3u +++ b/streams/sg.m3u @@ -31,3 +31,5 @@ https://cdn-telkomsel-01.akamaized.net/Content/HLS/Live/channel(abe4ead2-1a88-43 https://d39v9xz8f7n8tk.cloudfront.net/hls/clr4ctv_vsnthm/master.m3u8 #EXTINF:-1 tvg-id="ZooMoo.sg",ZooMoo Asia (1080p) https://cdn4.skygo.mn/live/disk1/Zoomoo/HLSv3-FTA/Zoomoo.m3u8 +#EXTINF:-1 tvg-id="AXNAsia.sg",AXN Asia (576p) +http://125hvt.ddns.net:21585/axn/index.m3u8 diff --git a/streams/sn.m3u b/streams/sn.m3u index 72d16e88b..f6d18d22f 100644 --- a/streams/sn.m3u +++ b/streams/sn.m3u @@ -5,26 +5,14 @@ https://stream.sen-gt.com/A2iMusic/myStream/playlist.m3u8 https://stream.sen-gt.com/A2iNaija/myStream/playlist.m3u8 #EXTINF:-1 tvg-id="A2iReligion.sn",A2i Religion (720p) [Not 24/7] https://stream.sen-gt.com/A2iReligion/myStream/playlist.m3u8 -#EXTINF:-1 tvg-id="AlFaydaTV.sn",Al Fayda TV (720p) -https://helga.iptv2022.com/sh/AL_AYDA_TV_DAKAR/index.m3u8 #EXTINF:-1 tvg-id="AmaniTV.sn",Amani TV (1080p) [Not 24/7] https://goccn.cloud/hls/amanitv/index.m3u8 -#EXTINF:-1 tvg-id="",Chabiba TV (360p) [Not 24/7] +#EXTINF:-1 tvg-id="ChabibaTV.sn",Chabiba TV (360p) [Not 24/7] https://endour.net/hls/RUgLAPCbPdF5oPSTX2Hvl/index.m3u8 #EXTINF:-1 tvg-id="CNMTV.sn",CNM TV (720p) [Not 24/7] https://stream.sen-gt.com/cnmtv/myStream/playlist.m3u8 -#EXTINF:-1 tvg-id="DiamaTV.sn",Diama TV (1080p) -https://helga.iptv2022.com/Diama_TV/index.m3u8 -#EXTINF:-1 tvg-id="DiamagueneTV.sn",Diamaguene TV (480p) [Not 24/7] -https://helga.iptv2022.com/sh/DIAMAGUENE_TV/index.m3u8 -#EXTINF:-1 tvg-id="GrandYoffTV.sn",Grand Yoff TV (720p) -https://helga.iptv2022.com/sh/Grand_Yoff_TV/index.m3u8 #EXTINF:-1 tvg-id="IMTV.sn",Islam TV Sรฉnรฉgal (720p) https://tv.imediasn.com/hls/live.m3u8 -#EXTINF:-1 tvg-id="KeurNdananeTV.sn",Keur Ndanane TV (720p) -https://helga.iptv2022.com/sh/KN_TV/index.m3u8 -#EXTINF:-1 tvg-id="LeralTV.sn",Leral TV (480p) -https://helga.iptv2022.com/sh/Leral/index.m3u8 #EXTINF:-1 tvg-id="LougaTV.sn",Louga TV (480p) https://stream.sen-gt.com/Mbacke/myStream/playlist.m3u8 #EXTINF:-1 tvg-id="MADERTV.sn",Mader TV (720p) @@ -59,9 +47,9 @@ https://streamspace.live/hls/tempoafrictv/livestream.m3u8 http://69.64.57.208/tfm/playlist.m3u8 #EXTINF:-1 tvg-id="TFM.sn",TFM (720p) https://raw.githubusercontent.com/azgaresncf/strm2hls/main/streams/TFM.m3u8 -#EXTINF:-1 tvg-id="TMtv.sn",TM.tv (360p) -https://helga.iptv2022.com/sh/Tamasheq_TV/index.m3u8 #EXTINF:-1 tvg-id="WalfTV.sn",Walf TV (360p) http://69.64.57.208/walftv/playlist.m3u8 #EXTINF:-1 tvg-id="YakaarTV.sn",Yakaar TV (1080p) https://strhls.streamakaci.tv/yakaartv/yakaartv-multi/playlist.m3u8 +#EXTINF:-1 tvg-id="YegleTV.sn",Yeglรฉ TV (1080p) +https://endour.net/hls/Yegle-tv/index.m3u8 diff --git a/streams/tg.m3u b/streams/tg.m3u index c364d07df..275ffca4a 100644 --- a/streams/tg.m3u +++ b/streams/tg.m3u @@ -1,12 +1,10 @@ #EXTM3U #EXTINF:-1 tvg-id="ACTV.tg",AC TV (480p) [Not 24/7] -https://ssh101.bozztv.com/ssh101/actvstream/playlist.m3u8 -#EXTINF:-1 tvg-id="Direct7TV.tg",Direct 7 TV (720p) -https://helga.iptv2022.com/DIRECT__7/index.m3u8 +https://ssh101stream.ssh101.com/akamaissh101/ssh101/actvstream/playlist.m3u8 +#EXTINF:-1 tvg-id="ChandelTV.tg",Chandel TV (720p) +https://kali.vdopanel.com:3660/live/vj6jlam1rlive.m3u8 #EXTINF:-1 tvg-id="DynamicGospelTV.tg",Dynamic Gospel TV (480p) [Not 24/7] -https://ssh101.bozztv.com/ssh101/tvdynamicstream/playlist.m3u8 -#EXTINF:-1 tvg-id="LNTV.tg",LNTV (720p) -https://helga.iptv2022.com/sh/LNTV/index.m3u8 +https://ssh101stream.ssh101.com/akamaissh101/ssh101/tvdynamicstream/playlist.m3u8 #EXTINF:-1 tvg-id="NWEconomie.tg",NW Economie (576p) https://hls.newworldtv.com/nw-economie/video/live.m3u8 #EXTINF:-1 tvg-id="NWInfo2.tg",NW Info 2 EN (576p) @@ -21,7 +19,7 @@ https://cdn140m.panaccess.com/HLS/RTVJA/index.m3u8 https://smatogo.tv:89/smatogo/smatogo.m3u8 #EXTINF:-1 tvg-id="SOSDocteurTV.tg",SOS Docteur TV (480p) [Not 24/7] https://wmoy82n4y2a7-hls-live.5centscdn.com/sostv/live.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="TV2.tg",TV 2 (720p) [Not 24/7] -https://helga.iptv2022.com/sh/TV2/index.m3u8 +#EXTINF:-1 tvg-id="TelevisionEspoir47.tg",Television Espoir 47 (720p) +https://cdn140m.panaccess.com/HLS/Espoir47/index.m3u8 #EXTINF:-1 tvg-id="TVT.tg",TVT (720p) [Not 24/7] http://69.64.57.208/tvt/playlist.m3u8 diff --git a/streams/tr.m3u b/streams/tr.m3u index ed4d407c2..1e6058533 100644 --- a/streams/tr.m3u +++ b/streams/tr.m3u @@ -1,6 +1,8 @@ #EXTM3U #EXTINF:-1 tvg-id="4UTV.tr",4U TV (720p) https://hls.4utv.live/hls/stream.m3u8 +#EXTINF:-1 tvg-id="24TV.tr",24 TV +https://kanal24.blutv.com/blutv_kanal24_live/live.m3u8 #EXTINF:-1 tvg-id="24TV.tr",24 TV (1080p) http://185.234.111.229:8000/play/a059 #EXTINF:-1 tvg-id="24TV.tr" http-user-agent="Mozilla/5.0 Macintosh; Intel Mac OS X 10_14_5 AppleWebKit/537.36 KHTML, like Gecko Chrome/76.0.3809.25 Safari/537.36",24 TV (1080p) @@ -8,48 +10,44 @@ http://185.234.111.229:8000/play/a059 https://mn-nl.mncdn.com/kanal24/smil:kanal24.smil/playlist.m3u8 #EXTINF:-1 tvg-id="24TV.tr",24 TV (576p) http://185.234.111.229:8000/play/a056 -#EXTINF:-1 tvg-id="24TV.tr",24 TV -https://kanal24.blutv.com/blutv_kanal24_live/live.m3u8 #EXTINF:-1 tvg-id="360.tr",360 (1080p) http://185.234.111.229:8000/play/a05a #EXTINF:-1 tvg-id="360.tr",360 (576p) http://185.234.111.229:8000/play/a057 #EXTINF:-1 tvg-id="360.tr",360 TV (720p) [Not 24/7] https://turkmedya-live.ercdn.net/tv360/tv360.m3u8 -#EXTINF:-1 tvg-id="A2TV.tr",A2TV (1080p) -http://185.234.111.229:8000/play/a01m #EXTINF:-1 tvg-id="A2TV.tr",A2TV https://c.fulltvizle.com/a2/index.m3u8 #EXTINF:-1 tvg-id="A2TV.tr",A2TV https://canlitvulusal.xyz/live/a2tv/index.m3u8 #EXTINF:-1 tvg-id="A2TV.tr",A2TV https://trkvz-live.daioncdn.net/a2tv/a2tv.m3u8 -#EXTINF:-1 tvg-id="AHaber.tr",A Haber (576p) -http://185.234.111.229:8000/play/a019 +#EXTINF:-1 tvg-id="A2TV.tr",A2TV (1080p) +http://185.234.111.229:8000/play/a01m #EXTINF:-1 tvg-id="AHaber.tr",A Haber https://c.fulltvizle.com/ahaber/index.m3u8 #EXTINF:-1 tvg-id="AHaber.tr",A Haber https://canlitvulusal.xyz/live/ahaber/index.m3u8 +#EXTINF:-1 tvg-id="AHaber.tr",A Haber (576p) +http://185.234.111.229:8000/play/a019 #EXTINF:-1 tvg-id="ANews.tr",A News (1080p) http://185.234.111.229:8000/play/a01k #EXTINF:-1 tvg-id="APara.tr",A Para (1080p) http://185.234.111.229:8000/play/a01l #EXTINF:-1 tvg-id="APara.tr",A Para (720p) https://canlitvulusal.xyz/live/apara/index.m3u8 +#EXTINF:-1 tvg-id="ASpor.tr",A Spor +https://trkvz-live.daioncdn.net/aspor/aspor.m3u8 #EXTINF:-1 tvg-id="ASpor.tr",A Spor (720p) https://tgn.bozztv.com/dvrfl05/gin-aspor/index.m3u8 #EXTINF:-1 tvg-id="ASpor.tr",A Spor (360p) [Not 24/7] https://c.fulltvizle.com/aspor/index.m3u8 -#EXTINF:-1 tvg-id="ASpor.tr",A Spor -https://trkvz-live.daioncdn.net/aspor/aspor.m3u8 #EXTINF:-1 tvg-id="ATurk.tr",A Tรผrk Izmir (360p) https://vdo.digitalbox.xyz:3807/stream/play.m3u8 #EXTINF:-1 tvg-id="AnadoluAgency.tr",AA Live (720p) [Not 24/7] https://mtulqxgomrllive.mediatriple.net/mtulqxgomrllive/broadcast_59f9c0c785b88.smil/playlist.m3u8 #EXTINF:-1 tvg-id="AdaTV.cy",ADA TV (720p) https://yayin1.canlitv.day/live/kibrisadatv.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="AfroturkTV.tr",Afroturk TV (1080p) -https://edge.socialsmart.tv/naturaltv/bant1/playlist.m3u8 #EXTINF:-1 tvg-id="AfyonTurkTV.tr",Afyon Tรผrk TV (720p) https://tv.digitalbox.xyz:19360/afyonturktv/afyonturktv.m3u8 #EXTINF:-1 tvg-id="AgroTV.tr",Agro TV (1080p) @@ -74,16 +72,12 @@ https://live.al-zahratv.com/live/playlist.m3u8 https://api-tv3.yayin.com.tr/postatv/postatv/playlist.m3u8 #EXTINF:-1 tvg-id="AlmahriahTV.tr",Almahriah TV (576p) https://starmenajo.com/hls/almahriah/index.m3u8 -#EXTINF:-1 tvg-id="AltasTV.tr",Altas TV (1080p) -https://edge1.socialsmart.tv/altastv/bant1/playlist.m3u8 #EXTINF:-1 tvg-id="AnadoluDernekTV.tr",Anadolu Dernek TV (576p) http://185.234.111.229:8000/play/a020 #EXTINF:-1 tvg-id="AnadoluNetTV.tr",Anadolu Net TV (1080p) https://live.artidijitalmedya.com/artidijital_anadolunet/anadolunet/playlist.m3u8 #EXTINF:-1 tvg-id="ArasTV.tr",ARAS TV (576p) [Not 24/7] http://1.rtmp.org/tv217/yayin.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="ATV.tr",ATV (720p) -https://rnttwmjcin.turknet.ercdn.net/lcpmvefbyo/atv/atv.m3u8 #EXTINF:-1 tvg-id="ATV.tr",ATV http://116.202.238.88/ATV_TR/tracks-v1a1/index.m3u8 #EXTINF:-1 tvg-id="ATV.tr",ATV @@ -92,6 +86,8 @@ https://c.fulltvizle.com/aytv/index.m3u8 https://trkvz-live.daioncdn.net/atv/atv.m3u8 #EXTINF:-1 tvg-id="ATV.tr",ATV https://yayin2.canlitv.fun/livetv/atv.stream/playlist.m3u8 +#EXTINF:-1 tvg-id="ATV.tr",ATV (720p) +https://rnttwmjcin.turknet.ercdn.net/lcpmvefbyo/atv/atv.m3u8 #EXTINF:-1 tvg-id="ATVAlanya.tr",ATV Alanya (720p) [Not 24/7] http://stream2.taksimbilisim.com:1935/alanyatv/alanyatv.smil/playlist.m3u8 #EXTINF:-1 tvg-id="ATVAvrupa.tr",ATV Avrupa (576p) @@ -122,12 +118,12 @@ https://yayin30.haber100.com/live/beykenttv/playlist.m3u8 https://live.artidijitalmedya.com/artidijital_birtv/birtv/playlist.m3u8 #EXTINF:-1 tvg-id="BizimevTV.tr",Bizimev TV (720p) https://mn-nl.mncdn.com/blutv_bizimev/bizimev_sd.smil/playlist.m3u8 +#EXTINF:-1 tvg-id="BloombergHT.tr",Bloomberg HT +https://bloomberght2dvr.blutv.com/blutv_bloomberght_dvr/live.m3u8 #EXTINF:-1 tvg-id="BloombergHT.tr",Bloomberg HT (720p) https://ciner.daioncdn.net/bloomberght/bloomberght.m3u8 #EXTINF:-1 tvg-id="BloombergHT.tr",Bloomberg HT (720p) [Not 24/7] https://tv.ensonhaber.com/bloomberght/bloomberght.m3u8 -#EXTINF:-1 tvg-id="BloombergHT.tr",Bloomberg HT -https://bloomberght2dvr.blutv.com/blutv_bloomberght_dvr/live.m3u8 #EXTINF:-1 tvg-id="BloombergHT.tr",BloombergHT (720p) https://ciner-live.daioncdn.net/bloomberght/bloomberght.m3u8 #EXTINF:-1 tvg-id="BRTV.tr",BRTV (720p) [Geo-blocked] @@ -144,8 +140,6 @@ https://cdn-bursatv.yayin.com.tr/bursatv/bursatv/playlist.m3u8 https://win1.yayin.com.tr/bursatv/bursatv/playlist.m3u8 #EXTINF:-1 tvg-id="CanTV.tr",Can TV (720p) http://canbroadcast.com:7000/canlican/tv.m3u8 -#EXTINF:-1 tvg-id="CanTV.tr",Can TV (720p) -https://livetv.canbroadcast.com:7443/canlican/tv.m3u8 #EXTINF:-1 tvg-id="CayTV.tr",Cay TV (720p) [Not 24/7] http://stream2.taksimbilisim.com:1935/caytv/bant1/CAYTV.m3u8 #EXTINF:-1 tvg-id="CekmekoyTV.tr",Cekmekรถy TV (1080p) @@ -178,8 +172,6 @@ http://live.arkumedia.com:1935/dersim62tv/dersim62tv/playlist.m3u8 https://603c568fccdf5.streamlock.net/live/dhaweb1_C5efC/playlist.m3u8 #EXTINF:-1 tvg-id="DimTV.tr",DฤฐM TV (720p) [Geo-blocked] https://live.artidijitalmedya.com/artidijital_dimtv/dimtv/playlist.m3u8 -#EXTINF:-1 tvg-id="DisneyJr.tr",Disney Jr. (1080p) [Geo-blocked] -https://saran-live.ercdn.net/disneyjunior/index.m3u8 #EXTINF:-1 tvg-id="DiyanetTV.tr",Diyanet TV (1080p) http://185.234.111.229:8000/play/a05j #EXTINF:-1 tvg-id="DiyanetTV.tr",Diyanet TV (1080p) @@ -204,15 +196,15 @@ http://185.234.111.229:8000/play/a06a https://tv.digitalbox.xyz:19360/edessatv/edessatv.m3u8 #EXTINF:-1 tvg-id="EkinTurk.tr",Ekin Turk (576p) http://185.234.111.229:8000/play/a025 -#EXTINF:-1 tvg-id="Ekoturk.tr",Ekoturk (1080p) -http://185.234.111.229:8000/play/a00w #EXTINF:-1 tvg-id="Ekoturk.tr",Ekoturk https://ekoturk.blutv.com/blutv_ekoturk2/live.m3u8 +#EXTINF:-1 tvg-id="Ekoturk.tr",Ekoturk (1080p) +http://185.234.111.229:8000/play/a00w #EXTINF:-1 tvg-id="Ekoturk.tr",Ekotรผrk (720p) https://mn-nl.mncdn.com/blutv_ekoturk2/live.m3u8 #EXTINF:-1 tvg-id="ElmasTV.tr",Elmas TV (720p) [Not 24/7] https://5be5d840359c6.streamlock.net/elmas67tv/elmas67tv/chunklist.m3u8 -#EXTINF:-1 tvg-id="TvEM.tr@SD",Em TV (486p) +#EXTINF:-1 tvg-id="",Em TV (486p) https://cdn.yayin.com.tr/TVEM/TVEM/playlist.m3u8 #EXTINF:-1 tvg-id="ERTV.tr",Er TV (1080p) [Geo-blocked] https://live.artidijitalmedya.com/artidijital_ertv_new/ertv/playlist.m3u8 @@ -234,14 +226,10 @@ https://live.duhnet.tv/S2/HLS_LIVE/eurodnp/playlist.m3u8 http://185.234.111.229:8000/play/a01h #EXTINF:-1 tvg-id="EuroStar.tr",EuroStar TV (1080p) https://canlitvulusal.xyz/live/eurostar/index.m3u8 -#EXTINF:-1 tvg-id="FinansTurkTV.tr",Finans Turk TV (720p) -https://yayin30.haber100.com/live/finansturk/playlist.m3u8 #EXTINF:-1 tvg-id="FlashTV.tr",Flash TV (720p) https://mn-nl.mncdn.com/blutv_flashtv/live.m3u8 #EXTINF:-1 tvg-id="FortunaTV.tr",Fortuna TV https://edge1.socialsmart.tv/ftvturk/bant1/playlist.m3u8 -#EXTINF:-1 tvg-id="FX.tr",FX (1080p) [Geo-blocked] -https://saran-live.ercdn.net/fx/index.m3u8 #EXTINF:-1 tvg-id="GoncaTV.tr",Gonca TV (720p) https://edge1.socialsmart.tv/goncatv/bant1/playlist.m3u8 #EXTINF:-1 tvg-id="GrandCinema.tr",Grand Cinema @@ -262,14 +250,14 @@ https://mn-nl.mncdn.com/gzttv/gzttv/playlist.m3u8 https://cdn-haber61tv.yayin.com.tr/haber61tv/smil:haber61tv.smil/index.m3u8 #EXTINF:-1 tvg-id="Haber61TV.tr",Haber61 TV (720p) [Not 24/7] https://win8.yayin.com.tr/haber61tv/smil:haber61tv.smil/playlist.m3u8 +#EXTINF:-1 tvg-id="HaberGlobal.tr",Haber Global +https://haberglobaldvr.blutv.com/blutv_haberglobal_dvr/live.m3u8 #EXTINF:-1 tvg-id="HaberGlobal.tr",Haber Global (1080p) http://185.234.111.229:8000/play/a05x #EXTINF:-1 tvg-id="HaberGlobal.tr",Haber Global (720p) [Not 24/7] https://tv.ensonhaber.com/haberglobal/haberglobal.m3u8 #EXTINF:-1 tvg-id="HaberGlobal.tr",Haber Global (576p) http://185.234.111.229:8000/play/a05k -#EXTINF:-1 tvg-id="HaberGlobal.tr",Haber Global -https://haberglobaldvr.blutv.com/blutv_haberglobal_dvr/live.m3u8 #EXTINF:-1 tvg-id="HaberturkTV.tr",Habertรผrk TV (1080p) https://ciner-live.daioncdn.net/haberturktv/haberturktv.m3u8 #EXTINF:-1 tvg-id="HaberturkTV.tr",Habertรผrk TV (1080p) @@ -352,9 +340,9 @@ https://5be5d840359c6.streamlock.net/kanal34tv/kanal34tv/playlist.m3u8 https://vdo.digitalbox.xyz:3266/live/kanal34tvlive.m3u8 #EXTINF:-1 tvg-id="Kanal38.tr",Kanal 38 (540p) [Not 24/7] http://yayin3.canlitv.com:1935/live/kanal38/playlist.m3u8 -#EXTINF:-1 tvg-id="Kanal58.tr@SD",KANAL 58 (1080p) [Not 24/7] +#EXTINF:-1 tvg-id="",KANAL 58 (1080p) [Not 24/7] https://edge1.socialsmart.tv/kanal58/bant1/playlist.m3u8 -#EXTINF:-1 tvg-id="Kanal58.tr@SD",KANAL 58 (720p) [Not 24/7] +#EXTINF:-1 tvg-id="",KANAL 58 (720p) [Not 24/7] https://live.artidijitalmedya.com/artidijital_kanal58/kanal58/playlist.m3u8 #EXTINF:-1 tvg-id="Kanal58.tr",Kanal 58 (576p) http://185.234.111.229:8000/play/a053 @@ -422,8 +410,6 @@ https://krt.blutv.com/blutv_krt_live/live.m3u8 http://185.234.111.229:8000/play/a065 #EXTINF:-1 tvg-id="KudusTV.tr",Kudรผs TV (480p) [Geo-blocked] https://yayin.kudustv.com/981680400/kudustv/playlist.m3u8 -#EXTINF:-1 tvg-id="LalegulTV.tr",Lalegul TV (1080p) -https://lbl.netmedya.net/hls/lalegultv.m3u8 #EXTINF:-1 tvg-id="LalegulTV.tr",Lalegรผl TV (720p) [Not 24/7] http://lalegultv.netmedya.net/hls/lalegultv.m3u8 #EXTINF:-1 tvg-id="LalegulTV.tr",Lalegรผl TV (720p) [Not 24/7] @@ -440,8 +426,6 @@ http://185.234.111.229:8000/play/a04x https://live.artidijitalmedya.com/artidijital_mavikaradeniz/mavikaradeniz/playlist.m3u8 #EXTINF:-1 tvg-id="MaviKaradenizTV.tr",MaviKaradeniz TV (576p) http://185.234.111.229:8000/play/a04p -#EXTINF:-1 tvg-id="MedMuzik.tr",Med Muzik (1080p) -http://54.36.110.140/live3/live3.m3u8 #EXTINF:-1 tvg-id="MedMuzik.tr",Med Muzik (720p) https://med-musik.icdndhcp.com/live3/live3.m3u8 #EXTINF:-1 tvg-id="MekameleenTV.tr",Mekameleen TV (1080p) @@ -454,22 +438,16 @@ http://185.234.111.229:8000/play/a04k https://live.artidijitalmedya.com/artidijital_mercantv/mercantv/playlist.m3u8 #EXTINF:-1 tvg-id="MilyonTV.tr",Milyon TV (720p) https://sosyoapp-live.cdnnew.com/sosyo/buraya-bir-isim-verin.m3u8 -#EXTINF:-1 tvg-id="MinikaCocuk.tr",Minika Cocuk (480p) -https://tgn.bozztv.com/dvrfl05/gin-minikacocuk/index.m3u8 #EXTINF:-1 tvg-id="MinikaCocuk.tr",Minika Cocuk https://trkvz-live.daioncdn.net/minikago_cocuk/minikago_cocuk.m3u8 -#EXTINF:-1 tvg-id="MinikaGo.tr",Minika Go (480p) -https://tgn.bozztv.com/dvrfl05/gin-minikago/index.m3u8 +#EXTINF:-1 tvg-id="MinikaCocuk.tr",Minika Cocuk (480p) +https://tgn.bozztv.com/dvrfl05/gin-minikacocuk/index.m3u8 #EXTINF:-1 tvg-id="MinikaGo.tr",Minika Go https://trkvz-live.daioncdn.net/minikago/minikago.m3u8 +#EXTINF:-1 tvg-id="MinikaGo.tr",Minika Go (480p) +https://tgn.bozztv.com/dvrfl05/gin-minikago/index.m3u8 #EXTINF:-1 tvg-id="MTurkTV.tr",MTรผrk TV (1080p) https://edge1.socialsmart.tv/muglaturk/bant1/playlist.m3u8 -#EXTINF:-1 tvg-id="NationalGeographic.tr",National Geographic (1080p) [Geo-blocked] -https://saran-live.ercdn.net/natgeohd/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.tr",National Geographic Wild (1080p) [Geo-blocked] -https://saran-live.ercdn.net/natgeowild/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.tr",National Geographic Wild (720p) -https://tv.arectv29.sbs/live/natgeowild.m3u8 #EXTINF:-1 tvg-id="NationalGeographicWild.tr",National Geographic Wild https://tv.arectv13.sbs/live/natgeowild.m3u8 #EXTINF:-1 tvg-id="NaturalTV.tr",Natural TV (720p) [Not 24/7] @@ -575,14 +553,14 @@ https://canlitvulusal.xyz/live/showturk/index.m3u8 https://showturk.blutv.com/blutv_showturk2/live.m3u8 #EXTINF:-1 tvg-id="ShowTurk.tr",Show Tรผrk (720p) [Not 24/7] https://mn-nl.mncdn.com/blutv_showturk2/live.m3u8 -#EXTINF:-1 tvg-id="ShowTV.tr",Show TV (1080p) -https://ciner-live.daioncdn.net/showtv/showtv.m3u8 -#EXTINF:-1 tvg-id="ShowTV.tr",Show TV (720p) [Not 24/7] -https://tv.ensonhaber.com/tv/tr/showtv/index.m3u8 #EXTINF:-1 tvg-id="ShowTV.tr",Show TV http://nimplus3.bozztv.com/showtvturk/showtvturk/playlist.m3u8 #EXTINF:-1 tvg-id="ShowTV.tr",Show TV https://showtv.blutv.com/blutv_showtv_live/live.m3u8 +#EXTINF:-1 tvg-id="ShowTV.tr",Show TV (1080p) +https://ciner-live.daioncdn.net/showtv/showtv.m3u8 +#EXTINF:-1 tvg-id="ShowTV.tr",Show TV (720p) [Not 24/7] +https://tv.ensonhaber.com/tv/tr/showtv/index.m3u8 #EXTINF:-1 tvg-id="SinopYildizTV.tr",Sinop Yildiz TV (360p) https://s01.vpis.io/sinopyildiz/sinopyildiz.m3u8 #EXTINF:-1 tvg-id="SozcuTV.tr",Sozcu TV (1080p) @@ -611,10 +589,10 @@ https://live.artidijitalmedya.com/artidijital_tatlisestv/tatlisestv/playlist.m3u https://duhnet.hipodrom.com/S2/HLS_LIVE/mislitaynp/playlist.m3u8 #EXTINF:-1 tvg-id="TBMMTV.tr",TBMM TV (720p) https://meclistv-live.ercdn.net/meclistv/meclistv.m3u8 -#EXTINF:-1 tvg-id="TekRumeliTV.tr",Tek Rumeli TV (576p) -https://edge1.socialsmart.tv/tekrumelitv/bant1/playlist.m3u8 #EXTINF:-1 tvg-id="TekRumeliTV.tr",Tek Rumeli TV http://185.234.111.229:8000/play/a014 +#EXTINF:-1 tvg-id="TekRumeliTV.tr",Tek Rumeli TV (576p) +https://edge1.socialsmart.tv/tekrumelitv/bant1/playlist.m3u8 #EXTINF:-1 tvg-id="Tele1.tr",Tele 1 (1080p) http://185.234.111.229:8000/play/a01y #EXTINF:-1 tvg-id="Tele1.tr",Tele 1 (1080p) @@ -661,10 +639,10 @@ http://185.234.111.229:8000/play/a00c https://trt.daioncdn.net/trt-1/master.m3u8?app=web #EXTINF:-1 tvg-id="TRT1.tr",TRT 1 (1080p) https://tv-trt1.medya.trt.com.tr/master.m3u8 -#EXTINF:-1 tvg-id="TRT2.tr",TRT 2 (720p) -https://tv-trt2.medya.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRT2.tr",TRT 2 https://trt2.blutv.com/blutv_trt2/live.m3u8 +#EXTINF:-1 tvg-id="TRT2.tr",TRT 2 (720p) +https://tv-trt2.medya.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRT3.tr",TRT 3 https://tv-trt3.live.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRTArabi.tr",TRT Arabi (1080p) @@ -687,7 +665,7 @@ https://tv-trtdiyanetcocuk.medya.trt.com.tr/master.m3u8 https://tv-e-okul00.medya.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRTEBALise.tr",TRT EBA Lise (720p) https://tv-e-okul02.medya.trt.com.tr/master.m3u8 -#EXTINF:-1 tvg-id="TRTEBA.tr@SD",TRT EBA Ortaokul (720p) +#EXTINF:-1 tvg-id="",TRT EBA Ortaokul (720p) https://tv-e-okul01.medya.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRTHaber.tr",TRT Haber (1080p) http://185.234.111.229:8000/play/a00d @@ -707,10 +685,10 @@ http://185.234.111.229:8000/play/a00e https://tv-trtspor1.medya.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRTSporYildiz.tr",TRT Spor Yildiz (1080p) [Geo-blocked] https://tv-trtspor2.medya.trt.com.tr/master.m3u8 -#EXTINF:-1 tvg-id="TRTTurk.tr",TRT Turk (1080p) -http://185.234.111.229:8000/play/a00h #EXTINF:-1 tvg-id="TRTTurk.tr",TRT Turk https://trtturk.blutv.com/blutv_trtturk2/live.m3u8 +#EXTINF:-1 tvg-id="TRTTurk.tr",TRT Turk (1080p) +http://185.234.111.229:8000/play/a00h #EXTINF:-1 tvg-id="TRTTurk.tr",TRT Tรผrk (720p) https://tv-trtturk.medya.trt.com.tr/master.m3u8 #EXTINF:-1 tvg-id="TRTWorld.tr",TRT World (1080p) @@ -741,7 +719,7 @@ https://tv8.daioncdn.net/tv8/tv8.m3u8?app=7ddc255a-ef47-4e81-ab14-c0e5f2949788&c https://tv8-live.daioncdn.net/tv8/tv8.m3u8 #EXTINF:-1 tvg-id="TV85.tr",TV 8.5 (720p) http://bozztv.com/gin-dvrfl05/gin-tv8_5/index.m3u8 -#EXTINF:-1 tvg-id="TV8int.tr@SD",TV8 International (1080p) +#EXTINF:-1 tvg-id="",TV8 International (1080p) http://185.234.111.229:8000/play/a01x #EXTINF:-1 tvg-id="24TV.tr",TV 24 (720p) https://turkmedya-live.ercdn.net/tv24/tv24.m3u8 @@ -769,16 +747,14 @@ https://b01c02nl.mediatriple.net/videoonlylive/mtdxkkitgbrckilive/broadcast_5ee2 https://live.artidijitalmedya.com/artidijital_tva/tva/playlist.m3u8 #EXTINF:-1 tvg-id="TVDen.tr",TV Den (576p) [Not 24/7] http://canli.tvden.com.tr/hls/live.m3u8 -#EXTINF:-1 tvg-id="TvEM.tr@SD",TV Em (486p) +#EXTINF:-1 tvg-id="",TV Em (486p) https://cdn-tvem.yayin.com.tr/TVEM/TVEM/playlist.m3u8 -#EXTINF:-1 tvg-id="TvEM.tr@SD",TV Em (486p) +#EXTINF:-1 tvg-id="",TV Em (486p) https://cdn.yayin.com.tr/TVEM/TVEM/chunklist.m3u8 #EXTINF:-1 tvg-id="TVNET.tr",TVnet (720p) https://mn-nl.mncdn.com/tvnet/tvnet/playlist.m3u8 #EXTINF:-1 tvg-id="TYTTurk.tr",TYT Turk (720p) https://cdn4.yayin.com.tr/tytturk/index.m3u8 -#EXTINF:-1 tvg-id="TYTTurk.tr",TYT Turk -https://cdn-tytturk.yayin.com.tr/tytturk/index.m3u8 #EXTINF:-1 tvg-id="UcanKusTV.tr",UรงanKuลŸ TV (720p) https://ucankus-live.cdnnew.com/ucankus/ucankus.m3u8 #EXTINF:-1 tvg-id="UlkeTV.tr",รœlke TV (720p) @@ -820,3 +796,31 @@ https://cdn-yildiz.yayin.com.tr/yildiz/yildiz/playlist.m3u8 https://stream.yol.tv:9443/medialive/yol.m3u8 #EXTINF:-1 tvg-id="ZarokTV.tr",Zarok TV (720p) https://zindikurmanci.zaroktv.com.tr/hls/stream.m3u8 +#EXTINF:-1 tvg-id="TYTTurk.tr",TYT Turk +https://cdn-tytturk.yayin.com.tr/tytturk/index.m3u8 +#EXTINF:-1 tvg-id="MedMuzik.tr",Med Muzik (1080p) +http://54.36.110.140/live3/live3.m3u8 +#EXTINF:-1 tvg-id="DisneyJr.tr",Disney Jr. (1080p) [Geo-blocked] +https://saran-live.ercdn.net/disneyjunior/index.m3u8 +#EXTINF:-1 tvg-id="NationalGeographic.tr",National Geographic (1080p) [Geo-blocked] +https://saran-live.ercdn.net/natgeohd/index.m3u8 +#EXTINF:-1 tvg-id="LalegulTV.tr",Lalegul TV (1080p) +https://lbl.netmedya.net/hls/lalegultv.m3u8 +#EXTINF:-1 tvg-id="FX.tr",FX (1080p) [Geo-blocked] +https://saran-live.ercdn.net/fx/index.m3u8 +#EXTINF:-1 tvg-id="CanTV.tr",Can TV (720p) +https://livetv.canbroadcast.com:7443/canlican/tv.m3u8 +#EXTINF:-1 tvg-id="AltasTV.tr",Altas TV (1080p) +https://edge1.socialsmart.tv/altastv/bant1/playlist.m3u8 +#EXTINF:-1 tvg-id="FinansTurkTV.tr",Finans Turk TV (720p) +https://yayin30.haber100.com/live/finansturk/playlist.m3u8 +#EXTINF:-1 tvg-id="AfroturkTV.tr",Afroturk TV (1080p) +https://edge.socialsmart.tv/naturaltv/bant1/playlist.m3u8 +#EXTINF:-1 tvg-id="NationalGeographicWild.tr",National Geographic Wild (1080p) [Geo-blocked] +https://saran-live.ercdn.net/natgeowild/index.m3u8 +#EXTINF:-1 tvg-id="NationalGeographicWild.tr",National Geographic Wild (720p) +https://tv.arectv29.sbs/live/natgeowild.m3u8 +#EXTINF:-1 tvg-id="NOWTV.tr",NOW TV (720p) +https://uycyyuuzyh.turknet.ercdn.net/nphindgytw/nowtv/nowtv.m3u8 +#EXTINF:-1 tvg-id="Nickelodeon.tr@SD",Nickelodeon +http://fl1.moveonjoy.com/NICKELODEON/index.m3u8 diff --git a/streams/us.m3u b/streams/us.m3u index fdb648a82..e751dfb3e 100644 --- a/streams/us.m3u +++ b/streams/us.m3u @@ -43,10 +43,10 @@ https://castus-vod-dev.s3.amazonaws.com/vod_clients/akaku/live/ch1/video.m3u8 https://castus-vod-dev.s3.amazonaws.com/vod_clients/akaku/live/ch2/video.m3u8 #EXTINF:-1 tvg-id="Akaku55.us",Akaku 55 (Hawaii) (1080p) https://castus-vod-dev.s3.amazonaws.com/vod_clients/akaku/live/ch3/video.m3u8 -#EXTINF:-1 tvg-id="AKCTV.us",AKC TV (1080p) -https://broadcast.blivenyc.com/speed/broadcast/22/desktop-playlist.m3u8 #EXTINF:-1 tvg-id="AKCTV.us",AKC TV https://install.akctvcontrol.com/speed/broadcast/138/desktop-playlist.m3u8 +#EXTINF:-1 tvg-id="AKCTV.us",AKC TV (1080p) +https://broadcast.blivenyc.com/speed/broadcast/22/desktop-playlist.m3u8 #EXTINF:-1 tvg-id="AKCTVMeettheBreeds.us",AKC TV Meet The Breeds https://install.akctvcontrol.com/speed/broadcast/139/desktop-playlist.m3u8 #EXTINF:-1 tvg-id="AKCTVPuppies.us",AKC TV Puppies 24/7 @@ -105,10 +105,10 @@ https://streamer1.connectto.com/AMGA_WEB_1202/playlist.m3u8 https://hls.avang.live/hls/stream.m3u8 #EXTINF:-1 tvg-id="AWEEncore.us",AWE Encore (720p) [Geo-blocked] https://a-cdn.herringnetwork.com/affiliate/awee/playlist.m3u8 -#EXTINF:-1 tvg-id="AXSTVNOW.us",AXS TV NOW (1080p) -https://dikcfc9915kp8.cloudfront.net/hls/main.m3u8 #EXTINF:-1 tvg-id="AXSTVNOW.us",AXS TV NOW https://dikcfc9915kp8.cloudfront.net/hls/1080p/playlist.m3u8 +#EXTINF:-1 tvg-id="AXSTVNOW.us",AXS TV NOW (1080p) +https://dikcfc9915kp8.cloudfront.net/hls/main.m3u8 #EXTINF:-1 tvg-id="BabySharkTV.us",Baby Shark TV (720p) https://c0c65b821b3542c3a4dca92702f59944.mediatailor.us-east-1.amazonaws.com/v1/master/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BabySharkTV/playlist.m3u8 #EXTINF:-1 tvg-id="BanningCityTV.us",Banning CityTV (Banning CA) (1080p) @@ -131,7 +131,7 @@ http://media4.tripsmarter.com:1935/LiveTV/BTVHD/playlist.m3u8 https://5ed325193d4e1.streamlock.net:444/LiveTV/BTVHD/playlist.m3u8 #EXTINF:-1 tvg-id="BEKNews.us",BEK TV News (720p) https://cdn3.wowza.com/5/ZWQ1K2NYTmpFbGsr/BEK-WOWZA-1/smil:BEKPRIMEeast.smil/playlist.m3u8 -#EXTINF:-1 tvg-id="",BEK TV Sports West (720p) +#EXTINF:-1 tvg-id="BEKSportsWest.us",BEK TV Sports West (720p) https://cdn3.wowza.com/5/ZWQ1K2NYTmpFbGsr/BEK-WOWZA-1/smil:BEKPRIMEW.smil/playlist.m3u8 #EXTINF:-1 tvg-id="BetterHealthTV.us",Better Health TV (480p) https://tgn.bozztv.com/betterlife/betterhealth/betterhealth/index.m3u8 @@ -151,11 +151,11 @@ https://d7ec4f6950ed4c6d946e497bd44db7ef.mediatailor.us-east-1.amazonaws.com/v1/ https://bloomberg.com/media-manifest/streams/qt.m3u8 #EXTINF:-1 tvg-id="BloombergTV.us",Bloomberg TV US (720p) https://bloomberg.com/media-manifest/streams/us.m3u8 -#EXTINF:-1 tvg-id="BloombergTV.us@LiveEvent",Bloomberg TV US Live Event (720p) +#EXTINF:-1 tvg-id="BloombergTVLiveEvent.us",Bloomberg TV US Live Event (720p) https://bloomberg.com/media-manifest/streams/us-event.m3u8 -#EXTINF:-1 tvg-id="BloombergTV.us@PoliticsLiveEvent",Bloomberg TV US Politics Live Event (720p) +#EXTINF:-1 tvg-id="BloombergTVPoliticsLiveEvent.us",Bloomberg TV US Politics Live Event (720p) https://bloomberg.com/media-manifest/streams/politics.m3u8 -#EXTINF:-1 tvg-id="BloombergTV.us@Plus",Bloomberg TV+ (1080p) +#EXTINF:-1 tvg-id="BloombergTVPlus.us",Bloomberg TV+ (1080p) https://bloomberg.com/media-manifest/streams/phoenix-us.m3u8 #EXTINF:-1 tvg-id="BATVGovernmentTV.us",Bloomfield Access Government TV (480p) https://reflect-batv.cablecast.tv/live-3/live/live.m3u8 @@ -303,15 +303,15 @@ https://livecdn.live247stream.com/eternallife/tv/playlist.m3u8 https://qvc-amd-live.akamaized.net/hls/live/2034113/lsqvc6us/master.m3u8 #EXTINF:-1 tvg-id="EVTVMiami.us",EVTV Miami (720p) [Not 24/7] https://streannliveevtv.cachefly.net/Protected/sp=1;dirmatch=true/3be25dc13406bf70ff0208230e6fa803b88b95013fad257c025e481e2be3e214/evtv1/evtv1/playlist.m3u8 -#EXTINF:-1 tvg-id="EWTN.us@AfricaAsia",EWTN Africa Asia (720p) +#EXTINF:-1 tvg-id="EWTNAfricaAsia.us",EWTN Africa Asia (720p) https://cdn3.wowza.com/1/ZVBYYXFLLzE0c3NC/Qk1FMURC/hls/live/playlist.m3u8 -#EXTINF:-1 tvg-id="EWTN.us@AsiaPacific",EWTN Asia-Pacific (720p) [Not 24/7] +#EXTINF:-1 tvg-id="EWTNAsiaPacific.us",EWTN Asia-Pacific (720p) [Not 24/7] https://cdn3.wowza.com/1/QmVNUVhTNTZSS3Uz/YWQ0aHpi/hls/live/playlist.m3u8 -#EXTINF:-1 tvg-id="",EWTN el Canal Catรณlico (720p) [Not 24/7] +#EXTINF:-1 tvg-id="EWTNEspanaLatinAmerica.us",EWTN el Canal Catรณlico (720p) [Not 24/7] https://cdn3.wowza.com/1/SmVrQmZCUXZhVDgz/b3J3MFJv/hls/live/playlist.m3u8 -#EXTINF:-1 tvg-id="EWTN.us@UnitedStates",EWTN Estados Unidos (Spanish) (720p) +#EXTINF:-1 tvg-id="EWTNEstadosUnidos.us",EWTN Estados Unidos (Spanish) (720p) https://cdn3.wowza.com/1/TUI5dU5ucnUxdGFD/ZFlVeGRl/hls/live/playlist.m3u8 -#EXTINF:-1 tvg-id="EWTN.us@Europe",EWTN Europe (720p) [Not 24/7] +#EXTINF:-1 tvg-id="EWTNEurope.us",EWTN Europe (720p) [Not 24/7] https://cdn3.wowza.com/1/T2NXeHF6UGlGbHY3/WFluRldQ/hls/live/playlist.m3u8 #EXTINF:-1 tvg-id="EWTN.us",EWTN United States (720p) https://cdn3.wowza.com/1/QjRzVXJtVml5SUVx/WGJRSWxz/hls/live/playlist.m3u8 @@ -365,7 +365,7 @@ https://6f972d29.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdX https://go2thls.wns.live/hls/stream.m3u8 #EXTINF:-1 tvg-id="",Golden Boy https://goldenboy.duckhunting.playout.vju.tv/DuckhuntingTV_GoldenBoy/main.m3u8 -#EXTINF:-1 tvg-id="",Golden TV (240p) [Not 24/7] +#EXTINF:-1 tvg-id="GoldenPanregional.mx",Golden TV (240p) [Not 24/7] https://bozztv.com/gusa/gusa-goldentv/index.m3u8 #EXTINF:-1 tvg-id="GoodLife45.us",GoodLife 45 (720p) [Not 24/7] https://2-fss-2.streamhoster.com/pl_118/201450-1248872-1/playlist.m3u8 @@ -401,7 +401,7 @@ https://jstre.am/live/jsl:0sUSK6VA7GT.m3u8 https://qvc-amd-live.akamaized.net/hls/live/2034113/lshsn1us/master.m3u8 #EXTINF:-1 tvg-id="HSN2.us",HSN2 https://qvc-amd-live.akamaized.net/hls/live/2034113/lshsn2us/master.m3u8 -#EXTINF:-1 tvg-id="HSN.us@West",HSN West +#EXTINF:-1 tvg-id="HSNWest.us",HSN West https://qvc-amd-live.akamaized.net/hls/live/2034113/lshsn1uswest/master.m3u8 #EXTINF:-1 tvg-id="HumraazTV.us",Humraaz TV [Not 24/7] https://cdn61.liveonlineservices.com/hls/humraaz.m3u8 @@ -417,7 +417,7 @@ https://freespeech.akamaized.net/hls/live/2024573/live2/playlist.m3u8 https://freespeech.akamaized.net/hls/live/2016873/live3/playlist.m3u8 #EXTINF:-1 tvg-id="",InfoWars War Room With Owen Shroyer (1080p) https://freespeech.akamaized.net/hls/live/2024574/live4/playlist.m3u8 -#EXTINF:-1 tvg-id="IraneFardaTV.uk@SD",IraneFarda TV (576p) +#EXTINF:-1 tvg-id="",IraneFarda TV (576p) https://hls.iranfarda.live/hls/stream.m3u8 #EXTINF:-1 tvg-id="ItsSupernaturalNetwork.us",It's Supernatural! Network (ISN Network) (1080p) https://content.uplynk.com/channel/fbc0f835332e476397b12216f9042f78.m3u8 @@ -431,7 +431,7 @@ https://uni8rtmp.tulix.tv/shalomtv-pc/smil:shalomtv.smil/master.m3u8 https://app.viloud.tv/hls/channel/07c8b76fa3a98409d527cede85852d55.m3u8 #EXTINF:-1 tvg-id="JewelryTV.us",Jewelry Television (720p) https://content.jwplatform.com/live/broadcast/oe7UD7Ag.m3u8 -#EXTINF:-1 tvg-id="JewelryTV.us@Spanish",Jewelry Television Espanol (720p) +#EXTINF:-1 tvg-id="",Jewelry Television Espanol (720p) https://82934cf9c8696bd2.mediapackage.us-east-1.amazonaws.com/out/v1/72b5a55e4c35445f9e742871aa0aefa2/index.m3u8 #EXTINF:-1 tvg-id="JewelryTV2.us",Jewelry TV 2 (720p) https://content.jwplatform.com/live/broadcast/RW3cCwlw.m3u8 @@ -489,8 +489,6 @@ https://streamyes.alsolnet.com/quebuenaatlanta/live/index.m3u8 https://linear-344.frequency.stream/dist/vix/344/hls/master/playlist.m3u8 #EXTINF:-1 tvg-id="LacrosseTV.us",Lacrosse TV (720p) https://1840769862.rsc.cdn77.org/FTF/LSN_SCTE.m3u8 -#EXTINF:-1 tvg-id="Laff.us",Laff (480p) -http://72.46.118.193/Laff/index.m3u8 #EXTINF:-1 tvg-id="LaoThaiTV.us",Lao-Thai TV (720p) https://livefta.malimarcdn.com/ftaedge00/laothaius.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="LatinZone.us",Latin Zone TV (720p) @@ -529,17 +527,17 @@ https://5a8308add0b31.streamlock.net/logoschannel.com/logostv.smil/playlist.m3u8 https://597f64b67707a.streamlock.net/logoschannel.com/logostv.smil/playlist.m3u8 #EXTINF:-1 tvg-id="LogosTVEnglish.us",Logos TV English (1080p) [Not 24/7] https://5aafcc5de91f1.streamlock.net/logoschannel.com/logoseng/playlist.m3u8 -#EXTINF:-1 tvg-id="",Lone Star Network (720p) +#EXTINF:-1 tvg-id="LoneStarNetwork.us",Lone Star Network (720p) https://6b88cde9.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0xvbmVTdGFyX0hMUw/ec788187-7d6a-4887-aeb7-cbe7214a3dc7/2.m3u8 #EXTINF:-1 tvg-id="Loupe4K.us",Loupe 4K (2160p) https://d2dw21aq0j0l5c.cloudfront.net/playlist.m3u8 -#EXTINF:-1 tvg-id="LoveWorldUSA.ng@SD",LoveWorld USA (720p) +#EXTINF:-1 tvg-id="",LoveWorld USA (720p) https://cdn3.wowza.com/5/RGtVZkFxL3FOQkxX/LWU/ngrp:lwu.stream_all/playlist.m3u8 #EXTINF:-1 tvg-id="MadDogandMerrill.us",Mad Dog and Merrill (540p) [Not 24/7] https://bozztv.com/gusa/gusa-mwg/index.m3u8 #EXTINF:-1 tvg-id="MajestadTV.us",Majestad Televisiรณn (480p) [Not 24/7] https://livetv.305streamhd.com:3667/live/majestadtvlive.m3u8 -#EXTINF:-1 tvg-id="MAVTVSelect.us@Canada",MAV Select CANADA +#EXTINF:-1 tvg-id="",MAV Select CANADA https://d70mb4nkspm3g.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-vvwqo3j029lz0/playlist.m3u8 #EXTINF:-1 tvg-id="MAVTVSelect.us",MAV Select USA https://d3h07n6l1exhds.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-0z2yyo4dxctc7/playlist.m3u8 @@ -611,21 +609,21 @@ https://content.uplynk.com/channel/1f93c13275024afb9e0ead299624073d.m3u8 https://content.uplynk.com/channel/4bb4901b934c4e029fd4c1abfc766c37.m3u8 #EXTINF:-1 tvg-id="NickPlutoTV.us",Nick Pluto TV (720p) https://jmp2.uk/plu-62bdb6a83c6e37000726823b.m3u8 -#EXTINF:-1 tvg-id="Nicktoons.us@East",NickToons (720p) +#EXTINF:-1 tvg-id="NicktoonsEast.us",NickToons (720p) http://143.244.60.30/NICKTOONS/index.m3u8 -#EXTINF:-1 tvg-id="PlutoTVNovelas.us@SD",Novelas +#EXTINF:-1 tvg-id="",Novelas https://dai.google.com/linear/hls/event/4VaHBXfJSYihkeo7w_T0Qw/master.m3u8 #EXTINF:-1 tvg-id="Novelisima.us",Novelisima https://dai.google.com/linear/hls/event/sFuxwI37R9KMTs-KywMcBg/master.m3u8 #EXTINF:-1 tvg-id="NRBTV.us",NRB TV (480p) https://uni6rtmp.tulix.tv/nrbnetwork/myStream.sdp/playlist.m3u8 -#EXTINF:-1 tvg-id="NTDTV.us@East",NTD TV (New Tang Dynasty Television) +#EXTINF:-1 tvg-id="NTDTVEast.us",NTD TV (New Tang Dynasty Television) http://cnhls.ntdtv.com/cn/live400/playlist.m3u8 -#EXTINF:-1 tvg-id="NTDTV.us@East",NTD TV East (New Tang Dynasty Television) +#EXTINF:-1 tvg-id="NTDTVEast.us",NTD TV East (New Tang Dynasty Television) https://ntd02.akamaized.net/NTDA/index.m3u8 -#EXTINF:-1 tvg-id="NTDTV.us@UK",NTD TV UK (New Tang Dynasty Television) +#EXTINF:-1 tvg-id="",NTD TV UK (New Tang Dynasty Television) https://ntd02.akamaized.net/NTD-UK/index.m3u8 -#EXTINF:-1 tvg-id="NTDTV.us@West",NTD TV West (New Tang Dynasty Television) +#EXTINF:-1 tvg-id="NTDTVWest.us",NTD TV West (New Tang Dynasty Television) https://ntd02.akamaized.net/NTD-West/index.m3u8 #EXTINF:-1 tvg-id="KBPXLD3.us",Nudu https://d1p0bzoad08w6e.cloudfront.net/encode/nudu.m3u8 @@ -665,7 +663,7 @@ https://qvc-amd-live.akamaized.net/hls/live/2034113/lsqvc1us/master.m3u8 https://qvc-amd-live.akamaized.net/hls/live/2034113/lsqvc2us/master.m3u8 #EXTINF:-1 tvg-id="QVC3.us",QVC 3 (1080p) https://qvc-amd-live.akamaized.net/hls/live/2034113/lsqvc3us/master.m3u8 -#EXTINF:-1 tvg-id="QVC.us@West",QVC West +#EXTINF:-1 tvg-id="",QVC West https://qvc-amd-live.akamaized.net/hls/live/2034113/lsqvc1uswest/master.m3u8 #EXTINF:-1 tvg-id="RJTV.us",Radio Javan TV (1080p) http://74.115.215.41/live/smil:rjtv.smil/playlist.m3u8 @@ -731,7 +729,7 @@ https://rakutenaa-tm-intl-aus-rakuten-eu-n1gtg.amagi.tv/playlist/rakutenAA-tm-in https://tastemadessai.akamaized.net/amagi_hls_data_tastemade-tastemade/CDN/playlist.m3u8 #EXTINF:-1 tvg-id="TBD.us",TBD (1080p) https://fast-channels.sinclairstoryline.com/TBD/index.m3u8 -#EXTINF:-1 tvg-id="TBN.us@East",TBN East (720p) +#EXTINF:-1 tvg-id="TBNEast.us",TBN East (720p) https://d7ge95bb03xsu.cloudfront.net/out/v1/0c95a89614194912834019fc37d741ef/tbn-freecast.m3u8 #EXTINF:-1 tvg-id="TBNPacific.us",TBN Pacific https://broadcast.tbnpacific.org.au:4430/stream/TBNPacificTV/playlist.m3u8 @@ -745,7 +743,7 @@ https://tv2.fastcast4u.com:3238/live/radiotelebostonlive.m3u8 https://content.uplynk.com/channel/b6a96ed39d694ae1b738faa98cf7dd3f.m3u8 #EXTINF:-1 tvg-id="TelemundoInternacional.us",Telemundo Internacional (480p) http://190.2.212.209:8050/play/a0oa -#EXTINF:-1 tvg-id="Telemundo.us@West",Telemundo West (720p) +#EXTINF:-1 tvg-id="TelemundoWest.us",Telemundo West (720p) https://content.uplynk.com/channel/b6a96ed39d694ae1b738faa98cf7dd3f.m3u8?delay=10800 #EXTINF:-1 tvg-id="TennisChannel.us",Tennis Channel (1080p) https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01444-tennischannelth-tennischnlintl-lggb/playlist.m3u8 @@ -759,7 +757,7 @@ https://stream-us-east-1.getpublica.com/playlist.m3u8?network_id=74 https://cf-live29e5f8c.lwcdn.com/live/fallback/014dc067-4922-4168-bdcd-5278589269ed/playlist.m3u8 #EXTINF:-1 tvg-id="TheCountryNetwork.us",The Country Network (1080p) https://amg00600-amg00600c1-thecountrynetwork-us-5497.playouts.now.amagi.tv/playlist.m3u8 -#EXTINF:-1 tvg-id="TheCyclingChannel.at@SD",The Cycling Channel +#EXTINF:-1 tvg-id="",The Cycling Channel https://cyclingtv.playout.vju.tv/cyclingtv/main.m3u8 #EXTINF:-1 tvg-id="TheDesignNetwork.us",The Design Network (1080p) https://amg00441-amg00441c1-rakuten-us-6050.playouts.now.amagi.tv/playlist/amg00441-thedesignnetworkllcfast-thedesignnetwork-rakutenus/playlist.m3u8 @@ -799,7 +797,7 @@ https://d3mwqwqfak7y2q.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68 https://todayhls.wns.live/hls/stream.m3u8 #EXTINF:-1 tvg-id="ToonGoggles.us",Toon Goggles (720p) https://stream-us-east-1.getpublica.com/playlist.m3u8?network_id=37 -#EXTINF:-1 tvg-id="ToonamiAftermath.us@East",Toonami Aftermath East (480p) +#EXTINF:-1 tvg-id="ToonamiAftermathEast.us",Toonami Aftermath East (480p) http://api.toonamiaftermath.com:3000/est/playlist.m3u8 #EXTINF:-1 tvg-id="",Toonami Aftermath Movies (540p) http://api.toonamiaftermath.com:3000/movies/playlist.m3u8 @@ -815,10 +813,10 @@ https://app.viloud.tv/hls/channel/0d984388834adac967a4ec4e69bc8271.m3u8 https://server80.servistreaming.com:3074/hybrid/play.m3u8 #EXTINF:-1 tvg-id="TSTV.us",TSTV (720p) https://tstv-stream.tsm.utexas.edu/hls/livestream_hi/index.m3u8 -#EXTINF:-1 tvg-id="TUDN.us",TUDN (1080p) -https://tkx.mp.lura.live/rest/v2/mcp/video/adstkZj0NvKqzB6e?anvack=NVQrq6a3oZfdBzkefWT1rvdRCoj9XOyx&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJOVlFycTZhM29aZmRCemtlZldUMXJ2ZFJDb2o5WE95eCIsImV4cCI6MTY1NjE5ODE4NSwiYWRfcGFycyI6eyJkZnAiOnsiaXVfdmFsdWVfZnJvbV9wYWdlIjoiL3VuZGVmaW5lZC9yZC51bml2aXNpb25fdmlkZW9fZGVwb3J0ZXMvZGFpIiwidXJsIjoiaHR0cHM6Ly93d3cudHVkbi5jb20vdHVkbi1saXZlc3RyZWFtLTI0LTciLCJwbGF5ZXJfd2lkdGgiOiI3NTMiLCJwbGF5ZXJfaGVpZ2h0IjoiNDI0IiwicHAiOiJEZXNrdG9wQml0UmF0ZXMiLCJtdnBkIjoidGVtcF9wYXNzIn19LCJ2aWQiOiJhZHN0a1pqME52S3F6QjZlIiwidXNlcl9wYXJzIjp7InByZWZlcnJlZF9jZG4iOnsibmFtZSI6ImFrYW1haSIsImZvcmNlIjp0cnVlfX19.Y9JMF-b_SUsCZ3WMkjU1cmNkiHvT7lmvYLsVbCx-Dhg #EXTINF:-1 tvg-id="TUDN.us",TUDN https://dai.google.com/linear/hls/event/LKaz-eTgQvawHshATl-Qdw/master.m3u8 +#EXTINF:-1 tvg-id="TUDN.us",TUDN (1080p) +https://tkx.mp.lura.live/rest/v2/mcp/video/adstkZj0NvKqzB6e?anvack=NVQrq6a3oZfdBzkefWT1rvdRCoj9XOyx&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJOVlFycTZhM29aZmRCemtlZldUMXJ2ZFJDb2o5WE95eCIsImV4cCI6MTY1NjE5ODE4NSwiYWRfcGFycyI6eyJkZnAiOnsiaXVfdmFsdWVfZnJvbV9wYWdlIjoiL3VuZGVmaW5lZC9yZC51bml2aXNpb25fdmlkZW9fZGVwb3J0ZXMvZGFpIiwidXJsIjoiaHR0cHM6Ly93d3cudHVkbi5jb20vdHVkbi1saXZlc3RyZWFtLTI0LTciLCJwbGF5ZXJfd2lkdGgiOiI3NTMiLCJwbGF5ZXJfaGVpZ2h0IjoiNDI0IiwicHAiOiJEZXNrdG9wQml0UmF0ZXMiLCJtdnBkIjoidGVtcF9wYXNzIn19LCJ2aWQiOiJhZHN0a1pqME52S3F6QjZlIiwidXNlcl9wYXJzIjp7InByZWZlcnJlZF9jZG4iOnsibmFtZSI6ImFrYW1haSIsImZvcmNlIjp0cnVlfX19.Y9JMF-b_SUsCZ3WMkjU1cmNkiHvT7lmvYLsVbCx-Dhg #EXTINF:-1 tvg-id="TUTV.us",TUTV https://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="TVSBowlingNetwork.us",TVS Bowling Network (720p) @@ -1010,3 +1008,15 @@ https://fastmedia-yu-gi-oh-1-gb.xiaomi.wurl.tv/playlist.m3u8 #EXTINF:-1 tvg-id="ZoomNews.us" http-referrer="https://zoomnews.info/",Zoom TV Kurdish (720p) #EXTVLCOPT:http-referrer=https://zoomnews.info/ https://live.zoomnews.info/live/Zoom_playlist.m3u8 +#EXTINF:-1 tvg-id="Laff.us",Laff (480p) +http://72.46.118.193/Laff/index.m3u8 +#EXTINF:-1 tvg-id="History2LatinAmerica.us",History 2 Latin America +https://cors-proxy.cooks.fyi/https://streamer1.nexgen.bz/HISTORY2/index.m3u8 +#EXTINF:-1 tvg-id="DidgahTV.us",Didgah TV (576p) +https://media.streambrothers.com:1936/8276/8276/playlist.m3u8 +#EXTINF:-1 tvg-id="TinTV.us",Tin TV (720p) +https://tulixcdn.akamaized.net/tintv6/tintv/tintv/playlist.m3u8 +#EXTINF:-1 tvg-id="RJTV.us",RJTV (720p) +https://rjtvhls.wns.live/hls/stream.m3u8 +#EXTINF:-1 tvg-id="PBCTapeshTV.us",PBC Tapesh TV (480p) +https://iptv.tapesh.tv/tapesh/playlist_mid/index.m3u8 diff --git a/streams/us_moveonjoy.m3u b/streams/us_moveonjoy.m3u index 6b5d8d7c3..832a4a8e3 100644 --- a/streams/us_moveonjoy.m3u +++ b/streams/us_moveonjoy.m3u @@ -3,19 +3,19 @@ http://fl1.moveonjoy.com/ABC_EAST/index.m3u8 #EXTINF:-1 tvg-id="ACCNetwork.us",ACCN (720p) http://fl2.moveonjoy.com/ACC_NETWORK/index.m3u8 -#EXTINF:-1 tvg-id="AMC.us@East",AMC East (1080p) +#EXTINF:-1 tvg-id="AMCEast.us",AMC East (1080p) http://fl5.moveonjoy.com/AMC_NETWORK/index.m3u8 #EXTINF:-1 tvg-id="Aspire.us",Aspire http://fl3.moveonjoy.com/Aspire/index.m3u8 -#EXTINF:-1 tvg-id="BBCAmerica.us@East",BBC America East +#EXTINF:-1 tvg-id="BBCAmericaEast.us",BBC America East http://fl2.moveonjoy.com/BBC_AMERICA/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk@NorthAmerica",BBC News North America +#EXTINF:-1 tvg-id="BBCNewsNorthAmerica.uk",BBC News North America http://fl2.moveonjoy.com/BBC_WORLD_NEWS/index.m3u8 -#EXTINF:-1 tvg-id="BET.us@East",BET East +#EXTINF:-1 tvg-id="BETEast.us",BET East http://fl2.moveonjoy.com/BET_EAST/index.m3u8 #EXTINF:-1 tvg-id="BETGospel.us",BET Gospel http://fl2.moveonjoy.com/BET_GOSPEL/index.m3u8 -#EXTINF:-1 tvg-id="BETHer.us@East",BET Her East +#EXTINF:-1 tvg-id="BETHerEast.us",BET Her East http://fl2.moveonjoy.com/BET_HER/index.m3u8 #EXTINF:-1 tvg-id="BETJams.us",BET Jams http://fl3.moveonjoy.com/BET_Jams/index.m3u8 @@ -27,25 +27,25 @@ http://fl3.moveonjoy.com/BIG_TEN_NETWORK/index.m3u8 http://fl2.moveonjoy.com/BLOOMBERG/index.m3u8 #EXTINF:-1 tvg-id="Bounce.us",Bounce http://fl3.moveonjoy.com/BOUNCE_TV/index.m3u8 -#EXTINF:-1 tvg-id="Bravo.us@East",Bravo East +#EXTINF:-1 tvg-id="BravoEast.us",Bravo East http://fl2.moveonjoy.com/BRAVO/index.m3u8 #EXTINF:-1 tvg-id="Buzzr.us",Buzzr http://fl3.moveonjoy.com/Buzzr/index.m3u8 #EXTINF:-1 tvg-id="CSPAN.us",C-SPAN http://fl2.moveonjoy.com/C-SPAN/index.m3u8 -#EXTINF:-1 tvg-id="CBS.us@East",CBS East (720p) +#EXTINF:-1 tvg-id="CBSEast.us",CBS East (720p) http://fl3.moveonjoy.com/CBS_News/index.m3u8 #EXTINF:-1 tvg-id="CBSSportsNetworkUSA.us",CBS Sports Network USA http://fl2.moveonjoy.com/CBS_SPORTS_NETWORK/index.m3u8 #EXTINF:-1 tvg-id="CleoTV.us",Cleo TV (720p) http://fl3.moveonjoy.com/Cleo_TV/index.m3u8 -#EXTINF:-1 tvg-id="CMT.us@East",CMT East +#EXTINF:-1 tvg-id="CMTEast.us",CMT East http://fl3.moveonjoy.com/CMT/index.m3u8 #EXTINF:-1 tvg-id="CNBC.us",CNBC http://fl2.moveonjoy.com/CNBC/index.m3u8 #EXTINF:-1 tvg-id="CNBC.us",CNBC http://fl5.moveonjoy.com/CNBC/index.m3u8 -#EXTINF:-1 tvg-id="ComedyCentral.us@East",Comedy Central East (720p) +#EXTINF:-1 tvg-id="ComedyCentralEast.us",Comedy Central East (720p) http://fl3.moveonjoy.com/Comedy_Central/index.m3u8 #EXTINF:-1 tvg-id="Comet.us",Comet (720p) http://fl3.moveonjoy.com/COMET/index.m3u8 @@ -63,11 +63,11 @@ http://fl3.moveonjoy.com/CRAVE_3/index.m3u8 http://fl2.moveonjoy.com/CRAVE_4/index.m3u8 #EXTINF:-1 tvg-id="CuriosityStream.us",CuriosityStream (720p) http://fl3.moveonjoy.com/Curiosity_Stream/index.m3u8 -#EXTINF:-1 tvg-id="DisneyJunior.us@East",Disney Junior East +#EXTINF:-1 tvg-id="DisneyJuniorEast.us",Disney Junior East http://fl2.moveonjoy.com/DISNEY_JR/index.m3u8 -#EXTINF:-1 tvg-id="DisneyXD.us@West",Disney XD West (720p) +#EXTINF:-1 tvg-id="DisneyXDWest.us",Disney XD West (720p) http://fl2.moveonjoy.com/DISNEY_XD/index.m3u8 -#EXTINF:-1 tvg-id="E.us@East",E! East +#EXTINF:-1 tvg-id="EEast.us",E! East http://fl2.moveonjoy.com/E_ENTERTAINMENT_TELEVISION/index.m3u8 #EXTINF:-1 tvg-id="ESPNU.us",ESPN U (720p) http://fl2.moveonjoy.com/ESPN_U/index.m3u8 @@ -77,19 +77,19 @@ http://fl2.moveonjoy.com/ESPN_NEWS/index.m3u8 http://fl2.moveonjoy.com/FOX_Business_Network/index.m3u8 #EXTINF:-1 tvg-id="FoxSoul.us",Fox Soul http://fl1.moveonjoy.com/FOX_SOUL/index.m3u8 -#EXTINF:-1 tvg-id="FoxSports1.cl@SD",Fox Sports 1 +#EXTINF:-1 tvg-id="FoxSports1.us",Fox Sports 1 http://fl2.moveonjoy.com/FOX_Sports_1/index.m3u8 -#EXTINF:-1 tvg-id="Freeform.us@East",Free form East +#EXTINF:-1 tvg-id="FreeformEast.us",Free form East http://fl2.moveonjoy.com/FREE_FORM/index.m3u8 -#EXTINF:-1 tvg-id="Fuse.us@East",Fuse East (720p) +#EXTINF:-1 tvg-id="FuseEast.us",Fuse East (720p) http://fl2.moveonjoy.com/FUSE/index.m3u8 -#EXTINF:-1 tvg-id="FX.us@East",FX East +#EXTINF:-1 tvg-id="FXEast.us",FX East http://fl2.moveonjoy.com/FX/index.m3u8 -#EXTINF:-1 tvg-id="FXM.us@East",FXM East +#EXTINF:-1 tvg-id="FXMEast.us",FXM East http://fl2.moveonjoy.com/FX_MOVIE/index.m3u8 -#EXTINF:-1 tvg-id="FXX.us@East",FXX East +#EXTINF:-1 tvg-id="FXXEast.us",FXX East http://fl2.moveonjoy.com/FXX/index.m3u8 -#EXTINF:-1 tvg-id="FYI.us@East",FYI East +#EXTINF:-1 tvg-id="FYIEast.us",FYI East http://fl2.moveonjoy.com/FYI/index.m3u8 #EXTINF:-1 tvg-id="GetTV.us",GetTV (480p) http://fl2.moveonjoy.com/GET_TV/index.m3u8 @@ -97,31 +97,31 @@ http://fl2.moveonjoy.com/GET_TV/index.m3u8 http://fl2.moveonjoy.com/GOLF_CHANNEL/index.m3u8 #EXTINF:-1 tvg-id="Grit.us",Grit http://fl2.moveonjoy.com/GRIT_TV/index.m3u8 -#EXTINF:-1 tvg-id="HallmarkChannel.us@East",Hallmark Channel East +#EXTINF:-1 tvg-id="HallmarkChannelEast.us",Hallmark Channel East http://fl2.moveonjoy.com/HALLMARK_CHANNEL/index.m3u8 #EXTINF:-1 tvg-id="HallmarkDrama.us",Hallmark Drama (720p) http://fl2.moveonjoy.com/HALLMARK_DRAMA/index.m3u8 -#EXTINF:-1 tvg-id="HallmarkMoviesMysteries.us@East",Hallmark Movies Mysteries East +#EXTINF:-1 tvg-id="HallmarkMoviesMysteriesEast.us",Hallmark Movies Mysteries East http://fl2.moveonjoy.com/HALLMARK_MOVIES_MYSTERIES/index.m3u8 #EXTINF:-1 tvg-id="HSN.us",HSN http://fl2.moveonjoy.com/HSN/index.m3u8 #EXTINF:-1 tvg-id="INSP.us",INSP http://fl2.moveonjoy.com/INSP/index.m3u8 -#EXTINF:-1 tvg-id="IONPlus.us@East",ION Plus East (720p) +#EXTINF:-1 tvg-id="IONPlusEast.us",ION Plus East (720p) http://fl3.moveonjoy.com/ION_Plus/index.m3u8 -#EXTINF:-1 tvg-id="IONTV.us@East",ION TV East +#EXTINF:-1 tvg-id="IONTVEast.us",ION TV East http://fl2.moveonjoy.com/ION_TV/index.m3u8 #EXTINF:-1 tvg-id="KSATDT2.us",KSAT-DT2 (720p) http://fl2.moveonjoy.com/ME_TV/index.m3u8 -#EXTINF:-1 tvg-id="Lifetime.us@East",Lifetime East +#EXTINF:-1 tvg-id="LifetimeEast.us",Lifetime East http://fl2.moveonjoy.com/LIFETIME/index.m3u8 -#EXTINF:-1 tvg-id="LifetimeMovies.us@East",Lifetime Movies East +#EXTINF:-1 tvg-id="LifetimeMoviesEast.us",Lifetime Movies East http://fl2.moveonjoy.com/LIFETIME_MOVIE_NETWORK/index.m3u8 #EXTINF:-1 tvg-id="LoveNature.ca",Love Nature http://fl1.moveonjoy.com/LOVE_NATURE/index.m3u8 #EXTINF:-1 tvg-id="MAVTV.us",MAV TV (720p) http://fl2.moveonjoy.com/MAV_TV/index.m3u8 -#EXTINF:-1 tvg-id="MGMPlus.us@East",MGM+ East +#EXTINF:-1 tvg-id="MGMPlusEast.us",MGM+ East http://fl2.moveonjoy.com/EPIX/index.m3u8 #EXTINF:-1 tvg-id="MGMPlusMarquee.us",MGM+ Marquee http://fl2.moveonjoy.com/EPIX_DRIVE_IN/index.m3u8 @@ -129,29 +129,29 @@ http://fl2.moveonjoy.com/EPIX_DRIVE_IN/index.m3u8 http://fl2.moveonjoy.com/MLB_NETWORK/index.m3u8 #EXTINF:-1 tvg-id="MSG.us",MSG http://fl3.moveonjoy.com/MSG/index.m3u8 -#EXTINF:-1 tvg-id="MTV2.us@East",MTV2 (720p) +#EXTINF:-1 tvg-id="MTV2East.us",MTV2 (720p) https://fl5.moveonjoy.com/MTV_2/index.m3u8 -#EXTINF:-1 tvg-id="MTV2.us@East",MTV2 East +#EXTINF:-1 tvg-id="MTV2East.us",MTV2 East http://fl2.moveonjoy.com/MTV_2/index.m3u8 -#EXTINF:-1 tvg-id="MTVClassic.us@East",MTV Classic (360p) +#EXTINF:-1 tvg-id="MTVClassicEast.us",MTV Classic (360p) https://fl5.moveonjoy.com/MTV_CLASSIC/index.m3u8 -#EXTINF:-1 tvg-id="MTVClassic.us@East",MTV Classic East (720p) +#EXTINF:-1 tvg-id="MTVClassicEast.us",MTV Classic East (720p) https://fl2.moveonjoy.com/MTV_CLASSIC/index.m3u8 -#EXTINF:-1 tvg-id="MTV.us@East",MTV East +#EXTINF:-1 tvg-id="MTVEast.us",MTV East http://fl2.moveonjoy.com/MTV/index.m3u8 -#EXTINF:-1 tvg-id="MTVLive.us",MTV Live (720p) -https://fl5.moveonjoy.com/MTV_LIVE/index.m3u8 #EXTINF:-1 tvg-id="MTVLive.us",MTV Live http://fl2.moveonjoy.com/MTV_LIVE/index.m3u8 -#EXTINF:-1 tvg-id="MTVU.us",mtvU (480p) -https://fl5.moveonjoy.com/MTV_U/index.m3u8 +#EXTINF:-1 tvg-id="MTVLive.us",MTV Live (720p) +https://fl5.moveonjoy.com/MTV_LIVE/index.m3u8 #EXTINF:-1 tvg-id="MTVU.us",MTVU http://fl2.moveonjoy.com/MTV_U/index.m3u8 +#EXTINF:-1 tvg-id="MTVU.us",mtvU (480p) +https://fl5.moveonjoy.com/MTV_U/index.m3u8 #EXTINF:-1 tvg-id="Much.ca",Much (720p) http://fl1.moveonjoy.com/MUCH/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographic.us@East",National Geographic East +#EXTINF:-1 tvg-id="NationalGeographicEast.us",National Geographic East http://fl2.moveonjoy.com/National_Geographic/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.us@East",National Geographic Wild East +#EXTINF:-1 tvg-id="NationalGeographicWildEast.us",National Geographic Wild East http://fl2.moveonjoy.com/Nat_Geo_Wild/index.m3u8 #EXTINF:-1 tvg-id="NBATV.us",NBA TV http://fl2.moveonjoy.com/NBA_TV/index.m3u8 @@ -163,29 +163,27 @@ http://fl2.moveonjoy.com/NFL_NETWORK/index.m3u8 http://fl1.moveonjoy.com/NFL_RedZone/index.m3u8 #EXTINF:-1 tvg-id="NHLNetwork.us",NHL Network (720p) http://fl2.moveonjoy.com/NHL_NETWORK/index.m3u8 -#EXTINF:-1 tvg-id="NickJr.us@East",Nick Jr East +#EXTINF:-1 tvg-id="NickJrEast.us",Nick Jr East http://fl2.moveonjoy.com/NICK_JR/index.m3u8 -#EXTINF:-1 tvg-id="NickJr.us@East",Nick Jr. East (720p) +#EXTINF:-1 tvg-id="NickJrEast.us",Nick Jr. East (720p) https://fl5.moveonjoy.com/NICK_JR/index.m3u8 #EXTINF:-1 tvg-id="NickMusic.us",Nick Music (720p) http://fl2.moveonjoy.com/NICK_MUSIC/index.m3u8 #EXTINF:-1 tvg-id="NickMusic.us",Nick Music (480p) http://fl5.moveonjoy.com/NICK_MUSIC/index.m3u8 -#EXTINF:-1 tvg-id="Nickelodeon.us@East",Nickelodeon East -http://fl1.moveonjoy.com/NICKELODEON/index.m3u8 -#EXTINF:-1 tvg-id="Nicktoons.us@East",Nicktoons East +#EXTINF:-1 tvg-id="NicktoonsEast.us",Nicktoons East http://fl1.moveonjoy.com/NICKTOONS/index.m3u8 #EXTINF:-1 tvg-id="OutdoorChannel.us",Outdoor Channel http://fl2.moveonjoy.com/OUTDOOR_CHANNEL/index.m3u8 -#EXTINF:-1 tvg-id="OuterMax.us@East",OuterMax East (720p) +#EXTINF:-1 tvg-id="OuterMaxEast.us",OuterMax East (720p) http://fl2.moveonjoy.com/OUTER_MAX/index.m3u8 #EXTINF:-1 tvg-id="OutsideTV.us",Outside TV http://fl2.moveonjoy.com/OUTSIDE_TV/index.m3u8 #EXTINF:-1 tvg-id="Ovation.us",Ovation (1080p) http://fl3.moveonjoy.com/Ovation/index.m3u8 -#EXTINF:-1 tvg-id="Oxygen.us@East",Oxygen East +#EXTINF:-1 tvg-id="OxygenEast.us",Oxygen East http://fl2.moveonjoy.com/OXYGEN/index.m3u8 -#EXTINF:-1 tvg-id="ParamountNetwork.us@East",Paramount Network East +#EXTINF:-1 tvg-id="ParamountNetworkEast.us",Paramount Network East http://fl2.moveonjoy.com/PARAMOUNT_NETWORK/index.m3u8 #EXTINF:-1 tvg-id="PursuitChannel.us",Pursuit Channel (720p) http://fl3.moveonjoy.com/Pursuit_Channel/index.m3u8 @@ -195,17 +193,17 @@ http://fl2.moveonjoy.com/QVC/index.m3u8 http://fl2.moveonjoy.com/REELZ/index.m3u8 #EXTINF:-1 tvg-id="Revolt.us",Revolt http://fl2.moveonjoy.com/REVOLT/index.m3u8 -#EXTINF:-1 tvg-id="Showtime2.us@East",Showtime 2 East +#EXTINF:-1 tvg-id="Showtime2East.us",Showtime 2 East http://fl2.moveonjoy.com/SHOWTIME_2/index.m3u8 -#EXTINF:-1 tvg-id="Showtime.us@East",Showtime East +#EXTINF:-1 tvg-id="ShowtimeEast.us",Showtime East http://fl2.moveonjoy.com/SHOWTIME/index.m3u8 -#EXTINF:-1 tvg-id="ShowtimeNext.us@East",Showtime Next East +#EXTINF:-1 tvg-id="ShowtimeNextEast.us",Showtime Next East http://fl2.moveonjoy.com/SHOWTIME_NEXT/index.m3u8 -#EXTINF:-1 tvg-id="Showtime.us@West",Showtime West (1080p) +#EXTINF:-1 tvg-id="ShowtimeWest.us",Showtime West (1080p) http://fl2.moveonjoy.com/SHOWTIME_WEST/index.m3u8 -#EXTINF:-1 tvg-id="ShowtimeWomen.us@East",Showtime Women East +#EXTINF:-1 tvg-id="ShowtimeWomenEast.us",Showtime Women East http://fl2.moveonjoy.com/SHOWTIME_WOMEN/index.m3u8 -#EXTINF:-1 tvg-id="SmithsonianChannel.us@East",Smithsonian Channel East +#EXTINF:-1 tvg-id="SmithsonianChannelEast.us",Smithsonian Channel East http://fl2.moveonjoy.com/SMITHSONIAN_CHANNEL/index.m3u8 #EXTINF:-1 tvg-id="SportsmanChannel.us",Sportsman Channel http://fl2.moveonjoy.com/SPORTSMAN_CHANNEL/index.m3u8 @@ -213,15 +211,15 @@ http://fl2.moveonjoy.com/SPORTSMAN_CHANNEL/index.m3u8 http://fl2.moveonjoy.com/SNY/index.m3u8 #EXTINF:-1 tvg-id="StartTV.us",Start TV http://fl3.moveonjoy.com/Start_Tv/index.m3u8 -#EXTINF:-1 tvg-id="Starz.us@East",Starz East +#EXTINF:-1 tvg-id="StarzEast.us",Starz East http://fl2.moveonjoy.com/STARZ/index.m3u8 -#EXTINF:-1 tvg-id="StarzEncoreClassic.us@East",Starz Encore Classic East +#EXTINF:-1 tvg-id="StarzEncoreClassicEast.us",Starz Encore Classic East http://fl5.moveonjoy.com/STARZ_ENCORE_CLASSIC/index.m3u8 -#EXTINF:-1 tvg-id="Starz.us@West",Starz West +#EXTINF:-1 tvg-id="StarzWest.us",Starz West http://fl2.moveonjoy.com/STARZ_WEST/index.m3u8 -#EXTINF:-1 tvg-id="SundanceTV.us@East",Sundance TV East +#EXTINF:-1 tvg-id="SundanceTVEast.us",Sundance TV East http://fl2.moveonjoy.com/SUNDANCE/index.m3u8 -#EXTINF:-1 tvg-id="Syfy.us@East",Syfy East +#EXTINF:-1 tvg-id="SyfyEast.us",Syfy East http://fl2.moveonjoy.com/SYFY/index.m3u8 #EXTINF:-1 tvg-id="TennisChannel.us",Tennis Channel http://fl2.moveonjoy.com/TENNIS_CHANNEL/index.m3u8 @@ -235,21 +233,21 @@ http://fl5.moveonjoy.com/TSN_3/index.m3u8 http://fl5.moveonjoy.com/TSN_4/index.m3u8 #EXTINF:-1 tvg-id="TSN5.ca",TSN5 http://fl5.moveonjoy.com/TSN_5/index.m3u8 -#EXTINF:-1 tvg-id="TVLand.us@East",TV Land East +#EXTINF:-1 tvg-id="TVLandEast.us",TV Land East http://fl2.moveonjoy.com/TV_Land/index.m3u8 #EXTINF:-1 tvg-id="TVOne.us",TV One http://fl2.moveonjoy.com/TV_ONE/index.m3u8 #EXTINF:-1 tvg-id="UpTV.us",Up TV (1080p) http://fl3.moveonjoy.com/Up_Tv/index.m3u8 -#EXTINF:-1 tvg-id="USANetwork.us@East",USA Network East (720p) +#EXTINF:-1 tvg-id="USANetworkEast.us",USA Network East (720p) http://fl2.moveonjoy.com/USA_Network/index.m3u8 -#EXTINF:-1 tvg-id="VH1.us@East",VH1 East +#EXTINF:-1 tvg-id="VH1East.us",VH1 East http://fl2.moveonjoy.com/VH1/index.m3u8 #EXTINF:-1 tvg-id="VICETV.us",VICE TV (720p) http://fl2.moveonjoy.com/VICELAND/index.m3u8 -#EXTINF:-1 tvg-id="WNetwork.ca@East",W Network (720p) +#EXTINF:-1 tvg-id="WNetworkEast.ca",W Network (720p) http://fl2.moveonjoy.com/W_NETWORK/index.m3u8 -#EXTINF:-1 tvg-id="WeTV.us@East",We TV East +#EXTINF:-1 tvg-id="WeTVEast.us",We TV East http://fl1.moveonjoy.com/WE_TV/index.m3u8 #EXTINF:-1 tvg-id="WGNDT1.us",WGN-DT1 (720p) http://fl2.moveonjoy.com/WGN/index.m3u8 diff --git a/streams/us_samsung.m3u b/streams/us_samsung.m3u index f3492761b..b8945afd8 100644 --- a/streams/us_samsung.m3u +++ b/streams/us_samsung.m3u @@ -11,10 +11,6 @@ https://bonappetit-samsung.amagi.tv/playlist.m3u8 https://d37v4ie0vq884e.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-ujoygpbfraxho/bounce_xl.m3u8 #EXTINF:-1 tvg-id="BratTV.us",Brat TV (1080p) https://brat-samsung-us.amagi.tv/playlist.m3u8 -#EXTINF:-1 tvg-id="Buzzr.us",Buzzr (1080p) -https://buzzr-samsungus.amagi.tv/playlist.m3u8 -#EXTINF:-1 tvg-id="Buzzr.us",Buzzr (1080p) -https://cdn-ue1-prod.tsv2.amagi.tv/linear/samsungus-buzzr-samsungtv-us/playlist.m3u8 #EXTINF:-1 tvg-id="Circle.us",Circle (1080p) https://circle-samsung.amagi.tv/playlist.m3u8 #EXTINF:-1 tvg-id="Crime360.us",Crime 360 (720p) diff --git a/streams/xk.m3u b/streams/xk.m3u index 588f42ebb..189872f85 100644 --- a/streams/xk.m3u +++ b/streams/xk.m3u @@ -19,3 +19,19 @@ http://stream.tvdielli.com:8081/dielli/index.m3u8 http://ip.opoja.tv:1935/tvopoja/tvopoja/playlist.m3u8 #EXTINF:-1 tvg-id="TVSyri.xk",TV Syri (720p) https://gjirafa-video-live.gjirafa.net/gjvideo-live/xej-xnb-ba0-kup/index.m3u8 +#EXTINF:-1 tvg-id="T7.xk",T7 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream-specific/1z8-byc-4ee-lc9/index.m3u8 +#EXTINF:-1 tvg-id="TVArta.xk",TV Arta +https://gjirafa-video-live.gjirafa.net/gjvideo-live/mps-vgx-u9p-qv1/index.m3u8 +#EXTINF:-1 tvg-id="RTK3.xk",RTK 3 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/rtk3/index.m3u8 +#EXTINF:-1 tvg-id="RTK2.xk",RTK 2 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/rtk2/index.m3u8 +#EXTINF:-1 tvg-id="RTK1.xk",RTK 1 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/98r-d35-487-v6m/tracks-v4a1/mono.m3u8 +#EXTINF:-1 tvg-id="Kohavision.xk",Kohavision +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/lj9-pxm-o53-rp0/tracks-v4a1/mono.m3u8 +#EXTINF:-1 tvg-id="TVPrizreni.xk",TV Prizreni +https://gjirafa-video-live.gjirafa.net/gjvideo-live/5m0-cok-g5z-1xi/index.m3u8 +#EXTINF:-1 tvg-id="RTV21.xk",RTV21 +https://gjirafa-video-live.gjirafa.net/gjvideo-live/2cz-npl-jfn-9he/tracks-v2a1/mono.m3u8 diff --git a/tests/__data__/expected/api_generate/.api/streams.json b/tests/__data__/expected/api_generate/.api/streams.json new file mode 100644 index 000000000..55128bca3 --- /dev/null +++ b/tests/__data__/expected/api_generate/.api/streams.json @@ -0,0 +1,57 @@ +[ + { + "channel": null, + "feed": null, + "url": "http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": null, + "feed": null, + "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8", + "referrer": "http://imn.iq", + "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" + }, + { + "channel": "AndorraTV.ad", + "feed": "SD", + "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/atv", + "referrer": null, + "user_agent": null + }, + { + "channel": "BBCNews.uk", + "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "LDPRTV.ru", + "feed": null, + "url": "http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "MeteoMedia.ca", + "feed": null, + "url": "http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "VisitXTV.nl", + "feed": null, + "url": "https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "Zoo.ad", + "feed": null, + "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/zoo", + "referrer": null, + "user_agent": null + } +] \ No newline at end of file diff --git a/tests/__data__/expected/playlist_format/in.m3u b/tests/__data__/expected/playlist_format/in.m3u index 44a00ace1..2615da4e4 100644 --- a/tests/__data__/expected/playlist_format/in.m3u +++ b/tests/__data__/expected/playlist_format/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] -https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] +https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 diff --git a/tests/__data__/expected/playlist_format/nl.m3u b/tests/__data__/expected/playlist_format/nl.m3u index 8f1e0ba2a..d08a2ac80 100644 --- a/tests/__data__/expected/playlist_format/nl.m3u +++ b/tests/__data__/expected/playlist_format/nl.m3u @@ -1,11 +1,11 @@ -#EXTM3U -#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl" http-referrer="http://imn.iq" 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",NPO 2 (302p) [Geo-blocked] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl" http-referrer="http://imn.iq" 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",NPO 2 (302p) [Geo-blocked] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u new file mode 100644 index 000000000..d43fa35f6 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u @@ -0,0 +1,7 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u new file mode 100644 index 000000000..85c75b78b --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u new file mode 100644 index 000000000..cfdce7d0b --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u @@ -0,0 +1,15 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u new file mode 100644 index 000000000..03a6963a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u new file mode 100644 index 000000000..a6791d64b --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="VisitXTV.nl" tvg-logo="https://i.imgur.com/RJ9wbNF.jpg" group-title="XXX",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u new file mode 100644 index 000000000..9bc95be27 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u new file mode 100644 index 000000000..03a6963a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u new file mode 100644 index 000000000..b701890a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u new file mode 100644 index 000000000..eb0364cd5 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u @@ -0,0 +1,11 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u new file mode 100644 index 000000000..b3235a876 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u @@ -0,0 +1,25 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u new file mode 100644 index 000000000..332df0029 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u @@ -0,0 +1,31 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Andorra",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Canada",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kazakhstan",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kyrgyzstan",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russia",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Tajikistan",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Turkmenistan",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Uzbekistan",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u new file mode 100644 index 000000000..e9f88f8ac --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u @@ -0,0 +1,23 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Catalan",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="English",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russian",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Undefined",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Undefined",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u new file mode 100644 index 000000000..fbf8cd755 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u @@ -0,0 +1,23 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u new file mode 100644 index 000000000..aa3534ff7 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u @@ -0,0 +1,43 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Americas",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Asia",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Asia",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Central Asia",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Commonwealth of Independent States",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe, the Middle East and Africa",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe, the Middle East and Africa",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="North America",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Northern America",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u new file mode 100644 index 000000000..85c75b78b --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u new file mode 100644 index 000000000..b701890a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u new file mode 100644 index 000000000..0eeed846f --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u @@ -0,0 +1,17 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u new file mode 100644 index 000000000..03a6963a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u new file mode 100644 index 000000000..1a2c778e0 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u new file mode 100644 index 000000000..847591ab0 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u new file mode 100644 index 000000000..1a2c778e0 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u new file mode 100644 index 000000000..10fbb43f9 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u @@ -0,0 +1,7 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u new file mode 100644 index 000000000..10fbb43f9 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u @@ -0,0 +1,7 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u new file mode 100644 index 000000000..15240af7d --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u new file mode 100644 index 000000000..03a6963a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u new file mode 100644 index 000000000..03a6963a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u new file mode 100644 index 000000000..eb0364cd5 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u @@ -0,0 +1,11 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" 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",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u new file mode 100644 index 000000000..7452e53aa --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u new file mode 100644 index 000000000..03a6963a3 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_update/cy.m3u b/tests/__data__/expected/playlist_update/cy.m3u index 987825ca1..13482713e 100644 --- a/tests/__data__/expected/playlist_update/cy.m3u +++ b/tests/__data__/expected/playlist_update/cy.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 diff --git a/tests/__data__/expected/playlist_update/fr.m3u b/tests/__data__/expected/playlist_update/fr.m3u index 82856b338..f4f93afdc 100644 --- a/tests/__data__/expected/playlist_update/fr.m3u +++ b/tests/__data__/expected/playlist_update/fr.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="TFX.fr" http-referrer="https://pkpakiplay.xyz/" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1",TFX -#EXTVLCOPT:http-referrer=https://pkpakiplay.xyz/ -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1 -https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY +#EXTM3U +#EXTINF:-1 tvg-id="TFX.fr" http-referrer="https://pkpakiplay.xyz/" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1",TFX +#EXTVLCOPT:http-referrer=https://pkpakiplay.xyz/ +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1 +https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY diff --git a/tests/__data__/expected/playlist_update/uk.m3u b/tests/__data__/expected/playlist_update/uk.m3u index 6ebfc71cd..a60ea6210 100644 --- a/tests/__data__/expected/playlist_update/uk.m3u +++ b/tests/__data__/expected/playlist_update/uk.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 -#EXTINF:-1 tvg-id="BeanoTV.uk",Beano TV -https://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="BeanoTV.uk",Beano TV +https://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8 diff --git a/tests/__data__/expected/playlist_update/us.m3u b/tests/__data__/expected/playlist_update/us.m3u index 5271483e5..80ce51958 100644 --- a/tests/__data__/expected/playlist_update/us.m3u +++ b/tests/__data__/expected/playlist_update/us.m3u @@ -1,6 +1,6 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCAmerica.us@East" http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246",BBC America East (720p) -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246 -https://servilive.com:3126/live/tele2000live.m3u8 -#EXTINF:-1 tvg-id="FastTV.us",Fast TV -https://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCAmerica.us@East" http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246",BBC America East (720p) +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246 +https://servilive.com:3126/live/tele2000live.m3u8 +#EXTINF:-1 tvg-id="FastTV.us",Fast TV +https://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8 diff --git a/tests/__data__/expected/readme_update/_readme.md b/tests/__data__/expected/readme_update/_readme.md index 9fc78acc2..67b094c3d 100644 --- a/tests/__data__/expected/readme_update/_readme.md +++ b/tests/__data__/expected/readme_update/_readme.md @@ -1,257 +1,257 @@ -# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) - -Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. - -## Table of contents - -- ๐Ÿš€ [How to use?](#how-to-use) -- ๐Ÿ“บ [Playlists](#playlists) -- ๐Ÿ—„ [Database](#database) -- ๐Ÿ‘จโ€๐Ÿ’ป [API](#api) -- ๐Ÿ“š [Resources](#resources) -- ๐Ÿ’ฌ [Discussions](#discussions) -- โ“ [FAQ](#faq) -- ๐Ÿ›  [Contribution](#contribution) -- โš– [Legal](#legal) -- ยฉ [License](#license) - -## How to use? - -Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. - -![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) - -## Playlists - -There are several versions of playlists that differ in the way they are grouped. - -### Main playlist - -Playlist includes all known channels except adult channels. - -``` -https://iptv-org.github.io/iptv/index.m3u -``` - -And here is the full version: - -``` -https://iptv-org.github.io/iptv/index.nsfw.m3u -``` - -### Grouped by category - -
-Expand -
- -Playlist in which each channel has its _category_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.category.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CategoryChannelsPlaylist
Animation0https://iptv-org.github.io/iptv/categories/animation.m3u
Auto0https://iptv-org.github.io/iptv/categories/auto.m3u
Business0https://iptv-org.github.io/iptv/categories/business.m3u
Classic0https://iptv-org.github.io/iptv/categories/classic.m3u
Comedy0https://iptv-org.github.io/iptv/categories/comedy.m3u
Cooking0https://iptv-org.github.io/iptv/categories/cooking.m3u
Culture0https://iptv-org.github.io/iptv/categories/culture.m3u
Documentary0https://iptv-org.github.io/iptv/categories/documentary.m3u
Education0https://iptv-org.github.io/iptv/categories/education.m3u
Entertainment0https://iptv-org.github.io/iptv/categories/entertainment.m3u
Family0https://iptv-org.github.io/iptv/categories/family.m3u
General2https://iptv-org.github.io/iptv/categories/general.m3u
Kids0https://iptv-org.github.io/iptv/categories/kids.m3u
Legislative0https://iptv-org.github.io/iptv/categories/legislative.m3u
Lifestyle0https://iptv-org.github.io/iptv/categories/lifestyle.m3u
Movies0https://iptv-org.github.io/iptv/categories/movies.m3u
Music0https://iptv-org.github.io/iptv/categories/music.m3u
News1https://iptv-org.github.io/iptv/categories/news.m3u
Outdoor0https://iptv-org.github.io/iptv/categories/outdoor.m3u
Relax0https://iptv-org.github.io/iptv/categories/relax.m3u
Religious0https://iptv-org.github.io/iptv/categories/religious.m3u
Science0https://iptv-org.github.io/iptv/categories/science.m3u
Series0https://iptv-org.github.io/iptv/categories/series.m3u
Shop0https://iptv-org.github.io/iptv/categories/shop.m3u
Sports0https://iptv-org.github.io/iptv/categories/sports.m3u
Travel0https://iptv-org.github.io/iptv/categories/travel.m3u
Weather1https://iptv-org.github.io/iptv/categories/weather.m3u
XXX1https://iptv-org.github.io/iptv/categories/xxx.m3u
Undefined3https://iptv-org.github.io/iptv/categories/undefined.m3u
- -
- -### Grouped by language - -
-Expand -
- -Playlist in which each channel has its _language_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.language.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - -
LanguageChannelsPlaylist
Catalan1https://iptv-org.github.io/iptv/languages/cat.m3u
English1https://iptv-org.github.io/iptv/languages/eng.m3u
French1https://iptv-org.github.io/iptv/languages/fra.m3u
Russian1https://iptv-org.github.io/iptv/languages/rus.m3u
Undefined2https://iptv-org.github.io/iptv/languages/undefined.m3u
- -
- -### Grouped by country - -
-Expand -
- -Playlist in which each channel has its _country_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - - - - - - - - - -
CountryChannelsPlaylist
๐Ÿ‡จ๐Ÿ‡ฒ Cameroon1https://iptv-org.github.io/iptv/countries/cm.m3u
๐Ÿ‡จ๐Ÿ‡ฆ Canada2https://iptv-org.github.io/iptv/countries/ca.m3u
      Ontario1https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u
๐Ÿ‡จ๐Ÿ‡ป Cape Verde1https://iptv-org.github.io/iptv/countries/cv.m3u
๐Ÿ‡จ๐Ÿ‡ฌ Republic of the Congo1https://iptv-org.github.io/iptv/countries/cg.m3u
๐Ÿ‡ท๐Ÿ‡ช Rรฉunion1https://iptv-org.github.io/iptv/countries/re.m3u
๐Ÿ‡ท๐Ÿ‡ด Romania1https://iptv-org.github.io/iptv/countries/ro.m3u
๐Ÿ‡ท๐Ÿ‡บ Russia2https://iptv-org.github.io/iptv/countries/ru.m3u
๐Ÿ‡ท๐Ÿ‡ผ Rwanda1https://iptv-org.github.io/iptv/countries/rw.m3u
๐Ÿ‡ง๐Ÿ‡ฑ Saint Barthรฉlemy1https://iptv-org.github.io/iptv/countries/bl.m3u
๐Ÿ‡ธ๐Ÿ‡ญ Saint Helena1https://iptv-org.github.io/iptv/countries/sh.m3u
๐Ÿ‡ฐ๐Ÿ‡ณ Saint Kitts and Nevis1https://iptv-org.github.io/iptv/countries/kn.m3u
Undefined2https://iptv-org.github.io/iptv/countries/undefined.m3u
- -
- -### Grouped by region - -
-Expand -
- -Playlist in which each channel has its _region_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.region.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RegionChannelsPlaylist
Africa0https://iptv-org.github.io/iptv/regions/afr.m3u
Americas1https://iptv-org.github.io/iptv/regions/amer.m3u
Arab world0https://iptv-org.github.io/iptv/regions/arab.m3u
Asia2https://iptv-org.github.io/iptv/regions/asia.m3u
Asia-Pacific1https://iptv-org.github.io/iptv/regions/apac.m3u
Association of Southeast Asian Nations0https://iptv-org.github.io/iptv/regions/asean.m3u
Caribbean0https://iptv-org.github.io/iptv/regions/carib.m3u
Central America0https://iptv-org.github.io/iptv/regions/cenamer.m3u
Central Asia0https://iptv-org.github.io/iptv/regions/cas.m3u
Commonwealth of Independent States1https://iptv-org.github.io/iptv/regions/cis.m3u
Europe3https://iptv-org.github.io/iptv/regions/eur.m3u
Europe, the Middle East and Africa3https://iptv-org.github.io/iptv/regions/emea.m3u
Hispanic America0https://iptv-org.github.io/iptv/regions/hispam.m3u
Latin America0https://iptv-org.github.io/iptv/regions/latam.m3u
Latin America and the Caribbean0https://iptv-org.github.io/iptv/regions/lac.m3u
Maghreb0https://iptv-org.github.io/iptv/regions/maghreb.m3u
Middle East0https://iptv-org.github.io/iptv/regions/mideast.m3u
Middle East and North Africa0https://iptv-org.github.io/iptv/regions/mena.m3u
Nordics0https://iptv-org.github.io/iptv/regions/nord.m3u
North America1https://iptv-org.github.io/iptv/regions/noram.m3u
Northern America1https://iptv-org.github.io/iptv/regions/nam.m3u
Oceania0https://iptv-org.github.io/iptv/regions/oce.m3u
South America0https://iptv-org.github.io/iptv/regions/southam.m3u
South Asia1https://iptv-org.github.io/iptv/regions/sas.m3u
Sub-Saharan Africa0https://iptv-org.github.io/iptv/regions/ssa.m3u
West Africa0https://iptv-org.github.io/iptv/regions/wafr.m3u
Worldwide1https://iptv-org.github.io/iptv/regions/int.m3u
Undefined2https://iptv-org.github.io/iptv/regions/undefined.m3u
- -
- -## Database - -All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. - -## API - -The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. - -## Resources - -Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. - -## Discussions - -If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). - -## FAQ - -The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. - -## Contribution - -Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. - -And thank you to everyone who has already contributed! - -### Backers - - - -### Contributors - - - -## Legal - -No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). - -## License - -[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) +# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) + +Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. + +## Table of contents + +- ๐Ÿš€ [How to use?](#how-to-use) +- ๐Ÿ“บ [Playlists](#playlists) +- ๐Ÿ—„ [Database](#database) +- ๐Ÿ‘จโ€๐Ÿ’ป [API](#api) +- ๐Ÿ“š [Resources](#resources) +- ๐Ÿ’ฌ [Discussions](#discussions) +- โ“ [FAQ](#faq) +- ๐Ÿ›  [Contribution](#contribution) +- โš– [Legal](#legal) +- ยฉ [License](#license) + +## How to use? + +Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. + +![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) + +## Playlists + +There are several versions of playlists that differ in the way they are grouped. + +### Main playlist + +Playlist includes all known channels except adult channels. + +``` +https://iptv-org.github.io/iptv/index.m3u +``` + +And here is the full version: + +``` +https://iptv-org.github.io/iptv/index.nsfw.m3u +``` + +### Grouped by category + +
+Expand +
+ +Playlist in which each channel has its _category_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.category.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryChannelsPlaylist
Animation0https://iptv-org.github.io/iptv/categories/animation.m3u
Auto0https://iptv-org.github.io/iptv/categories/auto.m3u
Business0https://iptv-org.github.io/iptv/categories/business.m3u
Classic0https://iptv-org.github.io/iptv/categories/classic.m3u
Comedy0https://iptv-org.github.io/iptv/categories/comedy.m3u
Cooking0https://iptv-org.github.io/iptv/categories/cooking.m3u
Culture0https://iptv-org.github.io/iptv/categories/culture.m3u
Documentary0https://iptv-org.github.io/iptv/categories/documentary.m3u
Education0https://iptv-org.github.io/iptv/categories/education.m3u
Entertainment0https://iptv-org.github.io/iptv/categories/entertainment.m3u
Family0https://iptv-org.github.io/iptv/categories/family.m3u
General2https://iptv-org.github.io/iptv/categories/general.m3u
Kids0https://iptv-org.github.io/iptv/categories/kids.m3u
Legislative0https://iptv-org.github.io/iptv/categories/legislative.m3u
Lifestyle0https://iptv-org.github.io/iptv/categories/lifestyle.m3u
Movies0https://iptv-org.github.io/iptv/categories/movies.m3u
Music0https://iptv-org.github.io/iptv/categories/music.m3u
News1https://iptv-org.github.io/iptv/categories/news.m3u
Outdoor0https://iptv-org.github.io/iptv/categories/outdoor.m3u
Relax0https://iptv-org.github.io/iptv/categories/relax.m3u
Religious0https://iptv-org.github.io/iptv/categories/religious.m3u
Science0https://iptv-org.github.io/iptv/categories/science.m3u
Series0https://iptv-org.github.io/iptv/categories/series.m3u
Shop0https://iptv-org.github.io/iptv/categories/shop.m3u
Sports0https://iptv-org.github.io/iptv/categories/sports.m3u
Travel0https://iptv-org.github.io/iptv/categories/travel.m3u
Weather1https://iptv-org.github.io/iptv/categories/weather.m3u
XXX1https://iptv-org.github.io/iptv/categories/xxx.m3u
Undefined3https://iptv-org.github.io/iptv/categories/undefined.m3u
+ +
+ +### Grouped by language + +
+Expand +
+ +Playlist in which each channel has its _language_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.language.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + +
LanguageChannelsPlaylist
Catalan1https://iptv-org.github.io/iptv/languages/cat.m3u
English1https://iptv-org.github.io/iptv/languages/eng.m3u
French1https://iptv-org.github.io/iptv/languages/fra.m3u
Russian1https://iptv-org.github.io/iptv/languages/rus.m3u
Undefined2https://iptv-org.github.io/iptv/languages/undefined.m3u
+ +
+ +### Grouped by country + +
+Expand +
+ +Playlist in which each channel has its _country_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + + + + + + + + + +
CountryChannelsPlaylist
๐Ÿ‡จ๐Ÿ‡ฒ Cameroon1https://iptv-org.github.io/iptv/countries/cm.m3u
๐Ÿ‡จ๐Ÿ‡ฆ Canada2https://iptv-org.github.io/iptv/countries/ca.m3u
      Ontario1https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u
๐Ÿ‡จ๐Ÿ‡ป Cape Verde1https://iptv-org.github.io/iptv/countries/cv.m3u
๐Ÿ‡จ๐Ÿ‡ฌ Republic of the Congo1https://iptv-org.github.io/iptv/countries/cg.m3u
๐Ÿ‡ท๐Ÿ‡ช Rรฉunion1https://iptv-org.github.io/iptv/countries/re.m3u
๐Ÿ‡ท๐Ÿ‡ด Romania1https://iptv-org.github.io/iptv/countries/ro.m3u
๐Ÿ‡ท๐Ÿ‡บ Russia2https://iptv-org.github.io/iptv/countries/ru.m3u
๐Ÿ‡ท๐Ÿ‡ผ Rwanda1https://iptv-org.github.io/iptv/countries/rw.m3u
๐Ÿ‡ง๐Ÿ‡ฑ Saint Barthรฉlemy1https://iptv-org.github.io/iptv/countries/bl.m3u
๐Ÿ‡ธ๐Ÿ‡ญ Saint Helena1https://iptv-org.github.io/iptv/countries/sh.m3u
๐Ÿ‡ฐ๐Ÿ‡ณ Saint Kitts and Nevis1https://iptv-org.github.io/iptv/countries/kn.m3u
Undefined2https://iptv-org.github.io/iptv/countries/undefined.m3u
+ +
+ +### Grouped by region + +
+Expand +
+ +Playlist in which each channel has its _region_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.region.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RegionChannelsPlaylist
Africa0https://iptv-org.github.io/iptv/regions/afr.m3u
Americas1https://iptv-org.github.io/iptv/regions/amer.m3u
Arab world0https://iptv-org.github.io/iptv/regions/arab.m3u
Asia2https://iptv-org.github.io/iptv/regions/asia.m3u
Asia-Pacific1https://iptv-org.github.io/iptv/regions/apac.m3u
Association of Southeast Asian Nations0https://iptv-org.github.io/iptv/regions/asean.m3u
Caribbean0https://iptv-org.github.io/iptv/regions/carib.m3u
Central America0https://iptv-org.github.io/iptv/regions/cenamer.m3u
Central Asia0https://iptv-org.github.io/iptv/regions/cas.m3u
Commonwealth of Independent States1https://iptv-org.github.io/iptv/regions/cis.m3u
Europe3https://iptv-org.github.io/iptv/regions/eur.m3u
Europe, the Middle East and Africa3https://iptv-org.github.io/iptv/regions/emea.m3u
Hispanic America0https://iptv-org.github.io/iptv/regions/hispam.m3u
Latin America0https://iptv-org.github.io/iptv/regions/latam.m3u
Latin America and the Caribbean0https://iptv-org.github.io/iptv/regions/lac.m3u
Maghreb0https://iptv-org.github.io/iptv/regions/maghreb.m3u
Middle East0https://iptv-org.github.io/iptv/regions/mideast.m3u
Middle East and North Africa0https://iptv-org.github.io/iptv/regions/mena.m3u
Nordics0https://iptv-org.github.io/iptv/regions/nord.m3u
North America1https://iptv-org.github.io/iptv/regions/noram.m3u
Northern America1https://iptv-org.github.io/iptv/regions/nam.m3u
Oceania0https://iptv-org.github.io/iptv/regions/oce.m3u
South America0https://iptv-org.github.io/iptv/regions/southam.m3u
South Asia1https://iptv-org.github.io/iptv/regions/sas.m3u
Sub-Saharan Africa0https://iptv-org.github.io/iptv/regions/ssa.m3u
West Africa0https://iptv-org.github.io/iptv/regions/wafr.m3u
Worldwide1https://iptv-org.github.io/iptv/regions/int.m3u
Undefined2https://iptv-org.github.io/iptv/regions/undefined.m3u
+ +
+ +## Database + +All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. + +## API + +The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. + +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + +## Discussions + +If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). + +## FAQ + +The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. + +## Contribution + +Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. + +And thank you to everyone who has already contributed! + +### Backers + + + +### Contributors + + + +## Legal + +No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). + +## License + +[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) diff --git a/tests/__data__/input/api_generate/ad.m3u b/tests/__data__/input/api_generate/ad.m3u index 64a1dc0cf..9d8926e0e 100644 --- a/tests/__data__/input/api_generate/ad.m3u +++ b/tests/__data__/input/api_generate/ad.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="Zoo.ad",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U +#EXTINF:-1 tvg-id="Zoo.ad",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv diff --git a/tests/__data__/input/api_generate/ca.m3u b/tests/__data__/input/api_generate/ca.m3u index 9c198b682..672601d7f 100644 --- a/tests/__data__/input/api_generate/ca.m3u +++ b/tests/__data__/input/api_generate/ca.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/input/api_generate/in.m3u b/tests/__data__/input/api_generate/in.m3u index 62594eb4b..c375e17ac 100644 --- a/tests/__data__/input/api_generate/in.m3u +++ b/tests/__data__/input/api_generate/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/input/api_generate/uk.m3u b/tests/__data__/input/api_generate/uk.m3u index 5e8c7318e..4a8a1f64a 100644 --- a/tests/__data__/input/api_generate/uk.m3u +++ b/tests/__data__/input/api_generate/uk.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/input/api_generate/unsorted.m3u b/tests/__data__/input/api_generate/unsorted.m3u index 1a9c40b9f..96f9299e2 100644 --- a/tests/__data__/input/api_generate/unsorted.m3u +++ b/tests/__data__/input/api_generate/unsorted.m3u @@ -1,9 +1,9 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru",ะ›ะ”ะŸะ  ะขะ’ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV -https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 -#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 +#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 diff --git a/tests/__data__/input/playlist_edit/playlist.m3u b/tests/__data__/input/playlist_edit/playlist.m3u index 2ebf1ffa7..0abd41b6f 100644 --- a/tests/__data__/input/playlist_edit/playlist.m3u +++ b/tests/__data__/input/playlist_edit/playlist.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="HewadTV.af",Hewad TV (720p) [Not 24/7] -http://51.210.199.58/hls/stream.m3u8 -#EXTINF:-1 tvg-id="",Tรฉlรฉvision franรงaise 1 (480p) +#EXTM3U +#EXTINF:-1 tvg-id="HewadTV.af",Hewad TV (720p) [Not 24/7] +http://51.210.199.58/hls/stream.m3u8 +#EXTINF:-1 tvg-id="",Tรฉlรฉvision franรงaise 1 (480p) https://live.relentlessinnovations.net:1936/imantv/imantv/playlist.m3u8 \ No newline at end of file diff --git a/tests/__data__/input/playlist_format/in.m3u b/tests/__data__/input/playlist_format/in.m3u index 47c77da2e..3d0bcd359 100644 --- a/tests/__data__/input/playlist_format/in.m3u +++ b/tests/__data__/input/playlist_format/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="mn.in",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] -https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="mn.in",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] +https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 diff --git a/tests/__data__/input/playlist_format/nl.m3u b/tests/__data__/input/playlist_format/nl.m3u index 5fdeaea52..39d56a3ef 100644 --- a/tests/__data__/input/playlist_format/nl.m3u +++ b/tests/__data__/input/playlist_format/nl.m3u @@ -1,13 +1,13 @@ -#EXTM3U -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (302p) [Geo-blocked] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8? -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 -#EXTINF:-1 tvg-id="",NPO 2 (Duplicate) -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (302p) [Geo-blocked] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8? +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 +#EXTINF:-1 tvg-id="",NPO 2 (Duplicate) +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 diff --git a/tests/__data__/input/playlist_generate/ad.m3u b/tests/__data__/input/playlist_generate/ad.m3u index 9a1c9e175..3c3bcae1d 100644 --- a/tests/__data__/input/playlist_generate/ad.m3u +++ b/tests/__data__/input/playlist_generate/ad.m3u @@ -1,9 +1,9 @@ -#EXTM3U -#EXTINF:-1 tvg-id="Zoo.ad@HD",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="AndorraTV.ad@HD",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="AndorraTV.ad",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv2 +#EXTM3U +#EXTINF:-1 tvg-id="Zoo.ad@HD",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="AndorraTV.ad",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv2 diff --git a/tests/__data__/input/playlist_generate/ca.m3u b/tests/__data__/input/playlist_generate/ca.m3u index 9c198b682..672601d7f 100644 --- a/tests/__data__/input/playlist_generate/ca.m3u +++ b/tests/__data__/input/playlist_generate/ca.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/input/playlist_generate/in.m3u b/tests/__data__/input/playlist_generate/in.m3u index 62594eb4b..c375e17ac 100644 --- a/tests/__data__/input/playlist_generate/in.m3u +++ b/tests/__data__/input/playlist_generate/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/input/playlist_generate/kg.m3u b/tests/__data__/input/playlist_generate/kg.m3u index 9c1d5a575..9bf0832b5 100644 --- a/tests/__data__/input/playlist_generate/kg.m3u +++ b/tests/__data__/input/playlist_generate/kg.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="ElTR.kg",ะญะปะขะ  (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="ElTR.kg",ะญะปะขะ  (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/input/playlist_generate/uk.m3u b/tests/__data__/input/playlist_generate/uk.m3u index 5e8c7318e..4a8a1f64a 100644 --- a/tests/__data__/input/playlist_generate/uk.m3u +++ b/tests/__data__/input/playlist_generate/uk.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/input/playlist_generate/unsorted.m3u b/tests/__data__/input/playlist_generate/unsorted.m3u index b2b798b15..826414ad2 100644 --- a/tests/__data__/input/playlist_generate/unsorted.m3u +++ b/tests/__data__/input/playlist_generate/unsorted.m3u @@ -1,11 +1,11 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru",ะ›ะ”ะŸะ  ะขะ’ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV -https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 -#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru",ะ›ะ”ะŸะ  ะขะ’ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 +#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 diff --git a/tests/__data__/input/playlist_test/ag.m3u b/tests/__data__/input/playlist_test/ag.m3u index 66b32b21d..f4716e013 100644 --- a/tests/__data__/input/playlist_test/ag.m3u +++ b/tests/__data__/input/playlist_test/ag.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="ABSTV.ag",ABS TV -https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145 -#EXTINF:-1 tvg-id="ABSTV.ag@HD",ABS TV (1080p) [Not 24/7] +#EXTM3U +#EXTINF:-1 tvg-id="ABSTV.ag",ABS TV +https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145 +#EXTINF:-1 tvg-id="ABSTV.ag@HD",ABS TV (1080p) [Not 24/7] https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/absliveantigua3 \ No newline at end of file diff --git a/tests/__data__/input/playlist_update/br.m3u b/tests/__data__/input/playlist_update/br.m3u index 6dcdaee15..31a869861 100644 --- a/tests/__data__/input/playlist_update/br.m3u +++ b/tests/__data__/input/playlist_update/br.m3u @@ -1,6 +1,6 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",VTV [Not 24/7] -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 -#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] -#EXTVLCOPT:http-referrer=https://example2.com/ -https://servilive.com:3126/live/tele2000live.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",VTV [Not 24/7] +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] +#EXTVLCOPT:http-referrer=https://example2.com/ +https://servilive.com:3126/live/tele2000live.m3u8 diff --git a/tests/__data__/input/playlist_update/cy.m3u b/tests/__data__/input/playlist_update/cy.m3u index 439794ad7..03c605e3e 100644 --- a/tests/__data__/input/playlist_update/cy.m3u +++ b/tests/__data__/input/playlist_update/cy.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",RIK HD Cyprus -http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 -#EXTINF:-1 tvg-id="",RIK 2 -http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 -#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",RIK HD Cyprus +http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 +#EXTINF:-1 tvg-id="",RIK 2 +http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 +#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 diff --git a/tests/__data__/input/playlist_update/uk.m3u b/tests/__data__/input/playlist_update/uk.m3u index c1deeea97..033f5a36b 100644 --- a/tests/__data__/input/playlist_update/uk.m3u +++ b/tests/__data__/input/playlist_update/uk.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 diff --git a/tests/__data__/input/playlist_validate/us_blocked.m3u b/tests/__data__/input/playlist_validate/us_blocked.m3u index 2ffa2273b..3a5e4bd53 100644 --- a/tests/__data__/input/playlist_validate/us_blocked.m3u +++ b/tests/__data__/input/playlist_validate/us_blocked.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="FoxSports2.us@Asia",Fox Sports 2 Asia (Thai) (720p) -https://example.com/playlist.m3u8 -#EXTINF:-1 tvg-id="TVN.pl",TVN -https://example.com/playlist2.m3u8 -#EXTINF:-1 tvg-id="EverydayHeroes.us",Everyday Heroes (720p) -https://a.jsrdn.com/broadcast/7b1451fa52/+0000/c.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="FoxSports2.us@Asia",Fox Sports 2 Asia (Thai) (720p) +https://example.com/playlist.m3u8 +#EXTINF:-1 tvg-id="TVN.pl",TVN +https://example.com/playlist2.m3u8 +#EXTINF:-1 tvg-id="EverydayHeroes.us",Everyday Heroes (720p) +https://a.jsrdn.com/broadcast/7b1451fa52/+0000/c.m3u8 diff --git a/tests/__data__/input/playlist_validate/wrong_id.m3u b/tests/__data__/input/playlist_validate/wrong_id.m3u index fd9867773..dc7ab8504 100644 --- a/tests/__data__/input/playlist_validate/wrong_id.m3u +++ b/tests/__data__/input/playlist_validate/wrong_id.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="qib22lAq1L.us",ABC (720p) -https://example.com/playlist2.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="qib22lAq1L.us",ABC (720p) +https://example.com/playlist2.m3u8 diff --git a/tests/__data__/input/readme_update/.readme/template.md b/tests/__data__/input/readme_update/.readme/template.md index 04cab4cd5..4883a98e4 100644 --- a/tests/__data__/input/readme_update/.readme/template.md +++ b/tests/__data__/input/readme_update/.readme/template.md @@ -1,158 +1,158 @@ -# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) - -Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. - -## Table of contents - -- ๐Ÿš€ [How to use?](#how-to-use) -- ๐Ÿ“บ [Playlists](#playlists) -- ๐Ÿ—„ [Database](#database) -- ๐Ÿ‘จโ€๐Ÿ’ป [API](#api) -- ๐Ÿ“š [Resources](#resources) -- ๐Ÿ’ฌ [Discussions](#discussions) -- โ“ [FAQ](#faq) -- ๐Ÿ›  [Contribution](#contribution) -- โš– [Legal](#legal) -- ยฉ [License](#license) - -## How to use? - -Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. - -![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) - -## Playlists - -There are several versions of playlists that differ in the way they are grouped. - -### Main playlist - -Playlist includes all known channels except adult channels. - -``` -https://iptv-org.github.io/iptv/index.m3u -``` - -And here is the full version: - -``` -https://iptv-org.github.io/iptv/index.nsfw.m3u -``` - -### Grouped by category - -
-Expand -
- -Playlist in which each channel has its _category_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.category.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_categories.md" - -
- -### Grouped by language - -
-Expand -
- -Playlist in which each channel has its _language_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.language.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_languages.md" - -
- -### Grouped by country - -
-Expand -
- -Playlist in which each channel has its _country_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_countries.md" - -
- -### Grouped by region - -
-Expand -
- -Playlist in which each channel has its _region_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.region.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_regions.md" - -
- -## Database - -All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. - -## API - -The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. - -## Resources - -Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. - -## Discussions - -If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). - -## FAQ - -The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. - -## Contribution - -Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. - -And thank you to everyone who has already contributed! - -### Backers - - - -### Contributors - - - -## Legal - -No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). - -## License - -[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) +# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) + +Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. + +## Table of contents + +- ๐Ÿš€ [How to use?](#how-to-use) +- ๐Ÿ“บ [Playlists](#playlists) +- ๐Ÿ—„ [Database](#database) +- ๐Ÿ‘จโ€๐Ÿ’ป [API](#api) +- ๐Ÿ“š [Resources](#resources) +- ๐Ÿ’ฌ [Discussions](#discussions) +- โ“ [FAQ](#faq) +- ๐Ÿ›  [Contribution](#contribution) +- โš– [Legal](#legal) +- ยฉ [License](#license) + +## How to use? + +Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. + +![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) + +## Playlists + +There are several versions of playlists that differ in the way they are grouped. + +### Main playlist + +Playlist includes all known channels except adult channels. + +``` +https://iptv-org.github.io/iptv/index.m3u +``` + +And here is the full version: + +``` +https://iptv-org.github.io/iptv/index.nsfw.m3u +``` + +### Grouped by category + +
+Expand +
+ +Playlist in which each channel has its _category_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.category.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_categories.md" + +
+ +### Grouped by language + +
+Expand +
+ +Playlist in which each channel has its _language_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.language.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_languages.md" + +
+ +### Grouped by country + +
+Expand +
+ +Playlist in which each channel has its _country_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_countries.md" + +
+ +### Grouped by region + +
+Expand +
+ +Playlist in which each channel has its _region_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.region.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_regions.md" + +
+ +## Database + +All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. + +## API + +The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. + +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + +## Discussions + +If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). + +## FAQ + +The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. + +## Contribution + +Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. + +And thank you to everyone who has already contributed! + +### Backers + + + +### Contributors + + + +## Legal + +No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). + +## License + +[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) diff --git a/tests/__data__/input/readme_update/generators.log b/tests/__data__/input/readme_update/generators.log index 63cfea058..55adb62b0 100644 --- a/tests/__data__/input/readme_update/generators.log +++ b/tests/__data__/input/readme_update/generators.log @@ -1,75 +1,75 @@ -{"type":"category","filepath":"categories/auto.m3u","count":0} -{"type":"category","filepath":"categories/animation.m3u","count":0} -{"type":"category","filepath":"categories/business.m3u","count":0} -{"type":"category","filepath":"categories/classic.m3u","count":0} -{"type":"category","filepath":"categories/comedy.m3u","count":0} -{"type":"category","filepath":"categories/cooking.m3u","count":0} -{"type":"category","filepath":"categories/culture.m3u","count":0} -{"type":"category","filepath":"categories/documentary.m3u","count":0} -{"type":"category","filepath":"categories/education.m3u","count":0} -{"type":"category","filepath":"categories/entertainment.m3u","count":0} -{"type":"category","filepath":"categories/family.m3u","count":0} -{"type":"category","filepath":"categories/general.m3u","count":2} -{"type":"category","filepath":"categories/kids.m3u","count":0} -{"type":"category","filepath":"categories/legislative.m3u","count":0} -{"type":"category","filepath":"categories/lifestyle.m3u","count":0} -{"type":"category","filepath":"categories/movies.m3u","count":0} -{"type":"category","filepath":"categories/music.m3u","count":0} -{"type":"category","filepath":"categories/news.m3u","count":1} -{"type":"category","filepath":"categories/outdoor.m3u","count":0} -{"type":"category","filepath":"categories/relax.m3u","count":0} -{"type":"category","filepath":"categories/religious.m3u","count":0} -{"type":"category","filepath":"categories/series.m3u","count":0} -{"type":"category","filepath":"categories/science.m3u","count":0} -{"type":"category","filepath":"categories/shop.m3u","count":0} -{"type":"category","filepath":"categories/sports.m3u","count":0} -{"type":"category","filepath":"categories/travel.m3u","count":0} -{"type":"category","filepath":"categories/weather.m3u","count":1} -{"type":"category","filepath":"categories/xxx.m3u","count":1} -{"type":"category","filepath":"categories/undefined.m3u","count":3} -{"type":"country","filepath":"countries/cm.m3u","count":1} -{"type":"country","filepath":"countries/ca.m3u","count":2} -{"type":"country","filepath":"countries/cv.m3u","count":1} -{"type":"country","filepath":"countries/cg.m3u","count":1} -{"type":"country","filepath":"countries/ro.m3u","count":1} -{"type":"subdivision","filepath":"subdivisions/ca-on.m3u","count":1} -{"type":"country","filepath":"countries/ru.m3u","count":2} -{"type":"country","filepath":"countries/rw.m3u","count":1} -{"type":"country","filepath":"countries/re.m3u","count":1} -{"type":"country","filepath":"countries/undefined.m3u","count":2} -{"type":"country","filepath":"countries/bl.m3u","count":1} -{"type":"country","filepath":"countries/sh.m3u","count":1} -{"type":"country","filepath":"countries/kn.m3u","count":1} -{"type":"language","filepath":"languages/cat.m3u","count":1} -{"type":"language","filepath":"languages/eng.m3u","count":1} -{"type":"language","filepath":"languages/fra.m3u","count":1} -{"type":"language","filepath":"languages/rus.m3u","count":1} -{"type":"language","filepath":"languages/undefined.m3u","count":2} -{"type":"region","filepath":"regions/afr.m3u","count":0} -{"type":"region","filepath":"regions/amer.m3u","count":1} -{"type":"region","filepath":"regions/apac.m3u","count":1} -{"type":"region","filepath":"regions/arab.m3u","count":0} -{"type":"region","filepath":"regions/asean.m3u","count":0} -{"type":"region","filepath":"regions/asia.m3u","count":2} -{"type":"region","filepath":"regions/carib.m3u","count":0} -{"type":"region","filepath":"regions/cas.m3u","count":0} -{"type":"region","filepath":"regions/cenamer.m3u","count":0} -{"type":"region","filepath":"regions/cis.m3u","count":1} -{"type":"region","filepath":"regions/emea.m3u","count":3} -{"type":"region","filepath":"regions/eur.m3u","count":3} -{"type":"region","filepath":"regions/hispam.m3u","count":0} -{"type":"region","filepath":"regions/lac.m3u","count":0} -{"type":"region","filepath":"regions/latam.m3u","count":0} -{"type":"region","filepath":"regions/maghreb.m3u","count":0} -{"type":"region","filepath":"regions/mena.m3u","count":0} -{"type":"region","filepath":"regions/mideast.m3u","count":0} -{"type":"region","filepath":"regions/nam.m3u","count":1} -{"type":"region","filepath":"regions/noram.m3u","count":1} -{"type":"region","filepath":"regions/nord.m3u","count":0} -{"type":"region","filepath":"regions/oce.m3u","count":0} -{"type":"region","filepath":"regions/undefined.m3u","count":2} -{"type":"region","filepath":"regions/sas.m3u","count":1} -{"type":"region","filepath":"regions/int.m3u","count":1} -{"type":"region","filepath":"regions/southam.m3u","count":0} -{"type":"region","filepath":"regions/ssa.m3u","count":0} +{"type":"category","filepath":"categories/auto.m3u","count":0} +{"type":"category","filepath":"categories/animation.m3u","count":0} +{"type":"category","filepath":"categories/business.m3u","count":0} +{"type":"category","filepath":"categories/classic.m3u","count":0} +{"type":"category","filepath":"categories/comedy.m3u","count":0} +{"type":"category","filepath":"categories/cooking.m3u","count":0} +{"type":"category","filepath":"categories/culture.m3u","count":0} +{"type":"category","filepath":"categories/documentary.m3u","count":0} +{"type":"category","filepath":"categories/education.m3u","count":0} +{"type":"category","filepath":"categories/entertainment.m3u","count":0} +{"type":"category","filepath":"categories/family.m3u","count":0} +{"type":"category","filepath":"categories/general.m3u","count":2} +{"type":"category","filepath":"categories/kids.m3u","count":0} +{"type":"category","filepath":"categories/legislative.m3u","count":0} +{"type":"category","filepath":"categories/lifestyle.m3u","count":0} +{"type":"category","filepath":"categories/movies.m3u","count":0} +{"type":"category","filepath":"categories/music.m3u","count":0} +{"type":"category","filepath":"categories/news.m3u","count":1} +{"type":"category","filepath":"categories/outdoor.m3u","count":0} +{"type":"category","filepath":"categories/relax.m3u","count":0} +{"type":"category","filepath":"categories/religious.m3u","count":0} +{"type":"category","filepath":"categories/series.m3u","count":0} +{"type":"category","filepath":"categories/science.m3u","count":0} +{"type":"category","filepath":"categories/shop.m3u","count":0} +{"type":"category","filepath":"categories/sports.m3u","count":0} +{"type":"category","filepath":"categories/travel.m3u","count":0} +{"type":"category","filepath":"categories/weather.m3u","count":1} +{"type":"category","filepath":"categories/xxx.m3u","count":1} +{"type":"category","filepath":"categories/undefined.m3u","count":3} +{"type":"country","filepath":"countries/cm.m3u","count":1} +{"type":"country","filepath":"countries/ca.m3u","count":2} +{"type":"country","filepath":"countries/cv.m3u","count":1} +{"type":"country","filepath":"countries/cg.m3u","count":1} +{"type":"country","filepath":"countries/ro.m3u","count":1} +{"type":"subdivision","filepath":"subdivisions/ca-on.m3u","count":1} +{"type":"country","filepath":"countries/ru.m3u","count":2} +{"type":"country","filepath":"countries/rw.m3u","count":1} +{"type":"country","filepath":"countries/re.m3u","count":1} +{"type":"country","filepath":"countries/undefined.m3u","count":2} +{"type":"country","filepath":"countries/bl.m3u","count":1} +{"type":"country","filepath":"countries/sh.m3u","count":1} +{"type":"country","filepath":"countries/kn.m3u","count":1} +{"type":"language","filepath":"languages/cat.m3u","count":1} +{"type":"language","filepath":"languages/eng.m3u","count":1} +{"type":"language","filepath":"languages/fra.m3u","count":1} +{"type":"language","filepath":"languages/rus.m3u","count":1} +{"type":"language","filepath":"languages/undefined.m3u","count":2} +{"type":"region","filepath":"regions/afr.m3u","count":0} +{"type":"region","filepath":"regions/amer.m3u","count":1} +{"type":"region","filepath":"regions/apac.m3u","count":1} +{"type":"region","filepath":"regions/arab.m3u","count":0} +{"type":"region","filepath":"regions/asean.m3u","count":0} +{"type":"region","filepath":"regions/asia.m3u","count":2} +{"type":"region","filepath":"regions/carib.m3u","count":0} +{"type":"region","filepath":"regions/cas.m3u","count":0} +{"type":"region","filepath":"regions/cenamer.m3u","count":0} +{"type":"region","filepath":"regions/cis.m3u","count":1} +{"type":"region","filepath":"regions/emea.m3u","count":3} +{"type":"region","filepath":"regions/eur.m3u","count":3} +{"type":"region","filepath":"regions/hispam.m3u","count":0} +{"type":"region","filepath":"regions/lac.m3u","count":0} +{"type":"region","filepath":"regions/latam.m3u","count":0} +{"type":"region","filepath":"regions/maghreb.m3u","count":0} +{"type":"region","filepath":"regions/mena.m3u","count":0} +{"type":"region","filepath":"regions/mideast.m3u","count":0} +{"type":"region","filepath":"regions/nam.m3u","count":1} +{"type":"region","filepath":"regions/noram.m3u","count":1} +{"type":"region","filepath":"regions/nord.m3u","count":0} +{"type":"region","filepath":"regions/oce.m3u","count":0} +{"type":"region","filepath":"regions/undefined.m3u","count":2} +{"type":"region","filepath":"regions/sas.m3u","count":1} +{"type":"region","filepath":"regions/int.m3u","count":1} +{"type":"region","filepath":"regions/southam.m3u","count":0} +{"type":"region","filepath":"regions/ssa.m3u","count":0} {"type":"region","filepath":"regions/wafr.m3u","count":0} \ No newline at end of file diff --git a/tests/__data__/input/report_create/br.m3u b/tests/__data__/input/report_create/br.m3u index 6dcdaee15..31a869861 100644 --- a/tests/__data__/input/report_create/br.m3u +++ b/tests/__data__/input/report_create/br.m3u @@ -1,6 +1,6 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",VTV [Not 24/7] -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 -#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] -#EXTVLCOPT:http-referrer=https://example2.com/ -https://servilive.com:3126/live/tele2000live.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",VTV [Not 24/7] +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] +#EXTVLCOPT:http-referrer=https://example2.com/ +https://servilive.com:3126/live/tele2000live.m3u8 diff --git a/tests/__data__/input/report_create/cy.m3u b/tests/__data__/input/report_create/cy.m3u index 581d0961b..82d0b78d4 100644 --- a/tests/__data__/input/report_create/cy.m3u +++ b/tests/__data__/input/report_create/cy.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",RIK HD Cyprus -http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 -#EXTINF:-1 tvg-id="",RIK 2 -http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",RIK HD Cyprus +http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 +#EXTINF:-1 tvg-id="",RIK 2 +http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 diff --git a/tests/__data__/input/report_create/uk.m3u b/tests/__data__/input/report_create/uk.m3u index c1deeea97..033f5a36b 100644 --- a/tests/__data__/input/report_create/uk.m3u +++ b/tests/__data__/input/report_create/uk.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 diff --git a/tests/__data__/input/report_create/us.m3u b/tests/__data__/input/report_create/us.m3u index 92cee65b0..78ea4deb5 100644 --- a/tests/__data__/input/report_create/us.m3u +++ b/tests/__data__/input/report_create/us.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",TUTV -https://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",TUTV +https://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8 diff --git a/tests/commands/api/generate.test.ts b/tests/commands/api/generate.test.ts index 7f8f68aa9..931f543cb 100644 --- a/tests/commands/api/generate.test.ts +++ b/tests/commands/api/generate.test.ts @@ -1,25 +1,31 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import fs from 'fs-extra' +import os from 'os' + +let ENV_VAR = + 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/api_generate API_DIR=tests/__data__/output/.api' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/input/api_generate" && SET "API_DIR=tests/__data__/output/.api" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') }) -it('can create streams.json', () => { - execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/api_generate API_DIR=tests/__data__/output/.api npm run api:generate', - { encoding: 'utf8' } - ) +describe('api:generate', () => { + it('can create streams.json', () => { + const cmd = `${ENV_VAR} npm run api:generate` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - expect(content('output/.api/streams.json')).toMatchObject( - content('expected/api_generate/.api/streams.json') - ) + expect(content('tests/__data__/output/.api/streams.json')).toMatchObject( + content('tests/__data__/expected/api_generate/.api/streams.json') + ) + }) }) function content(filepath: string) { - return JSON.parse( - fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) - ) + return JSON.parse(fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' })) } diff --git a/tests/commands/playlist/edit.test.ts b/tests/commands/playlist/edit.test.ts index 4651e5ef8..3334b6dee 100644 --- a/tests/commands/playlist/edit.test.ts +++ b/tests/commands/playlist/edit.test.ts @@ -39,5 +39,4 @@ function checkStdout(stdout: string) { expect(stdout).toContain('TF1.fr (TF1, Tรฉlรฉvision franรงaise 1)') expect(stdout).toContain('Type...') expect(stdout).toContain('Skip') - expect(stdout).toContain("File 'tests/__data__/output/playlist.m3u' successfully saved") } diff --git a/tests/commands/playlist/format.test.ts b/tests/commands/playlist/format.test.ts index d513c8b38..f6c631252 100644 --- a/tests/commands/playlist/format.test.ts +++ b/tests/commands/playlist/format.test.ts @@ -1,30 +1,40 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import * as fs from 'fs-extra' import { glob } from 'glob' +import os from 'os' + +let ENV_VAR = 'STREAMS_DIR=tests/__data__/output/streams' +if (os.platform() === 'win32') { + ENV_VAR = 'SET "STREAMS_DIR=tests/__data__/output/streams" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') fs.copySync('tests/__data__/input/playlist_format', 'tests/__data__/output/streams') }) -it('can format playlists', () => { - execSync('STREAMS_DIR=tests/__data__/output/streams npm run playlist:format', { - encoding: 'utf8' - }) +describe('playlist:format', () => { + it('can format playlists', () => { + const cmd = `${ENV_VAR} npm run playlist:format` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - const files = glob - .sync('tests/__data__/expected/playlist_format/*.m3u') - .map(f => f.replace('tests/__data__/expected/playlist_format/', '')) + const files = glob.sync('tests/__data__/expected/playlist_format/*.m3u').map(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_format/').toString() - files.forEach(filepath => { - expect(content(`output/streams/${filepath}`), filepath).toBe( - content(`expected/playlist_format/${filepath}`) - ) + return fileUrl.replace(pathToRemove, '') + }) + + files.forEach(filepath => { + expect(content(`tests/__data__/output/streams/${filepath}`), filepath).toBe( + content(`tests/__data__/expected/playlist_format/${filepath}`) + ) + }) }) }) function content(filepath: string) { - return fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) } diff --git a/tests/commands/playlist/generate.test.ts b/tests/commands/playlist/generate.test.ts index 389ee022e..4e14d0d30 100644 --- a/tests/commands/playlist/generate.test.ts +++ b/tests/commands/playlist/generate.test.ts @@ -1,36 +1,47 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' +import os, { EOL } from 'node:os' import * as fs from 'fs-extra' import * as glob from 'glob' +let ENV_VAR = + 'STREAMS_DIR=tests/__data__/input/playlist_generate DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output/.gh-pages LOGS_DIR=tests/__data__/output/logs' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "STREAMS_DIR=tests/__data__/input/playlist_generate" && SET "DATA_DIR=tests/__data__/input/data" && SET "PUBLIC_DIR=tests/__data__/output/.gh-pages" && SET "LOGS_DIR=tests/__data__/output/logs" &&' +} + beforeEach(() => { fs.emptyDirSync('tests/__data__/output') }) -it('can generate playlists and logs', () => { - const stdout = execSync( - 'STREAMS_DIR=tests/__data__/input/playlist_generate DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output/.gh-pages LOGS_DIR=tests/__data__/output/logs npm run playlist:generate', - { encoding: 'utf8' } - ) +describe('playlist:generate', () => { + it('can generate playlists and logs', () => { + const cmd = `${ENV_VAR} npm run playlist:generate` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - if (process.env.DEBUG === 'true') console.log(stdout) + const playlists = glob + .sync('tests/__data__/expected/playlist_generate/.gh-pages/**/*.m3u') + .map(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_generate/').toString() - const playlists = glob - .sync('tests/__data__/expected/playlist_generate/.gh-pages/**/*.m3u') - .map((file: string) => file.replace('tests/__data__/expected/playlist_generate/', '')) + return fileUrl.replace(pathToRemove, '') + }) - playlists.forEach((filepath: string) => { - expect(content(`output/${filepath}`), filepath).toBe( - content(`expected/playlist_generate/${filepath}`) + playlists.forEach((filepath: string) => { + expect(content(`tests/__data__/output/${filepath}`), filepath).toBe( + content(`tests/__data__/expected/playlist_generate/${filepath}`) + ) + }) + + expect(content('tests/__data__/output/logs/generators.log').split(EOL).sort()).toStrictEqual( + content('tests/__data__/expected/playlist_generate/logs/generators.log').split(EOL).sort() ) }) - - expect(content('output/logs/generators.log').split('\n').sort()).toStrictEqual( - content('expected/playlist_generate/logs/generators.log').split('\n').sort() - ) }) function content(filepath: string) { - return fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) } diff --git a/tests/commands/playlist/test.test.ts b/tests/commands/playlist/test.test.ts index 0842f0f10..813ed401d 100644 --- a/tests/commands/playlist/test.test.ts +++ b/tests/commands/playlist/test.test.ts @@ -1,19 +1,25 @@ import { execSync } from 'child_process' +import os from 'node:os' type ExecError = { status: number stdout: string } -it('shows an error if the playlist contains a broken link', () => { - try { - execSync('ROOT_DIR=tests/__data__/input npm run playlist:test playlist_test/ag.m3u', { - encoding: 'utf8' - }) - process.exit(1) - } catch (error) { - expect((error as ExecError).status).toBe(1) - expect((error as ExecError).stdout).toContain('playlist_test/ag.m3u') - expect((error as ExecError).stdout).toContain('2 problems (1 errors, 1 warnings)') - } +let ENV_VAR = 'ROOT_DIR=tests/__data__/input' +if (os.platform() === 'win32') { + ENV_VAR = 'SET "ROOT_DIR=tests/__data__/input" &&' +} + +describe('playlist:test', () => { + it('shows an error if the playlist contains a broken link', () => { + const cmd = `${ENV_VAR} npm run playlist:test playlist_test/ag.m3u` + try { + execSync(cmd, { encoding: 'utf8' }) + } catch (error) { + if (process.env.DEBUG === 'true') console.log(cmd, error) + expect((error as ExecError).stdout).toContain('playlist_test/ag.m3u') + expect((error as ExecError).stdout).toContain('2 problems (1 errors, 1 warnings)') + } + }) }) diff --git a/tests/commands/playlist/update.test.ts b/tests/commands/playlist/update.test.ts index cc104d8cc..a430b8df4 100644 --- a/tests/commands/playlist/update.test.ts +++ b/tests/commands/playlist/update.test.ts @@ -1,37 +1,45 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import * as fs from 'fs-extra' import { glob } from 'glob' +import os from 'os' + +let ENV_VAR = 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/output/streams' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/output/streams" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') fs.copySync('tests/__data__/input/playlist_update', 'tests/__data__/output/streams') }) -it('can update playlists', () => { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/output/streams npm run playlist:update --silent', - { - encoding: 'utf8' - } - ) +describe('playlist:update', () => { + it('can update playlists', () => { + const cmd = `${ENV_VAR} npm run playlist:update --silent` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - const files = glob - .sync('tests/__data__/expected/playlist_update/*.m3u') - .map(f => f.replace('tests/__data__/expected/playlist_update/', '')) + const files = glob.sync('tests/__data__/expected/playlist_update/*.m3u').map(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_update/').toString() - files.forEach(filepath => { - expect(content(`output/streams/${filepath}`), filepath).toBe( - content(`expected/playlist_update/${filepath}`) + return fileUrl.replace(pathToRemove, '') + }) + + files.forEach(filepath => { + expect(content(`tests/__data__/output/streams/${filepath}`), filepath).toBe( + content(`tests/__data__/expected/playlist_update/${filepath}`) + ) + }) + + expect(stdout).toBe( + 'OUTPUT=closes #14151, closes #14150, closes #14110, closes #14120, closes #14175, closes #14105, closes #14104, closes #14057, closes #14034, closes #13964, closes #13893, closes #13881, closes #13793, closes #13751, closes #13715\n' ) }) - - expect(stdout).toBe( - 'OUTPUT=closes #14151, closes #14150, closes #14110, closes #14120, closes #14175, closes #14105, closes #14104, closes #14057, closes #14034, closes #13964, closes #13893, closes #13881, closes #13793, closes #13751, closes #13715\n' - ) }) function content(filepath: string) { - return fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) } diff --git a/tests/commands/playlist/validate.test.ts b/tests/commands/playlist/validate.test.ts index b2a43324e..feef97bbf 100644 --- a/tests/commands/playlist/validate.test.ts +++ b/tests/commands/playlist/validate.test.ts @@ -1,41 +1,45 @@ import { execSync } from 'child_process' +import os from 'os' type ExecError = { status: number stdout: string } -it('show an error if channel id in the blocklist', () => { - try { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/playlist_validate npm run playlist:validate -- us_blocked.m3u', - { - encoding: 'utf8' - } - ) - if (process.env.DEBUG === 'true') console.log(stdout) - process.exit(1) - } catch (error) { - if (process.env.DEBUG === 'true') console.log((error as ExecError).stdout) - expect((error as ExecError).status).toBe(1) - expect((error as ExecError).stdout).toContain(`us_blocked.m3u - 2 error "FoxSports2.us" is on the blocklist due to claims of copyright holders (https://github.com/iptv-org/iptv/issues/0002) - 4 error "TVN.pl" is on the blocklist due to NSFW content (https://github.com/iptv-org/iptv/issues/0003) +let ENV_VAR = + 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/playlist_validate' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/input/playlist_validate" &&' +} -2 problems (2 errors, 0 warnings)`) - } -}) - -it('show a warning if channel has wrong id', () => { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/playlist_validate npm run playlist:validate -- wrong_id.m3u', - { - encoding: 'utf8' +describe('playlist:validate', () => { + it('show an error if channel id in the blocklist', () => { + const cmd = `${ENV_VAR} npm run playlist:validate -- us_blocked.m3u` + try { + execSync(cmd, { encoding: 'utf8' }) + } catch (error) { + if (process.env.DEBUG === 'true') console.log(cmd, error) + expect((error as ExecError).stdout).toContain('us_blocked.m3u') + expect((error as ExecError).stdout).toContain( + '2 error "FoxSports2.us" is on the blocklist due to claims of copyright holders (https://github.com/iptv-org/iptv/issues/0002)' + ) + expect((error as ExecError).stdout).toContain( + '4 error "TVN.pl" is on the blocklist due to NSFW content (https://github.com/iptv-org/iptv/issues/0003)' + ) + expect((error as ExecError).stdout).toContain('2 problems (2 errors, 0 warnings)') } - ) - if (process.env.DEBUG === 'true') console.log(stdout) + }) - expect(stdout).toContain( - 'wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n' - ) + it('show a warning if channel has wrong id', () => { + const cmd = `${ENV_VAR} npm run playlist:validate -- wrong_id.m3u` + try { + execSync(cmd, { encoding: 'utf8' }) + } catch (error) { + if (process.env.DEBUG === 'true') console.log(cmd, error) + expect((error as ExecError).stdout).toContain( + 'wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n' + ) + } + }) }) diff --git a/tests/commands/readme/update.test.ts b/tests/commands/readme/update.test.ts index f15e71f48..061179ed4 100644 --- a/tests/commands/readme/update.test.ts +++ b/tests/commands/readme/update.test.ts @@ -1,6 +1,15 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import fs from 'fs-extra' import path from 'path' +import os from 'os' + +let ENV_VAR = + 'DATA_DIR=tests/__data__/input/data LOGS_DIR=tests/__data__/input/readme_update README_DIR=tests/__data__/output/.readme' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "LOGS_DIR=tests/__data__/input/readme_update" && SET "README_DIR=tests/__data__/output/.readme" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') @@ -13,23 +22,20 @@ beforeEach(() => { 'tests/__data__/input/readme_update/.readme/template.md', 'tests/__data__/output/.readme/template.md' ) - - execSync( - 'DATA_DIR=tests/__data__/input/data LOGS_DIR=tests/__data__/input/readme_update README_DIR=tests/__data__/output/.readme npm run readme:update', - { encoding: 'utf8' } - ) }) -it('can update readme.md', () => { - expect(content('tests/__data__/output/readme.md')).toEqual( - content('tests/__data__/expected/readme_update/_readme.md') - ) +describe('readme:update', () => { + it('can update readme.md', () => { + const cmd = `${ENV_VAR} npm run readme:update` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + + expect(content('tests/__data__/output/readme.md')).toEqual( + content('tests/__data__/expected/readme_update/_readme.md') + ) + }) }) function content(filepath: string) { - const data = fs.readFileSync(path.resolve(filepath), { - encoding: 'utf8' - }) - - return JSON.stringify(data) + return JSON.stringify(fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' })) } diff --git a/tests/commands/report/create.test.ts b/tests/commands/report/create.test.ts index de449347a..18c799445 100644 --- a/tests/commands/report/create.test.ts +++ b/tests/commands/report/create.test.ts @@ -1,15 +1,20 @@ import { execSync } from 'child_process' +import os from 'os' -it('can create report', () => { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/report_create npm run report:create', - { - encoding: 'utf8' - } - ) +let ENV_VAR = 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/report_create' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/input/report_create" &&' +} - expect( - stdout.includes(` +describe('report:create', () => { + it('can create report', () => { + const cmd = `${ENV_VAR} npm run report:create` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + + expect( + stdout.includes(` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ (index) โ”‚ issueNumber โ”‚ type โ”‚ streamId โ”‚ streamUrl โ”‚ status โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค @@ -20,5 +25,6 @@ it('can create report', () => { โ”‚ 4 โ”‚ 16120 โ”‚ 'broken stream' โ”‚ undefined โ”‚ 'http://190.61.102.67:2000/play/a038/index.m3u8' โ”‚ 'wrong_link' โ”‚ โ”‚ 5 โ”‚ 19956 โ”‚ 'channel search' โ”‚ 'CNBCe.tr' โ”‚ undefined โ”‚ 'invalid_id' โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜`) - ).toBe(true) + ).toBe(true) + }) }) diff --git a/yarn.lock b/yarn.lock index 94e14d2f5..188beea60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -366,24 +366,21 @@ "@eslint/core" "^0.12.0" levn "^0.4.1" -"@freearhey/core@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@freearhey/core/-/core-0.7.0.tgz" - integrity sha512-HXkKPYGY7ife7JAc1q/Qxzy0WUdSnyt3rHThCShZHgnH3rz0tpkjHFW7LNegB3he0IKn/Zc95/YSOQ97Fq8ctA== +"@freearhey/core@^0.8.2": + version "0.8.2" + resolved "https://registry.npmjs.org/@freearhey/core/-/core-0.8.2.tgz" + integrity sha512-jlb1XUbhUf3lqD3B9Wmx3c8qYG4+s1I0cr2FFQfiMpJh4nMvfUNdJr2OhH31S/dbNP12ycT6RPVoZ2j2G3+mXA== dependencies: - "@types/fs-extra" "^11.0.2" - "@types/lodash" "^4.14.198" - "@types/luxon" "^3.3.2" - fs-extra "^11.1.1" - glob "^10.3.4" + consola "^3.4.2" + dayjs "^1.11.13" + fs-extra "^11.3.0" + glob "^11.0.1" lodash "^4.17.21" - luxon "^3.4.3" - natural-orderby "^3.0.2" - node-gzip "^1.1.2" + natural-orderby "^5.0.0" normalize-url "^6.1.0" object-treeify "^2.1.1" - run-script-os "^1.1.6" - signale "^1.4.0" + pako "^2.1.0" + timer-node "^5.0.9" "@freearhey/search-js@^0.1.2": version "0.1.2" @@ -967,11 +964,6 @@ resolved "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz" integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" @@ -1041,10 +1033,10 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/fs-extra@^11.0.2": - version "11.0.2" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz" - integrity sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ== +"@types/fs-extra@^11.0.4": + version "11.0.4" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== dependencies: "@types/jsonfile" "*" "@types/node" "*" @@ -1089,9 +1081,9 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/jsonfile@*": - version "6.1.1" - resolved "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz" - integrity sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png== + version "6.1.4" + resolved "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== dependencies: "@types/node" "*" @@ -1100,11 +1092,6 @@ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz" integrity sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg== -"@types/luxon@^3.3.2": - version "3.3.2" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz" - integrity sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ== - "@types/node@*", "@types/node@>=18": version "22.13.10" resolved "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz" @@ -1263,16 +1250,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" + version "6.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -1486,15 +1466,6 @@ caniuse-lite@^1.0.30001688: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz" integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== -chalk@^2.3.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -1554,13 +1525,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -1573,11 +1537,6 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - colors@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" @@ -1615,6 +1574,11 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +consola@^3.4.2: + version "3.4.2" + resolved "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + console-table-printer@^2.12.1: version "2.12.1" resolved "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz" @@ -1659,6 +1623,11 @@ dateformat@^5.0.3: resolved "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz" integrity sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA== +dayjs@^1.11.13: + version "1.11.13" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.4.0" resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" @@ -1771,11 +1740,6 @@ escalade@^3.1.1, escalade@^3.2.0: resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" @@ -1968,13 +1932,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" @@ -1996,13 +1953,6 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" @@ -2062,10 +2012,10 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -fs-extra@^11.1.1: - version "11.1.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== +fs-extra@^11.3.0: + version "11.3.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -2132,21 +2082,10 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^10.3.4: - version "10.3.4" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz" - integrity sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz" - integrity sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g== +glob@^11.0.0, glob@^11.0.1, glob@^11.0.2: + version "11.0.2" + resolved "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz" + integrity sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ== dependencies: foreground-child "^3.1.0" jackspeak "^4.0.1" @@ -2194,7 +2133,7 @@ globals@^16.0.0: resolved "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz" integrity sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A== -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -2209,11 +2148,6 @@ graphql@^16.8.1: resolved "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz" integrity sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ== -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" @@ -2484,19 +2418,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.0.3: - version "2.3.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz" - integrity sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jackspeak@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz" - integrity sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw== + version "4.1.0" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz" + integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -2908,11 +2833,6 @@ json-buffer@3.0.1: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" @@ -2972,24 +2892,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" @@ -3020,9 +2922,9 @@ lodash@^4.17.21: integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== lru-cache@^11.0.0: - version "11.0.2" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz" - integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== + version "11.1.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz" + integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== lru-cache@^5.1.1: version "5.1.1" @@ -3031,16 +2933,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - -luxon@^3.4.3: - version "3.4.3" - resolved "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz" - integrity sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg== - m3u-linter@^0.4.2: version "0.4.2" resolved "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.4.2.tgz" @@ -3133,13 +3025,6 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^9.0.4: version "9.0.5" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" @@ -3147,7 +3032,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: +minipass@^7.1.2: version "7.1.2" resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -3191,21 +3076,16 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -natural-orderby@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/natural-orderby/-/natural-orderby-3.0.2.tgz" - integrity sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g== +natural-orderby@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz" + integrity sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg== node-cleanup@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz" integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== -node-gzip@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz" - integrity sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw== - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" @@ -3284,13 +3164,6 @@ outvariant@^1.4.0, outvariant@^1.4.3: resolved "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz" integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -3305,13 +3178,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" @@ -3326,11 +3192,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" @@ -3341,6 +3202,11 @@ package-json-from-dist@^1.0.0: resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -3348,14 +3214,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -3366,11 +3224,6 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -3391,14 +3244,6 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz" @@ -3422,24 +3267,11 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - pirates@^4.0.4: version "4.0.6" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -pkg-conf@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz" - integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" @@ -3574,11 +3406,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-script-os@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz" - integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -3626,15 +3453,6 @@ signal-exit@^4.1.0: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -signale@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz" - integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w== - dependencies: - chalk "^2.3.2" - figures "^2.0.0" - pkg-conf "^2.1.0" - simple-wcswidth@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz" @@ -3768,11 +3586,6 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" @@ -3788,13 +3601,6 @@ strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" @@ -3823,6 +3629,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +timer-node@^5.0.9: + version "5.0.9" + resolved "https://registry.npmjs.org/timer-node/-/timer-node-5.0.9.tgz" + integrity sha512-zXxCE/5/YDi0hY9pygqgRqjRbrFRzigYxOudG0I3syaqAAmX9/w9sxex1bNFCN6c1S66RwPtEIJv65dN+1psew== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -3925,9 +3736,9 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== update-browserslist-db@^1.1.1: version "1.1.1"