Skip to content

Instantly share code, notes, and snippets.

@k4Shinigami
Created January 28, 2019 19:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save k4Shinigami/5f68b111c51c7184abb4ee8c92543e70 to your computer and use it in GitHub Desktop.
Save k4Shinigami/5f68b111c51c7184abb4ee8c92543e70 to your computer and use it in GitHub Desktop.
how to fetch all videos from youtube channel using their api

Example with sample payload and sesponses:

Step 1: Channel ID = UC_x5XG1OV2P6uZZ5FSM9Ttw

Step 2:

Request : https://developers.google.com/youtube/v3/docs/channels/list?part=snippet,contentDetails&id=UC_x5XG1OV2P6uZZ5FSM9Ttw

/**
* API response
*/ 
{
"kind": "youtube#channelListResponse",
"etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/C37ATq0VxKAj9hd-S1lhvVAvLIM\"",
"pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
},
"items": [
  {
    "kind": "youtube#channel",
    "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/LbChyAR0fsfbZrDfiUigT0NBN-g\"",
    "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "snippet": {
      "title": "Google Developers",
      "description": "The Google Developers channel features talks from events, educational series, best practices, tips, and the latest updates across our products and platforms.",
      "customUrl": "googledevelopers",
      "publishedAt": "2007-08-23T00:34:43.000Z",
      "thumbnails": {
        "default": {
          "url": "https://yt3.ggpht.com/a-/AAuE7mAR_Pc0M1BkI4_Cjllw0VG3PJYs7ikMN1Avwg=s88-mo-c-c0xffffffff-rj-k-no",
          "width": 88,
          "height": 88
        },
        "medium": {
          "url": "https://yt3.ggpht.com/a-/AAuE7mAR_Pc0M1BkI4_Cjllw0VG3PJYs7ikMN1Avwg=s240-mo-c-c0xffffffff-rj-k-no",
          "width": 240,
          "height": 240
        },
        "high": {
          "url": "https://yt3.ggpht.com/a-/AAuE7mAR_Pc0M1BkI4_Cjllw0VG3PJYs7ikMN1Avwg=s800-mo-c-c0xffffffff-rj-k-no",
          "width": 800,
          "height": 800
        }
      },
      "localized": {
        "title": "Google Developers",
        "description": "The Google Developers channel features talks from events, educational series, best practices, tips, and the latest updates across our products and platforms."
      }
    },
    "contentDetails": {
      "relatedPlaylists": {
        "uploads": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "watchHistory": "HL",
        "watchLater": "WL"
      }
    }
  }
]
}

Step 3:

Use the contentDetails.relatedPlaylists.uploads to get the uploaded videos playlistId. Use it in the following request:

Request : https://developers.google.com/youtube/v3/docs/playlistItems/list?part=snippet,contentDetails&maxResults=25&playlistId=UU_x5XG1OV2P6uZZ5FSM9Ttw

