← Back to Skills Marketplace
nicemaths123

AI Gaming Content

by nicemaths123 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
89
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ai-gaming-content
Description
Scrapes trending gaming data and viral clips to generate optimized scripts and produce viral gaming videos with AI for content creators and monetization.
README (SKILL.md)

AI Gaming Content and Monetization Machine: Research Trends, Script and Produce Viral Gaming Videos That Make Money

Display Name: AI Gaming Content and Monetization Machine
Version: 1.0.0 Author: @g4dr

Overview

Gaming is the largest entertainment industry on the planet. $200B+ per year and growing. This skill scrapes trending games, viral clips, Reddit discussions, YouTube gaming channels and TikTok gaming content to find what is blowing up right now, then generates optimized scripts and produces complete gaming content videos with AI. Whether you run a gaming channel, review games, create compilations or do commentary, this skill builds your content factory.

Works for: gaming YouTubers, TikTok gaming creators, Twitch streamers expanding to short-form, gaming news channels, esports content teams, game review sites.

Powered by: Apify + InVideo AI + Claude AI


What This Skill Does

  • Scrape trending games, clips and discussions from Reddit gaming subreddits (r/gaming, r/pcgaming, r/PS5, r/NintendoSwitch)
  • Extract top-performing gaming videos from TikTok and YouTube to reverse-engineer what works
  • Monitor Steam trending, new releases and most-wishlisted games via web scraping
  • Detect emerging game trends 48 to 72 hours before they peak on YouTube
  • Analyze which video formats (reviews, tier lists, "hot takes", news, tutorials) get the most engagement per game
  • Generate 30 optimized gaming video scripts with proven hooks and A/B variations
  • Produce complete 9:16 short-form gaming videos with voiceover, captions and music
  • Build a full month content calendar mapped to upcoming game releases and events
  • Identify monetization angles: sponsorships, affiliate programs, ad revenue optimization

Step 1: Set Up Your Research Engine

This skill uses Apify to scrape gaming trend data across platforms.

  1. Create your free account at Apify
  2. Go to Settings > Integrations and copy your Personal API Token
  3. Store it securely:
    export APIFY_TOKEN=apify_api_xxxxxxxxxxxxxxxx
    

Step 2: Set Up Your Video Engine

This skill uses InVideo AI to produce gaming content videos.

  1. Create your account at InVideo AI
  2. Choose a plan with API access
  3. Copy your API key:
    export INVIDEO_API_KEY=iv_api_xxxxxxxxxxxxxxxx
    

Step 3: Install Dependencies

npm install apify-client axios

Apify Actors Used

Actor What It Scrapes Gaming Data
Apify Reddit Scraper r/gaming, r/pcgaming, r/PS5, r/NintendoSwitch Trending discussions, controversies, leaks, memes
Apify TikTok Hashtag Scraper Gaming TikTok content Viral clips, views, engagement, sounds
Apify YouTube Scraper Gaming YouTube channels and search Views, likes, upload frequency, topics
Apify Twitter Scraper Gaming Twitter/X Developer announcements, community reactions
Apify Google Trends Scraper Search interest for games Rising vs declining games, seasonal patterns
Apify Website Content Crawler Steam, IGN, Metacritic New releases, review scores, wishlists
Apify Google News Scraper Gaming news sites Breaking news, controversy, updates
Apify Instagram Scraper Gaming Instagram Fan art, memes, cosplay trends

Examples

Scrape Trending Gaming Discussions from Reddit

import ApifyClient from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

