prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Pornez.Net - Problem with iframe extractor.
  ### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE
  
  - [X] I understand that I will be **blocked** if I remove or skip any mandatory\* field
  
  ### Checklist
  
  - [X] I'm reporting a broken site
  - [X] I've verified that I'm running yt-dlp version **2023.01.06** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
  - [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
  - [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
  - [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
  - [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
  - [ ] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required
  
  ### Region
  
  belgium
  
  ### Provide a description that is worded well enough to be understood
  
  Unable to download videos from pornez.net site.
  
  the issue provide from "common.py" and "pornez.py".. And this is the same error on other videos from the site.
  
  If anyone can help..
  
  Thanks.
  
  ### Provide verbose output that clearly demonstrates the problem
  
  - [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
  - [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below
  
  ### Complete Verbose Output
  
  ```shell
  [debug] Command-line config: ['-c', '--fixup', 'warn', '-f', 'mp4', '-o', '.\\VideOs\\%(title)s-%(id)s.%(ext)s', 'https://pornez.net/video364069/akyb-046-miku-akyb-046-miku/', '-vU']
  [debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
  [debug] yt-dlp version 2023.01.06 [6becd25] (win_exe)
  [debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
  [debug] exe versions: ffmpeg n5.1-27-g6f53f0d09e-20220829 (setts), ffprobe n5.1-27-g6f53f0d09e-20220829
  [debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
  [debug] Proxy map: {}
  [debug] Loaded 1760 extractors
  [debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
  Latest version: 2023.01.06, Current version: 2023.01.06
  yt-dlp is up to date (2023.01.06)
  [Pornez] Extracting URL: https://pornez.net/video364069/akyb-046-miku-akyb-046-miku/
  [Pornez] 364069: Downloading webpage
  ERROR: [Pornez] 364069: Unable to extract iframe; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
    File "yt_dlp\extractor\common.py", line 680, in extract
    File "yt_dlp\extractor\pornez.py", line 22, in _real_extract
    File "yt_dlp\extractor\common.py", line 1264, in _html_search_regex
    File "yt_dlp\extractor\common.py", line 1228, in _search_regex
  ```
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `yt_dlp/extractor/pornez.py`
  Content:
  ```
  1 from .common import InfoExtractor
  2 from ..utils import int_or_none
  3 
  4 
  5 class PornezIE(InfoExtractor):
  6     _VALID_URL = r'https?://(?:www\.)?pornez\.net/video(?P<id>[0-9]+)/'
  7     _TEST = {
  8         'url': 'https://pornez.net/video344819/mistresst-funny_penis_names-wmv/',
  9         'md5': '2e19a0a1cff3a5dbea0ef1b9e80bcbbc',
  10         'info_dict': {
  11             'id': '344819',
  12             'ext': 'mp4',
  13             'title': r'mistresst funny_penis_names wmv',
  14             'thumbnail': r're:^https?://.*\.jpg$',
  15             'age_limit': 18,
  16         }
  17     }
  18 
  19     def _real_extract(self, url):
  20         video_id = self._match_id(url)
  21         webpage = self._download_webpage(url, video_id)
  22         iframe_src = self._html_search_regex(
  23             r'<iframe[^>]+src="(https?://pornez\.net/player/\?[^"]+)"', webpage, 'iframe', fatal=True)
  24         title = self._html_search_meta(['name', 'twitter:title', 'og:title'], webpage, 'title', default=None)
  25         if title is None:
  26             title = self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title', fatal=True)
  27         thumbnail = self._html_search_meta(['thumbnailUrl'], webpage, 'title', default=None)
  28         webpage = self._download_webpage(iframe_src, video_id)
  29         entries = self._parse_html5_media_entries(iframe_src, webpage, video_id)[0]
  30         for format in entries['formats']:
  31             height = self._search_regex(r'_(\d+)\.m3u8', format['url'], 'height')
  32             format['format_id'] = '%sp' % height
  33             format['height'] = int_or_none(height)
  34 
  35         entries.update({
  36             'id': video_id,
  37             'title': title,
  38             'thumbnail': thumbnail,
  39             'age_limit': 18
  40         })
  41         return entries
  42
  ```
  --- 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/yt_dlp/extractor/pornez.py b/yt_dlp/extractor/pornez.py
  --- a/yt_dlp/extractor/pornez.py
  +++ b/yt_dlp/extractor/pornez.py
  @@ -1,5 +1,5 @@
   from .common import InfoExtractor
  -from ..utils import int_or_none
  +from ..utils import int_or_none, urljoin
   
   
   class PornezIE(InfoExtractor):
  @@ -20,7 +20,8 @@
           video_id = self._match_id(url)
           webpage = self._download_webpage(url, video_id)
           iframe_src = self._html_search_regex(
  -            r'<iframe[^>]+src="(https?://pornez\.net/player/\?[^"]+)"', webpage, 'iframe', fatal=True)
  +            r'<iframe[^>]+src="([^"]+)"', webpage, 'iframe', fatal=True)
  +        iframe_src = urljoin('https://pornez.net', iframe_src)
           title = self._html_search_meta(['name', 'twitter:title', 'og:title'], webpage, 'title', default=None)
           if title is None:
               title = self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title', fatal=True)
  
verification_info: {"golden_diff": "diff --git a/yt_dlp/extractor/pornez.py b/yt_dlp/extractor/pornez.py\n--- a/yt_dlp/extractor/pornez.py\n+++ b/yt_dlp/extractor/pornez.py\n@@ -1,5 +1,5 @@\n from .common import InfoExtractor\n-from ..utils import int_or_none\n+from ..utils import int_or_none, urljoin\n \n \n class PornezIE(InfoExtractor):\n@@ -20,7 +20,8 @@\n         video_id = self._match_id(url)\n         webpage = self._download_webpage(url, video_id)\n         iframe_src = self._html_search_regex(\n-            r'<iframe[^>]+src=\"(https?://pornez\\.net/player/\\?[^\"]+)\"', webpage, 'iframe', fatal=True)\n+            r'<iframe[^>]+src=\"([^\"]+)\"', webpage, 'iframe', fatal=True)\n+        iframe_src = urljoin('https://pornez.net', iframe_src)\n         title = self._html_search_meta(['name', 'twitter:title', 'og:title'], webpage, 'title', default=None)\n         if title is None:\n             title = self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title', fatal=True)\n", "issue": "Pornez.Net - Problem with iframe extractor.\n### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE\n\n- [X] I understand that I will be **blocked** if I remove or skip any mandatory\\* field\n\n### Checklist\n\n- [X] I'm reporting a broken site\n- [X] I've verified that I'm running yt-dlp version **2023.01.06** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)\n- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details\n- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)\n- [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates\n- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)\n- [ ] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required\n\n### Region\n\nbelgium\n\n### Provide a description that is worded well enough to be understood\n\nUnable to download videos from pornez.net site.\r\n\r\nthe issue provide from \"common.py\" and \"pornez.py\".. And this is the same error on other videos from the site.\r\n\r\nIf anyone can help..\r\n\r\nThanks.\n\n### Provide verbose output that clearly demonstrates the problem\n\n- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)\n- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below\n\n### Complete Verbose Output\n\n```shell\n[debug] Command-line config: ['-c', '--fixup', 'warn', '-f', 'mp4', '-o', '.\\\\VideOs\\\\%(title)s-%(id)s.%(ext)s', 'https://pornez.net/video364069/akyb-046-miku-akyb-046-miku/', '-vU']\r\n[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8\r\n[debug] yt-dlp version 2023.01.06 [6becd25] (win_exe)\r\n[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)\r\n[debug] exe versions: ffmpeg n5.1-27-g6f53f0d09e-20220829 (setts), ffprobe n5.1-27-g6f53f0d09e-20220829\r\n[debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4\r\n[debug] Proxy map: {}\r\n[debug] Loaded 1760 extractors\r\n[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest\r\nLatest version: 2023.01.06, Current version: 2023.01.06\r\nyt-dlp is up to date (2023.01.06)\r\n[Pornez] Extracting URL: https://pornez.net/video364069/akyb-046-miku-akyb-046-miku/\r\n[Pornez] 364069: Downloading webpage\r\nERROR: [Pornez] 364069: Unable to extract iframe; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U\r\n  File \"yt_dlp\\extractor\\common.py\", line 680, in extract\r\n  File \"yt_dlp\\extractor\\pornez.py\", line 22, in _real_extract\r\n  File \"yt_dlp\\extractor\\common.py\", line 1264, in _html_search_regex\r\n  File \"yt_dlp\\extractor\\common.py\", line 1228, in _search_regex\n```\n\n", "before_files": [{"content": "from .common import InfoExtractor\nfrom ..utils import int_or_none\n\n\nclass PornezIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?pornez\\.net/video(?P<id>[0-9]+)/'\n    _TEST = {\n        'url': 'https://pornez.net/video344819/mistresst-funny_penis_names-wmv/',\n        'md5': '2e19a0a1cff3a5dbea0ef1b9e80bcbbc',\n        'info_dict': {\n            'id': '344819',\n            'ext': 'mp4',\n            'title': r'mistresst funny_penis_names wmv',\n            'thumbnail': r're:^https?://.*\\.jpg$',\n            'age_limit': 18,\n        }\n    }\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n        webpage = self._download_webpage(url, video_id)\n        iframe_src = self._html_search_regex(\n            r'<iframe[^>]+src=\"(https?://pornez\\.net/player/\\?[^\"]+)\"', webpage, 'iframe', fatal=True)\n        title = self._html_search_meta(['name', 'twitter:title', 'og:title'], webpage, 'title', default=None)\n        if title is None:\n            title = self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title', fatal=True)\n        thumbnail = self._html_search_meta(['thumbnailUrl'], webpage, 'title', default=None)\n        webpage = self._download_webpage(iframe_src, video_id)\n        entries = self._parse_html5_media_entries(iframe_src, webpage, video_id)[0]\n        for format in entries['formats']:\n            height = self._search_regex(r'_(\\d+)\\.m3u8', format['url'], 'height')\n            format['format_id'] = '%sp' % height\n            format['height'] = int_or_none(height)\n\n        entries.update({\n            'id': video_id,\n            'title': title,\n            'thumbnail': thumbnail,\n            'age_limit': 18\n        })\n        return entries\n", "path": "yt_dlp/extractor/pornez.py"}], "after_files": [{"content": "from .common import InfoExtractor\nfrom ..utils import int_or_none, urljoin\n\n\nclass PornezIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?pornez\\.net/video(?P<id>[0-9]+)/'\n    _TEST = {\n        'url': 'https://pornez.net/video344819/mistresst-funny_penis_names-wmv/',\n        'md5': '2e19a0a1cff3a5dbea0ef1b9e80bcbbc',\n        'info_dict': {\n            'id': '344819',\n            'ext': 'mp4',\n            'title': r'mistresst funny_penis_names wmv',\n            'thumbnail': r're:^https?://.*\\.jpg$',\n            'age_limit': 18,\n        }\n    }\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n        webpage = self._download_webpage(url, video_id)\n        iframe_src = self._html_search_regex(\n            r'<iframe[^>]+src=\"([^\"]+)\"', webpage, 'iframe', fatal=True)\n        iframe_src = urljoin('https://pornez.net', iframe_src)\n        title = self._html_search_meta(['name', 'twitter:title', 'og:title'], webpage, 'title', default=None)\n        if title is None:\n            title = self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title', fatal=True)\n        thumbnail = self._html_search_meta(['thumbnailUrl'], webpage, 'title', default=None)\n        webpage = self._download_webpage(iframe_src, video_id)\n        entries = self._parse_html5_media_entries(iframe_src, webpage, video_id)[0]\n        for format in entries['formats']:\n            height = self._search_regex(r'_(\\d+)\\.m3u8', format['url'], 'height')\n            format['format_id'] = '%sp' % height\n            format['height'] = int_or_none(height)\n\n        entries.update({\n            'id': video_id,\n            'title': title,\n            'thumbnail': thumbnail,\n            'age_limit': 18\n        })\n        return entries\n", "path": "yt_dlp/extractor/pornez.py"}]}