parseEpisodeHeader function

JsonMap parseEpisodeHeader(
  1. JsonMap header
)

Parses episode header.

Implementation

JsonMap parseEpisodeHeader(JsonMap header) {
  final metadata = parseBaseHeader(header);
  metadata['date'] = nav(header, [...SUBTITLE]);
  final progressRenderer = nav(header, ['progress', ...PROGRESS_RENDERER]);
  metadata['duration'] = nav(
    progressRenderer,
    DURATION_TEXT,
    nullIfAbsent: true,
  );
  metadata['progressPercentage'] = nav(progressRenderer, [
    'playbackProgressPercentage',
  ]);
  metadata['saved'] =
      nav(header, ['buttons', 0, ...TOGGLED_BUTTON], nullIfAbsent: true) ??
      false;

  metadata['playlistId'] = null;
  final menuButtons = nav(header, ['buttons', -1, 'menuRenderer', 'items']);
  for (final button in menuButtons as Iterable) {
    if (nav(button, [MNIR, ...ICON_TYPE], nullIfAbsent: true) == 'BROADCAST') {
      metadata['playlistId'] = nav(button, [MNIR, ...NAVIGATION_BROWSE_ID]);
    }
  }

  return metadata;
}