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()

```

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)

{"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"}]}