VideoPage.fromMap constructor
Implementation
factory VideoPage.fromMap(Map<String, dynamic>? map, String videoId) {
var likes = map?['results']['results']['contents'][0]
['videoPrimaryInfoRenderer']['videoActions']['menuRenderer']
['topLevelButtons'][0];
var views = map?['results']['results']['contents'][0]
['videoPrimaryInfoRenderer']['viewCount']['videoViewCountRenderer']
['viewCount'];
var oldViews = map?['results']['results']['contents'][0]
['videoPrimaryInfoRenderer']['viewCount']['videoViewCountRenderer']
['extraShortViewCount'];
String? viewers;
String? likers;
if (likes == []) {
likers = '0';
} else {
likers = likes['segmentedLikeDislikeButtonViewModel']
['likeButtonViewModel']['likeButtonViewModel']
['toggleButtonViewModel']['toggleButtonViewModel']
['defaultButtonViewModel']['buttonViewModel']['title'];
}
if (views != null) {
viewers = views['simpleText'];
} else if (oldViews != null) {
viewers = oldViews['simpleText'];
} else {
viewers = map?['results']['results']['contents'][0]
['videoPrimaryInfoRenderer']['viewCount']
['videoViewCountRenderer']['viewCount']['simpleText'];
}
String titleVideo = map?['results']['results']['contents'][0]
['videoPrimaryInfoRenderer']['title']['runs'][0]['text'] ??
'';
String channelNames = map?['results']['results']['contents'][1]
['videoSecondaryInfoRenderer']['owner']['videoOwnerRenderer']
['title']['runs'][0]['text'] ??
'';
String subscribeCounts = map?['results']?['results']?['contents']?[1]
?['videoSecondaryInfoRenderer']?['owner']?['videoOwnerRenderer']
?['subscriberCountText']?['simpleText'] ??
'';
String descriptions = map?['results']?['results']?['contents']?[1]
?['videoSecondaryInfoRenderer']?['attributedDescription']
?['content'] ??
'';
String dates = map?['results']['results']['contents'][0]
['videoPrimaryInfoRenderer']['dateText']['simpleText'] ??
'';
String channelThumbs = map?['results']['results']['contents'][1]
['videoSecondaryInfoRenderer']['owner']['videoOwnerRenderer']
['thumbnail']['thumbnails'][1]['url'] ??
'';
String channelIds = map?['results']['results']['contents'][1]
['videoSecondaryInfoRenderer']['owner']['videoOwnerRenderer']
['navigationEndpoint']['browseEndpoint']['browseId'] ??
'';
return VideoPage(
videoId: videoId,
title: titleVideo,
channelName: channelNames,
viewCount: viewers ?? '',
subscribeCount: subscribeCounts,
likeCount: likers ?? '',
unlikeCount: '',
description: descriptions,
date: dates,
channelThumb: channelThumbs,
channelId: channelIds,
);
}