parseWatchPlaylist function
Parses a list of watch playlist results
into a list of track maps.
Implementation
List parseWatchPlaylist(List<JsonMap> results) {
final List tracks = [];
const String PPVWR = 'playlistPanelVideoWrapperRenderer';
const String PPVR = 'playlistPanelVideoRenderer';
for (var result in results) {
JsonMap? counterpart;
if (result.containsKey(PPVWR)) {
counterpart =
((((result[PPVWR] as JsonMap?)!['counterpart'] as List)[0]
as JsonMap)['counterpartRenderer']
as JsonMap)[PPVR]
as JsonMap?;
result = (result[PPVWR] as JsonMap?)!['primaryRenderer'] as JsonMap;
}
if (!result.containsKey(PPVR)) {
continue;
}
final data = result[PPVR] as JsonMap;
if (data.containsKey('unplayableText')) {
continue;
}
final track = parseWatchTrack(data);
if (counterpart != null) {
track['counterpart'] = parseWatchTrack(counterpart);
}
tracks.add(track);
}
return tracks;
}