# PineDrama Recommendations Scraper & Similar Dramas (`spider_studio/pinedrama-drama-recommendations`) Actor

Find similar PineDrama short dramas in bulk by collection ID. Extract recommended titles, covers, episode counts, watch counts, categories, and access flags via API or export.

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

## Pricing

from $2.00 / 1,000 recommendation 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

### What does PineDrama Recommendations Scraper do?

**PineDrama Recommendations Scraper & Similar Dramas API** finds short dramas related to titles on [PineDrama](https://shortdrama.tiktok.com/). Submit up to 1,000 PineDrama collection IDs and receive similar-drama recommendations as clean, structured dataset rows—without running a browser or maintaining your own PineDrama API integration.

Every recommendation is saved separately with its source collection ID, recommended drama ID, title, cover image, episode count, watch count, categories, and limited-free status. The Actor removes duplicate input IDs, preserves their first-seen order, processes requests concurrently, retries transient failures, and isolates errors so one unavailable drama does not discard other results.

### Explore more PineDrama Actors

| Actor | Use it for |
| --- | --- |
| [PineDrama Search Scraper](https://apify.com/spider_studio/pinedrama-drama-search) | Find short dramas and collection IDs by keyword. |
| [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. |

### Why use this PineDrama recommendation API?

- Build “similar dramas” and “you may also like” features for a licensed catalog.
- Discover related short dramas for content research and market analysis.
- Enrich existing PineDrama collection IDs with titles, covers, categories, and engagement signals.
- Create recommendation lists, watchlists, editorial roundups, or catalog cross-links.
- Export data to JSON, CSV, Excel, or HTML for analysis and downstream automation.
- Run manually, on a schedule, through the Apify API, or from integrations and webhooks.

### What PineDrama recommendation data can I extract?

| Field | Type | Description |
| --- | --- | --- |
| `source_collection_id` | string | Collection ID used to request similar dramas |
| `collection_id` | string | Recommended PineDrama collection ID |
| `title` | string | Recommended short-drama title |
| `cover_url` | string or null | Cover image URL |
| `episode_count` | integer | Reported number of episodes |
| `watched_count` | integer | Watch count reported by PineDrama |
| `categories` | array | Category or genre labels |
| `is_limited_free` | boolean | Whether PineDrama marks the drama limited-free |
| `success` | boolean | Whether this recommendation row was saved successfully |
| `error` | string or null | Sanitized message for an uncharged failed source request |

### How to find similar PineDrama short dramas

1. Obtain one or more PineDrama `collection_id` values from search, catalog, or drama-detail data.
2. Open the Actor's **Input** tab.
3. Add the IDs to the required `collection_ids` list as quoted strings.
4. Click **Save & Start**.
5. Open **Output** to filter, download, or connect the recommendation dataset.

No code is required in Apify Console. Developers can run the same bulk lookup through the Actor API, Python client, JavaScript client, schedules, or webhooks.

### How much does PineDrama recommendation scraping cost?

This Actor uses pay-per-event pricing. Each similar-drama recommendation successfully saved to the dataset is charged once:

- Free plan: **$0.003 per recommendation** ($3 per 1,000 results).
- Paid plans: **$0.002 per recommendation** ($2 per 1,000 results).
- Empty recommendation lists, failed source IDs, retries, and duplicate input IDs removed within the run do not incur a result event fee.
- Apify platform usage is charged separately to the user and is not included in the result price.

For example, 40 saved recommendations cost $0.12 on the Free plan or $0.08 on a paid plan, plus applicable compute, proxy traffic, storage, and other platform usage. Set a maximum Actor charge before a run to control event spending. If the limit is reached, the Actor stops saving additional paid recommendations and keeps the results already collected.

### Input

See the Input tab for the complete schema. The input object accepts only `collection_ids`, a required array of 1–1,000 decimal strings. Each ID must contain 1–20 digits. Exact duplicates are removed while their first-seen order is preserved. To query one drama, provide a one-item array.

```json
{
  "collection_ids": [
    "7675963864189735957",
    "7644028687834256402"
  ]
}
```

Keep IDs as strings: PineDrama identifiers can exceed JavaScript's safe integer range. The sample IDs demonstrate the format only, and availability can change.

### Output

Each recommended drama becomes one dataset row, which makes CSV and spreadsheet exports easy to filter. The `source_collection_id` identifies which input produced the recommendation. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
  "source_collection_id": "7675963864189735957",
  "collection_id": "7644028687834256402",
  "title": "Example Similar Drama",
  "cover_url": "https://example.com/cover.jpg",
  "episode_count": 60,
  "watched_count": 12500,
  "categories": ["Romance", "Revenge"],
  "is_limited_free": true,
  "success": true,
  "error": null
}
```

If a source collection cannot be processed after bounded retries, the Actor writes a failure row containing that input ID, `success: false`, and a sanitized error. Failure rows are not charged the recommendation event fee.

### Tips for reliable recommendation extraction

- Start with a small batch to verify that your collection IDs are current.
- Keep all IDs as strings in API clients and exported files.
- Use `source_collection_id` to group recommendations by the drama that produced them.
- Schedule recurring runs if you need to track how related-drama suggestions change.
- Inspect individual failure rows instead of retrying every successful input.

### FAQ, responsible use, and support

#### Is this an official PineDrama API?

No. This is an independent data extraction Actor and is not affiliated with or endorsed by PineDrama or TikTok.

#### Are repeated input collection IDs charged twice?

No. Exact duplicate source IDs in one input are removed before requests start. Billing is based on recommendation rows successfully saved, not on input attempts or retries.

#### Does one failed collection ID stop the batch?

No. By default, failures are saved separately without a recommendation event charge while other source IDs continue.

#### Can I access the results programmatically?

Yes. Open the Actor's **API** tab for ready-to-use requests or consume the default dataset through Apify's API and client libraries.

This Actor extracts publicly returned recommendation metadata and does not download or unlock video content. Use the data only where you have the necessary rights and comply with PineDrama's terms and applicable laws. It does not intentionally extract private user data. If results contain personal data, ensure you have a lawful basis for processing it and consult legal counsel when unsure.

For reproducible issues, share a run link and sanitized input in the Actor's **Issues** tab.

# Actor input Schema

## `collection_ids` (type: `array`):

Provide 1–1,000 PineDrama collection IDs as strings containing 1–20 digits. Exact duplicates are removed.

## Actor input object example

```json
{}
```

# Actor output Schema

## `dataset` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("spider_studio/pinedrama-drama-recommendations").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("spider_studio/pinedrama-drama-recommendations").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 '{}' |
apify call spider_studio/pinedrama-drama-recommendations --silent --output-dataset

```

## MCP server setup

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

```

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/8NrvKNrlspov38YfY/builds/Kuejhd6Y94x5JSXsV/openapi.json
