prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Skai plugin broken
  <!--
  Thanks for reporting a plugin issue!
  USE THE TEMPLATE. Otherwise your plugin issue may be rejected.
  
  First, see the contribution guidelines:
  https://github.com/streamlink/streamlink/blob/master/CONTRIBUTING.md#contributing-to-streamlink
  
  Also check the list of open and closed plugin issues:
  https://github.com/streamlink/streamlink/issues?q=is%3Aissue+label%3A%22plugin+issue%22
  
  Please see the text preview to avoid unnecessary formatting errors.
  -->
  
  
  ## Plugin Issue
  
  - [x] This is a plugin issue and I have read the contribution guidelines.
  
  
  ### Description
  
  Skai plugin is broken since yesterday, but actually it is no longer needed because they provide a lot more stable stream (they don't change stream three or so times a day). **Imho it can be removed.**
  
  New live url as follows:
  
  http://www.skaitv.gr/live
  
  
  --- 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/skai.py`
  Content:
  ```
  1 import re
  2 
  3 from streamlink.plugin import Plugin
  4 from streamlink.plugin.api import validate
  5 
  6 YOUTUBE_URL = "https://www.youtube.com/watch?v={0}"
  7 _url_re = re.compile(r'http(s)?://www\.skai.gr/.*')
  8 _youtube_id = re.compile(r'<span\s+itemprop="contentUrl"\s+href="(.*)"></span>', re.MULTILINE)
  9 _youtube_url_schema = validate.Schema(
  10     validate.all(
  11         validate.transform(_youtube_id.search),
  12         validate.any(
  13             None,
  14             validate.all(
  15                 validate.get(1),
  16                 validate.text
  17             )
  18         )
  19     )
  20 )
  21 
  22 
  23 class Skai(Plugin):
  24     @classmethod
  25     def can_handle_url(cls, url):
  26         return _url_re.match(url)
  27 
  28     def _get_streams(self):
  29         channel_id = self.session.http.get(self.url, schema=_youtube_url_schema)
  30         if channel_id:
  31             return self.session.streams(YOUTUBE_URL.format(channel_id))
  32 
  33 
  34 __plugin__ = Skai
  35
  ```
  --- 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/skai.py b/src/streamlink/plugins/skai.py
  --- a/src/streamlink/plugins/skai.py
  +++ b/src/streamlink/plugins/skai.py
  @@ -3,20 +3,15 @@
   from streamlink.plugin import Plugin
   from streamlink.plugin.api import validate
   
  -YOUTUBE_URL = "https://www.youtube.com/watch?v={0}"
  -_url_re = re.compile(r'http(s)?://www\.skai.gr/.*')
  -_youtube_id = re.compile(r'<span\s+itemprop="contentUrl"\s+href="(.*)"></span>', re.MULTILINE)
  -_youtube_url_schema = validate.Schema(
  -    validate.all(
  -        validate.transform(_youtube_id.search),
  -        validate.any(
  -            None,
  -            validate.all(
  -                validate.get(1),
  -                validate.text
  -            )
  -        )
  -    )
  +
  +_url_re = re.compile(r'http(s)?://www\.skai(?:tv)?.gr/.*')
  +_api_url = "http://www.skaitv.gr/json/live.php"
  +_api_res_schema = validate.Schema(validate.all(
  +    validate.get("now"),
  +    {
  +        "livestream": validate.url()
  +    },
  +    validate.get("livestream"))
   )
   
   
  @@ -26,9 +21,10 @@
           return _url_re.match(url)
   
       def _get_streams(self):
  -        channel_id = self.session.http.get(self.url, schema=_youtube_url_schema)
  -        if channel_id:
  -            return self.session.streams(YOUTUBE_URL.format(channel_id))
  +        api_res = self.session.http.get(_api_url)
  +        yt_url = self.session.http.json(api_res, schema=_api_res_schema)
  +        if yt_url:
  +            return self.session.streams(yt_url)
   
   
   __plugin__ = Skai
  
verification_info: {"golden_diff": "diff --git a/src/streamlink/plugins/skai.py b/src/streamlink/plugins/skai.py\n--- a/src/streamlink/plugins/skai.py\n+++ b/src/streamlink/plugins/skai.py\n@@ -3,20 +3,15 @@\n from streamlink.plugin import Plugin\n from streamlink.plugin.api import validate\n \n-YOUTUBE_URL = \"https://www.youtube.com/watch?v={0}\"\n-_url_re = re.compile(r'http(s)?://www\\.skai.gr/.*')\n-_youtube_id = re.compile(r'<span\\s+itemprop=\"contentUrl\"\\s+href=\"(.*)\"></span>', re.MULTILINE)\n-_youtube_url_schema = validate.Schema(\n-    validate.all(\n-        validate.transform(_youtube_id.search),\n-        validate.any(\n-            None,\n-            validate.all(\n-                validate.get(1),\n-                validate.text\n-            )\n-        )\n-    )\n+\n+_url_re = re.compile(r'http(s)?://www\\.skai(?:tv)?.gr/.*')\n+_api_url = \"http://www.skaitv.gr/json/live.php\"\n+_api_res_schema = validate.Schema(validate.all(\n+    validate.get(\"now\"),\n+    {\n+        \"livestream\": validate.url()\n+    },\n+    validate.get(\"livestream\"))\n )\n \n \n@@ -26,9 +21,10 @@\n         return _url_re.match(url)\n \n     def _get_streams(self):\n-        channel_id = self.session.http.get(self.url, schema=_youtube_url_schema)\n-        if channel_id:\n-            return self.session.streams(YOUTUBE_URL.format(channel_id))\n+        api_res = self.session.http.get(_api_url)\n+        yt_url = self.session.http.json(api_res, schema=_api_res_schema)\n+        if yt_url:\n+            return self.session.streams(yt_url)\n \n \n __plugin__ = Skai\n", "issue": "Skai plugin broken\n<!--\r\nThanks for reporting a plugin issue!\r\nUSE THE TEMPLATE. Otherwise your plugin issue may be rejected.\r\n\r\nFirst, see the contribution guidelines:\r\nhttps://github.com/streamlink/streamlink/blob/master/CONTRIBUTING.md#contributing-to-streamlink\r\n\r\nAlso check the list of open and closed plugin issues:\r\nhttps://github.com/streamlink/streamlink/issues?q=is%3Aissue+label%3A%22plugin+issue%22\r\n\r\nPlease see the text preview to avoid unnecessary formatting errors.\r\n-->\r\n\r\n\r\n## Plugin Issue\r\n\r\n- [x] This is a plugin issue and I have read the contribution guidelines.\r\n\r\n\r\n### Description\r\n\r\nSkai plugin is broken since yesterday, but actually it is no longer needed because they provide a lot more stable stream (they don't change stream three or so times a day). **Imho it can be removed.**\r\n\r\nNew live url as follows:\r\n\r\nhttp://www.skaitv.gr/live\r\n\n", "before_files": [{"content": "import re\n\nfrom streamlink.plugin import Plugin\nfrom streamlink.plugin.api import validate\n\nYOUTUBE_URL = \"https://www.youtube.com/watch?v={0}\"\n_url_re = re.compile(r'http(s)?://www\\.skai.gr/.*')\n_youtube_id = re.compile(r'<span\\s+itemprop=\"contentUrl\"\\s+href=\"(.*)\"></span>', re.MULTILINE)\n_youtube_url_schema = validate.Schema(\n    validate.all(\n        validate.transform(_youtube_id.search),\n        validate.any(\n            None,\n            validate.all(\n                validate.get(1),\n                validate.text\n            )\n        )\n    )\n)\n\n\nclass Skai(Plugin):\n    @classmethod\n    def can_handle_url(cls, url):\n        return _url_re.match(url)\n\n    def _get_streams(self):\n        channel_id = self.session.http.get(self.url, schema=_youtube_url_schema)\n        if channel_id:\n            return self.session.streams(YOUTUBE_URL.format(channel_id))\n\n\n__plugin__ = Skai\n", "path": "src/streamlink/plugins/skai.py"}], "after_files": [{"content": "import re\n\nfrom streamlink.plugin import Plugin\nfrom streamlink.plugin.api import validate\n\n\n_url_re = re.compile(r'http(s)?://www\\.skai(?:tv)?.gr/.*')\n_api_url = \"http://www.skaitv.gr/json/live.php\"\n_api_res_schema = validate.Schema(validate.all(\n    validate.get(\"now\"),\n    {\n        \"livestream\": validate.url()\n    },\n    validate.get(\"livestream\"))\n)\n\n\nclass Skai(Plugin):\n    @classmethod\n    def can_handle_url(cls, url):\n        return _url_re.match(url)\n\n    def _get_streams(self):\n        api_res = self.session.http.get(_api_url)\n        yt_url = self.session.http.json(api_res, schema=_api_res_schema)\n        if yt_url:\n            return self.session.streams(yt_url)\n\n\n__plugin__ = Skai\n", "path": "src/streamlink/plugins/skai.py"}]}