Integration

Google Drive AI: transcribe, summarize, and chat with any Drive file

Speak AI plugs into Google Drive for one-click transcription, AI summaries, and Magic Prompt analysis on any audio, video, or text file. Connect Drive once via OAuth. No download, no copy-paste, no re-upload. Production-ready in under 5 minutes.

Free 7-day trial. No credit card required. Drive picker, folder watch, Magic Prompt, all included.
OAuthNative Connect
Picker+ Auto-Watch
100+Languages
Freeto Try

Trusted by 250,000+ people and teams

What you can do

Once Speak is connected to Drive, every audio, video, or document file becomes searchable and analyzable in minutes. Researchers process interview archives without downloading anything. Sales ops auto-transcribe call recordings dropped into a shared folder. Product teams chat with archived design walkthroughs.

Pick any file from your Drive

Connect Drive once via OAuth. Use Speak’s /v1/integration/googledrive/upload endpoint to import any Drive file by URL. Speak fetches the file with your stored OAuth token, transcribes it in 100+ languages, and runs AI analysis automatically. No download, no copy-paste, no re-upload.

Auto-process new files in a folder

Set up Drive change notifications (push API or polling) on a watched folder. New audio or video files flow into Speak the moment they land. Useful for interview pipelines, podcast intake, and customer-research archives where new content arrives weekly.

Run Magic Prompts against Drive content

After Speak imports the file, run any custom Magic Prompt to extract decisions, score against a rubric, pull verbatim quotes, or generate Notion-ready writeups. Same prompt library that runs on call transcripts works on Drive-imported audio, video, and document files.

Search every Drive file from Claude or ChatGPT

Speak’s official MCP server lets AI assistants search across your entire Drive-imported library. Ask Claude to surface every research interview that mentioned a competitor by name, or pull verbatim quotes from a quarter of customer feedback recordings.

Set up in 3 steps

Connect Drive via OAuth in the Speak dashboard, then import files via the in-app picker or programmatically through the upload endpoint. Two-minute setup.

Sign up for Speak AI

Create a free account at app.speakai.co. You get a 7-day trial with full access. No credit card needed. Once you are in, go to Settings > API and copy your API key for programmatic usage.

Pick your integration path

In-app Drive picker (recommended)

In Speak, go to Settings > Integrations > Google Drive and click Connect. Approve OAuth scopes for read-only access to files you select. Once connected, the in-app file picker lets you browse and import any Drive file directly into Speak.

Programmatic import via upload endpoint

For pipelines and automations, POST a Drive file URL (drive.google.com/file/d/...) to Speak’s /v1/integration/googledrive/upload. Speak uses your stored OAuth token to fetch the file and ingest it. Best for CRMs, scheduling tools, and automations that produce Drive files.

Drive folder watch (auto-process)

Use the Drive Push API to watch a folder for new files. When new audio or video lands, your handler fetches the file ID and forwards it to Speak’s upload endpoint. New recordings transcribe and analyze automatically without manual import.

Zapier path (no code)

Use the Speak Zapier app at zapier.com/apps/speak-ai. Trigger on Drive New File in Folder. Action with Speak Upload Media. Five-minute setup, zero code. Best for SMB teams without engineering bandwidth.

MCP for Claude and ChatGPT

Already have Drive files in Speak? Connect Claude Desktop with npx @speakai/mcp-server init, or add the remote MCP URL to Claude.ai or ChatGPT. Search your entire Drive library through conversation.

Subscribe to media.analyzed

Speak fires a signed webhook when transcription and AI analysis complete (usually within 60 seconds for a 10-minute file). Register your endpoint via POST /v1/webhook and route the analyzed Drive file to your CRM, Notion database, or BI tooling.

Real workflows, real results

Four production patterns Speak customers ship with Google Drive. Pick the one that fits your team and copy the recipe.







For researchers and analysts · Speak’s native Drive upload endpoint

Import any Drive file with one API call

Speak ships a native Drive upload endpoint. Once you connect Drive via OAuth, your code POSTs a Drive URL and Speak handles the rest: fetches with your stored OAuth token, ingests as audio or video, transcribes in your chosen language, and runs AI analysis. No need to manage Drive’s files.get?alt=media proxy yourself.

1. Connect Google Drive (one-time)
# In Speak AI dashboard:
# 1. Go to Settings -> Integrations -> Google Drive
# 2. Click "Connect Google Drive"
# 3. Approve read-only OAuth access to files you select
# 4. Speak stores the OAuth token securely on its side

# Or hit the connect endpoint programmatically with a Drive OAuth code:
curl -X POST https://api.speakai.co/v1/integration/googledrive/connect 
  -H "x-speakai-key: $SPEAK_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"code": "$GOOGLE_OAUTH_CODE"}'
2. Import a Drive file






curl -X POST https://api.speakai.co/v1/integration/googledrive/upload 
  -H "x-speakai-key: $SPEAK_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{
    "url": "https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUv/view",
    "sourceLanguage": "en-US",
    "folderId": "507f1f77bcf86cd799439011"
  }'

# Accepted URL formats:
#   https://drive.google.com/file/d/{fileId}/view
#   https://drive.google.com/file/d/{fileId}/edit
#   https://www.googleapis.com/drive/v3/files/{fileId}
#
# Speak parses the file ID, fetches metadata via Drive API,
# gets a fresh download URL via the user's stored OAuth token,
# then uploads to Speak for transcription and analysis.
// Use this in your CRM, scheduler, or research-pipeline server.
async function importDriveFileToSpeak(driveUrl, folderId) {
  const r = await fetch(
    "https://api.speakai.co/v1/integration/googledrive/upload",
    {
      method: "POST",
      headers: {
        "x-speakai-key": process.env.SPEAK_API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        url: driveUrl,
        sourceLanguage: "en-US",
        folderId,
      }),
    }
  );
  if (!r.ok) throw new Error(`Drive import failed: ${r.status}`);
  const { data } = await r.json();
  // data.mediaId is the new Speak media reference.
  return data.mediaId;
}

// Example: import a research interview into Speak's "Q3 Interviews" folder
const mediaId = await importDriveFileToSpeak(
  "https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUv/view",
  process.env.SPEAK_FOLDER_ID,
);
import os, requests

def import_drive_file_to_speak(drive_url: str, folder_id: str | None = None) -> str:
    r = requests.post(
        "https://api.speakai.co/v1/integration/googledrive/upload",
        headers={
            "x-speakai-key": os.environ["SPEAK_API_KEY"],
            "Content-Type": "application/json",
        },
        json={
            "url": drive_url,
            "sourceLanguage": "en-US",
            "folderId": folder_id,
        },
        timeout=30,
    )
    r.raise_for_status()
    return r.json()["data"]["mediaId"]

If the OAuth token expires, Speak’s response returns “Failed to get file info from Google Drive – Authorization required”. Re-run the connect flow to refresh. Speak does not store Drive files beyond the processing window unless you save them to your Speak account.

For research and content teams · Drive Push notifications + Speak upload

Auto-process every new file in a Drive folder

Use Drive’s change notifications API to watch a folder. When a new audio or video file lands, your handler enumerates the change, fetches the file ID, and forwards it to Speak’s upload endpoint. New recordings transcribe and analyze automatically without manual import.

1. Subscribe to Drive change notifications
# Drive Push notifications - watch a folder for new files.
# Required scope: drive.readonly (or drive.file for picker-selected files).

curl -X POST "https://www.googleapis.com/drive/v3/files/$FOLDER_ID/watch" 
  -H "Authorization: Bearer $GOOGLE_OAUTH_TOKEN" 
  -H "Content-Type: application/json" 
  -d '{
    "id": "speak-drive-watch-1",
    "type": "web_hook",
    "address": "https://your-app.example.com/drive/watch"
  }'

# Channel expires after 7 days. Renew with another POST to /watch.
# When a change occurs, Drive POSTs to your address with X-Goog-Resource-State header.
# Your handler then lists files in the folder via files.list and forwards new ones.
2. Forward new Drive files to Speak




import express from "express";
const app = express();
app.use(express.json());

// In-memory cursor (use a real DB in production)
let lastSeenIds = new Set();

app.post("/drive/watch", async (req, res) => {
  // Drive sends an X-Goog-Resource-State header on every change.
  if (req.headers["x-goog-resource-state"] === "sync") return res.sendStatus(200);
  res.sendStatus(200);

  // 1. List files in the watched folder ordered by createdTime desc
  const list = await fetch(
    "https://www.googleapis.com/drive/v3/files?" + new URLSearchParams({
      q: `'${process.env.DRIVE_FOLDER_ID}' in parents and (mimeType contains 'audio/' or mimeType contains 'video/')`,
      orderBy: "createdTime desc",
      fields: "files(id,name,mimeType,createdTime,webViewLink)",
      pageSize: "20",
    }),
    { headers: { Authorization: `Bearer ${process.env.GOOGLE_OAUTH_TOKEN}` } }
  ).then(r => r.json());

  // 2. For each new file, forward to Speak's Drive upload endpoint
  for (const file of list.files) {
    if (lastSeenIds.has(file.id)) continue;
    lastSeenIds.add(file.id);

    await fetch("https://api.speakai.co/v1/integration/googledrive/upload", {
      method: "POST",
      headers: {
        "x-speakai-key": process.env.SPEAK_API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        url: `https://drive.google.com/file/d/${file.id}/view`,
        sourceLanguage: "en-US",
        folderId: process.env.SPEAK_FOLDER_ID,
      }),
    });
  }
});

app.listen(3000);
import os, requests
from fastapi import FastAPI, Request

app = FastAPI()
seen_ids = set()  # use a real DB in production

@app.post("/drive/watch")
async def watch(req: Request):
    if req.headers.get("x-goog-resource-state") == "sync":
        return {"ok": True}

    list_resp = requests.get(
        "https://www.googleapis.com/drive/v3/files",
        params={
            "q": f"'{os.environ['DRIVE_FOLDER_ID']}' in parents "
                 "and (mimeType contains 'audio/' or mimeType contains 'video/')",
            "orderBy": "createdTime desc",
            "fields": "files(id,name,mimeType,createdTime,webViewLink)",
            "pageSize": "20",
        },
        headers={"Authorization": f"Bearer {os.environ['GOOGLE_OAUTH_TOKEN']}"},
        timeout=30,
    ).json()

    for f in list_resp.get("files", []):
        if f["id"] in seen_ids:
            continue
        seen_ids.add(f["id"])

        requests.post(
            "https://api.speakai.co/v1/integration/googledrive/upload",
            headers={"x-speakai-key": os.environ["SPEAK_API_KEY"]},
            json={
                "url": f"https://drive.google.com/file/d/{f['id']}/view",
                "sourceLanguage": "en-US",
                "folderId": os.environ.get("SPEAK_FOLDER_ID"),
            },
            timeout=30,
        )
    return {"ok": True}

Drive push channels expire after 7 days. Renew with another POST to /files/{id}/watch on a cron. For lower-effort setups, use the Speak Zapier app’s “Drive New File in Folder” trigger – same outcome, no watch-channel maintenance.

For research and analysis · Magic Prompt async API

Chat with any Drive file after Speak imports it

After Speak imports a Drive file, run any Magic Prompt against it. Magic Prompt is async: POST starts the job, GET polls for the answer (typical completion 2 to 3 seconds for a 50,000-character transcript).

Fire + poll Magic Prompt against a Drive-imported file




# 1. Fire the prompt against the media imported in Tab 1
curl -X POST https://api.speakai.co/v1/prompt/ 
  -H "x-speakai-key: $SPEAK_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{
    "mediaIds": ["14c8dd9c0a89"],
    "prompt": "List every objection raised by the customer with a timestamp.",
    "isStream": false,
    "isIndividualPrompt": true
  }'

# Response (immediate):
# { "status": "success", "data": { "messageId": "", "state": "processing" } }

# 2. Poll for the completed answer (typical 2-3 seconds)
curl "https://api.speakai.co/v1/prompt/messages?mediaIds=14c8dd9c0a89&pageSize=1" 
  -H "x-speakai-key: $SPEAK_API_KEY"

# When state === "completed", the answer field has the structured response.
async function chatWithDriveFile(mediaId, prompt) {
  const headers = { "x-speakai-key": process.env.SPEAK_API_KEY };

  // 1. Fire
  await fetch("https://api.speakai.co/v1/prompt/", {
    method: "POST",
    headers: { ...headers, "Content-Type": "application/json" },
    body: JSON.stringify({
      mediaIds: [mediaId],
      prompt,
      isStream: false,
      isIndividualPrompt: true,
    }),
  });

  // 2. Poll until completed
  for (let i = 0; i < 20; i++) {
    await new Promise(r => setTimeout(r, 1000));
    const r = await fetch(
      `https://api.speakai.co/v1/prompt/messages?mediaIds=${mediaId}&pageSize=1`,
      { headers }
    );
    const j = await r.json();
    const msg = j?.data?.history?.[0]?.messages?.[0];
    if (msg?.state === "completed") return msg.answer;
  }
  return null;
}

Rate limit: 15 Magic Prompt requests per minute per API key. For batch analysis across hundreds of Drive recordings, queue prompts and respect the rate limit on your side.

For analysts and team leads · Natural language

Query your Drive content from Claude or ChatGPT

Connect Speak’s MCP server. Ask Claude or ChatGPT questions about your Drive-imported content in plain English. Pull verbatim quotes, score interviews against rubrics, surface patterns across hundreds of recordings.

1. Install the MCP server




# Claude Desktop / Claude Code
npx @speakai/mcp-server init

# Paste your Speak API key when prompted. Setup takes about 2 minutes.
# Claude.ai (web) and ChatGPT MCP connector
# Settings > Integrations > Add MCP Server
# Remote URL:    https://api.speakai.co/v1/mcp
# Auth header:   x-speakai-key: YOUR_SPEAK_API_KEY

2. Example prompts your team can use today:

  • “Show me every Drive interview from last quarter that mentioned pricing as a blocker.”
  • “Summarize the 12 customer recordings in /Research/Q3 into one Notion-ready writeup.”
  • “Pull verbatim quotes from Drive research interviews tagged onboarding where users mentioned friction.”
  • “Compare the 5 longest design walkthroughs from /UX/Reviews. Score each on decision clarity.”
  • “Find the Drive recording from August 14 where Acme’s CTO joined and pull the action items.”

Tag Drive imports with drive-import so MCP queries can scope to that source. Works with Claude.ai, Claude Desktop, Claude Code, and ChatGPT MCP connectors. View MCP server →

Why Speak AI + Google Drive

Drive is where your media files live. Speak is where they get analyzed. The combination is how a research team processes a year of customer interviews in an afternoon, or a sales ops manager auto-transcribes every recording dropped into a shared folder.

Native Drive endpoint, not just URL upload

Speak ships a dedicated /v1/integration/googledrive/upload endpoint that handles Drive’s auth, file-ID parsing, and download URL fetching server-side. You POST a Drive URL; Speak handles the rest. No need to manage files.get?alt=media proxies or short-lived signed URLs yourself.

Read-only, scoped access

Speak requests read-only OAuth scoped to the files you select via the in-app picker. Your full Drive is never accessible to Speak. Files are not stored beyond the processing window unless you explicitly save them to your Speak account. Speak does not train on your data.

Custom Magic Prompts, not fixed templates

Speak’s Magic Prompt runs your prompts on every Drive-imported file. Discovery checklist scoring, theme extraction, verbatim quote pulling, custom rubric scoring, whatever your team needs. Save prompts once, run them on every file forever.

Multi-source ingest, not just Drive

Drive is one of dozens of inputs. The same Speak workspace ingests Zoom, Microsoft Teams, Google Meet, Webex, Twilio, Loom, Dropbox, OneDrive, podcast audio, and direct file uploads. One library, every conversation across every storage and meeting platform.

Teams trust Speak AI for their most important calls

★★★★★
4.9 on G2

“Speak AI has been instrumental in transforming how we handle qualitative data. The transcription accuracy is impressive, and the NLP insights save us hours of manual analysis.”

Research Director | Consulting Firm

“We switched from Otter.ai and the depth of analysis is on another level. Sentiment scoring, keyword extraction, and theme detection all happen automatically.”

Product Manager | SaaS Company

“The ability to search across all our customer calls and pull specific moments is a game-changer for our support team.”

Head of CX | Enterprise Tech

How to use Speak AI with Google Drive for transcription and analysis

Google Drive is where most teams park their media. Customer interview recordings live in Drive folders. Sales call recordings exported from Zoom or Meet land in Drive. Product demo videos, design walkthrough Looms, podcast intake files all flow through Drive at some point. The challenge has always been turning those archives into something analyzable. Speak AI solves it by treating Drive as a first-class input: native OAuth, native upload endpoint, a Magic Prompt analysis layer that runs on top.

Where Speak fits in the Drive workflow

Speak runs after the file lands in Drive. You connect Drive once via OAuth, then either pick a file via the in-app Drive picker, or POST a Drive URL to Speak’s /v1/integration/googledrive/upload endpoint, or set up a Drive folder watch that auto-imports new files. Speak fetches the file using your stored OAuth token, transcribes it in 100+ languages, and runs AI analysis. The transcript and structured insight are then queryable through the Speak app, the API, or the MCP server.

Speak’s native Drive upload endpoint vs raw URL upload

Speak’s generic /v1/media/upload endpoint accepts any URL, but Drive URLs require auth. Most generic uploaders hit Drive’s files.get?alt=media redirect URL and get blocked. Speak’s dedicated Drive endpoint (/v1/integration/googledrive/upload) handles this server-side: parses the file ID from the Drive URL, fetches metadata via the Drive API with your stored OAuth token, then ingests the actual file content. You only POST the Drive URL; Speak does the rest.

OAuth scopes and security

Speak requests read-only Drive OAuth (drive.readonly for full Drive read access, or drive.file for picker-selected files only). Most teams use drive.file for tighter scope. Your full Drive is never accessible to Speak unless you grant drive.readonly. Drive files are not stored on Speak’s servers beyond the processing window unless you save them to your Speak account. Speak ships SOC 2, GDPR-compliant, and HIPAA-eligible plans for healthcare and enterprise customers.

How do I listen to a Google Drive MP3 link as an AI assistant?

Connect Drive in Speak (Settings -> Integrations -> Google Drive), then either pick the MP3 file from the in-app picker or POST its Drive URL to /v1/integration/googledrive/upload. Speak transcribes it in your chosen language and returns a full speaker-labeled transcript, sentiment analysis, and Magic Prompt-ready content. Average processing time for a 60-minute file is under 3 minutes.

How do I analyze audio from a Google Drive link with AI?

Once Speak imports the file, run any Magic Prompt against it via POST /v1/prompt/. Common prompts: “Extract every action item with the speaker who committed to it”, “List the top 5 themes with verbatim supporting quotes”, “Score this interview against our discovery rubric on a 0-10 scale”. Speak returns structured answers in 2 to 3 seconds for a 50,000-character transcript.

Can ChatGPT integrate with Google Drive?

