parseWatchPlaylist function

List parseWatchPlaylist(
  1. List<JsonMap> results
)

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