Video.fromMap constructor

Video.fromMap(
  1. Map<String, dynamic>? map
)

Implementation

factory Video.fromMap(Map<String, dynamic>? map) {
  if(map?.containsKey("videoRenderer")?? false){
    ///Trending and search videos
    var lengthText = map?['videoRenderer']?['lengthText'];
    var simpleText =
    map?['videoRenderer']?['shortViewCountText']?['simpleText'];
    return Video(
        videoId: map?['videoRenderer']?['videoId'],
        duration: (lengthText == null) ? "Live" : lengthText?['simpleText'],
        title: map?['videoRenderer']?['title']?['runs']?[0]?['text'],
        channelName: map?['videoRenderer']['longBylineText']['runs'][0]['text'],
        views: (lengthText == null)
            ? "Views " +
            map!['videoRenderer']['viewCountText']['runs'][0]['text']
            : simpleText);
  } else if (map?.containsKey("compactVideoRenderer")?? false){
    ///Related videos
    return Video(
      videoId: map?['compactVideoRenderer']['videoId'],
      title: map?['compactVideoRenderer']
      ?['title']?['simpleText'],
      duration: map?['compactVideoRenderer']
      ?['lengthText']?['simpleText'],
      thumbnail: map?['compactVideoRenderer']
      ['thumbnail']['thumbnails'][1]
      ['url'],
      channelName: map?['compactVideoRenderer']
      ?['shortBylineText']?['runs']
      ?[0]?['text'],
      views: map?['compactVideoRenderer']
      ?['viewCountText']?['simpleText']
    );
  } else if(map?.containsKey("gridVideoRenderer")?? false) {
    String? simpleText = map?['gridVideoRenderer']
    ['shortViewCountText']?['simpleText'];
    return Video(
        videoId: map?['gridVideoRenderer']['videoId'],
        title: map?['gridVideoRenderer']['title']['runs'][0]
        ['text'],
        duration: map?['gridVideoRenderer']['thumbnailOverlays'][0]
        ['thumbnailOverlayTimeStatusRenderer']['text']['simpleText'],
        views: (simpleText != null) ? simpleText : "???"
    );
  }
  return Video();
}