# Likee Scraper · Profiles, Videos, MP4 & Top Creators \[No Login] (`memo23/likee-scraper`) Actor

Scrape Likee creators and their videos with exact views, likes, comments and shares, engagement rate, hashtags, sound and post date. Share links add the direct .mp4. Discover top creators and trending hashtags by country, monitor profiles for new videos. No login.

- **URL**: https://apify.com/memo23/likee-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Social media, Videos, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.90 / 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/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

## Likee Scraper

**Likee creators and their videos with exact views, likes, comments and shares. Share links also return the direct .mp4. No login, no app, no API key.**

Paste a creator (link or name), a video link or a share link from the Likee app, and get clean rows: exact counts, engagement rate, caption, hashtags, mentions, sound, post date, cover and author. Add top creators and trending hashtags by country, or turn the run into a monitor that returns only new videos.

![How the Likee Scraper works: creators, videos and share links in, exact stats and .mp4 out](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-likee-scraper.png)

### Why Use This Scraper?

- **Exact numbers, never rounded.** Views, likes, comments and shares come from Likee's own data feed, so `1,590,884` stays `1,590,884` instead of "1.59M", in every language and on every link.
- **Share links that other scrapers drop.** Likee's web player is gone and most links from the app now land on the Likee home page. This actor reads the share page the app produces and returns the video with exact stats, the direct `.mp4`, duration and download count. Links that other tools report as "deleted" often work here (see the FAQ).
- **No charge for nothing.** A link Likee really does not serve on the web (deleted, private, app-only) produces no row and costs nothing. You never pay for an empty "success" row.
- **Whole profiles.** Every video a creator has published, newest first or most viewed first, with date, view, like, comment, share and engagement filters applied before anything is written.
- **Creator analytics.** One optional row per creator with average and median views, engagement rate, posts per week, views per follower and the best video.
- **Discovery.** Likee's top creators per country (up to 100, ranked) and the hashtag challenges Likee promotes per country.
- **Monitor mode.** Schedule it with "only new videos" on and each run returns just what was posted since the last one.

### Overview

This actor is for influencer marketers vetting Likee creators, agencies reporting on campaigns, brands tracking competitors on Likee, researchers building short-video datasets, and anyone who needs Likee numbers in a spreadsheet.

Every row has a `type`: `video`, `profile`, `creatorSummary` or `hashtag`. Videos from profiles, from links and from discovered creators share one shape, so they go into the same table.

### Supported Inputs

#### URL types

| Input | Example | What you get |
|---|---|---|
| Profile link | `https://likee.video/@baby.miaa` | Profile row + the creator's videos |
| Profile name | `baby.miaa` or `@baby.miaa` | Same as the profile link |
| Share link from the app | `https://l.likee.video/v/sepkYQ` | That video with exact stats, the `.mp4`, duration and downloads |
| Video link | `https://likee.video/@itz.danila/video/7674635972611830810` | That video with exact stats |
| Short form | `itz.danila/7674635972611830810` | Same as the video link |
| Top creators | `"discoverCountries": ["US"]` | Ranked profile rows, optionally with their videos |
| Trending hashtags | `"trendingHashtagCountries": ["US"]` | Hashtag rows with views and post counts |

#### Copy-pasteable startUrls

```json
{
    "startUrls": [
        "https://likee.video/@baby.miaa",
        "https://l.likee.video/v/sepkYQ",
        "itz.danila/7674635972611830810"
    ],
    "maxVideosPerProfile": 30
}
```

#### Unsupported inputs

- Comments: Likee switched off its public comment feed. No web tool can read them today.
- Keyword search and the videos inside a hashtag or sound: Likee switched those feeds off too (they answer "system busy" to every request). Trending hashtags themselves still work.
- A bare post id with no author: Likee has no lookup for it. Pair it with the creator's name (`name/postId`).
- Private accounts: you get the profile row, not the videos.

### Use Cases

- **Influencer vetting:** real median views, engagement rate and posting rhythm before you pay a creator.
- **Campaign reporting:** exact stats for a list of campaign videos, refreshed on a schedule.
- **Competitor tracking:** monitor rival creators and get only their new videos each day.
- **Creator discovery:** pull the top 100 creators of a country, then their recent videos.
- **Trend research:** which hashtag challenges Likee is pushing in a market, and how big they are.
- **Archiving:** download the `.mp4` of videos shared with you.

### How It Works

1. Each line of input is recognised as a profile, a video, a share link, or a country for discovery.
2. Profiles are resolved to Likee's user id, then the creator's videos are read page by page, newest first, with exact counts.
3. A share link is opened the way the Likee app opens it; that gives the post id, author, `.mp4`, duration and downloads. The exact counts are then read from the creator's feed.
4. Filters are applied before anything is written, so filtered videos are never charged.
5. The run goes direct and switches to residential IPs on its own if Likee refuses a request.

