Import YouTube Data to Google Sheets

YouTube provides a Data API, a Reporting API, and an Analytics API, all with different but overlapping functionality. In this guide, we’ll be looking at the Data API, which provides basic video and channel statistics for all public videos and channels, and enables access through a simple API key (the other APIs require OAuth2 authentication and only show statistics for your own videos). In this guide, we will walk through how to pull data from the YouTube Data API directly into Google Sheets using the API Connector add-on for Sheets. We’ll first get an API key from YouTube, and then set up a request to pull in video details and metrics from YouTube to your spreadsheet.

YouTube’s Analytics API is discussed in a separate article.

CONTENTS

PART 1: GET YOUR YOUTUBE DATA API KEY

YouTube requires that all API requests contain an API key. This is the detailed, step-by-step process to get your YouTube API key:

  1. Navigate to https://console.developers.google.com/. If this is your first time accessing this page, you’ll be prompted to accept Google Cloud Platform’s terms of service. Click agree and continue.
    youtube-api-img1
  2. Now in the top left, click Select a Project, which will open up a modal. Click New Project
    youtube-api-img2
  3. This will open up the New Project modal. You can name your project anything, but let’s call it YouTube API. You’ll also be prompted to browse for a Location (aka folder). For our purposes here, it doesn’t matter which one you pick.
    youtube-api-img3
  4. Once you create your project, click on Credentials in the left-hand menu. Next, click the Create credentials dropdown and click ‘API key’.
    youtube-api-img4
  5. Your YouTube API key is now ready. You’ll see a screen containing your API key; copy this to your clipboard and click Close.
    youtube-api-img5
  6. There’s still one last step: you need to enable the YouTube API in your project. To do this, click Library and search for ‘YouTube Data API’. Alternately, you can navigate there directly with this link: https://console.developers.google.com/apis/library/youtube.googleapis.com. Click Enable as shown:
    youtube-api-img6
  7. Congrats, you’re done! You now have access to the YouTube Data API, and can start pulling YouTube data into Google Sheets.

PART 2: CREATE YOUR YOUTUBE API REQUEST URL

We’re going to follow the YouTube API documentation to search for specific types of videos using the “search” endpoint.

  • API root: https://www.googleapis.com/youtube/v3
  • Endpoint: /search
  • Parameters: ?part=snippet&key=YOUR_API_KEY
    Parameters Example: ?part=snippet&key=12345

Putting this all together, we get the full API Request URL:

https://www.googleapis.com/youtube/v3/search?part=snippet&key=YOUR_API_KEY

Where it says YOUR_API_KEY, you’ll need to substitute your actual API key from part 1 (step 5) above.

PART 3: PULL YOUTUBE API DATA INTO SHEETS

We’re now ready to enter all our values into API Connector and import YouTube data into Google Sheets:

  1. Open up Google Sheets and click Add-ons > API Connector > Create New API Request
  2. In the Create Request interface, enter the Request URL we just created:
    youtube-api-img8
  3. Leave Headers empty as we don’t need them for this request. We don’t need authentication either, so just leave that as “None”.
  4. Create a new tab. You can call it whatever you like, but here we’ll call it ‘YouTube’. While still in that tab, click ‘Set’ to use that tab as your data destination.
    youtube-api-img9
  5. Name your request. Again we’ll call it ‘YouTube’
  6. Click Run and a moment later you’ll see some YouTube data populate the YouTube tab:
    youtube-api-img10

PART 4: MORE EXAMPLE API URLs

  1. Now that the basic Request URL is set up, you can modify it using parameters listed in the documentation. For example, you may want to change the number of results to 50 (default is 5) and search for videos related to a specific query string, say ‘google sheets’. You’d do that using the parameters ‘maxResults’ and ‘q’, creating the following request URL:
    https://www.googleapis.com/youtube/v3/search?part=snippet&key=YOUR_API_KEY&q=google sheets&maxResults=50

    youtube-api-img12
  2. To see a list of all the videos in a playlist, change the API URL path to include the playlistId parameter:
    https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=YOUR_API_KEY&playlistId=YOUR_PLAYLIST_ID
    You can find your playlist ID by clicking into a YouTube video in your playlist and checking the URL. It will be located inside the list parameter.
  3. To see statistics like views and subscribers for your own channel (or any public channel), first get the channel ID by hovering over or clicking on the channel name listed under any video, and checking the text in the URL after /channel/youtube-api-img14

    Next, substitute that channel ID into the following URL and paste into API Connector. Click Run to see stats about the channel like view counts, video counts, and subscriber counts.
    https://www.googleapis.com/youtube/v3/channels?part=statistics&id=YOUR_CHANNEL_ID&key=YOUR_API_KEY
    youtube-api-img15

If you want to query multiple channel IDs, just enter them as a comma-separated list, e.g. &id=UC14ap4T608Zz_Mz4eezhIqw,UCTiXaqByXkH-h97DLlLkx1Q,UCOxqgCwgOqC2lMqC5PYz_Dg,UCUq9IP5W5Uza7iOug7HwM5g

HANDLE FILTERING

You can filter your results using the “fields” parameter as described here: https://developers.google.com/youtube/v3/getting-started. For example, this filtered URL will produce a list of metrics like video titles, view counts, like counts, dislike counts, etc. for all the video IDs listed in the id parameter:

https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=qhJOSOBtAlc,4JJd7gmlobY,YVMtL6rexKQ,pJpApDVCXPg,MaeRXppkzdA&key=YOUR_API_KEY&fields=items(id),items(snippet(publishedAt,title)),items(contentDetails(duration)),items(statistics(viewCount,likeCount,dislikeCount,commentCount))
youtube-api-img13
Make sure to input your own API key in each example URL where it says key=YOUR_API_KEY. You may find it convenient to reference your key from your sheet using +++ syntax, as shown in the screenshot above (info).

