# Viral Mystery Trend & Script Scraper (`constructive_junk/viral-mystery-trend-script-scraper`) Actor

Automatically scrapes the most viral mystery, paranormal & conspiracy posts from Reddit and Hispanic forums. Extracts full text + top comments — ready-to-use scripts for YouTube, TikTok & podcasts. Filter by upvotes, time range and custom sources.

- **URL**: https://apify.com/constructive\_junk/viral-mystery-trend-script-scraper.md
- **Developed by:** [Maria Correa-Resto](https://apify.com/constructive_junk) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Viral Mystery Trend and Script Scraper

Stop spending hours looking for content ideas. This Actor finds the most viral mystery, paranormal and conspiracy posts on Reddit and Hispanic forums and turns them into ready-to-use scripts for YouTube, TikTok, and podcasts in seconds.

Used by content creators in the mystery/paranormal niche to generate weeks of video ideas in one automated run.

---

### What Does This Actor Do?

This Actor scans the biggest English-language mystery subreddits (r/UnresolvedMysteries, r/UFOs, r/Paranormal, r/HighStrangeness, r/Glitch_in_the_Matrix) and optional custom Hispanic forum URLs to find posts that are going viral right now.

It extracts:
- The full post text (the complete story, ready to narrate)
- The top comments with the most upvotes (for theories, witness accounts, reactions)
- Engagement metrics (upvote count, comment count, awards)
- Publication date and direct link to source

All data is structured and saved to an Apify dataset ready to download as JSON, CSV, or Excel.

---

### Who Is This For?

- YouTube creators in the mystery, paranormal, terror, or conspiracy niche
- Podcasters who need fresh, engaging story content each week
- TikTok creators looking for short viral story hooks
- Content strategists researching trending topics in Spanish-speaking markets
- Scriptwriters who want pre-sourced material from verified online communities

---

### Input Parameters

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| subreddits | String list | 5 mystery subreddits | Subreddits to scan (without the r/) |
| customUrls | String list | empty | Full URLs of Hispanic forums or other sites to scrape |
| minUpvotes | Integer | 1000 | Only include posts with at least this many upvotes |
| timeRange | Select | 24h | How far back to look: Last 24h, 48h, or 7 days |
| maxCommentsPerPost | Integer | 5 | How many top comments to extract per post |
| maxItems | Integer | 50 | Maximum total results to return |
| proxyConfiguration | Proxy | Apify Residential | Required for Reddit — uses Apify Proxy to bypass blocks |

#### Important: Proxy Required for Reddit

Reddit blocks requests from datacenter IPs. The proxyConfiguration field is set to use Apify Residential Proxy by default, which is what allows this Actor to access Reddit reliably. If you disable proxy or use a datacenter proxy, Reddit will block requests and you will get 0 results.

---

### Output Format

Each row in the output dataset contains:

```json
{
  "source": "r/UnresolvedMysteries",
  "title": "The disappearance of Lars Mittank at the Bulgarian airport has never been solved",
  "url": "https://www.reddit.com/r/UnresolvedMysteries/comments/abc123/",
  "engagement_score": 34200,
  "comment_count": 892,
  "created_at": "2026-06-30T14:22:00.000Z",
  "full_text_content": "Lars Mittank was a 28-year-old German tourist who disappeared from Varna Airport in Bulgaria in 2014...",
  "top_comments": [
    {
      "author": "user123",
      "score": 4100,
      "body": "The CCTV footage shows him running in pure panic from something only he could see..."
    }
  ],
  "scraped_at": "2026-07-01T10:00:00.000Z"
}
````

***

### How to Use

#### Via Apify Console (No-Code)

1. Click Try for free on this page
2. Configure your subreddits, time range, and minimum upvotes
3. Click Start — results appear in the Output tab within minutes
4. Download as CSV or JSON from the Storage tab

#### Via Apify API (Developers)

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/constructive_junk~viral-mystery-trend-script-scraper/runs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subreddits": ["UnresolvedMysteries", "Paranormal"],
    "timeRange": "24h",
    "minUpvotes": 2000,
    "maxItems": 20
  }'
```

#### Schedule Automated Daily Runs

In the Apify Console, go to Schedules and set this Actor to run every morning. Wake up to fresh viral content every day.

***

### Pricing

This Actor uses Pay per result pricing:

- $0.01 per Actor start
- $2.00 per 1,000 results

A typical run returning 25 results costs approximately $0.06.

***

### FAQ

**Why do I get 0 results?**
Reddit requires a residential proxy. Make sure proxyConfiguration is enabled with useApifyProxy: true and the RESIDENTIAL group selected.

**Can I scrape forums in Spanish?**
Yes! Add Spanish forum URLs to the customUrls field. The Actor extracts the main body text from any HTML page.

**How fresh is the data?**
With timeRange: 24h, you get posts from the last 24 hours only. Run it daily for the freshest content.

**Can I use this for TikTok?**
Absolutely. The full\_text\_content gives you the story; use the top\_comments for your hook.

***

### Technical Details

- Runtime: Node.js 18+ (ESM)
- Framework: CheerioCrawler (crawlee)
- Sources: Reddit JSON API and custom HTML scraping
- Proxy: Apify Proxy (RESIDENTIAL group recommended)
- Output: Apify Dataset (JSON/CSV/Excel export available)

***

Crafted for mystery content creators by Maria Correa-Resto.

# Actor input Schema

## `subreddits` (type: `array`):

List of subreddit names (without r/) to scrape for viral mystery content.

## `customUrls` (type: `array`):

Optional list of full URLs to Hispanic forums or any external pages to scrape.

## `minUpvotes` (type: `integer`):

Only posts with this many upvotes or more will be included in the results.

## `timeRange` (type: `string`):

How far back to look for posts. 24h = last 24 hours, 48h = last 48 hours, 7d = last 7 days.

## `maxCommentsPerPost` (type: `integer`):

Maximum number of top-voted comments to extract per post for script theories.

## `proxyConfiguration` (type: `object`):

Apify proxy settings to avoid rate-limiting and IP bans from Reddit.

## Actor input object example

```json
{
  "subreddits": [
    "UnresolvedMysteries",
    "UFOs",
    "Paranormal",
    "HighStrangeness",
    "Glitch_in_the_Matrix"
  ],
  "customUrls": [],
  "minUpvotes": 1000,
  "timeRange": "24h",
  "maxCommentsPerPost": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("constructive_junk/viral-mystery-trend-script-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("constructive_junk/viral-mystery-trend-script-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call constructive_junk/viral-mystery-trend-script-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=constructive_junk/viral-mystery-trend-script-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Viral Mystery Trend & Script Scraper",
        "description": "Automatically scrapes the most viral mystery, paranormal & conspiracy posts from Reddit and Hispanic forums. Extracts full text + top comments — ready-to-use scripts for YouTube, TikTok & podcasts. Filter by upvotes, time range and custom sources.",
        "version": "0.0",
        "x-build-id": "Bg1VxHl2EfsCQziPE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/constructive_junk~viral-mystery-trend-script-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-constructive_junk-viral-mystery-trend-script-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/constructive_junk~viral-mystery-trend-script-scraper/runs": {
            "post": {
                "operationId": "runs-sync-constructive_junk-viral-mystery-trend-script-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/constructive_junk~viral-mystery-trend-script-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-constructive_junk-viral-mystery-trend-script-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "subreddits",
                    "minUpvotes",
                    "timeRange",
                    "maxCommentsPerPost"
                ],
                "properties": {
                    "subreddits": {
                        "title": "Subreddits to scan",
                        "type": "array",
                        "description": "List of subreddit names (without r/) to scrape for viral mystery content.",
                        "default": [
                            "UnresolvedMysteries",
                            "UFOs",
                            "Paranormal",
                            "HighStrangeness",
                            "Glitch_in_the_Matrix"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "customUrls": {
                        "title": "Custom Forum URLs (optional)",
                        "type": "array",
                        "description": "Optional list of full URLs to Hispanic forums or any external pages to scrape.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "minUpvotes": {
                        "title": "Minimum Upvotes / Engagement Score",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only posts with this many upvotes or more will be included in the results.",
                        "default": 1000
                    },
                    "timeRange": {
                        "title": "Time Range",
                        "enum": [
                            "24h",
                            "48h",
                            "7d"
                        ],
                        "type": "string",
                        "description": "How far back to look for posts. 24h = last 24 hours, 48h = last 48 hours, 7d = last 7 days.",
                        "default": "24h"
                    },
                    "maxCommentsPerPost": {
                        "title": "Max Top Comments per Post",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of top-voted comments to extract per post for script theories.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy settings to avoid rate-limiting and IP bans from Reddit.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
