In this section, we present how to connect YouTube to MindsDB. YouTube is a popular online video-sharing platform and social media website where users can upload, view, share, and interact with videos created by individuals and organizations from around the world.

Prerequisites

Before proceeding, ensure the following prerequisites are met:
  1. Install MindsDB on your system or obtain access to cloud options.
  2. To use YouTube with MindsDB, install the required dependencies following this instruction.

Connection

There are two ways you can connect YouTube to MindsDB:
  1. Limited permissions: This option provides MindsDB with read-only access to YouTube, including viewing comments data.
  2. Elevated permissions: This optiona provides MindsDB with full access to YouTube, including viewing comments data and posting replies to comments.

Option 1: Limited permissions

Establish a connection to YouTube from MindsDB by executing the below SQL command and following the Google authorization link provided as output:
CREATE DATABASE mindsdb_youtube
WITH ENGINE = 'youtube',
PARAMETERS = {
  "youtube_api_token": "<your-youtube-api-key-token>"
};
Alternatively, you can connect YouTube to MindsDB via the form.To do that, click on the Add button, choose New Datasource, search for YouTube, and follow the instructions in the form. After providing the connection name and the YouTube API token, click on the Test Connection button. Once the connection is established, click on the Save and Continue button.
Required connection parameters include the following:
  • youtube_api_token: It is a Google API key used for authentication. Check out this guide on how to create the API key to access YouTube data.

Option 2: Elevated permissions

Establish a connection to YouTube from MindsDB by executing the below SQL command and following the Google authorization link provided as output:
CREATE DATABASE mindsdb_youtube_oauth
WITH ENGINE = 'youtube',
PARAMETERS = {
  "credentials_file": "path-to-credentials-json-file"
  -- alternatively, use the credentials_url parameter
};
Alternatively, you can connect YouTube to MindsDB via the form.To do that, click on the Add button, choose New Datasource, search for YouTube, and follow the instructions in the form. After providing the connection name and the credentials file or URL, click on the Test Connection button and complete the authorization process in the pop-up window. Once the connection is established, click on the Save and Continue button.
Required connection parameters include one of the following:
  • credentials_file: It is a path to a file generated from the Google Cloud Console, as described below.
  • credentials_url: It is a URL to a file generated from the Google Cloud Console, as described below.
  1. Open the Google Cloud Console.
  2. Create a new project.
  3. Inside this project, go to APIs & Services:
    • Go to Enabled APIs & services:
      • Click on ENABLE APIS AND SERVICES from the top bar.
      • Search for YouTube Data API v3 and enable it.
    • Go to OAuth consent screen:
      • Choose user type as External and click on Create.
      • Provide app name and support email.
      • In Scopes, add the following scopes: ../auth/youtube, .../auth/youtube.force-ssl, .../auth/youtubepartner.
      • Next, add test users.
      • Save and continue.
    • Go to Credentials:
      • Click on CREATE CREDENTIALS from the top bar and choose OAuth client ID.
      • Choose type as Web application and provide a name. In the Authorized redirect URIs, add the following: http://localhost/verify-auth, https://cloud.mindsdb.com/verify-auth, http://127.0.0.1:47334/verify-auth
      • Click on CREATE.
      • Download the JSON file that is required to connect YouTube to MindsDB.

Usage

Use the established connection to query the comments table. You can query for one video’s comments:
SELECT * 
FROM mindsdb_youtube.comments
WHERE video_id = "raWFGQ20OfA";
Or for one channels’s comments:
SELECT * 
FROM mindsdb_youtube.comments
WHERE channel_id="UC-...";
You can include ordering and limiting the output data:
SELECT * FROM mindsdb_youtube.comments
WHERE video_id = "raWFGQ20OfA"
ORDER BY display_name ASC
LIMIT 5;
Use the established connection to query the channels table.
SELECT * FROM mindsdb_youtube.channels
WHERE channel_id="UC-...";
Here, the channel_id column is mandatory in the WHERE clause. Use the established connection to query the videos table.
SELECT * FROM mindsdb_youtube.videos
WHERE video_id="id";
Here, the video_id column is mandatory in the WHERE clause. With the connection option 2, you can insert replies to comments:
INSERT INTO mindsdb_youtube_oauth.comments (comment_id, reply)
VALUES ("comment_id", "reply message");