API Reference › Google Ads › validate_video
validate_video
Google Ads
Read
Validate video for ad campaigns (unified tool for all platforms)
Endpoint
POST https://api.adspirer.ai/api/v1/tools/validate_video/execute
Headers
Authorization: Bearer sk_live_... — your Adspirer API key (required)
Content-Type: application/json (required)
Idempotency-Key: <uuid> — recommended for write operations to make retries safe
Description
Validate video for ad campaigns (unified tool for all platforms).
⚠️ IMPORTANT: This is a READ-ONLY validation tool. Safe to call multiple times.
🎯 **What This Tool Does:**
- Validates videos for Google Ads PMAX or TikTok campaigns
- For PMAX: Validates YouTube video (privacy, duration, embeddable)
- For TikTok: Validates public video URL is accessible
- Returns metadata (title, duration, privacy, thumbnail)
**DOES NOT upload videos** - user must already have video uploaded:
- PMAX: Video must be on YouTube (public or unlisted)
- TikTok: Video must be on public hosting (Google Drive, Vimeo, etc.)
**Parameters:**
- video_url_or_id (required): YouTube URL/ID (PMAX) or public video URL (TikTok)
- platform (required): 'pmax' or 'tiktok'
**For PMAX:**
Accepts YouTube formats:
- Full URL: https://youtube.com/watch?v=dQw4w9WgXcQ
- Short URL: https://youtu.be/dQw4w9WgXcQ
- Shorts: https://youtube.com/shorts/dQw4w9WgXcQ
- Direct ID: dQw4w9WgXcQ (11 characters)
Validates:
- Video exists and is accessible
- Privacy is Public or Unlisted (NOT Private)
- Embeddable is enabled
- Duration ≥10 seconds (PMAX requirement)
Returns:
- Video title
- Duration
- Privacy status
- Thumbnail URL
- Video ID
**For TikTok:**
Accepts public video file URLs:
- Google Drive: https://drive.google.com/file/d/ABC123/view
- Vimeo: https://vimeo.com/video/123456
- Dropbox: https://dropbox.com/s/abc/video.mp4
- Any publicly accessible video URL
Validates:
- URL is accessible (HTTP 200)
- Content-Type is video/* (when available)
Returns:
- URL validation status
- Content-Type
- File size (if available)
**Execution Time:** 1-3 seconds (YouTube Data API call or HTTP request)
**When to Use:**
- BEFORE creating a campaign with videos
- To verify video meets platform requirements
- To get video metadata (title, duration)
**Example Usage:**
```
User: "I want to use this YouTube video in my PMAX campaign: dQw4w9WgXcQ"
YOU: [Call validate_video with video_url_or_id="dQw4w9WgXcQ", platform="pmax"]
Response: Video validated, title="Product Demo", duration=45s, ready for use
```
```
User: "Can I use this video for TikTok ads: https://drive.google.com/file/d/ABC/view"
YOU: [Call validate_video with video_url_or_id="https://drive...", platform="tiktok"]
Response: URL validated, accessible, ready for campaign
```
**Error Handling:**
- Private videos: Clear error asking user to change privacy to Public/Unlisted
- Short videos (<10s for PMAX): Error with duration requirement
- Invalid URLs: Error with accessibility details
- Not embeddable: Error asking user to enable embedding
Request body
All tool arguments are wrapped in an arguments object.
| Field | Type | Description |
video_url_or_id | string required | YouTube video URL/ID (for PMAX) OR public video file URL (for TikTok). Examples: 'dQw4w9WgXcQ' (YouTube ID), 'https://youtube.com/watch?v=dQw4w9WgXcQ' (YouTube URL), 'https://youtu.be/dQw4w9WgXcQ' (YouTube short URL), 'https://drive.google.com/file/d/ABC123/view' (Google Drive video), 'https://vimeo.com/video/123456' (Vimeo video) |
platform | string required | Target platform: 'pmax' or 'tiktok'. Determines validation rules and requirements. 'pmax' = Google Ads Performance Max (requires YouTube video). 'tiktok' = TikTok Ads (requires public video URL). |
Example request
{
"arguments": {
"video_url_or_id": "https://example.com",
"platform": "https://example.com"
}
}
Example responses
200 — Success
{
"success": true,
"data": {
"text": "(tool-specific textual output for validate_video)",
"quota": {
"used": 42,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01"
}
},
"tool": "validate_video"
}
400 — Tool-level error (bad arguments / multi-account selection)
{
"success": false,
"error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n - Acme Holdings (ad_account_id=\"act_123456789\")\n - Acme EU (ad_account_id=\"act_987654321\")",
"is_error": true,
"tool": "validate_video"
}
402 — Quota exhausted
{
"success": false,
"error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
"is_error": true,
"tool": "validate_video",
"quota": {
"used": 150,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01",
"upgrade_url": "https://adspirer.ai"
}
}
Try it live
Adspirer REST API — get an API key at adspirer.ai/keys ·
adspirer.ai