Tutorial

How to Monitor Brand Mentions Across Google and YouTube

Build a brand mention monitoring system using the Scavio API. Track your brand name across Google news, organic results, and YouTube automatically.

Brand monitoring is critical for reputation management, PR response, and competitive intelligence. Knowing when your brand is mentioned across Google news, organic results, and YouTube helps you respond to coverage quickly and measure the impact of marketing campaigns. This tutorial builds a multi-platform brand monitoring script that queries Google and YouTube for brand mentions, deduplicates results, and sends a daily digest of new mentions.

Prerequisites

  • Python 3.8 or higher
  • requests library installed
  • A Scavio API key
  • A brand name and optional competitor names to track

Walkthrough

Step 1: Define brands to monitor

Set up a list of brand names and variations to track. Include common misspellings or product names if relevant.

Python
BRANDS = ["Scavio", "scavio.dev", "Scavio API"]
MONITOR_COMPETITORS = ["SerpAPI", "Bright Data"]

Step 2: Fetch Google mentions

Query Google for each brand name and collect organic results and news results as mention candidates.

Python
def google_mentions(brand: str) -> list[dict]:
    data = search_google(brand)
    mentions = data.get("organic_results", [])
    mentions += data.get("news_results", [])
    return [{"source": "google", "title": m.get("title"), "link": m.get("link"), "date": m.get("date")} for m in mentions]

Step 3: Fetch YouTube mentions

Search YouTube for each brand name and collect video titles and URLs as mentions.

Python
def youtube_mentions(brand: str) -> list[dict]:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "youtube", "query": brand}
    )
    r.raise_for_status()
    videos = r.json().get("videos", [])
    return [{"source": "youtube", "title": v.get("title"), "link": v.get("url"), "date": v.get("published_at")} for v in videos]

Step 4: Merge and deduplicate

Combine Google and YouTube mentions, deduplicate by URL, and sort by date.

Python
def collect_mentions(brand: str) -> list[dict]:
    mentions = google_mentions(brand) + youtube_mentions(brand)
    seen = {}
    for m in mentions:
        if m["link"] not in seen:
            seen[m["link"]] = m
    return list(seen.values())

Python Example

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
BRANDS = ["Scavio", "Scavio API"]

def search(platform: str, query: str, extra: dict = {}) -> dict:
    body = {"platform": platform, "query": query, **extra} if platform != "google" else {"query": query, "country_code": "us"}
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY}, json=body)
    r.raise_for_status()
    return r.json()

def monitor(brand: str) -> list[dict]:
    g = search("google", brand)
    y = search("youtube", brand)
    mentions = []
    for m in g.get("organic_results", [])[:5]:
        mentions.append({"src": "google", "title": m.get("title"), "url": m.get("link")})
    for v in y.get("videos", [])[:5]:
        mentions.append({"src": "youtube", "title": v.get("title"), "url": v.get("url")})
    return mentions

if __name__ == "__main__":
    for brand in BRANDS:
        print(f"\n=== {brand} ===")
        for m in monitor(brand):
            print(f"[{m['src']}] {m['title']}")

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
const BRANDS = ["Scavio", "Scavio API"];

async function search(platform, query) {
  const body = platform === "google" ? { query, country_code: "us" } : { platform, query };
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify(body)
  });
  return res.json();
}

async function monitor(brand) {
  const [g, y] = await Promise.all([search("google", brand), search("youtube", brand)]);
  const mentions = [];
  (g.organic_results || []).slice(0, 5).forEach(m => mentions.push({ src: "google", title: m.title, url: m.link }));
  (y.videos || []).slice(0, 5).forEach(v => mentions.push({ src: "youtube", title: v.title, url: v.url }));
  return mentions;
}

async function main() {
  for (const brand of BRANDS) {
    console.log(`\n=== ${brand} ===`);
    const m = await monitor(brand);
    m.forEach(item => console.log(`[${item.src}] ${item.title}`));
  }
}
main().catch(console.error);

Expected Output

JSON
=== Scavio ===
[google] Scavio Review: Real-Time Search API for AI Agents
[google] Scavio vs SerpAPI: Which Is Better in 2026?
[youtube] I Built an AI Agent with Scavio - Full Tutorial
[youtube] Scavio API vs Bright Data Comparison

Related Tutorials

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.8 or higher. requests library installed. A Scavio API key. A brand name and optional competitor names to track. A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Start Building

Build a brand mention monitoring system using the Scavio API. Track your brand name across Google news, organic results, and YouTube automatically.