Likee Scraper — @Handle Profiles & Video Stats avatar

Likee Scraper — @Handle Profiles & Video Stats

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Likee Scraper — @Handle Profiles & Video Stats

Likee Scraper — @Handle Profiles & Video Stats

$5 per 1,000 results. Scrape any Likee creator by @handle, profile URL, user ID or share link: views, likes, comments, shares, engagement rate and creator analytics. Monitor accounts for new posts, filter by views or date, and score standout videos. Share links also return a playable MP4. No login.

Pricing

from $5.00 / 1,000 results

Rating

4.9

(3)

Developer

Scrapelab Max

Scrapelab Max

Maintained by Community

Actor stats

0

Bookmarked

19

Total users

7

Monthly active users

2 days ago

Last modified

Share

Likee Scraper

Your feedback shapes this actor. I'd love to hear what you think: missing fields, inputs you wish existed, confusing output, anything that slowed you down. Open an issue on the actor's Issues tab in the Apify Store and I'll make improvements to better suit how you use it.

Scrape any Likee creator by @handle or profile URL: the account record (followers, bio, total likes, verified badge), their newest videos with exact stats, and computed creator analytics. Or paste a video share link for its stats and a playable mp4. Discover creators by country, filter by engagement, score standout videos, and monitor accounts for new posts. Export everything as JSON, CSV or Excel.

Fast and cheap: plain HTTP, no browser. A typical run finishes in under 30 seconds.

What you get

  • Any creator by @handle. Paste https://likee.video/@handle, @handle or a bare handle. You get the profile (followers, following, bio, total likes, verified, socials, total posts), their newest videos (up to maxVideosPerProfile, exact counts) and one analytics record.
  • Video data from a share link. Paste a https://l.likee.video/v/… link (in the app: video → Share → Copy link) for views, likes, comments, shares, engagement rate, caption, hashtags, music, publish date, cover image and a direct mp4 URL you can play or download. By default the creator behind the link is scraped too; turn that off for a one-record lookup.
  • One specific video without a share link. handle/postId or a likee.video/@handle/video/<postId> page returns just that video; or search an account by caption and/or date with findInProfile.
  • Creator analytics. Per account: posts per week, posts in the last 7 and 30 days, average and median views, average likes, comments, shares and engagement rate, and the best-performing recent video.
  • Engagement score. Turn on engagementScore and every profile video is scored against its author's own median: viewsVsAuthorMedian: 3.2 means 3.2× the creator's usual reach.
  • Creator discovery by country. Pull Likee's recommended creators for a country, filter by minimum followers, and optionally hydrate each one's videos and analytics.
  • Trending hashtag metadata. Post count, play count and follower count for hashtags on Likee's trending list.
  • Engagement and date filters. Minimum views, likes, comments, shares, engagement rate, and a publish-date window. Filtered-out videos never count against your result budget.
  • Monitoring mode. onlyNewResults returns only videos you haven't seen on a previous run with the same targets. Schedule it and get a feed of new posts.
  • Clean, flat output. The Overview table shows Author, Views, Likes, Comments, Shares, Engagement % and MP4 as columns. No nested JSON to expand.

Quick start

  1. Paste one or more @handles or profile URLs into Profile URLs or @handles — or share links into Video share URLs.
  2. Run. Results land in the dataset within seconds.

Minimal input:

{
"profileUrls": ["https://likee.video/@baby.miaa"]
}

With defaults, one handle returns about 100 records: the profile, the creator's newest videos and one creator-analytics record. A share link with Also scrape the creator off returns one record.

What a run costs

Pricing is per result, so you only pay for records that land in your dataset. Filtered-out videos are free. Reference points at the list price of $5 per 1,000 results:

RunRecordsCost
One share link, creator scraping off1half a cent
One share link, defaultsabout 100about $0.50
One @handle, defaultsabout 100about $0.50
One handle/postId lookup1half a cent

Compute is negligible: a run uses 256 MB of memory for under a minute.

Output

Every record carries a type field: video, profile, creator, creatorAnalytics or hashtag. Fields Likee doesn't expose are null, never guessed.

Video (from a share link, so media.videoUrl is populated):

