- view_count = self._get_count(playlist_stats, 1)
- if view_count is None:
- view_count = self._get_count(playlist_header_renderer, 'viewCountText')
-
- playlist_count = self._get_count(playlist_stats, 0)
- if playlist_count is None:
- playlist_count = self._get_count(playlist_header_renderer, ('byline', 0, 'playlistBylineRenderer', 'text'))
-
- if title is None:
- title = self._get_text(data, ('header', 'hashtagHeaderRenderer', 'hashtag')) or playlist_id
- title += format_field(selected_tab, 'title', ' - %s')
- title += format_field(selected_tab, 'expandedText', ' - %s')
-
- metadata = {
- 'playlist_id': playlist_id,
- 'playlist_title': title,
- 'playlist_description': description,
- 'uploader': channel_name,
- 'uploader_id': channel_id,
- 'uploader_url': channel_url,
- 'thumbnails': (primary_thumbnails or playlist_thumbnails) + avatar_thumbnails + channel_banners,
- 'tags': tags,
- 'view_count': view_count,
- 'availability': self._extract_availability(data),
- 'modified_date': strftime_or_none(last_updated_unix, '%Y%m%d'),
- 'playlist_count': playlist_count,
- 'channel_follower_count': self._get_count(data, ('header', ..., 'subscriberCountText')),
- }
- if not channel_id:
+ info['view_count'] = self._get_count(playlist_stats, 1)
+ if info['view_count'] is None: # 0 is allowed
+ info['view_count'] = self._get_count(playlist_header_renderer, 'viewCountText')
+
+ info['playlist_count'] = self._get_count(playlist_stats, 0)
+ if info['playlist_count'] is None: # 0 is allowed
+ info['playlist_count'] = self._get_count(playlist_header_renderer, ('byline', 0, 'playlistBylineRenderer', 'text'))
+
+ if not info.get('uploader_id'):