/**
 * API response
 */
{
  "kind": "youtube#playlistItemListResponse",
  "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/1v8UnxSFVBMfg_fYjz5jliNtqIU\"",
  "nextPageToken": "CBkQAA",
  "pageInfo": {
    "totalResults": 4879,
    "resultsPerPage": 25
  },
  "items": [
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Mz3DVvhjEo3NOtGM2BUs44Y9bjo\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Ljk4OTJORE5sZTJF",
      "snippet": {
        "publishedAt": "2019-01-25T00:01:44.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Android Studio 3.3, introducing Feast: a feature store for ML, NVIDIA Tesla T4 GPUs, & more!",
        "description": "TL;DR 142 | The Google Developer Show\n\nAndroid Studio 3.3 → http://bit.ly/2Dy68KQ\nGet your Android apps ready for 64-bit → http://bit.ly/2DyGllP\nFeast: open source feature store for machine learning  → http://bit.ly/2FJaK32\nGo on Cloud Functions  → http://bit.ly/2SbMzjS\nNVIDIA Tesla T4 GPUs now in beta → http://bit.ly/2FM0tmX\nSoft Actor-Critic: Deep Reinforcement Learning for Robotics →  http://bit.ly/2UlpHfd\nGoogle Summer of Code 2019 →  http://bit.ly/2HxM3Z6\n\nHere to bring you the latest developer news from across Google is Developer Advocate Florina Muntenescu (https://twitter.com/fmuntenescu).\n\n\nTune in every week for a new episode, and let us know what you think of the latest announcements in the comments below! 😃\n\nWatch more #DevShow → http://bit.ly/2KWNldh\nSubscribe to Google Developers → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/9892NDNle2E/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/9892NDNle2E/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/9892NDNle2E/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/9892NDNle2E/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/9892NDNle2E/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 0,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "9892NDNle2E"
        }
      },
      "contentDetails": {
        "videoId": "9892NDNle2E",
        "videoPublishedAt": "2019-01-25T00:01:44.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/KeVP8ECk67VIoGIjRi84vfnqNO8\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LlgzV3I3cFNPUlNj",
      "snippet": {
        "publishedAt": "2019-01-23T18:01:04.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Incorporating Web View into Your App (The Boring Flutter Development Show, Ep. 14)",
        "description": "Matt and Emily start out this episode of the Boring Show by answering a handful of Flutter questions. They discuss e-commerce apps, applying padding and spacer for your app layout, when to use viewmodel, and more. Remember to ask your flutter questions in the comments or by using #BoringShow on Twitter! \n\nIn the remaining 40 minutes, Matt and Emily dive back into the Hacker News reader app (9:30). They work through incorporating web view into the app so that users can view web content from within the reader app - this eliminates the need to bounce back and forth between reader app and browser.\n\n(Also, stay tuned for the new Flutter YouTube channel coming soon!)\n\nFilip’s GitHub → https://bit.ly/2MqwDEW\nSource Code for Hacker News reader app → https://bit.ly/2FSKLFC\nFlutter Samples → https://bit.ly/2R8SeCq\nFilip’s State Experiments → https://bit.ly/2ATIlDh\n\n\nLink to previous episode → https://bit.ly/2HsfJqN\n\nWatch more episodes of the boring show here → https://bit.ly/BoringShow\n\nGet started with Flutter → https://flutter.io\nTry a Flutter codelab → https://goo.gl/d3fHPo\nJoin the conversation → https://goo.gl/68oUnb\n\nSubscribe to the Google Developers channel → https://goo.gl/mQyv5L",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/X3Wr7pSORSc/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/X3Wr7pSORSc/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/X3Wr7pSORSc/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/X3Wr7pSORSc/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/X3Wr7pSORSc/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 1,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "X3Wr7pSORSc"
        }
      },
      "contentDetails": {
        "videoId": "X3Wr7pSORSc",
        "videoPublishedAt": "2019-01-23T18:01:04.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/IkGnw7qsaskmifn6sZxeL8seDVg\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Lk91LWd1bG5Oa2FF",
      "snippet": {
        "publishedAt": "2019-01-19T00:36:58.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Google and NXP advance artificial intelligence with the Edge TPU",
        "description": "At CES, the Google AIY team shared how it’s advancing AI at the edge with the new Edge TPU chip, integrated with an NXP i.MX8 processor. \n\nAdd accelerated ML to your embedded device with the Edge TPU →  http://g.co/aiy\n\nSubscribe to the Google Developers channel! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/Ou-gulnNkaE/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/Ou-gulnNkaE/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/Ou-gulnNkaE/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/Ou-gulnNkaE/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/Ou-gulnNkaE/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 2,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "Ou-gulnNkaE"
        }
      },
      "contentDetails": {
        "videoId": "Ou-gulnNkaE",
        "videoPublishedAt": "2019-01-19T00:36:58.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Y9RgSlT9hdOqdYcGLWLqjCh7g0I\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Ljl6X1lObFJsV2ZB",
      "snippet": {
        "publishedAt": "2019-01-22T18:43:48.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Transform (Flutter Widget of the Week)",
        "description": "Transform your Flutter app into something amazing using the Transform widget.\n\n“Perspective on Flutter” article → https://bit.ly/2TYvc31\n“Menu icon rotated” courtesy Raouf Rahiche → https://bit.ly/2RE8fFC\n“Folding animated transition”, “bouncy carousel”, “cool card menu” courtesy FaoB → https://bit.ly/2Rzq1tE\n“3D perspective animation” courtesy Hung HD → https://bit.ly/2sx6fjy\n\nThis video is also subtitled in Chinese, Indonesian, Italian, French, German, Japanese, Korean, Portuguese, and Spanish.\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/9z_YNlRlWfA/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/9z_YNlRlWfA/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/9z_YNlRlWfA/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/9z_YNlRlWfA/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/9z_YNlRlWfA/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 3,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "9z_YNlRlWfA"
        }
      },
      "contentDetails": {
        "videoId": "9z_YNlRlWfA",
        "videoPublishedAt": "2019-01-22T18:43:48.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/fI9bSrjStgCj8wdrCak_FCIoO6A\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LlJaR0NhMElqckk0",
      "snippet": {
        "publishedAt": "2019-01-18T18:56:17.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Prototype and Validate",
        "description": "In this episode of Engineering Everyday Equity, Anthony and Ralfael talk about the prototype and validation phase of the design process to achieve equity, diversity, and inclusiveness in the workplace and in the product. Watch the video to learn more about the effectiveness of remote testing with the intention to meet the users need in their own community. \n\nReference links:\nDiversity at Google → http://bit.ly/2xFZ3V8   \nBuilding a Design Culture of Inclusion → http://bit.ly/2raEtIO \nWomen of Silicon Valley (WSV) → http://bit.ly/2QXUZrw\nWSV Facebook Page → http://bit.ly/2Ig1otX  \n\nWatch other videos in the playlist → http://bit.ly/2RS8SuA  \nFor latest updates and releases, remember to subscribe! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/RZGCa0IjrI4/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/RZGCa0IjrI4/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/RZGCa0IjrI4/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/RZGCa0IjrI4/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/RZGCa0IjrI4/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 4,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "RZGCa0IjrI4"
        }
      },
      "contentDetails": {
        "videoId": "RZGCa0IjrI4",
        "videoPublishedAt": "2019-01-18T18:56:17.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/bXNRlj4jcY-1f4xum0Jnv8M95bU\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LnQtM09SMVpuMnVv",
      "snippet": {
        "publishedAt": "2019-01-18T00:19:41.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Easier Kubernetes development, and new BigQuery UI features",
        "description": "The Google Developer Show: TL;DR 141\n\nEasier Kubernetes development from your laptop → http://bit.ly/2FzHzzx\n\nNew BigQuery UI features help you work faster → http://bit.ly/2U0w2fR\n\n\nThe Google Developer Show brings you the latest developer news from across Google. Your host for this week is Developer Advocate Timothy Jordan (https://twitter.com/timothyjordan). Expect a new Dev Show episode every week, and let us know what you think of the latest announcements in the comments below!\n\n\n\nWatch more in this playlist → http://bit.ly/2KWNldh\nSubscribe to the Google Devs channel! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/t-3OR1Zn2uo/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/t-3OR1Zn2uo/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/t-3OR1Zn2uo/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/t-3OR1Zn2uo/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/t-3OR1Zn2uo/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 5,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "t-3OR1Zn2uo"
        }
      },
      "contentDetails": {
        "videoId": "t-3OR1Zn2uo",
        "videoPublishedAt": "2019-01-18T00:19:41.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/vnAA2JVRcvUa4-Q6U90Skyo45yk\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LjdSWlJZRFhjN2Vn",
      "snippet": {
        "publishedAt": "2019-01-11T00:07:58.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Chrome 72 Beta, Cloud DNS forwarding, Cloud SQL, & more!",
        "description": "The Google Developers Show: Episode TL;DR 140\n\nCloud DNS forwarding → http://bit.ly/2RFNTLv\nCloud SQL → http://bit.ly/2Fpz1KC\nPython 3.7 for App Engine → http://bit.ly/2RLocZO\nCloud Spanner → http://bit.ly/2Cfd4e8\nChrome 72 Beta → http://bit.ly/2FtwhMv\n\nThe Google Developer Show brings you the latest developer news from across Google. Your host for this week is Developer Advocate Jen Person (https://twitter.com/thatjenperson). Expect a new Dev Show episode every week, and let us know what you think of the latest announcements in the comments below!\n\nWatch more episodes in this playlist → http://bit.ly/2KWNldh\nSubscribe to the Google Devs channel! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/7RZRYDXc7eg/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/7RZRYDXc7eg/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/7RZRYDXc7eg/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/7RZRYDXc7eg/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/7RZRYDXc7eg/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 6,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "7RZRYDXc7eg"
        }
      },
      "contentDetails": {
        "videoId": "7RZRYDXc7eg",
        "videoPublishedAt": "2019-01-11T00:07:58.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/SapMiGcWT3vu7AqFqKg1K8HbHDA\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Lm5HbGg0U1Zyc0Zn",
      "snippet": {
        "publishedAt": "2019-01-09T22:10:57.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Influencing the Flutter SDK (The Boring Flutter Development Show, Ep. 13)",
        "description": "In this episode of The Boring Flutter Development Show, Filip and Andrew talk about the ways you can influence the work done on the Flutter SDK by filing bug reports and voting for new features. Along the way, you'll watch them file a complete bug report with steps to reproduce and screenshots, learn where to go to see Flutter's open projects, and find out how to push for the features you'd like to see in the SDK!\n\nLink to previous episode → https://bit.ly/2C4Eao5\n\nWatch more episodes of the boring show here → https://bit.ly/BoringShow\n\nGet started with Flutter → https://flutter.io\nTry a Flutter codelab → https://goo.gl/d3fHPo\nJoin the conversation → https://goo.gl/68oUnb\n\nSubscribe to the Google Developers channel → https://goo.gl/mQyv5L",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/nGlh4SVrsFg/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/nGlh4SVrsFg/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/nGlh4SVrsFg/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/nGlh4SVrsFg/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/nGlh4SVrsFg/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 7,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "nGlh4SVrsFg"
        }
      },
      "contentDetails": {
        "videoId": "nGlh4SVrsFg",
        "videoPublishedAt": "2019-01-09T22:10:57.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Pw2dUYBUZxMhWy_wmeGzt-3onH8\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LjY1SG9XcUJib0k4",
      "snippet": {
        "publishedAt": "2019-01-15T18:07:28.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "AbsorbPointer (Flutter Widget of the Week)",
        "description": "AbsorbPointer offers a great way to block taps from getting to your widgets. If you have a complicated subtree of widgets and you need a way to wall them all off from touch events, try AbsorbPointer.\n\nThis video is also subtitled in Chinese, Indonesian, Italian, French, German, Japanese, Korean, Portuguese, and Spanish.\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/65HoWqBboI8/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/65HoWqBboI8/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/65HoWqBboI8/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/65HoWqBboI8/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/65HoWqBboI8/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 8,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "65HoWqBboI8"
        }
      },
      "contentDetails": {
        "videoId": "65HoWqBboI8",
        "videoPublishedAt": "2019-01-15T18:07:28.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Py4tnWnHNjQTvpGKzstMsaVWQVs\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LklZRFZjcmlLanN3",
      "snippet": {
        "publishedAt": "2019-01-08T18:04:52.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "LayoutBuilder (Flutter Widget of the Week)",
        "description": "LayoutBuilder can help you see how big your widget is going to be before you finalize how it’s going to look. It’s builder function has parameters for build context and the incoming box constraints.\n\nThis video is also subtitled in Chinese, Indonesian, Italian, French, German, Japanese, Korean, Portuguese, and Spanish\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/IYDVcriKjsw/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/IYDVcriKjsw/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/IYDVcriKjsw/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/IYDVcriKjsw/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/IYDVcriKjsw/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 9,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "IYDVcriKjsw"
        }
      },
      "contentDetails": {
        "videoId": "IYDVcriKjsw",
        "videoPublishedAt": "2019-01-08T18:04:52.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/P6Cp9r6Dfu-6PzqQ4JgSnaEVoX4\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LktZQ3JPY1FNWHNZ",
      "snippet": {
        "publishedAt": "2019-01-09T14:00:03.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Introducing Women Techmakers… in 60 Seconds!",
        "description": "Welcome to Women Techmakers in 60 Seconds! This series is hosted by women techmakers, both from within and outside Google. The goal of these episodes is to explain topics and technologies in a quick and concise format. We hope you enjoy it.\n\nWatch more episodes of Women Techmakers in 60 seconds! → http://bit.ly/2JrwfV5\n\nSubscribe for more content like this → http://bit.ly/WomenTechmakers1",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/KYCrOcQMXsY/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/KYCrOcQMXsY/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/KYCrOcQMXsY/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/KYCrOcQMXsY/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/KYCrOcQMXsY/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 10,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "KYCrOcQMXsY"
        }
      },
      "contentDetails": {
        "videoId": "KYCrOcQMXsY",
        "videoPublishedAt": "2019-01-09T14:00:03.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/oIngu7P_M1grwR5xzB-fn-Wl7Z8\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Lkt6cnNwZFR4d0xj",
      "snippet": {
        "publishedAt": "2018-12-28T21:23:39.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "The ABCs of Inclusive Product Design",
        "description": "In this episode of Engineering Everyday Equity, Anthony, and Livvie discuss the “understanding phase” of the design process to achieve equity, diversity, and inclusiveness in both your workplace, and your product. Watch to get familiarized with the ABC’s of inclusive product design.\n\nWatch episode 1 here → http://bit.ly/2BFps8a \n\nReference links:\nDiversity at Google → http://bit.ly/2xFZ3V8   \nBuilding a Design Culture of Inclusion → http://bit.ly/2raEtIO \nWomen of Silicon Valley (WSV) → http://bit.ly/2QXUZrw\nWSV Facebook page → http://bit.ly/2Ig1otX  \n\nWatch other videos in the playlist → http://bit.ly/2RS8SuA  \n\nFor the latest updates & releases, remember to subscribe! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/KzrspdTxwLc/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/KzrspdTxwLc/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/KzrspdTxwLc/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/KzrspdTxwLc/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/KzrspdTxwLc/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 11,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "KzrspdTxwLc"
        }
      },
      "contentDetails": {
        "videoId": "KzrspdTxwLc",
        "videoPublishedAt": "2018-12-28T21:23:39.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/DgxBLTReusFGDN4sgch4qvUFBQ8\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LmlnYmloVXphY3hr",
      "snippet": {
        "publishedAt": "2018-12-29T17:29:52.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Top 5 Liked Flutter Features",
        "description": "Martin and Emily discuss 5 most appreciated features of Flutter: stateful hot reload, the single codebase, fast app performance, native look and feel, and consistent UI rendering across devices.\n\nAll talks from Flutter Live are available in this playlist → https://bit.ly/Flutter-Talks\n\nLearn more about Flutter and get started at https://flutter.io/\n\nSubscribe to the Google Developers channel for more content like this! → https://bit.ly/Google-Developers",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/igbihUzacxk/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/igbihUzacxk/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/igbihUzacxk/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/igbihUzacxk/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/igbihUzacxk/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 12,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "igbihUzacxk"
        }
      },
      "contentDetails": {
        "videoId": "igbihUzacxk",
        "videoPublishedAt": "2018-12-29T17:29:52.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/jzhg9hjhDCb7F7X5TqeTu_86Y4Y\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LlQ0VWVoazNfd2xZ",
      "snippet": {
        "publishedAt": "2019-01-01T17:30:10.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "FittedBox (Flutter Widget of the Week)",
        "description": "Most Flutter widgets are boxes. FittedBox helps with managing the space constraints and layout of your boxes.\n\nThis video is also subtitled in Chinese, Indonesian, Italian, French, German, Japanese, Korean, Portuguese, and Spanish.\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/T4Uehk3_wlY/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/T4Uehk3_wlY/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/T4Uehk3_wlY/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/T4Uehk3_wlY/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/T4Uehk3_wlY/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 13,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "T4Uehk3_wlY"
        }
      },
      "contentDetails": {
        "videoId": "T4Uehk3_wlY",
        "videoPublishedAt": "2019-01-01T17:30:10.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/aX5aJnzVTicrusiaE2t4Oe6_Y5g\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Lk8yX0EwVmlYMlBn",
      "snippet": {
        "publishedAt": "2018-12-20T20:13:36.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Conversation Design Principles - Lightning Talk with Peter Hodgson",
        "description": "Conversation design is a design language based on human conversation. It is the creation of a conversational experience that considers both the user’s needs and the technological constraints. Watch the video to grasp the three main principles and the five essential design tips in designing a conversation. \n\nConversation Design Overview → http://bit.ly/2CA6IIV \n\nWatch Episode 1 of the Lightning Talk: Designing a Persona → http://bit.ly/2DNNKyf \n\nWatch other videos in the playlist here → http://bit.ly/2A6Q00W\nFor more updates and releases, remember to subscribe to the channel → http://bit.ly/googledev",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/O2_A0ViX2Pg/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/O2_A0ViX2Pg/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/O2_A0ViX2Pg/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/O2_A0ViX2Pg/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/O2_A0ViX2Pg/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 14,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "O2_A0ViX2Pg"
        }
      },
      "contentDetails": {
        "videoId": "O2_A0ViX2Pg",
        "videoPublishedAt": "2018-12-20T20:13:36.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/CiRXmv4uReZeGYTIAH_ymVBtCUc\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LkVlRWZENWZJLTVR",
      "snippet": {
        "publishedAt": "2018-12-27T21:21:06.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Tooltip (Flutter Widget of the Week)",
        "description": "Apps often use iconography to convey meaning. Wrap your icons and images with Tooltips to attach Tooltip messages that improve accessibility and provide more context.\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/EeEfD5fI-5Q/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/EeEfD5fI-5Q/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/EeEfD5fI-5Q/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/EeEfD5fI-5Q/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/EeEfD5fI-5Q/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 15,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "EeEfD5fI-5Q"
        }
      },
      "contentDetails": {
        "videoId": "EeEfD5fI-5Q",
        "videoPublishedAt": "2018-12-27T21:21:06.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/csicm8EHyMHA_tnifhCC2kRjPDw\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LmtwMTRZNHVIcEhz",
      "snippet": {
        "publishedAt": "2018-12-18T19:16:44.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "CustomPaint (Flutter Widget of the Week)",
        "description": "Want a very custom user interface? Flutter provides access to many low-level paint calls that are fast and efficient. Learn more about CustomPaint() in this episode.\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/kp14Y4uHpHs/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/kp14Y4uHpHs/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/kp14Y4uHpHs/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/kp14Y4uHpHs/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/kp14Y4uHpHs/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 16,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "kp14Y4uHpHs"
        }
      },
      "contentDetails": {
        "videoId": "kp14Y4uHpHs",
        "videoPublishedAt": "2018-12-18T19:16:44.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/u4DEAJnQpGB9ZJct-zpeJaaTsRc\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LmtKYmRXc1ZtcnIw",
      "snippet": {
        "publishedAt": "2018-12-13T23:26:29.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Flutter 1.0 release, ARCore & Sceneform updates, Android Codelabs , Drive APIs, & more!",
        "description": "The Google Developers Show: Episode TL;DR 139\n\nFlutter Live announcements:\n     Flutter 1.0: Google’s Portable UI Toolkit → http://bit.ly/2UBpy86\n     Flutter Live Top 5 Recap → http://bit.ly/2FWKcMN\n     Flutter Live Talks → https://bit.ly/Flutter-Talks\nUpdates to ARCore & Sceneform → http://bit.ly/2UF8kqs\nAndroid Codelabs courses → http://bit.ly/2EsnTNx\nGoogle Drive APIs:\n     Google Drive Activity API → http://bit.ly/2rCgzWR\n     Google Drive Android API → http://bit.ly/2QSvB9g\nCloud Security Command Center → http://bit.ly/2GhkLWx\nIntroducing Cloud IoT Core commands → http://bit.ly/2Ew3MOz\nGoogle at NeurIPS 2018 → http://bit.ly/2EuNFR9\nTF-Ranking → http://bit.ly/2Enu0S6\n\nThe Google Developer Show brings you the latest developer news from across Google. Your host for this week is Developer Advocate Timothy Jordan (http://bit.ly/2Bjasvn). Expect a new dev show episode every week, and let us know what you think of the latest announcements in the comments below!\n\nWatch more in this playlist → http://bit.ly/2KWNldh\nSubscribe to the Google Devs channel! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/kJbdWsVmrr0/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/kJbdWsVmrr0/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/kJbdWsVmrr0/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/kJbdWsVmrr0/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/kJbdWsVmrr0/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 17,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "kJbdWsVmrr0"
        }
      },
      "contentDetails": {
        "videoId": "kJbdWsVmrr0",
        "videoPublishedAt": "2018-12-13T23:26:29.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/ggLEjJ68wmY27HPACYM5IwkrmAs\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3Lk16M2tIUXhCakdn",
      "snippet": {
        "publishedAt": "2018-12-16T17:29:53.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Slivers Explained - Making Dynamic Layouts (The Boring Flutter Development Show, Ep. 12)",
        "description": "Filip speaks with Ian Hickson, Technical Lead for Flutter, all about Slivers. They explain what Slivers actually are and how they can let you create some fancy scrolling actions and dynamic layouts. Watch this episode of the #BoringShow to dive into a more specialized topic for Flutter. \n\nLink to previous episode → https://bit.ly/2SCLRbF\n\nWatch more episodes of the boring show here → https://bit.ly/BoringShow\n\nGet started with Flutter → https://flutter.io\nTry a Flutter codelab → https://goo.gl/d3fHPo\nJoin the conversation → https://goo.gl/68oUnb\n\nSubscribe to the Google Developers channel → https://goo.gl/mQyv5L",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/Mz3kHQxBjGg/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/Mz3kHQxBjGg/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/Mz3kHQxBjGg/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/Mz3kHQxBjGg/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/Mz3kHQxBjGg/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 18,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "Mz3kHQxBjGg"
        }
      },
      "contentDetails": {
        "videoId": "Mz3kHQxBjGg",
        "videoPublishedAt": "2018-12-16T17:29:53.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/x4Y9VqFBBYQYntenwad5YTkFOEI\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LkJlOVVIMWtYRkR3",
      "snippet": {
        "publishedAt": "2018-12-11T18:05:43.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Hero (Flutter Widget of the Week)",
        "description": "Hero transitions are a common UI pattern. They let the user know that they changed screens, while keeping the focus of the interaction front and center. Flutter’s Hero widget will automatically create a hero transition between two navigator routes.\n\nGet more tips! → https://bit.ly/2B8M3vG\n\nSubscribe! → https://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/Be9UH1kXFDw/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/Be9UH1kXFDw/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/Be9UH1kXFDw/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/Be9UH1kXFDw/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/Be9UH1kXFDw/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 19,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "Be9UH1kXFDw"
        }
      },
      "contentDetails": {
        "videoId": "Be9UH1kXFDw",
        "videoPublishedAt": "2018-12-11T18:05:43.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/b_vZ1ZChjrIi_TXMXgaKazuy-XU\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LnhoVlpaV21QaGxV",
      "snippet": {
        "publishedAt": "2018-12-14T17:12:10.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Flutter Performance, Flutter Games, Flutter Tooling, & More (#AskFlutter at Flutter Live)",
        "description": "In this #AskFlutter section, Andrew Brogdon and Wm Leler speak with Ian Hickson, Technical Lead for Flutter, and Devon Carew, Flutter Tooling expert. They discuss Flutter Performance, Flutter Games, Flutter Tooling,  and more!\n\nListView.builder docs → https://bit.ly/2BayyYO\n“Why Flutter Uses Dart” article → https://bit.ly/2G5OKAq\nIntelliJ Idea → https://bit.ly/2Gkm2Ma\n\nLearn more about Flutter and get started at https://flutter.io/\n\nAll talks from Flutter Live will be available in this playlist → https://bit.ly/Flutter-Talks\n\nSubscribe to the Google Developers channel for more content like this! → https://bit.ly/Google-Developers",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/xhVZZWmPhlU/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/xhVZZWmPhlU/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/xhVZZWmPhlU/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/xhVZZWmPhlU/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/xhVZZWmPhlU/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 20,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "xhVZZWmPhlU"
        }
      },
      "contentDetails": {
        "videoId": "xhVZZWmPhlU",
        "videoPublishedAt": "2018-12-14T17:12:10.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/XcWD4ZTF5qgV6ycqtgQtqqpjn1U\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LkZUb081cm9WN29j",
      "snippet": {
        "publishedAt": "2018-12-13T17:23:03.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Origin of Flutter, Dart 2.0, E-Commerce with Flutter, & More (#AskFlutter at Flutter Live)",
        "description": "In this #AskFlutter section, Andrew Brogdon and Wm Leler answer a bunch of questions - they also speak with Hillel Coren, Eric Seidel, Filip Hracek, and Simon Lightfoot. Some of their discussion covers the origin of Flutter, Dart 2.0, e-commerce with Flutter, embedding native UI into Flutter apps, and CI/CD options for Flutter apps.\n\n\n\"It's All Widgets!\" website → https://bit.ly/2rAmUCi\nFlutter sample app “Shrine” on GitHub → https://bit.ly/2GaX7La\nFlutter PlatformView docs → https://bit.ly/2QpaTP7\nCI/CD solution → https://codemagic.io/\nGitHub Flutter projects tab → https://bit.ly/2UxcDUN\nScoped_model → https://bit.ly/2EbtiaO\n\n\nLearn more about Flutter and get started at https://flutter.io/\n\nAll talks from Flutter Live will be available in this playlist → https://bit.ly/Flutter-Talks\n\nSubscribe to the Google Developers channel for more content like this! → https://bit.ly/Google-Developers",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/FToO5roV7oc/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/FToO5roV7oc/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/FToO5roV7oc/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/FToO5roV7oc/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/FToO5roV7oc/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 21,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "FToO5roV7oc"
        }
      },
      "contentDetails": {
        "videoId": "FToO5roV7oc",
        "videoPublishedAt": "2018-12-13T17:23:03.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/1jPtWFkx5NaJ_m2XNHQXZSIW4wY\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LmhHSHUxWUlJaF9z",
      "snippet": {
        "publishedAt": "2018-12-13T01:19:57.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Google Maps for Flutter, Platform Channels, Mobile Ads, & More - #AskFlutter at Flutter Live",
        "description": "In this #AskFlutter section, Andrew Brogdon and Wm Leler from the Flutter team answer questions from the Flutter community. They discuss topics like Google Maps for Flutter, how to use platform channels, which computers will be best to develop with Flutter, and how to become highly skilled with Flutter. Tune in to hear their answers to great questions!\n\nFlutter plugins on GitHub → https://bit.ly/2UEBnuq\nGoogle Maps plugin for Flutter → https://bit.ly/2QMOsT8\nInformation on platform channels → https://bit.ly/2C1PqD1\n\n\nLearn more about Flutter and get started at https://flutter.io/\n\nAll talks from Flutter Live will be available in this playlist → https://bit.ly/Flutter-Talks\n\nSubscribe to the Google Developers channel for more content like this! → https://bit.ly/Google-Developers",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/hGHu1YIIh_s/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/hGHu1YIIh_s/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/hGHu1YIIh_s/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/hGHu1YIIh_s/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/hGHu1YIIh_s/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 22,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "hGHu1YIIh_s"
        }
      },
      "contentDetails": {
        "videoId": "hGHu1YIIh_s",
        "videoPublishedAt": "2018-12-13T01:19:57.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Sl_EF40K_u2behvELZsW0cSenQQ\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LkRwQldrWWlTQnRR",
      "snippet": {
        "publishedAt": "2018-12-10T21:17:17.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Flutter Live Event Guides Highlights",
        "description": "Watch the highlights from the livestream pre-show of Flutter Live, hosted by Martin Aguinis and Emily Fortuna.\n\nAll talks from Flutter Live will be available in this playlist → https://bit.ly/Flutter-Talks\n\nLearn more about Flutter and get started at https://flutter.io/\n\nSubscribe to the Google Developers channel for more content like this! → https://bit.ly/Google-Developers",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/DpBWkYiSBtQ/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/DpBWkYiSBtQ/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/DpBWkYiSBtQ/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/DpBWkYiSBtQ/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/DpBWkYiSBtQ/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 23,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "DpBWkYiSBtQ"
        }
      },
      "contentDetails": {
        "videoId": "DpBWkYiSBtQ",
        "videoPublishedAt": "2018-12-10T21:17:17.000Z"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/613K2g21vpioxW57nLHio7DgXpo\"",
      "id": "VVVfeDVYRzFPVjJQNnVaWjVGU005VHR3LlhCLUsxNEFMMnpn",
      "snippet": {
        "publishedAt": "2018-12-06T22:31:16.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Fast Pair update, Android SDK Developers, Chrome 72 DevTools, & more!",
        "description": "The Google Developers Show: Episode TL;DR 138\n \nFast Pair Update →  http://bit.ly/2zHwxDG\nSDK Developers: stay up to date →  http://bit.ly/2rqHl4F\nNew GCP regions in Hong Kong and Jakarta →  http://bit.ly/2rnjvH1\nGoogle Data Studio with Crashlytics data →  http://bit.ly/2E6Jslt\nChrome 72 DevTools → http://bit.ly/2QAQsxY\n\n\n\nThe Google Developer Show brings you the latest developer news from across Google. Your host for this week is Developer Advocate Dan Galpin (https://twitter.com/dagalpin). Expect a new Dev Show episode every week, and let us know what you think of the latest announcements in the comments below!\n\nWatch more in this Dev Show playlist → http://bit.ly/2KWNldh\nSubscribe to the Google Devs channel! → http://bit.ly/googledevs",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/XB-K14AL2zg/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/XB-K14AL2zg/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/XB-K14AL2zg/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/XB-K14AL2zg/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/XB-K14AL2zg/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "Google Developers",
        "playlistId": "UU_x5XG1OV2P6uZZ5FSM9Ttw",
        "position": 24,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "XB-K14AL2zg"
        }
      },
      "contentDetails": {
        "videoId": "XB-K14AL2zg",
        "videoPublishedAt": "2018-12-06T22:31:16.000Z"
      }
    }
  ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment