Repository: yt-dlp/yt-dlp
File: yt_dlp/extractor/elementorembed.py (Python)

Code before:
            'id': '?playlist=76011151&video=9e59909',
            'title': 'Theme Builder Collection - Academy',
            'age_limit': 0,
            'timestamp': 1702196984.0,
            'upload_date': '20231210',
            'description': 'md5:7f52c52715ee9e54fd7f82210511673d',
            'thumbnail': 'https://elementor.com/academy/wp-content/uploads/2021/07/Theme-Builder-1.png',
        },
        'playlist_count': 11,
        'params': {
            'skip_download': True,
        },
    }]
    _WIDGET_REGEX = r'<div[^>]+class="[^"]*elementor-widget-video(?:-playlist)?[^"]*"[^>]*data-settings="([^"]*)"'

    def _extract_from_webpage(self, url, webpage):
        for data_settings in re.findall(self._WIDGET_REGEX, webpage):
            data = self._parse_json(data_settings, None, fatal=False, transform_source=unescapeHTML)
            if youtube_url := traverse_obj(data, ('youtube_url', {url_or_none})):
                yield self.url_result(youtube_url, ie='Youtube')

            for video in traverse_obj(data, ('tabs', lambda _, v: v['_id'], {dict})):
                if youtube_url := traverse_obj(video, ('youtube_url', {url_or_none})):
                    yield self.url_result(youtube_url, ie='Youtube')
                if vimeo_url := traverse_obj(video, ('vimeo_url', {url_or_none})):
                    yield self.url_result(vimeo_url, ie='Vimeo')
                for direct_url in traverse_obj(video, (('hosted_url', 'external_url'), 'url', {url_or_none})):
                    yield {
                        'id': video['_id'],
                        'url': direct_url,
                        'title': video.get('title'),
                    }


Review comment (refactor):
Import relevent extractors and do 
```suggestion
                    yield self.url_result(vimeo_url, ie=VimeoIE)
```

Code after:
        'url': 'https://elementor.com/academy/theme-builder-collection/?playlist=76011151&video=9e59909',
        'info_dict': {
            'id': '?playlist=76011151&video=9e59909',
            'title': 'Theme Builder Collection - Academy',
            'age_limit': 0,
            'timestamp': 1702196984.0,
            'upload_date': '20231210',
            'description': 'md5:7f52c52715ee9e54fd7f82210511673d',
            'thumbnail': 'https://elementor.com/academy/wp-content/uploads/2021/07/Theme-Builder-1.png',
        },
        'playlist_count': 11,
        'params': {
            'skip_download': True,
        },
    }]
    _WIDGET_REGEX = r'<div[^>]+class="[^"]*elementor-widget-video(?:-playlist)?[^"]*"[^>]*data-settings="([^"]*)"'

    def _extract_from_webpage(self, url, webpage):
        for data_settings in re.findall(self._WIDGET_REGEX, webpage):
            data = self._parse_json(data_settings, None, fatal=False, transform_source=unescapeHTML)
            if youtube_url := traverse_obj(data, ('youtube_url', {url_or_none})):
                yield self.url_result(youtube_url, ie=YoutubeIE)

            for video in traverse_obj(data, ('tabs', lambda _, v: v['_id'], {dict})):
                if youtube_url := traverse_obj(video, ('youtube_url', {url_or_none})):
                    yield self.url_result(youtube_url, ie=YoutubeIE)
                if vimeo_url := traverse_obj(video, ('vimeo_url', {url_or_none})):
                    yield self.url_result(vimeo_url, ie=VimeoIE)
                for direct_url in traverse_obj(video, (('hosted_url', 'external_url'), 'url', {url_or_none})):
                    yield {
                        'id': video['_id'],
                        'url': direct_url,
                        'title': video.get('title'),
                    }