ustvgo-iptv


Nameustvgo-iptv JSON
Version 0.1.12 PyPI version JSON
download
home_pagehttps://github.com/interlark/ustvgo-iptv
SummaryUSTVGO Free IPTV
upload_time2023-01-07 21:34:17
maintainer
docs_urlNone
authorAndy Trofimov
requires_python>=3.7.4
licenseMIT
keywords ustvgo iptv m3u8 playlist tvguide english
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
    <h1>
        <a href="#">
            <img alt="USTVGO-IPTV Logo" width="50%" src="https://user-images.githubusercontent.com/20641837/173175835-4161afe3-ae49-48bb-b937-cecb600bc49d.svg"/>
        </a>
    </h1>
</div>

<div align="center">
    <a href="https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml"><img alt="TV Guide status" src="https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml/badge.svg"/></a>
    <a href="https://pypi.org/project/ustvgo-iptv"><img alt="PyPi version" src="https://badgen.net/pypi/v/ustvgo-iptv"/></a>
    <a href="https://pypi.org/project/ustvgo-iptv"><img alt="Supported platforms" src="https://badgen.net/badge/platform/Linux,macOS,Windows?list=|"/></a>
</div><br>

**USTVGO-IPTV** is an app that allows you to watch **free IPTV**.

It **extracts stream URLs** from [ustvgo.tv](http://ustvgo.tv) website, **generates master playlist** with available TV channels for IPTV players and **proxies the traffic** between your IPTV players and streaming backends.

> **Note**: See also a [port](https://github.com/interlark/123tv-iptv) of this app for 123TV service

## ✨ Features
- 🔑 Auto auth-key rotation
  > As server proxies the traffic it can detect if your auth key is expired and refresh it on the fly.
- 📺 Available [TV Guide](https://github.com/interlark/ustvgo-tvguide)
  > [TV Guide](https://github.com/interlark/ustvgo-tvguide) repo generates EPG XML for upcoming programs of all the channels twice an hour.
- [![](https://user-images.githubusercontent.com/20641837/173175879-aed31bd4-b188-4681-89df-5ffc3ea05a82.svg)](https://github.com/interlark/ustvgo-tvguide/tree/master/images/icons/channels)
Two iconsets for IPTV players with light and dark backgrounds
  > There are 2 channel iconsets adapted for apps with light and dark UI themes.
- 🗔 Cross-platform GUI
  > GUI is available for Windows, Linux and MacOS for people who are not that much into CLI.


## 🚀 Installation
- **CLI**
  ```bash
  pip install ustvgo-iptv
  ```
- **GUI**

  You can download GUI app from [Releases](https://github.com/interlark/ustvgo-iptv/releases/latest) for your OS.
- **Docker**
  ```bash
  docker run -d --name=ustvgo-iptv -p 6363:6363 --restart unless-stopped ghcr.io/interlark/ustvgo-iptv:latest
  ```
  > For dark icons append following argument: `--icons-for-light-bg`

## ⚙️ Usage - CLI

  You can run the app without any arguments.
  ```
  ustvgo-iptv
  ```

  <img alt="USTVGO-IPTV CLI screencast" width="666" src="https://user-images.githubusercontent.com/20641837/175779375-9a1a2525-b7ab-4d7f-90e9-b9e585e93902.gif"/>


| Optional argument                  | Description |
| :---                      |    :----   |
| --icons-for-light-bg      | Switch to dark iconset for players with light UI.       |
| --access-logs             | Enable access logs for tracking requests activity.        |
| --port 6363               | Server port. By default, the port is **6363**.           |
| --parallel 10             | Number of parallel parsing requests. Default is **10**.          |
| --use-uncompressed-tvguide| By default, master playlist has a link to **compressed** version of TV Guide:<br/>`url-tvg="http://127.0.0.1:6363/tvguide.xml.gz"`<br/>With this argument you can switch it to uncompressed:<br/>`url-tvg="http://127.0.0.1:6363/tvguide.xml"`           |
| --password &lt;PASSWORD&gt;             | Set password prefix for the URL.<br/>Could be used to prevent public playlists scraping.          |

<br />

**Linux** users can install **systemd service** that automatically runs ustvgo-iptv on start-ups ⏰.

```bash
# Install "ustvgo-iptv" service
sudo -E env "PATH=$PATH" ustvgo-iptv install-service

# You can specify any optional arguments you want
sudo -E env "PATH=$PATH" ustvgo-iptv --port 1234 --access-logs install-service

# Uninstall "ustvgo-iptv" service
sudo -E env "PATH=$PATH" ustvgo-iptv uninstall-service
```

## ⚙️ Usage - GUI

  <img alt="USTVGO-IPTV GUI screenshot" width="614" src="https://user-images.githubusercontent.com/20641837/211169975-f11a3cdb-9d3a-4e40-9a2d-4442db985d55.png"/>

  If you don't like command line stuff, you can run GUI app and click "Start", simple as that.
  
  GUI uses **config file** on following path:

  * **Linux**: ~/.config/ustvgo-iptv/settings.cfg
  * **Mac**: ~/Library/Application Support/ustvgo-iptv/settings.cfg
  * **Windows**: C:\Users\\%USERPROFILE%\AppData\Local\ustvgo-iptv\settings.cfg

## 🔗 URLs
To play and enjoy your free IPTV you need 2 URLs that this app provides:
1) Your generated **master playlist**: 🔗 http://127.0.0.1:6363/ustvgo.m3u8
2) **TV Guide** (content updates twice an hour): 🔗 http://127.0.0.1:6363/tvguide.xml

## ▶️ Players
  Here is a **list** of popular IPTV players.
  
  **USTVGO**'s channels have **EIA-608** embedded subtitles. In case if you're not a native speaker and use *TV*, *Cartoons*, *Movies* and *Shows* to learn English and Spanish languages I would recommend you following free open-source cross-platform IPTV players that can handle EIA-608 subtitles:
  - **[VLC](https://github.com/videolan/vlc)**
  
      This old beast could play **any subtitles**. Unfortunately it **doesn't support TV Guide**.
      
      - **Play**
        ```bash
        vlc http://127.0.0.1:6363/ustvgo.m3u8
        ```
  - **[MPV](https://github.com/mpv-player/mpv)**
      
      Fast and extensible player. It **supports subtitles**, but not that good as VLC, sometimes you could encounter troubles playing roll-up subtitles. Unfortunately it **doesn't suppport TV Guide**.
      
      - **Play**
        ```bash
        mpv http://127.0.0.1:6363/ustvgo.m3u8
        ```
  - **[Jellyfin Media Player](https://github.com/jellyfin/jellyfin-media-player)**
    
    <img alt="Jellyfin Media Player screenshot" width="49%" src="https://user-images.githubusercontent.com/20641837/173175969-cbfe5adc-1dc8-4e3b-946c-fa4e295d8b8c.jpg"/>
    <img alt="Jellyfin Media Player screenshot" width="49%" src="https://user-images.githubusercontent.com/20641837/173175973-8acb076c-e1ac-4d06-96a8-b10a72b2f7d7.jpg"/>

    Comfortable, handy, extensible with smooth UI player. **Supports TV Guide**, has **mpv** as a backend.
    
    **Supports subtitles**, but there is no option to enable them via user interface. If you want to enable IPTV subtitles you have to use following "Mute" hack.
  
    - **Enable IPTV subtitles**
    
      I found a quick hack to force play embedded IPTV subtitles, all you need is to create one file:
    
      > Linux: `~/.local/share/jellyfinmediaplayer/scripts/subtitles.lua`
    
      > Linux(Flatpak): `~/.var/app/com.github.iwalton3.jellyfin-media-player/data/jellyfinmediaplayer/scripts/subtitles.lua`
    
      > MacOS: `~/Library/Application Support/Jellyfin Media Player/scripts/subtitles.lua`
    
      > Windows: `%LOCALAPPDATA%\JellyfinMediaPlayer\scripts\subtitles.lua`
    
      And paste following text in there:
    
      ```lua
      -- File: subtitles.lua
      function on_mute_change(name, value)
          if value then
              local subs_id = mp.get_property("sid")
              if subs_id == "1" then
                  mp.osd_message("Subtitles off")
                  mp.set_property("sid", "0")
              else
                  mp.osd_message("Subtitles on")
                  mp.set_property("sid", "1")
              end
          end
      end

      mp.observe_property("mute", "bool", on_mute_change)
      ```
      After that every time you mute a video *(🅼 key pressed)*, you toggle subtitles on/off as a side effect.
      
    - **Play**
      ```
      1) Settings -> Dashboard -> Live TV -> Tuner Devices -> Add -> M3U Tuner -> URL -> http://127.0.0.1:6363/ustvgo.m3u8
      2) Settings -> Dashboard -> Live TV -> TV Guide Data Providers -> Add -> XMLTV -> URL -> http://127.0.0.1:6363/tvguide.xml
      3) Settings -> Dashboard -> Scheduled Tasks -> Live TV -> Refresh Guide -> Task Triggers -> "Every 30 minutes"
      ```
    - **Note**
      ```
      Some versions does not support compressed (*.xml.gz) TV Guides.
      ```
  
  - **[IPTVnator](https://github.com/4gray/iptvnator)**
  
    <img alt="IPTVnator screenshot" width="666" src="https://user-images.githubusercontent.com/20641837/173176009-a2e86f74-46ef-464a-bbdf-9137f1d48201.jpg"/>

    Player built with [Electron](https://github.com/electron/electron) so you can run it even in browser, has light and dark themes.
    
    **Support subtitles and TV Guide.**
   
    - **Play**
      ```
      1) Add via URL -> http://127.0.0.1:6363/ustvgo.m3u8
      2) Settings -> EPG Url -> http://127.0.0.1:6363/tvguide.xml.gz
      ```

## 👍 Support
- [ustvgo.tv](https://ustvgo.tv) is wonderful project which can offer you a free IPTV, please support these guys buying VPN with their [referral link](https://ustvgo.tv/vpn). With VPN you can watch even more of their channels, like extra 25 or so.

- Also I would highly appreciate your support on this project ⠀<a href="https://www.buymeacoffee.com/interlark" target="_blank"><img alt="Buy Me A Coffee" src="https://cdn.buymeacoffee.com/buttons/default-orange.png" width="178" height="41"></a>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/interlark/ustvgo-iptv",
    "name": "ustvgo-iptv",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7.4",
    "maintainer_email": "",
    "keywords": "ustvgo,iptv,m3u8,playlist,tvguide,english",
    "author": "Andy Trofimov",
    "author_email": "interlark@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/00/c7/a399274442e3a985d3c9db08d036be508ef832b53424dbf4acf8371c5268/ustvgo-iptv-0.1.12.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n    <h1>\n        <a href=\"#\">\n            <img alt=\"USTVGO-IPTV Logo\" width=\"50%\" src=\"https://user-images.githubusercontent.com/20641837/173175835-4161afe3-ae49-48bb-b937-cecb600bc49d.svg\"/>\n        </a>\n    </h1>\n</div>\n\n<div align=\"center\">\n    <a href=\"https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml\"><img alt=\"TV Guide status\" src=\"https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml/badge.svg\"/></a>\n    <a href=\"https://pypi.org/project/ustvgo-iptv\"><img alt=\"PyPi version\" src=\"https://badgen.net/pypi/v/ustvgo-iptv\"/></a>\n    <a href=\"https://pypi.org/project/ustvgo-iptv\"><img alt=\"Supported platforms\" src=\"https://badgen.net/badge/platform/Linux,macOS,Windows?list=|\"/></a>\n</div><br>\n\n**USTVGO-IPTV** is an app that allows you to watch **free IPTV**.\n\nIt **extracts stream URLs** from [ustvgo.tv](http://ustvgo.tv) website, **generates master playlist** with available TV channels for IPTV players and **proxies the traffic** between your IPTV players and streaming backends.\n\n> **Note**: See also a [port](https://github.com/interlark/123tv-iptv) of this app for 123TV service\n\n## \u2728 Features\n- \ud83d\udd11 Auto auth-key rotation\n  > As server proxies the traffic it can detect if your auth key is expired and refresh it on the fly.\n- \ud83d\udcfa Available [TV Guide](https://github.com/interlark/ustvgo-tvguide)\n  > [TV Guide](https://github.com/interlark/ustvgo-tvguide) repo generates EPG XML for upcoming programs of all the channels twice an hour.\n- [![](https://user-images.githubusercontent.com/20641837/173175879-aed31bd4-b188-4681-89df-5ffc3ea05a82.svg)](https://github.com/interlark/ustvgo-tvguide/tree/master/images/icons/channels)\nTwo iconsets for IPTV players with light and dark backgrounds\n  > There are 2 channel iconsets adapted for apps with light and dark UI themes.\n- \ud83d\uddd4 Cross-platform GUI\n  > GUI is available for Windows, Linux and MacOS for people who are not that much into CLI.\n\n\n## \ud83d\ude80 Installation\n- **CLI**\n  ```bash\n  pip install ustvgo-iptv\n  ```\n- **GUI**\n\n  You can download GUI app from [Releases](https://github.com/interlark/ustvgo-iptv/releases/latest) for your OS.\n- **Docker**\n  ```bash\n  docker run -d --name=ustvgo-iptv -p 6363:6363 --restart unless-stopped ghcr.io/interlark/ustvgo-iptv:latest\n  ```\n  > For dark icons append following argument: `--icons-for-light-bg`\n\n## \u2699\ufe0f Usage - CLI\n\n  You can run the app without any arguments.\n  ```\n  ustvgo-iptv\n  ```\n\n  <img alt=\"USTVGO-IPTV CLI screencast\" width=\"666\" src=\"https://user-images.githubusercontent.com/20641837/175779375-9a1a2525-b7ab-4d7f-90e9-b9e585e93902.gif\"/>\n\n\n| Optional argument                  | Description |\n| :---                      |    :----   |\n| --icons-for-light-bg      | Switch to dark iconset for players with light UI.       |\n| --access-logs             | Enable access logs for tracking requests activity.        |\n| --port 6363               | Server port. By default, the port is **6363**.           |\n| --parallel 10             | Number of parallel parsing requests. Default is **10**.          |\n| --use-uncompressed-tvguide| By default, master playlist has a link to **compressed** version of TV Guide:<br/>`url-tvg=\"http://127.0.0.1:6363/tvguide.xml.gz\"`<br/>With this argument you can switch it to uncompressed:<br/>`url-tvg=\"http://127.0.0.1:6363/tvguide.xml\"`           |\n| --password &lt;PASSWORD&gt;             | Set password prefix for the URL.<br/>Could be used to prevent public playlists scraping.          |\n\n<br />\n\n**Linux** users can install **systemd service** that automatically runs ustvgo-iptv on start-ups \u23f0.\n\n```bash\n# Install \"ustvgo-iptv\" service\nsudo -E env \"PATH=$PATH\" ustvgo-iptv install-service\n\n# You can specify any optional arguments you want\nsudo -E env \"PATH=$PATH\" ustvgo-iptv --port 1234 --access-logs install-service\n\n# Uninstall \"ustvgo-iptv\" service\nsudo -E env \"PATH=$PATH\" ustvgo-iptv uninstall-service\n```\n\n## \u2699\ufe0f Usage - GUI\n\n  <img alt=\"USTVGO-IPTV GUI screenshot\" width=\"614\" src=\"https://user-images.githubusercontent.com/20641837/211169975-f11a3cdb-9d3a-4e40-9a2d-4442db985d55.png\"/>\n\n  If you don't like command line stuff, you can run GUI app and click \"Start\", simple as that.\n  \n  GUI uses **config file** on following path:\n\n  * **Linux**: ~/.config/ustvgo-iptv/settings.cfg\n  * **Mac**: ~/Library/Application Support/ustvgo-iptv/settings.cfg\n  * **Windows**: C:\\Users\\\\%USERPROFILE%\\AppData\\Local\\ustvgo-iptv\\settings.cfg\n\n## \ud83d\udd17 URLs\nTo play and enjoy your free IPTV you need 2 URLs that this app provides:\n1) Your generated **master playlist**: \ud83d\udd17 http://127.0.0.1:6363/ustvgo.m3u8\n2) **TV Guide** (content updates twice an hour): \ud83d\udd17 http://127.0.0.1:6363/tvguide.xml\n\n## \u25b6\ufe0f Players\n  Here is a **list** of popular IPTV players.\n  \n  **USTVGO**'s channels have **EIA-608** embedded subtitles. In case if you're not a native speaker and use *TV*, *Cartoons*, *Movies* and *Shows* to learn English and Spanish languages I would recommend you following free open-source cross-platform IPTV players that can handle EIA-608 subtitles:\n  - **[VLC](https://github.com/videolan/vlc)**\n  \n      This old beast could play **any subtitles**. Unfortunately it **doesn't support TV Guide**.\n      \n      - **Play**\n        ```bash\n        vlc http://127.0.0.1:6363/ustvgo.m3u8\n        ```\n  - **[MPV](https://github.com/mpv-player/mpv)**\n      \n      Fast and extensible player. It **supports subtitles**, but not that good as VLC, sometimes you could encounter troubles playing roll-up subtitles. Unfortunately it **doesn't suppport TV Guide**.\n      \n      - **Play**\n        ```bash\n        mpv http://127.0.0.1:6363/ustvgo.m3u8\n        ```\n  - **[Jellyfin Media Player](https://github.com/jellyfin/jellyfin-media-player)**\n    \n    <img alt=\"Jellyfin Media Player screenshot\" width=\"49%\" src=\"https://user-images.githubusercontent.com/20641837/173175969-cbfe5adc-1dc8-4e3b-946c-fa4e295d8b8c.jpg\"/>\n    <img alt=\"Jellyfin Media Player screenshot\" width=\"49%\" src=\"https://user-images.githubusercontent.com/20641837/173175973-8acb076c-e1ac-4d06-96a8-b10a72b2f7d7.jpg\"/>\n\n    Comfortable, handy, extensible with smooth UI player. **Supports TV Guide**, has **mpv** as a backend.\n    \n    **Supports subtitles**, but there is no option to enable them via user interface. If you want to enable IPTV subtitles you have to use following \"Mute\" hack.\n  \n    - **Enable IPTV subtitles**\n    \n      I found a quick hack to force play embedded IPTV subtitles, all you need is to create one file:\n    \n      > Linux: `~/.local/share/jellyfinmediaplayer/scripts/subtitles.lua`\n    \n      > Linux(Flatpak): `~/.var/app/com.github.iwalton3.jellyfin-media-player/data/jellyfinmediaplayer/scripts/subtitles.lua`\n    \n      > MacOS: `~/Library/Application Support/Jellyfin Media Player/scripts/subtitles.lua`\n    \n      > Windows: `%LOCALAPPDATA%\\JellyfinMediaPlayer\\scripts\\subtitles.lua`\n    \n      And paste following text in there:\n    \n      ```lua\n      -- File: subtitles.lua\n      function on_mute_change(name, value)\n          if value then\n              local subs_id = mp.get_property(\"sid\")\n              if subs_id == \"1\" then\n                  mp.osd_message(\"Subtitles off\")\n                  mp.set_property(\"sid\", \"0\")\n              else\n                  mp.osd_message(\"Subtitles on\")\n                  mp.set_property(\"sid\", \"1\")\n              end\n          end\n      end\n\n      mp.observe_property(\"mute\", \"bool\", on_mute_change)\n      ```\n      After that every time you mute a video *(\ud83c\udd7c key pressed)*, you toggle subtitles on/off as a side effect.\n      \n    - **Play**\n      ```\n      1) Settings -> Dashboard -> Live TV -> Tuner Devices -> Add -> M3U Tuner -> URL -> http://127.0.0.1:6363/ustvgo.m3u8\n      2) Settings -> Dashboard -> Live TV -> TV Guide Data Providers -> Add -> XMLTV -> URL -> http://127.0.0.1:6363/tvguide.xml\n      3) Settings -> Dashboard -> Scheduled Tasks -> Live TV -> Refresh Guide -> Task Triggers -> \"Every 30 minutes\"\n      ```\n    - **Note**\n      ```\n      Some versions does not support compressed (*.xml.gz) TV Guides.\n      ```\n  \n  - **[IPTVnator](https://github.com/4gray/iptvnator)**\n  \n    <img alt=\"IPTVnator screenshot\" width=\"666\" src=\"https://user-images.githubusercontent.com/20641837/173176009-a2e86f74-46ef-464a-bbdf-9137f1d48201.jpg\"/>\n\n    Player built with [Electron](https://github.com/electron/electron) so you can run it even in browser, has light and dark themes.\n    \n    **Support subtitles and TV Guide.**\n   \n    - **Play**\n      ```\n      1) Add via URL -> http://127.0.0.1:6363/ustvgo.m3u8\n      2) Settings -> EPG Url -> http://127.0.0.1:6363/tvguide.xml.gz\n      ```\n\n## \ud83d\udc4d Support\n- [ustvgo.tv](https://ustvgo.tv) is wonderful project which can offer you a free IPTV, please support these guys buying VPN with their [referral link](https://ustvgo.tv/vpn). With VPN you can watch even more of their channels, like extra 25 or so.\n\n- Also I would highly appreciate your support on this project \u2800<a href=\"https://www.buymeacoffee.com/interlark\" target=\"_blank\"><img alt=\"Buy Me A Coffee\" src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" width=\"178\" height=\"41\"></a>\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "USTVGO Free IPTV",
    "version": "0.1.12",
    "split_keywords": [
        "ustvgo",
        "iptv",
        "m3u8",
        "playlist",
        "tvguide",
        "english"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5f590abdcc42ca58afea4938596fc198ffc4cf74c905fba05e504d82c9a9344f",
                "md5": "8df295d1ee1611ee2b8369277bb4ffa0",
                "sha256": "75fb3ff00c5d7f38079faafa6fb0d076ba85bd86f815b24ee9ee89822b4530f7"
            },
            "downloads": -1,
            "filename": "ustvgo_iptv-0.1.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8df295d1ee1611ee2b8369277bb4ffa0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7.4",
            "size": 14734,
            "upload_time": "2023-01-07T21:34:15",
            "upload_time_iso_8601": "2023-01-07T21:34:15.655976Z",
            "url": "https://files.pythonhosted.org/packages/5f/59/0abdcc42ca58afea4938596fc198ffc4cf74c905fba05e504d82c9a9344f/ustvgo_iptv-0.1.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00c7a399274442e3a985d3c9db08d036be508ef832b53424dbf4acf8371c5268",
                "md5": "9c7adf97c3e9873fcb291fb2ca38ebb1",
                "sha256": "a239b49a37f1d9d4ac48f1849a9bf47a2e714310aba4d57f6bdece7711611c38"
            },
            "downloads": -1,
            "filename": "ustvgo-iptv-0.1.12.tar.gz",
            "has_sig": false,
            "md5_digest": "9c7adf97c3e9873fcb291fb2ca38ebb1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7.4",
            "size": 18218,
            "upload_time": "2023-01-07T21:34:17",
            "upload_time_iso_8601": "2023-01-07T21:34:17.272333Z",
            "url": "https://files.pythonhosted.org/packages/00/c7/a399274442e3a985d3c9db08d036be508ef832b53424dbf4acf8371c5268/ustvgo-iptv-0.1.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-07 21:34:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "interlark",
    "github_project": "ustvgo-iptv",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ustvgo-iptv"
}
        
Elapsed time: 0.02555s