async function scrapeGamingReddit() {
  const subreddits = [
    "https://www.reddit.com/r/gaming/",
    "https://www.reddit.com/r/pcgaming/",
    "https://www.reddit.com/r/PS5/",
    "https://www.reddit.com/r/NintendoSwitch/",
    "https://www.reddit.com/r/Games/"
  ];

  const run = await client.actor("apify/reddit-scraper").call({
    startUrls: subreddits.map(url => ({ url })),
    maxPostCount: 30,
    maxComments: 10,
    sort: "hot"
  });

  const { items } = await run.dataset().getData();

  // Score by controversy potential (high comments to upvotes ratio = hot take territory)
  return items.map(post => ({
    title: post.title,
    subreddit: post.subreddit,
    score: post.score,
    comments: post.numComments,
    upvoteRatio: post.upvoteRatio,
    controversyScore: post.numComments > 0 ? Math.round(post.numComments / Math.max(post.score, 1) * 100) : 0,
    url: post.url,
    created: post.created,
    flair: post.flair || ''
  })).sort((a, b) => b.controversyScore - a.controversyScore);
}

const trending = await scrapeGamingReddit();
console.log("Top trending gaming topics:");
trending.slice(0, 10).forEach((t, i) => {
  console.log(`${i + 1}. [${t.controversyScore}] ${t.title} (${t.subreddit})`);
});

Scrape Viral Gaming Content from TikTok and YouTube

async function scrapeViralGamingContent(game = "gaming") {
  const hashtags = [game, `${game}tiktok`, 'gamingtiktok', 'gamingclips', 'gamernews'];

  const [ttRun, ytRun] = await Promise.all([
    client.actor("apify/tiktok-hashtag-scraper").call({
      hashtags: hashtags.slice(0, 3),
      resultsPerPage: 30,
      shouldDownloadVideos: false
    }),
    client.actor("apify/youtube-scraper").call({
      searchKeywords: [`${game} 2025`, `${game} news`, `${game} review`],
      maxResults: 30,
      type: "video",
      sortBy: "view_count"
    })
  ]);

  const [tt, yt] = await Promise.all([
    ttRun.dataset().getData(),
    ytRun.dataset().getData()
  ]);

  // Identify top formats
  const formatDetection = (text) => {
    const t = (text || '').toLowerCase();
    if (t.includes('tier list') || t.includes('ranking')) return 'Tier List';
    if (t.includes('review') || t.includes('worth')) return 'Review';
    if (t.includes('vs') || t.includes('versus') || t.includes('better')) return 'Comparison';
    if (t.includes('tip') || t.includes('trick') || t.includes('hack')) return 'Tips & Tricks';
    if (t.includes('news') || t.includes('update') || t.includes('patch')) return 'News/Update';
    if (t.includes('hot take') || t.includes('unpopular') || t.includes('controversial')) return 'Hot Take';
    if (t.includes('compilation') || t.includes('moments') || t.includes('montage')) return 'Compilation';
    return 'Other';
  };

  const tiktokTop = tt.items.sort((a, b) => (b.playCount || 0) - (a.playCount || 0)).slice(0, 15);
  const youtubeTop = yt.items.sort((a, b) => (b.viewCount || 0) - (a.viewCount || 0)).slice(0, 15);

  // Count formats
  const formatCounts = {};
  [...tiktokTop, ...youtubeTop].forEach(v => {
    const format = formatDetection(v.text || v.title);
    formatCounts[format] = (formatCounts[format] || 0) + 1;
  });

  return {
    tiktokTop: tiktokTop.map(v => ({
      text: v.text,
      views: v.playCount,
      likes: v.diggCount,
      shares: v.shareCount,
      format: formatDetection(v.text),
      sound: v.musicMeta?.musicName
    })),
    youtubeTop: youtubeTop.map(v => ({
      title: v.title,
      views: v.viewCount,
      likes: v.likeCount,
      channel: v.channelName,
      format: formatDetection(v.title),
      duration: v.duration
    })),
    winningFormats: Object.entries(formatCounts)
      .sort((a, b) => b[1] - a[1])
      .map(([format, count]) => ({ format, count })),
    trendingSounds: tiktokTop
      .filter(v => v.sound)
      .map(v => v.sound)
      .filter((v, i, a) => a.indexOf(v) === i)
      .slice(0, 5)
  };
}

