ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Workflows
  3. Cross-Platform Content Idea Pipeline in n8n
Workflow

Cross-Platform Content Idea Pipeline in n8n

Build a daily n8n workflow that pulls Reddit topics, TikTok trends, and YouTube results through one Scavio key, then feeds an LLM for content ideas.

Start FreeAPI Docs

Overview

This n8n workflow runs once a day and gathers raw signal from three places people actually talk about your niche: Reddit discussion topics, TikTok trending videos for a hashtag, and YouTube search results. It sends all of that to an LLM node that synthesizes a ranked list of content ideas. The point is to stop running three separate scrapers. Instead of one scraper fighting Reddit, another fighting TikTok's app API, and a third dealing with YouTube, you make three POST calls to Scavio with a single Bearer key and one credit pool. Reddit search is 1 credit. TikTok hashtag lookup is 1 credit, and the hashtag videos call is another 1 credit. YouTube search is 1 credit. So a single daily run across the four data calls costs roughly 4 credits. At Scavio's pay-as-you-go rate of $0.005 per credit that's about 2 cents a day, and the Project plan at $30/month gives you 7,000 credits, far more than a daily content pipeline burns. The honest tradeoff: Scavio gives you the data nodes, not the whole workflow. You still build the n8n schedule trigger, wire your own LLM credential (OpenAI, Anthropic, or whatever you run), and add the posting or notification step at the end. Scavio replaces the scraping layer; it doesn't replace n8n. If your only goal is consistency across platforms, the win here is that all three sources return structured JSON with the same auth, so your LLM node sees a uniform payload instead of three differently-shaped scraper outputs. That's where the original r/n8nforbeginners build usually breaks: each scraper returns a different shape, breaks on a different day, and needs its own proxy and CAPTCHA handling. One key, one error format, one place to debug.

Trigger

Daily schedule trigger at 7 AM (n8n Cron node), or a Telegram message to run on demand

Schedule

Daily at 7 AM (recommended), or hourly during a launch week

Workflow Steps

1

Trigger the run

An n8n Schedule (Cron) node fires daily at 7 AM. Swap in a Telegram trigger node if you'd rather run it on demand by sending a message.

2

Pull Reddit topics

POST your niche query to /api/v1/reddit/search (1 credit). You get back post titles, scores, and comment counts, the discussions people are actually having today.

3

Resolve the TikTok hashtag

POST the hashtag name to /api/v1/tiktok/hashtag (1 credit) to get its challenge_id. This is step one of TikTok's two-step lookup; you can't fetch videos by name directly.

4

Fetch trending TikTok videos

POST the hashtag to /api/v1/tiktok/hashtag/videos (1 credit) for the current trending clips and play counts under that tag.

5

Search YouTube

POST to /api/v1/youtube/search with the wire body field "search" (not "query"; 1 credit) to see what's ranking and getting views for your topic on YouTube.

6

Synthesize with an LLM node

Merge the three payloads and pass them to an n8n LLM node (OpenAI or Anthropic credential). Prompt it to cluster themes and return a ranked list of cross-platform content ideas.

7

Deliver the ideas

Send the ranked list to Slack, Notion, a Google Sheet, or email. Scavio doesn't post for you, so this last step is your own node.

Python Implementation

Python
import requests

API_KEY = "your_scavio_api_key"
BASE = "https://api.scavio.dev/api/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# Pick the topics and hashtag you want fresh ideas around.
SUBREDDIT_QUERY = "ai agents"
HASHTAG = "aiagents"
YOUTUBE_QUERY = "ai agents tutorial"


def reddit_topics(query, count=15):
    res = requests.post(f"{BASE}/reddit/search",
        headers=HEADERS, json={"query": query, "count": count}, timeout=30)
    res.raise_for_status()
    posts = res.json().get("data", {}).get("posts", [])
    return [{"title": p.get("title"), "score": p.get("score"),
             "comments": p.get("num_comments"), "url": p.get("url")} for p in posts]


def tiktok_trending(hashtag, count=15):
    # Step 1: resolve the hashtag name to a challenge_id.
    meta = requests.post(f"{BASE}/tiktok/hashtag",
        headers=HEADERS, json={"hashtag": hashtag}, timeout=30)
    meta.raise_for_status()
    challenge = meta.json().get("data", {})
    # Step 2: pull the trending videos for that hashtag.
    vids = requests.post(f"{BASE}/tiktok/hashtag/videos",
        headers=HEADERS, json={"hashtag": hashtag, "count": count}, timeout=30)
    vids.raise_for_status()
    videos = vids.json().get("data", {}).get("videos", [])
    return {"challenge_id": challenge.get("challenge_id"),
            "videos": [{"desc": v.get("desc"), "plays": v.get("play_count")}
                       for v in videos]}


def youtube_results(query, count=15):
    # Wire body uses "search", not "query".
    res = requests.post(f"{BASE}/youtube/search",
        headers=HEADERS, json={"search": query, "count": count}, timeout=30)
    res.raise_for_status()
    items = res.json().get("data", {}).get("videos", [])
    return [{"title": v.get("title"), "channel": v.get("channel"),
             "views": v.get("view_count")} for v in items]


