D
discovering-viral-youtube-videos-by-category
About discovering-viral-youtube-videos-by-category
discovering-viral-youtube-videos-by-category is a skill for retrieving YouTube trending videos by category and region, intended for video trend analysis. It can fetch results through an Apify Actor and provides rules for scoring and tiering videos by views, likes, and recency.
Key features
- 01Filter videos by trending category and country
- 02Set language and maximum result count
- 03Save results as CSV or JSON
- 04Score by views, likes, and recency
- 05Assign videos to trend tiers
Use cases
- 01Retrieve YouTube trending videos for a country
- 02Compare music, movie, or gaming categories
- 03Export trend results for later analysis
- 04Filter popular or emerging videos by score
MCP support
The README says that when Apify MCP is available, the apidojo~youtube-trending-scraper Actor can be called with the call_actor tool.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill discovering-viral-youtube-videos-by-categoryAfter installing, type/discovering-viral-youtube-videos-by-categoryin Claude Code to confirm it loaded.
Details
From the project READMEDiscovering Viral Youtube Videos By Category
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
type | string | Optional | n | Trending category: n (now), music, movies, gaming |
gl | string | Optional | us | Country code (e.g. US, GB) |
hl | string | Optional | en | Language code (e.g. en) |
maxItems | number | Optional | Unlimited | Maximum videos to return |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
How to Run
Using run_actor.js (recommended)
# Quick answer (table)
node scripts/run_actor.js --actor "apidojo~youtube-trending-scraper" --input '{"type": "n", "gl": "us", "hl": "en", "maxItems": 50}'
# Save as CSV
node scripts/run_actor.js --actor "apidojo~youtube-trending-scraper" --input '{"type": "n", "gl": "us", "hl": "en", "maxItems": 50}' --output results.csv --format csv
# Save as JSON
node scripts/run_actor.js --actor "apidojo~youtube-trending-scraper" --input '{"type": "n", "gl": "us", "hl": "en", "maxItems": 50}' --output results.json --format json
REST API fallback
curl -X POST "https://api.apify.com/v2/acts/apidojo~youtube-trending-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type": "n", "gl": "us", "hl": "en", "maxItems": 50}'
If Apify MCP is available:
Use the Apify MCP call_actor tool with actor apidojo~youtube-trending-scraper and the input above.
Scoring & Ranking
Score each video by:
views→ normalized 0-1 (cap at 10M), weight 0.40likes→ normalized 0-1 (cap at 500K), weight 0.35recency(trending = 1.0 by definition), weight 0.25
score = 0.40 * min(views / 10000000, 1.0) + 0.35 * min(likes / 500000, 1.0) + 0.25
Classification
| Score | Tier | Label |
|---|---|---|
| ≥ 0.70 | A | MEGA_VIRAL |
| 0.40–0.69 | B | TRENDING |
| < 0.40 | C | RISING |
Edge Cases
- Category not available for country: Some countries only have
n(all). Fall back totype=n. - Stale data: Trending changes throughout the day — data is a snapshot.
- Music/movies category: Returns full songs or trailers — content type differs from regular videos.
- Livestreams in results: isLive=true items are ongoing streams — filter if you need VOD only.
- Country mismatch: gl must be a valid ISO country code (e.g.,
us,gb,de).
Comments
Markdown supported