const gamingContent = await scrapeViralGamingContent("GTA6");
console.log("Winning formats:", gamingContent.winningFormats);

Detect Emerging Games Before They Peak

async function detectEmergingGames() {
  // Scrape Reddit for rising discussions
  const redditRun = await client.actor("apify/reddit-search-scraper").call({
    queries: ["new game 2025", "upcoming game", "game announcement", "hidden gem game"],
    maxItems: 50
  });

  // Scrape Google Trends for rising game searches
  const trendsRun = await client.actor("apify/google-trends-scraper").call({
    searchTerms: ["new video game", "game release 2025", "best game 2025"],
    geo: "US",
    timeRange: "past7Days"
  });

  // Scrape YouTube for low-view-count videos on trending topics (content gap)
  const ytRun = await client.actor("apify/youtube-scraper").call({
    searchKeywords: ["new game 2025 review"],
    maxResults: 30,
    type: "video",
    sortBy: "date"
  });

  const [reddit, trends, yt] = await Promise.all([
    redditRun.dataset().getData(),
    trendsRun.dataset().getData(),
    ytRun.dataset().getData()
  ]);

  // Find games mentioned in Reddit with high engagement but few YouTube videos
  const gameNames = new Set();
  reddit.items.forEach(post => {
    const words = (post.title || '').split(/\s+/);
    // Simple heuristic: capitalized multi-word phrases are likely game names
    words.forEach((w, i) => {
      if (w.length > 3 && w[0] === w[0].toUpperCase() && words[i + 1]?.[0] === words[i + 1]?.[0]?.toUpperCase()) {
        gameNames.add(`${w} ${words[i + 1]}`);
      }
    });
  });

  // Check which have few YouTube results (content gap = opportunity)
  const lowCompetition = yt.items
    .filter(v => (v.viewCount || 0) \x3C 10000)
    .map(v => v.title);

  return {
    emergingTopics: reddit.items
      .sort((a, b) => (b.score || 0) - (a.score || 0))
      .slice(0, 10)
      .map(p => ({ title: p.title, score: p.score, comments: p.numComments })),
    potentialGameNames: [...gameNames].slice(0, 20),
    contentGaps: lowCompetition.slice(0, 10),
    searchTrends: trends.items?.slice(0, 10)
  };
}

const emerging = await detectEmergingGames();
console.log("Emerging topics:", emerging.emergingTopics.slice(0, 5));
console.log("Content gaps:", emerging.contentGaps.slice(0, 5));

Generate Gaming Video Scripts with AI

import axios from 'axios';

async function generateGamingScripts(trendData, gameTopic, count = 5) {
  const topHooks = trendData.tiktokTop?.slice(0, 5).map(v =>
    `"${(v.text || '').substring(0, 80)}" (${(v.views || 0).toLocaleString()} views)`
  ).join('\
') || 'No TikTok data';

  const formats = trendData.winningFormats?.map(f => `${f.format} (${f.count}x)`).join(', ') || 'Mixed';

  const prompt = `You are a viral gaming content creator. Generate ${count} short-form video scripts about "${gameTopic}".

VIRAL DATA (from real top-performing gaming videos):
Top hooks:
${topHooks}

Winning formats: ${formats}

RULES FOR EACH SCRIPT:
- Hook in first 2 seconds (gaming audiences scroll FAST)
- 100 to 160 words (30 to 45 second video for gaming)
- Use one of these proven formats: Hot Take, Tier List, "Things You Missed", News Reaction, Tips
- Include gaming-specific language (no corporate tone)
- Each script gets 2 hook variations (A/B test)
- End with engagement CTA ("drop your rank in comments", "follow for daily gaming news")
- Include 5 hashtags per script

FORMAT:
SCRIPT [number]: [title]
FORMAT: [format type]
HOOK A: [hook variation 1]
HOOK B: [hook variation 2]
BODY: [script body]
CTA: [call to action]
HASHTAGS: [5 hashtags]

Generate all ${count} scripts now.`;

  const { data } = await axios.post('https://api.anthropic.com/v1/messages', {
    model: "claude-sonnet-4-20250514",
    max_tokens: 2000,
    messages: [{ role: "user", content: prompt }]
  }, {
    headers: {
      'x-api-key': process.env.CLAUDE_API_KEY,
      'anthropic-version': '2023-06-01'
    }
  });

  return data.content[0].text;
}

