prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  plugins.turkuvaz: no data on minikacocuk.com.tr
  ### Checklist
  
  - [X] This is a [plugin issue](https://streamlink.github.io/plugins.html) and not [a different kind of issue](https://github.com/streamlink/streamlink/issues/new/choose)
  - [X] [I have read the contribution guidelines](https://github.com/streamlink/streamlink/blob/master/CONTRIBUTING.md#contributing-to-streamlink)
  - [X] [I have checked the list of open and recently closed plugin issues](https://github.com/streamlink/streamlink/issues?q=is%3Aissue+label%3A%22plugin+issue%22)
  - [X] [I have checked the commit log of the master branch](https://github.com/streamlink/streamlink/commits/master)
  
  ### Streamlink version
  
  6.7.2
  
  ### Description
  
  ### Debug log
  
  ```text
  Not working Python 3!!!! "Minikacocuk"   channel ,please help.
  ```
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `src/streamlink/plugins/turkuvaz.py`
  Content:
  ```
  1 """
  2 $description Turkish live TV channels from Turkuvaz Media Group, including Ahaber, ATV, Minika COCUK and MinikaGO.
  3 $url a2tv.com.tr
  4 $url ahaber.com.tr
  5 $url anews.com.tr
  6 $url apara.com.tr
  7 $url aspor.com.tr
  8 $url atv.com.tr
  9 $url atvavrupa.tv
  10 $url minikacocuk.com.tr
  11 $url minikago.com.tr
  12 $url vavtv.com.tr
  13 $type live, vod
  14 $metadata id
  15 $metadata title
  16 $region various
  17 """
  18 
  19 import logging
  20 import re
  21 
  22 from streamlink.plugin import Plugin, pluginmatcher
  23 from streamlink.plugin.api import validate
  24 from streamlink.stream.hls import HLSStream
  25 
  26 
  27 log = logging.getLogger(__name__)
  28 
  29 
  30 @pluginmatcher(re.compile(r"""
  31     https?://(?:www\.)?
  32     (?:
  33         atvavrupa\.tv
  34         |
  35         (?:a2tv|ahaber|anews|apara|aspor|atv|minikacocuk|minikago|vavtv)\.com\.tr
  36     )
  37 """, re.VERBOSE))
  38 class Turkuvaz(Plugin):
  39     def _get_streams(self):
  40         _find_and_get_attrs = validate.Schema(
  41             validate.xml_find(".//div[@data-videoid][@data-websiteid]"),
  42             validate.union_get("data-videoid", "data-websiteid"),
  43         )
  44 
  45         id_data = self.session.http.get(
  46             self.url,
  47             schema=validate.Schema(
  48                 validate.parse_html(),
  49                 validate.any(
  50                     _find_and_get_attrs,
  51                     validate.all(
  52                         validate.xml_xpath_string(
  53                             ".//script[contains(text(),'data-videoid') and contains(text(),'data-websiteid')]/text()",
  54                         ),
  55                         validate.none_or_all(
  56                             str,
  57                             validate.regex(re.compile(r"""var\s+tmdPlayer\s*=\s*(?P<q>["'])(.*?)(?P=q)""")),
  58                             validate.get(0),
  59                             validate.parse_html(),
  60                             _find_and_get_attrs,
  61                         ),
  62                     ),
  63                 ),
  64             ),
  65         )
  66 
  67         if not id_data:
  68             return
  69 
  70         video_id, website_id = id_data
  71         log.debug(f"video_id={video_id}")
  72         log.debug(f"website_id={website_id}")
  73 
  74         self.id, self.title, hls_url = self.session.http.get(
  75             f"https://videojs.tmgrup.com.tr/getvideo/{website_id}/{video_id}",
  76             schema=validate.Schema(
  77                 validate.parse_json(),
  78                 {
  79                     "success": True,
  80                     "video": {
  81                         "VideoId": str,
  82                         "Title": str,
  83                         "VideoSmilUrl": validate.url(),
  84                     },
  85                 },
  86                 validate.get("video"),
  87                 validate.union_get("VideoId", "Title", "VideoSmilUrl"),
  88             ),
  89         )
  90         log.debug(f"hls_url={hls_url}")
  91 
  92         secure_hls_url = self.session.http.get(
  93             "https://securevideotoken.tmgrup.com.tr/webtv/secure",
  94             params=f"url={hls_url}",
  95             headers={"Referer": self.url},
  96             schema=validate.Schema(
  97                 validate.parse_json(),
  98                 {
  99                     "Success": True,
  100                     "Url": validate.url(),
  101                 },
  102                 validate.get("Url"),
  103             ),
  104         )
  105         log.debug(f"secure_hls_url={secure_hls_url}")
  106 
  107         if secure_hls_url:
  108             return HLSStream.parse_variant_playlist(self.session, secure_hls_url)
  109 
  110 
  111 __plugin__ = Turkuvaz
  112
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/src/streamlink/plugins/turkuvaz.py b/src/streamlink/plugins/turkuvaz.py
  --- a/src/streamlink/plugins/turkuvaz.py
  +++ b/src/streamlink/plugins/turkuvaz.py
  @@ -36,8 +36,19 @@
       )
   """, re.VERBOSE))
   class Turkuvaz(Plugin):
  +    _VIDEOID_LIVE = "00000000-0000-0000-0000-000000000000"
  +
  +    # hardcoded in https://i.tmgrup.com.tr/videojs/js/tmdplayersetup.js?v=651
  +    # (via https://www.minikacocuk.com.tr/webtv/canli-yayin)
  +    _MAPPING_WEBSITEID_HLSURL = {
  +        "9BBE055A-4CF6-4BC3-A675-D40E89B55B91": "https://trkvz.daioncdn.net/aspor/aspor.m3u8?ce=3&app=45f847c4-04e8-419a-a561-2ebf87084765",
  +        "0C1BC8FF-C3B1-45BE-A95B-F7BB9C8B03ED": "https://trkvz.daioncdn.net/a2tv/a2tv.m3u8?ce=3&app=59363a60-be96-4f73-9eff-355d0ff2c758",
  +        "AAE2E325-4EAE-45B7-B017-26FD7DDB6CE4": "https://trkvz.daioncdn.net/minikago/minikago.m3u8?app=web&ce=3",
  +        "01ED59F2-4067-4945-8204-45F6C6DB4045": "https://trkvz.daioncdn.net/minikago_cocuk/minikago_cocuk.m3u8?app=web&ce=3",
  +    }
  +
       def _get_streams(self):
  -        _find_and_get_attrs = validate.Schema(
  +        _find_and_get_attrs = validate.all(
               validate.xml_find(".//div[@data-videoid][@data-websiteid]"),
               validate.union_get("data-videoid", "data-websiteid"),
           )
  @@ -68,8 +79,8 @@
               return
   
           video_id, website_id = id_data
  -        log.debug(f"video_id={video_id}")
  -        log.debug(f"website_id={website_id}")
  +        log.debug(f"{video_id=}")
  +        log.debug(f"{website_id=}")
   
           self.id, self.title, hls_url = self.session.http.get(
               f"https://videojs.tmgrup.com.tr/getvideo/{website_id}/{video_id}",
  @@ -87,11 +98,14 @@
                   validate.union_get("VideoId", "Title", "VideoSmilUrl"),
               ),
           )
  -        log.debug(f"hls_url={hls_url}")
  +
  +        if video_id == self._VIDEOID_LIVE:
  +            hls_url = self._MAPPING_WEBSITEID_HLSURL.get(website_id.upper(), hls_url)
  +        log.debug(f"{hls_url=}")
   
           secure_hls_url = self.session.http.get(
               "https://securevideotoken.tmgrup.com.tr/webtv/secure",
  -            params=f"url={hls_url}",
  +            params={"url": hls_url},
               headers={"Referer": self.url},
               schema=validate.Schema(
                   validate.parse_json(),
  @@ -102,7 +116,7 @@
                   validate.get("Url"),
               ),
           )
  -        log.debug(f"secure_hls_url={secure_hls_url}")
  +        log.debug(f"{secure_hls_url=}")
   
           if secure_hls_url:
               return HLSStream.parse_variant_playlist(self.session, secure_hls_url)
  
verification_info: {"golden_diff": "diff --git a/src/streamlink/plugins/turkuvaz.py b/src/streamlink/plugins/turkuvaz.py\n--- a/src/streamlink/plugins/turkuvaz.py\n+++ b/src/streamlink/plugins/turkuvaz.py\n@@ -36,8 +36,19 @@\n     )\n \"\"\", re.VERBOSE))\n class Turkuvaz(Plugin):\n+    _VIDEOID_LIVE = \"00000000-0000-0000-0000-000000000000\"\n+\n+    # hardcoded in https://i.tmgrup.com.tr/videojs/js/tmdplayersetup.js?v=651\n+    # (via https://www.minikacocuk.com.tr/webtv/canli-yayin)\n+    _MAPPING_WEBSITEID_HLSURL = {\n+        \"9BBE055A-4CF6-4BC3-A675-D40E89B55B91\": \"https://trkvz.daioncdn.net/aspor/aspor.m3u8?ce=3&app=45f847c4-04e8-419a-a561-2ebf87084765\",\n+        \"0C1BC8FF-C3B1-45BE-A95B-F7BB9C8B03ED\": \"https://trkvz.daioncdn.net/a2tv/a2tv.m3u8?ce=3&app=59363a60-be96-4f73-9eff-355d0ff2c758\",\n+        \"AAE2E325-4EAE-45B7-B017-26FD7DDB6CE4\": \"https://trkvz.daioncdn.net/minikago/minikago.m3u8?app=web&ce=3\",\n+        \"01ED59F2-4067-4945-8204-45F6C6DB4045\": \"https://trkvz.daioncdn.net/minikago_cocuk/minikago_cocuk.m3u8?app=web&ce=3\",\n+    }\n+\n     def _get_streams(self):\n-        _find_and_get_attrs = validate.Schema(\n+        _find_and_get_attrs = validate.all(\n             validate.xml_find(\".//div[@data-videoid][@data-websiteid]\"),\n             validate.union_get(\"data-videoid\", \"data-websiteid\"),\n         )\n@@ -68,8 +79,8 @@\n             return\n \n         video_id, website_id = id_data\n-        log.debug(f\"video_id={video_id}\")\n-        log.debug(f\"website_id={website_id}\")\n+        log.debug(f\"{video_id=}\")\n+        log.debug(f\"{website_id=}\")\n \n         self.id, self.title, hls_url = self.session.http.get(\n             f\"https://videojs.tmgrup.com.tr/getvideo/{website_id}/{video_id}\",\n@@ -87,11 +98,14 @@\n                 validate.union_get(\"VideoId\", \"Title\", \"VideoSmilUrl\"),\n             ),\n         )\n-        log.debug(f\"hls_url={hls_url}\")\n+\n+        if video_id == self._VIDEOID_LIVE:\n+            hls_url = self._MAPPING_WEBSITEID_HLSURL.get(website_id.upper(), hls_url)\n+        log.debug(f\"{hls_url=}\")\n \n         secure_hls_url = self.session.http.get(\n             \"https://securevideotoken.tmgrup.com.tr/webtv/secure\",\n-            params=f\"url={hls_url}\",\n+            params={\"url\": hls_url},\n             headers={\"Referer\": self.url},\n             schema=validate.Schema(\n                 validate.parse_json(),\n@@ -102,7 +116,7 @@\n                 validate.get(\"Url\"),\n             ),\n         )\n-        log.debug(f\"secure_hls_url={secure_hls_url}\")\n+        log.debug(f\"{secure_hls_url=}\")\n \n         if secure_hls_url:\n             return HLSStream.parse_variant_playlist(self.session, secure_hls_url)\n", "issue": "plugins.turkuvaz: no data on minikacocuk.com.tr\n### Checklist\r\n\r\n- [X] This is a [plugin issue](https://streamlink.github.io/plugins.html) and not [a different kind of issue](https://github.com/streamlink/streamlink/issues/new/choose)\r\n- [X] [I have read the contribution guidelines](https://github.com/streamlink/streamlink/blob/master/CONTRIBUTING.md#contributing-to-streamlink)\r\n- [X] [I have checked the list of open and recently closed plugin issues](https://github.com/streamlink/streamlink/issues?q=is%3Aissue+label%3A%22plugin+issue%22)\r\n- [X] [I have checked the commit log of the master branch](https://github.com/streamlink/streamlink/commits/master)\r\n\r\n### Streamlink version\r\n\r\n6.7.2\r\n\r\n### Description\r\n\r\n### Debug log\r\n\r\n```text\r\nNot working Python 3!!!! \"Minikacocuk\"   channel ,please help.\r\n```\r\n\n", "before_files": [{"content": "\"\"\"\n$description Turkish live TV channels from Turkuvaz Media Group, including Ahaber, ATV, Minika COCUK and MinikaGO.\n$url a2tv.com.tr\n$url ahaber.com.tr\n$url anews.com.tr\n$url apara.com.tr\n$url aspor.com.tr\n$url atv.com.tr\n$url atvavrupa.tv\n$url minikacocuk.com.tr\n$url minikago.com.tr\n$url vavtv.com.tr\n$type live, vod\n$metadata id\n$metadata title\n$region various\n\"\"\"\n\nimport logging\nimport re\n\nfrom streamlink.plugin import Plugin, pluginmatcher\nfrom streamlink.plugin.api import validate\nfrom streamlink.stream.hls import HLSStream\n\n\nlog = logging.getLogger(__name__)\n\n\n@pluginmatcher(re.compile(r\"\"\"\n    https?://(?:www\\.)?\n    (?:\n        atvavrupa\\.tv\n        |\n        (?:a2tv|ahaber|anews|apara|aspor|atv|minikacocuk|minikago|vavtv)\\.com\\.tr\n    )\n\"\"\", re.VERBOSE))\nclass Turkuvaz(Plugin):\n    def _get_streams(self):\n        _find_and_get_attrs = validate.Schema(\n            validate.xml_find(\".//div[@data-videoid][@data-websiteid]\"),\n            validate.union_get(\"data-videoid\", \"data-websiteid\"),\n        )\n\n        id_data = self.session.http.get(\n            self.url,\n            schema=validate.Schema(\n                validate.parse_html(),\n                validate.any(\n                    _find_and_get_attrs,\n                    validate.all(\n                        validate.xml_xpath_string(\n                            \".//script[contains(text(),'data-videoid') and contains(text(),'data-websiteid')]/text()\",\n                        ),\n                        validate.none_or_all(\n                            str,\n                            validate.regex(re.compile(r\"\"\"var\\s+tmdPlayer\\s*=\\s*(?P<q>[\"'])(.*?)(?P=q)\"\"\")),\n                            validate.get(0),\n                            validate.parse_html(),\n                            _find_and_get_attrs,\n                        ),\n                    ),\n                ),\n            ),\n        )\n\n        if not id_data:\n            return\n\n        video_id, website_id = id_data\n        log.debug(f\"video_id={video_id}\")\n        log.debug(f\"website_id={website_id}\")\n\n        self.id, self.title, hls_url = self.session.http.get(\n            f\"https://videojs.tmgrup.com.tr/getvideo/{website_id}/{video_id}\",\n            schema=validate.Schema(\n                validate.parse_json(),\n                {\n                    \"success\": True,\n                    \"video\": {\n                        \"VideoId\": str,\n                        \"Title\": str,\n                        \"VideoSmilUrl\": validate.url(),\n                    },\n                },\n                validate.get(\"video\"),\n                validate.union_get(\"VideoId\", \"Title\", \"VideoSmilUrl\"),\n            ),\n        )\n        log.debug(f\"hls_url={hls_url}\")\n\n        secure_hls_url = self.session.http.get(\n            \"https://securevideotoken.tmgrup.com.tr/webtv/secure\",\n            params=f\"url={hls_url}\",\n            headers={\"Referer\": self.url},\n            schema=validate.Schema(\n                validate.parse_json(),\n                {\n                    \"Success\": True,\n                    \"Url\": validate.url(),\n                },\n                validate.get(\"Url\"),\n            ),\n        )\n        log.debug(f\"secure_hls_url={secure_hls_url}\")\n\n        if secure_hls_url:\n            return HLSStream.parse_variant_playlist(self.session, secure_hls_url)\n\n\n__plugin__ = Turkuvaz\n", "path": "src/streamlink/plugins/turkuvaz.py"}], "after_files": [{"content": "\"\"\"\n$description Turkish live TV channels from Turkuvaz Media Group, including Ahaber, ATV, Minika COCUK and MinikaGO.\n$url a2tv.com.tr\n$url ahaber.com.tr\n$url anews.com.tr\n$url apara.com.tr\n$url aspor.com.tr\n$url atv.com.tr\n$url atvavrupa.tv\n$url minikacocuk.com.tr\n$url minikago.com.tr\n$url vavtv.com.tr\n$type live, vod\n$metadata id\n$metadata title\n$region various\n\"\"\"\n\nimport logging\nimport re\n\nfrom streamlink.plugin import Plugin, pluginmatcher\nfrom streamlink.plugin.api import validate\nfrom streamlink.stream.hls import HLSStream\n\n\nlog = logging.getLogger(__name__)\n\n\n@pluginmatcher(re.compile(r\"\"\"\n    https?://(?:www\\.)?\n    (?:\n        atvavrupa\\.tv\n        |\n        (?:a2tv|ahaber|anews|apara|aspor|atv|minikacocuk|minikago|vavtv)\\.com\\.tr\n    )\n\"\"\", re.VERBOSE))\nclass Turkuvaz(Plugin):\n    _VIDEOID_LIVE = \"00000000-0000-0000-0000-000000000000\"\n\n    # hardcoded in https://i.tmgrup.com.tr/videojs/js/tmdplayersetup.js?v=651\n    # (via https://www.minikacocuk.com.tr/webtv/canli-yayin)\n    _MAPPING_WEBSITEID_HLSURL = {\n        \"9BBE055A-4CF6-4BC3-A675-D40E89B55B91\": \"https://trkvz.daioncdn.net/aspor/aspor.m3u8?ce=3&app=45f847c4-04e8-419a-a561-2ebf87084765\",\n        \"0C1BC8FF-C3B1-45BE-A95B-F7BB9C8B03ED\": \"https://trkvz.daioncdn.net/a2tv/a2tv.m3u8?ce=3&app=59363a60-be96-4f73-9eff-355d0ff2c758\",\n        \"AAE2E325-4EAE-45B7-B017-26FD7DDB6CE4\": \"https://trkvz.daioncdn.net/minikago/minikago.m3u8?app=web&ce=3\",\n        \"01ED59F2-4067-4945-8204-45F6C6DB4045\": \"https://trkvz.daioncdn.net/minikago_cocuk/minikago_cocuk.m3u8?app=web&ce=3\",\n    }\n\n    def _get_streams(self):\n        _find_and_get_attrs = validate.all(\n            validate.xml_find(\".//div[@data-videoid][@data-websiteid]\"),\n            validate.union_get(\"data-videoid\", \"data-websiteid\"),\n        )\n\n        id_data = self.session.http.get(\n            self.url,\n            schema=validate.Schema(\n                validate.parse_html(),\n                validate.any(\n                    _find_and_get_attrs,\n                    validate.all(\n                        validate.xml_xpath_string(\n                            \".//script[contains(text(),'data-videoid') and contains(text(),'data-websiteid')]/text()\",\n                        ),\n                        validate.none_or_all(\n                            str,\n                            validate.regex(re.compile(r\"\"\"var\\s+tmdPlayer\\s*=\\s*(?P<q>[\"'])(.*?)(?P=q)\"\"\")),\n                            validate.get(0),\n                            validate.parse_html(),\n                            _find_and_get_attrs,\n                        ),\n                    ),\n                ),\n            ),\n        )\n\n        if not id_data:\n            return\n\n        video_id, website_id = id_data\n        log.debug(f\"{video_id=}\")\n        log.debug(f\"{website_id=}\")\n\n        self.id, self.title, hls_url = self.session.http.get(\n            f\"https://videojs.tmgrup.com.tr/getvideo/{website_id}/{video_id}\",\n            schema=validate.Schema(\n                validate.parse_json(),\n                {\n                    \"success\": True,\n                    \"video\": {\n                        \"VideoId\": str,\n                        \"Title\": str,\n                        \"VideoSmilUrl\": validate.url(),\n                    },\n                },\n                validate.get(\"video\"),\n                validate.union_get(\"VideoId\", \"Title\", \"VideoSmilUrl\"),\n            ),\n        )\n\n        if video_id == self._VIDEOID_LIVE:\n            hls_url = self._MAPPING_WEBSITEID_HLSURL.get(website_id.upper(), hls_url)\n        log.debug(f\"{hls_url=}\")\n\n        secure_hls_url = self.session.http.get(\n            \"https://securevideotoken.tmgrup.com.tr/webtv/secure\",\n            params={\"url\": hls_url},\n            headers={\"Referer\": self.url},\n            schema=validate.Schema(\n                validate.parse_json(),\n                {\n                    \"Success\": True,\n                    \"Url\": validate.url(),\n                },\n                validate.get(\"Url\"),\n            ),\n        )\n        log.debug(f\"{secure_hls_url=}\")\n\n        if secure_hls_url:\n            return HLSStream.parse_variant_playlist(self.session, secure_hls_url)\n\n\n__plugin__ = Turkuvaz\n", "path": "src/streamlink/plugins/turkuvaz.py"}]}