{
"type": "video",
"videoId": "7641427886757765070",
"description": "#dance #fyp",
"author": {
"uid": "71622063",
"username": "HouseofB",
"nickname": "HouseofBrooklyn",
"avatar": "https://img.like.video/...",
"profileUrl": "https://likee.video/@HouseofB",
"isPrivate": false,
"videoCount": 1248
},
"stats": { "views": 2430000, "likes": 168070, "comments": 14230, "shares": 8470, "downloads": 43 },
"engagementRate": 7.85,
"media": {
"videoUrl": "https://video.like.video/.../....mp4",
"coverUrl": "https://videosnap.like.video/...",
"width": 1080,
"height": 1920,
"download": null,
"durationSec": 37
},
"hashtags": ["dance", "fyp"],
"mentions": [],
"music": { "id": "123456", "name": "Original sound", "owner": "HouseofBrooklyn", "track": null },
"country": "US",
"publishedAt": "2026-05-11T12:22:53.000Z",
"matchedQueries": [],
"matchedHashtags": [],
"scrapedAt": "2026-09-26T00:00:00.000Z",
"videoPageUrl": "https://likee.video/@HouseofB/video/7641427886757765070"
}

Videos collected from a creator's profile have the same shape with exact counts from Likee's API. Their media.videoUrl is null; the mp4 is only available through the share page, which is why share links are the recommended entry point. Profile and hashtag videos also have media.durationSec, stats.downloads and author.videoCount set to null; those come only from the share page. When the same video arrives from both paths, the mp4 and the share-page-only fields are kept.

