internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: streamlink/streamlink

Issue:
BBC iPlayer plugin cannot find VPID
### Checklist

- [x] This is a bug report.
- [ ] This is a feature request.
- [ ] This is a plugin (improvement) request.
- [ ] I have read the contribution guidelines.

### Description

The BBC IPlayer plugin cannot find the VPID for valid urls.

### Reproduction steps / Explicit stream URLs to test

The following command:

`streamlink -l debug 'http://www.bbc.co.uk/iplayer/episode/b013pnv4/horizon-20112012-2-seeing-stars' best`

produces this output:

```
[cli][info] Found matching plugin bbciplayer for URL http://www.bbc.co.uk/iplayer/episode/b013pnv4/horizon-20112012-2-seeing-stars
[plugin.bbciplayer][debug] Loading streams for episode: b013pnv4
[plugin.bbciplayer][debug] Looking for vpid on http://www.bbc.co.uk/iplayer/episode/b013pnv4/horizon-20112012-2-seeing-stars
[plugin.bbciplayer][error] Could not find VPID for episode b013pnv4
error: No playable streams found on this URL: http://www.bbc.co.uk/iplayer/episode/b013pnv4/horizon-20112012-2-seeing-stars

```

and the same goes for any other valid iplayer url.

### Environment details

Operating system: arch linux
Streamlink and Python versions: streamlink-0.6.0 and python-3.6.1

### Comments, logs, screenshots, etc.

AFAICS, the page downloaded from the iplayer url does not contain the string "vpid".



Discussion:
I'll take a look :-)