const scripts = await generateGamingScripts(gamingContent, "GTA 6", 5);
console.log(scripts);

Produce Gaming Videos with InVideo AI

const invideo = axios.create({
  baseURL: 'https://api.invideo.io/v1',
  headers: {
    'Authorization': `Bearer ${process.env.INVIDEO_API_KEY}`,
    'Content-Type': 'application/json'
  }
});

async function produceGamingVideo(script) {
  const response = await invideo.post('/videos/generate', {
    script: script,
    format: "9:16",
    duration: "short",
    style: "dynamic",
    voiceover: {
      enabled: true,
      voice: "en-US-male-1",
      speed: 1.15 // gaming audience prefers fast pacing
    },
    captions: {
      enabled: true,
      style: "bold-bottom",
      highlight: true
    },
    music: {
      enabled: true,
      mood: "energetic",
      volume: 0.3
    }
  });

  const videoId = response.data.videoId;

  let exportUrl = null;
  while (!exportUrl) {
    await new Promise(r => setTimeout(r, 5000));
    const status = await invideo.get(`/videos/${videoId}/status`);
    if (status.data.state === "completed") exportUrl = status.data.exportUrl;
    if (status.data.state === "failed") throw new Error("Video generation failed");
  }

  return { videoId, exportUrl };
}

Monetization Analysis

async function analyzeMonetization(game, youtubeData) {
  // Estimate CPM by niche (gaming CPMs are $3-8)
  const estimatedCPM = 5.50;

  const channelAnalysis = youtubeData.youtubeTop.map(v => {
    const estimatedRevenue = Math.round((v.views / 1000) * estimatedCPM * 100) / 100;
    return {
      title: v.title,
      channel: v.channel,
      views: v.views,
      estimatedAdRevenue: estimatedRevenue,
      format: v.format
    };
  });

  // Best monetization formats
  const formatRevenue = {};
  channelAnalysis.forEach(v => {
    if (!formatRevenue[v.format]) formatRevenue[v.format] = { totalViews: 0, count: 0 };
    formatRevenue[v.format].totalViews += v.views;
    formatRevenue[v.format].count++;
  });

  const bestFormats = Object.entries(formatRevenue)
    .map(([format, data]) => ({
      format,
      avgViews: Math.round(data.totalViews / data.count),
      estimatedRevenuePer: Math.round((data.totalViews / data.count / 1000) * estimatedCPM * 100) / 100
    }))
    .sort((a, b) => b.avgViews - a.avgViews);

  return {
    estimatedCPM,
    topEarningVideos: channelAnalysis.sort((a, b) => b.estimatedAdRevenue - a.estimatedAdRevenue).slice(0, 5),
    bestFormatsForRevenue: bestFormats,
    monthlyPotential: {
      "1_video_per_day": Math.round(30 * bestFormats[0]?.estimatedRevenuePer || 0),
      "3_videos_per_week": Math.round(12 * bestFormats[0]?.estimatedRevenuePer || 0)
    },
    sponsorshipAngle: `Gaming channels with 10K+ subs covering ${game} can charge $500-2000 per sponsored video`
  };
}

const monetization = await analyzeMonetization("GTA 6", gamingContent);
console.log("Monthly potential (daily uploads):", `$${monetization.monthlyPotential["1_video_per_day"]}`);
console.log("Best format for revenue:", monetization.bestFormatsForRevenue[0]);

Full Pipeline: Research, Script, Produce, Calendar

