What's New in Firebase (Google I/O'19)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[LOGO MUSIC] FRANCIS MA: Good morning, everyone. Thank you for joining us, whether you're here in the room or on the livestream. My name is Francis Ma. I lead the Firebase product team. It's been an incredible journey for Firebase over the past few years, and it's hard to believe that it's already been three years now since we relaunched Firebase as Google's app development platform. But, since then, our mission has remained the same-- to help mobile and web app developers, like many of you, succeed. And we do this by providing you a platform of tools and cloud services to simplify your app development workflow and infrastructure needs so that you can focus on building amazing user experiences. And it's an honor that so many of you trust us through this journey, whether you're a startup, tech unicorns, or enterprises. And recently, I heard about a startup in Uganda called Teheca. And Teheca's focused on reducing the mortality rates of infants and new mothers by connecting the parents with nurses for postnatal care. And it's amazing to hear what they're doing, and it's also very exciting to hear they're using Firebase to power their app. And it's stories like this and many others that motivates our team to continue to work hard to help developers like you succeed. And I feel we're just getting started here. Over the last six months, we've released over 100 new features and updates across the Firebase platform, and the feedback from the developer community has been incredibly valuable in shaping Firebase. So thank you, and please keep that coming. Now, over the next 30 minutes, we're going to talk about some of these new updates, as well as how Firebase can help you across the lifecycle of your app, from helping you build your app with fully managed backends, to helping you improve your app quality with testing and monitoring, as well as helping you engage your users with user insights. And so let's dive into it to talk about how Firebase can help you build your app more easily. Now, as you've heard, Google is committed to making AI available to every developer because we believe that AI is core to the next phase of how software is built. And with Firebase, we want to make machine learning easy to use so that anybody can bring ML into their app, regardless of their expertise. Now, last year, we launched ML Kit with a set of out-of-the-box APIs that worked on-device and in the cloud, as well as support for custom models. Now, these initial set of APIs were focused on machine vision, and over the past few months, we've expanded the APIs to support natural language processing, as well, with things like Language Identification and Smart Reply APIs. And just yesterday, we further expanded the sets with Object Detection and Tracking, as well as the Translation API. So the Object and Detection Tracking API allows you to track the most prominent object in a live video feed in real time. And the Translation API gives you the same capabilities as the Google Translate app in offline mode, and it works across 59 languages. Now, some of our partners have already seen early success with these APIs. As an example, IKEA. One of the largest retailers, with millions of products in the catalog, and what they've noticed is that increasingly, customers are using their smartphones to look up products while they're in store. And so they've partnered with us to build a visual search feature into their app using the Object Detection and Tracking API, as well as the Cloud Vision and Product Search API so that customers can pull out their phone to see what's in front of them while they're in store, and they can quickly identify the object, send that to the cloud to then look up the specific product SKU. This is really cool what the team has built, and I can't wait to see what many of you will do, as well. So, in addition to the out-of-the-box APIs that are easy to use, ML Kit also supports more specific use cases by enabling you to bring in your own custom TensorFlow Lite model, and also serve them through Google's cloud infrastructure. Now, while custom models can be extremely powerful, we've also heard from many of you that they can be challenging to get started to develop, and then sometimes even harder to optimize. And that's why we've taken a step to bring AutoML Vision Edge to Firebase to make this easier. With AutoML Vision Edge, you can now build and train custom TensorFlow Lite models to classify images with no ML or data science expertise needed. All you have to do is upload a set of image, click a button to train your model, and then publish it. To show you how this works, I'd like to invite my teammate Rachel to come and demo this on stage with us. [APPLAUSE] RACHEL MYERS: Hey, everyone. Thanks for sharing my laptop. So I've opened up the Firebase console for my project, and I've clicked into the ML Kit tab here, and then I opened up AutoML. I was inspired by the keynote and I'd like to create an app that will identify dog breeds from a photo. To start, I'm going to need a training data set of images that are labeled with the classifications that I want the ML model to learn. So I'm going to create-- whoa, not all caps. Just like that. And I'll upload my data set. And, while that's working-- so I'm taking a data set that's a ZIP file of images. And in the case of a ZIP file, the file names serve as the classification labels. I could also upload individual images or via Google Cloud Storage. So while this uploads, here's a project that has already uploaded. And I can look through and I can see the images. I can edit their labels if I need to. And then I can train the model. I have a few different options when I'm ready to train the model. In my case, I'm going to go with the middle ground here. This lets me balance between accuracy and speed. So I'll start that training. This model's going to train for a few hours, so here's one that has already been trained. And I can look through and I can see the results. The evaluation page for your model includes how certain the model is that it can distinguish between different labels. You'll know that your model's ready to use when the percentage of accuracy between different labels matches your thresholds for accuracy. When you're ready to use it, you have two different options. It can either be downloaded and bundled with your app, and that ensures that it's available offline, or it can be hosted and dynamically downloaded when it's needed. And that ensures that you have a small app size. So, returning to the slides-- thanks-- AutoML has put AI into the hands of Firebase developers. But you might be thinking, sure, it's easy to start training a model when you already have a labeled data set. Isn't getting that training data one of the hardest parts of ML? You're absolutely right, and we want to make that part easier, also. Imagine that you have a physical store and you want your customers to be able to identify items in your app as they walk through the store. To build that, you'll probably want to start with lots of real world data of your images-- real world images of your products. You'll probably want to ask several employees to collaborate on collecting that data, and you'll want to make it as easy as possible for them to collect Streamlining that entire workflow, we've created a custom classification image app that makes it easy for you to collaborate on collecting that training data. It's built using Flutter, Firebase, and Google Cloud, and it's available now on GitHub for you to clone down and start using. So I've done this. I've cloned it, I've built it, and I've installed the app. And now I'm going to show you how easy it was. Here's my phone. Can we show my phone? Can we display my Android? Is it not casting? Yeah? Thanks. So this is the new Android that everyone should go buy for I/O '19. And I'm going to collect some training data for this one to include it in my model that identifies mini figures. So, to make it easy to collect lots of real world data, we've created an app that lets you take a video and then a Google Cloud function will convert that video into individual frames. I'm going to take one more so it gets to see all sides, just like this. OK. So now I can see all of the individual images that it's taken, and now this will be included in my training data. That was easy. But you might be wondering, why are you giving an ML demo if you're not going to show us ML in action? And that's fair. So here's an Owl Android. It's already part of my trained model. And we're going to see-- this is the moment of truth-- if my model can identify it. Hm? We're going to try it one more time. Yay. OK, so it sees the Owl Android, and it's 89% sure. So there's another talk later today about ML features that Firebase is releasing. Back to you, Francis. FRANCIS MA: Thanks, Rachel. So, in addition to helping you build amazing ML features into your app, Firebase also provides fully managed backend infrastructure to help you build easier and faster on Google Cloud, from Firestore to Cloud Functions to hosting. So let's go over some of these new updates in more detail. We'll start with Firestore. First off, Firestore has graduated from beta to general availability in the recent months. We now offer a five 9s uptime SLA with multi-region provisioning, so this means it will be down for no more than five minutes in a year. In addition to that, we've also broadened its capabilities. First, we've made it available worldwide, where you can provision Firestore across 15 locations around the world. We've also added better and real time usage insights so that you can track and see in real time of how you're using Firestore and have better prediction of your bill, and this is one of the top requests we've heard from the community. And then, as well, we've added more expressive queries and operations, with things array containments and operations like increments to help you create more natural data structures. And, starting today, Firestore also supports Collection Group Queries. So this allows you to query-- thank you. [APPLAUSE] This allows you to query across all sub-collections of the same name. So for example, here's a Firestore project with restaurants and reviews. The top-level collection is the restaurants, which contain sub-collections of reviews. Now, you can run a query across all the reviews of collections of all the restaurants to find the ones are written by the same user. So here is a query that you can run to find all the reviews that Alice had written across all the restaurants. So Firestore gives you serverless data storage. Cloud Functions helps you with your server computing needs by letting you upload your own snippet of JavaScript code and executing that in our cloud. Now recently, we've also added scheduled functions that enables you to schedule function executions like a cron job. And setting this up is super simple. Here's an example of a function that's scheduled to run everyday at 3:00 AM. And you can also use cron-type syntax to define the frequency in your code. So one of the key powerful aspects of functions is the ability to trigger it via events that are happening across Firebase and GCP, and we also recently added ability to trigger functions via Remote Config whenever a new config is published or reverted. So as an example, when you change a config in your app, you can also trigger a function to send a push notification to the device to then immediately trigger a sync, so that your app always gets the latest config. Now to share a story of how a customer has used Firestore and functions, I want to talk a bit about Skip Scooters, a startup based in San Francisco. So Skip Scooters runs on Firestore, and their scooters are connected directly to Firestore to send up their status and location data. And Firestore then pushes these new updates to other scooters and to the riders who are using the Skip app so they can see nearby scooters and unlock them. All of this synchronization is handled by Firestore, and it's protected by the Firebase security rules. So in addition to providing scalable and fully-managed backends in Cloud, we've also heard from you that having more tools to develop and testing locally is very important. And so back in October, a couple of months ago, we've launched local emulators for Firestore and the Realtime Database. And today, we're also expanding this emulator suite to include Cloud Functions. So to show you how this works, let's pass it back to Rachel. RACHEL MYERS: Products like Firebase and Bass are great because you aren't responsible for upgrades or technical operations. But one downside is that it can be more complex to develop and test your code. The emulators make it possible for you to write your code and to locally test it without calling a remote database. So here's an example that we'll walk through soon. If you had an emulator to locally develop-- oh, sorry. Yeah, that's right. If you had an emulator to locally develop and debug a shopping cart app, we're going to test and debug adding an item to your shopping cart and recalculating the cart total. To show you what the moving parts of this are when the user adds an item to their cart, the item is written to the Firestore emulator. That triggers a function called Calculate cart to run and that will sum up the cart total. That totals written back to the Firestore emulator before developers can locally test scenarios like this that involve Firestore end functions talking to each other. But I'm going to demo how the Emulator Suite solves this problem. So this is the function calculating card that we're looking at. At the top of the function here, we can see that this is going to fire when an item is added to the cart in Firestore. We can see here that it's going to update the price. If I want to test this locally, I need local instances of Firestore and functions that can talk to each other. Let's look at how that's made possible. So I'm going to start my Firestore emulator. And it's going to first print out the local locations of each emulator. That's great. I know that I can always go back and look at that directly. Then it's going to print out for me that calculate cart has been set up. That's my function, and that tells me that I know this is going to fire. So let's try it. Here's my local Android app that's running my shopping cart app. I'm going to try adding a bag of coffee beans to my app and see that-- oh, that's weird. Coffee should cost $12.99, and it looks like the shopping cart now has $13.99 in it. I might have a bug. Let me run my test. So my test fails, and that tells me that I have a problem in my function and not in my client. So let's go back and look at my function. Yep, I have a problem in my addition here. Let's try rerunning the test. And it passes. That's great. Just to be sure, I'm going to try running it in my emulator again and make sure that it's fixed there. Oh, cool. That worked, and now I have two. Wonderful. So now that I'm-- so, sorry, I lost my voice. So we did all of this locally. We spun up local versions of our emulators for Firestore and for functions and for the Android emulator that was talking to those emulators. We are also able to run our tests locally. And we did all of this offline. So now that I know this is tested and debugged, I feel good about shipping this to production. Back to you, Francis. FRANCIS MA: Great. [APPLAUSE] So, in addition to updates the Firestore functions and emulators, we've also improved hosting, where we've recently launched a new integration between Firebase Hosting and Cloud Run. Now Cloud Run allows you to deploy and run your own stateless containers on a fully managed environment so that you can use Firebase Hosting and Cloud Run to implement a fully dynamic web app with server side rendering all without having to provision and manage your own servers. So building your app is only the first step. After it's build, you still have to test it, to monitor it, to debug it, and engage users. To talk more about how Firebase can help you operate and iterate on your app, I'd like to turn it over to my teammate Alex Singer. [APPLAUSE] ALEX SINGER: Hello, everyone. I'm Alex singer, a PM on Firebase. The best time to find issues in your app is before releasing it to the app store. Firebase Test Lab makes it easy to run tests on real, physical devices straight from your CLI or the Firebase console. Over the past few months, we've released a number of improvements to Test Lab. To help you test on the latest and greatest devices, operating systems, and upload formats, we are excited to share that Firebase Test Lab now supports Wear OS, Android Q, and Android App Bundles. We're also improving Test Lab support for games, which currently test your games by tapping in random places throughout the UI. And now, we're augmenting it with machine learning so the crawler can make intelligent decisions about where to tap. In fact, in our testing of the top 200 games, we found that each action the crawler took was more than twice as effective. Lastly, we're giving you a better sense of the quality of your tests with flaky test detection. So you can fix flaky tests and gain more confidence in your test suite. Synthetic tests are a great way to catch bugs before you release your app. But you'll also want to see how it's performing with real users. Firebase Performance Monitoring helps you uncover a network and latency issues that are occurring with users in the wild. We know that there are times when you want to export your data for deeper analysis or to combine it with other data sources. Starting today, you'll be able to export your Firebase Performance Monitoring data into BigQuery. This builds on the integrations we've launched last year between BigQuery, Google Analytics, Crashlytics, and predictions. In yesterday's keynote, we announced that performance monitoring is now available for web apps. This is super exciting because it helps you quickly find and fix performance issues that are impacting your end users experience with your app. To show you performance monitoring and more detail, I'm going to turn it over to my teammate Derek Philips. DEREK PHILLIPS: Thanks, Alex. [APPLAUSE] Adding the performance monitoring SDK to my web app is a simple copy and paste of a JavaScript snippet. I've got another web app here that's been live for a few weeks. So it has some real data that I can show you. I'm in the Firebase console now, and you can see that performance monitoring shows me things like the median load time for my app over the last few weeks. But Firebase shows you much more than this. Something like First Contentful Paint shows you the first time that something meaningful is showing up in the app. So the user is probably getting some value. Even more important is something like dominteractive. This is the point where the user can actually scroll around and interact with the page. This is a really important metric. And with Firebase Performance Monitoring, you get it for free. For now though, let's take a look at the load time. So if you look here, you see the median load time is about three seconds. That's actually pretty good. But there's a lot more to the load time than the median. There are many users on different devices and different networks. And so to really understand this, I need to look at the distribution. So I can click through here and see the distribution. So, when we look at the distribution curve, we can see that there is a small long tail of users that are experiencing really rough load times. The worst is substantially slower than the medium. It might only be 2%, 3% of our users. But that can still actually be a lot of users. Down below the graphs. I can look at different segments of my users to try to figure out the root cause of the latency issue. In this case, if I click through here, I can see some of the really bad load time affects users in India, and it's probably a network issue. This level of detail allows me to quickly troubleshoot the problem and realize the problem is likely with my server side code or the network itself. In this app, I'm using Cloud Functions, and the issue might be that the servers are actually running in the US. By flagging this issue for users in India, performance monitoring is helping me ensure that more of my users get that awesome median load time. Back to you, Alex. ALEX SINGER: At Google I/O 2017, we first stepped on stage and unveiled our vision for bringing the best of the fabric into Firebase. Since then, we've been working hard to bring the qualities, tools, and magic that you love about Fabric to Firebase. For example, we've added phone authentication, Crashlytics, and latest release metrics. And more recently, we shipped Unity and NDK support for Firebase Crashlytics and launced integrations with productivity tools like Slack, JIRA, and PagerDuty. We've even built brand new capabilities in Firebase that were not available in Fabric, like the ability to export your Crashlytics data into BigQuery. It's been an amazing journey so far. And now we want to outline the rest of it in greater clarity. So I have a few updates to share about the Fabric Migration. We know many of you have been waiting for more information on the future of Crashlytics beta, the fabric service that lets you distribute prereleased versions of your apps to testers. Well, we've been building the next generation of Crashlytics beta in Firebase called app distribution. App distribution will be publicly available in the coming months. And if you want a preview, please sign up for our Alpha program to request early access to test it out. We've also revamped our roadmap. So it's easier to see what is in progress and give you more precision about the timeline. Specifically, we're announcing a complete Fabrics transition to Firebase on March 31st, 2020. To learn more about the migration, I encourage you to look at the public roadmap. And while Fabric may be going away, we're not saying goodbye. We are continuing to help you build stable apps in Firebase. Here's one example of our continued investment in Crashlytics. The most important alert in Crashlytics is the Velocity Alert, which tells you when a particular issue affects a significant percentage of your user sessions. Now we know that every app is unique and this one-size-fits-all threshold might not be what's best for you and your business. That's why we're excited to share that Velocity Alerts are now customizable in Firebase Crashlytics. [APPLAUSE] Let's take a look. I had to set them up. Derek. DEREK PHILLIPS: Up until now, the percentage of users affected before we send a Velocity Alert has always been fixed at 1%. We've received feedback from many of you that this might already be too late. Already millions of user sessions might've been affected. Knowing production issues early and being able to react to them is essential to making sure your app is stable. We recently enabled you to fine tune your app gets notified with a Velocity Alert. You can find the settings under the Crashlytics console settings. So if I come in here, I can bring it up, Velocity Alert settings. And now with just this slider, you can tell us when you want to be notified, anywhere between 0.1% and 1% of your user sessions. This has been one of our biggest customer requests for quite a long time. And today, we're really excited to be able to share it with you. Back to you, Alex. [APPLAUSE] ALEX SINGER: We've had many customers make the move to Firebase to take advantage of these new capabilities. Booking and travel company KAYAK made the transition and is already getting a ton of value by exporting their data from Crashlytics into BigQuery for deeper analysis. They've also found it's seamless to use other parts of Firebase, including performance monitoring and Test Lab so that they can take a holistic approach into improving their app's quality and stability. From Test Lab to performance monitoring to Crashlytics, Firebase has the tools to help you monitor and debug your app. And after your app is stable, the next step in building a business is understanding your user base and increasing engagement. Google Analytics for Firebase helps you understand your users better so you can engage them more intelligently and personalize their experience more thoughtfully, all through the power of data. You may have noticed a series of improvements over the last few months in Google Analytics for Firebase. Those changes were building up to some major launches, where which we're excited to unveil today. Let's take a look. DEREK PHILLIPS: Last year we announced flexible filters. This allows you to filter your analytics reports using multiple values for a single dimension. For example, you can filter your active users report to focus just on the latest Android models. Since then, we've made a major leap forward in sophistication and flexibility. You can now filter almost every audience analytics report using any combination of user properties and audiences. This enables you to dive much deeper in your reports to find the proverbial needle in the Haystack. Let's take a look. So I've configured my app here so that, when a user completes around, I keep track of their score. If I look in here, I can see that the average score is about 24,000. So let's see if that holds true for IOS users. So I can come here and filter out IOS users. Let's see what we get. Yeah, it's about the same, about 24,000. Now, when I was looking at the dashboard before, I noticed that one of my most popular devices is the iPad sixth generation. So let's see how those users fare. So I can come here and restrict to those users. Let's see how they do. Oh, they only get about 21,000. So they're about 15% worse than the average. Let's see if it's just because this is a bunch of new users. I can do this by applying another filter, which is now possible because we removed the limits on the number of conditions you can apply. So I can come in here and include only the users that have been around for at least 7 days and see how they're doing. So they do slightly better. But still they can't reach the average. So I might have made the game a little bit too difficult for my tablet users. I might want to go back, make some changes, and even things out a bit, especially since this is one of my most popular devices. Now, after I do that, it would be a good idea to go back and re-engage these users, using something like a push notification or an ad campaign. I can start by creating an audience that includes the low scoring tablet user, load scoring tablet users using the new Audience Builder. We've rebuilt the audience system from scratch and wrapped it in a powerful new Audience Builder UI. Complete with features like sequences, scoping, time windows, membership duration, and more, the result is an audience system that allows you to create dynamic precise and fresh audiences that you can use for things like personalization or re-engagement. In this case, will show off the exclusion criteria. So what I can do is I can create a custom audience, and I'll include users that are on tablets. So I can choose tablets here. But I don't want all the tablet users. I want the ones that actually perform poorly on up to now and got below the average. So what I can do is I can add an additional condition and remove the users who, when they completed it, got a score, which was above the average. So I can say those that had a score of above 24,000. So what this will do is remove the tablet users that actually performed pretty well. Now I can just save this audience, let it accumulate to matching users, and then I can reach out to them with something like Firebase Cloud Messaging. You can also see this nice little chart on the side, which shows how many users will be excluded as a result of this new criteria. So you can have confidence in the audiences you're creating. This just barely scratches the surface of what you can do with the new Audience Builder. So this is one I think you're really going to want to spend some time with. Back to you, Alex. ALEX SINGER: So you've just heard about new updates to Firebase that help you build your app, improve your quality, and drive engagement. I'd like to share one more story about a customer who found success with Firebase. Hotstar is India's largest video streaming platform. They used Crashlytics, BigQuery, Analytics, and Remote Config to roll out a new feature during the India Premier League championships-- a cricket tournament in one of India's largest sporting events. Let's take a look at their story in more detail. KSHITIJ GUPTA: India has been mostly a one TV country, like one TV per household. But data has become so cheap here. So this made your phone your next TV. Hotstar was launched three years back. And in the last two years, we have seen our MAU grew to more than 150 million users. SUDENDRA KAMBLE: Before the start of 2018 IPL, we decided to completely rebuild our app. IPL is the biggest sporting event in India. We were expecting a huge surge of users. We wanted to use this opportunity to launch new features. AYUSHI GUPTA: Using Firebase Remote Config, we slowly roll out the feature to a small percentage of users. SUDENDRA KAMBLE: Our engineering team was monitoring crashes in Firebase Crashlytics. We noticed that a feature was causing some crashes on a few low-end Android devices. AYUSHI GUPTA: We use Google Analytics for Firebase to segment our users on low end devices. And then we turned off the feature for them using conditional targeting and Remote Config. This way we saved our users, our millions of users from buggy experience. Amazingly, we were able to do all of this without releasing [INAUDIBLE]. With Firebase, we can make decisions by deeply understanding and analyzing our data. ASHWINI KUMAR: We created another crucial resource to achieve this. For example, we export Firebase event logs to BigQuery. We log at the startup time from launch to load up the fastest screen. Then we ran queries to understand where the most time users spent. 2018 was like a dream year for us. We increased daily watch time by 28%. Technology like Firebase and BigQuery are helping us to scale so much that Hotstar is quickly becoming the primary viewing screen for many Indians, not the cache of destination. [APPLAUSE] FRANCIS MA: Thanks, Alex and Derek. So it's incredible to see a 38% increase in daily watch time that Hotstar was able to attain with s help of Firebase. And as we continue to work with developers like you through the journey of your app lifecycle, we're also continuing to deepen our integration with Google Cloud Platform to provide you even with more capabilities and support for your complex business and enterprise needs. To that end, just a few weeks ago, we had launched full enterprise grade support through Google Cloud. So this enterprise support gives you response times as quick as 15 minutes with dedicated technical account management, phone support, and much more. Now we don't plan to change anything about our existing free support so we can continue to use that. But if you're looking for a paid enterprise grade support option, you can now get your Firebase questions answered through Google Cloud Platform support. And if you already have a paid GCP support package, Firebase will automatically be included. We've also improved the way that you can manage your access and permissions for your Firebase project, so they can have finer grain permissions control and tighter security access using GCP's identity and access management controls. So for example, let's say you have a team member who's responsible for managing your analytics in your projects but probably shouldn't be accessing your Firestore data. Now, you can go into the Firebase console and grant them only access to the analytics portion of the UI. And lastly, to make Firebase more usable for all of you, we've continued to open source our SDKs with C++ being the most recent, and continued accepting contributions from the community. We want to ensure that you have the transparency and flexibility with the code that you integrate into your app. And with Open Source, you now have more power than ever before to make our SDK's work for you. So those are all the updates that we have to share today. What do you all think? [APPLAUSE] Thank you. It's pretty cool stuff. And as we look forward to the future, we're committed to continuing to investing and building tools and cloud services to help you build your app, improve the quality of your app, and engaging more users. With every improvement of Firebase, we strive to simplify your app development workflow and infrastructure needs so that you can focus on building amazing user experiences. And we can't do-- and we couldn't have done it without you, our community, of Firebase developers. Now, as Alex mentioned earlier, we'd love for you to join our alpha program at G.co/FirebaseAlpha so that you can give us feedback on the new products and features that we've built in Firebase. On behalf of the team, thank you for joining us today and for continuing to invest your time and voice in helping us shape the future of Firebase. We're going to be over at the Firebase sandbox. So please come by and say hi. And by now, I think most of you will know to look for the yellow t-shirts that we're all wearing. Thank you. Have a great I/O. [LOGO MUSIC]
Info
Channel: Firebase
Views: 36,098
Rating: 4.9151516 out of 5
Keywords: type: Conference Talk (Full production);, pr_pr: Google I/O, purpose: Educate
Id: x8qTEMkZCPs
Channel Id: undefined
Length: 39min 4sec (2344 seconds)
Published: Wed May 08 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.