From 60fde4cc8c03f02b47ebe0b6373971e610081713 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Thu, 9 Oct 2025 03:20:46 +0300 Subject: [PATCH] Replace LF with CRLF --- .github/CODE_OF_CONDUCT.md | 26 +- .github/FUNDING.yml | 24 +- .gitignore | 16 +- .readme/.gitignore | 6 +- .readme/template.md | 176 +- CONTRIBUTING.md | 430 +- FAQ.md | 46 +- LICENSE | 48 +- PLAYLISTS.md | 176 +- README.md | 158 +- m3u-linter.json | 34 +- scripts/constants.ts | 22 +- scripts/core/logParser.ts | 28 +- scripts/core/numberParser.ts | 20 +- scripts/core/proxyParser.ts | 62 +- scripts/generators/generator.ts | 6 +- scripts/models/issue.ts | 38 +- scripts/tables/index.ts | 8 +- .../playlist_generate/logs/generators.log | 170 +- .../expected/readme_update/playlists.md | 354 +- tests/__data__/input/issues.js | 4794 ++++++++--------- tests/__data__/input/playlist_test/results.js | 28 +- tests/commands/api/generate.test.ts | 52 +- tests/commands/playlist/edit.test.ts | 76 +- tests/commands/playlist/format.test.ts | 73 +- tests/commands/playlist/generate.test.ts | 86 +- tests/commands/playlist/test.test.ts | 42 +- tests/commands/playlist/validate.test.ts | 89 +- tests/commands/readme/update.test.ts | 52 +- tsconfig.json | 38 +- 30 files changed, 3590 insertions(+), 3588 deletions(-) diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 760ee26d2c..91ec0a38e8 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -1,13 +1,13 @@ -# Contributor Code of Conduct - -As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. - -We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion. - -Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. - -This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html +# Contributor Code of Conduct + +As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion. + +Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 7d4c3fe13e..0e164e4b09 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,12 +1,12 @@ -# These are supported funding model platforms - -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username -open_collective: iptv-org -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: iptv-org +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.gitignore b/.gitignore index ad225b41d1..199606266c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ -node_modules -.artifacts -.secrets -.actrc -.DS_Store -/.gh-pages/ -/.api/ -.env +node_modules +.artifacts +.secrets +.actrc +.DS_Store +/.gh-pages/ +/.api/ +.env /temp/ \ No newline at end of file diff --git a/.readme/.gitignore b/.readme/.gitignore index a2ac441348..3d74e4ba3f 100644 --- a/.readme/.gitignore +++ b/.readme/.gitignore @@ -1,4 +1,4 @@ -_categories.md -_countries.md -_languages.md +_categories.md +_countries.md +_languages.md _regions.md \ No newline at end of file diff --git a/.readme/template.md b/.readme/template.md index 74e1549f92..4b7a9594e2 100644 --- a/.readme/template.md +++ b/.readme/template.md @@ -1,88 +1,88 @@ -## Playlists - -There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723). - -### Grouped by category - -Playlists in which channels are grouped by category. - -
-Expand -
- -``` -https://iptv-org.github.io/iptv/index.category.m3u -``` - -Same thing, but split up into separate files: - - -#include "./.readme/_categories.md" - -
- -### Grouped by language - -Playlists in which channels are grouped by the language in which they are broadcast. - -
-Expand -
- -``` -https://iptv-org.github.io/iptv/index.language.m3u -``` - -Same thing, but split up into separate files: - - -#include "./.readme/_languages.md" - -
- -### Grouped by broadcast area - -Playlists in which channels are grouped by broadcast area. - -
-Expand - -#### Countries - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - -#include "./.readme/_countries.md" - -#### Regions - - -#include "./.readme/_regions.md" - -
- -### Grouped by sources - -Playlists in which channels are grouped by broadcast source. - -
-Expand -
- -To use the playlist, simply replace `` in the link below with the name of one of the files in the [streams](streams) folder. - -``` -https://iptv-org.github.io/iptv/sources/.m3u -``` - -
- -Also, any of our internal playlists are available in raw form (without any filtering or sorting) at this link: - -``` -https://iptv-org.github.io/iptv/raw/.m3u -``` +## Playlists + +There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723). + +### Grouped by category + +Playlists in which channels are grouped by category. + +
+Expand +
+ +``` +https://iptv-org.github.io/iptv/index.category.m3u +``` + +Same thing, but split up into separate files: + + +#include "./.readme/_categories.md" + +
+ +### Grouped by language + +Playlists in which channels are grouped by the language in which they are broadcast. + +
+Expand +
+ +``` +https://iptv-org.github.io/iptv/index.language.m3u +``` + +Same thing, but split up into separate files: + + +#include "./.readme/_languages.md" + +
+ +### Grouped by broadcast area + +Playlists in which channels are grouped by broadcast area. + +
+Expand + +#### Countries + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + +#include "./.readme/_countries.md" + +#### Regions + + +#include "./.readme/_regions.md" + +
+ +### Grouped by sources + +Playlists in which channels are grouped by broadcast source. + +
+Expand +
+ +To use the playlist, simply replace `` in the link below with the name of one of the files in the [streams](streams) folder. + +``` +https://iptv-org.github.io/iptv/sources/.m3u +``` + +
+ +Also, any of our internal playlists are available in raw form (without any filtering or sorting) at this link: + +``` +https://iptv-org.github.io/iptv/raw/.m3u +``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fefa6edd3d..925c5b8584 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,215 +1,215 @@ -# Contributing Guide - -- [How to?](#how-to) -- [Stream Description Scheme](#stream-description-scheme) -- [Project Structure](#project-structure) -- [Scripts](#scripts) -- [Workflows](#workflows) - -## How to? - -### How to add a new stream link to a playlists? - -You have several options: - -1. Create a new request using this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams:add&projects=&template=1_streams_add.yml&title=Add%3A+) and if approved, the link will automatically be added to the playlist on the next update. - -2. Add the link to the playlist directly using a [pull request](https://github.com/iptv-org/iptv/pulls). - -Regardless of which option you choose, before posting your request please do the following: - -- Make sure the link you want to add works stably. To check this, open it in one of the players (for example, [VLC player](https://www.videolan.org/vlc/index.html)) and watch the broadcast for at least a minute (some test streams are interrupted after 15-30 seconds). -- Make sure the link is not already in the playlist. This can be done by [searching](https://github.com/search?q=repo%3Aiptv-org%2Fiptv+http%3A%2F%2Fexample.com&type=code) the repository. -- Find the ID of the channel you want on [iptv-org.github.io](https://iptv-org.github.io/). If your desired channel is not on the list you can leave a request to add it [here](https://github.com/iptv-org/database/issues/new/choose). -- Make sure the channel is not blocklisted. It can also be done through [iptv-org.github.io](https://iptv-org.github.io/). -- The link does not lead to the Xtream Codes server. [Why don't you accept links to Xtream Codes server?](FAQ.md#why-dont-you-accept-links-to-xtream-codes-server) -- If you know that the broadcast only works in certain countries or it is periodically interrupted, do not forget to indicate this in the request. - -A requests without a valid stream ID or working link to the stream will be closed immediately. - -Note all links in playlists are sorted automatically by scripts so there is no need to sort them manually. For more info, see [Scripts](#scripts). - -### How to fix the stream description? - -Most of the stream description (channel name, feed name, categories, languages, broadcast area, logo) we load from the [iptv-org/database](https://github.com/iptv-org/database) using the stream ID. - -So first of all, make sure that the desired stream has the correct ID. A full list of all supported channels and their corresponding IDs can be found on [iptv-org.github.io](https://iptv-org.github.io/). To change the stream ID of any link in the playlist, just fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams%3Aedit&projects=&template=2_streams_edit.yml&title=Edit%3A+). - -If, however, you have found an error in the database itself, this is the place to go: [How to edit channel description?](https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#how-to-edit-channel-description) - -### How to distinguish a link to an Xtream Codes server from a regular one? - -Most of them have this form: - -`http(s)://{hostname}:{port}/{username}/{password}/{channelID}` (port is often `25461`) - -To make sure that the link leads to the Xtream Codes server, copy the `hostname`, `port`, `username` and `password` into the link below and try to open it in a browser: - -`http(s)://{hostname}:{port}/panel_api.php?username={username}&password={password}` - -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=streams:remove&projects=&template=3_streams_report.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: - -- The link is still in our playlists. You can verify this by [searching](https://github.com/search?q=repo%3Aiptv-org%2Fiptv+http%3A%2F%2Fexample.com&type=code) the repository. -- The link really doesn't work and is not just [geo-blocked](https://en.wikipedia.org/wiki/Geo-blocking). To check this, you can either use a [VPN](https://en.wikipedia.org/wiki/Virtual_private_network) or services such as [streamtest.in](https://streamtest.in/). - -An issue without a valid link will be closed immediately. - -### How to find a broken stream? - -For starters, you can just try to open the playlist in [VLC player](https://www.videolan.org/vlc/). The player outputs all errors to the log (Tools -> Messages) so you'll be able to determine pretty accurately why a link isn't working. - -Another way to test links is to use the NPM script. To do this, first make sure you have [Node.js](https://nodejs.org/en) installed on your system. Then go to the `iptv` folder using [Console](https://en.wikipedia.org/wiki/Windows_Console) (or [Terminal]() if you have macOS) and run the command: - -```sh -npm run playlist:test path/to/playlist.m3u -``` - -This command will run an automatic check of all links in the playlist and display their status: - -```sh -npm run playlist:test streams/fr.m3u - -streams/fr.m3u -┌─────┬───────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────┐ -│ │ tvg-id │ url │ status │ -├─────┼───────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────┤ -│ 0 │ 6ter.fr │ https://origin-caf900c010ea8046.live.6cloud.fr/out/v1/29c7a579af3348b48230f76cd75699a5/dash_short... │ LOADING... │ -│ 1 │ 20MinutesTV.fr │ https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8 │ FFMPEG_STREAMS_NOT_FOUND │ -│ 2 │ │ https://video1.getstreamhosting.com:1936/8420/8420/playlist.m3u8 │ OK │ -│ 3 │ ADNTVPlus.fr │ https://samsunguk-adn-samsung-fre-qfrlc.amagi.tv/playlist/samsunguk-adn-samsung-fre/playlist.m3u8 │ HTTP_FORBIDDEN │ -│ 4 │ Africa24.fr │ https://edge12.vedge.infomaniak.com/livecast/ik:africa24/manifest.m3u8 │ OK │ -│ 5 │ Africa24English.fr │ https://edge17.vedge.infomaniak.com/livecast/ik:africa24sport/manifest.m3u8 │ OK │ -│ 6 │ AfricanewsEnglish.fr │ https://37c774660687468c821a51190046facf.mediatailor.us-east-1.amazonaws.com/v1/master/04fd913bb2... │ HTTP_GATEWAY_TIMEOUT │ -│ 7 │ AlpedHuezTV.fr │ https://edge.vedge.infomaniak.com/livecast/ik:adhtv/chunklist.m3u8 │ HTTP_NOT_FOUND │ -``` - -After that, all you have to do is report any broken streams you find. - -### How to replace a broken stream? - -This can be done either by filling out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams%3Aedit&projects=&template=2_streams_edit.yml&title=Edit%3A+). - -Either by directly updating the files in the [/streams](/streams) folder and then creating a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests). - -### How to 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=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. - -Please note that we only accept removal requests from channel owners and their official representatives, all other requests will be closed immediately. - -## Stream Description Scheme - -For a stream to be approved, its description must follow this template: - -``` -#EXTINF:-1 tvg-id="STREAM_ID",STREAM_TITLE (QUALITY) [LABEL] -STREAM_URL -``` - -| Attribute | Description | Required | Valid values | -| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------- | -| `STREAM_ID` | Stream ID consisting of channel ID and feed ID. Full list of supported channels with corresponding ID could be found on [iptv-org.github.io](https://iptv-org.github.io/). | Optional | `` or `@` | -| `STREAM_TITLE` | Stream title consisting of channel name and feed name. May contain any characters except: `,`, `[`, `]`. | Required | - | -| `QUALITY` | Maximum stream quality. | Optional | `2160p`, `1080p`, `720p`, `480p`, `360p` etc | -| `LABEL` | Specified in cases where the broadcast for some reason may not be available to some users. | Optional | `Geo-blocked` or `Not 24/7` | -| `STREAM_URL` | Stream URL. | Required | - | - -Example: - -```xml -#EXTINF:-1 tvg-id="ExampleTV.us@East",Example TV East (720p) [Not 24/7] -https://example.com/playlist.m3u8 -``` - -Also, if necessary, you can specify custom [HTTP User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) and [HTTP Referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) through additional attributes: - -```xml -#EXTINF:-1 tvg-id="ExampleTV.us" http-referrer="http://example.com/" http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)",Example TV -http://example.com/stream.m3u8 -``` - -or use player-specific directives: - -_VLC_ - -```xml -#EXTINF:-1 tvg-id="ExampleTV.us@VLC",Example TV -#EXTVLCOPT:http-referrer=http://example.com/ -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) -http://example.com/stream.m3u8 -``` - -_Kodi_ - -```xml -#EXTINF:-1 tvg-id="ExampleTV.us@Kodi",Example TV -#KODIPROP:inputstream=inputstream.adaptive -#KODIPROP:inputstream.adaptive.stream_headers=Referer=http://example.com/&User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) -http://example.com/stream.m3u8 -``` - -## Project Structure - -- `.github/` - - `ISSUE_TEMPLATE/`: issue templates for the repository. - - `workflows`: contains [GitHub actions](https://docs.github.com/en/actions/quickstart) workflows. - - `CODE_OF_CONDUCT.md`: rules you shouldn't break if you don't want to get banned. -- `.readme/` - - `config.json`: config for the `markdown-include` package, which is used to compile everything into one `PLAYLISTS.md` file. - - `preview.png`: image displayed in the `README.md`. - - `template.md`: template for `PLAYLISTS.md`. -- `scripts/`: contains all scripts used in the repository. -- `streams/`: contains all streams broken down by the country from which they are broadcast. -- `tests/`: contains tests to check the scripts. -- `CONTRIBUTING.md`: file you are currently reading. -- `PLAYLISTS.md`: auto-updated list of available playlists. -- `README.md`: project description. - -## Scripts - -These scripts are created to automate routine processes in the repository and make it a bit easier to maintain. - -For scripts to work, you must have [Node.js](https://nodejs.org/en) installed on your computer. - -To run scripts use the `npm run ` command. - -- `act:check`: allows to run the [check](https://github.com/iptv-org/iptv/blob/master/.github/workflows/check.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). -- `act:format`: allows to test the [format](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). -- `act:update`: allows to test the [update](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). -- `api:load`: downloads the latest channel and stream data from the [iptv-org/api](https://github.com/iptv-org/api). -- `api:generate`: generates a JSON file with all streams for the [iptv-org/api](https://github.com/iptv-org/api) repository. -- `api:deploy`: allows to manually upload a JSON file created via `api:generate` to the [iptv-org/api](https://github.com/iptv-org/api) repository. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository. -- `playlist:format`: formats internal playlists. The process includes [URL normalization](https://en.wikipedia.org/wiki/URI_normalization), duplicate removal, removing invalid id's and sorting links by channel name, quality, and label. -- `playlist:update`: triggers an update of internal playlists. The process involves processing approved requests from issues. -- `playlist:generate`: generates all public playlists. -- `playlist:validate`: сhecks ids and links in internal playlists for errors. -- `playlist:lint`: сhecks internal playlists for syntax errors. -- `playlist:test`: tests links in internal playlists. -- `playlist:edit`: utility for quick streams mapping. -- `playlist:deploy`: allows to manually publish all generated via `playlist:generate` playlists. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository. -- `readme:update`: updates the list of playlists in [README.md](README.md). -- `report:create`: creates a report on current issues. -- `check`: (shorthand) sequentially runs the `playlist:lint` and `playlist:validate` scripts. -- `format`: (shorthand) runs the `playlist:format` script. -- `update`: (shorthand) sequentially runs the `playlist:generate`, `api:generate` and `readme:update` scripts. -- `deploy`: (shorthand) sequentially runs the `playlist:deploy` and `api:deploy` scripts. -- `lint`: сhecks the scripts for syntax errors. -- `test`: runs a test of all the scripts described above. - -## Workflows - -To automate the run of the scripts described above, we use the [GitHub Actions workflows](https://docs.github.com/en/actions/using-workflows). - -Each workflow includes its own set of scripts that can be run either manually or in response to an event. - -- `check`: sequentially runs the `api:load`, `playlist:check` and `playlist:validate` scripts when a new pull request appears, and blocks the merge if it detects an error in it. -- `format`: sequentially runs `api:load`, `playlist:format`, `playlist:lint` and `playlist:validate` scripts. -- `update`: every day at 0:00 UTC sequentially runs `api:load`, `playlist:update`, `playlist:lint`, `playlist:validate`, `playlist:generate`, `api:generate` and `readme:update` scripts and deploys the output files if successful. +# Contributing Guide + +- [How to?](#how-to) +- [Stream Description Scheme](#stream-description-scheme) +- [Project Structure](#project-structure) +- [Scripts](#scripts) +- [Workflows](#workflows) + +## How to? + +### How to add a new stream link to a playlists? + +You have several options: + +1. Create a new request using this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams:add&projects=&template=1_streams_add.yml&title=Add%3A+) and if approved, the link will automatically be added to the playlist on the next update. + +2. Add the link to the playlist directly using a [pull request](https://github.com/iptv-org/iptv/pulls). + +Regardless of which option you choose, before posting your request please do the following: + +- Make sure the link you want to add works stably. To check this, open it in one of the players (for example, [VLC player](https://www.videolan.org/vlc/index.html)) and watch the broadcast for at least a minute (some test streams are interrupted after 15-30 seconds). +- Make sure the link is not already in the playlist. This can be done by [searching](https://github.com/search?q=repo%3Aiptv-org%2Fiptv+http%3A%2F%2Fexample.com&type=code) the repository. +- Find the ID of the channel you want on [iptv-org.github.io](https://iptv-org.github.io/). If your desired channel is not on the list you can leave a request to add it [here](https://github.com/iptv-org/database/issues/new/choose). +- Make sure the channel is not blocklisted. It can also be done through [iptv-org.github.io](https://iptv-org.github.io/). +- The link does not lead to the Xtream Codes server. [Why don't you accept links to Xtream Codes server?](FAQ.md#why-dont-you-accept-links-to-xtream-codes-server) +- If you know that the broadcast only works in certain countries or it is periodically interrupted, do not forget to indicate this in the request. + +A requests without a valid stream ID or working link to the stream will be closed immediately. + +Note all links in playlists are sorted automatically by scripts so there is no need to sort them manually. For more info, see [Scripts](#scripts). + +### How to fix the stream description? + +Most of the stream description (channel name, feed name, categories, languages, broadcast area, logo) we load from the [iptv-org/database](https://github.com/iptv-org/database) using the stream ID. + +So first of all, make sure that the desired stream has the correct ID. A full list of all supported channels and their corresponding IDs can be found on [iptv-org.github.io](https://iptv-org.github.io/). To change the stream ID of any link in the playlist, just fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams%3Aedit&projects=&template=2_streams_edit.yml&title=Edit%3A+). + +If, however, you have found an error in the database itself, this is the place to go: [How to edit channel description?](https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#how-to-edit-channel-description) + +### How to distinguish a link to an Xtream Codes server from a regular one? + +Most of them have this form: + +`http(s)://{hostname}:{port}/{username}/{password}/{channelID}` (port is often `25461`) + +To make sure that the link leads to the Xtream Codes server, copy the `hostname`, `port`, `username` and `password` into the link below and try to open it in a browser: + +`http(s)://{hostname}:{port}/panel_api.php?username={username}&password={password}` + +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=streams:remove&projects=&template=3_streams_report.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: + +- The link is still in our playlists. You can verify this by [searching](https://github.com/search?q=repo%3Aiptv-org%2Fiptv+http%3A%2F%2Fexample.com&type=code) the repository. +- The link really doesn't work and is not just [geo-blocked](https://en.wikipedia.org/wiki/Geo-blocking). To check this, you can either use a [VPN](https://en.wikipedia.org/wiki/Virtual_private_network) or services such as [streamtest.in](https://streamtest.in/). + +An issue without a valid link will be closed immediately. + +### How to find a broken stream? + +For starters, you can just try to open the playlist in [VLC player](https://www.videolan.org/vlc/). The player outputs all errors to the log (Tools -> Messages) so you'll be able to determine pretty accurately why a link isn't working. + +Another way to test links is to use the NPM script. To do this, first make sure you have [Node.js](https://nodejs.org/en) installed on your system. Then go to the `iptv` folder using [Console](https://en.wikipedia.org/wiki/Windows_Console) (or [Terminal]() if you have macOS) and run the command: + +```sh +npm run playlist:test path/to/playlist.m3u +``` + +This command will run an automatic check of all links in the playlist and display their status: + +```sh +npm run playlist:test streams/fr.m3u + +streams/fr.m3u +┌─────┬───────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────┐ +│ │ tvg-id │ url │ status │ +├─────┼───────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────┤ +│ 0 │ 6ter.fr │ https://origin-caf900c010ea8046.live.6cloud.fr/out/v1/29c7a579af3348b48230f76cd75699a5/dash_short... │ LOADING... │ +│ 1 │ 20MinutesTV.fr │ https://lives.digiteka.com/stream/86d3e867-a272-496b-8412-f59aa0104771/index.m3u8 │ FFMPEG_STREAMS_NOT_FOUND │ +│ 2 │ │ https://video1.getstreamhosting.com:1936/8420/8420/playlist.m3u8 │ OK │ +│ 3 │ ADNTVPlus.fr │ https://samsunguk-adn-samsung-fre-qfrlc.amagi.tv/playlist/samsunguk-adn-samsung-fre/playlist.m3u8 │ HTTP_FORBIDDEN │ +│ 4 │ Africa24.fr │ https://edge12.vedge.infomaniak.com/livecast/ik:africa24/manifest.m3u8 │ OK │ +│ 5 │ Africa24English.fr │ https://edge17.vedge.infomaniak.com/livecast/ik:africa24sport/manifest.m3u8 │ OK │ +│ 6 │ AfricanewsEnglish.fr │ https://37c774660687468c821a51190046facf.mediatailor.us-east-1.amazonaws.com/v1/master/04fd913bb2... │ HTTP_GATEWAY_TIMEOUT │ +│ 7 │ AlpedHuezTV.fr │ https://edge.vedge.infomaniak.com/livecast/ik:adhtv/chunklist.m3u8 │ HTTP_NOT_FOUND │ +``` + +After that, all you have to do is report any broken streams you find. + +### How to replace a broken stream? + +This can be done either by filling out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams%3Aedit&projects=&template=2_streams_edit.yml&title=Edit%3A+). + +Either by directly updating the files in the [/streams](/streams) folder and then creating a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests). + +### How to 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=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. + +Please note that we only accept removal requests from channel owners and their official representatives, all other requests will be closed immediately. + +## Stream Description Scheme + +For a stream to be approved, its description must follow this template: + +``` +#EXTINF:-1 tvg-id="STREAM_ID",STREAM_TITLE (QUALITY) [LABEL] +STREAM_URL +``` + +| Attribute | Description | Required | Valid values | +| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------- | +| `STREAM_ID` | Stream ID consisting of channel ID and feed ID. Full list of supported channels with corresponding ID could be found on [iptv-org.github.io](https://iptv-org.github.io/). | Optional | `` or `@` | +| `STREAM_TITLE` | Stream title consisting of channel name and feed name. May contain any characters except: `,`, `[`, `]`. | Required | - | +| `QUALITY` | Maximum stream quality. | Optional | `2160p`, `1080p`, `720p`, `480p`, `360p` etc | +| `LABEL` | Specified in cases where the broadcast for some reason may not be available to some users. | Optional | `Geo-blocked` or `Not 24/7` | +| `STREAM_URL` | Stream URL. | Required | - | + +Example: + +```xml +#EXTINF:-1 tvg-id="ExampleTV.us@East",Example TV East (720p) [Not 24/7] +https://example.com/playlist.m3u8 +``` + +Also, if necessary, you can specify custom [HTTP User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) and [HTTP Referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) through additional attributes: + +```xml +#EXTINF:-1 tvg-id="ExampleTV.us" http-referrer="http://example.com/" http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)",Example TV +http://example.com/stream.m3u8 +``` + +or use player-specific directives: + +_VLC_ + +```xml +#EXTINF:-1 tvg-id="ExampleTV.us@VLC",Example TV +#EXTVLCOPT:http-referrer=http://example.com/ +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) +http://example.com/stream.m3u8 +``` + +_Kodi_ + +```xml +#EXTINF:-1 tvg-id="ExampleTV.us@Kodi",Example TV +#KODIPROP:inputstream=inputstream.adaptive +#KODIPROP:inputstream.adaptive.stream_headers=Referer=http://example.com/&User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) +http://example.com/stream.m3u8 +``` + +## Project Structure + +- `.github/` + - `ISSUE_TEMPLATE/`: issue templates for the repository. + - `workflows`: contains [GitHub actions](https://docs.github.com/en/actions/quickstart) workflows. + - `CODE_OF_CONDUCT.md`: rules you shouldn't break if you don't want to get banned. +- `.readme/` + - `config.json`: config for the `markdown-include` package, which is used to compile everything into one `PLAYLISTS.md` file. + - `preview.png`: image displayed in the `README.md`. + - `template.md`: template for `PLAYLISTS.md`. +- `scripts/`: contains all scripts used in the repository. +- `streams/`: contains all streams broken down by the country from which they are broadcast. +- `tests/`: contains tests to check the scripts. +- `CONTRIBUTING.md`: file you are currently reading. +- `PLAYLISTS.md`: auto-updated list of available playlists. +- `README.md`: project description. + +## Scripts + +These scripts are created to automate routine processes in the repository and make it a bit easier to maintain. + +For scripts to work, you must have [Node.js](https://nodejs.org/en) installed on your computer. + +To run scripts use the `npm run ` command. + +- `act:check`: allows to run the [check](https://github.com/iptv-org/iptv/blob/master/.github/workflows/check.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). +- `act:format`: allows to test the [format](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). +- `act:update`: allows to test the [update](https://github.com/iptv-org/iptv/blob/master/.github/workflows/update.yml) workflow locally. Depends on [nektos/act](https://github.com/nektos/act). +- `api:load`: downloads the latest channel and stream data from the [iptv-org/api](https://github.com/iptv-org/api). +- `api:generate`: generates a JSON file with all streams for the [iptv-org/api](https://github.com/iptv-org/api) repository. +- `api:deploy`: allows to manually upload a JSON file created via `api:generate` to the [iptv-org/api](https://github.com/iptv-org/api) repository. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository. +- `playlist:format`: formats internal playlists. The process includes [URL normalization](https://en.wikipedia.org/wiki/URI_normalization), duplicate removal, removing invalid id's and sorting links by channel name, quality, and label. +- `playlist:update`: triggers an update of internal playlists. The process involves processing approved requests from issues. +- `playlist:generate`: generates all public playlists. +- `playlist:validate`: сhecks ids and links in internal playlists for errors. +- `playlist:lint`: сhecks internal playlists for syntax errors. +- `playlist:test`: tests links in internal playlists. +- `playlist:edit`: utility for quick streams mapping. +- `playlist:deploy`: allows to manually publish all generated via `playlist:generate` playlists. To run the script you must provide your [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with write access to the repository. +- `readme:update`: updates the list of playlists in [README.md](README.md). +- `report:create`: creates a report on current issues. +- `check`: (shorthand) sequentially runs the `playlist:lint` and `playlist:validate` scripts. +- `format`: (shorthand) runs the `playlist:format` script. +- `update`: (shorthand) sequentially runs the `playlist:generate`, `api:generate` and `readme:update` scripts. +- `deploy`: (shorthand) sequentially runs the `playlist:deploy` and `api:deploy` scripts. +- `lint`: сhecks the scripts for syntax errors. +- `test`: runs a test of all the scripts described above. + +## Workflows + +To automate the run of the scripts described above, we use the [GitHub Actions workflows](https://docs.github.com/en/actions/using-workflows). + +Each workflow includes its own set of scripts that can be run either manually or in response to an event. + +- `check`: sequentially runs the `api:load`, `playlist:check` and `playlist:validate` scripts when a new pull request appears, and blocks the merge if it detects an error in it. +- `format`: sequentially runs `api:load`, `playlist:format`, `playlist:lint` and `playlist:validate` scripts. +- `update`: every day at 0:00 UTC sequentially runs `api:load`, `playlist:update`, `playlist:lint`, `playlist:validate`, `playlist:generate`, `api:generate` and `readme:update` scripts and deploys the output files if successful. diff --git a/FAQ.md b/FAQ.md index 4de9c73547..988fc265dc 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,23 +1,23 @@ -# Frequently Asked Questions - -### My favorite channel is not on the playlist. - -Start by asking our community for help via [Discussions](https://github.com/orgs/iptv-org/discussions). It is quite possible that someone already has a link to the channel you need and they just haven't added it to our playlist yet. - -But keep in mind that not all TV channels are available for viewing online, and in this case there is little we can do about it. - -### Are you planning to include a Video On Demand (VOD) to the playlist? - -No. - -### Why is the channel on the iptv-org.github.io but not in the playlist? - -The site contains a list of all TV channels in the world and only those of them for which we have working stream links are included in the playlists. - -### Can I add a radio broadcast? - -Yes, if it is a [visual radio](https://en.wikipedia.org/wiki/Visual_radio) in which a video and audio are shown at the same time. - -### Why don't you accept links to Xtream Codes server? - -Xtream Codes streams tend to be very unstable, and often links to them fail very quickly, so it's easier for us to initially exclude them from the playlist than to search for expired ones every day. +# Frequently Asked Questions + +### My favorite channel is not on the playlist. + +Start by asking our community for help via [Discussions](https://github.com/orgs/iptv-org/discussions). It is quite possible that someone already has a link to the channel you need and they just haven't added it to our playlist yet. + +But keep in mind that not all TV channels are available for viewing online, and in this case there is little we can do about it. + +### Are you planning to include a Video On Demand (VOD) to the playlist? + +No. + +### Why is the channel on the iptv-org.github.io but not in the playlist? + +The site contains a list of all TV channels in the world and only those of them for which we have working stream links are included in the playlists. + +### Can I add a radio broadcast? + +Yes, if it is a [visual radio](https://en.wikipedia.org/wiki/Visual_radio) in which a video and audio are shown at the same time. + +### Why don't you accept links to Xtream Codes server? + +Xtream Codes streams tend to be very unstable, and often links to them fail very quickly, so it's easier for us to initially exclude them from the playlist than to search for expired ones every day. diff --git a/LICENSE b/LICENSE index 68a49daad8..edeed79019 100644 --- a/LICENSE +++ b/LICENSE @@ -1,24 +1,24 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/PLAYLISTS.md b/PLAYLISTS.md index 65906ac578..79d3e56e07 100644 --- a/PLAYLISTS.md +++ b/PLAYLISTS.md @@ -1,22 +1,22 @@ -## Playlists - -There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723). - -### Grouped by category - -Playlists in which channels are grouped by category. - -
-Expand -
- -``` -https://iptv-org.github.io/iptv/index.category.m3u -``` - -Same thing, but split up into separate files: - - +## Playlists + +There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723). + +### Grouped by category + +Playlists in which channels are grouped by category. + +
+Expand +
+ +``` +https://iptv-org.github.io/iptv/index.category.m3u +``` + +Same thing, but split up into separate files: + + @@ -54,25 +54,25 @@ Same thing, but split up into separate files: -
CategoryChannelsPlaylist
XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u
Undefined3693https://iptv-org.github.io/iptv/categories/undefined.m3u
- -
- -### Grouped by language - -Playlists in which channels are grouped by the language in which they are broadcast. - -
-Expand -
- -``` -https://iptv-org.github.io/iptv/index.language.m3u -``` - -Same thing, but split up into separate files: - - + + +
+ +### Grouped by language + +Playlists in which channels are grouped by the language in which they are broadcast. + +
+Expand +
+ +``` +https://iptv-org.github.io/iptv/index.language.m3u +``` + +Same thing, but split up into separate files: + + @@ -288,26 +288,26 @@ Same thing, but split up into separate files: -
LanguageChannelsPlaylist
Zulu1https://iptv-org.github.io/iptv/languages/zul.m3u
Undefined2176https://iptv-org.github.io/iptv/languages/undefined.m3u
- -
- -### Grouped by broadcast area - -Playlists in which channels are grouped by broadcast area. - -
-Expand - -#### Countries - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - + + +
+ +### Grouped by broadcast area + +Playlists in which channels are grouped by broadcast area. + +
+Expand + +#### Countries + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + - 🇦🇫 Afghanistan https://iptv-org.github.io/iptv/countries/af.m3u - 🇦🇱 Albania https://iptv-org.github.io/iptv/countries/al.m3u - 🇩🇿 Algeria https://iptv-org.github.io/iptv/countries/dz.m3u @@ -1283,11 +1283,11 @@ Same thing, but split up into separate files: - 🇿🇲 Zambia https://iptv-org.github.io/iptv/countries/zm.m3u - 🇿🇼 Zimbabwe https://iptv-org.github.io/iptv/countries/zw.m3u - 🌐 International https://iptv-org.github.io/iptv/countries/int.m3u -- Undefined https://iptv-org.github.io/iptv/countries/undefined.m3u - -#### Regions - - +- Undefined https://iptv-org.github.io/iptv/countries/undefined.m3u + +#### Regions + + - Africa https://iptv-org.github.io/iptv/regions/afr.m3u - Americas https://iptv-org.github.io/iptv/regions/amer.m3u - Arab world https://iptv-org.github.io/iptv/regions/arab.m3u @@ -1329,28 +1329,28 @@ Same thing, but split up into separate files: - West Africa https://iptv-org.github.io/iptv/regions/waf.m3u - West Asia https://iptv-org.github.io/iptv/regions/was.m3u - Western Europe https://iptv-org.github.io/iptv/regions/wer.m3u -- Worldwide https://iptv-org.github.io/iptv/regions/ww.m3u - -
- -### Grouped by sources - -Playlists in which channels are grouped by broadcast source. - -
-Expand -
- -To use the playlist, simply replace `` in the link below with the name of one of the files in the [streams](streams) folder. - -``` -https://iptv-org.github.io/iptv/sources/.m3u -``` - -
- -Also, any of our internal playlists are available in raw form (without any filtering or sorting) at this link: - -``` -https://iptv-org.github.io/iptv/raw/.m3u -``` +- Worldwide https://iptv-org.github.io/iptv/regions/ww.m3u + +
+ +### Grouped by sources + +Playlists in which channels are grouped by broadcast source. + +
+Expand +
+ +To use the playlist, simply replace `` in the link below with the name of one of the files in the [streams](streams) folder. + +``` +https://iptv-org.github.io/iptv/sources/.m3u +``` + +
+ +Also, any of our internal playlists are available in raw form (without any filtering or sorting) at this link: + +``` +https://iptv-org.github.io/iptv/raw/.m3u +``` diff --git a/README.md b/README.md index 371afea056..24bb67ca03 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,79 @@ -# 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) -- 🗓 [EPG](#epg) -- 🗄 [Database](#database) -- 👨‍💻 [API](#api) -- 📚 [Resources](#resources) -- 💬 [Discussions](#discussions) -- ❓ [FAQ](#faq) -- 🛠 [Contribution](#contribution) -- ⚖ [Legal](#legal) -- © [License](#license) - -## How to use? - -Simply paste the link to one of the playlists 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 - -The main playlist containing all channels available in the repository can be found at: - -``` -https://iptv-org.github.io/iptv/index.m3u -``` - -Links to other playlists can be found in the [PLAYLISTS.md](PLAYLISTS.md) file. - -## EPG - -[Electronic Program Guide](https://en.wikipedia.org/wiki/Electronic_program_guide) for most of the channels can be downloaded using utilities published in the [iptv-org/epg](https://github.com/iptv-org/epg) repository. - -## 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) +- 🗓 [EPG](#epg) +- 🗄 [Database](#database) +- 👨‍💻 [API](#api) +- 📚 [Resources](#resources) +- 💬 [Discussions](#discussions) +- ❓ [FAQ](#faq) +- 🛠 [Contribution](#contribution) +- ⚖ [Legal](#legal) +- © [License](#license) + +## How to use? + +Simply paste the link to one of the playlists 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 + +The main playlist containing all channels available in the repository can be found at: + +``` +https://iptv-org.github.io/iptv/index.m3u +``` + +Links to other playlists can be found in the [PLAYLISTS.md](PLAYLISTS.md) file. + +## EPG + +[Electronic Program Guide](https://en.wikipedia.org/wiki/Electronic_program_guide) for most of the channels can be downloaded using utilities published in the [iptv-org/epg](https://github.com/iptv-org/epg) repository. + +## 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/m3u-linter.json b/m3u-linter.json index 2f835c48dd..fc1f39a3d9 100644 --- a/m3u-linter.json +++ b/m3u-linter.json @@ -1,17 +1,17 @@ -{ - "files": ["streams/*.m3u"], - "rules": { - "no-empty-lines": true, - "require-header": true, - "attribute-quotes": true, - "require-info": true, - "require-title": true, - "no-trailing-spaces": false, - "no-whitespace-before-title": true, - "no-multi-spaces": true, - "no-extra-comma": true, - "space-before-paren": true, - "no-dash": true, - "require-link": true - } -} +{ + "files": ["streams/*.m3u"], + "rules": { + "no-empty-lines": true, + "require-header": true, + "attribute-quotes": true, + "require-info": true, + "require-title": true, + "no-trailing-spaces": false, + "no-whitespace-before-title": true, + "no-multi-spaces": true, + "no-extra-comma": true, + "space-before-paren": true, + "no-dash": true, + "require-link": true + } +} diff --git a/scripts/constants.ts b/scripts/constants.ts index f6b688714b..e607a87b5e 100644 --- a/scripts/constants.ts +++ b/scripts/constants.ts @@ -1,11 +1,11 @@ -export const ROOT_DIR = process.env.ROOT_DIR || './' -export const STREAMS_DIR = process.env.STREAMS_DIR || './streams' -export const PUBLIC_DIR = process.env.PUBLIC_DIR || './.gh-pages' -export const README_DIR = process.env.README_DIR || './.readme' -export const API_DIR = process.env.API_DIR || './.api' -export const DATA_DIR = process.env.DATA_DIR || './temp/data' -export const LOGS_DIR = process.env.LOGS_DIR || './temp/logs' -export const TESTING = process.env.NODE_ENV === 'test' ? true : false -export const OWNER = 'iptv-org' -export const REPO = 'iptv' -export const EOL = '\r\n' +export const ROOT_DIR = process.env.ROOT_DIR || './' +export const STREAMS_DIR = process.env.STREAMS_DIR || './streams' +export const PUBLIC_DIR = process.env.PUBLIC_DIR || './.gh-pages' +export const README_DIR = process.env.README_DIR || './.readme' +export const API_DIR = process.env.API_DIR || './.api' +export const DATA_DIR = process.env.DATA_DIR || './temp/data' +export const LOGS_DIR = process.env.LOGS_DIR || './temp/logs' +export const TESTING = process.env.NODE_ENV === 'test' ? true : false +export const OWNER = 'iptv-org' +export const REPO = 'iptv' +export const EOL = '\r\n' diff --git a/scripts/core/logParser.ts b/scripts/core/logParser.ts index fb888f6b5a..7b80f32460 100644 --- a/scripts/core/logParser.ts +++ b/scripts/core/logParser.ts @@ -1,14 +1,14 @@ -export type LogItem = { - type: string - filepath: string - count: number -} - -export class LogParser { - parse(content: string): LogItem[] { - if (!content) return [] - const lines = content.split('\n') - - return lines.map(line => (line ? JSON.parse(line) : null)).filter(l => l) - } -} +export type LogItem = { + type: string + filepath: string + count: number +} + +export class LogParser { + parse(content: string): LogItem[] { + if (!content) return [] + const lines = content.split('\n') + + return lines.map(line => (line ? JSON.parse(line) : null)).filter(l => l) + } +} diff --git a/scripts/core/numberParser.ts b/scripts/core/numberParser.ts index 187cc7469d..f9b5a4fbdf 100644 --- a/scripts/core/numberParser.ts +++ b/scripts/core/numberParser.ts @@ -1,10 +1,10 @@ -export default class NumberParser { - async parse(number: string) { - const parsed = parseInt(number) - if (isNaN(parsed)) { - throw new Error('numberParser:parse() Input value is not a number') - } - - return parsed - } -} +export default class NumberParser { + async parse(number: string) { + const parsed = parseInt(number) + if (isNaN(parsed)) { + throw new Error('numberParser:parse() Input value is not a number') + } + + return parsed + } +} diff --git a/scripts/core/proxyParser.ts b/scripts/core/proxyParser.ts index 9cede1afc5..545d190a90 100644 --- a/scripts/core/proxyParser.ts +++ b/scripts/core/proxyParser.ts @@ -1,31 +1,31 @@ -import { URL } from 'node:url' - -interface ProxyParserResult { - protocol: string | null - auth?: { - username?: string - password?: string - } - host: string - port: number | null -} - -export class ProxyParser { - parse(_url: string): ProxyParserResult { - const parsed = new URL(_url) - - const result: ProxyParserResult = { - protocol: parsed.protocol.replace(':', '') || null, - host: parsed.hostname, - port: parsed.port ? parseInt(parsed.port) : null - } - - if (parsed.username || parsed.password) { - result.auth = {} - if (parsed.username) result.auth.username = parsed.username - if (parsed.password) result.auth.password = parsed.password - } - - return result - } -} +import { URL } from 'node:url' + +interface ProxyParserResult { + protocol: string | null + auth?: { + username?: string + password?: string + } + host: string + port: number | null +} + +export class ProxyParser { + parse(_url: string): ProxyParserResult { + const parsed = new URL(_url) + + const result: ProxyParserResult = { + protocol: parsed.protocol.replace(':', '') || null, + host: parsed.hostname, + port: parsed.port ? parseInt(parsed.port) : null + } + + if (parsed.username || parsed.password) { + result.auth = {} + if (parsed.username) result.auth.username = parsed.username + if (parsed.password) result.auth.password = parsed.password + } + + return result + } +} diff --git a/scripts/generators/generator.ts b/scripts/generators/generator.ts index 4220df727d..bf44549064 100644 --- a/scripts/generators/generator.ts +++ b/scripts/generators/generator.ts @@ -1,3 +1,3 @@ -export interface Generator { - generate(): Promise -} +export interface Generator { + generate(): Promise +} diff --git a/scripts/models/issue.ts b/scripts/models/issue.ts index 74602e7457..4b81d69484 100644 --- a/scripts/models/issue.ts +++ b/scripts/models/issue.ts @@ -1,19 +1,19 @@ -import { IssueData } from '../core' - -type IssueProps = { - number: number - labels: string[] - data: IssueData -} - -export class Issue { - number: number - labels: string[] - data: IssueData - - constructor({ number, labels, data }: IssueProps) { - this.number = number - this.labels = labels - this.data = data - } -} +import { IssueData } from '../core' + +type IssueProps = { + number: number + labels: string[] + data: IssueData +} + +export class Issue { + number: number + labels: string[] + data: IssueData + + constructor({ number, labels, data }: IssueProps) { + this.number = number + this.labels = labels + this.data = data + } +} diff --git a/scripts/tables/index.ts b/scripts/tables/index.ts index f25c0a3a27..1cb7826ef3 100644 --- a/scripts/tables/index.ts +++ b/scripts/tables/index.ts @@ -1,4 +1,4 @@ -export * from './categoriesTable' -export * from './countriesTable' -export * from './languagesTable' -export * from './regionsTable' +export * from './categoriesTable' +export * from './countriesTable' +export * from './languagesTable' +export * from './regionsTable' diff --git a/tests/__data__/expected/playlist_generate/logs/generators.log b/tests/__data__/expected/playlist_generate/logs/generators.log index 19e38d5a8b..f913b380da 100644 --- a/tests/__data__/expected/playlist_generate/logs/generators.log +++ b/tests/__data__/expected/playlist_generate/logs/generators.log @@ -1,85 +1,85 @@ -{"type":"raw","filepath":"raw/ad.m3u","count":4} -{"type":"raw","filepath":"raw/ca.m3u","count":2} -{"type":"raw","filepath":"raw/in.m3u","count":1} -{"type":"raw","filepath":"raw/kg.m3u","count":1} -{"type":"raw","filepath":"raw/uk.m3u","count":1} -{"type":"raw","filepath":"raw/unsorted.m3u","count":4} -{"type":"category","filepath":"categories/auto.m3u","count":0} -{"type":"category","filepath":"categories/animation.m3u","count":0} -{"type":"category","filepath":"categories/classic.m3u","count":0} -{"type":"category","filepath":"categories/comedy.m3u","count":0} -{"type":"category","filepath":"categories/culture.m3u","count":0} -{"type":"category","filepath":"categories/documentary.m3u","count":0} -{"type":"category","filepath":"categories/business.m3u","count":0} -{"type":"category","filepath":"categories/cooking.m3u","count":0} -{"type":"category","filepath":"categories/education.m3u","count":0} -{"type":"category","filepath":"categories/family.m3u","count":0} -{"type":"category","filepath":"categories/legislative.m3u","count":0} -{"type":"category","filepath":"categories/news.m3u","count":1} -{"type":"category","filepath":"categories/kids.m3u","count":0} -{"type":"category","filepath":"categories/lifestyle.m3u","count":0} -{"type":"category","filepath":"categories/movies.m3u","count":0} -{"type":"category","filepath":"categories/religious.m3u","count":0} -{"type":"category","filepath":"categories/outdoor.m3u","count":0} -{"type":"category","filepath":"categories/general.m3u","count":3} -{"type":"category","filepath":"categories/relax.m3u","count":0} -{"type":"category","filepath":"categories/music.m3u","count":0} -{"type":"category","filepath":"categories/series.m3u","count":0} -{"type":"category","filepath":"categories/travel.m3u","count":0} -{"type":"category","filepath":"categories/sports.m3u","count":0} -{"type":"category","filepath":"categories/science.m3u","count":0} -{"type":"category","filepath":"categories/weather.m3u","count":1} -{"type":"category","filepath":"categories/shop.m3u","count":0} -{"type":"category","filepath":"categories/xxx.m3u","count":1} -{"type":"category","filepath":"categories/undefined.m3u","count":7} -{"type":"category","filepath":"categories/entertainment.m3u","count":0} -{"type":"language","filepath":"languages/cat.m3u","count":1} -{"type":"language","filepath":"languages/eng.m3u","count":1} -{"type":"language","filepath":"languages/undefined.m3u","count":8} -{"type":"language","filepath":"languages/rus.m3u","count":1} -{"type":"country","filepath":"countries/ad.m3u","count":1} -{"type":"country","filepath":"countries/ru.m3u","count":1} -{"type":"country","filepath":"countries/ca.m3u","count":2} -{"type":"country","filepath":"countries/int.m3u","count":4} -{"type":"country","filepath":"countries/undefined.m3u","count":4} -{"type":"subdivision","filepath":"subdivisions/ad-02.m3u","count":1} -{"type":"city","filepath":"cities/adcan.m3u","count":1} -{"type":"region","filepath":"regions/afr.m3u","count":2} -{"type":"source","filepath":"sources/in.m3u","count":1} -{"type":"subdivision","filepath":"subdivisions/ad-07.m3u","count":1} -{"type":"subdivision","filepath":"subdivisions/ca-on.m3u","count":1} -{"type":"region","filepath":"regions/amer.m3u","count":5} -{"type":"region","filepath":"regions/apac.m3u","count":2} -{"type":"region","filepath":"regions/cas.m3u","count":3} -{"type":"region","filepath":"regions/asean.m3u","count":2} -{"type":"region","filepath":"regions/cis.m3u","count":4} -{"type":"region","filepath":"regions/carib.m3u","count":2} -{"type":"region","filepath":"regions/arab.m3u","count":2} -{"type":"region","filepath":"regions/emea.m3u","count":5} -{"type":"region","filepath":"regions/asia.m3u","count":4} -{"type":"region","filepath":"regions/cenamer.m3u","count":2} -{"type":"region","filepath":"regions/ww.m3u","count":7} -{"type":"region","filepath":"regions/eur.m3u","count":5} -{"type":"region","filepath":"regions/lac.m3u","count":2} -{"type":"region","filepath":"regions/maghreb.m3u","count":2} -{"type":"region","filepath":"regions/latam.m3u","count":2} -{"type":"region","filepath":"regions/hispam.m3u","count":2} -{"type":"region","filepath":"regions/mena.m3u","count":2} -{"type":"region","filepath":"regions/mideast.m3u","count":2} -{"type":"region","filepath":"regions/nam.m3u","count":5} -{"type":"region","filepath":"regions/oce.m3u","count":2} -{"type":"region","filepath":"regions/nord.m3u","count":2} -{"type":"region","filepath":"regions/southam.m3u","count":2} -{"type":"region","filepath":"regions/noram.m3u","count":5} -{"type":"region","filepath":"regions/wafr.m3u","count":2} -{"type":"region","filepath":"regions/sas.m3u","count":2} -{"type":"region","filepath":"regions/ssa.m3u","count":2} -{"type":"source","filepath":"sources/unsorted.m3u","count":4} -{"type":"source","filepath":"sources/ca.m3u","count":2} -{"type":"source","filepath":"sources/ad.m3u","count":3} -{"type":"source","filepath":"sources/uk.m3u","count":1} -{"type":"source","filepath":"sources/kg.m3u","count":1} -{"type":"index","filepath":"index.m3u","count":11} -{"type":"index","filepath":"index.category.m3u","count":12} -{"type":"index","filepath":"index.country.m3u","count":12} -{"type":"index","filepath":"index.language.m3u","count":11} +{"type":"raw","filepath":"raw/ad.m3u","count":4} +{"type":"raw","filepath":"raw/ca.m3u","count":2} +{"type":"raw","filepath":"raw/in.m3u","count":1} +{"type":"raw","filepath":"raw/kg.m3u","count":1} +{"type":"raw","filepath":"raw/uk.m3u","count":1} +{"type":"raw","filepath":"raw/unsorted.m3u","count":4} +{"type":"category","filepath":"categories/auto.m3u","count":0} +{"type":"category","filepath":"categories/animation.m3u","count":0} +{"type":"category","filepath":"categories/classic.m3u","count":0} +{"type":"category","filepath":"categories/comedy.m3u","count":0} +{"type":"category","filepath":"categories/culture.m3u","count":0} +{"type":"category","filepath":"categories/documentary.m3u","count":0} +{"type":"category","filepath":"categories/business.m3u","count":0} +{"type":"category","filepath":"categories/cooking.m3u","count":0} +{"type":"category","filepath":"categories/education.m3u","count":0} +{"type":"category","filepath":"categories/family.m3u","count":0} +{"type":"category","filepath":"categories/legislative.m3u","count":0} +{"type":"category","filepath":"categories/news.m3u","count":1} +{"type":"category","filepath":"categories/kids.m3u","count":0} +{"type":"category","filepath":"categories/lifestyle.m3u","count":0} +{"type":"category","filepath":"categories/movies.m3u","count":0} +{"type":"category","filepath":"categories/religious.m3u","count":0} +{"type":"category","filepath":"categories/outdoor.m3u","count":0} +{"type":"category","filepath":"categories/general.m3u","count":3} +{"type":"category","filepath":"categories/relax.m3u","count":0} +{"type":"category","filepath":"categories/music.m3u","count":0} +{"type":"category","filepath":"categories/series.m3u","count":0} +{"type":"category","filepath":"categories/travel.m3u","count":0} +{"type":"category","filepath":"categories/sports.m3u","count":0} +{"type":"category","filepath":"categories/science.m3u","count":0} +{"type":"category","filepath":"categories/weather.m3u","count":1} +{"type":"category","filepath":"categories/shop.m3u","count":0} +{"type":"category","filepath":"categories/xxx.m3u","count":1} +{"type":"category","filepath":"categories/undefined.m3u","count":7} +{"type":"category","filepath":"categories/entertainment.m3u","count":0} +{"type":"language","filepath":"languages/cat.m3u","count":1} +{"type":"language","filepath":"languages/eng.m3u","count":1} +{"type":"language","filepath":"languages/undefined.m3u","count":8} +{"type":"language","filepath":"languages/rus.m3u","count":1} +{"type":"country","filepath":"countries/ad.m3u","count":1} +{"type":"country","filepath":"countries/ru.m3u","count":1} +{"type":"country","filepath":"countries/ca.m3u","count":2} +{"type":"country","filepath":"countries/int.m3u","count":4} +{"type":"country","filepath":"countries/undefined.m3u","count":4} +{"type":"subdivision","filepath":"subdivisions/ad-02.m3u","count":1} +{"type":"city","filepath":"cities/adcan.m3u","count":1} +{"type":"region","filepath":"regions/afr.m3u","count":2} +{"type":"source","filepath":"sources/in.m3u","count":1} +{"type":"subdivision","filepath":"subdivisions/ad-07.m3u","count":1} +{"type":"subdivision","filepath":"subdivisions/ca-on.m3u","count":1} +{"type":"region","filepath":"regions/amer.m3u","count":5} +{"type":"region","filepath":"regions/apac.m3u","count":2} +{"type":"region","filepath":"regions/cas.m3u","count":3} +{"type":"region","filepath":"regions/asean.m3u","count":2} +{"type":"region","filepath":"regions/cis.m3u","count":4} +{"type":"region","filepath":"regions/carib.m3u","count":2} +{"type":"region","filepath":"regions/arab.m3u","count":2} +{"type":"region","filepath":"regions/emea.m3u","count":5} +{"type":"region","filepath":"regions/asia.m3u","count":4} +{"type":"region","filepath":"regions/cenamer.m3u","count":2} +{"type":"region","filepath":"regions/ww.m3u","count":7} +{"type":"region","filepath":"regions/eur.m3u","count":5} +{"type":"region","filepath":"regions/lac.m3u","count":2} +{"type":"region","filepath":"regions/maghreb.m3u","count":2} +{"type":"region","filepath":"regions/latam.m3u","count":2} +{"type":"region","filepath":"regions/hispam.m3u","count":2} +{"type":"region","filepath":"regions/mena.m3u","count":2} +{"type":"region","filepath":"regions/mideast.m3u","count":2} +{"type":"region","filepath":"regions/nam.m3u","count":5} +{"type":"region","filepath":"regions/oce.m3u","count":2} +{"type":"region","filepath":"regions/nord.m3u","count":2} +{"type":"region","filepath":"regions/southam.m3u","count":2} +{"type":"region","filepath":"regions/noram.m3u","count":5} +{"type":"region","filepath":"regions/wafr.m3u","count":2} +{"type":"region","filepath":"regions/sas.m3u","count":2} +{"type":"region","filepath":"regions/ssa.m3u","count":2} +{"type":"source","filepath":"sources/unsorted.m3u","count":4} +{"type":"source","filepath":"sources/ca.m3u","count":2} +{"type":"source","filepath":"sources/ad.m3u","count":3} +{"type":"source","filepath":"sources/uk.m3u","count":1} +{"type":"source","filepath":"sources/kg.m3u","count":1} +{"type":"index","filepath":"index.m3u","count":11} +{"type":"index","filepath":"index.category.m3u","count":12} +{"type":"index","filepath":"index.country.m3u","count":12} +{"type":"index","filepath":"index.language.m3u","count":11} diff --git a/tests/__data__/expected/readme_update/playlists.md b/tests/__data__/expected/readme_update/playlists.md index f643ae9b83..f54d551be3 100644 --- a/tests/__data__/expected/readme_update/playlists.md +++ b/tests/__data__/expected/readme_update/playlists.md @@ -1,177 +1,177 @@ -## Playlists - -There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723). - -### Grouped by category - -Playlists in which channels are grouped by category. - -
-Expand -
- -``` -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 - -Playlists in which channels are grouped by the language in which they are broadcast. - -
-Expand -
- -``` -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 broadcast area - -Playlists in which channels are grouped by broadcast area. - -
-Expand - -#### Countries - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - -- 🇦🇩 Andorra https://iptv-org.github.io/iptv/countries/ad.m3u - - Canillo https://iptv-org.github.io/iptv/subdivisions/ad-02.m3u - - Canillo https://iptv-org.github.io/iptv/cities/adcan.m3u -- 🇨🇲 Cameroon https://iptv-org.github.io/iptv/countries/cm.m3u -- 🇨🇦 Canada https://iptv-org.github.io/iptv/countries/ca.m3u - - Ontario https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u -- 🇨🇻 Cape Verde https://iptv-org.github.io/iptv/countries/cv.m3u -- 🇭🇰 Hong Kong https://iptv-org.github.io/iptv/countries/hk.m3u - - Sai Kung https://iptv-org.github.io/iptv/cities/hk9sk.m3u -- 🇨🇬 Republic of the Congo https://iptv-org.github.io/iptv/countries/cg.m3u -- 🇷🇪 Réunion https://iptv-org.github.io/iptv/countries/re.m3u -- 🇷🇴 Romania https://iptv-org.github.io/iptv/countries/ro.m3u -- 🇷🇺 Russia https://iptv-org.github.io/iptv/countries/ru.m3u -- 🇷🇼 Rwanda https://iptv-org.github.io/iptv/countries/rw.m3u -- 🇧🇱 Saint Barthélemy https://iptv-org.github.io/iptv/countries/bl.m3u -- 🇸🇭 Saint Helena https://iptv-org.github.io/iptv/countries/sh.m3u -- 🇰🇳 Saint Kitts and Nevis https://iptv-org.github.io/iptv/countries/kn.m3u -- 🌐 International https://iptv-org.github.io/iptv/countries/int.m3u -- Undefined https://iptv-org.github.io/iptv/countries/undefined.m3u - -#### Regions - - -- Africa https://iptv-org.github.io/iptv/regions/afr.m3u -- Americas https://iptv-org.github.io/iptv/regions/amer.m3u -- Arab world https://iptv-org.github.io/iptv/regions/arab.m3u -- Asia https://iptv-org.github.io/iptv/regions/asia.m3u -- Asia-Pacific https://iptv-org.github.io/iptv/regions/apac.m3u -- Association of Southeast Asian Nations https://iptv-org.github.io/iptv/regions/asean.m3u -- Caribbean https://iptv-org.github.io/iptv/regions/carib.m3u -- Central America https://iptv-org.github.io/iptv/regions/cenamer.m3u -- Central Asia https://iptv-org.github.io/iptv/regions/cas.m3u -- Commonwealth of Independent States https://iptv-org.github.io/iptv/regions/cis.m3u -- Europe https://iptv-org.github.io/iptv/regions/eur.m3u -- Europe, the Middle East and Africa https://iptv-org.github.io/iptv/regions/emea.m3u -- Hispanic America https://iptv-org.github.io/iptv/regions/hispam.m3u -- Latin America https://iptv-org.github.io/iptv/regions/latam.m3u -- Latin America and the Caribbean https://iptv-org.github.io/iptv/regions/lac.m3u -- Maghreb https://iptv-org.github.io/iptv/regions/maghreb.m3u -- Middle East https://iptv-org.github.io/iptv/regions/mideast.m3u -- Middle East and North Africa https://iptv-org.github.io/iptv/regions/mena.m3u -- Nordics https://iptv-org.github.io/iptv/regions/nord.m3u -- North America https://iptv-org.github.io/iptv/regions/noram.m3u -- Northern America https://iptv-org.github.io/iptv/regions/nam.m3u -- Oceania https://iptv-org.github.io/iptv/regions/oce.m3u -- South America https://iptv-org.github.io/iptv/regions/southam.m3u -- South Asia https://iptv-org.github.io/iptv/regions/sas.m3u -- Sub-Saharan Africa https://iptv-org.github.io/iptv/regions/ssa.m3u -- West Africa https://iptv-org.github.io/iptv/regions/wafr.m3u - -
- -### Grouped by sources - -Playlists in which channels are grouped by broadcast source. - -
-Expand -
- -To use the playlist, simply replace `` in the link below with the name of one of the files in the [streams](streams) folder. - -``` -https://iptv-org.github.io/iptv/sources/.m3u -``` - -
- -Also, any of our internal playlists are available in raw form (without any filtering or sorting) at this link: - -``` -https://iptv-org.github.io/iptv/raw/.m3u -``` +## Playlists + +There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723). + +### Grouped by category + +Playlists in which channels are grouped by category. + +
+Expand +
+ +``` +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 + +Playlists in which channels are grouped by the language in which they are broadcast. + +
+Expand +
+ +``` +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 broadcast area + +Playlists in which channels are grouped by broadcast area. + +
+Expand + +#### Countries + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + +- 🇦🇩 Andorra https://iptv-org.github.io/iptv/countries/ad.m3u + - Canillo https://iptv-org.github.io/iptv/subdivisions/ad-02.m3u + - Canillo https://iptv-org.github.io/iptv/cities/adcan.m3u +- 🇨🇲 Cameroon https://iptv-org.github.io/iptv/countries/cm.m3u +- 🇨🇦 Canada https://iptv-org.github.io/iptv/countries/ca.m3u + - Ontario https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u +- 🇨🇻 Cape Verde https://iptv-org.github.io/iptv/countries/cv.m3u +- 🇭🇰 Hong Kong https://iptv-org.github.io/iptv/countries/hk.m3u + - Sai Kung https://iptv-org.github.io/iptv/cities/hk9sk.m3u +- 🇨🇬 Republic of the Congo https://iptv-org.github.io/iptv/countries/cg.m3u +- 🇷🇪 Réunion https://iptv-org.github.io/iptv/countries/re.m3u +- 🇷🇴 Romania https://iptv-org.github.io/iptv/countries/ro.m3u +- 🇷🇺 Russia https://iptv-org.github.io/iptv/countries/ru.m3u +- 🇷🇼 Rwanda https://iptv-org.github.io/iptv/countries/rw.m3u +- 🇧🇱 Saint Barthélemy https://iptv-org.github.io/iptv/countries/bl.m3u +- 🇸🇭 Saint Helena https://iptv-org.github.io/iptv/countries/sh.m3u +- 🇰🇳 Saint Kitts and Nevis https://iptv-org.github.io/iptv/countries/kn.m3u +- 🌐 International https://iptv-org.github.io/iptv/countries/int.m3u +- Undefined https://iptv-org.github.io/iptv/countries/undefined.m3u + +#### Regions + + +- Africa https://iptv-org.github.io/iptv/regions/afr.m3u +- Americas https://iptv-org.github.io/iptv/regions/amer.m3u +- Arab world https://iptv-org.github.io/iptv/regions/arab.m3u +- Asia https://iptv-org.github.io/iptv/regions/asia.m3u +- Asia-Pacific https://iptv-org.github.io/iptv/regions/apac.m3u +- Association of Southeast Asian Nations https://iptv-org.github.io/iptv/regions/asean.m3u +- Caribbean https://iptv-org.github.io/iptv/regions/carib.m3u +- Central America https://iptv-org.github.io/iptv/regions/cenamer.m3u +- Central Asia https://iptv-org.github.io/iptv/regions/cas.m3u +- Commonwealth of Independent States https://iptv-org.github.io/iptv/regions/cis.m3u +- Europe https://iptv-org.github.io/iptv/regions/eur.m3u +- Europe, the Middle East and Africa https://iptv-org.github.io/iptv/regions/emea.m3u +- Hispanic America https://iptv-org.github.io/iptv/regions/hispam.m3u +- Latin America https://iptv-org.github.io/iptv/regions/latam.m3u +- Latin America and the Caribbean https://iptv-org.github.io/iptv/regions/lac.m3u +- Maghreb https://iptv-org.github.io/iptv/regions/maghreb.m3u +- Middle East https://iptv-org.github.io/iptv/regions/mideast.m3u +- Middle East and North Africa https://iptv-org.github.io/iptv/regions/mena.m3u +- Nordics https://iptv-org.github.io/iptv/regions/nord.m3u +- North America https://iptv-org.github.io/iptv/regions/noram.m3u +- Northern America https://iptv-org.github.io/iptv/regions/nam.m3u +- Oceania https://iptv-org.github.io/iptv/regions/oce.m3u +- South America https://iptv-org.github.io/iptv/regions/southam.m3u +- South Asia https://iptv-org.github.io/iptv/regions/sas.m3u +- Sub-Saharan Africa https://iptv-org.github.io/iptv/regions/ssa.m3u +- West Africa https://iptv-org.github.io/iptv/regions/wafr.m3u + +
+ +### Grouped by sources + +Playlists in which channels are grouped by broadcast source. + +
+Expand +
+ +To use the playlist, simply replace `` in the link below with the name of one of the files in the [streams](streams) folder. + +``` +https://iptv-org.github.io/iptv/sources/.m3u +``` + +
+ +Also, any of our internal playlists are available in raw form (without any filtering or sorting) at this link: + +``` +https://iptv-org.github.io/iptv/raw/.m3u +``` diff --git a/tests/__data__/input/issues.js b/tests/__data__/input/issues.js index e628a7e89d..cbb6a79091 100644 --- a/tests/__data__/input/issues.js +++ b/tests/__data__/input/issues.js @@ -1,2397 +1,2397 @@ -module.exports = [ - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14140', - id: 1881649602, - node_id: 'I_kwDOCWUK8M5wJ7HC', - number: 14140, - title: 'Broken: RIK HD Cyprus', - user: { - login: 'ROBGagn', - id: 124619576, - node_id: 'U_kgDOB22LOA', - avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/ROBGagn', - html_url: 'https://github.com/ROBGagn', - followers_url: 'https://api.github.com/users/ROBGagn/followers', - following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}', - gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}', - starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions', - organizations_url: 'https://api.github.com/users/ROBGagn/orgs', - repos_url: 'https://api.github.com/users/ROBGagn/repos', - events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}', - received_events_url: 'https://api.github.com/users/ROBGagn/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1707513547, - node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', - name: 'broken stream', - color: 'FBCA04', - default: false, - description: 'Stream is not working properly' - }, - { - id: 3241837512, - node_id: 'MDU6TGFiZWwzMjQxODM3NTEy', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY', - name: 'CY', - color: '90FA7B', - default: false, - description: 'Cyprus' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-05T10:09:04Z', - updated_at: '2023-09-07T00:50:06Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Broken Links\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8\r\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14159', - id: 1881649602, - node_id: 'I_kwDOCWUK8M5wJ7HC', - number: 14159, - title: 'Broken: RIK HD Cyprus', - user: { - login: 'ROBGagn', - id: 124619576, - node_id: 'U_kgDOB22LOA', - avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/ROBGagn', - html_url: 'https://github.com/ROBGagn', - followers_url: 'https://api.github.com/users/ROBGagn/followers', - following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}', - gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}', - starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions', - organizations_url: 'https://api.github.com/users/ROBGagn/orgs', - repos_url: 'https://api.github.com/users/ROBGagn/repos', - events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}', - received_events_url: 'https://api.github.com/users/ROBGagn/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1707513547, - node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', - name: 'broken stream', - color: 'FBCA04', - default: false, - description: 'Stream is not working properly' - }, - { - id: 3241837512, - node_id: 'MDU6TGFiZWwzMjQxODM3NTEy', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY', - name: 'CY', - color: '90FA7B', - default: false, - description: 'Cyprus' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-05T10:09:04Z', - updated_at: '2023-09-07T00:50:06Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Broken Links\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\r\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/events', - html_url: 'https://github.com/iptv-org/iptv/issues/19956', - id: 2880738344, - node_id: 'I_kwDOCWUK8M6rtJQo', - number: 19956, - title: 'Find: CNBCe.tr', - user: { - login: 'M3UDay', - id: 164743332, - node_id: 'U_kgDOCdHIpA', - avatar_url: 'https://avatars.githubusercontent.com/u/164743332?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/M3UDay', - html_url: 'https://github.com/M3UDay', - followers_url: 'https://api.github.com/users/M3UDay/followers', - following_url: 'https://api.github.com/users/M3UDay/following{/other_user}', - gists_url: 'https://api.github.com/users/M3UDay/gists{/gist_id}', - starred_url: 'https://api.github.com/users/M3UDay/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/M3UDay/subscriptions', - organizations_url: 'https://api.github.com/users/M3UDay/orgs', - repos_url: 'https://api.github.com/users/M3UDay/repos', - events_url: 'https://api.github.com/users/M3UDay/events{/privacy}', - received_events_url: 'https://api.github.com/users/M3UDay/received_events', - type: 'User', - user_view_type: 'public', - site_admin: false - }, - labels: [ - { - id: 8197871093, - node_id: 'LA_kwDOCWUK8M8AAAAB6KGV9Q', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/channel%20search', - name: 'channel search', - color: 'eaeaea', - default: false, - description: 'Request to find a link to a channel stream' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2025-02-26T08:43:49Z', - updated_at: '2025-02-26T08:43:49Z', - closed_at: null, - author_association: 'NONE', - sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, - active_lock_reason: null, - body: '### Channel ID (required)\n\nCNBCe.tr\n\n### Notes\n\n_No response_', - closed_by: null, - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14179', - id: 1884926953, - node_id: 'I_kwDOCWUK8M5wWbPp', - number: 14179, - title: 'Add: Manorama News', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694119113, - node_id: 'MDU6TGFiZWwxNjk0MTE5MTEz', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/IN', - name: 'IN', - color: 'd8139a', - default: false, - description: 'India' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-07T00:38:55Z', - updated_at: '2023-09-07T00:48:32Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream ID\n\nManoramaNews.in\n\n### Stream URL\n\nhttps://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8\n\n### Label\n\nNot 24/7\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14007#issuecomment-1686942043\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14178', - id: 1884922249, - node_id: 'I_kwDOCWUK8M5wWaGJ', - number: 14178, - title: 'Add: TV3', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1912922147, - node_id: 'MDU6TGFiZWwxOTEyOTIyMTQ3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/MY', - name: 'MY', - color: 'ea59cf', - default: false, - description: 'Malaysia' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-07T00:30:51Z', - updated_at: '2023-09-07T00:48:23Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream ID\n\nTV3.my\n\n### Stream URL\n\nhttps://live-streams-ssai-01.tonton.com.my/live/2dd2b7cd-1b34-4871-b669-57b5c9beca23/live.isml/.m3u8\n\n### Label\n\nNone\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14063#issuecomment-1695783106\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14177', - id: 1884920274, - node_id: 'I_kwDOCWUK8M5wWZnS', - number: 14177, - title: 'Add: Temple University TV', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694118251, - node_id: 'MDU6TGFiZWwxNjk0MTE4MjUx', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/US', - name: 'US', - color: '463faa', - default: false, - description: 'United States' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-07T00:27:51Z', - updated_at: '2023-09-07T00:47:15Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream ID\n\nTUTV.us\n\n### Stream URL\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### Label\n\nNone\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14096#issue-1874505679\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14175', - id: 1884859778, - node_id: 'I_kwDOCWUK8M5wWK2C', - number: 14175, - title: 'Add: TFX', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694117286, - node_id: 'MDU6TGFiZWwxNjk0MTE3Mjg2', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/FR', - name: 'FR', - color: 'f7ec1b', - default: false, - description: 'France' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-06T22:54:25Z', - updated_at: '2023-09-07T00:57:11Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream ID\n\nTFX.fr\n\n### Stream URL\n\nhttps://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\n\n### Label\n\nNone\n\n### HTTP User Agent\n\nMozilla/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\n\n### HTTP Referrer\n\nhttps://pkpakiplay.xyz/\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv-org.github.io/issues/1381\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14179', - id: 1884926953, - node_id: 'I_kwDOCWUK8M5wWbPp', - number: 14179, - title: 'Add: Manorama News', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694119113, - node_id: 'MDU6TGFiZWwxNjk0MTE5MTEz', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/IN', - name: 'IN', - color: 'd8139a', - default: false, - description: 'India' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-07T00:38:55Z', - updated_at: '2023-09-07T00:48:32Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream ID\n\nManoramaNews.in\n\n### Stream URL\n\n(https://mitelefe.com/Api/Videos/GetSourceUrl/694564/0/HLS / https://ssl.cloud.telefe.com/Api/Videos/GetSourceUrl/694564/0/HLS)\n\n### Label\n\nNot 24/7\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14007#issuecomment-1686942043\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14135', - id: 1880165524, - node_id: 'I_kwDOCWUK8M5wEQyU', - number: 14135, - title: 'Add: BBC World News South Asia ', - user: { - login: 'kheohoanganh', - id: 128283995, - node_id: 'U_kgDOB6V1Ww', - avatar_url: 'https://avatars.githubusercontent.com/u/128283995?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/kheohoanganh', - html_url: 'https://github.com/kheohoanganh', - followers_url: 'https://api.github.com/users/kheohoanganh/followers', - following_url: 'https://api.github.com/users/kheohoanganh/following{/other_user}', - gists_url: 'https://api.github.com/users/kheohoanganh/gists{/gist_id}', - starred_url: 'https://api.github.com/users/kheohoanganh/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/kheohoanganh/subscriptions', - organizations_url: 'https://api.github.com/users/kheohoanganh/orgs', - repos_url: 'https://api.github.com/users/kheohoanganh/repos', - events_url: 'https://api.github.com/users/kheohoanganh/events{/privacy}', - received_events_url: 'https://api.github.com/users/kheohoanganh/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694116077, - node_id: 'MDU6TGFiZWwxNjk0MTE2MDc3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/UK', - name: 'UK', - color: '99e5e5', - default: false, - description: 'United Kingdom' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-04T12:22:50Z', - updated_at: '2023-09-07T00:50:28Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\n\nBBCWorldNews.uk@SouthAsia\n\n### Stream URL (optional)\n\nhttp://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2801%29/index.m3u8\n\n### Notes (optional)\n\n2 links for BBCWorldNewsSouthAsia.uk\r\nhttp://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2801%29/index.m3u8\r\nhttp://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2802%29/index.m3u8\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14105', - id: 1876637538, - node_id: 'I_kwDOCWUK8M5v2zdi', - number: 14105, - title: 'Add: Amarin TV (720p)', - user: { - login: 'Soponwit19997', - id: 142583084, - node_id: 'U_kgDOCH-lLA', - avatar_url: 'https://avatars.githubusercontent.com/u/142583084?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/Soponwit19997', - html_url: 'https://github.com/Soponwit19997', - followers_url: 'https://api.github.com/users/Soponwit19997/followers', - following_url: 'https://api.github.com/users/Soponwit19997/following{/other_user}', - gists_url: 'https://api.github.com/users/Soponwit19997/gists{/gist_id}', - starred_url: 'https://api.github.com/users/Soponwit19997/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/Soponwit19997/subscriptions', - organizations_url: 'https://api.github.com/users/Soponwit19997/orgs', - repos_url: 'https://api.github.com/users/Soponwit19997/repos', - events_url: 'https://api.github.com/users/Soponwit19997/events{/privacy}', - received_events_url: 'https://api.github.com/users/Soponwit19997/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 2990740232, - node_id: 'MDU6TGFiZWwyOTkwNzQwMjMy', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/TH', - name: 'TH', - color: 'B798EA', - default: false, - description: 'Thailand' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-01T03:08:05Z', - updated_at: '2023-09-06T14:19:50Z', - closed_at: null, - author_association: 'CONTRIBUTOR', - active_lock_reason: null, - body: '### Stream ID\n\nAmarinTV.th\n\n### Stream URL (optional)\n\nhttps://cdn6.goprimetime.info/feed/202306140918/chamarin/index.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14104', - id: 1876636019, - node_id: 'I_kwDOCWUK8M5v2zFz', - number: 14104, - title: 'Add: MCOT HD (720p)', - user: { - login: 'Soponwit19997', - id: 142583084, - node_id: 'U_kgDOCH-lLA', - avatar_url: 'https://avatars.githubusercontent.com/u/142583084?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/Soponwit19997', - html_url: 'https://github.com/Soponwit19997', - followers_url: 'https://api.github.com/users/Soponwit19997/followers', - following_url: 'https://api.github.com/users/Soponwit19997/following{/other_user}', - gists_url: 'https://api.github.com/users/Soponwit19997/gists{/gist_id}', - starred_url: 'https://api.github.com/users/Soponwit19997/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/Soponwit19997/subscriptions', - organizations_url: 'https://api.github.com/users/Soponwit19997/orgs', - repos_url: 'https://api.github.com/users/Soponwit19997/repos', - events_url: 'https://api.github.com/users/Soponwit19997/events{/privacy}', - received_events_url: 'https://api.github.com/users/Soponwit19997/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 2990740232, - node_id: 'MDU6TGFiZWwyOTkwNzQwMjMy', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/TH', - name: 'TH', - color: 'B798EA', - default: false, - description: 'Thailand' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-01T03:05:56Z', - updated_at: '2023-09-06T14:21:02Z', - closed_at: null, - author_association: 'CONTRIBUTOR', - active_lock_reason: null, - body: '### Stream ID\n\nMCOTHD.th\n\n### Stream URL (optional)\n\nhttps://cdn6.goprimetime.info/feed/202306140918/chmcothd/index.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14057', - id: 1868766252, - node_id: 'I_kwDOCWUK8M5vYxws', - number: 14057, - title: 'Add: MotorTrend Fast TV', - user: { - login: 'AudioNutz', - id: 28129911, - node_id: 'MDQ6VXNlcjI4MTI5OTEx', - avatar_url: 'https://avatars.githubusercontent.com/u/28129911?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/AudioNutz', - html_url: 'https://github.com/AudioNutz', - followers_url: 'https://api.github.com/users/AudioNutz/followers', - following_url: 'https://api.github.com/users/AudioNutz/following{/other_user}', - gists_url: 'https://api.github.com/users/AudioNutz/gists{/gist_id}', - starred_url: 'https://api.github.com/users/AudioNutz/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/AudioNutz/subscriptions', - organizations_url: 'https://api.github.com/users/AudioNutz/orgs', - repos_url: 'https://api.github.com/users/AudioNutz/repos', - events_url: 'https://api.github.com/users/AudioNutz/events{/privacy}', - received_events_url: 'https://api.github.com/users/AudioNutz/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694118251, - node_id: 'MDU6TGFiZWwxNjk0MTE4MjUx', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/US', - name: 'US', - color: '463faa', - default: false, - description: 'United States' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-08-28T01:23:43Z', - updated_at: '2023-09-06T13:44:17Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\r\n\r\nFastTV.us\r\n\r\n### Stream URL (optional)\r\n\r\nhttps://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8\r\n\r\n### Notes (optional)\r\n\r\nA free stream from MotorTrend TV\r\n\r\n### Please confirm the following\r\n\r\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14034', - id: 1863678726, - node_id: 'I_kwDOCWUK8M5vFXsG', - number: 14034, - title: 'Add: match 4(hu)', - user: { - login: 'erich1997', - id: 85035390, - node_id: 'MDQ6VXNlcjg1MDM1Mzkw', - avatar_url: 'https://avatars.githubusercontent.com/u/85035390?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/erich1997', - html_url: 'https://github.com/erich1997', - followers_url: 'https://api.github.com/users/erich1997/followers', - following_url: 'https://api.github.com/users/erich1997/following{/other_user}', - gists_url: 'https://api.github.com/users/erich1997/gists{/gist_id}', - starred_url: 'https://api.github.com/users/erich1997/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/erich1997/subscriptions', - organizations_url: 'https://api.github.com/users/erich1997/orgs', - repos_url: 'https://api.github.com/users/erich1997/repos', - events_url: 'https://api.github.com/users/erich1997/events{/privacy}', - received_events_url: 'https://api.github.com/users/erich1997/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1696015170, - node_id: 'MDU6TGFiZWwxNjk2MDE1MTcw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/HU', - name: 'HU', - color: 'e89bbf', - default: false, - description: 'Hungary' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-08-23T16:42:47Z', - updated_at: '2023-09-06T13:07:20Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\n\nMatch4.hu\n\n### Stream URL (optional)\n\nhttp://194.76.186.33:8000/play/a04d/index.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/events', - html_url: 'https://github.com/iptv-org/iptv/issues/13964', - id: 1857666538, - node_id: 'I_kwDOCWUK8M5uub3q', - number: 13964, - title: 'Add: Meth TV [LK] ', - user: { - login: 'Carlinhos027', - id: 111005658, - node_id: 'U_kgDOBp3P2g', - avatar_url: 'https://avatars.githubusercontent.com/u/111005658?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/Carlinhos027', - html_url: 'https://github.com/Carlinhos027', - followers_url: 'https://api.github.com/users/Carlinhos027/followers', - following_url: 'https://api.github.com/users/Carlinhos027/following{/other_user}', - gists_url: 'https://api.github.com/users/Carlinhos027/gists{/gist_id}', - starred_url: 'https://api.github.com/users/Carlinhos027/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/Carlinhos027/subscriptions', - organizations_url: 'https://api.github.com/users/Carlinhos027/orgs', - repos_url: 'https://api.github.com/users/Carlinhos027/repos', - events_url: 'https://api.github.com/users/Carlinhos027/events{/privacy}', - received_events_url: 'https://api.github.com/users/Carlinhos027/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 5432228583, - node_id: 'LA_kwDOCWUK8M8AAAABQ8k65w', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/not%2024/7', - name: 'not 24/7', - color: '40715B', - default: false, - description: '' - }, - { - id: 5641193949, - node_id: 'LA_kwDOCWUK8M8AAAABUD3J3Q', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/LK', - name: 'LK', - color: '0A59ED', - default: false, - description: 'Sri Lanka' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-08-19T10:31:37Z', - updated_at: '2023-09-07T11:25:16Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream ID\n\nMethTV.lk\n\n### Stream URL (optional)\n\nhttps://ythls.onrender.com/channel/UC7kBHRaynsJMB6JcooGLTmA.m3u8\n\n### Notes (optional)\n\n720p / Not 24/7\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/events', - html_url: 'https://github.com/iptv-org/iptv/issues/13893', - id: 1850537350, - node_id: 'I_kwDOCWUK8M5uTPWG', - number: 13893, - title: 'Add: Weathernews (JPN) via YouTube', - user: { - login: 'arecki2', - id: 18574440, - node_id: 'MDQ6VXNlcjE4NTc0NDQw', - avatar_url: 'https://avatars.githubusercontent.com/u/18574440?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/arecki2', - html_url: 'https://github.com/arecki2', - followers_url: 'https://api.github.com/users/arecki2/followers', - following_url: 'https://api.github.com/users/arecki2/following{/other_user}', - gists_url: 'https://api.github.com/users/arecki2/gists{/gist_id}', - starred_url: 'https://api.github.com/users/arecki2/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/arecki2/subscriptions', - organizations_url: 'https://api.github.com/users/arecki2/orgs', - repos_url: 'https://api.github.com/users/arecki2/repos', - events_url: 'https://api.github.com/users/arecki2/events{/privacy}', - received_events_url: 'https://api.github.com/users/arecki2/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694117140, - node_id: 'MDU6TGFiZWwxNjk0MTE3MTQw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/JP', - name: 'JP', - color: '350bdd', - default: false, - description: 'Japan' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 2, - created_at: '2023-08-14T21:04:00Z', - updated_at: '2023-09-06T14:30:57Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: "### Stream ID\n\nWeathernews.jp\n\n### Stream URL (optional)\n\nhttps://ythls.onrender.com/channel/UCNsidkYpIAQ4QaufptQBPHQ.m3u8\n\n### Notes (optional)\n\nLet's try them 😼\r\n\r\nI've just learned that they change streams for their TV broadcasts on YouTube every 3 hours, so even with additional streams they occasionally activate (such as now during Typhoon Lan), the YT API should manage to pick the correct feed in most cases 😜\r\n\r\nOtherwise, an advantage over the two streams that already are in the database is that the YT broadcasts are in 1080p (vs 720p).\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)", - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/events', - html_url: 'https://github.com/iptv-org/iptv/issues/13881', - id: 1848780631, - node_id: 'I_kwDOCWUK8M5uMidX', - number: 13881, - title: 'Add: Aaj Tak', - user: { - login: 'R4IN2007', - id: 83226646, - node_id: 'MDQ6VXNlcjgzMjI2NjQ2', - avatar_url: 'https://avatars.githubusercontent.com/u/83226646?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/R4IN2007', - html_url: 'https://github.com/R4IN2007', - followers_url: 'https://api.github.com/users/R4IN2007/followers', - following_url: 'https://api.github.com/users/R4IN2007/following{/other_user}', - gists_url: 'https://api.github.com/users/R4IN2007/gists{/gist_id}', - starred_url: 'https://api.github.com/users/R4IN2007/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/R4IN2007/subscriptions', - organizations_url: 'https://api.github.com/users/R4IN2007/orgs', - repos_url: 'https://api.github.com/users/R4IN2007/repos', - events_url: 'https://api.github.com/users/R4IN2007/events{/privacy}', - received_events_url: 'https://api.github.com/users/R4IN2007/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694119113, - node_id: 'MDU6TGFiZWwxNjk0MTE5MTEz', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/IN', - name: 'IN', - color: 'd8139a', - default: false, - description: 'India' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-08-13T23:23:28Z', - updated_at: '2023-09-06T14:32:15Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\n\nAajTak.in\n\n### Stream URL (optional)\n\nhttps://feeds.intoday.in/aajtak/api/aajtakhd/master.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/events', - html_url: 'https://github.com/iptv-org/iptv/issues/13793', - id: 1846716551, - node_id: 'I_kwDOCWUK8M5uEqiH', - number: 13793, - title: 'Add: AT-X (JPN)', - user: { - login: 'ZXArkin', - id: 21299971, - node_id: 'MDQ6VXNlcjIxMjk5OTcx', - avatar_url: 'https://avatars.githubusercontent.com/u/21299971?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/ZXArkin', - html_url: 'https://github.com/ZXArkin', - followers_url: 'https://api.github.com/users/ZXArkin/followers', - following_url: 'https://api.github.com/users/ZXArkin/following{/other_user}', - gists_url: 'https://api.github.com/users/ZXArkin/gists{/gist_id}', - starred_url: 'https://api.github.com/users/ZXArkin/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/ZXArkin/subscriptions', - organizations_url: 'https://api.github.com/users/ZXArkin/orgs', - repos_url: 'https://api.github.com/users/ZXArkin/repos', - events_url: 'https://api.github.com/users/ZXArkin/events{/privacy}', - received_events_url: 'https://api.github.com/users/ZXArkin/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694117140, - node_id: 'MDU6TGFiZWwxNjk0MTE3MTQw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/JP', - name: 'JP', - color: '350bdd', - default: false, - description: 'Japan' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 4, - created_at: '2023-08-11T12:11:28Z', - updated_at: '2023-09-06T14:17:56Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\r\n\r\nATX.jp\r\n\r\n### Stream URL (optional)\r\n\r\nhttp://194.233.72.249:8080/AT-X/index.m3u8\r\n\r\n### Notes (optional)\r\n\r\n![AT-X_20230705_202525 551](https://github.com/iptv-org/iptv/assets/21299971/794c1cd4-fbe4-4b35-8a16-45127953ff65)\r\nThis is test AT-X channel JP without subs\r\n720 Quality\r\n\r\n### Please confirm the following\r\n\r\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/events', - html_url: 'https://github.com/iptv-org/iptv/issues/13751', - id: 1838199158, - node_id: 'I_kwDOCWUK8M5tkLF2', - number: 13751, - title: 'Add: Beano TV', - user: { - login: 'Ghani201', - id: 132144620, - node_id: 'U_kgDOB-Bd7A', - avatar_url: 'https://avatars.githubusercontent.com/u/132144620?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/Ghani201', - html_url: 'https://github.com/Ghani201', - followers_url: 'https://api.github.com/users/Ghani201/followers', - following_url: 'https://api.github.com/users/Ghani201/following{/other_user}', - gists_url: 'https://api.github.com/users/Ghani201/gists{/gist_id}', - starred_url: 'https://api.github.com/users/Ghani201/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/Ghani201/subscriptions', - organizations_url: 'https://api.github.com/users/Ghani201/orgs', - repos_url: 'https://api.github.com/users/Ghani201/repos', - events_url: 'https://api.github.com/users/Ghani201/events{/privacy}', - received_events_url: 'https://api.github.com/users/Ghani201/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1694116077, - node_id: 'MDU6TGFiZWwxNjk0MTE2MDc3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/UK', - name: 'UK', - color: '99e5e5', - default: false, - description: 'United Kingdom' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 2, - created_at: '2023-08-06T12:54:59Z', - updated_at: '2023-09-06T14:40:01Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\r\n\r\nBeanoTV.uk\r\n\r\n### Stream URL (optional)\r\n\r\nhttps://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8|Referer="https://referer.xyz/"|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"|Origin="https://origin.xyz"\r\n\r\n### Directives (optional)\r\n\r\n#EXTVLCOPT:http-referrer=http://imn.iq\r\n\r\n#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\r\n\r\n#KODIPROP:inputstream=inputstream.adaptive\r\n\r\n#KODIPROP:inputstream.adaptive.manifest_type=mpd\r\n\r\n#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha\r\n\r\n#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=v9ZVSksv4S7rT55o10dmYNRa4asye3z05eWCFxD%2FFYIlTJEpuf6tF8asPcyQOFq0h5opS%2B6WoMxnshWkihpHq5qrdrBEZ69piE94J9Feh385snGOqK3PYO7tLLjxmsCAe%2B9%2BNnurSSO5RCAIRsL125nSj1eOR%2F1GSKOgGH80HK2FDLiePxPkeaAxuWzacNBB%2FqnIGGxfe3GlmN65cU9F8WEpKFDlaxW%2Fv3ZSLAp3%2BZEq1aZXJ6Oz%2Fi0diD0EybH7|Content-Type=application/octet-stream|R{SSM}|\r\n\r\n### Notes (optional)\r\n\r\n_No response_\r\n\r\n### Please confirm the following\r\n\r\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/events', - html_url: 'https://github.com/iptv-org/iptv/issues/13715', - id: 1835942409, - node_id: 'I_kwDOCWUK8M5tbkIJ', - number: 13715, - title: 'Add: ATV+ HD (Perú) [Linear Version of ATV+]', - user: { - login: 'R4IN2007', - id: 83226646, - node_id: 'MDQ6VXNlcjgzMjI2NjQ2', - avatar_url: 'https://avatars.githubusercontent.com/u/83226646?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/R4IN2007', - html_url: 'https://github.com/R4IN2007', - followers_url: 'https://api.github.com/users/R4IN2007/followers', - following_url: 'https://api.github.com/users/R4IN2007/following{/other_user}', - gists_url: 'https://api.github.com/users/R4IN2007/gists{/gist_id}', - starred_url: 'https://api.github.com/users/R4IN2007/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/R4IN2007/subscriptions', - organizations_url: 'https://api.github.com/users/R4IN2007/orgs', - repos_url: 'https://api.github.com/users/R4IN2007/repos', - events_url: 'https://api.github.com/users/R4IN2007/events{/privacy}', - received_events_url: 'https://api.github.com/users/R4IN2007/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 3046075919, - node_id: 'MDU6TGFiZWwzMDQ2MDc1OTE5', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/PE', - name: 'PE', - color: 'E78203', - default: false, - description: 'Peru' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 2, - created_at: '2023-08-04T01:48:24Z', - updated_at: '2023-09-06T14:41:57Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream ID\n\nATVPlus.pe\n\n### Stream URL (optional)\n\nhttps://linear-258.frequency.stream/dist/vix/258/hls/master/playlist.m3u8\n\n### Notes (optional)\n\n(Linear Version & Streaming on VIX.com a spanish televisa-univision site) Might be geo-blocked or geo-locked because by removing /dist/vix/ the m3u8 link stops working #13703 \n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14120', - id: 1884922249, - node_id: 'I_kwDOCWUK8M5wWaGJ', - number: 14120, - title: 'Edit: Tele2000', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:edit', - name: 'streams:edit', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-07T00:30:51Z', - updated_at: '2023-09-07T00:48:23Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream URL\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### Stream ID\n\nboo.us\n\n### Quality\n\n720p\n\n### Label\n\nGeo-blocked\n\n### HTTP User-Agent\n\nMozilla/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\n\n### HTTP Referrer\n\n_No response_\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14110', - id: 1884922249, - node_id: 'I_kwDOCWUK8M5wWaGJ', - number: 14110, - title: 'Edit: Tele2000', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:edit', - name: 'streams:edit', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-07T00:30:51Z', - updated_at: '2023-09-07T00:48:23Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream URL (required)\n\nhttps://servilive.com:3126/live/tele2000live.m3u8\n\n### New Stream URL\n\nhttps://xui-backend.energeek.cl/live/9/playlist.m3u8?username=ZZDemoIPTVGH&password=mdo96EuqMkTR|Referer="https://referer.xyz/"|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"|Origin="https://origin.xyz"\n\n### Stream ID\n\nBBCAmerica.us@East\n\n### Quality\n\n720p\n\n### Label\n\n~\n\n### HTTP User-Agent\n\nMozilla/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\n\n### HTTP Referrer\n\n~\n\n### Directives (optional)\r\n\r\n#EXTVLCOPT:http-referrer=http://imn.iq\r\n\r\n#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\r\n\r\n#KODIPROP:inputstream=inputstream.adaptive\r\n\r\n#KODIPROP:inputstream.adaptive.manifest_type=mpd\r\n\r\n#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha\r\n\r\n#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=v9ZVSksv4S7rT55o10dmYNRa4asye3z05eWCFxD%2FFYIlTJEpuf6tF8asPcyQOFq0h5opS%2B6WoMxnshWkihpHq5qrdrBEZ69piE94J9Feh385snGOqK3PYO7tLLjxmsCAe%2B9%2BNnurSSO5RCAIRsL125nSj1eOR%2F1GSKOgGH80HK2FDLiePxPkeaAxuWzacNBB%2FqnIGGxfe3GlmN65cU9F8WEpKFDlaxW%2Fv3ZSLAp3%2BZEq1aZXJ6Oz%2Fi0diD0EybH7|Content-Type=application/octet-stream|R{SSM}|\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14120', - id: 1884922249, - node_id: 'I_kwDOCWUK8M5wWaGJ', - number: 14120, - title: 'Edit: Tele2000', - user: { - login: 'freearhey', - id: 7253922, - node_id: 'MDQ6VXNlcjcyNTM5MjI=', - avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/freearhey', - html_url: 'https://github.com/freearhey', - followers_url: 'https://api.github.com/users/freearhey/followers', - following_url: 'https://api.github.com/users/freearhey/following{/other_user}', - gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', - starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', - organizations_url: 'https://api.github.com/users/freearhey/orgs', - repos_url: 'https://api.github.com/users/freearhey/repos', - events_url: 'https://api.github.com/users/freearhey/events{/privacy}', - received_events_url: 'https://api.github.com/users/freearhey/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:edit', - name: 'streams:edit', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 1, - created_at: '2023-09-07T00:30:51Z', - updated_at: '2023-09-07T00:48:23Z', - closed_at: null, - author_association: 'COLLABORATOR', - active_lock_reason: null, - body: '### Stream URL\n\nhttps://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8\n\n### Stream ID\n\n_No response_\n\n### Quality\n\nNone\n\n### Label\n\nNone\n\n### HTTP User-Agent\n\n_No response_\n\n### HTTP Referrer\n\n_No response_\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14151', - id: 1884653836, - node_id: 'I_kwDOCWUK8M5wVYkM', - number: 14151, - title: 'Remove: VTV', - user: { - login: 'kaikyoofers', - id: 67206080, - node_id: 'MDQ6VXNlcjY3MjA2MDgw', - avatar_url: 'https://avatars.githubusercontent.com/u/67206080?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/kaikyoofers', - html_url: 'https://github.com/kaikyoofers', - followers_url: 'https://api.github.com/users/kaikyoofers/followers', - following_url: 'https://api.github.com/users/kaikyoofers/following{/other_user}', - gists_url: 'https://api.github.com/users/kaikyoofers/gists{/gist_id}', - starred_url: 'https://api.github.com/users/kaikyoofers/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/kaikyoofers/subscriptions', - organizations_url: 'https://api.github.com/users/kaikyoofers/orgs', - repos_url: 'https://api.github.com/users/kaikyoofers/repos', - events_url: 'https://api.github.com/users/kaikyoofers/events{/privacy}', - received_events_url: 'https://api.github.com/users/kaikyoofers/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 2043160604, - node_id: 'MDU6TGFiZWwyMDQzMTYwNjA0', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/BR', - name: 'BR', - color: 'ccdcff', - default: false, - description: 'Brazil' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5932506810, - node_id: 'LA_kwDOCWUK8M8AAAABYZreug', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:remove', - name: 'streams:remove', - color: '5373a2', - default: false, - description: '' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-06T19:51:43Z', - updated_at: '2023-09-07T00:48:57Z', - closed_at: null, - author_association: 'CONTRIBUTOR', - active_lock_reason: null, - body: '### Stream URL\n\nhttps://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Notes (optional)\n\nOne link (VTV.br) is misspelled.\n\n### Contributing Guide\n\n- [x] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/events', - html_url: 'https://github.com/iptv-org/iptv/issues/14140', - id: 1881649613, - node_id: 'I_kwDOCWUK8M5wJ7HC', - number: 14150, - title: 'Broken: Cyprus Channels', - user: { - login: 'ROBGagn', - id: 124619576, - node_id: 'U_kgDOB22LOA', - avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/ROBGagn', - html_url: 'https://github.com/ROBGagn', - followers_url: 'https://api.github.com/users/ROBGagn/followers', - following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}', - gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}', - starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions', - organizations_url: 'https://api.github.com/users/ROBGagn/orgs', - repos_url: 'https://api.github.com/users/ROBGagn/repos', - events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}', - received_events_url: 'https://api.github.com/users/ROBGagn/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1707513547, - node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', - name: 'broken stream', - color: 'FBCA04', - default: false, - description: 'Stream is not working properly' - }, - { - id: 3241837512, - node_id: 'MDU6TGFiZWwzMjQxODM3NTEy', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY', - name: 'CY', - color: '90FA7B', - default: false, - description: 'Cyprus' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5932506810, - node_id: 'LA_kwDOCWUK8M8AAAABYZreug', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:remove', - name: 'streams:remove', - color: '5373a2', - default: false, - description: '' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-05T10:09:04Z', - updated_at: '2023-09-07T00:50:06Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream URL\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8\r\n\r\nhttp://l6.cloudskep.com/rikcy/rik2/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/events', - html_url: 'https://github.com/iptv-org/iptv/issues/16120', - id: 1878180439, - node_id: 'I_kwDOCWUK8M5v8sJX', - number: 16120, - title: 'Broken: Canal 5 (MX)', - user: { - login: 'chris202020202020', - id: 141375812, - node_id: 'U_kgDOCG05RA', - avatar_url: 'https://avatars.githubusercontent.com/u/141375812?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/chris202020202020', - html_url: 'https://github.com/chris202020202020', - followers_url: 'https://api.github.com/users/chris202020202020/followers', - following_url: 'https://api.github.com/users/chris202020202020/following{/other_user}', - gists_url: 'https://api.github.com/users/chris202020202020/gists{/gist_id}', - starred_url: 'https://api.github.com/users/chris202020202020/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/chris202020202020/subscriptions', - organizations_url: 'https://api.github.com/users/chris202020202020/orgs', - repos_url: 'https://api.github.com/users/chris202020202020/repos', - events_url: 'https://api.github.com/users/chris202020202020/events{/privacy}', - received_events_url: 'https://api.github.com/users/chris202020202020/received_events', - type: 'User', - site_admin: false - }, - labels: [ - { - id: 1707513547, - node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', - name: 'broken stream', - color: 'FBCA04', - default: false, - description: 'Stream is not working properly' - }, - { - id: 2980444955, - node_id: 'MDU6TGFiZWwyOTgwNDQ0OTU1', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/MX', - name: 'MX', - color: '02A7D1', - default: false, - description: 'Mexico' - }, - { - id: 5923498886, - node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', - name: 'approved', - color: '85ddde', - default: false, - description: '' - }, - { - id: 5932506810, - node_id: 'LA_kwDOCWUK8M8AAAABYZreug', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:remove', - name: 'streams:remove', - color: '5373a2', - default: false, - description: '' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2023-09-01T23:49:28Z', - updated_at: '2023-09-07T00:24:05Z', - closed_at: null, - author_association: 'NONE', - active_lock_reason: null, - body: '### Stream URL\n\nhttp://190.61.102.67:2000/play/a038/index.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\n_No response_\n\n### Notes (optional)\n\nReplacement For A Broken Stream To A New Stream For Canal 5 (MX) Please\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#report-a-broken-stream)', - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/events', - html_url: 'https://github.com/iptv-org/iptv/issues/19957', - id: 2880738344, - node_id: 'I_kwDOCWUK8M6rtJQo', - number: 19957, - title: 'Find: CNBCe.tr', - user: { - login: 'M3UDay', - id: 164743332, - node_id: 'U_kgDOCdHIpA', - avatar_url: 'https://avatars.githubusercontent.com/u/164743332?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/M3UDay', - html_url: 'https://github.com/M3UDay', - followers_url: 'https://api.github.com/users/M3UDay/followers', - following_url: 'https://api.github.com/users/M3UDay/following{/other_user}', - gists_url: 'https://api.github.com/users/M3UDay/gists{/gist_id}', - starred_url: 'https://api.github.com/users/M3UDay/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/M3UDay/subscriptions', - organizations_url: 'https://api.github.com/users/M3UDay/orgs', - repos_url: 'https://api.github.com/users/M3UDay/repos', - events_url: 'https://api.github.com/users/M3UDay/events{/privacy}', - received_events_url: 'https://api.github.com/users/M3UDay/received_events', - type: 'User', - user_view_type: 'public', - site_admin: false - }, - labels: [ - { - id: 8197871093, - node_id: 'LA_kwDOCWUK8M8AAAAB6KGV9Q', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/channel%20search', - name: 'channel search', - color: 'eaeaea', - default: false, - description: 'Request to find a link to a channel stream' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2025-02-26T08:43:49Z', - updated_at: '2025-02-26T08:43:49Z', - closed_at: null, - author_association: 'NONE', - sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, - active_lock_reason: null, - body: '### Stream ID (required)\n\n13thStreet.au\n\n### Notes\n\n_No response_', - closed_by: null, - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/events', - html_url: 'https://github.com/iptv-org/iptv/issues/20956', - id: 2880738444, - node_id: 'I_kwDOCWUK8M6rtJQo', - number: 20956, - title: 'Find: IONTV.us', - user: { - login: 'M3UDay', - id: 164743332, - node_id: 'U_kgDOCdHIpA', - avatar_url: 'https://avatars.githubusercontent.com/u/164743332?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/M3UDay', - html_url: 'https://github.com/M3UDay', - followers_url: 'https://api.github.com/users/M3UDay/followers', - following_url: 'https://api.github.com/users/M3UDay/following{/other_user}', - gists_url: 'https://api.github.com/users/M3UDay/gists{/gist_id}', - starred_url: 'https://api.github.com/users/M3UDay/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/M3UDay/subscriptions', - organizations_url: 'https://api.github.com/users/M3UDay/orgs', - repos_url: 'https://api.github.com/users/M3UDay/repos', - events_url: 'https://api.github.com/users/M3UDay/events{/privacy}', - received_events_url: 'https://api.github.com/users/M3UDay/received_events', - type: 'User', - user_view_type: 'public', - site_admin: false - }, - labels: [ - { - id: 8197871093, - node_id: 'LA_kwDOCWUK8M8AAAAB6KGV9Q', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/channel%20search', - name: 'channel search', - color: 'eaeaea', - default: false, - description: 'Request to find a link to a channel stream' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2025-02-26T08:43:49Z', - updated_at: '2025-02-26T08:43:49Z', - closed_at: null, - author_association: 'NONE', - sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, - active_lock_reason: null, - body: '### Stream ID (required)\n\nIONTV.us\n\n### Notes\n\n_No response_', - closed_by: null, - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/timeline', - performed_via_github_app: null, - state_reason: null - }, - { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157', - repository_url: 'https://api.github.com/repos/iptv-org/iptv', - labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/labels{/name}', - comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/comments', - events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/events', - html_url: 'https://github.com/iptv-org/iptv/issues/25157', - id: 3245640024, - node_id: 'I_kwDOCWUK8M7BdIlY', - number: 25157, - title: 'Add: OnTime Sports SD', - user: { - login: 'zezopm300', - id: 215159878, - node_id: 'U_kgDODNMURg', - avatar_url: 'https://avatars.githubusercontent.com/u/215159878?v=4', - gravatar_id: '', - url: 'https://api.github.com/users/zezopm300', - html_url: 'https://github.com/zezopm300', - followers_url: 'https://api.github.com/users/zezopm300/followers', - following_url: 'https://api.github.com/users/zezopm300/following{/other_user}', - gists_url: 'https://api.github.com/users/zezopm300/gists{/gist_id}', - starred_url: 'https://api.github.com/users/zezopm300/starred{/owner}{/repo}', - subscriptions_url: 'https://api.github.com/users/zezopm300/subscriptions', - organizations_url: 'https://api.github.com/users/zezopm300/orgs', - repos_url: 'https://api.github.com/users/zezopm300/repos', - events_url: 'https://api.github.com/users/zezopm300/events{/privacy}', - received_events_url: 'https://api.github.com/users/zezopm300/received_events', - type: 'User', - user_view_type: 'public', - site_admin: false - }, - labels: [ - { - id: 5923508587, - node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', - url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', - name: 'streams:add', - color: '017ff9', - default: false, - description: 'Request to add a new link to a playlist' - } - ], - state: 'open', - locked: false, - assignee: null, - assignees: [], - milestone: null, - comments: 0, - created_at: '2025-07-19T20:44:05Z', - updated_at: '2025-07-19T20:44:05Z', - closed_at: null, - author_association: 'NONE', - type: null, - active_lock_reason: null, - sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, - body: - '### Stream ID (required)\n' + - '\n' + - 'OnTimeSports.eg@SD\n' + - '\n' + - '### Stream URL (required)\n' + - '\n' + - ' OnTime Sports SD.mu38\n' + - '\n' + - '### Quality\n' + - '\n' + - 'None\n' + - '\n' + - '### Label\n' + - '\n' + - 'None\n' + - '\n' + - '### HTTP User Agent\n' + - '\n' + - '_No response_\n' + - '\n' + - '### HTTP Referrer\n' + - '\n' + - '_No response_\n' + - '\n' + - '### Directives\n' + - '\n' + - '_No response_\n' + - '\n' + - '### Notes\n' + - '\n' + - '_No response_\n' + - '\n' + - '### Contributing Guide\n' + - '\n' + - '- [x] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', - closed_by: null, - reactions: { - url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/reactions', - total_count: 0, - '+1': 0, - '-1': 0, - laugh: 0, - hooray: 0, - confused: 0, - heart: 0, - rocket: 0, - eyes: 0 - }, - timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/timeline', - performed_via_github_app: null, - state_reason: null - } -] +module.exports = [ + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14140', + id: 1881649602, + node_id: 'I_kwDOCWUK8M5wJ7HC', + number: 14140, + title: 'Broken: RIK HD Cyprus', + user: { + login: 'ROBGagn', + id: 124619576, + node_id: 'U_kgDOB22LOA', + avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/ROBGagn', + html_url: 'https://github.com/ROBGagn', + followers_url: 'https://api.github.com/users/ROBGagn/followers', + following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}', + gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}', + starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions', + organizations_url: 'https://api.github.com/users/ROBGagn/orgs', + repos_url: 'https://api.github.com/users/ROBGagn/repos', + events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}', + received_events_url: 'https://api.github.com/users/ROBGagn/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1707513547, + node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', + name: 'broken stream', + color: 'FBCA04', + default: false, + description: 'Stream is not working properly' + }, + { + id: 3241837512, + node_id: 'MDU6TGFiZWwzMjQxODM3NTEy', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY', + name: 'CY', + color: '90FA7B', + default: false, + description: 'Cyprus' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-05T10:09:04Z', + updated_at: '2023-09-07T00:50:06Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Broken Links\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8\r\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14159', + id: 1881649602, + node_id: 'I_kwDOCWUK8M5wJ7HC', + number: 14159, + title: 'Broken: RIK HD Cyprus', + user: { + login: 'ROBGagn', + id: 124619576, + node_id: 'U_kgDOB22LOA', + avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/ROBGagn', + html_url: 'https://github.com/ROBGagn', + followers_url: 'https://api.github.com/users/ROBGagn/followers', + following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}', + gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}', + starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions', + organizations_url: 'https://api.github.com/users/ROBGagn/orgs', + repos_url: 'https://api.github.com/users/ROBGagn/repos', + events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}', + received_events_url: 'https://api.github.com/users/ROBGagn/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1707513547, + node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', + name: 'broken stream', + color: 'FBCA04', + default: false, + description: 'Stream is not working properly' + }, + { + id: 3241837512, + node_id: 'MDU6TGFiZWwzMjQxODM3NTEy', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY', + name: 'CY', + color: '90FA7B', + default: false, + description: 'Cyprus' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-05T10:09:04Z', + updated_at: '2023-09-07T00:50:06Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Broken Links\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\r\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14159/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/events', + html_url: 'https://github.com/iptv-org/iptv/issues/19956', + id: 2880738344, + node_id: 'I_kwDOCWUK8M6rtJQo', + number: 19956, + title: 'Find: CNBCe.tr', + user: { + login: 'M3UDay', + id: 164743332, + node_id: 'U_kgDOCdHIpA', + avatar_url: 'https://avatars.githubusercontent.com/u/164743332?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/M3UDay', + html_url: 'https://github.com/M3UDay', + followers_url: 'https://api.github.com/users/M3UDay/followers', + following_url: 'https://api.github.com/users/M3UDay/following{/other_user}', + gists_url: 'https://api.github.com/users/M3UDay/gists{/gist_id}', + starred_url: 'https://api.github.com/users/M3UDay/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/M3UDay/subscriptions', + organizations_url: 'https://api.github.com/users/M3UDay/orgs', + repos_url: 'https://api.github.com/users/M3UDay/repos', + events_url: 'https://api.github.com/users/M3UDay/events{/privacy}', + received_events_url: 'https://api.github.com/users/M3UDay/received_events', + type: 'User', + user_view_type: 'public', + site_admin: false + }, + labels: [ + { + id: 8197871093, + node_id: 'LA_kwDOCWUK8M8AAAAB6KGV9Q', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/channel%20search', + name: 'channel search', + color: 'eaeaea', + default: false, + description: 'Request to find a link to a channel stream' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2025-02-26T08:43:49Z', + updated_at: '2025-02-26T08:43:49Z', + closed_at: null, + author_association: 'NONE', + sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, + active_lock_reason: null, + body: '### Channel ID (required)\n\nCNBCe.tr\n\n### Notes\n\n_No response_', + closed_by: null, + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19956/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14179', + id: 1884926953, + node_id: 'I_kwDOCWUK8M5wWbPp', + number: 14179, + title: 'Add: Manorama News', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694119113, + node_id: 'MDU6TGFiZWwxNjk0MTE5MTEz', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/IN', + name: 'IN', + color: 'd8139a', + default: false, + description: 'India' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-07T00:38:55Z', + updated_at: '2023-09-07T00:48:32Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream ID\n\nManoramaNews.in\n\n### Stream URL\n\nhttps://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8\n\n### Label\n\nNot 24/7\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14007#issuecomment-1686942043\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14178', + id: 1884922249, + node_id: 'I_kwDOCWUK8M5wWaGJ', + number: 14178, + title: 'Add: TV3', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1912922147, + node_id: 'MDU6TGFiZWwxOTEyOTIyMTQ3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/MY', + name: 'MY', + color: 'ea59cf', + default: false, + description: 'Malaysia' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-07T00:30:51Z', + updated_at: '2023-09-07T00:48:23Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream ID\n\nTV3.my\n\n### Stream URL\n\nhttps://live-streams-ssai-01.tonton.com.my/live/2dd2b7cd-1b34-4871-b669-57b5c9beca23/live.isml/.m3u8\n\n### Label\n\nNone\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14063#issuecomment-1695783106\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14178/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14177', + id: 1884920274, + node_id: 'I_kwDOCWUK8M5wWZnS', + number: 14177, + title: 'Add: Temple University TV', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694118251, + node_id: 'MDU6TGFiZWwxNjk0MTE4MjUx', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/US', + name: 'US', + color: '463faa', + default: false, + description: 'United States' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-07T00:27:51Z', + updated_at: '2023-09-07T00:47:15Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream ID\n\nTUTV.us\n\n### Stream URL\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### Label\n\nNone\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14096#issue-1874505679\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14177/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14175', + id: 1884859778, + node_id: 'I_kwDOCWUK8M5wWK2C', + number: 14175, + title: 'Add: TFX', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694117286, + node_id: 'MDU6TGFiZWwxNjk0MTE3Mjg2', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/FR', + name: 'FR', + color: 'f7ec1b', + default: false, + description: 'France' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-06T22:54:25Z', + updated_at: '2023-09-07T00:57:11Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream ID\n\nTFX.fr\n\n### Stream URL\n\nhttps://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\n\n### Label\n\nNone\n\n### HTTP User Agent\n\nMozilla/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\n\n### HTTP Referrer\n\nhttps://pkpakiplay.xyz/\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv-org.github.io/issues/1381\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14179', + id: 1884926953, + node_id: 'I_kwDOCWUK8M5wWbPp', + number: 14179, + title: 'Add: Manorama News', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694119113, + node_id: 'MDU6TGFiZWwxNjk0MTE5MTEz', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/IN', + name: 'IN', + color: 'd8139a', + default: false, + description: 'India' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-07T00:38:55Z', + updated_at: '2023-09-07T00:48:32Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream ID\n\nManoramaNews.in\n\n### Stream URL\n\n(https://mitelefe.com/Api/Videos/GetSourceUrl/694564/0/HLS / https://ssl.cloud.telefe.com/Api/Videos/GetSourceUrl/694564/0/HLS)\n\n### Label\n\nNot 24/7\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv/issues/14007#issuecomment-1686942043\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14179/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14135', + id: 1880165524, + node_id: 'I_kwDOCWUK8M5wEQyU', + number: 14135, + title: 'Add: BBC World News South Asia ', + user: { + login: 'kheohoanganh', + id: 128283995, + node_id: 'U_kgDOB6V1Ww', + avatar_url: 'https://avatars.githubusercontent.com/u/128283995?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/kheohoanganh', + html_url: 'https://github.com/kheohoanganh', + followers_url: 'https://api.github.com/users/kheohoanganh/followers', + following_url: 'https://api.github.com/users/kheohoanganh/following{/other_user}', + gists_url: 'https://api.github.com/users/kheohoanganh/gists{/gist_id}', + starred_url: 'https://api.github.com/users/kheohoanganh/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/kheohoanganh/subscriptions', + organizations_url: 'https://api.github.com/users/kheohoanganh/orgs', + repos_url: 'https://api.github.com/users/kheohoanganh/repos', + events_url: 'https://api.github.com/users/kheohoanganh/events{/privacy}', + received_events_url: 'https://api.github.com/users/kheohoanganh/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694116077, + node_id: 'MDU6TGFiZWwxNjk0MTE2MDc3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/UK', + name: 'UK', + color: '99e5e5', + default: false, + description: 'United Kingdom' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-04T12:22:50Z', + updated_at: '2023-09-07T00:50:28Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\n\nBBCWorldNews.uk@SouthAsia\n\n### Stream URL (optional)\n\nhttp://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2801%29/index.m3u8\n\n### Notes (optional)\n\n2 links for BBCWorldNewsSouthAsia.uk\r\nhttp://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2801%29/index.m3u8\r\nhttp://103.199.161.254/Content/bbcworld/Live/Channel%28BBCworld%29/Stream%2802%29/index.m3u8\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14135/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14105', + id: 1876637538, + node_id: 'I_kwDOCWUK8M5v2zdi', + number: 14105, + title: 'Add: Amarin TV (720p)', + user: { + login: 'Soponwit19997', + id: 142583084, + node_id: 'U_kgDOCH-lLA', + avatar_url: 'https://avatars.githubusercontent.com/u/142583084?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/Soponwit19997', + html_url: 'https://github.com/Soponwit19997', + followers_url: 'https://api.github.com/users/Soponwit19997/followers', + following_url: 'https://api.github.com/users/Soponwit19997/following{/other_user}', + gists_url: 'https://api.github.com/users/Soponwit19997/gists{/gist_id}', + starred_url: 'https://api.github.com/users/Soponwit19997/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/Soponwit19997/subscriptions', + organizations_url: 'https://api.github.com/users/Soponwit19997/orgs', + repos_url: 'https://api.github.com/users/Soponwit19997/repos', + events_url: 'https://api.github.com/users/Soponwit19997/events{/privacy}', + received_events_url: 'https://api.github.com/users/Soponwit19997/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 2990740232, + node_id: 'MDU6TGFiZWwyOTkwNzQwMjMy', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/TH', + name: 'TH', + color: 'B798EA', + default: false, + description: 'Thailand' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-01T03:08:05Z', + updated_at: '2023-09-06T14:19:50Z', + closed_at: null, + author_association: 'CONTRIBUTOR', + active_lock_reason: null, + body: '### Stream ID\n\nAmarinTV.th\n\n### Stream URL (optional)\n\nhttps://cdn6.goprimetime.info/feed/202306140918/chamarin/index.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14105/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14104', + id: 1876636019, + node_id: 'I_kwDOCWUK8M5v2zFz', + number: 14104, + title: 'Add: MCOT HD (720p)', + user: { + login: 'Soponwit19997', + id: 142583084, + node_id: 'U_kgDOCH-lLA', + avatar_url: 'https://avatars.githubusercontent.com/u/142583084?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/Soponwit19997', + html_url: 'https://github.com/Soponwit19997', + followers_url: 'https://api.github.com/users/Soponwit19997/followers', + following_url: 'https://api.github.com/users/Soponwit19997/following{/other_user}', + gists_url: 'https://api.github.com/users/Soponwit19997/gists{/gist_id}', + starred_url: 'https://api.github.com/users/Soponwit19997/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/Soponwit19997/subscriptions', + organizations_url: 'https://api.github.com/users/Soponwit19997/orgs', + repos_url: 'https://api.github.com/users/Soponwit19997/repos', + events_url: 'https://api.github.com/users/Soponwit19997/events{/privacy}', + received_events_url: 'https://api.github.com/users/Soponwit19997/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 2990740232, + node_id: 'MDU6TGFiZWwyOTkwNzQwMjMy', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/TH', + name: 'TH', + color: 'B798EA', + default: false, + description: 'Thailand' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-01T03:05:56Z', + updated_at: '2023-09-06T14:21:02Z', + closed_at: null, + author_association: 'CONTRIBUTOR', + active_lock_reason: null, + body: '### Stream ID\n\nMCOTHD.th\n\n### Stream URL (optional)\n\nhttps://cdn6.goprimetime.info/feed/202306140918/chmcothd/index.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14104/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14057', + id: 1868766252, + node_id: 'I_kwDOCWUK8M5vYxws', + number: 14057, + title: 'Add: MotorTrend Fast TV', + user: { + login: 'AudioNutz', + id: 28129911, + node_id: 'MDQ6VXNlcjI4MTI5OTEx', + avatar_url: 'https://avatars.githubusercontent.com/u/28129911?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/AudioNutz', + html_url: 'https://github.com/AudioNutz', + followers_url: 'https://api.github.com/users/AudioNutz/followers', + following_url: 'https://api.github.com/users/AudioNutz/following{/other_user}', + gists_url: 'https://api.github.com/users/AudioNutz/gists{/gist_id}', + starred_url: 'https://api.github.com/users/AudioNutz/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/AudioNutz/subscriptions', + organizations_url: 'https://api.github.com/users/AudioNutz/orgs', + repos_url: 'https://api.github.com/users/AudioNutz/repos', + events_url: 'https://api.github.com/users/AudioNutz/events{/privacy}', + received_events_url: 'https://api.github.com/users/AudioNutz/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694118251, + node_id: 'MDU6TGFiZWwxNjk0MTE4MjUx', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/US', + name: 'US', + color: '463faa', + default: false, + description: 'United States' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-08-28T01:23:43Z', + updated_at: '2023-09-06T13:44:17Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\r\n\r\nFastTV.us\r\n\r\n### Stream URL (optional)\r\n\r\nhttps://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8\r\n\r\n### Notes (optional)\r\n\r\nA free stream from MotorTrend TV\r\n\r\n### Please confirm the following\r\n\r\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14057/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14034', + id: 1863678726, + node_id: 'I_kwDOCWUK8M5vFXsG', + number: 14034, + title: 'Add: match 4(hu)', + user: { + login: 'erich1997', + id: 85035390, + node_id: 'MDQ6VXNlcjg1MDM1Mzkw', + avatar_url: 'https://avatars.githubusercontent.com/u/85035390?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/erich1997', + html_url: 'https://github.com/erich1997', + followers_url: 'https://api.github.com/users/erich1997/followers', + following_url: 'https://api.github.com/users/erich1997/following{/other_user}', + gists_url: 'https://api.github.com/users/erich1997/gists{/gist_id}', + starred_url: 'https://api.github.com/users/erich1997/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/erich1997/subscriptions', + organizations_url: 'https://api.github.com/users/erich1997/orgs', + repos_url: 'https://api.github.com/users/erich1997/repos', + events_url: 'https://api.github.com/users/erich1997/events{/privacy}', + received_events_url: 'https://api.github.com/users/erich1997/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1696015170, + node_id: 'MDU6TGFiZWwxNjk2MDE1MTcw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/HU', + name: 'HU', + color: 'e89bbf', + default: false, + description: 'Hungary' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-08-23T16:42:47Z', + updated_at: '2023-09-06T13:07:20Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\n\nMatch4.hu\n\n### Stream URL (optional)\n\nhttp://194.76.186.33:8000/play/a04d/index.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14034/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/events', + html_url: 'https://github.com/iptv-org/iptv/issues/13964', + id: 1857666538, + node_id: 'I_kwDOCWUK8M5uub3q', + number: 13964, + title: 'Add: Meth TV [LK] ', + user: { + login: 'Carlinhos027', + id: 111005658, + node_id: 'U_kgDOBp3P2g', + avatar_url: 'https://avatars.githubusercontent.com/u/111005658?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/Carlinhos027', + html_url: 'https://github.com/Carlinhos027', + followers_url: 'https://api.github.com/users/Carlinhos027/followers', + following_url: 'https://api.github.com/users/Carlinhos027/following{/other_user}', + gists_url: 'https://api.github.com/users/Carlinhos027/gists{/gist_id}', + starred_url: 'https://api.github.com/users/Carlinhos027/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/Carlinhos027/subscriptions', + organizations_url: 'https://api.github.com/users/Carlinhos027/orgs', + repos_url: 'https://api.github.com/users/Carlinhos027/repos', + events_url: 'https://api.github.com/users/Carlinhos027/events{/privacy}', + received_events_url: 'https://api.github.com/users/Carlinhos027/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 5432228583, + node_id: 'LA_kwDOCWUK8M8AAAABQ8k65w', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/not%2024/7', + name: 'not 24/7', + color: '40715B', + default: false, + description: '' + }, + { + id: 5641193949, + node_id: 'LA_kwDOCWUK8M8AAAABUD3J3Q', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/LK', + name: 'LK', + color: '0A59ED', + default: false, + description: 'Sri Lanka' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-08-19T10:31:37Z', + updated_at: '2023-09-07T11:25:16Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream ID\n\nMethTV.lk\n\n### Stream URL (optional)\n\nhttps://ythls.onrender.com/channel/UC7kBHRaynsJMB6JcooGLTmA.m3u8\n\n### Notes (optional)\n\n720p / Not 24/7\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13964/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/events', + html_url: 'https://github.com/iptv-org/iptv/issues/13893', + id: 1850537350, + node_id: 'I_kwDOCWUK8M5uTPWG', + number: 13893, + title: 'Add: Weathernews (JPN) via YouTube', + user: { + login: 'arecki2', + id: 18574440, + node_id: 'MDQ6VXNlcjE4NTc0NDQw', + avatar_url: 'https://avatars.githubusercontent.com/u/18574440?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/arecki2', + html_url: 'https://github.com/arecki2', + followers_url: 'https://api.github.com/users/arecki2/followers', + following_url: 'https://api.github.com/users/arecki2/following{/other_user}', + gists_url: 'https://api.github.com/users/arecki2/gists{/gist_id}', + starred_url: 'https://api.github.com/users/arecki2/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/arecki2/subscriptions', + organizations_url: 'https://api.github.com/users/arecki2/orgs', + repos_url: 'https://api.github.com/users/arecki2/repos', + events_url: 'https://api.github.com/users/arecki2/events{/privacy}', + received_events_url: 'https://api.github.com/users/arecki2/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694117140, + node_id: 'MDU6TGFiZWwxNjk0MTE3MTQw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/JP', + name: 'JP', + color: '350bdd', + default: false, + description: 'Japan' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 2, + created_at: '2023-08-14T21:04:00Z', + updated_at: '2023-09-06T14:30:57Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: "### Stream ID\n\nWeathernews.jp\n\n### Stream URL (optional)\n\nhttps://ythls.onrender.com/channel/UCNsidkYpIAQ4QaufptQBPHQ.m3u8\n\n### Notes (optional)\n\nLet's try them 😼\r\n\r\nI've just learned that they change streams for their TV broadcasts on YouTube every 3 hours, so even with additional streams they occasionally activate (such as now during Typhoon Lan), the YT API should manage to pick the correct feed in most cases 😜\r\n\r\nOtherwise, an advantage over the two streams that already are in the database is that the YT broadcasts are in 1080p (vs 720p).\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)", + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13893/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/events', + html_url: 'https://github.com/iptv-org/iptv/issues/13881', + id: 1848780631, + node_id: 'I_kwDOCWUK8M5uMidX', + number: 13881, + title: 'Add: Aaj Tak', + user: { + login: 'R4IN2007', + id: 83226646, + node_id: 'MDQ6VXNlcjgzMjI2NjQ2', + avatar_url: 'https://avatars.githubusercontent.com/u/83226646?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/R4IN2007', + html_url: 'https://github.com/R4IN2007', + followers_url: 'https://api.github.com/users/R4IN2007/followers', + following_url: 'https://api.github.com/users/R4IN2007/following{/other_user}', + gists_url: 'https://api.github.com/users/R4IN2007/gists{/gist_id}', + starred_url: 'https://api.github.com/users/R4IN2007/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/R4IN2007/subscriptions', + organizations_url: 'https://api.github.com/users/R4IN2007/orgs', + repos_url: 'https://api.github.com/users/R4IN2007/repos', + events_url: 'https://api.github.com/users/R4IN2007/events{/privacy}', + received_events_url: 'https://api.github.com/users/R4IN2007/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694119113, + node_id: 'MDU6TGFiZWwxNjk0MTE5MTEz', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/IN', + name: 'IN', + color: 'd8139a', + default: false, + description: 'India' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-08-13T23:23:28Z', + updated_at: '2023-09-06T14:32:15Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\n\nAajTak.in\n\n### Stream URL (optional)\n\nhttps://feeds.intoday.in/aajtak/api/aajtakhd/master.m3u8\n\n### Notes (optional)\n\n_No response_\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13881/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/events', + html_url: 'https://github.com/iptv-org/iptv/issues/13793', + id: 1846716551, + node_id: 'I_kwDOCWUK8M5uEqiH', + number: 13793, + title: 'Add: AT-X (JPN)', + user: { + login: 'ZXArkin', + id: 21299971, + node_id: 'MDQ6VXNlcjIxMjk5OTcx', + avatar_url: 'https://avatars.githubusercontent.com/u/21299971?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/ZXArkin', + html_url: 'https://github.com/ZXArkin', + followers_url: 'https://api.github.com/users/ZXArkin/followers', + following_url: 'https://api.github.com/users/ZXArkin/following{/other_user}', + gists_url: 'https://api.github.com/users/ZXArkin/gists{/gist_id}', + starred_url: 'https://api.github.com/users/ZXArkin/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/ZXArkin/subscriptions', + organizations_url: 'https://api.github.com/users/ZXArkin/orgs', + repos_url: 'https://api.github.com/users/ZXArkin/repos', + events_url: 'https://api.github.com/users/ZXArkin/events{/privacy}', + received_events_url: 'https://api.github.com/users/ZXArkin/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694117140, + node_id: 'MDU6TGFiZWwxNjk0MTE3MTQw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/JP', + name: 'JP', + color: '350bdd', + default: false, + description: 'Japan' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 4, + created_at: '2023-08-11T12:11:28Z', + updated_at: '2023-09-06T14:17:56Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\r\n\r\nATX.jp\r\n\r\n### Stream URL (optional)\r\n\r\nhttp://194.233.72.249:8080/AT-X/index.m3u8\r\n\r\n### Notes (optional)\r\n\r\n![AT-X_20230705_202525 551](https://github.com/iptv-org/iptv/assets/21299971/794c1cd4-fbe4-4b35-8a16-45127953ff65)\r\nThis is test AT-X channel JP without subs\r\n720 Quality\r\n\r\n### Please confirm the following\r\n\r\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13793/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/events', + html_url: 'https://github.com/iptv-org/iptv/issues/13751', + id: 1838199158, + node_id: 'I_kwDOCWUK8M5tkLF2', + number: 13751, + title: 'Add: Beano TV', + user: { + login: 'Ghani201', + id: 132144620, + node_id: 'U_kgDOB-Bd7A', + avatar_url: 'https://avatars.githubusercontent.com/u/132144620?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/Ghani201', + html_url: 'https://github.com/Ghani201', + followers_url: 'https://api.github.com/users/Ghani201/followers', + following_url: 'https://api.github.com/users/Ghani201/following{/other_user}', + gists_url: 'https://api.github.com/users/Ghani201/gists{/gist_id}', + starred_url: 'https://api.github.com/users/Ghani201/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/Ghani201/subscriptions', + organizations_url: 'https://api.github.com/users/Ghani201/orgs', + repos_url: 'https://api.github.com/users/Ghani201/repos', + events_url: 'https://api.github.com/users/Ghani201/events{/privacy}', + received_events_url: 'https://api.github.com/users/Ghani201/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1694116077, + node_id: 'MDU6TGFiZWwxNjk0MTE2MDc3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/UK', + name: 'UK', + color: '99e5e5', + default: false, + description: 'United Kingdom' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 2, + created_at: '2023-08-06T12:54:59Z', + updated_at: '2023-09-06T14:40:01Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\r\n\r\nBeanoTV.uk\r\n\r\n### Stream URL (optional)\r\n\r\nhttps://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8|Referer="https://referer.xyz/"|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"|Origin="https://origin.xyz"\r\n\r\n### Directives (optional)\r\n\r\n#EXTVLCOPT:http-referrer=http://imn.iq\r\n\r\n#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\r\n\r\n#KODIPROP:inputstream=inputstream.adaptive\r\n\r\n#KODIPROP:inputstream.adaptive.manifest_type=mpd\r\n\r\n#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha\r\n\r\n#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=v9ZVSksv4S7rT55o10dmYNRa4asye3z05eWCFxD%2FFYIlTJEpuf6tF8asPcyQOFq0h5opS%2B6WoMxnshWkihpHq5qrdrBEZ69piE94J9Feh385snGOqK3PYO7tLLjxmsCAe%2B9%2BNnurSSO5RCAIRsL125nSj1eOR%2F1GSKOgGH80HK2FDLiePxPkeaAxuWzacNBB%2FqnIGGxfe3GlmN65cU9F8WEpKFDlaxW%2Fv3ZSLAp3%2BZEq1aZXJ6Oz%2Fi0diD0EybH7|Content-Type=application/octet-stream|R{SSM}|\r\n\r\n### Notes (optional)\r\n\r\n_No response_\r\n\r\n### Please confirm the following\r\n\r\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13751/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/events', + html_url: 'https://github.com/iptv-org/iptv/issues/13715', + id: 1835942409, + node_id: 'I_kwDOCWUK8M5tbkIJ', + number: 13715, + title: 'Add: ATV+ HD (Perú) [Linear Version of ATV+]', + user: { + login: 'R4IN2007', + id: 83226646, + node_id: 'MDQ6VXNlcjgzMjI2NjQ2', + avatar_url: 'https://avatars.githubusercontent.com/u/83226646?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/R4IN2007', + html_url: 'https://github.com/R4IN2007', + followers_url: 'https://api.github.com/users/R4IN2007/followers', + following_url: 'https://api.github.com/users/R4IN2007/following{/other_user}', + gists_url: 'https://api.github.com/users/R4IN2007/gists{/gist_id}', + starred_url: 'https://api.github.com/users/R4IN2007/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/R4IN2007/subscriptions', + organizations_url: 'https://api.github.com/users/R4IN2007/orgs', + repos_url: 'https://api.github.com/users/R4IN2007/repos', + events_url: 'https://api.github.com/users/R4IN2007/events{/privacy}', + received_events_url: 'https://api.github.com/users/R4IN2007/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 3046075919, + node_id: 'MDU6TGFiZWwzMDQ2MDc1OTE5', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/PE', + name: 'PE', + color: 'E78203', + default: false, + description: 'Peru' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 2, + created_at: '2023-08-04T01:48:24Z', + updated_at: '2023-09-06T14:41:57Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream ID\n\nATVPlus.pe\n\n### Stream URL (optional)\n\nhttps://linear-258.frequency.stream/dist/vix/258/hls/master/playlist.m3u8\n\n### Notes (optional)\n\n(Linear Version & Streaming on VIX.com a spanish televisa-univision site) Might be geo-blocked or geo-locked because by removing /dist/vix/ the m3u8 link stops working #13703 \n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#request-a-channel)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/13715/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14120', + id: 1884922249, + node_id: 'I_kwDOCWUK8M5wWaGJ', + number: 14120, + title: 'Edit: Tele2000', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:edit', + name: 'streams:edit', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-07T00:30:51Z', + updated_at: '2023-09-07T00:48:23Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream URL\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### Stream ID\n\nboo.us\n\n### Quality\n\n720p\n\n### Label\n\nGeo-blocked\n\n### HTTP User-Agent\n\nMozilla/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\n\n### HTTP Referrer\n\n_No response_\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14110', + id: 1884922249, + node_id: 'I_kwDOCWUK8M5wWaGJ', + number: 14110, + title: 'Edit: Tele2000', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:edit', + name: 'streams:edit', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-07T00:30:51Z', + updated_at: '2023-09-07T00:48:23Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream URL (required)\n\nhttps://servilive.com:3126/live/tele2000live.m3u8\n\n### New Stream URL\n\nhttps://xui-backend.energeek.cl/live/9/playlist.m3u8?username=ZZDemoIPTVGH&password=mdo96EuqMkTR|Referer="https://referer.xyz/"|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"|Origin="https://origin.xyz"\n\n### Stream ID\n\nBBCAmerica.us@East\n\n### Quality\n\n720p\n\n### Label\n\n~\n\n### HTTP User-Agent\n\nMozilla/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\n\n### HTTP Referrer\n\n~\n\n### Directives (optional)\r\n\r\n#EXTVLCOPT:http-referrer=http://imn.iq\r\n\r\n#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\r\n\r\n#KODIPROP:inputstream=inputstream.adaptive\r\n\r\n#KODIPROP:inputstream.adaptive.manifest_type=mpd\r\n\r\n#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha\r\n\r\n#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=v9ZVSksv4S7rT55o10dmYNRa4asye3z05eWCFxD%2FFYIlTJEpuf6tF8asPcyQOFq0h5opS%2B6WoMxnshWkihpHq5qrdrBEZ69piE94J9Feh385snGOqK3PYO7tLLjxmsCAe%2B9%2BNnurSSO5RCAIRsL125nSj1eOR%2F1GSKOgGH80HK2FDLiePxPkeaAxuWzacNBB%2FqnIGGxfe3GlmN65cU9F8WEpKFDlaxW%2Fv3ZSLAp3%2BZEq1aZXJ6Oz%2Fi0diD0EybH7|Content-Type=application/octet-stream|R{SSM}|\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14120', + id: 1884922249, + node_id: 'I_kwDOCWUK8M5wWaGJ', + number: 14120, + title: 'Edit: Tele2000', + user: { + login: 'freearhey', + id: 7253922, + node_id: 'MDQ6VXNlcjcyNTM5MjI=', + avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/freearhey', + html_url: 'https://github.com/freearhey', + followers_url: 'https://api.github.com/users/freearhey/followers', + following_url: 'https://api.github.com/users/freearhey/following{/other_user}', + gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}', + starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions', + organizations_url: 'https://api.github.com/users/freearhey/orgs', + repos_url: 'https://api.github.com/users/freearhey/repos', + events_url: 'https://api.github.com/users/freearhey/events{/privacy}', + received_events_url: 'https://api.github.com/users/freearhey/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:edit', + name: 'streams:edit', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 1, + created_at: '2023-09-07T00:30:51Z', + updated_at: '2023-09-07T00:48:23Z', + closed_at: null, + author_association: 'COLLABORATOR', + active_lock_reason: null, + body: '### Stream URL\n\nhttps://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8\n\n### Stream ID\n\n_No response_\n\n### Quality\n\nNone\n\n### Label\n\nNone\n\n### HTTP User-Agent\n\n_No response_\n\n### HTTP Referrer\n\n_No response_\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14151', + id: 1884653836, + node_id: 'I_kwDOCWUK8M5wVYkM', + number: 14151, + title: 'Remove: VTV', + user: { + login: 'kaikyoofers', + id: 67206080, + node_id: 'MDQ6VXNlcjY3MjA2MDgw', + avatar_url: 'https://avatars.githubusercontent.com/u/67206080?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/kaikyoofers', + html_url: 'https://github.com/kaikyoofers', + followers_url: 'https://api.github.com/users/kaikyoofers/followers', + following_url: 'https://api.github.com/users/kaikyoofers/following{/other_user}', + gists_url: 'https://api.github.com/users/kaikyoofers/gists{/gist_id}', + starred_url: 'https://api.github.com/users/kaikyoofers/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/kaikyoofers/subscriptions', + organizations_url: 'https://api.github.com/users/kaikyoofers/orgs', + repos_url: 'https://api.github.com/users/kaikyoofers/repos', + events_url: 'https://api.github.com/users/kaikyoofers/events{/privacy}', + received_events_url: 'https://api.github.com/users/kaikyoofers/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 2043160604, + node_id: 'MDU6TGFiZWwyMDQzMTYwNjA0', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/BR', + name: 'BR', + color: 'ccdcff', + default: false, + description: 'Brazil' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5932506810, + node_id: 'LA_kwDOCWUK8M8AAAABYZreug', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:remove', + name: 'streams:remove', + color: '5373a2', + default: false, + description: '' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-06T19:51:43Z', + updated_at: '2023-09-07T00:48:57Z', + closed_at: null, + author_association: 'CONTRIBUTOR', + active_lock_reason: null, + body: '### Stream URL\n\nhttps://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Notes (optional)\n\nOne link (VTV.br) is misspelled.\n\n### Contributing Guide\n\n- [x] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14151/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/events', + html_url: 'https://github.com/iptv-org/iptv/issues/14140', + id: 1881649613, + node_id: 'I_kwDOCWUK8M5wJ7HC', + number: 14150, + title: 'Broken: Cyprus Channels', + user: { + login: 'ROBGagn', + id: 124619576, + node_id: 'U_kgDOB22LOA', + avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/ROBGagn', + html_url: 'https://github.com/ROBGagn', + followers_url: 'https://api.github.com/users/ROBGagn/followers', + following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}', + gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}', + starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions', + organizations_url: 'https://api.github.com/users/ROBGagn/orgs', + repos_url: 'https://api.github.com/users/ROBGagn/repos', + events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}', + received_events_url: 'https://api.github.com/users/ROBGagn/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1707513547, + node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', + name: 'broken stream', + color: 'FBCA04', + default: false, + description: 'Stream is not working properly' + }, + { + id: 3241837512, + node_id: 'MDU6TGFiZWwzMjQxODM3NTEy', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY', + name: 'CY', + color: '90FA7B', + default: false, + description: 'Cyprus' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5932506810, + node_id: 'LA_kwDOCWUK8M8AAAABYZreug', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:remove', + name: 'streams:remove', + color: '5373a2', + default: false, + description: '' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-05T10:09:04Z', + updated_at: '2023-09-07T00:50:06Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream URL\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8\r\n\r\nhttp://l6.cloudskep.com/rikcy/rik2/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14150/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/events', + html_url: 'https://github.com/iptv-org/iptv/issues/16120', + id: 1878180439, + node_id: 'I_kwDOCWUK8M5v8sJX', + number: 16120, + title: 'Broken: Canal 5 (MX)', + user: { + login: 'chris202020202020', + id: 141375812, + node_id: 'U_kgDOCG05RA', + avatar_url: 'https://avatars.githubusercontent.com/u/141375812?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/chris202020202020', + html_url: 'https://github.com/chris202020202020', + followers_url: 'https://api.github.com/users/chris202020202020/followers', + following_url: 'https://api.github.com/users/chris202020202020/following{/other_user}', + gists_url: 'https://api.github.com/users/chris202020202020/gists{/gist_id}', + starred_url: 'https://api.github.com/users/chris202020202020/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/chris202020202020/subscriptions', + organizations_url: 'https://api.github.com/users/chris202020202020/orgs', + repos_url: 'https://api.github.com/users/chris202020202020/repos', + events_url: 'https://api.github.com/users/chris202020202020/events{/privacy}', + received_events_url: 'https://api.github.com/users/chris202020202020/received_events', + type: 'User', + site_admin: false + }, + labels: [ + { + id: 1707513547, + node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream', + name: 'broken stream', + color: 'FBCA04', + default: false, + description: 'Stream is not working properly' + }, + { + id: 2980444955, + node_id: 'MDU6TGFiZWwyOTgwNDQ0OTU1', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/MX', + name: 'MX', + color: '02A7D1', + default: false, + description: 'Mexico' + }, + { + id: 5923498886, + node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved', + name: 'approved', + color: '85ddde', + default: false, + description: '' + }, + { + id: 5932506810, + node_id: 'LA_kwDOCWUK8M8AAAABYZreug', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:remove', + name: 'streams:remove', + color: '5373a2', + default: false, + description: '' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2023-09-01T23:49:28Z', + updated_at: '2023-09-07T00:24:05Z', + closed_at: null, + author_association: 'NONE', + active_lock_reason: null, + body: '### Stream URL\n\nhttp://190.61.102.67:2000/play/a038/index.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\n_No response_\n\n### Notes (optional)\n\nReplacement For A Broken Stream To A New Stream For Canal 5 (MX) Please\n\n### Please confirm the following\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#report-a-broken-stream)', + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/16120/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/events', + html_url: 'https://github.com/iptv-org/iptv/issues/19957', + id: 2880738344, + node_id: 'I_kwDOCWUK8M6rtJQo', + number: 19957, + title: 'Find: CNBCe.tr', + user: { + login: 'M3UDay', + id: 164743332, + node_id: 'U_kgDOCdHIpA', + avatar_url: 'https://avatars.githubusercontent.com/u/164743332?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/M3UDay', + html_url: 'https://github.com/M3UDay', + followers_url: 'https://api.github.com/users/M3UDay/followers', + following_url: 'https://api.github.com/users/M3UDay/following{/other_user}', + gists_url: 'https://api.github.com/users/M3UDay/gists{/gist_id}', + starred_url: 'https://api.github.com/users/M3UDay/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/M3UDay/subscriptions', + organizations_url: 'https://api.github.com/users/M3UDay/orgs', + repos_url: 'https://api.github.com/users/M3UDay/repos', + events_url: 'https://api.github.com/users/M3UDay/events{/privacy}', + received_events_url: 'https://api.github.com/users/M3UDay/received_events', + type: 'User', + user_view_type: 'public', + site_admin: false + }, + labels: [ + { + id: 8197871093, + node_id: 'LA_kwDOCWUK8M8AAAAB6KGV9Q', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/channel%20search', + name: 'channel search', + color: 'eaeaea', + default: false, + description: 'Request to find a link to a channel stream' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2025-02-26T08:43:49Z', + updated_at: '2025-02-26T08:43:49Z', + closed_at: null, + author_association: 'NONE', + sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, + active_lock_reason: null, + body: '### Stream ID (required)\n\n13thStreet.au\n\n### Notes\n\n_No response_', + closed_by: null, + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/19957/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/events', + html_url: 'https://github.com/iptv-org/iptv/issues/20956', + id: 2880738444, + node_id: 'I_kwDOCWUK8M6rtJQo', + number: 20956, + title: 'Find: IONTV.us', + user: { + login: 'M3UDay', + id: 164743332, + node_id: 'U_kgDOCdHIpA', + avatar_url: 'https://avatars.githubusercontent.com/u/164743332?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/M3UDay', + html_url: 'https://github.com/M3UDay', + followers_url: 'https://api.github.com/users/M3UDay/followers', + following_url: 'https://api.github.com/users/M3UDay/following{/other_user}', + gists_url: 'https://api.github.com/users/M3UDay/gists{/gist_id}', + starred_url: 'https://api.github.com/users/M3UDay/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/M3UDay/subscriptions', + organizations_url: 'https://api.github.com/users/M3UDay/orgs', + repos_url: 'https://api.github.com/users/M3UDay/repos', + events_url: 'https://api.github.com/users/M3UDay/events{/privacy}', + received_events_url: 'https://api.github.com/users/M3UDay/received_events', + type: 'User', + user_view_type: 'public', + site_admin: false + }, + labels: [ + { + id: 8197871093, + node_id: 'LA_kwDOCWUK8M8AAAAB6KGV9Q', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/channel%20search', + name: 'channel search', + color: 'eaeaea', + default: false, + description: 'Request to find a link to a channel stream' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2025-02-26T08:43:49Z', + updated_at: '2025-02-26T08:43:49Z', + closed_at: null, + author_association: 'NONE', + sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, + active_lock_reason: null, + body: '### Stream ID (required)\n\nIONTV.us\n\n### Notes\n\n_No response_', + closed_by: null, + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/20956/timeline', + performed_via_github_app: null, + state_reason: null + }, + { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157', + repository_url: 'https://api.github.com/repos/iptv-org/iptv', + labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/labels{/name}', + comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/comments', + events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/events', + html_url: 'https://github.com/iptv-org/iptv/issues/25157', + id: 3245640024, + node_id: 'I_kwDOCWUK8M7BdIlY', + number: 25157, + title: 'Add: OnTime Sports SD', + user: { + login: 'zezopm300', + id: 215159878, + node_id: 'U_kgDODNMURg', + avatar_url: 'https://avatars.githubusercontent.com/u/215159878?v=4', + gravatar_id: '', + url: 'https://api.github.com/users/zezopm300', + html_url: 'https://github.com/zezopm300', + followers_url: 'https://api.github.com/users/zezopm300/followers', + following_url: 'https://api.github.com/users/zezopm300/following{/other_user}', + gists_url: 'https://api.github.com/users/zezopm300/gists{/gist_id}', + starred_url: 'https://api.github.com/users/zezopm300/starred{/owner}{/repo}', + subscriptions_url: 'https://api.github.com/users/zezopm300/subscriptions', + organizations_url: 'https://api.github.com/users/zezopm300/orgs', + repos_url: 'https://api.github.com/users/zezopm300/repos', + events_url: 'https://api.github.com/users/zezopm300/events{/privacy}', + received_events_url: 'https://api.github.com/users/zezopm300/received_events', + type: 'User', + user_view_type: 'public', + site_admin: false + }, + labels: [ + { + id: 5923508587, + node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw', + url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add', + name: 'streams:add', + color: '017ff9', + default: false, + description: 'Request to add a new link to a playlist' + } + ], + state: 'open', + locked: false, + assignee: null, + assignees: [], + milestone: null, + comments: 0, + created_at: '2025-07-19T20:44:05Z', + updated_at: '2025-07-19T20:44:05Z', + closed_at: null, + author_association: 'NONE', + type: null, + active_lock_reason: null, + sub_issues_summary: { total: 0, completed: 0, percent_completed: 0 }, + body: + '### Stream ID (required)\n' + + '\n' + + 'OnTimeSports.eg@SD\n' + + '\n' + + '### Stream URL (required)\n' + + '\n' + + ' OnTime Sports SD.mu38\n' + + '\n' + + '### Quality\n' + + '\n' + + 'None\n' + + '\n' + + '### Label\n' + + '\n' + + 'None\n' + + '\n' + + '### HTTP User Agent\n' + + '\n' + + '_No response_\n' + + '\n' + + '### HTTP Referrer\n' + + '\n' + + '_No response_\n' + + '\n' + + '### Directives\n' + + '\n' + + '_No response_\n' + + '\n' + + '### Notes\n' + + '\n' + + '_No response_\n' + + '\n' + + '### Contributing Guide\n' + + '\n' + + '- [x] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + closed_by: null, + reactions: { + url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/reactions', + total_count: 0, + '+1': 0, + '-1': 0, + laugh: 0, + hooray: 0, + confused: 0, + heart: 0, + rocket: 0, + eyes: 0 + }, + timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/25157/timeline', + performed_via_github_app: null, + state_reason: null + } +] diff --git a/tests/__data__/input/playlist_test/results.js b/tests/__data__/input/playlist_test/results.js index 84c66492a1..1899543830 100644 --- a/tests/__data__/input/playlist_test/results.js +++ b/tests/__data__/input/playlist_test/results.js @@ -1,14 +1,14 @@ -module.exports = { - 'https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/absliveantigua3': - { - url: 'https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/absliveantigua3', - http: { referrer: '', 'user-agent': '' }, - status: { ok: false, code: 'HTTP_NOT_FOUND', message: 'HTTP 404 Not Found' } - }, - 'https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145': - { - url: 'https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145', - http: { referrer: '', 'user-agent': '' }, - status: { ok: false, code: 'HTTP_FORBIDDEN', message: 'HTTP 403 Forbidden' } - } -} +module.exports = { + 'https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/absliveantigua3': + { + url: 'https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/absliveantigua3', + http: { referrer: '', 'user-agent': '' }, + status: { ok: false, code: 'HTTP_NOT_FOUND', message: 'HTTP 404 Not Found' } + }, + 'https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145': + { + url: 'https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145', + http: { referrer: '', 'user-agent': '' }, + status: { ok: false, code: 'HTTP_FORBIDDEN', message: 'HTTP 403 Forbidden' } + } +} diff --git a/tests/commands/api/generate.test.ts b/tests/commands/api/generate.test.ts index 4959afd913..d32a2cfc27 100644 --- a/tests/commands/api/generate.test.ts +++ b/tests/commands/api/generate.test.ts @@ -1,26 +1,26 @@ -import { pathToFileURL } from 'node:url' -import { execSync } from 'child_process' -import fs from 'fs-extra' - -const ENV_VAR = - 'cross-env DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/api_generate API_DIR=tests/__data__/output/.api' - -beforeEach(() => { - fs.emptyDirSync('tests/__data__/output') -}) - -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('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(pathToFileURL(filepath), { encoding: 'utf8' })) -} +import { pathToFileURL } from 'node:url' +import { execSync } from 'child_process' +import fs from 'fs-extra' + +const ENV_VAR = + 'cross-env DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/api_generate API_DIR=tests/__data__/output/.api' + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') +}) + +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('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(pathToFileURL(filepath), { encoding: 'utf8' })) +} diff --git a/tests/commands/playlist/edit.test.ts b/tests/commands/playlist/edit.test.ts index 0a770a09ce..aee61364b4 100644 --- a/tests/commands/playlist/edit.test.ts +++ b/tests/commands/playlist/edit.test.ts @@ -1,38 +1,38 @@ -import { execSync } from 'child_process' -import fs from 'fs-extra' - -type ExecError = { - status: number - stdout: string -} - -const ENV_VAR = 'cross-env DATA_DIR=tests/__data__/input/data' - -beforeEach(() => { - fs.emptyDirSync('tests/__data__/output') - fs.copySync( - 'tests/__data__/input/playlist_edit/playlist.m3u', - 'tests/__data__/output/playlist.m3u' - ) -}) - -describe('playlist:edit', () => { - it('shows list of options for a streams', () => { - const cmd = `${ENV_VAR} npm run playlist:edit --- tests/__data__/output/playlist.m3u` - try { - const stdout = execSync(cmd, { encoding: 'utf8' }) - if (process.env.DEBUG === 'true') console.log(cmd, stdout) - checkStdout(stdout) - } catch (error) { - // NOTE: for Windows only - if (process.env.DEBUG === 'true') console.log(cmd, error) - checkStdout((error as ExecError).stdout) - } - }) -}) - -function checkStdout(stdout: string) { - expect(stdout).toContain('TF1.fr (TF1, Télévision française 1)') - expect(stdout).toContain('Type...') - expect(stdout).toContain('Skip') -} +import { execSync } from 'child_process' +import fs from 'fs-extra' + +type ExecError = { + status: number + stdout: string +} + +const ENV_VAR = 'cross-env DATA_DIR=tests/__data__/input/data' + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + fs.copySync( + 'tests/__data__/input/playlist_edit/playlist.m3u', + 'tests/__data__/output/playlist.m3u' + ) +}) + +describe('playlist:edit', () => { + it('shows list of options for a streams', () => { + const cmd = `${ENV_VAR} npm run playlist:edit --- tests/__data__/output/playlist.m3u` + try { + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + checkStdout(stdout) + } catch (error) { + // NOTE: for Windows only + if (process.env.DEBUG === 'true') console.log(cmd, error) + checkStdout((error as ExecError).stdout) + } + }) +}) + +function checkStdout(stdout: string) { + expect(stdout).toContain('TF1.fr (TF1, Télévision française 1)') + expect(stdout).toContain('Type...') + expect(stdout).toContain('Skip') +} diff --git a/tests/commands/playlist/format.test.ts b/tests/commands/playlist/format.test.ts index 49345f61f4..f169322d84 100644 --- a/tests/commands/playlist/format.test.ts +++ b/tests/commands/playlist/format.test.ts @@ -1,36 +1,37 @@ -import { pathToFileURL } from 'node:url' -import { execSync } from 'child_process' -import * as fs from 'fs-extra' -import { glob } from 'glob' - -const ENV_VAR = 'cross-env STREAMS_DIR=tests/__data__/output/streams DATA_DIR=tests/__data__/input/data' - -beforeEach(() => { - fs.emptyDirSync('tests/__data__/output') - fs.copySync('tests/__data__/input/playlist_format', 'tests/__data__/output/streams') -}) - -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(filepath => { - const fileUrl = pathToFileURL(filepath).toString() - const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_format/').toString() - - return fileUrl.replace(pathToRemove, '') - }) - - files.forEach(filepath => { - expect(content(`tests/__data__/output/streams/${filepath}`)).toBe( - content(`tests/__data__/expected/playlist_format/${filepath}`) - ) - }) - }) -}) - -function content(filepath: string) { - return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) -} +import { pathToFileURL } from 'node:url' +import { execSync } from 'child_process' +import * as fs from 'fs-extra' +import { glob } from 'glob' + +const ENV_VAR = + 'cross-env STREAMS_DIR=tests/__data__/output/streams DATA_DIR=tests/__data__/input/data' + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') + fs.copySync('tests/__data__/input/playlist_format', 'tests/__data__/output/streams') +}) + +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(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_format/').toString() + + return fileUrl.replace(pathToRemove, '') + }) + + files.forEach(filepath => { + expect(content(`tests/__data__/output/streams/${filepath}`)).toBe( + content(`tests/__data__/expected/playlist_format/${filepath}`) + ) + }) + }) +}) + +function content(filepath: string) { + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) +} diff --git a/tests/commands/playlist/generate.test.ts b/tests/commands/playlist/generate.test.ts index 39f38a8f36..37efbf67f1 100644 --- a/tests/commands/playlist/generate.test.ts +++ b/tests/commands/playlist/generate.test.ts @@ -1,43 +1,43 @@ -import { pathToFileURL } from 'node:url' -import { execSync } from 'child_process' -import { EOL } from 'node:os' -import * as fs from 'fs-extra' -import * as glob from 'glob' - -const ENV_VAR = - 'cross-env 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' - -beforeEach(() => { - fs.emptyDirSync('tests/__data__/output') -}) - -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) - - 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() - - return fileUrl.replace(pathToRemove, '') - }) - - 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() - ) - }) -}) - -function content(filepath: string) { - return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) -} +import { pathToFileURL } from 'node:url' +import { execSync } from 'child_process' +import { EOL } from 'node:os' +import * as fs from 'fs-extra' +import * as glob from 'glob' + +const ENV_VAR = + 'cross-env 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' + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') +}) + +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) + + 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() + + return fileUrl.replace(pathToRemove, '') + }) + + 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() + ) + }) +}) + +function content(filepath: string) { + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) +} diff --git a/tests/commands/playlist/test.test.ts b/tests/commands/playlist/test.test.ts index ec14499089..1bf978b016 100644 --- a/tests/commands/playlist/test.test.ts +++ b/tests/commands/playlist/test.test.ts @@ -1,21 +1,21 @@ -import { execSync } from 'child_process' - -type ExecError = { - status: number - stdout: string -} - -const ENV_VAR = 'cross-env ROOT_DIR=tests/__data__/input DATA_DIR=tests/__data__/input/data' - -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)') - } - }) -}) +import { execSync } from 'child_process' + +type ExecError = { + status: number + stdout: string +} + +const ENV_VAR = 'cross-env ROOT_DIR=tests/__data__/input DATA_DIR=tests/__data__/input/data' + +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/validate.test.ts b/tests/commands/playlist/validate.test.ts index a2532933fd..597916c49a 100644 --- a/tests/commands/playlist/validate.test.ts +++ b/tests/commands/playlist/validate.test.ts @@ -1,44 +1,45 @@ -import { execSync } from 'child_process' - -type ExecError = { - status: number - stdout: string -} - -const ENV_VAR = 'cross-env DATA_DIR=tests/__data__/input/data ROOT_DIR=tests/__data__/input/playlist_validate' - -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)') - } - }) - - 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' - ) - } - }) - - it('skip the file if it does not exist', () => { - const cmd = `${ENV_VAR} npm run playlist:validate -- missing.m3u` - execSync(cmd, { encoding: 'utf8' }) - }) -}) +import { execSync } from 'child_process' + +type ExecError = { + status: number + stdout: string +} + +const ENV_VAR = + 'cross-env DATA_DIR=tests/__data__/input/data ROOT_DIR=tests/__data__/input/playlist_validate' + +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)') + } + }) + + 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' + ) + } + }) + + it('skip the file if it does not exist', () => { + const cmd = `${ENV_VAR} npm run playlist:validate -- missing.m3u` + execSync(cmd, { encoding: 'utf8' }) + }) +}) diff --git a/tests/commands/readme/update.test.ts b/tests/commands/readme/update.test.ts index 12bfece329..422a52d54f 100644 --- a/tests/commands/readme/update.test.ts +++ b/tests/commands/readme/update.test.ts @@ -1,26 +1,26 @@ -import { pathToFileURL } from 'node:url' -import { execSync } from 'child_process' -import fs from 'fs-extra' - -const ENV_VAR = - 'cross-env DATA_DIR=tests/__data__/input/data LOGS_DIR=tests/__data__/input/readme_update ROOT_DIR=tests/__data__/output' - -beforeEach(() => { - fs.emptyDirSync('tests/__data__/output') -}) - -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/PLAYLISTS.md')).toEqual( - content('tests/__data__/expected/readme_update/playlists.md') - ) - }) -}) - -function content(filepath: string) { - return JSON.stringify(fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' })) -} +import { pathToFileURL } from 'node:url' +import { execSync } from 'child_process' +import fs from 'fs-extra' + +const ENV_VAR = + 'cross-env DATA_DIR=tests/__data__/input/data LOGS_DIR=tests/__data__/input/readme_update ROOT_DIR=tests/__data__/output' + +beforeEach(() => { + fs.emptyDirSync('tests/__data__/output') +}) + +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/PLAYLISTS.md')).toEqual( + content('tests/__data__/expected/readme_update/playlists.md') + ) + }) +}) + +function content(filepath: string) { + return JSON.stringify(fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' })) +} diff --git a/tsconfig.json b/tsconfig.json index f1ad2f4b13..657998950d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,20 +1,20 @@ -{ - "compilerOptions": { - "strict": true, - "target": "es2022", - "module": "nodeNext", - "moduleResolution": "nodeNext", - "typeRoots": [ - "./scripts/types", - "./node_modules/@types" - ], - "esModuleInterop": true - }, - "ts-node": { - "esm": true, - "transpileOnly": true - }, - "files": [ - "node_modules/jest-expect-message/types/index.d.ts" - ] +{ + "compilerOptions": { + "strict": true, + "target": "es2022", + "module": "nodeNext", + "moduleResolution": "nodeNext", + "typeRoots": [ + "./scripts/types", + "./node_modules/@types" + ], + "esModuleInterop": true + }, + "ts-node": { + "esm": true, + "transpileOnly": true + }, + "files": [ + "node_modules/jest-expect-message/types/index.d.ts" + ] } \ No newline at end of file