import { writeFileSync } from 'fs';

async function fullGamingContentPipeline(game, videoCount = 5) {
  console.log(`Starting Gaming Content Pipeline for: ${game}`);

  // 1. Scrape trends
  const reddit = await scrapeGamingReddit();
  const content = await scrapeViralGamingContent(game);
  console.log(`Step 1: ${reddit.length} Reddit topics + ${content.tiktokTop.length + content.youtubeTop.length} viral videos analyzed`);

  // 2. Generate scripts
  const scripts = await generateGamingScripts(content, game, videoCount);
  console.log(`Step 2: ${videoCount} scripts generated`);

  // 3. Monetization analysis
  const money = await analyzeMonetization(game, content);
  console.log(`Step 3: Revenue potential $${money.monthlyPotential["1_video_per_day"]}/month`);

  // 4. Export report
  const report = {
    game,
    generatedAt: new Date().toISOString(),
    trendingTopics: reddit.slice(0, 15),
    viralContent: content,
    scripts,
    monetization: money,
    contentCalendar: Array.from({ length: 30 }, (_, i) => ({
      day: i + 1,
      topic: reddit[i % reddit.length]?.title || `${game} content day ${i + 1}`,
      format: content.winningFormats[i % content.winningFormats.length]?.format || 'Hot Take',
      platform: ['tiktok', 'youtube_shorts', 'instagram_reels'][i % 3]
    }))
  };

  writeFileSync(`gaming-content-${game.replace(/\s+/g, '-')}-${Date.now()}.json`, JSON.stringify(report, null, 2));
  console.log(`Pipeline complete`);

  return report;
}

await fullGamingContentPipeline("GTA 6", 5);

What Makes This Different

Feature Generic Content Tool This Skill
Trend detection Manual browsing Reddit + TikTok + YouTube scraping in parallel
Content gaps Guesswork Data-driven: high demand topics with low supply
Script writing Generic prompts Based on real viral hooks from gaming content
Video production Manual editing AI-produced with gaming-optimized pacing
Monetization None CPM estimates + sponsorship angles + format ROI
Calendar None 30-day plan mapped to game releases

Pro Tips

  1. "Hot Take" format consistently outperforms all other gaming content formats on TikTok
  2. Cover new game announcements within 4 hours for maximum algorithm boost
  3. Reddit controversies with high comment-to-upvote ratios are your best video topics
  4. Gaming audiences prefer 1.15x voiceover speed. Slower feels boring to this demographic
  5. Cross-post the same video to TikTok, YouTube Shorts AND Instagram Reels. Different audiences on each
  6. Tier list videos have the highest comment count because everyone disagrees. Comments = algorithm fuel

Cost Estimate

Action Tool Cost
Scrape 5 gaming subreddits Apify ~$0.08
Scrape TikTok + YouTube gaming Apify ~$0.12
Detect emerging games Apify ~$0.10
Generate 5 scripts Claude AI ~$0.05
Produce 5 videos InVideo AI Plan dependent
Full pipeline Total Under $1 for research + scripts

Error Handling

try {
  const run = await client.actor("apify/reddit-scraper").call(input);
  const dataset = await run.dataset().getData();
  return dataset.items;
} catch (error) {
  if (error.statusCode === 401) throw new Error("Invalid Apify token. Get yours at https://www.apify.com?fpr=dx06p");
  if (error.statusCode === 429) throw new Error("Rate limit. Reduce batch size.");
  throw error;
}

Requirements

  • An Apify account with API token
  • An InVideo AI account for video production
  • Claude API key for script generation
  • Node.js 18+ with apify-client and axios
