We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
urplay
<!--

######################################################################
  WARNING!
  IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE
######################################################################

-->


## Checklist

<!--
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.02.04.1. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
- Finally, put x into all relevant boxes (like this [x])
-->

- [x] I'm reporting a broken site support
- [x] I've verified that I'm running youtube-dl version **2021.02.04.1**
- [x] I've checked that all provided URLs are alive and playable in a browser
- [x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
- [x] I've searched the bugtracker for similar issues including closed ones


## Verbose log

<!--
Provide the complete verbose output of youtube-dl that clearly demonstrates the problem.
Add the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <your command line>`), copy the WHOLE output and insert it below. It should look similar to this:
 [debug] System config: []
 [debug] User config: []
 [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
 [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
 [debug] youtube-dl version 2021.02.04.1
 [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
 [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
 [debug] Proxy map: {}
 <more lines>
-->

```
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--proxy', 'https://127.0.0.1:10809', '-J', 'https://urplay.se/program/220659-seniorsurfarskolan-social-pa-distans?autostart=true', '-v']
[debug] Encodings: locale cp936, fs mbcs, out cp936, pref cp936
[debug] youtube-dl version 2021.02.04.1
[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: none
[debug] Proxy map: {'http': 'https://127.0.0.1:10809', 'https': 'https://127.0.0.1:10809'}
ERROR: Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)> (caused by URLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)'),))
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpgi7ngq0n\build\youtube_dl\extractor\common.py", line 632, in _request_webpage
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpgi7ngq0n\build\youtube_dl\YoutubeDL.py", line 2275, in urlopen
  File "C:\Python\Python34\lib\urllib\request.py", line 464, in open
  File "C:\Python\Python34\lib\urllib\request.py", line 482, in _open
  File "C:\Python\Python34\lib\urllib\request.py", line 442, in _call_chain
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpgi7ngq0n\build\youtube_dl\utils.py", line 2736, in https_open
  File "C:\Python\Python34\lib\urllib\request.py", line 1185, in do_open
```


## Description

<!--
Provide an explanation of your issue in an arbitrary form. Provide any additional information, suggested solution and as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
-->

    This problem is exsactly same as #26815, but I saw that issue is closed, now the problem is still there, hope you guys can fix it!


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `youtube_dl/extractor/urplay.py`
Content:
```
1 # coding: utf-8
2 from __future__ import unicode_literals
3 
4 from .common import InfoExtractor
5 from ..utils import (
6     dict_get,
7     int_or_none,
8     unified_timestamp,
9 )
10 
11 
12 class URPlayIE(InfoExtractor):
13     _VALID_URL = r'https?://(?:www\.)?ur(?:play|skola)\.se/(?:program|Produkter)/(?P<id>[0-9]+)'
14     _TESTS = [{
15         'url': 'https://urplay.se/program/203704-ur-samtiden-livet-universum-och-rymdens-markliga-musik-om-vetenskap-kritiskt-tankande-och-motstand',
16         'md5': 'ff5b0c89928f8083c74bbd5099c9292d',
17         'info_dict': {
18             'id': '203704',
19             'ext': 'mp4',
20             'title': 'UR Samtiden - Livet, universum och rymdens märkliga musik : Om vetenskap, kritiskt tänkande och motstånd',
21             'description': 'md5:5344508a52aa78c1ced6c1b8b9e44e9a',
22             'timestamp': 1513292400,
23             'upload_date': '20171214',
24         },
25     }, {
26         'url': 'https://urskola.se/Produkter/190031-Tripp-Trapp-Trad-Sovkudde',
27         'info_dict': {
28             'id': '190031',
29             'ext': 'mp4',
30             'title': 'Tripp, Trapp, Träd : Sovkudde',
31             'description': 'md5:b86bffdae04a7e9379d1d7e5947df1d1',
32             'timestamp': 1440086400,
33             'upload_date': '20150820',
34         },
35     }, {
36         'url': 'http://urskola.se/Produkter/155794-Smasagor-meankieli-Grodan-i-vida-varlden',
37         'only_matching': True,
38     }]
39 
40     def _real_extract(self, url):
41         video_id = self._match_id(url)
42         url = url.replace('skola.se/Produkter', 'play.se/program')
43         webpage = self._download_webpage(url, video_id)
44         urplayer_data = self._parse_json(self._html_search_regex(
45             r'data-react-class="components/Player/Player"[^>]+data-react-props="({.+?})"',
46             webpage, 'urplayer data'), video_id)['currentProduct']
47         episode = urplayer_data['title']
48         raw_streaming_info = urplayer_data['streamingInfo']['raw']
49         host = self._download_json(
50             'http://streaming-loadbalancer.ur.se/loadbalancer.json',
51             video_id)['redirect']
52 
53         formats = []
54         for k, v in raw_streaming_info.items():
55             if not (k in ('sd', 'hd') and isinstance(v, dict)):
56                 continue
57             file_http = v.get('location')
58             if file_http:
59                 formats.extend(self._extract_wowza_formats(
60                     'http://%s/%splaylist.m3u8' % (host, file_http),
61                     video_id, skip_protocols=['f4m', 'rtmp', 'rtsp']))
62         self._sort_formats(formats)
63 
64         image = urplayer_data.get('image') or {}
65         thumbnails = []
66         for k, v in image.items():
67             t = {
68                 'id': k,
69                 'url': v,
70             }
71             wh = k.split('x')
72             if len(wh) == 2:
73                 t.update({
74                     'width': int_or_none(wh[0]),
75                     'height': int_or_none(wh[1]),
76                 })
77             thumbnails.append(t)
78 
79         series = urplayer_data.get('series') or {}
80         series_title = dict_get(series, ('seriesTitle', 'title')) or dict_get(urplayer_data, ('seriesTitle', 'mainTitle'))
81 
82         return {
83             'id': video_id,
84             'title': '%s : %s' % (series_title, episode) if series_title else episode,
85             'description': urplayer_data.get('description'),
86             'thumbnails': thumbnails,
87             'timestamp': unified_timestamp(urplayer_data.get('publishedAt')),
88             'series': series_title,
89             'formats': formats,
90             'duration': int_or_none(urplayer_data.get('duration')),
91             'categories': urplayer_data.get('categories'),
92             'tags': urplayer_data.get('keywords'),
93             'season': series.get('label'),
94             'episode': episode,
95             'episode_number': int_or_none(urplayer_data.get('episodeNumber')),
96         }
97
```
--- 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/youtube_dl/extractor/urplay.py b/youtube_dl/extractor/urplay.py
--- a/youtube_dl/extractor/urplay.py
+++ b/youtube_dl/extractor/urplay.py
@@ -42,8 +42,8 @@
         url = url.replace('skola.se/Produkter', 'play.se/program')
         webpage = self._download_webpage(url, video_id)
         urplayer_data = self._parse_json(self._html_search_regex(
-            r'data-react-class="components/Player/Player"[^>]+data-react-props="({.+?})"',
-            webpage, 'urplayer data'), video_id)['currentProduct']
+            r'data-react-class="routes/Product/components/ProgramContainer/ProgramContainer"[^>]+data-react-props="({.+?})"',
+            webpage, 'urplayer data'), video_id)['accessibleEpisodes'][0]
         episode = urplayer_data['title']
         raw_streaming_info = urplayer_data['streamingInfo']['raw']
         host = self._download_json(

{"golden_diff": "diff --git a/youtube_dl/extractor/urplay.py b/youtube_dl/extractor/urplay.py\n--- a/youtube_dl/extractor/urplay.py\n+++ b/youtube_dl/extractor/urplay.py\n@@ -42,8 +42,8 @@\n         url = url.replace('skola.se/Produkter', 'play.se/program')\n         webpage = self._download_webpage(url, video_id)\n         urplayer_data = self._parse_json(self._html_search_regex(\n-            r'data-react-class=\"components/Player/Player\"[^>]+data-react-props=\"({.+?})\"',\n-            webpage, 'urplayer data'), video_id)['currentProduct']\n+            r'data-react-class=\"routes/Product/components/ProgramContainer/ProgramContainer\"[^>]+data-react-props=\"({.+?})\"',\n+            webpage, 'urplayer data'), video_id)['accessibleEpisodes'][0]\n         episode = urplayer_data['title']\n         raw_streaming_info = urplayer_data['streamingInfo']['raw']\n         host = self._download_json(\n", "issue": "urplay\n<!--\r\n\r\n######################################################################\r\n  WARNING!\r\n  IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE\r\n######################################################################\r\n\r\n-->\r\n\r\n\r\n## Checklist\r\n\r\n<!--\r\nCarefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:\r\n- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.02.04.1. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.\r\n- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.\r\n- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.\r\n- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.\r\n- Finally, put x into all relevant boxes (like this [x])\r\n-->\r\n\r\n- [x] I'm reporting a broken site support\r\n- [x] I've verified that I'm running youtube-dl version **2021.02.04.1**\r\n- [x] I've checked that all provided URLs are alive and playable in a browser\r\n- [x] I've checked that all URLs and arguments with special characters are properly quoted or escaped\r\n- [x] I've searched the bugtracker for similar issues including closed ones\r\n\r\n\r\n## Verbose log\r\n\r\n<!--\r\nProvide the complete verbose output of youtube-dl that clearly demonstrates the problem.\r\nAdd the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <your command line>`), copy the WHOLE output and insert it below. It should look similar to this:\r\n [debug] System config: []\r\n [debug] User config: []\r\n [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']\r\n [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251\r\n [debug] youtube-dl version 2021.02.04.1\r\n [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2\r\n [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4\r\n [debug] Proxy map: {}\r\n <more lines>\r\n-->\r\n\r\n```\r\n[debug] System config: []\r\n[debug] User config: []\r\n[debug] Custom config: []\r\n[debug] Command-line args: ['--proxy', 'https://127.0.0.1:10809', '-J', 'https://urplay.se/program/220659-seniorsurfarskolan-social-pa-distans?autostart=true', '-v']\r\n[debug] Encodings: locale cp936, fs mbcs, out cp936, pref cp936\r\n[debug] youtube-dl version 2021.02.04.1\r\n[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1\r\n[debug] exe versions: none\r\n[debug] Proxy map: {'http': 'https://127.0.0.1:10809', 'https': 'https://127.0.0.1:10809'}\r\nERROR: Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)> (caused by URLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)'),))\r\n  File \"C:\\Users\\dst\\AppData\\Roaming\\Build archive\\youtube-dl\\ytdl-org\\tmpgi7ngq0n\\build\\youtube_dl\\extractor\\common.py\", line 632, in _request_webpage\r\n  File \"C:\\Users\\dst\\AppData\\Roaming\\Build archive\\youtube-dl\\ytdl-org\\tmpgi7ngq0n\\build\\youtube_dl\\YoutubeDL.py\", line 2275, in urlopen\r\n  File \"C:\\Python\\Python34\\lib\\urllib\\request.py\", line 464, in open\r\n  File \"C:\\Python\\Python34\\lib\\urllib\\request.py\", line 482, in _open\r\n  File \"C:\\Python\\Python34\\lib\\urllib\\request.py\", line 442, in _call_chain\r\n  File \"C:\\Users\\dst\\AppData\\Roaming\\Build archive\\youtube-dl\\ytdl-org\\tmpgi7ngq0n\\build\\youtube_dl\\utils.py\", line 2736, in https_open\r\n  File \"C:\\Python\\Python34\\lib\\urllib\\request.py\", line 1185, in do_open\r\n```\r\n\r\n\r\n## Description\r\n\r\n<!--\r\nProvide an explanation of your issue in an arbitrary form. Provide any additional information, suggested solution and as much context and examples as possible.\r\nIf work on your issue requires account credentials please provide them or explain how one can obtain them.\r\n-->\r\n\r\n    This problem is exsactly same as #26815, but I saw that issue is closed, now the problem is still there, hope you guys can fix it!\r\n\n", "before_files": [{"content": "# coding: utf-8\nfrom __future__ import unicode_literals\n\nfrom .common import InfoExtractor\nfrom ..utils import (\n    dict_get,\n    int_or_none,\n    unified_timestamp,\n)\n\n\nclass URPlayIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?ur(?:play|skola)\\.se/(?:program|Produkter)/(?P<id>[0-9]+)'\n    _TESTS = [{\n        'url': 'https://urplay.se/program/203704-ur-samtiden-livet-universum-och-rymdens-markliga-musik-om-vetenskap-kritiskt-tankande-och-motstand',\n        'md5': 'ff5b0c89928f8083c74bbd5099c9292d',\n        'info_dict': {\n            'id': '203704',\n            'ext': 'mp4',\n            'title': 'UR Samtiden - Livet, universum och rymdens m\u00e4rkliga musik : Om vetenskap, kritiskt t\u00e4nkande och motst\u00e5nd',\n            'description': 'md5:5344508a52aa78c1ced6c1b8b9e44e9a',\n            'timestamp': 1513292400,\n            'upload_date': '20171214',\n        },\n    }, {\n        'url': 'https://urskola.se/Produkter/190031-Tripp-Trapp-Trad-Sovkudde',\n        'info_dict': {\n            'id': '190031',\n            'ext': 'mp4',\n            'title': 'Tripp, Trapp, Tr\u00e4d : Sovkudde',\n            'description': 'md5:b86bffdae04a7e9379d1d7e5947df1d1',\n            'timestamp': 1440086400,\n            'upload_date': '20150820',\n        },\n    }, {\n        'url': 'http://urskola.se/Produkter/155794-Smasagor-meankieli-Grodan-i-vida-varlden',\n        'only_matching': True,\n    }]\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n        url = url.replace('skola.se/Produkter', 'play.se/program')\n        webpage = self._download_webpage(url, video_id)\n        urplayer_data = self._parse_json(self._html_search_regex(\n            r'data-react-class=\"components/Player/Player\"[^>]+data-react-props=\"({.+?})\"',\n            webpage, 'urplayer data'), video_id)['currentProduct']\n        episode = urplayer_data['title']\n        raw_streaming_info = urplayer_data['streamingInfo']['raw']\n        host = self._download_json(\n            'http://streaming-loadbalancer.ur.se/loadbalancer.json',\n            video_id)['redirect']\n\n        formats = []\n        for k, v in raw_streaming_info.items():\n            if not (k in ('sd', 'hd') and isinstance(v, dict)):\n                continue\n            file_http = v.get('location')\n            if file_http:\n                formats.extend(self._extract_wowza_formats(\n                    'http://%s/%splaylist.m3u8' % (host, file_http),\n                    video_id, skip_protocols=['f4m', 'rtmp', 'rtsp']))\n        self._sort_formats(formats)\n\n        image = urplayer_data.get('image') or {}\n        thumbnails = []\n        for k, v in image.items():\n            t = {\n                'id': k,\n                'url': v,\n            }\n            wh = k.split('x')\n            if len(wh) == 2:\n                t.update({\n                    'width': int_or_none(wh[0]),\n                    'height': int_or_none(wh[1]),\n                })\n            thumbnails.append(t)\n\n        series = urplayer_data.get('series') or {}\n        series_title = dict_get(series, ('seriesTitle', 'title')) or dict_get(urplayer_data, ('seriesTitle', 'mainTitle'))\n\n        return {\n            'id': video_id,\n            'title': '%s : %s' % (series_title, episode) if series_title else episode,\n            'description': urplayer_data.get('description'),\n            'thumbnails': thumbnails,\n            'timestamp': unified_timestamp(urplayer_data.get('publishedAt')),\n            'series': series_title,\n            'formats': formats,\n            'duration': int_or_none(urplayer_data.get('duration')),\n            'categories': urplayer_data.get('categories'),\n            'tags': urplayer_data.get('keywords'),\n            'season': series.get('label'),\n            'episode': episode,\n            'episode_number': int_or_none(urplayer_data.get('episodeNumber')),\n        }\n", "path": "youtube_dl/extractor/urplay.py"}], "after_files": [{"content": "# coding: utf-8\nfrom __future__ import unicode_literals\n\nfrom .common import InfoExtractor\nfrom ..utils import (\n    dict_get,\n    int_or_none,\n    unified_timestamp,\n)\n\n\nclass URPlayIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?ur(?:play|skola)\\.se/(?:program|Produkter)/(?P<id>[0-9]+)'\n    _TESTS = [{\n        'url': 'https://urplay.se/program/203704-ur-samtiden-livet-universum-och-rymdens-markliga-musik-om-vetenskap-kritiskt-tankande-och-motstand',\n        'md5': 'ff5b0c89928f8083c74bbd5099c9292d',\n        'info_dict': {\n            'id': '203704',\n            'ext': 'mp4',\n            'title': 'UR Samtiden - Livet, universum och rymdens m\u00e4rkliga musik : Om vetenskap, kritiskt t\u00e4nkande och motst\u00e5nd',\n            'description': 'md5:5344508a52aa78c1ced6c1b8b9e44e9a',\n            'timestamp': 1513292400,\n            'upload_date': '20171214',\n        },\n    }, {\n        'url': 'https://urskola.se/Produkter/190031-Tripp-Trapp-Trad-Sovkudde',\n        'info_dict': {\n            'id': '190031',\n            'ext': 'mp4',\n            'title': 'Tripp, Trapp, Tr\u00e4d : Sovkudde',\n            'description': 'md5:b86bffdae04a7e9379d1d7e5947df1d1',\n            'timestamp': 1440086400,\n            'upload_date': '20150820',\n        },\n    }, {\n        'url': 'http://urskola.se/Produkter/155794-Smasagor-meankieli-Grodan-i-vida-varlden',\n        'only_matching': True,\n    }]\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n        url = url.replace('skola.se/Produkter', 'play.se/program')\n        webpage = self._download_webpage(url, video_id)\n        urplayer_data = self._parse_json(self._html_search_regex(\n            r'data-react-class=\"routes/Product/components/ProgramContainer/ProgramContainer\"[^>]+data-react-props=\"({.+?})\"',\n            webpage, 'urplayer data'), video_id)['accessibleEpisodes'][0]\n        episode = urplayer_data['title']\n        raw_streaming_info = urplayer_data['streamingInfo']['raw']\n        host = self._download_json(\n            'http://streaming-loadbalancer.ur.se/loadbalancer.json',\n            video_id)['redirect']\n\n        formats = []\n        for k, v in raw_streaming_info.items():\n            if not (k in ('sd', 'hd') and isinstance(v, dict)):\n                continue\n            file_http = v.get('location')\n            if file_http:\n                formats.extend(self._extract_wowza_formats(\n                    'http://%s/%splaylist.m3u8' % (host, file_http),\n                    video_id, skip_protocols=['f4m', 'rtmp', 'rtsp']))\n        self._sort_formats(formats)\n\n        image = urplayer_data.get('image') or {}\n        thumbnails = []\n        for k, v in image.items():\n            t = {\n                'id': k,\n                'url': v,\n            }\n            wh = k.split('x')\n            if len(wh) == 2:\n                t.update({\n                    'width': int_or_none(wh[0]),\n                    'height': int_or_none(wh[1]),\n                })\n            thumbnails.append(t)\n\n        series = urplayer_data.get('series') or {}\n        series_title = dict_get(series, ('seriesTitle', 'title')) or dict_get(urplayer_data, ('seriesTitle', 'mainTitle'))\n\n        return {\n            'id': video_id,\n            'title': '%s : %s' % (series_title, episode) if series_title else episode,\n            'description': urplayer_data.get('description'),\n            'thumbnails': thumbnails,\n            'timestamp': unified_timestamp(urplayer_data.get('publishedAt')),\n            'series': series_title,\n            'formats': formats,\n            'duration': int_or_none(urplayer_data.get('duration')),\n            'categories': urplayer_data.get('categories'),\n            'tags': urplayer_data.get('keywords'),\n            'season': series.get('label'),\n            'episode': episode,\n            'episode_number': int_or_none(urplayer_data.get('episodeNumber')),\n        }\n", "path": "youtube_dl/extractor/urplay.py"}]}