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

Code before:
            'description': description,
            'uploader_id': uploader_id,
            'uploader_url': f'https://{uploader_id}.tumblr.com/' if uploader_id else None,
            'like_count': post_json.get('like_count'),
            'repost_count': post_json.get('reblog_count'),
            'age_limit': {True: 18, False: 0}.get(post_json.get('is_nsfw')),
            'tags': post_json.get('tags'),
        }

        # for tumblr's own video hosting
        fallback_format = None
        formats = []
        video_url = self._og_search_video_url(webpage, default=None)
        # for external video hosts
        entries = []
        ignored_providers = set()
        unknown_providers = set()

        video_jsons = (item for item in content_json if item.get('type') in ('video', 'audio'))
        if video_jsons:
            for video_json in video_jsons:
                media_json = video_json.get('media') or {}
                if api_only and not media_json.get('url') and not video_json.get('url'):
                    raise ExtractorError('Failed to find video data for dashboard-only post')
                provider = video_json.get('provider')
                is_provider_ambiguous = provider in self._ambiguous_providers

                if provider in ('tumblr', None):
                    fallback_format = {
                        'url': media_json.get('url') or video_url,
                        'width': int_or_none(
                            media_json.get('width') or self._og_search_property('video:width', webpage, default=None)),
                        'height': int_or_none(
                            media_json.get('height') or self._og_search_property('video:height', webpage, default=None)),
                    }
                    continue
                elif provider in self._unsupported_providers:
                    ignored_providers.add(provider)
                    continue
                elif provider and not is_provider_ambiguous and provider not in self._providers:
                    unknown_providers.add(provider)

                if video_json.get('url'):
                    # external video host
                    entries.append(self.url_result(
                        video_json['url'],
                        self._providers.get(provider, 'Generic') if not is_provider_ambiguous else None))

        duration = None

        # iframes can supply duration and sometimes additional formats, so check for one

Review comment (suggestion):
This can be removed if applying the above suggestion about folding `_ambiguous_providers` into `_providers`
```suggestion
```

Code after:
            description = self._og_search_description(webpage, default=None)
        uploader_id = traverse_obj(post_json, 'reblogged_root_name', 'blog_name')

        info_dict = {
            'id': video_id,
            'title': post_json.get('summary') or (blog if api_only else self._html_search_regex(
                r'(?s)<title>(?P<title>.*?)(?: \| Tumblr)?</title>', webpage, 'title', default=blog)),
            'description': description,
            'uploader_id': uploader_id,
            'uploader_url': f'https://{uploader_id}.tumblr.com/' if uploader_id else None,
            **traverse_obj(post_json, {
                'like_count': ('like_count', {int_or_none}),
                'repost_count': ('reblog_count', {int_or_none}),
                'tags': ('tags', ..., {str}),
            }),
            'age_limit': {True: 18, False: 0}.get(post_json.get('is_nsfw')),
        }

        # for tumblr's own video hosting
        fallback_format = None
        formats = []
        video_url = self._og_search_video_url(webpage, default=None)
        # for external video hosts
        entries = []
        ignored_providers = set()
        unknown_providers = set()

        for video_json in traverse_obj(content_json, lambda _, v: v['type'] in ('video', 'audio')):
            media_json = video_json.get('media') or {}
            if api_only and not media_json.get('url') and not video_json.get('url'):
                raise ExtractorError('Failed to find video data for dashboard-only post')
            provider = video_json.get('provider')

            if provider in ('tumblr', None):
                fallback_format = {
                    'url': media_json.get('url') or video_url,
                    'width': int_or_none(
                        media_json.get('width') or self._og_search_property('video:width', webpage, default=None)),
                    'height': int_or_none(
                        media_json.get('height') or self._og_search_property('video:height', webpage, default=None)),
                }
                continue
            elif provider in self._unsupported_providers:
                ignored_providers.add(provider)
                continue
            elif provider and provider not in self._providers:
                unknown_providers.add(provider)
            if video_json.get('url'):
                # external video host
                entries.append(self.url_result(
                    video_json['url'], self._providers.get(provider)))