# Vigloo Episode Scraper - Short Drama Episode List (`hgservices/vigloo-episode-scraper`) Actor

Scrape the full episode list of Vigloo short dramas by URL or ID. Get each episode's number, season, length, release date, unlock price, free or paid status, thumbnail and watch link. Works for any country catalog, in 12 languages. No login needed.

- **URL**: https://apify.com/hgservices/vigloo-episode-scraper.md
- **Developed by:** [Harish Garg](https://apify.com/hgservices) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 scraped episodes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Scrape the **full episode list of any Vigloo short drama**. Give drama links or IDs, and get one row for each episode with its **episode number, season, length, release date, unlock price in coins, free or paid status, thumbnail** and **watch link**.

**No Vigloo account, app, login or cookies are needed.** Get the data as JSON, CSV or Excel, run the scraper on a schedule from the API, or ask an AI assistant such as Claude or ChatGPT to get Vigloo episodes for you.

### What is Vigloo Episode Scraper?

[Vigloo](https://www.vigloo.com) is a short-drama streaming app with vertical dramas in many languages. Each drama has many short episodes of about 1 to 2 minutes. The first episodes are free, and viewers unlock the other episodes with coins.

Vigloo Episode Scraper works as an **unofficial Vigloo episode API**. It opens each drama that you give it and saves one row for each episode, for every season. It works for the catalog of any country and in all 12 site languages.

Because it runs on the Apify platform, you also get API access, scheduling, integrations, monitoring and exports in many formats.

### What data can you get from Vigloo?

| Data | Details |
|------|---------|
| 🎬 **Episode** | Episode ID, episode number, season number and season ID |
| ⏱️ **Length** | In seconds and as text, for example `1:19` |
| 📅 **Release date** | The date when the episode came out |
| 🪙 **Unlock price** | The price in Vigloo coins in the selected country |
| 🆓 **Free or paid** | Whether the episode is free to watch |
| 🖼️ **Thumbnail** | A link to the episode thumbnail image |
| 🔗 **Links** | The watch link of the episode and the drama page |
| 📺 **Drama** | The drama ID and title, in the language that you select |

### Why scrape Vigloo episodes?

- **Monetization research:** see how many episodes of a drama are free and what the paid episodes cost. Compare the paywall of different dramas and different countries.
- **Short-drama format research:** compare episode counts and episode lengths across dramas.
- **Release tracking:** see when new episodes of an ongoing drama come out. Run the scraper on a schedule to follow a drama week by week.
- **Content databases and apps:** build a full episode table and join it with drama data from **Vigloo Drama Scraper**.
- **Market analysis:** study how Vigloo builds and prices its short dramas against other short-drama apps.

### How to scrape Vigloo episodes

1. Open a drama on [vigloo.com](https://www.vigloo.com) and copy the link from the address bar.
2. Paste one or more links into **Drama URLs**.
3. Enter a **Country** and select a **Language**.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab to see the episodes. Export them as JSON, CSV, Excel, XML or HTML.

### Input

| Field | What it does | Example |
|-------|--------------|---------|
| **Drama URLs** (required) | Links to Vigloo dramas, or drama IDs | `["https://www.vigloo.com/en/content/15003644"]` |
| **Country** | The country catalog to read, as a two-letter code. Dramas and prices are different in different countries. | `us` (default) |
| **Language** | The language of the drama titles and links | `en` (default) |

**Drama URLs** can be in these forms:

- Drama pages: `https://www.vigloo.com/en/content/15003644`
- Watch pages: `https://www.vigloo.com/en/video/15003644?episode=1`
- Drama IDs: `15003644`

The scraper reads each drama one time, also when you give it more than once. It skips lines that are not Vigloo links or IDs and tells you about them in the log.

**Countries:** any two-letter country code, for example `us`, `kr`, `jp`, `in`, `gb` or `br`.

**Languages:** English (`en`), Korean (`ko`), Japanese (`ja`), Spanish (`es`), Indonesian (`id`), Portuguese (`pt-BR`), Thai (`th`), Arabic (`ar`), Chinese Traditional (`zh-Hant`), Chinese Simplified (`zh-Hans`), Hindi (`hi`) and French (`fr`).

#### Input example

```json
{
  "programUrls": [
    "https://www.vigloo.com/en/content/15003644",
    "15003049"
  ],
  "country": "us",
  "language": "en"
}
```

### Output

You get one row for each episode, in season and episode order. This is one episode of a drama in the US catalog:

```json
{
  "programId": 15003644,
  "programTitle": "The Billionaires Secret Heir",
  "seasonId": 15003331,
  "seasonNumber": 1,
  "episodeId": 15038720,
  "episodeNumber": 8,
  "durationSeconds": 89,
  "durationText": "1:29",
  "releaseDate": "2026-10-15",
  "price": 50,
  "isFree": false,
  "thumbnailUrl": "https://api.vigloo.com/thumbnail?seasonId=15003331&episodeNumber=8",
  "episodeUrl": "https://www.vigloo.com/en/video/15003644?episode=8",
  "programUrl": "https://www.vigloo.com/en/content/15003644",
  "country": "us",
  "language": "en",
  "sourceUrl": "https://www.vigloo.com/en/content/15003644",
  "scrapedAt": "2026-10-20T16:35:21+00:00"
}
```

The **Output** tab shows the episodes as a table with thumbnails.

#### Data fields

| Field | Description |
|-------|-------------|
| `programId`, `programTitle` | Drama ID and title |
| `seasonId`, `seasonNumber` | Season ID and number |
| `episodeId`, `episodeNumber` | Episode ID and number |
| `durationSeconds`, `durationText` | Episode length |
| `releaseDate` | Episode release date (YYYY-MM-DD) |
| `price` | Unlock price in Vigloo coins in the selected country (0 = free) |
| `isFree` | True when the episode is free to watch |
| `thumbnailUrl` | Episode thumbnail. The link opens the JPG image. |
| `episodeUrl` | Watch link on vigloo.com (empty for dramas with more than one season) |
| `programUrl` | Drama page on vigloo.com |
| `country`, `language` | The country and language of the run |
| `sourceUrl` | The input link or ID that gave this row |
| `scrapedAt` | When the row was saved (ISO 8601, UTC) |

### How to use Vigloo Episode Scraper

You can run the scraper from Apify Console, from the Apify API, from code, or from an AI assistant. All examples get the episodes of one drama from the US catalog. Replace `YOUR_API_TOKEN` with your token from **Settings → API & Integrations** in Apify Console.

#### In Apify Console

1. Open the Actor and fill in the **Input** tab.
2. Click **Start**.
3. Watch the progress in the **Log** tab, then open the **Output** tab.
4. Click **Save as a new task** to run the same input again with one click, or to set a schedule.

#### With the Apify API (HTTP)

Run the scraper and get its results in one request:

```bash
curl -X POST "https://api.apify.com/v2/acts/hgservices~vigloo-episode-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"programUrls": ["https://www.vigloo.com/en/content/15003644"], "country": "us", "language": "en"}'
```

Add `&format=csv` or `&format=xlsx` to the URL to get CSV or Excel instead of JSON.

#### With the JavaScript client

Install the client with `npm install apify-client`, then run:

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('hgservices/vigloo-episode-scraper').call({
    programUrls: ['https://www.vigloo.com/en/content/15003644'],
    country: 'us',
    language: 'en',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const episode of items) {
    console.log(episode.episodeNumber, episode.durationText, episode.isFree ? 'free' : `${episode.price} coins`);
}
```

#### With the Python client

Install the client with `pip install apify-client` (version 3.0 or later), then run:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("hgservices/vigloo-episode-scraper").call(
    run_input={
        "programUrls": ["https://www.vigloo.com/en/content/15003644"],
        "country": "us",
        "language": "en",
    }
)
if run is None:
    raise RuntimeError("The run was not found.")

for episode in client.dataset(run.default_dataset_id).iterate_items():
    status = "free" if episode["isFree"] else f'{episode["price"]} coins'
    print(episode["episodeNumber"], episode["durationText"], status)
```

#### With Claude, ChatGPT and other AI assistants (MCP)

Connect your AI assistant to the **Apify MCP server**. The assistant can then run Vigloo Episode Scraper for you and answer from the results. To give the assistant this Actor as a tool, use this server URL:

```
https://mcp.apify.com?tools=hgservices/vigloo-episode-scraper
```

- **Claude (claude.ai or Claude Desktop):** open **Settings → Connectors**, click **Add custom connector** and paste the URL.
- **Claude Code:** run `claude mcp add --transport http apify "https://mcp.apify.com?tools=hgservices/vigloo-episode-scraper"`.
- **ChatGPT:** in **Settings → Apps & Connectors**, turn on developer mode, create a connector and paste the URL.
- **Cursor, VS Code, Codex and other MCP clients:** add the URL as a remote (HTTP) MCP server. With the Apify CLI, you can also run `apify mcp install cursor --tools hgservices/vigloo-episode-scraper` (use `claude-code`, `vscode` or `codex` in place of `cursor` for the other clients).

Sign in with your Apify account when the assistant asks. Then ask in plain language, for example:

- *"How many free episodes does this Vigloo drama have, and what do the other episodes cost? https://www.vigloo.com/en/content/15003644"*
- *"Get the episode lengths of these Vigloo dramas and give me the average length."*
- *"Compare the unlock price of this Vigloo drama in the US and in India."*

#### With integrations

Send the results to **Google Sheets, Slack, email, Zapier, Make, n8n, Airbyte** or any **webhook** from the Actor's **Integrations** tab.

### Tips

- **Get all drama links first.** Run **Vigloo Drama Scraper** to get every drama of a country catalog. Then give its `url` values to this Actor.
- **Compare prices across countries.** Run the scraper one time for each country. The unlock price of the same episode is different in different countries.
- **Track new episodes.** Save your input as a task and set a daily or weekly schedule. Compare the `releaseDate` values to find the new episodes.

### Limits

- **The catalog is different in each country.** The scraper skips a drama that is not available in the selected country. The log tells you which dramas it skipped.
- **Videos are not included.** Vigloo videos are protected and need a paid account. The scraper saves the data about the episodes, not the videos.
- **Episodes have no titles or descriptions.** Vigloo does not show them.
- **Dramas with more than one season have no watch link.** The Vigloo player link has no season number, so the `episodeUrl` field is empty for these dramas. All other fields are filled.

### Related Actors

- **Vigloo Drama Scraper:** get the details of every drama in a country catalog: title, synopsis, genres, tags, cast, episode and free-episode counts, views, likes and posters.
- **Vigloo Trending Scraper:** get the Vigloo Top 10 chart and the popularity ranking of every drama, with 24-hour popularity scores.

### FAQ, disclaimers and support

**Do I need a Vigloo account or the app?**
No. The scraper reads only the public catalog that vigloo.com shows to any visitor. It never logs in.

**Do I need a proxy?**
No. You do not need to set up a proxy.

**Is there a Vigloo API for episode data?**
Vigloo Episode Scraper gives you the episode data of any drama through the Apify API, in JSON, CSV or Excel. You can call it from your code, from no-code tools or from an AI assistant.

**In which currency is the price?**
The price is in Vigloo coins, the in-app currency that viewers use to unlock episodes. The number of coins for an episode is different in different countries.

**Is it legal to scrape Vigloo?**
The scraper collects only public catalog data about episodes. It does not collect personal data. Thumbnails and videos are protected by copyright. You are responsible for using the data in line with Vigloo's terms of service and the law in your country.

**I found a problem or need a feature.**
Open an issue on the **Issues** tab, and we will look into it. Custom solutions are available on request.

# Actor input Schema

## `programUrls` (type: `array`):

Vigloo drama URLs or drama IDs, one per line. Supported: drama pages (https://www.vigloo.com/en/content/15003644), player pages (https://www.vigloo.com/en/video/15003644?episode=1) and numeric IDs (15003644). Duplicates are scraped once.

## `country` (type: `string`):

Two-letter country code (ISO 3166-1), for example us, kr, jp, in, gb or br. Vigloo shows a different catalog in each country, and a drama that is not available in this country is skipped.

## `language` (type: `string`):

Language of the drama titles and of the links.

## Actor input object example

```json
{
  "programUrls": [
    "https://www.vigloo.com/en/content/15003644"
  ],
  "country": "us",
  "language": "en"
}
```

# Actor output Schema

## `episodes` (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 = {
    "programUrls": [
        "https://www.vigloo.com/en/content/15003644"
    ],
    "country": "us"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hgservices/vigloo-episode-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 = {
    "programUrls": ["https://www.vigloo.com/en/content/15003644"],
    "country": "us",
}

# Run the Actor and wait for it to finish
run = client.actor("hgservices/vigloo-episode-scraper").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 '{
  "programUrls": [
    "https://www.vigloo.com/en/content/15003644"
  ],
  "country": "us"
}' |
apify call hgservices/vigloo-episode-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hgservices/vigloo-episode-scraper"
        }
    }
}
```

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/e8Ld4sSAnHqOdSidp/builds/tG7fF4FHRz15YyUXF/openapi.json