Usage Guidance
This skill's SKILL.md asks you to create and export API keys (APIFY_TOKEN and INVIDEO_API_KEY) and to install npm packages, but the registry metadata doesn't list those requirements — that's an inconsistency you should resolve before installing. Before using it: (1) confirm with the author which API keys are actually required (and whether Claude/Anthropic or TTS/music keys are needed); (2) limit API token scope where possible and use tokens you can revoke; (3) be aware that scraping and republishing clips may violate platform TOS or copyright — review legal implications; (4) watch for affiliate links in the documentation (Apify/InVideo links include tracking parameters); (5) if you are uncomfortable granting automated access to scraping/production APIs, only run this skill manually and avoid enabling autonomous invocation. If you need higher assurance, ask the publisher to update the registry metadata to list required env vars and install steps, and provide a shorter threat model explaining data flows and what gets uploaded to third-party services.
Capability Analysis
Type: OpenClaw Skill Name: ai-gaming-content Version: 1.0.0 The skill bundle provides a comprehensive pipeline for gaming content research and automated video production using Apify, InVideo AI, and Claude AI. The included JavaScript code demonstrates legitimate API integrations for scraping trends from Reddit, TikTok, and YouTube, generating scripts, and calculating monetization metrics. While the documentation (SKILL.md) contains several affiliate links for the recommended services, the code logic is transparent, lacks obfuscation, and performs actions strictly aligned with the stated purpose of content creation without any signs of malicious intent or data exfiltration.
Capability Assessment
Purpose & Capability
The skill description (scrape trends, generate scripts, produce videos) matches the SKILL.md actions, but the package metadata lists no required environment variables or install steps while the SKILL.md explicitly requires APIFY_TOKEN and INVIDEO_API_KEY and an npm install. That mismatch suggests incomplete or incorrect metadata.
Instruction Scope
SKILL.md instructs the agent to scrape many public platforms (Reddit, TikTok, YouTube, Steam, Twitter/X, Instagram, Google News) via Apify actors and to call external video production APIs. Scraping multi-platform content, potentially downloading clips and republishing them, can raise legal/TOS and privacy issues. The instructions also reference Claude AI but do not explain required credentials for it.
Install Mechanism
There is no formal install spec in the registry (instruction-only), but the SKILL.md tells users to run `npm install apify-client axios`. Instruction-only skills are lower risk than installers, but asking the user to install npm packages should have been reflected in the metadata so users know what will be written/installed.
Credentials
The registry claims no required env vars, yet SKILL.md instructs users to export APIFY_TOKEN and INVIDEO_API_KEY; it also mentions Claude AI but doesn't document any Claude/Anthropic API key. Required credentials are relevant to the stated functionality, but the omission from metadata is a proportionality/integrity problem — the skill may access secrets the metadata doesn't advertise.
Persistence & Privilege
The skill is not marked always:true and has no install spec that writes files; it is user-invocable and can be invoked autonomously (the platform default). Autonomous invocation combined with the above mismatches raises the blast radius, but autonomy alone is not unusual.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ai-gaming-content
  3. After installation, invoke the skill by name or use /ai-gaming-content
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
AI Gaming Content and Monetization Machine v1.0.0 - Initial public release for gaming content automation. - Scrapes gaming trends from Reddit, TikTok, YouTube, Twitter/X, Steam, and more. - Analyzes viral video formats, detects emerging topics, and extracts top-performing clips. - Generates 30 optimized gaming video scripts with hooks and A/B variations. - Produces short-form 9:16 gaming videos with AI voiceover, captions, and music. - Builds a full content calendar mapped to game releases, and identifies monetization opportunities.
Metadata
Slug ai-gaming-content
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is AI Gaming Content?

Scrapes trending gaming data and viral clips to generate optimized scripts and produce viral gaming videos with AI for content creators and monetization. It is an AI Agent Skill for Claude Code / OpenClaw, with 89 downloads so far.

How do I install AI Gaming Content?

Run "/install ai-gaming-content" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is AI Gaming Content free?

Yes, AI Gaming Content is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does AI Gaming Content support?

AI Gaming Content is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created AI Gaming Content?

It is built and maintained by nicemaths123 (@nicemaths123); the current version is v1.0.0.

💬 Comments