← 返回 Skills 市场
nicemaths123

AI Gaming Content

作者 nicemaths123 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
89
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install 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.
使用说明 (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
安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ai-gaming-content
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ai-gaming-content 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
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.
元数据
Slug ai-gaming-content
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

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. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 89 次。

如何安装 AI Gaming Content?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ai-gaming-content」即可一键安装,无需额外配置。

AI Gaming Content 是免费的吗?

是的,AI Gaming Content 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

AI Gaming Content 支持哪些平台?

AI Gaming Content 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 AI Gaming Content?

由 nicemaths123(@nicemaths123)开发并维护,当前版本 v1.0.0。

💬 留言讨论