> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How to register your own YouTube OAuth app

> Register an OAuth app with YouTube and connect it to Nango

This guide shows you how to register your own app with Google to obtain your OAuth credentials (client id & secret). These are required to let your users grant your app access to their YouTube account.

> [!NOTE]
>
> You will need to pass a Google review to go live with your integration.
>
> [Follow our guide](https://nango.dev/docs/api-integrations/google-shared/google-security-review) to get approved as fast as possible.

**1. Create a Google Cloud account**

If you don't already have one, sign up for a [Google Cloud account](https://console.cloud.google.com/).

**2. Create a new project**

1. Go to the [Google Cloud Console](https://console.cloud.google.com/).
2. Click on the project dropdown at the top left of the page.
3. Click **New Project**.
4. Enter a **Project Name** for your project.
5. Under **Location**, select the appropriate organization or folder where this project should belong.
   \[!NOTE] If you're not part of an organization, it will default to No organization
6. Click **Create** and wait for the project to be created.
7. Select it from the project dropdown.

**3. Enable the APIs you need**

1. Go to the [API Library](https://console.cloud.google.com/apis/library) in the Google Cloud Console.
2. Search for **YouTube API** and select the APIs you wish to integrate with, such as **YouTube Analytics API**, **YouTube Reporting API**, etc., then click **Enable** for each.

**4. Configure the OAuth consent screen**

1. Go to **APIs & Services** > **OAuth consent screen** in the Google Cloud Console.
2. Click **Get started**.
3. Fill in all the required fields in the **App Information** form.
4. Click **Next**. Select the appropriate Audience:
   * **External**: For applications available to any Google user
   * **Internal**: For applications restricted to users within your Google Workspace organization
5. Click **Next**. Fill in the **Contact Information**; these are the email addresses that Google will use to notify you about any changes to your project.
6. Click **Next**, then check the **I agree to the Google API Services: User Data Policy** checkbox, and click **Continue**.
7. Add the scopes your application needs. Under **Data Access**, click **Add or Remove Scopes** and select the scopes that correspond to the APIs you enabled.

> [!NOTE]
>
> Make sure to select scopes based on the APIs you enabled earlier when setting up the app. See [Google's OAuth 2.0 Scopes documentation](https://developers.google.com/identity/protocols/oauth2/scopes) for all available scopes.

8. Under **Audience**, click **Add users** if you selected **External** user type (required for testing before verification).

> [!WARNING]
>
> In "Testing" mode with an external user type, refresh tokens expire in 7 days unless only basic scopes are used (userinfo.email, userinfo.profile, openid, or their [OpenID Connect equivalents](https://developers.google.com/identity/protocols/oauth2/scopes#openid-connect)). You can remove this 7-day limit by switching from Testing to Production in step 8 below.

**5. Create OAuth 2.0 credentials**

1. Go to **APIs & Services** > **Credentials** in the Google Cloud Console.
2. Click **Create Credentials** and select **OAuth client ID**.
3. Select **Web application** as the application type.
4. Enter a name for your OAuth client.
5. Under **Authorized redirect URIs**, add `https://api.nango.dev/oauth/callback`.

> [!NOTE]
>
> While setting up the OAuth credentials, the *Authorized JavaScript origins* should be your site URL (`https://app.nango.dev` if you're testing from the Nango UI).

6. Click **Create**.
7. A dialog will appear with your client ID and client secret. Save these credentials securely as you'll need them when configuring your integration in Nango.

> [!NOTE]
>
> Google allows up to 100 refresh tokens per account per OAuth client ID. New tokens overwrite the oldest without warning when the limit is reached.

**6. Start building your integration**

Follow the [*Quickstart*](https://nango.dev/docs/getting-started/quickstart.md) to build your integration.

**7. Verify your app**

Most YouTube scopes are marked "sensitive" by Google. You need to pass a Google review to go live.

[Follow our guide](https://nango.dev/docs/api-integrations/google-shared/google-security-review) to prepare and pass as quickly as possible.

> [!NOTE]
>
> For applications using sensitive or restricted scopes, Google requires verification and a security assessment. This process can take several weeks to complete.

**8. Publish your app (switch from Testing to Production)**

To move your OAuth app from testing to production:

1. Go to **APIs & Services** > **OAuth consent screen** > **Audience**.
2. Click **Publish App** to switch your app from testing to production.

## Important considerations

**Refresh token expiration**

For information on why Google refresh tokens expire, see [Why is my Google refresh token expiring?](https://www.nango.dev/blog/google-oauth-invalid-grant-token-has-been-expired-or-revoked#why-was-the-refresh-token-revoked). For Google OAuth basics, see [Google's OAuth 2.0 documentation](https://developers.google.com/identity/protocols/oauth2).

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.