# Shopee Video Scraper (`parsebird/shopee-video-scraper`) Actor

Download Shopee videos without watermark from shp.ee or sv.shopee share links: MP4 links, cover, duration, likes, comments, caption, and author. Export JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/shopee-video-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.09 / 1,000 shopee videos

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

### Shopee Video Scraper

Shopee Video Scraper turns [Shopee Video](https://shopee.com.br/) share links into **no-watermark MP4 links**, watermarked MP4 links, cover images, duration, likes, comments, captions, and author details, one clean row per video.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Paste shp.ee short links straight from the Shopee app or sv.shopee share-video pages from Brazil, Indonesia, Vietnam, Thailand, Malaysia, the Philippines, Singapore, and Taiwan, and get a direct watermark-free MP4 for each video plus 18 data fields, with no login or Shopee account.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```text
Use Apify Actor parsebird/shopee-video-scraper to get no-watermark MP4 links and metadata for Shopee Video posts. Example with ApifyClient: client.actor("parsebird/shopee-video-scraper").call(run_input={"startUrls":[{"url":"https://shp.ee/3rte2fmk?smtt=0.0.9"},{"url":"https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA"}],"maxItems":50}). Inputs: startUrls array of {url} objects, required (Shopee app short links https://shp.ee/xxxx or country subdomains like https://id.shp.ee/xxxx, share pages https://sv.shopee.<country>/share-video/<postId> for com.br, co.id, vn, co.th, com.my, ph, sg, tw, and shopee.<country>/universal-link?redir=... links); maxItems integer optional, empty = no limit. Links that point to the same video are saved once. Output: one dataset row per unique video with url, inputUrl, postId, region, authorUsername, authorAvatar, caption, hashtags, duration (milliseconds), durationSeconds, musicMuted, likeCount, commentCount, watermarkUrl, noWatermarkUrl (null if the clean file is unavailable), watermarkCoverUrl, shareImageUrl, scrapedAt. Price: $1.99 per 1,000 videos on the Free plan. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.
```

### What is Shopee Video Scraper?

**Shopee Video Scraper** is a **Shopee Video downloader** and **Shopee Video API alternative**. It reads the public share page of each video and returns a **direct MP4 link without the Shopee watermark**, the watermarked MP4, the cover image, and the video's stats and author. You don't need a Shopee account, the Shopee app, or a browser extension.

To try it, open the actor, keep the prefilled input (one `shp.ee` short link and one `sv.shopee.com.br` share link), and click **Start**. The run takes a few seconds. Both prefilled links point to the same video, so the actor saves it only once.

### What can Shopee Video Scraper do?

- 🎬 **Download Shopee videos without a watermark.** For each video the actor builds the clean MP4 link and checks that the file answers before saving it. In our test the clean file was 11.9 MB, against 1.5 MB for the watermarked share version.
- 🔗 **Use any share link format.** It accepts `shp.ee` short links copied from the Shopee app (also country subdomains such as `id.shp.ee` and `vn.shp.ee`), `sv.shopee.<country>/share-video/...` pages, and `shopee.<country>/universal-link?redir=...` links. Tracking parameters, URL-encoded IDs, and `==` padding are handled.
- 🌏 **Eight Shopee countries.** Brazil (`shopee.com.br`), Indonesia (`shopee.co.id`), Vietnam (`shopee.vn`), Thailand (`shopee.co.th`), Malaysia (`shopee.com.my`), the Philippines (`shopee.ph`), Singapore (`shopee.sg`), and Taiwan (`shopee.tw`).
- 📊 **Video stats and author.** Likes, comments, duration, a muted-music flag, caption, hashtags, author username, and avatar.
- 🧹 **No duplicates, no charge for misses.** Links that resolve to the same video are saved once. Removed videos, expired short links, and unsupported links are logged and not charged.
- ⏰ **Built for automation.** Run it on a schedule with [Apify schedules](https://docs.apify.com/platform/schedules), call it from the [Apify API](https://docs.apify.com/api/v2), connect it to [integrations](https://apify.com/integrations) such as Make, Zapier, Google Sheets, or webhooks, and export results as JSON, CSV, Excel, XML, or HTML.

### What data can you extract from Shopee Video?

| Field | Description |
|-------|-------------|
| `noWatermarkUrl` | Direct MP4 link without the Shopee watermark, or `null` if the clean file isn't available |
| `watermarkUrl` | Direct MP4 link of the watermarked share version |
| `watermarkCoverUrl` | Cover image of the video |
| `shareImageUrl` | Smaller share preview image (500 px, watermarked) |
| `duration` / `durationSeconds` | Video length in milliseconds and in seconds |
| `musicMuted` | Whether the video's music is muted |
| `likeCount` / `commentCount` | Public like and comment counts |
| `caption` / `hashtags` | Caption text and the hashtags found in it |
| `authorUsername` / `authorAvatar` | Author's Shopee username and avatar image link |
| `url` / `postId` / `region` | Canonical share page, Shopee post ID, and country code (`br`, `id`, `vn`, `th`, `my`, `ph`, `sg`, `tw`) |
| `inputUrl` / `scrapedAt` | The link you entered and the time the row was saved (UTC) |

### How to scrape Shopee videos

1. In the Shopee app, open a video, tap **Share**, and choose **Copy link**. You get a link like `https://shp.ee/3rte2fmk`.
2. Open [Shopee Video Scraper](https://apify.com/parsebird/shopee-video-scraper) and click **Try for free** to sign in to Apify.
3. Paste one link per row in **Shopee video URLs**. Short links and `sv.shopee` share links can be mixed.
4. Optionally set **Maximum videos** to cap the run.
5. Click **Start**. When the run finishes, open the **Output** tab and download the results as JSON, CSV, or Excel. Open any `noWatermarkUrl` to save the MP4.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrls` | array of `{ "url": string }` | **Yes** | — | Shopee Video links: `shp.ee` short links, `sv.shopee.<country>/share-video/...` pages, or `shopee.<country>/universal-link` links |
| `maxItems` | integer | No | empty (no limit) | Maximum videos saved in one run |

You can set both fields in the [Input tab](https://apify.com/parsebird/shopee-video-scraper/input-schema).

Example input:

```json
{
    "startUrls": [
        { "url": "https://shp.ee/3rte2fmk?smtt=0.0.9" },
        { "url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA" }
    ]
}
```

### Output example

Each row is one unique video. Download the dataset in JSON, CSV, Excel, XML, or HTML.

```json
[
    {
        "url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA",
        "inputUrl": "https://shp.ee/3rte2fmk?smtt=0.0.9",
        "postId": "riOOXtljCQDsUBBjAAAAAA",
        "region": "br",
        "authorUsername": "vaishop__",
        "authorAvatar": "https://down-br.img.susercontent.com/file/br-11134233-81z1k-mgi9wyvixb0gd1",
        "caption": null,
        "hashtags": [],
        "duration": 22967,
        "durationSeconds": 22.97,
        "musicMuted": false,
        "likeCount": 1,
        "commentCount": 0,
        "watermarkUrl": "https://down-zl-br.vod.susercontent.com/api/v4/11110124/mms/br-11110124-6v6x6-mo4v3xjua29t71.16003551778554834.6087.mp4",
        "noWatermarkUrl": "https://down-zl-br.vod.susercontent.com/api/v4/11110124/mms/br-11110124-6v6x6-mo4v3xjua29t71.mp4",
        "watermarkCoverUrl": "https://mms.img.susercontent.com/br-11134114-820lz-mo4va5feccg011",
        "shareImageUrl": "https://mms.img.susercontent.com/br-11134114-820lz-mo4va5feccg011@resize_l500@imgwm_hcT_vcT_d90_uaWQtMTExMzQxMDItN3I5OG8tbGw0dG51dXVheHc0NWM=",
        "scrapedAt": "2026-11-04T13:34:58Z"
    }
]
```

### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("parsebird/shopee-video-scraper").call(run_input={
    "startUrls": [
        {"url": "https://shp.ee/3rte2fmk?smtt=0.0.9"},
        {"url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA"},
    ],
})

for video in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(video["authorUsername"], video["likeCount"], video["noWatermarkUrl"] or video["watermarkUrl"])
```

### JavaScript API example

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('parsebird/shopee-video-scraper').call({
    startUrls: [{ url: 'https://shp.ee/3rte2fmk?smtt=0.0.9' }],
    maxItems: 50,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((v) => `${v.authorUsername} ${v.durationSeconds}s ${v.noWatermarkUrl}`));
```

See Apify's [Python client](https://docs.apify.com/api/client/python/) and [JavaScript client](https://docs.apify.com/api/client/js/) docs for more options.

### Use cases

- **Bulk Shopee video downloads.** Turn a list of share links into clean MP4 files with `curl`, `wget`, or a download manager.
- **Affiliate and creator content.** Collect product videos you have the rights to reuse in ads, landing pages, or other channels without the Shopee overlay.
- **Competitor research.** Track likes and comments on competitors' Shopee videos over time with a scheduled run.
- **Influencer vetting.** Compare engagement across the videos a creator has shared.
- **Content archives.** Keep a backup of your own shop's videos with captions and stats.
- **Dataset building.** Collect video files and metadata in JSON or CSV for tagging, moderation, or video analysis.

### How it works

1. The actor reads your links and follows `shp.ee` short links until it reaches the `sv.shopee` share page. Links that don't lead to a video are reported in the log.
2. It loads the public share page that Shopee shows to logged-out visitors and reads the video data embedded in it. No login is needed.
3. It derives the no-watermark MP4 link from the watermarked one and makes a 1-byte request to confirm the file exists. If it doesn't, `noWatermarkUrl` is `null` and the watermarked link is still returned.
4. It saves one row per unique video and stops at **Maximum videos** or your spending limit. If Shopee refuses a request, the actor retries over a different connection.

### How much does it cost to scrape Shopee videos?

**What is the price per Shopee video?**

| Plan | Price per video | Price per 1,000 videos |
|------|-----------------|------------------------|
| Free | $0.00199 | **$1.99** |
| Bronze | $0.00149 | **$1.49** |
| Silver | $0.00129 | **$1.29** |
| Gold | $0.00109 | **$1.09** |

You pay one `video-scraped` event for each video saved to the dataset. Compute and proxy costs are included in the event price. Removed videos, expired links, unsupported links, and duplicates aren't charged. For example, 500 videos cost $0.995 on the Free plan and $0.545 on Gold.

Apify's free plan includes monthly platform credits you can use on this actor. Set **Maximum videos** or a run spending limit to stay within budget.

### Is it legal to scrape Shopee videos?

**Is scraping Shopee Video legal?**

Shopee Video Scraper only reads data that anyone can see on a public Shopee Video share page without logging in. It doesn't access accounts, private content, or anything behind a login. Scraping publicly available data is generally allowed in many jurisdictions, but the videos belong to their creators and sellers. Review the Shopee Terms of Service for your country, respect copyright, don't re-upload videos you don't have the rights to, and handle personal data such as usernames under applicable laws like GDPR or LGPD. For more background, read Apify's guide: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### Other video downloaders and e-commerce scrapers

| Actor | Best for |
|-------|----------|
| [TikTok Video Downloader](https://apify.com/parsebird/tiktok-video-downloader) | TikTok videos as MP4, re-hosted in Apify storage or your own cloud bucket |
| [Kwai Scraper](https://apify.com/parsebird/kwai-scraper) | Kwai videos, profiles, playlists, and search |
| [Facebook Media Downloader](https://apify.com/parsebird/facebook-media-downloader) | HD and SD MP4 links for public Facebook videos, reels, and photos |
| [Video & Audio Transcriber](https://apify.com/parsebird/video-audio-transcriber) | Transcripts and subtitles for video and audio links |
| [Video Frame Extractor](https://apify.com/parsebird/video-frame-extractor) | Still frames from MP4 links, YouTube, and TikTok |
| [TikTok Shop Reviews Scraper](https://apify.com/parsebird/tiktok-shop-reviews-scraper) | Ratings and reviews from TikTok Shop products |
| [Tokopedia Search Scraper](https://apify.com/parsebird/tokopedia-search-scraper) | Product search results from Tokopedia, Indonesia |

### FAQ

**Do I need a Shopee account or the Shopee API?**

No. The actor reads the public share page Shopee shows to anyone who opens a shared video link. You only need an Apify account.

**Is the no-watermark video always available?**

The actor returns it only after the file answers a test request. If Shopee doesn't serve a clean file for a video, `noWatermarkUrl` is `null` and you still get `watermarkUrl`.

**Does the actor save the MP4 files?**

No. It returns direct links to Shopee's video servers. Open them in a browser or pass them to `curl` or `wget` to download the files.

**Which links work?**

Short links copied from the Shopee app (`https://shp.ee/...`, `https://id.shp.ee/...` and other country subdomains), share pages (`https://sv.shopee.<country>/share-video/...`), and `shopee.<country>/universal-link` links that point to a video. Product, shop, and live-stream links aren't videos and are skipped without charge.

**Can I scrape every video from a shop or search for videos by keyword?**

Not yet. The actor works from video links you provide. Let us know in the [Issues tab](https://apify.com/parsebird/shopee-video-scraper/issues) if you need shop or search support.

**Why did I get fewer rows than links?**

Links that point to the same video are saved once, and removed videos or expired short links are skipped. The run's status message lists how many were saved, not found, unsupported, or failed.

**Can I use it with Make, Zapier, or my own app?**

Yes. Use the [API tab](https://apify.com/parsebird/shopee-video-scraper/api) for ready-to-use code, or connect the actor through Apify [integrations](https://apify.com/integrations) and webhooks.

**Something doesn't work. Where do I report it?**

Open an issue in the [Issues tab](https://apify.com/parsebird/shopee-video-scraper/issues) with your run ID and input.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/shopee-video-scraper/changelog.md

# Actor input Schema

## `startUrls` (type: `array`):

Add one Shopee Video link per row. Supported: short share links from the Shopee app (https://shp.ee/xxxx, https://id.shp.ee/xxxx, https://vn.shp.ee/xxxx and other country subdomains) and share pages (https://sv.shopee.com.br/share-video/xxxx, sv.shopee.co.id, sv.shopee.vn, and other Shopee countries).

## `maxItems` (type: `integer`):

Stop after saving this many videos. Leave empty to scrape every link.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://shp.ee/3rte2fmk?smtt=0.0.9"
    },
    {
      "url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA"
    }
  ]
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://shp.ee/3rte2fmk?smtt=0.0.9"
        },
        {
            "url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/shopee-video-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 = { "startUrls": [
        { "url": "https://shp.ee/3rte2fmk?smtt=0.0.9" },
        { "url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("parsebird/shopee-video-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 '{
  "startUrls": [
    {
      "url": "https://shp.ee/3rte2fmk?smtt=0.0.9"
    },
    {
      "url": "https://sv.shopee.com.br/share-video/riOOXtljCQDsUBBjAAAAAA"
    }
  ]
}' |
apify call parsebird/shopee-video-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/shopee-video-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/3edVHcR64u9WuFN2A/builds/QpDLw2A3RDO92Gk4L/openapi.json