Resolving patch:
diff --git a/src/streamlink/plugins/bbciplayer.py b/src/streamlink/plugins/bbciplayer.py
--- a/src/streamlink/plugins/bbciplayer.py
+++ b/src/streamlink/plugins/bbciplayer.py
@@ -20,7 +20,7 @@ class BBCiPlayer(Plugin):
             live/(?P<channel_name>\w+)
         )
     """, re.VERBOSE)
-    vpid_re = re.compile(r'"vpid"\s*:\s*"(\w+)"')
+    vpid_re = re.compile(r'"ident_id"\s*:\s*"(\w+)"')
     tvip_re = re.compile(r'event_master_brand=(\w+?)&')
     swf_url = "http://emp.bbci.co.uk/emp/SMPf/1.18.3/StandardMediaPlayerChromelessFlash.swf"
     hash = base64.b64decode(b"N2RmZjc2NzFkMGM2OTdmZWRiMWQ5MDVkOWExMjE3MTk5MzhiOTJiZg==")


Test patch:
Repository: streamlink/streamlink

Issue:
tvplayer.com 404 Client Error
### Checklist

- [x] This is a bug report.
- [ ] This is a feature request.
- [ ] This is a plugin (improvement) request.
- [ ] I have read the contribution guidelines.

### Description

tvplayer.com has started returning 404 client error:

streamlink https://tvplayer.com/watch/chilled
[cli][info] Found matching plugin tvplayer for URL https://tvplayer.com/watch/chilled
error: Unable to open URL: http://tvplayer.com/watch/context (404 Client Error: Not Found)


### Expected / Actual behavior

Available video qualities are detected and if one has been selected the video begins to play.

### Reproduction steps / Explicit stream URLs to test

streamlink https://tvplayer.com/watch/chilled

### Environment details

streamlink 0.6.0-47-g695cc35
Python 2.7.9


Discussion:

Resolving patch:
diff --git a/src/streamlink/plugins/tvplayer.py b/src/streamlink/plugins/tvplayer.py
--- a/src/streamlink/plugins/tvplayer.py
+++ b/src/streamlink/plugins/tvplayer.py
@@ -62,7 +62,7 @@ def _get_stream_data(self, resource, token, service=1):
         # Get the context info (validation token and platform)
         self.logger.debug("Getting stream information for resource={0}".format(resource))
         context_res = http.get(self.context_url, params={"resource": resource,
-                                                         "nonce": token})
+                                                         "gen": token})
         context_data = http.json(context_res, schema=self.context_schema)
 
         # get the stream urls


Test patch:
Repository: streamlink/streamlink

Issue:
Unable to open Smashcast streams
I get the following error whenever I try to open a Smashcast stream 

```
streamlink smashcast.tv/greatvaluesmash best
[cli][info] Found matching plugin hitbox for URL smashcast.tv/greatvaluesmash
Traceback (most recent call last):
  File "C:\Program Files (x86)\Streamlink\bin\streamlink-script.py", line 15, in
 <module>
    main()
  File "C:\Program Files (x86)\Streamlink\pkgs\streamlink_cli\main.py", line 103
8, in main
    handle_url()
  File "C:\Program Files (x86)\Streamlink\pkgs\streamlink_cli\main.py", line 482
, in handle_url
    streams = fetch_streams(plugin)
  File "C:\Program Files (x86)\Streamlink\pkgs\streamlink_cli\main.py", line 394
, in fetch_streams
    sorting_excludes=args.stream_sorting_excludes)
  File "C:\Program Files (x86)\Streamlink\pkgs\streamlink\plugin\plugin.py", lin
e 345, in get_streams
    return self.streams(*args, **kwargs)
  File "C:\Program Files (x86)\Streamlink\pkgs\streamlink\plugin\plugin.py", lin
e 248, in streams
    ostreams = self._get_streams()
  File "C:\Program Files (x86)\Streamlink\pkgs\streamlink\plugins\hitbox.py", li
ne 181, in _get_streams
    if livestream["media_hosted_media"]:
KeyError: 'media_hosted_media'
```

Tried with multiple different streams and using a hitbox url instead of smashcast and it still occurs. It still works perfectly fine on Livestreamer, so I'm not really sure what's up. Asked a friend to test it out to see if it's not just me and he had the same error. 

Using the latest version (0.7.0) on Windows 7, and my friend was using Windows 8.1. 


Discussion:

Resolving patch:
diff --git a/src/streamlink/plugins/hitbox.py b/src/streamlink/plugins/hitbox.py
--- a/src/streamlink/plugins/hitbox.py
+++ b/src/streamlink/plugins/hitbox.py
@@ -178,7 +178,7 @@ def _get_streams(self):
         if not media_id:
             res = http.get(LIVE_API.format(channel))
             livestream = http.json(res, schema=_live_schema)
-            if livestream["media_hosted_media"]:
+            if livestream.get("media_hosted_media"):
                 hosted = _live_schema.validate(livestream["media_hosted_media"])
                 self.logger.info("{0} is hosting {1}", livestream["media_user_name"], hosted["media_user_name"])
                 livestream = hosted


Test patch:
Repository: streamlink/streamlink

Issue:
AdultSwim stream broken
### Checklist

- [x] This is a bug report.
- [ ] This is a feature request.
- [ ] This is a plugin (improvement) request.
- [x] I have read the contribution guidelines.

### Description

running `streamlink.exe http://www.adultswim.com/videos/streams best` does not open the AdultSwim stream.

### Expected / Actual behavior

Expected: open the AdultSwim stream

Actual behavior: `error: Unable to validate JSON: Unable to validate key 'streams': Key 'isLive' not found in {'description': 'Walk with Him all-day long.', 'email': '', 'archiveCollection': [], 'stream': 'At-rci-fT1SgqmQ2ZA5XtQ', 'id': 'black-jesus', 'pipVideoID': '', 'chat': '', 'doc_id': 'video_stream_shows_black_jesus_marathon', 'showLinks': [{'external': False, 'value': 'More Black Jesus', 'url': 'http://www.adultswim.com/videos/black-jesus/'}, {'external': False, 'value': 'Facebook', 'url': 'http://www.facebook.com/BlackJesus'}, {'external': True, 'value': 'Twitter', 'url': 'https://twitter.com/blackjesusshow'}], 'url': 'http://www.adultswim.com/videos/streams/black-jesus/', 'telephone': '', 'schedule': [], 'images': {'video': 'http://i.cdn.turner.com/adultswim/big/video/black-jesus-marathon/marathonStream_blackjesus.jpg'}, 'chatService': 'http://www.adultswim.com/utilities/api/v1/live/chat/black-jesus', 'type': 'marathon', 'archiveEpisodes': [], 'sponsor':{'link': '', 'title': '', 'imageUrl': ''}, 'title': 'Black Jesus', 'rating': 'TV-MA'}`

### Reproduction steps / Explicit stream URLs to test

look above

### Environment details

Operating system and version: Windows 7 64bit 
Streamlink and Python version: Python 3.5.2/Streamlink 0.7.0



[Love Streamlink? Please consider supporting our collective. Thanks!](https://opencollective.com/streamlink/donate)



Discussion:

Resolving patch:
diff --git a/src/streamlink/plugins/adultswim.py b/src/streamlink/plugins/adultswim.py
--- a/src/streamlink/plugins/adultswim.py
+++ b/src/streamlink/plugins/adultswim.py
@@ -24,7 +24,7 @@ class AdultSwim(Plugin):
     live_schema = validate.Schema({
         u"streams": {
             validate.text: {u"stream": validate.text,
-                            u"isLive": bool,
+                            validate.optional(u"isLive"): bool,
                             u"archiveEpisodes": [{
                                 u"id": validate.text,
                                 u"slug": validate.text,
@@ -88,7 +88,7 @@ def _get_live_stream(self, stream_data, show, episode=None):
             for epi in show_info[u"archiveEpisodes"]:
                 if epi[u"slug"] == episode:
                     stream_id = epi[u"id"]
-        elif show_info["isLive"] or not len(show_info[u"archiveEpisodes"]):
+        elif show_info.get("isLive") or not len(show_info[u"archiveEpisodes"]):
             self.logger.debug("Loading LIVE streams for: {0}", show)
             stream_id = show_info[u"stream"]
         else:  # off-air


Test patch:
Repository: streamlink/streamlink

Issue:
SOCKS Support?
can we get socks support? way simpler than http, also requests supports it
https://github.com/requests/requests/issues/3172


Discussion:
_Please follow the guidelines for creating issues in the future._

This is a good feature to have, I didn't realise they had add support in `requests` :) It should be pretty straight forward to add socks support. 



Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -46,6 +46,9 @@
 
 deps.append("websocket-client")
 
+# Support for SOCKS proxies
+deps.append("requests[socks]")
+
 # When we build an egg for the Win32 bootstrap we don't want dependency
 # information built into it.
 if environ.get("NO_DEPS"):
diff --git a/src/streamlink/session.py b/src/streamlink/session.py
--- a/src/streamlink/session.py
+++ b/src/streamlink/session.py
@@ -1,11 +1,12 @@
 import imp
-import locale
 import pkgutil
 import re
 import sys
 import traceback
 
 import requests
+
+from streamlink.utils import update_scheme
 from streamlink.utils.l10n import Localization
 
 from . import plugins, __version__
@@ -230,13 +231,9 @@ def set_option(self, key, value):
             key = "subprocess-errorlog-path"
 
         if key == "http-proxy":
-            if not re.match("^http(s)?://", value):
-                value = "http://" + value
-            self.http.proxies["http"] = value
+            self.http.proxies["http"] = update_scheme("http://", value)
         elif key == "https-proxy":
-            if not re.match("^http(s)?://", value):
-                value = "https://" + value
-            self.http.proxies["https"] = value
+            self.http.proxies["https"] = update_scheme("https://", value)
         elif key == "http-cookies":
             if isinstance(value, dict):
                 self.http.cookies.update(value)


Test patch:
Repository: streamlink/streamlink

Issue:
keyboard interrupt should not exit with code 0
currently streamlink exit with 0 when hit by keyboard interrupt, 
it's hard to handle within automation script,

https://unix.stackexchange.com/questions/223189/what-does-exit-code-130-mean-for-postgres-command
 
 - if the process exited with exit(n) or return n from main(): the lower 8 bits of n (n & 0xFF).
 - if the process was killed by signal n: n + 128.

that do have some convention so people can handle them graceful with script


Discussion:
Could you please send a PR with a fix here:
https://github.com/streamlink/streamlink/blob/0.8.1/src/streamlink_cli/main.py#L1041-L1057

Related issue: #781 (which btw looks like it has been closed by accident)
https://github.com/streamlink/streamlink/blob/0.8.1/src/streamlink_cli/main.py#L247-L257
@bastimeyer thanks for the head up, I will just left this here by now, will do PR if I have free time, 

Resolving patch:
diff --git a/src/streamlink_cli/main.py b/src/streamlink_cli/main.py
--- a/src/streamlink_cli/main.py
+++ b/src/streamlink_cli/main.py
@@ -1010,6 +1010,8 @@ def check_version(force=False):
 
 
 def main():
+    error_code = 0
+
     setup_args()
     setup_streamlink()
     setup_plugins()
@@ -1028,16 +1030,12 @@ def main():
         try:
             streamlink.resolve_url(args.can_handle_url)
         except NoPluginError:
-            sys.exit(1)
-        else:
-            sys.exit(0)
+            error_code = 1
     elif args.can_handle_url_no_redirect:
         try:
             streamlink.resolve_url_no_redirect(args.can_handle_url_no_redirect)
         except NoPluginError:
-            sys.exit(1)
-        else:
-            sys.exit(0)
+            error_code = 1
     elif args.url:
         try:
             setup_options()
@@ -1048,13 +1046,14 @@ def main():
             if output:
                 output.close()
             console.msg("Interrupted! Exiting...")
+            error_code = 130
         finally:
             if stream_fd:
                 try:
                     console.logger.info("Closing currently open stream...")
                     stream_fd.close()
                 except KeyboardInterrupt:
-                    sys.exit()
+                    error_code = 130
     elif args.twitch_oauth_authenticate:
         authenticate_twitch_oauth()
     elif args.help:
@@ -1066,3 +1065,5 @@ def main():
             "read the manual at https://streamlink.github.io"
         ).format(usage=usage)
         console.msg(msg)
+
+    sys.exit(error_code)


Test patch:
Repository: streamlink/streamlink

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


Discussion:

Resolving patch:
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 @@ def _get_streams(self):
                 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:


Test patch:
Repository: streamlink/streamlink

Issue:
TVCatchup plugin is not working - "This service is ending soon"
### Checklist

- [x] This is a bug report.
- [ ] This is a feature request.
- [x] This is a plugin (improvement) request.
- [ ] I have read the contribution guidelines.

### Description

TVCatchup plugin is not working for some time. The problem is that plugin is able to connect to a stream without any errors but the stream is different comparing to the TVCatchup website's stream. It looks like streamlink gets a different type of stream deliberately prepared by the service provider to send the message: "This service is ending soon. Please download TVCatchup from the app store". Assuming that there is a real stream available on the website and mobile app, is it still possible to open it by streamlink?

Current stream for all of the channels:

![image](https://user-images.githubusercontent.com/12859955/31864398-f6226d86-b75c-11e7-84fe-b633eaef66e8.png)

Thanks


### Reproduction steps / Explicit stream URLs to test

streamlink http://tvcatchup.com/watch/bbctwo best

### Environment details

Operating system and version: Windows/Linux
Streamlink and Python version: Streamlink 0.8.1

[Love Streamlink? Please consider supporting our collective. Thanks!](https://opencollective.com/streamlink/donate)



Discussion:

Resolving patch:
diff --git a/src/streamlink/plugins/tvcatchup.py b/src/streamlink/plugins/tvcatchup.py
--- a/src/streamlink/plugins/tvcatchup.py
+++ b/src/streamlink/plugins/tvcatchup.py
@@ -6,7 +6,7 @@
 
 USER_AGENT = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
 _url_re = re.compile(r"http://(?:www\.)?tvcatchup.com/watch/\w+")
-_stream_re = re.compile(r'''(?P<q>["'])(?P<stream_url>https?://.*m3u8\?.*clientKey=.*?)(?P=q)''')
+_stream_re = re.compile(r'''source.*?(?P<q>["'])(?P<stream_url>https?://.*m3u8\?.*clientKey=.*?)(?P=q)''')
 
 
 class TVCatchup(Plugin):


Test patch:
Repository: streamlink/streamlink

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


Discussion:

Resolving patch:
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):


Test patch:
Repository: streamlink/streamlink

Issue:
catch a simple bug of handling url

### Checklist

- [x] This is a bug report.

### Description

catch a simple bug of returning url.  

### Version
streamlink 0.9.0

### Unexpected behavior
for example
```sh
streamlink http://www.huya.com/1547946968 "best"
```
it reports:
requests.exceptions.MissingSchema: Invalid URL '//ws.streamhls.huya.com/huyalive/30765679-2523417567-10837995924416888832-2789253832-10057-A-1512526581-1_1200/playlist.m3u8': No schema supplied. Perhaps you meant http:////ws.streamhls.huya.com/huyalive/30765679-2523417567-10837995924416888832-2789253832-10057-A-1512526581-1_1200/playlist.m3u8?

### Expected behavior
but if you replace with the m3u8 url above, by **removing // header**, it will work.
The equivalent successful example are as follows:
```sh
streamlink ws.streamhls.huya.com/huyalive/30765679-2523417567-10837995924416888832-2789253832-10057-A-1512526581-1_1200/playlist.m3u8 "best"
```


Discussion:

Resolving patch:
diff --git a/src/streamlink/plugins/huya.py b/src/streamlink/plugins/huya.py
--- a/src/streamlink/plugins/huya.py
+++ b/src/streamlink/plugins/huya.py
@@ -1,11 +1,10 @@
 import re
 
-from requests.adapters import HTTPAdapter
-
 from streamlink.plugin import Plugin
 from streamlink.plugin.api import http, validate
 from streamlink.stream import HLSStream
 from streamlink.plugin.api import useragents
+from streamlink.utils import update_scheme
 
 HUYA_URL = "http://m.huya.com/%s"
 
@@ -13,17 +12,18 @@
 _hls_re = re.compile(r'^\s*<video\s+id="html5player-video"\s+src="(?P<url>[^"]+)"', re.MULTILINE)
 
 _hls_schema = validate.Schema(
-        validate.all(
-            validate.transform(_hls_re.search),
-            validate.any(
-                None,
-                validate.all(
-                    validate.get('url'),
-                    validate.transform(str)
-                    )
-                )
+    validate.all(
+        validate.transform(_hls_re.search),
+        validate.any(
+            None,
+            validate.all(
+                validate.get('url'),
+                validate.transform(str)
             )
         )
+    )
+)
+
 
 class Huya(Plugin):
     @classmethod
@@ -35,9 +35,10 @@ def _get_streams(self):
         channel = match.group("channel")
 
         http.headers.update({"User-Agent": useragents.IPAD})
-        #Some problem with SSL on huya.com now, do not use https
+        # Some problem with SSL on huya.com now, do not use https
 
         hls_url = http.get(HUYA_URL % channel, schema=_hls_schema)
-        yield "live", HLSStream(self.session, hls_url)
+        yield "live", HLSStream(self.session, update_scheme("http://", hls_url))
+
 
 __plugin__ = Huya


Test patch:
Repository: streamlink/streamlink

Issue:
Kanal 7 does not show
## **Checklist**

- [x] This is a bug report.
- [ ] This is a feature request.
- [ ] This is a plugin (improvement) request.
- [ ] I have read the contribution guidelines.

##  **Description**

 i cant see anything at kanal 7.com . i have test it with this links but i became black screen 

## **Reproduction steps / Explicit stream URLs to test**

#SERVICE 5002:0:1:1DE6:C544:7E:460000:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//new.10gbps.tv%3a443/live/kanal7LiveDesktop/index.m3u8
#DESCRIPTION KANAL 7 
#SERVICE 5002:0:1:1DE6:C544:7E:460000:0:0:0:http%3a//127.0.0.1%3a8088/http%3a//www.kanal7.com/canli-izle
#DESCRIPTION KANAL 7
#SERVICE 5002:0:1:1DE6:C544:7E:460000:0:0:0:http%3a//127.0.0.1%3a8088/http%3a//www.izle7.com/canli-yayin-frame?air=1
#DESCRIPTION KANAL 7


Discussion:
its not fixed! 

I have tested it with 

#SERVICE 5002:0:1:1DE6:C544:7E:460000:0:0:0:http%3a//127.0.0.1%3a8088/http%3a//www.kanal7.com/canli-izle
#DESCRIPTION KANAL 7
@dreamboxco What would make you think that it is fixed? No one has worked on it in any way, shape, or form. If someone wants to work on it they will, there is no reason to spam the issue.
in the synopsis it stands as a functioning plugins then out so if it does not work
@dreamboxco I understand that and that's why the issue was created, but adding additional comments to the issue when no one has even looked at or worked on the issue does nothing. If someone decides to work on it they will, if not they won't. This is an open source project and people are spending their free time (unpaid) to contribute so you'll need to be patient and have some empathy for the team and what they choose to work on.
its a streamlink plugin which not work 

look here 

https://streamlink.github.io/plugin_matrix.html


kanal7 | kanal7.com | Yes | No |  
-- | -- | -- | -- | --



here kanal 7 link http://www.izle7.com/canli-yayin-frame?air=1

Resolving patch:
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
@@ -6,12 +6,13 @@
 from streamlink.plugin.api import useragents
 from streamlink.plugin.api import validate
 from streamlink.stream import HLSStream
+from streamlink.utils import update_scheme
 
 
 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'''tp_file\s+=\s+['"](http[^"]*?)['"]''')
+    iframe_re = re.compile(r'iframe .*?src="((?:http:)?//[^"]*?)"')
+    stream_re = re.compile(r'''video-source\s*=\s*['"](http[^"']*?)['"]''')
 
     @classmethod
     def can_handle_url(cls, url):
@@ -23,6 +24,7 @@ def find_iframe(self, url):
         iframe = self.iframe_re.search(res.text)
         iframe_url = iframe and iframe.group(1)
         if iframe_url:
+            iframe_url = update_scheme(self.url, iframe_url)
             self.logger.debug("Found iframe: {}", iframe_url)
         return iframe_url
 


Test patch: