We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Kanal7 Defective again
Only 2 months later they have changed the design.

Not opening with latest 0.9.0 Release:

[cli][info] Found matching plugin kanal7 for URL http://www.kanal7.com/canli-izle
error: No playable streams found on this URL: http://www.kanal7.com/canli-izle

--- 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/kanal7.py`
Content:
```
1 from __future__ import print_function
2 import re
3 
4 from streamlink.plugin import Plugin
5 from streamlink.plugin.api import http
6 from streamlink.plugin.api import useragents
7 from streamlink.plugin.api import validate
8 from streamlink.stream import HLSStream
9 
10 
11 class Kanal7(Plugin):
12     url_re = re.compile(r"https?://(?:www.)?kanal7.com/canli-izle")
13     iframe_re = re.compile(r'iframe .*?src="(http://[^"]*?)"')
14     stream_re = re.compile(r'src="(http[^"]*?)"')
15 
16     @classmethod
17     def can_handle_url(cls, url):
18         return cls.url_re.match(url) is not None
19 
20     def find_iframe(self, url):
21         res = http.get(url)
22         # find iframe url
23         iframe = self.iframe_re.search(res.text)
24         iframe_url = iframe and iframe.group(1)
25         if iframe_url:
26             self.logger.debug("Found iframe: {}", iframe_url)
27         return iframe_url
28 
29     def _get_streams(self):
30         iframe1 = self.find_iframe(self.url)
31         if iframe1:
32             iframe2 = self.find_iframe(iframe1)
33             if iframe2:
34                 ires = http.get(iframe2)
35                 stream_m = self.stream_re.search(ires.text)
36                 stream_url = stream_m and stream_m.group(1)
37                 if stream_url:
38                     yield "live", HLSStream(self.session, stream_url, headers={"Referer": iframe2})
39             else:
40                 self.logger.error("Could not find second iframe, has the page layout changed?")
41         else:
42             self.logger.error("Could not find iframe, has the page layout changed?")
43 
44 
45 __plugin__ = Kanal7
46
```
--- 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/kanal7.py b/src/streamlink/plugins/kanal7.py
--- a/src/streamlink/plugins/kanal7.py
+++ b/src/streamlink/plugins/kanal7.py
@@ -11,7 +11,7 @@
 class Kanal7(Plugin):
     url_re = re.compile(r"https?://(?:www.)?kanal7.com/canli-izle")
     iframe_re = re.compile(r'iframe .*?src="(http://[^"]*?)"')
-    stream_re = re.compile(r'src="(http[^"]*?)"')
+    stream_re = re.compile(r'''tp_file\s+=\s+['"](http[^"]*?)['"]''')
 
     @classmethod
     def can_handle_url(cls, url):

{"golden_diff": "diff --git a/src/streamlink/plugins/kanal7.py b/src/streamlink/plugins/kanal7.py\n--- a/src/streamlink/plugins/kanal7.py\n+++ b/src/streamlink/plugins/kanal7.py\n@@ -11,7 +11,7 @@\n class Kanal7(Plugin):\n     url_re = re.compile(r\"https?://(?:www.)?kanal7.com/canli-izle\")\n     iframe_re = re.compile(r'iframe .*?src=\"(http://[^\"]*?)\"')\n-    stream_re = re.compile(r'src=\"(http[^\"]*?)\"')\n+    stream_re = re.compile(r'''tp_file\\s+=\\s+['\"](http[^\"]*?)['\"]''')\n \n     @classmethod\n     def can_handle_url(cls, url):\n", "issue": "Kanal7 Defective again\nOnly 2 months later they have changed the design.\r\n\r\nNot opening with latest 0.9.0 Release:\r\n\r\n[cli][info] Found matching plugin kanal7 for URL http://www.kanal7.com/canli-izle\r\nerror: No playable streams found on this URL: http://www.kanal7.com/canli-izle\n", "before_files": [{"content": "from __future__ import print_function\nimport re\n\nfrom streamlink.plugin import Plugin\nfrom streamlink.plugin.api import http\nfrom streamlink.plugin.api import useragents\nfrom streamlink.plugin.api import validate\nfrom streamlink.stream import HLSStream\n\n\nclass Kanal7(Plugin):\n    url_re = re.compile(r\"https?://(?:www.)?kanal7.com/canli-izle\")\n    iframe_re = re.compile(r'iframe .*?src=\"(http://[^\"]*?)\"')\n    stream_re = re.compile(r'src=\"(http[^\"]*?)\"')\n\n    @classmethod\n    def can_handle_url(cls, url):\n        return cls.url_re.match(url) is not None\n\n    def find_iframe(self, url):\n        res = http.get(url)\n        # find iframe url\n        iframe = self.iframe_re.search(res.text)\n        iframe_url = iframe and iframe.group(1)\n        if iframe_url:\n            self.logger.debug(\"Found iframe: {}\", iframe_url)\n        return iframe_url\n\n    def _get_streams(self):\n        iframe1 = self.find_iframe(self.url)\n        if iframe1:\n            iframe2 = self.find_iframe(iframe1)\n            if iframe2:\n                ires = http.get(iframe2)\n                stream_m = self.stream_re.search(ires.text)\n                stream_url = stream_m and stream_m.group(1)\n                if stream_url:\n                    yield \"live\", HLSStream(self.session, stream_url, headers={\"Referer\": iframe2})\n            else:\n                self.logger.error(\"Could not find second iframe, has the page layout changed?\")\n        else:\n            self.logger.error(\"Could not find iframe, has the page layout changed?\")\n\n\n__plugin__ = Kanal7\n", "path": "src/streamlink/plugins/kanal7.py"}], "after_files": [{"content": "from __future__ import print_function\nimport re\n\nfrom streamlink.plugin import Plugin\nfrom streamlink.plugin.api import http\nfrom streamlink.plugin.api import useragents\nfrom streamlink.plugin.api import validate\nfrom streamlink.stream import HLSStream\n\n\nclass Kanal7(Plugin):\n    url_re = re.compile(r\"https?://(?:www.)?kanal7.com/canli-izle\")\n    iframe_re = re.compile(r'iframe .*?src=\"(http://[^\"]*?)\"')\n    stream_re = re.compile(r'''tp_file\\s+=\\s+['\"](http[^\"]*?)['\"]''')\n\n    @classmethod\n    def can_handle_url(cls, url):\n        return cls.url_re.match(url) is not None\n\n    def find_iframe(self, url):\n        res = http.get(url)\n        # find iframe url\n        iframe = self.iframe_re.search(res.text)\n        iframe_url = iframe and iframe.group(1)\n        if iframe_url:\n            self.logger.debug(\"Found iframe: {}\", iframe_url)\n        return iframe_url\n\n    def _get_streams(self):\n        iframe1 = self.find_iframe(self.url)\n        if iframe1:\n            iframe2 = self.find_iframe(iframe1)\n            if iframe2:\n                ires = http.get(iframe2)\n                stream_m = self.stream_re.search(ires.text)\n                stream_url = stream_m and stream_m.group(1)\n                if stream_url:\n                    yield \"live\", HLSStream(self.session, stream_url, headers={\"Referer\": iframe2})\n            else:\n                self.logger.error(\"Could not find second iframe, has the page layout changed?\")\n        else:\n            self.logger.error(\"Could not find iframe, has the page layout changed?\")\n\n\n__plugin__ = Kanal7\n", "path": "src/streamlink/plugins/kanal7.py"}]}