### Input Configuration

| Field | Type | Default | What it does |
|---|---|---|---|
| `startUrls` | list | | Profiles, names, video links, `name/postId`, share links |
| `maxVideosPerProfile` | integer | 30 | Videos per profile; 0 = all |
| `videoSort` | `latest` / `mostViewed` | latest | Most viewed reads up to the 1,000 newest videos and returns the top ones |
| `includeProfileRow` | boolean | true | One profile row per creator |
| `includeCreatorSummary` | boolean | false | One analytics row per creator |
| `onlyNewVideos` | boolean | false | Monitor mode: only videos newer than the last run |
| `publishedAfter` / `publishedBefore` | date | | Date window, `YYYY-MM-DD` |
| `minViews`, `minLikes`, `minComments`, `minShares` | integer | 0 | Skip smaller videos (never charged) |
| `minEngagementRate` | integer | 0 | Minimum (likes + comments + shares) / views, in % |
| `discoverCountries` | list | | Country codes for top creators |
| `maxCreatorsPerCountry` | integer | 20 | Up to 100 |
| `videosPerDiscoveredCreator` | integer | 0 | Recent videos per discovered creator |
| `trendingHashtagCountries` | list | | Country codes for trending hashtags |
| `maxItems` | integer | 1000 | Hard cap on rows per run |
| `proxy` | object | | Optional; the actor picks its own route |

#### Example: monitor three creators daily

```json
{
    "startUrls": ["@baby.miaa", "@milana_nekrasova", "@Severkosh"],
    "maxVideosPerProfile": 50,
    "onlyNewVideos": true,
    "includeProfileRow": false
}
```

#### Example: top creators in a country with their best recent videos

```json
{
    "discoverCountries": ["US"],
    "maxCreatorsPerCountry": 50,
    "videosPerDiscoveredCreator": 5,
    "includeCreatorSummary": true
}
```

### Output Overview

| `type` | One row per | Main fields |
|---|---|---|
| `video` | video | counts, engagement rate, caption, hashtags, date, sound, author, `.mp4` for share links |
| `profile` | creator | followers, following, total likes, level, badge, bio, avatar |
| `creatorSummary` | creator (optional) | average/median views, engagement, posts per week, best video |
| `hashtag` | trending hashtag | views, post count, followers, cover |

Export as JSON, CSV, Excel, XML or HTML from the dataset, or read it through the API.

### Output Samples

#### Video (from a share link)

```json
{
    "type": "video",
    "postId": "7575905643698432274",
    "postUrl": "https://likee.video/@baby.miaa/video/7575905643698432274",
    "shareUrl": "https://l.likee.video/v/sepkYQ",
    "caption": "Справилась ? 👇🏻😂",
    "hashtags": [],
    "mentions": [],
    "playCount": 1590884,
    "likeCount": 84852,
    "commentCount": 4718,
    "shareCount": 662,
    "downloadCount": 43,
    "engagementRate": 5.67,
    "postedAt": "2025-11-23T13:03:07.000Z",
    "durationSeconds": 37,
    "country": "RU",
    "isPhotoPost": false,
    "coverUrl": "https://videosnap.like.video/eu_live/9uy/1vN9kB00m2EfDMg1MUCTx_4.jpg?wmk_sdk=1&type=8",
    "videoFileUrl": "https://video.like.video/eu_live/9uF/01vN9jgg01IZ_4.mp4?crc=1487566046&type=5",
    "videoWidth": 1080,
    "videoHeight": 1920,
    "soundId": "3280938347698432274",
    "soundName": "original sound - BABY MIA💫",
    "authorUid": "1216719122",
    "authorLikeeId": "baby.miaa",
    "authorNickname": "BABY MIA💫",
    "authorVerified": true,
    "authorProfileUrl": "https://likee.video/@baby.miaa",
    "input": "https://l.likee.video/v/sepkYQ"
}
```

#### Profile

```json
{
    "type": "profile",
    "uid": "1216719122",
    "likeeId": "baby.miaa",
    "nickname": "BABY MIA💫",
    "profileUrl": "https://likee.video/@baby.miaa",
    "followers": 1505163,
    "following": 207,
    "totalLikes": 26814638,
    "level": 25,
    "verified": true,
    "verifiedLabel": "Verified Creator",
    "privateAccount": false
}
```

#### Creator analytics

```json
{
    "type": "creatorSummary",
    "likeeId": "baby.miaa",
    "followers": 1505163,
    "videosAnalysed": 50,
    "postsPerWeek": 13.82,
    "avgViews": 219037.34,
    "medianViews": 136540.5,
    "avgEngagementRate": 9.18,
    "viewsPerFollower": 0.0907,
    "bestVideoUrl": "https://likee.video/@baby.miaa/video/7694777779967338770",
    "bestVideoViews": 1200147
}
```