def collect():
    return {
        "reddit": reddit_topics(SUBREDDIT_QUERY),
        "tiktok": tiktok_trending(HASHTAG),
        "youtube": youtube_results(YOUTUBE_QUERY),
    }


if __name__ == "__main__":
    payload = collect()
    # Hand `payload` to your LLM node (n8n OpenAI/Anthropic node) for idea synthesis.
    print(json.dumps(payload, indent=2))

JavaScript Implementation

JavaScript
const API_KEY = "your_scavio_api_key";
const BASE = "https://api.scavio.dev/api/v1";
const HEADERS = {
  Authorization: `Bearer ${API_KEY}`,
  "Content-Type": "application/json",
};

const SUBREDDIT_QUERY = "ai agents";
const HASHTAG = "aiagents";
const YOUTUBE_QUERY = "ai agents tutorial";

async function post(path, body) {
  const res = await fetch(`${BASE}${path}`, {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify(body),
  });
  if (!res.ok) throw new Error(`scavio ${path} ${res.status}`);
  return res.json();
}

async function redditTopics(query, count = 15) {
  const json = await post("/reddit/search", { query, count });
  const posts = json.data?.posts ?? [];
  return posts.map((p) => ({
    title: p.title,
    score: p.score,
    comments: p.num_comments,
    url: p.url,
  }));
}

async function tiktokTrending(hashtag, count = 15) {
  // Step 1: resolve hashtag name to a challenge_id.
  const meta = await post("/tiktok/hashtag", { hashtag });
  const challenge = meta.data ?? {};
  // Step 2: pull trending videos for that hashtag.
  const vids = await post("/tiktok/hashtag/videos", { hashtag, count });
  const videos = vids.data?.videos ?? [];
  return {
    challenge_id: challenge.challenge_id,
    videos: videos.map((v) => ({ desc: v.desc, plays: v.play_count })),
  };
}

async function youtubeResults(query, count = 15) {
  // Wire body uses "search", not "query".
  const json = await post("/youtube/search", { search: query, count });
  const items = json.data?.videos ?? [];
  return items.map((v) => ({
    title: v.title,
    channel: v.channel,
    views: v.view_count,
  }));
}

async function collect() {
  const [reddit, tiktok, youtube] = await Promise.all([
    redditTopics(SUBREDDIT_QUERY),
    tiktokTrending(HASHTAG),
    youtubeResults(YOUTUBE_QUERY),
  ]);
  return { reddit, tiktok, youtube };
}

collect()
  // Hand `payload` to your LLM node (n8n OpenAI/Anthropic node) for synthesis.
  .then((payload) => console.log(JSON.stringify(payload, null, 2)))
  .catch((err) => console.error(err));

Platforms Used

Frequently Asked Questions

This n8n workflow runs once a day and gathers raw signal from three places people actually talk about your niche: Reddit discussion topics, TikTok trending videos for a hashtag, and YouTube search results. It sends all of that to an LLM node that synthesizes a ranked list of content ideas. The point is to stop running three separate scrapers. Instead of one scraper fighting Reddit, another fighting TikTok's app API, and a third dealing with YouTube, you make three POST calls to Scavio with a single Bearer key and one credit pool. Reddit search is 1 credit. TikTok hashtag lookup is 1 credit, and the hashtag videos call is another 1 credit. YouTube search is 1 credit. So a single daily run across the four data calls costs roughly 4 credits. At Scavio's pay-as-you-go rate of $0.005 per credit that's about 2 cents a day, and the Project plan at $30/month gives you 7,000 credits, far more than a daily content pipeline burns. The honest tradeoff: Scavio gives you the data nodes, not the whole workflow. You still build the n8n schedule trigger, wire your own LLM credential (OpenAI, Anthropic, or whatever you run), and add the posting or notification step at the end. Scavio replaces the scraping layer; it doesn't replace n8n. If your only goal is consistency across platforms, the win here is that all three sources return structured JSON with the same auth, so your LLM node sees a uniform payload instead of three differently-shaped scraper outputs. That's where the original r/n8nforbeginners build usually breaks: each scraper returns a different shape, breaks on a different day, and needs its own proxy and CAPTCHA handling. One key, one error format, one place to debug.

This workflow uses a daily schedule trigger at 7 am (n8n cron node), or a telegram message to run on demand. Daily at 7 AM (recommended), or hourly during a launch week.

This workflow uses the following Scavio platforms: Reddit, TikTok, YouTube. Each platform is called via the same unified API endpoint.

Yes. Scavio's free tier includes 50 credits on signup with no credit card required. That is enough to test and validate this workflow before scaling it.

Cross-Platform Content Idea Pipeline in n8n

Build a daily n8n workflow that pulls Reddit topics, TikTok trends, and YouTube results through one Scavio key, then feeds an LLM for content ideas.

Get Your API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy