class YouTubeSearchResponse { String kind; String etag; String nextPageToken; String regionCode; PageInfo pageInfo; List items; int errorCode; String errorMessage; YouTubeSearchResponse({this.kind, this.etag, this.nextPageToken, this.regionCode, this.pageInfo, this.items,this.errorCode = 0, this.errorMessage = ''}); YouTubeSearchResponse.fromJson(Map json) { kind = json['kind'] ?? ''; etag = json['etag'] ?? ''; nextPageToken = json['nextPageToken'] ?? ''; regionCode = json['regionCode'] ?? ''; pageInfo = json['pageInfo'] != null ? new PageInfo.fromJson(json['pageInfo']) : null; if (json['items'] != null) { items = new List(); json['items'].forEach((v) { items.add(new YouTubeItems.fromJson(v)); }); } errorCode = 0; errorMessage = ''; } } class PageInfo { int totalResults; int resultsPerPage; PageInfo({this.totalResults, this.resultsPerPage}); PageInfo.fromJson(Map json) { totalResults = json['totalResults']; resultsPerPage = json['resultsPerPage']; } Map toJson() { final Map data = new Map(); data['totalResults'] = this.totalResults; data['resultsPerPage'] = this.resultsPerPage; return data; } } class YouTubeItems { String kind; String etag; Id id; Snippet snippet; YouTubeItems({this.kind, this.etag, this.id, this.snippet}); YouTubeItems.fromJson(Map json) { kind = json['kind']; etag = json['etag']; id = json['id'] != null ? new Id.fromJson(json['id']) : null; snippet = json['snippet'] != null ? new Snippet.fromJson(json['snippet']) : null; } Map toJson() { final Map data = new Map(); data['kind'] = this.kind; data['etag'] = this.etag; if (this.id != null) { data['id'] = this.id.toJson(); } if (this.snippet != null) { data['snippet'] = this.snippet.toJson(); } return data; } } class Id { String kind; String videoId; Id({this.kind, this.videoId}); Id.fromJson(Map json) { kind = json['kind']; videoId = json['videoId']; } Map toJson() { final Map data = new Map(); data['kind'] = this.kind; data['videoId'] = this.videoId; return data; } } class Snippet { String publishedAt; String channelId; String title; String description; Thumbnails thumbnails; String channelTitle; String liveBroadcastContent; String publishTime; Snippet({this.publishedAt, this.channelId, this.title, this.description, this.thumbnails, this.channelTitle, this.liveBroadcastContent, this.publishTime}); Snippet.fromJson(Map json) { publishedAt = json['publishedAt']; channelId = json['channelId']; title = json['title']; description = json['description']; thumbnails = json['thumbnails'] != null ? new Thumbnails.fromJson(json['thumbnails']) : null; channelTitle = json['channelTitle']; liveBroadcastContent = json['liveBroadcastContent']; publishTime = json['publishTime']; } Map toJson() { final Map data = new Map(); data['publishedAt'] = this.publishedAt; data['channelId'] = this.channelId; data['title'] = this.title; data['description'] = this.description; if (this.thumbnails != null) { data['thumbnails'] = this.thumbnails.toJson(); } data['channelTitle'] = this.channelTitle; data['liveBroadcastContent'] = this.liveBroadcastContent; data['publishTime'] = this.publishTime; return data; } } class Thumbnails { ThumbDefault thumbDefault; ThumbDefault medium; ThumbDefault high; Thumbnails({this.thumbDefault, this.medium, this.high}); Thumbnails.fromJson(Map json) { thumbDefault = json['default'] != null ? new ThumbDefault.fromJson(json['default']) : null; medium = json['medium'] != null ? new ThumbDefault.fromJson(json['medium']) : null; high = json['high'] != null ? new ThumbDefault.fromJson(json['high']) : null; } Map toJson() { final Map data = new Map(); if (this.thumbDefault != null) { data['default'] = this.thumbDefault.toJson(); } if (this.medium != null) { data['medium'] = this.medium.toJson(); } if (this.high != null) { data['high'] = this.high.toJson(); } return data; } } class ThumbDefault { String url; int width; int height; ThumbDefault({this.url, this.width, this.height}); ThumbDefault.fromJson(Map json) { url = json['url']; width = json['width']; height = json['height']; } Map toJson() { final Map data = new Map(); data['url'] = this.url; data['width'] = this.width; data['height'] = this.height; return data; } }