YouTube workflow

How to find niche YouTube channels

Build a reviewable creator shortlist from public channel metadata, with API and n8n examples.

Use this workflow to assemble a reviewable list of channels in a defined niche. It is useful for creator landscape research, sponsorship prospecting, podcast guest discovery, and competitor-channel mapping.

What it returns

The Actor returns public channel metadata such as channel title, URL, handle when available, description, subscriber count, video count, and view count. It does not turn YouTube into a private contact database; qualification and outreach remain separate work.

Qualification boundary: subscriber counts and descriptions help prioritize a list, but they do not establish audience fit, response likelihood, sponsorship availability, or endorsement.

A useful first input

export APIFY_TOKEN="your_token"
curl -X POST \
  "https://api.apify.com/v2/acts/northglasslabs~youtube-channel-database-search/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQuery":"woodworking tutorials","maxResults":25,"minSubscribers":1000,"maxSubscribers":100000}' 

Python

import requests
payload = {"searchQuery": "woodworking tutorials", "maxResults": 25, "minSubscribers": 1000, "maxSubscribers": 100000}
channels = requests.post(
    "https://api.apify.com/v2/acts/northglasslabs~youtube-channel-database-search/run-sync-get-dataset-items",
    params={"token": "YOUR_APIFY_TOKEN"}, json=payload, timeout=300,
).json()
for channel in channels:
    print(channel.get("channelName"), channel.get("subscriberCount"), channel.get("channelUrl"))

JavaScript

const input = { searchQuery: "woodworking tutorials", maxResults: 25, minSubscribers: 1000, maxSubscribers: 100000 };
const response = await fetch("https://api.apify.com/v2/acts/northglasslabs~youtube-channel-database-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN", {
  method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(input)
});
const channels = await response.json();
console.table(channels.map(({ channelName, subscriberCount, channelUrl }) => ({ channelName, subscriberCount, channelUrl })));

n8n HTTP Request recipe

1

Use an HTTP Request node with POST and the synchronous dataset-items endpoint.

2

Pass a niche query and a realistic subscriber range. Store the Apify token in credentials.

3

Send results to a table for human review. Add your own columns for fit, audience overlap, and outreach status.

Cost

Start$0.02
Free-tier result$0.00275
Minimum run limit$0.04

At current Free-tier event pricing, 25 stored results plus the start event is approximately $0.08875. Higher Apify tiers receive lower per-result event prices. Verify the live listing before scheduling large recurring runs.

Build a better shortlist

Run YouTube Channel Database Search