We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Kanal7 Plugin defective!
Hi there,

can you have a look on the kanal7.py please?

"error: No playable streams found on this URL"

Greetings

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

{"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@@ -3,6 +3,7 @@\n \n from streamlink.plugin import Plugin\n from streamlink.plugin.api import http\n+from streamlink.plugin.api import useragents\n from streamlink.plugin.api import validate\n from streamlink.stream import HLSStream\n \n@@ -10,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'src=\"(http[^\"]*?)\"')\n \n     @classmethod\n     def can_handle_url(cls, url):\n@@ -34,7 +35,7 @@\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)\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", "issue": "Kanal7 Plugin defective!\nHi there,\r\n\r\ncan you have a look on the kanal7.py please?\r\n\r\n\"error: No playable streams found on this URL\"\r\n\r\nGreetings\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 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)\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'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"}]}