Sign in to Channel ID Finder

← All posts

YouTube SEO: How to Research Competitor Channel IDs

channelid.app blog

Competitor research on YouTube starts with one thing: knowing which channels you are actually competing against. Channel IDs are how you track them reliably — here is the full process.


Why Channel IDs Matter for YouTube SEO Research

When you track competitors for YouTube SEO, you cannot rely on channel names or handles alone:

A Channel ID (UCBcRF18a7Qf58cCRy5xuWwQ) is permanent and unique. It is the correct anchor for any serious competitor research setup.


Step 1: Identify Your Real Competitors

Before collecting Channel IDs, identify which channels you are actually competing with. The right competitors are channels ranking for the same keywords you are targeting.

Find Competitors via YouTube Search

  1. Search YouTube for your target keywords
  2. Note which channels appear most frequently in results
  3. Check their view counts and upload frequency — a channel with 10K subs but 1M views per video on your keyword is a real competitor

Find Competitors via Google

YouTube videos appear in Google search results. Search your target keywords on Google and check which YouTube channels appear in the video carousel and "Videos" tab. These channels are ranking in both YouTube and Google.


Step 2: Collect Channel IDs

Once you have a list of competitor channels, get their Channel IDs.

Fastest method: channelid.app

  1. Open the competitor's YouTube channel page
  2. Copy the URL (any format: @handle, /c/, /channel/, /user/)
  3. Paste into channelid.app
  4. Copy the Channel ID

For 20+ channels, use channelid.app's bulk input: paste all URLs at once and download the CSV.


Step 3: Build Your Competitor Tracking Spreadsheet

Channel Name Channel ID Handle Niche Subscribers Notes
MKBHD UCBcRF18a7Qf58cCRy5xuWwQ @mkbhd Tech reviews 18M Top competitor
Linus Tech Tips UCXuqSBlHAE6Xw-yeJA0Tunw @linustechtips Tech 15M Different format

The Channel ID column is the stable anchor. Everything else in the row can be updated as it changes.


Step 4: Track Competitor Uploads

With Channel IDs, monitor what your competitors are publishing and identify keyword opportunities.

Using the YouTube Data API

import requests

def get_recent_video_titles(channel_id: str, api_key: str, count: int = 20) -> list[str]:
    ch = requests.get(
        "https://www.googleapis.com/youtube/v3/channels",
        params={"part": "contentDetails", "id": channel_id, "key": api_key}
    ).json()

    uploads_playlist = ch["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"]

    vids = requests.get(
        "https://www.googleapis.com/youtube/v3/playlistItems",
        params={"part": "snippet", "playlistId": uploads_playlist, "maxResults": count, "key": api_key}
    ).json()

    return [item["snippet"]["title"] for item in vids.get("items", [])]

Scan titles for: keywords you are not targeting yet, video formats that get high engagement, topics your audience is searching for that competitors are covering.

Using YouTube RSS (No API Key)

https://www.youtube.com/feeds/videos.xml?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ

Subscribe in any RSS reader (Feedly, Inoreader) to get notified when competitors publish new videos.


Step 5: Analyze Competitor Video Performance

def get_top_videos(channel_id: str, api_key: str, count: int = 50) -> list[dict]:
    ch = requests.get(
        "https://www.googleapis.com/youtube/v3/channels",
        params={"part": "contentDetails", "id": channel_id, "key": api_key}
    ).json()
    uploads_id = ch["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"]

    pl_items = requests.get(
        "https://www.googleapis.com/youtube/v3/playlistItems",
        params={"part": "snippet", "playlistId": uploads_id, "maxResults": count, "key": api_key}
    ).json()

    video_ids = [item["snippet"]["resourceId"]["videoId"] for item in pl_items.get("items", [])]

    stats_resp = requests.get(
        "https://www.googleapis.com/youtube/v3/videos",
        params={"part": "snippet,statistics", "id": ",".join(video_ids), "key": api_key}
    ).json()

    videos = []
    for item in stats_resp.get("items", []):
        videos.append({
            "title": item["snippet"]["title"],
            "views": int(item["statistics"].get("viewCount", 0)),
            "published": item["snippet"]["publishedAt"],
        })

    return sorted(videos, key=lambda x: x["views"], reverse=True)

High-view videos on competitor channels = proven keyword demand. Those are topics worth targeting.


Step 6: Automate Monitoring

n8n workflow: 1. Schedule — run weekly 2. Google Sheets — read competitor Channel IDs 3. HTTP Request — YouTube API: get latest video titles per channel 4. Google Sheets — append new titles with date 5. Slack/Email — alert when competitors publish on specific keywords

Make scenario: 1. YouTube module: Watch Videos → By Channel ID 2. Filter: title contains your target keyword 3. Slack: post alert with video title and URL

Both approaches use the Channel ID as the stable input. Without it, these automations break every time a competitor changes their handle.


Tools That Use Channel IDs

Tool How Channel ID Is Used
vidIQ Track competitor channels by ID
TubeBuddy Channel audit and comparison
Social Blade Stats history tracking
n8n YouTube trigger nodes
Make (Integromat) YouTube Watch Videos module

Summary

  1. Identify real competitors — search your target keywords on YouTube and Google
  2. Collect Channel IDs — paste competitor URLs into channelid.app
  3. Store them — Google Sheet with name, Channel ID, handle, niche
  4. Monitor uploads — RSS feeds or YouTube API, keyed to Channel ID
  5. Analyze top videos — find their highest-performing content and identify keyword gaps
  6. Automate — n8n or Make scenario that alerts you to competitor activity

The Channel ID is what makes all of this repeatable. Handles and display names change — Channel IDs do not.

Find any YouTube Channel ID instantly

Paste any channel URL — @handle, /c/, /channel/, or /user/ format — and get the Channel ID in one click.

Try channelid.app — Free