# PineDrama Scraper - Short Drama Search & Export (`spider_studio/pinedrama-drama-search`) Actor

Search PineDrama short dramas by keyword and export titles, covers, episode counts, watch counts, categories, and limited-free status. Search multiple keywords, collect multiple pages, and download results in CSV, Excel, or JSON.

- **URL**: https://apify.com/spider\_studio/pinedrama-drama-search.md
- **Developed by:** [NewLai](https://apify.com/spider_studio) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 search results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### PineDrama scraper for short drama search

**PineDrama Scraper** helps you find short dramas by keyword and turn search results into a list you can review, compare, and export. Collect drama titles, cover images, episode counts, watch counts, categories, and limited-free status from [PineDrama](https://shortdrama.tiktok.com/).

Search one keyword or a whole list, choose how many pages to collect, and get **one drama per result row**. Download your results in CSV, Excel, or JSON for content research, catalog building, and short drama market analysis.

### Explore more PineDrama Actors

| Actor | Use it for |
| --- | --- |
| [PineDrama Drama Details & Episodes Scraper](https://apify.com/spider_studio/pinedrama-drama-details-scraper) | Get drama metadata, creator data, and first-episode IDs. |
| [PineDrama Episodes Scraper](https://apify.com/spider_studio/pinedrama-drama-episodes) | Extract complete episode lists and video IDs. |
| [PineDrama Video URL Scraper](https://apify.com/spider_studio/pinedrama-episode-playback) | Resolve playable URLs and playback metadata for episodes. |
| [PineDrama Recommendations Scraper](https://apify.com/spider_studio/pinedrama-drama-recommendations) | Find similar short dramas for collection IDs. |

### What can you do with PineDrama search data?

- **Discover short dramas:** Search for titles, themes, and phrases relevant to your research.
- **Build a drama catalog:** Collect titles, cover images, categories, and episode counts in one place.
- **Compare search results:** Review reported watch counts and categories across your keyword list.
- **Plan editorial coverage:** Gather short drama data for watchlists, recommendations, and entertainment research.
- **Repeat your research:** Save searches and schedule future runs in Apify to compare results over time.

Each result keeps the keyword that found it. Duplicate dramas within the same keyword search are removed, while a drama found under different keywords keeps its association with each search.

### How to scrape PineDrama search results

1. Enter a keyword, such as `novel` or `ceo`, or add several keywords for a batch search.
2. Set the maximum number of pages to collect for each keyword.
3. Click **Start** and wait for the search to finish.
4. Open **Output** to browse titles, cover images, and the other extracted fields.
5. Export the results as CSV, Excel, JSON, or another available format.

Start with a small page limit to review the results before expanding your search. A keyword may return fewer pages if there are no further results available.

### PineDrama scraper input

Use either `keyword` for one search or `keywords` for a batch. Choose one of these fields for each run.

| Input | What to enter | Default |
| --- | --- | --- |
| `keyword` | One search term, from 1 to 100 characters | Required unless using `keywords` |
| `keywords` | A list of 1 to 1,000 search terms, each from 1 to 100 characters | Required unless using `keyword` |
| `max_pages` | Maximum pages per keyword, from 1 to 1,000 | `1` |

Single search:

```json
{
  "keyword": "novel",
  "max_pages": 5
}
```

Batch search:

```json
{
  "keywords": ["novel", "ceo"],
  "max_pages": 5
}
```

### What data does the PineDrama scraper extract?

Every result is a separate drama row with the following fields:

| Field | Description |
| --- | --- |
| `keyword` | Search term that returned the drama |
| `title` | Short drama title |
| `cover_url` | Cover image URL, displayed as an image in Output |
| `collection_id` | PineDrama drama ID |
| `episode_count` | Reported number of episodes |
| `watched_count` | Watch count reported by PineDrama |
| `categories` | Categories or genre labels returned with the drama |
| `is_limited_free` | Whether PineDrama marks the drama as limited free |

Illustrative output record:

```json
{
  "keyword": "novel",
  "title": "Example Drama",
  "cover_url": null,
  "collection_id": "1234567890123456789",
  "episode_count": 60,
  "watched_count": 12500,
  "categories": ["Romance"],
  "is_limited_free": true
}
```

The **Search summary** output shows the pages collected, result count, and success status for each keyword. If part of a search fails, the dramas already collected remain available and the summary explains which search was affected. An empty search produces no drama rows.

### Export PineDrama data to CSV, Excel, or JSON

Download your results for spreadsheet analysis or use them in your existing workflow. CSV and Excel make it easy to sort titles, compare episode counts, and organize watch counts. JSON preserves category lists for applications and further analysis.

For automated access, use this Actor through the Apify API. The same keyword searches and extracted fields are available whether you start a run in the Console or from an integration.

### Verified search example

In a live check on September 6, 2026, searches for `novel` and `ceo` each collected five pages and returned 98 unique dramas. This is an example of observed results, not a fixed result count: availability and the number of matches can change.

### Frequently asked questions

#### Can I search several keywords at once?

Yes. Add your terms to `keywords`. The page limit applies separately to every keyword, and each result includes the term that returned it.

#### Are duplicate dramas removed?

Yes, within each keyword search. When a drama appears for two different keywords, it appears once under each term so you can compare their results.

#### Does this download PineDrama videos?

This Actor exports short drama information and cover image URLs. Use PineDrama to watch episodes.

#### How many results will I get?

The total depends on the keyword, available results, and page limit. Check the Search summary for the number collected in your run.

#### How much does a search cost?

**Free-plan users pay $3 per 1,000 saved search results ($0.003 per result). Paid-plan users pay $2 per 1,000 ($0.002 per result). Apify platform usage fees are charged separately for both.**

A run returning 40 results costs $0.12 in result fees on the Free plan or $0.08 on a paid plan, plus platform usage.

Only successfully saved drama rows incur a result fee. Empty searches, failed pages, retries, and the Search summary do not incur result fees, although platform usage still applies. Results already saved before a later page fails remain billable. Duplicate dramas within a keyword are removed before billing. A drama found under two different keywords is saved and billed once under each keyword.

Set a spending limit in Apify to cap result charges. Searches stop producing billable rows when that limit is reached. Platform usage fees are separate. There is no additional custom startup fee.

#### Where can I get help?

Use the Actor's Issues tab to report a problem. Include the search term and run link so the result can be checked.

# Actor input Schema

## `keyword` (type: `string`):

Use single-request fields OR batch fields, not both. IDs must be strings. Search automatically fetches up to max\_pages pages per keyword.

## `keywords` (type: `array`):

Use single-request fields OR batch fields, not both. IDs must be strings. Search automatically fetches up to max\_pages pages per keyword.

## `max_pages` (type: `integer`):

Use single-request fields OR batch fields, not both. IDs must be strings. Search automatically fetches up to max\_pages pages per keyword.

## Actor input object example

```json
{
  "keyword": "revenge",
  "max_pages": 1
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "keyword": "revenge"
};

// Run the Actor and wait for it to finish
const run = await client.actor("spider_studio/pinedrama-drama-search").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 = { "keyword": "revenge" }

# Run the Actor and wait for it to finish
run = client.actor("spider_studio/pinedrama-drama-search").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keyword": "revenge"
}' |
apify call spider_studio/pinedrama-drama-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,spider_studio/pinedrama-drama-search"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/k9UZHyFGgOducaZoW/builds/oLWRMqthZE6reEC9N/openapi.json