#### Trending hashtag

```json
{
    "type": "hashtag",
    "hashtag": "TodayOnCamera",
    "hashtagId": "7573629520268233657",
    "country": "US",
    "playCount": 18642105,
    "postCount": 2340,
    "followers": 320
}
```

### Key Output Fields

| Field | Meaning |
|---|---|
| `playCount`, `likeCount`, `commentCount`, `shareCount` | Exact counts at scrape time |
| `engagementRate` | (likes + comments + shares) / views × 100 |
| `downloadCount`, `durationSeconds`, `videoFileUrl` | Filled for share links (Likee gives them only there) |
| `postUrl` | Canonical Likee address of the video. Likee's website no longer plays videos in a desktop browser, so this is an identifier more than a playable page |
| `shareUrl` | The share link you gave, when you gave one |
| `appDeepLink` | Opens the video in the Likee app |
| `hashtags`, `mentions` | From the caption |
| `isPhotoPost`, `images` | Photo slideshows instead of a video |
| `discoveredCountry`, `discoveredRank` | On profile rows from top-creator discovery |

### FAQ

**Why is `videoFileUrl` empty on profile videos?**
Likee's creator feed does not include the video file; only the share page does. Give the share link from the app (`l.likee.video/v/...`) to get the `.mp4`.

**Another scraper told me my link points to a deleted video. Will it work here?**
Often, yes. Many links fail elsewhere because they are opened with a desktop browser, which Likee now sends to its home page. This actor opens them the way a phone does. If Likee truly does not serve the video, you get a note in the log and no charge.

**Can I get comments?**
No. Likee switched off the public comment feed, and nothing outside the app can read it today. The `commentCount` is exact, though.

**Can I search Likee by keyword or list a hashtag's videos?**
Not today: Likee switched off both feeds for everyone. Trending hashtags (names, views, post counts) still work, and top creators by country is the closest replacement for search.

**Why does a country return no trending hashtags?**
Likee promotes hashtag challenges only in some markets (US, GB, DE, FR, TR, UA, KZ, the Gulf states and others at the time of writing). Where it promotes none, the run says so and charges nothing.

**How does monitor mode remember what it has seen?**
It keeps the date of the newest video per creator in a key-value store named `likee-scraper-monitor` in your own Apify account. Delete that store to start over.

**Do I need a proxy?**
No. The actor starts direct and moves to residential IPs on its own if Likee refuses a request.

**How much does a run cost?**
You pay per row written to the dataset. Filtered, skipped and unavailable videos cost nothing.

### Support

Found a bug or need a field? Open an issue on the actor's Issues tab. Issues are answered quickly.

### Additional Services

Need Likee data on a schedule, in a specific format, or pushed into your database or CRM? Open an issue describing what you need, or email muhamed.didovic@gmail.com for custom work.

### Explore More Scrapers

