parsePlaylistHeader function
- JsonMap response
Parses playlist header.
Implementation
JsonMap parsePlaylistHeader(JsonMap response) {
final playlist = <String, dynamic>{};
final editableHeader =
nav(response, [
...HEADER,
...EDITABLE_PLAYLIST_DETAIL_HEADER,
], nullIfAbsent: true)
as JsonMap?;
playlist['owned'] = editableHeader != null;
playlist['privacy'] = 'PUBLIC';
JsonMap? header;
if (editableHeader != null) {
header = nav(editableHeader, HEADER_DETAIL) as JsonMap?;
playlist['privacy'] =
((editableHeader['editHeader']
as JsonMap)['musicPlaylistEditHeaderRenderer']
as JsonMap)['privacy'];
} else {
header = nav(response, HEADER_DETAIL, nullIfAbsent: true) as JsonMap?;
header ??=
nav(response, [
...TWO_COLUMN_RENDERER,
...TAB_CONTENT,
...SECTION_LIST_ITEM,
...RESPONSIVE_HEADER,
])
as JsonMap?;
}
playlist.addAll(parsePlaylistHeaderMeta(header!));
if (playlist['thumbnails'] == null) {
playlist['thumbnails'] = nav(header, THUMBNAIL_CROPPED, nullIfAbsent: true);
}
playlist['description'] = nav(header, [
'description',
...DESCRIPTION_SHELF,
...DESCRIPTION,
], nullIfAbsent: true);
playlist['year'] = nav(header, SUBTITLE2);
return playlist;
}