---
title: "rclone Google Drive Client ID: Create Your Own OAuth App"
slug: "rclone-google-drive-client-id-oauth-app"
published: "2026-03-31"
updated: "2026-10-21"
categories:
  - "Tools"
tags:
  - "rclone Google Drive client_id"
  - "rclone client_id"
  - "Google OAuth app for rclone"
  - "client_id client_secret rclone"
  - "headless server rclone authentication"
  - "Google Drive API rate limits"
  - "rclone config reconnect"
  - "OAuth consent screen"
  - "Desktop app OAuth type"
  - "drive.metadata.readonly scope"
llm-intent: "reference"
audience-level: "intermediate"
framework-versions:
  - "rclone@>=1.60 (latest stable recommended)"
  - "Google Cloud Console (current)"
  - "OAuth 2.0 (RFC 6749)"
status: "stable"
llm-purpose: "rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…"
llm-prereqs:
  - "Access to rclone"
  - "Access to Google Drive API"
  - "Access to Google API Console"
  - "Access to OAuth 2.0"
  - "Access to Ubuntu"
llm-outputs:
  - "Completed outcome: rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…"
---

**Summary Triples**
- (rclone Google Drive client_id: Create Your Own OAuth App, focuses-on, rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…)
- (rclone Google Drive client_id: Create Your Own OAuth App, category, general)

### {GOAL}
rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…

### {PREREQS}
- Access to rclone
- Access to Google Drive API
- Access to Google API Console
- Access to OAuth 2.0
- Access to Ubuntu

### {STEPS}
1. Create or select Google project
2. Enable Google Drive API
3. Open Credentials section
4. Configure OAuth consent screen
5. Add required OAuth scopes
6. Create OAuth client as Desktop app
7. Copy client_id and client_secret
8. Add credentials to rclone config
9. Reconnect and test the remote

<!-- llm:goal="rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…" -->
<!-- llm:prereq="Access to rclone" -->
<!-- llm:prereq="Access to Google Drive API" -->
<!-- llm:prereq="Access to Google API Console" -->
<!-- llm:prereq="Access to OAuth 2.0" -->
<!-- llm:prereq="Access to Ubuntu" -->
<!-- llm:output="Completed outcome: rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…" -->

# rclone Google Drive Client ID: Create Your Own OAuth App
> Create your own rclone Google Drive client ID and secret to avoid shared-quota 403 errors, with the exact OAuth consent and Desktop app settings.
Matija Žiberna · 2026-03-31

## Google Drive `client_id` for rclone, headless server setup

This is the short reference I keep for setting up an rclone Google Drive client ID on a headless Ubuntu server. It follows the [rclone Drive docs on making your own client ID](https://rclone.org/drive/#making-your-own-client-id), plus the details I tripped over.

Because the default rclone Google Drive `client_id` is shared by many users, it can hit Google rate limits more easily. For a more stable setup, create your own Google OAuth app and use its `client_id` and `client_secret` in rclone.

### Why this matters

* Better reliability than the shared default rclone client
* Lower chance of quota and rate-limit issues
* Better for production and multiple services

### What I had to create

When creating the Google OAuth app, I had to choose:

* **Application type:** `Desktop app`

This is correct for rclone authentication, even if the final usage is on a headless Ubuntu server.

### Steps

1. Open the **Google API Console** and create or select a project.
2. Enable **Google Drive API**.
3. Open **Credentials**.
4. Configure the **OAuth consent screen**.

   * App name: anything, for example `rclone`
   * Audience: usually `External`
   * Add yourself as a test user
5. In **Data Access**, add these scopes:

   * `https://www.googleapis.com/auth/docs`
   * `https://www.googleapis.com/auth/drive`
   * `https://www.googleapis.com/auth/drive.metadata.readonly`
6. Save the consent screen settings.
7. Create an **OAuth client**.
8. Choose **Desktop app**.
9. Copy the generated:

   * `client_id`
   * `client_secret`
10. Put them into your `rclone` Google Drive remote config.
11. Reconnect/authenticate the remote.

### Notes

* Even on a headless server, the OAuth client type should still be **Desktop app**.
* Google may show an unverified app warning during login. That is expected for a personal setup.
* For `External` apps, adding yourself as a test user is important.

### Useful rclone command

To reconnect the remote after adding your own credentials:

```bash
rclone config reconnect hetzner-dev:
```

### Result

After reconnecting, I was able to download files from Google Drive directly to:

```bash
~/smow/db_dumps
```

### Keep the token from expiring after 7 days

If the consent screen stays in **Testing**, Google expires the refresh token after 7 days, and your scheduled syncs start failing with auth errors. For a personal setup, set the publishing status to **In production**. The app stays unverified, so you still see the warning at login, but the token no longer expires weekly. Then run `rclone config reconnect` once more.

## What to do next

This setup is the Drive half of a few bigger workflows I run:

* Authorizing Google APIs from a terminal works the same way in the [Google Ads MCP setup guide](/blog/google-ads-mcp-setup-guide), which also uses a Desktop app OAuth client.
* If you want Drive connected to an app instead of a CLI, see [Google Drive OAuth for Payload CMS](/blog/setup-google-drive-oauth-payload-cms), which uses a Web application client.

## LLM Response Snippet
```json
{
  "goal": "rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…",
  "responses": [
    {
      "question": "What does the article \"rclone Google Drive client_id: Create Your Own OAuth App\" cover?",
      "answer": "rclone Google Drive client_id: create a Google OAuth app and use its client_id/client_secret to avoid Drive API rate limits and secure headless rclone…"
    }
  ]
}
```