ChatGPT can read documents you paste into it but cannot natively connect to Google Drive, process audio or video files from Drive, or run automated folder watches. Speak AI handles all three: native Drive OAuth, full audio and video transcription in 100+ languages, and folder-watch automation that processes files the moment they land in a watched Drive folder. Pair Speak with ChatGPT via Speak’s MCP server for natural-language search across your Drive library.

Use cases by role

Customer research teams use Speak with Drive to process interview archives at scale. Watch a “Research Interviews” Drive folder, every new file lands transcribed and analyzed, then ask Claude via MCP to surface common themes. See Speak AI for qualitative researchers.

Sales and RevOps teams auto-transcribe call recordings exported from Zoom or Meet into a shared Drive folder. Sentiment analysis, action items, and structured CRM push happen automatically. See Speak AI for sales teams.

Product and design teams archive Loom walkthroughs and recorded user-test sessions in Drive. Speak extracts decisions and open questions via Magic Prompt; results push to Notion or Linear automatically.

Customer support teams store inbound call recordings in a Drive archive, run Magic Prompt sentiment analysis on the full corpus, and surface escalation patterns across thousands of calls.

Frequently asked questions

What is a Google Drive AI assistant?

A Google Drive AI assistant connects to your Drive and analyzes the content inside your files without forcing you to download or copy them. Speak AI does this for audio, video, and text files: connect Drive once via OAuth, then pick or POST any Drive URL and Speak handles transcription, summarization, and Magic Prompt analysis automatically.

How do I use AI with Google Drive?

Connect Drive in Speak under Settings -> Integrations -> Google Drive. Use the in-app file picker to import a single file, the /v1/integration/googledrive/upload endpoint to import programmatically, or set up a Drive folder watch via the Drive Push API to auto-process new files. All three paths produce the same output: speaker-labeled transcript, sentiment analysis, and Magic Prompt-ready content.

How do I listen to a Google Drive MP3 link as an AI assistant?

POST the Drive URL to Speak’s /v1/integration/googledrive/upload endpoint. Speak parses the file ID, fetches the file using your stored OAuth token, and transcribes it in 100+ languages. Average processing time for a 60-minute MP3 is under 3 minutes. The transcript is editable, exportable, and queryable through the Speak app or API.

How do I analyze audio from a Google Drive link with AI?

After Speak imports the file, run any Magic Prompt against it. Magic Prompt is async: POST starts the job, GET polls for the answer (typical completion 2 to 3 seconds for a 50,000-character transcript). Common prompts: extract action items, score against rubrics, pull verbatim quotes, generate Notion-ready writeups.

Is Speak the AI that can access Google Drive?

Yes. Speak AI ships native Google Drive OAuth and a dedicated upload endpoint. Speak requests read-only access scoped to files you explicitly select. Your full Drive is never accessible. Files are not stored on Speak’s servers beyond the processing window unless you save them to your Speak account. Speak does not train on your data and offers HIPAA-eligible plans for enterprise customers.

Can ChatGPT integrate with Google Drive?

ChatGPT can read documents you paste into it but cannot natively connect to Google Drive, process audio or video files from Drive, or run automated folder watches. Speak AI handles all three: native Drive OAuth, full audio and video transcription in 100+ languages, and folder-watch automation. Pair with Speak’s MCP server to query your Drive library from ChatGPT or Claude.

Start using Speak AI with Google Drive today

83 analysis tools. 100+ languages. Native Drive OAuth, native upload endpoint, folder watch, Magic Prompt, MCP-native for Claude and ChatGPT. Same workspace as your Zoom, Teams, Meet, and Webex calls.

Connect Google Drive free

Create your account, connect Drive, and import your first file via the picker. Full access for 7 days. No credit card required.

View the API docs

Full reference for the Drive upload endpoint, the connect flow, the webhook event types, and the Magic Prompt API. Plus the official MCP server on NPM and the Speak Zapier app for no-code Drive automations.