- [TikTok Scraper](https://apify.com/memo23/tiktok-scraper): TikTok profiles, videos, hashtags, search and comments
- [Kwai & Kuaishou Scraper](https://apify.com/memo23/kwai-kuaishou-scraper): Kwai and Kuaishou videos, profiles and trending
- [Instagram Reels Search Scraper](https://apify.com/memo23/instagram-reels-search-scraper): find viral Instagram reels, no login
- [Instagram Video Downloader](https://apify.com/memo23/instagram-video-downloader): reels and carousels as files
- [YouTube Transcript Scraper](https://apify.com/memo23/youtube-transcript-scraper): transcripts of YouTube videos and Shorts

### 🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the [Apify MCP server](https://mcp.apify.com) or the Apify API (actor: `memo23/likee-scraper`).

**Purpose:** Likee creators, their videos with exact stats, single videos from links (share links add the `.mp4`), top creators per country, trending hashtags per country. No login.

**Minimal input:**

```json
{ "startUrls": ["https://likee.video/@baby.miaa"], "maxVideosPerProfile": 10, "maxItems": 20 }
```

**Output:** rows with `type` = `video` (postId, postUrl, shareUrl, caption, hashtags, mentions, playCount, likeCount, commentCount, shareCount, downloadCount, engagementRate, postedAt, durationSeconds, country, coverUrl, videoFileUrl, sound fields, author fields), `profile` (uid, likeeId, nickname, followers, following, totalLikes, level, verified, bio, avatarUrl), `creatorSummary` (averages, medians, postsPerWeek, best video) or `hashtag` (hashtag, country, playCount, postCount).

**Behaviors an agent should know:**

- Always set `maxItems`. `maxVideosPerProfile: 0` reads a creator's whole feed (can be 1,000+ rows).
- Profile rows are on by default (`includeProfileRow`); turn them off when only videos are wanted.
- `videoFileUrl`, `downloadCount` and `durationSeconds` are filled only for share links.
- Comments, keyword search and hashtag video lists are not available (switched off by Likee).
- Billing: one event per dataset row. Unavailable links and filtered videos cost nothing.

***

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Likee, BIGO Technology or JOYY Inc. All trademarks mentioned are the property of their respective owners.

The scraper reads only data Likee shows publicly: no private accounts' videos, messages or anything visible only to an account owner. Users are responsible for ensuring their use complies with Likee's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.

***

### SEO Keywords

likee scraper, likee video scraper, likee downloader, likee mp4 download, likee profile scraper, likee creator analytics, likee stats, likee views likes, likee API, Apify likee, likee influencer data, likee top creators, likee trending hashtags, likee engagement rate, short video scraper, likee monitor new videos, influencer marketing data, creator discovery, social media analytics, likee no login

# Actor input Schema

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

One per line. Accepted: a profile link (https://likee.video/@name), a bare name (name or @name), a video link (https://likee.video/@name/video/7575905643698432274), the short form name/7575905643698432274, or a share link from the app (https://l.likee.video/v/sepkYQ). Share links also return the direct .mp4 file.

## `maxVideosPerProfile` (type: `integer`):

How many videos to return from each profile. 0 = every video on the profile. Large creators have over 1,000.

## `videoSort` (type: `string`):

Newest first follows the profile feed. Most viewed reads up to the 1,000 newest videos of each profile and returns the top ones by views.

## `includeProfileRow` (type: `boolean`):

One row per profile with followers, following, total likes, level, bio, verified badge and avatar.

## `includeCreatorSummary` (type: `boolean`):

One extra row per profile computed over the videos read: average and median views, average likes, comments and shares, average engagement rate, posts per week, views per follower and the best video. Filters do not distort it.

## `onlyNewVideos` (type: `boolean`):

Monitor mode. The first run returns videos as usual and remembers the newest one per profile; later runs return only videos posted after it. Run it on a schedule and pay only for what is new.

## `publishedAfter` (type: `string`):

Only videos posted on or after this date, e.g. 2026-01-01.

## `publishedBefore` (type: `string`):

Only videos posted on or before this date, e.g. 2026-10-01.

## `minViews` (type: `integer`):

Skip videos with fewer views. Skipped videos are never written and never charged.

## `minLikes` (type: `integer`):

Skip videos with fewer likes.

## `minComments` (type: `integer`):

Skip videos with fewer comments.

## `minShares` (type: `integer`):

Skip videos with fewer shares.

## `minEngagementRate` (type: `integer`):

Skip videos whose (likes + comments + shares) / views is below this percentage.

## `discoverCountries` (type: `array`):

Two-letter country codes (US, RU, IN, ID, PK, BR...). Returns Likee's top creators for each country as profile rows, ranked.

## `maxCreatorsPerCountry` (type: `integer`):

How many top creators to return per country (Likee lists up to 100).

## `videosPerDiscoveredCreator` (type: `integer`):

Also return this many recent videos of each discovered creator. 0 = profile rows only.

## `trendingHashtagCountries` (type: `array`):

Two-letter country codes. Returns the hashtag challenges Likee promotes in each country, with total views and post counts. Likee promotes them only in some markets (US, GB, DE, FR, TR, UA, KZ, SA, AE and others); a country without any returns nothing and costs nothing.

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

Stop after this many rows in total (videos, profiles, analytics and hashtag rows). Keeps the cost of a run predictable.

## `proxy` (type: `object`):

Not needed: the scraper picks its own route and switches to residential IPs by itself when Likee refuses one. Set a proxy only if you want your own.

## Actor input object example

```json
{
  "startUrls": [
    "https://likee.video/@baby.miaa",
    "https://l.likee.video/v/sepkYQ"
  ],
  "maxVideosPerProfile": 30,
  "videoSort": "latest",
  "includeProfileRow": true,
  "includeCreatorSummary": false,
  "onlyNewVideos": false,
  "minViews": 0,
  "minLikes": 0,
  "minComments": 0,
  "minShares": 0,
  "minEngagementRate": 0,
  "maxCreatorsPerCountry": 20,
  "videosPerDiscoveredCreator": 0,
  "maxItems": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

Every row of the run: videos with exact stats, creator profiles, creator analytics and trending hashtags.

# 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": [
        "https://likee.video/@baby.miaa",
        "https://l.likee.video/v/sepkYQ"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/likee-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": [
        "https://likee.video/@baby.miaa",
        "https://l.likee.video/v/sepkYQ",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("memo23/likee-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": [
    "https://likee.video/@baby.miaa",
    "https://l.likee.video/v/sepkYQ"
  ]
}' |
apify call memo23/likee-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/likee-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/IFvB3TVwU57P17pvD/builds/qiWWuaiAcFmpWXDYa/openapi.json
