parseEpisodeHeader function
- 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;
}