music.track is { id, name, coverUrl } when the payload included a licensed track, otherwise null. On profile/hashtag videos null means an original sound. On share-link videos it is always null, including licensed songs (the share page doesn't expose the track).

Changelog

  • Oct 2026: added videoPageUrl, media.durationSec, stats.downloads, author.videoCount, music.owner, music.track. No fields were removed or renamed. music.id is now filled on original-sound profile videos (was null).
  • Oct 2026 (0.3): profiles gain bio, totalLikes, verified, socials, postCount (account total; videoCount is still the number of videos in this run) and followers / following are now filled whenever Likee's profile lookup succeeds. Videos gain authorMedianViews, viewsVsAuthorMedian, engagementVsAuthorMedian (null unless engagementScore is on).
  • Oct 2026 (0.3): likee.video/@handle/video/<id> URLs in videoUrls, which used to fail, are now looked up. An input that contained one gets a new input hash on its first run after the upgrade, so the onlyNewResults seen-set resets once.

Profile (one per scraped account):

{
"type": "profile",
"uid": "1216719122",
"username": "baby.miaa",
"nickname": "BABY MIA💫",
"avatar": "https://img.like.video/...",
"followers": 1494234,
"following": 205,
"isPrivate": false,
"videoCount": 100,
"profileUrl": "https://likee.video/@baby.miaa",
"scrapedAt": "2026-10-18T00:00:00.000Z",
"bio": "Collabs: see pinned video",
"totalLikes": 26560796,
"verified": true,
"socials": {
"instagram": "baby.miaa",
"youtube": null,
"facebook": null,
"twitter": null,
"vk": null,
"ok": null,
"weibo": null
},
"postCount": 1389
}

Creator (from discovery):

{
"type": "creator",
"uid": "1324736462",
"likeid": "someLikeId",
"nickName": "Some Creator",
"fansCount": 52000,
"followCount": 120,
"avatar": "https://img.like.video/...",
"country": "US",
"scrapedAt": "2026-09-26T00:00:00.000Z"
}

Creator analytics:

{
"type": "creatorAnalytics",
"uid": "1324736462",
"videosAnalyzed": 30,
"postsLast7d": 3,
"postsLast30d": 12,
"postsPerWeek": 2.8,
"avgViews": 45210.5,
"medianViews": 38000,
"avgLikes": 3021.4,
"avgComments": 88.2,
"avgShares": 210.1,
"avgEngagementRate": 7.35,
"viewToFollowerRatio": 0.87,
"bestRecentVideoId": "7641427886757765070",
"scrapedAt": "2026-09-26T00:00:00.000Z"
}

Hashtag metadata (found: false with null stats when the tag isn't on the trending list):

{
"type": "hashtag",
"tagName": "newmusicfriday",
"found": true,
"postCnt": 15234,
"playCnt": 9021332,
"fansCnt": 525,
"banners": [],
"scrapedAt": "2026-09-26T00:00:00.000Z"
}

Input reference

FieldWhat it does
profileUrlshttps://likee.video/@handle, @handle, bare handle or numeric uid. The main entry point.
videoUrlsShare links (l.likee.video/v/…), likee.video/@handle/video/<postId> pages, or handle/postId.
findInProfile, findByCaption, findByDate, findAllMatchesFind a video in an account by caption and/or UTC day. Only matches are returned.
videoSortlatest (default) or popular — the newest maxVideosPerProfile videos re-ordered by views.
engagementScoreScore each profile, lookup and find video against its author's median views and engagement. Default off.
hydrateVideoUrlAuthorsAlso scrape each link's creator: profile, videos, analytics. Default on.
discoverCreators, country, maxCreators, minFollowersCreator discovery by country.
hydrateCreatorVideos, videosPerCreatorForAnalyticsFetch discovered creators' videos so analytics can be computed.
hashtagsHashtags to look up on the trending list (metadata only).
maxResultsGlobal cap on records. Spent in order: share links and lookups → profile videos → discovery → hashtags.
maxVideosPerProfileVideos to fetch per account (newest first).
minViews, minLikes, minComments, minShares, minEngagementRateDrop videos below these thresholds.
publishedAfter, publishedBeforeKeep only videos in this date window.
includeProfileAnalyticsEmit a creatorAnalytics record per account. Default on.
onlyNewResultsSkip videos seen on earlier runs with the same targets.
uids (Advanced)Numeric account ids, for example from a previous run's output.
proxyConfigurationDefaults to Apify residential proxy pinned to the US.

A run needs at least one entry point: profileUrls, videoUrls, uids, findInProfile, discoverCreators: true or hashtags.

Full example:

{
"profileUrls": ["@baby.miaa"],
"videoUrls": ["https://l.likee.video/v/oaoej1"],
"uids": ["1324736462"],
"discoverCreators": true,
"country": "US",
"maxCreators": 50,
"minFollowers": 1000,
"hydrateCreatorVideos": true,
"videosPerCreatorForAnalytics": 30,
"hashtags": ["newmusicfriday", "dance"],
"maxResults": 500,
"maxVideosPerProfile": 100,
"minViews": 0,
"minEngagementRate": 0,
"publishedAfter": "2026-01-01",
"includeProfileAnalytics": true,
"onlyNewResults": true
}

Good to know

  • Share-page counts are display-rounded. Likee's share page shows "2.43M" rather than an exact number, so a share-link video reports views: 2430000. Videos fetched from a creator's profile carry exact counts. Analytics are computed from the exact ones only.
  • Empty columns on an @handle or uid run are expected. media.videoUrl, media.durationSec, stats.downloads and author.videoCount come only from a video's share page, so they are null for videos read from a creator's profile; pass the video's share link in videoUrls to fill them. authorMedianViews, viewsVsAuthorMedian and engagementVsAuthorMedian fill when engagementScore is on (off by default). Everything else on a profile video is exact and present.
  • Hashtag lookup covers Likee's trending list only. Tags not on it return found: false, and you cannot list the videos under a hashtag.
  • Not available: keyword search, hashtag video listing, comments. These endpoints require Likee's signed client requests, which this actor does not reverse-engineer. Passing searchQueries, scrapeComments, maxCommentsPerVideo or hashtagVideos logs a warning and is ignored.
  • Blocked regions. Likee is unavailable in some countries (India, for example). If a run reports CONTENT_UNAVAILABLE with a /notfound URL, change the proxy country. The default pins the US.
  • onlyNewResults tracks videos only. Profile, creator, analytics and hashtag records are emitted every run.
  • popular sorts within the fetched window. Likee's API only lists newest-first, so videoSort: "popular" re-orders the newest maxVideosPerProfile videos by views; it never looks further back. Raise maxVideosPerProfile for a wider window.
  • handle/postId and find lookups have no mp4. They come from the profile API (exact counts, media.videoUrl null). Only share links carry a playable mp4.
  • Engagement-score keys stay null on share-link videos, even when the same video is read again through the creator's profile in the same run: the share record is written first and the duplicate is dropped. handle/postId and find lookups also run before profile videos, so a video found both ways keeps the lookup copy (scored when engagementScore is on).
  • A handle and its numeric uid are different targets for onlyNewResults. Keep using the same spelling on scheduled runs.

Run summary

Nothing fails silently. Every run writes a RUN_SUMMARY record to the key-value store with per-type counts, a list of failed requests and notes (PROFILE_NOT_FOUND, PRIVATE_PROFILE, CONTENT_UNAVAILABLE, dead or private share links), any ignored input fields, and whether maxResults was hit before every workflow ran. Runs with failures also show the reason in the run's status banner.

Development

npm install
npm test # unit tests on fixtures — never hits live Likee
npm run lint
npm run build
npm run start:dev # tsx src/main.ts, reads local .actor/input_schema.json-shaped INPUT

Plain HTTP only (fetch + undici ProxyAgent). No browser, no Playwright/Puppeteer/Crawlee, no reverse-engineered request signing. tests/**/*.live.test.ts files are excluded from npm test and hit the real API; run them with LIVE=1 explicitly and sparingly.