12 thoughts on “Import YouTube Data to Google Sheets”

  1. Hi Ana, thank you for this, I managed to set up my API url. how do I get the full url of the Youtube videos into google sheets? sorry completely new to this . I’ve set up an api to search for videos with the keyword podcasting and want to get the full url link of the videos as well as the channel IDs, what do I need to add extra from this: https://www.googleapis.com/youtube/v3/search?part=snippet&key={API_key}&q=google sheets&maxResults=50 ?

    Reply
    • Hey Riva, have you run that search request yet? If so, in the response you should see a field called items » id » videoId. YouTube doesn’t return the full URL, but it’s easy to construct it yourself by adding that value to the YouTube base URL (https://www.youtube.com/watch?v=).
      For example, when I run the search request for ‘podcasting’, in cell J2 under the items » id » videoId header, I see an ID of PIJpOcFf5h4.
      In a new column, I can make a formula like ="https://www.youtube.com/watch?v="&J2 to get the full URL of the YouTube video. Of course you can copy this down or, even better, add it to an array formula like =arrayformula("https://www.youtube.com/watch?v="&J2:J) to get the URLs for all the video IDs returned by the API. Let me know if that makes sense!

      Reply
  2. Will you be adding a walkthrough of how to to set up Youtube Data Api / Analytics for your own channel reports? The documentation has me very confused!

    Reply
    • Hi, yes! I totally understand, Google makes extremely confusing documentation. I added a line on getting data for your own channel, please let me know if that’s what you were looking for.

      Reply
  3. Hi,

    Thanks for detailed documentation. I am new to APIs. So before start implementing this I would like to know if creating project is free or paid service of google? Does it required GSuit?

    Regards,
    Sai Krishna.

    Reply
    • This is free, you don’t need a paid G Suite account to use Google’s APIs. API Connector is free, too (with option for paid upgrade).

      Reply
  4. Hi,

    For a noob like me this page is very obscure, I don’t really understand what the end result is, but it looks like it’s close to what I’m looking to achieve.

    I found this page because I want a Google sheet to update the subscriber count of my YouTube channels daily (I am the owner of those channels).

    The thing is I want that Google Sheet to update daily without me manually opening it (so I can analyze the data with graphs)

    Right now, I have a clunky solution that uses IMPORTXML in a cell and targets socialblade.com to gather different metrics and a daily google script creates a line every day with the information on that sheet.
    Problems:
    – I’d rather get that data directly from YouTube and not a 3rd party site
    – IMPORTXML doesn’t update if I don’t manually open the Google sheet…

    Any help is appreciated!

    Reply
    • Hi Tristan, thank you for the message and sorry if the article was confusing. Please see below.

      I don’t really understand what the end result is
      There are a few screenshots in the article, for example the final screenshot of part 3 shows the result of a query for a list of videos, and the screenshot at the very end shows the end result of a query for likes, views, and comments. Does that help or are you looking for a screenshot of something in particular?

      I want that Google Sheet to update daily without me manually opening it
      The method in the article is free to run manually, but automatic daily updates requires the paid version of API Connector. Not sure if you were looking for a totally free solution or not.

      I’d rather get that data directly from YouTube and not a 3rd party site
      Yep, this method pulls directly from YouTube’s official API, so it’s all above board and reliable.

      Happy to answer any further questions so just let me know what you’re looking for.

      Reply
      • Thanks for your answer, I guess the confusing thing is that you seem to be focused on pulling data for videos, when the first need – at least in head – would be to pull data for the channel (things like subscriber count, watch time in different period of time, number of uploads, etc).
        After having those channel metrics covered, I understand that to get more granular some would want to go on the video level.

        My current need is to have a daily automatic scrape of my YouTube channels and reporting in google sheet automatically without having to open the sheet itself.
        So when you go on that sheet every month or so, it’s all populated and graphs are telling you the evolution of those channel metrics…

        I can’t find a simple solution anywhere…

      • You can get channel data as well as video data through the YouTube Data API, you can find examples of both in the article. Though if you want detailed private data (data that you can only see while logged in) about your account like watch time and number of uploads, you would need to use the YouTube Analytics API instead. I think you can manage the solutions in either of these guides if you try, since ultimately you just need to follow the steps and copy/paste in a URL at the end. It doesn’t require writing code or any particular tech skills. But if you aren’t comfortable with that, I suggest using a different tool like Supermetrics. They simplify the connection process even further so you can just select your metrics from a drop down menu instead of working with the API directly.

  5. OK, I’m not a coder, half the things you mentioned are foreign and not understood, but I am a marketer and I know there is a need.

    In this time of let-me-write-a-blog-to-bring-value-when-the-only-thing-I-really-want-is-organic-exposure I am stunned that my simple need (which is every serious YouTuber need) isn’t answered.

    I went through many many sites, and everything is wordy and confusing.

    YouTubers need to see the history of how they’re doing to decide on what to do next.
    We need to see the subscriber count growth, we need to see the watch time evolution and many other things but that’s a start.

    Anybody reading those lines: there is an obvious need for YouTubers to have an automatic report on google sheet. It looks like it should be a piece of google script. So if you explain how to do it, you would have great traffic on your page.

    Just my 2 cents

    Reply
    • Hi Tristan, thanks for the feedback. Please check my last response to you as it includes the name of a tool that imports YouTube data without needing to copy/paste a URL like the method in this article.

      Reply

Leave a Comment