Bilibili Video Metrics Tracker - Views, Likes, Coins, Changes
Pricing
from $1.60 / 1,000 videos
Bilibili Video Metrics Tracker - Views, Likes, Coins, Changes
Paste Bilibili video links and get views, likes, coins, favorites, shares and comments per video, with the change since your last run. Exact integers from Bilibili's public API, no login, one flat row per link.
Pricing
from $1.60 / 1,000 videos
Rating
0.0
(0)
Developer
SUNGHWAN CHO
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Bilibili Video Metrics Tracker
Paste Bilibili video links and get views, likes, coins, favorites, shares and comments per video, with the change since your last run. One flat row per link, every count an exact integer straight from Bilibili's public API (no "1.2万" rounding), plus the uploader's follower count. Run it daily on a schedule and each row tells you how much every number moved since the last run.
No browser, no login, no account. Only the public JSON that bilibili.com itself loads for any visitor.
What you can do with it
- Campaign and sponsorship reporting: track the videos you paid for and report exact views, likes, coins (投币), favorites (收藏), shares and comments per day.
- Creator monitoring: watch your own or competitors' uploads and see which ones are still growing.
- Influencer vetting: uploader follower count next to each video's engagement.
- Content research: exact engagement numbers for any list of public videos, ready for a spreadsheet or an LLM agent.
Input
| Field | What it does |
|---|---|
videoUrls | Video links or ids, one per line. Accepted: https://www.bilibili.com/video/BV1CUso6AELi/, mobile links, https://b23.tv/xxxxxxx short links, https://www.bilibili.com/video/av170001/, bare BV1CUso6AELi or av170001. Up to 10,000 per run. Required. |
includeOwnerStats | Add ownerFollowerCount (one extra request per unique uploader, cached within the run). Default on. |
compareWithLastRun | Add previous*, *Change and isFirstSeen fields compared with the last run that used the same history store. Default on. |
outputMode | all (default) or changesOnly - save and pay only for videos whose numbers moved since the last run (first-seen videos are always saved). |
historyStoreName | Named key-value store in your account that keeps the last numbers per video. One name per watch list. Default bilibili-video-history. |
proxyConfiguration | Apify datacenter proxy is enough (default). After a Bilibili block the retry goes through residential proxy when your plan has it. |
maxRequests, maxRunMinutes | Safety caps per run. |
Example:
{"videoUrls": ["https://www.bilibili.com/video/BV1CUso6AELi/","https://b23.tv/BV14txF65Efd","av170001"],"outputMode": "all"}
Output
Exactly one row per video link, even when the video could not be read (status tells you why, and such rows are free). Every row has every field; values Bilibili did not give are null.
{"bvid": "BV1CUso6AELi","aid": 117523072682594,"inputUrl": "https://www.bilibili.com/video/BV1CUso6AELi/","status": "ok","statusMessage": null,"title": "【独家】《罗小黑战记》第41话 开始学习吧小黑同学【10月国创】","description": "每周五12:00,B站独播!","category": null,"categoryId": 153,"publishedAt": "2026-10-30T04:00:02.000Z","durationSec": 687,"ownerId": 98627270,"ownerName": "哔哩哔哩国创","ownerUrl": "https://space.bilibili.com/98627270","ownerFollowerCount": 7840660,"viewCount": 4091337,"likeCount": 104268,"coinCount": 92765,"favoriteCount": 30558,"shareCount": 24766,"commentCount": 13738,"danmakuCount": 119145,"url": "https://www.bilibili.com/video/BV1CUso6AELi/","thumbnailUrl": "https://i1.hdslb.com/bfs/archive/f2b4cdbae66af01348838b963b9d5040402000e2.png","scrapedAt": "2026-10-31T10:00:00.000Z","previousScrapedAt": "2026-10-30T10:00:00.000Z","previousViewCount": 3900120,"viewChange": 191217,"previousLikeCount": 101000,"likeChange": 3268,"previousCoinCount": 90000,"coinChange": 2765,"previousFavoriteCount": 30000,"favoriteChange": 558,"previousShareCount": 24000,"shareChange": 766,"previousCommentCount": 13000,"commentChange": 738,"previousDanmakuCount": 118000,"danmakuChange": 1145,"previousOwnerFollowerCount": 7838000,"ownerFollowerChange": 2660,"isFirstSeen": false,"source": "bilibili","schemaVersion": 1}
Field notes:
status:ok(data row, charged),not_found(deleted, private or never existed),blocked(Bilibili refused every proxy session tried),error(unreadable input, or the run stopped before this video).statusMessagesays what to do next.- All counts are the exact integers Bilibili's API reports (
stat.view,stat.like,stat.coin,stat.favorite,stat.share,stat.reply,stat.danmaku).commentCountis Bilibili'sreplycount (top-level comments plus replies). *Change= this run minus the previous run for the same video;nullon the first run or when one side is missing.isFirstSeenistruethe first time a video is seen in this history store.categoryIdis Bilibili's partition id (分区tid, e.g. 153 = 国创 / Chinese animation).categoryis the partition name when the API sends it; at the moment the public endpoint leaves the name empty for most videos, so expectnullthere and usecategoryId.publishedAtis UTC (Bilibili publishes in Beijing time, UTC+8).- Duplicate links to the same video are merged into one row. A b23.tv short link costs one extra request to read its redirect.
- A run summary (counts per status, saved rows, request/retry/block counters, stop reason) is saved as the
RUN_SUMMARYrecord in the run's key-value store. It is not billed.
Pricing
Pay per event: you pay for each ok video row saved (video). Rows with status not_found, blocked or error, and the run summary, are free. With outputMode: changesOnly, unchanged videos are not saved and not charged. The run stops cleanly at your "Maximum cost per run".
Daily tracking
- Put your watch list in
videoUrlsand run once (first run:isFirstSeen: true, no changes yet). - Schedule the same input daily. Every row now has
previousScrapedAtand the exact differences. - For alerting or cheaper monitoring set
outputMode: changesOnly: on Bilibili almost every public video moves a little each day, so this mostly filters out dead videos; the main saving is on long watch lists of old uploads. - Use a different
historyStoreNamefor each separate watch list so they do not overwrite each other.
How it works
For each link the Actor calls Bilibili's public video endpoint (/x/web-interface/view) and, once per uploader, the public follower endpoint (/x/relation/stat). Each proxy session first asks Bilibili's own public endpoint (/x/frontend/finger/spi) for the anonymous visitor id (buvid3) that every visitor of bilibili.com receives, and sends it with its requests - without it Bilibili answers HTTP 412 to datacenter IPs. No account, no login cookie, no browser, no signing, no fingerprint forging. Requests are spaced (about 0.4-0.8 s apart) and a session is replaced after 25 calls or any refusal.
Limits (by design)
- Video links only. No keyword search, no rankings, no comment text, no danmaku text, no uploader video lists, no login-only data.
- Follower count comes from the public relation endpoint; it is the uploader's total, not per video.
- Bilibili bans an IP for a few minutes after a burst of requests. The Actor spaces requests, rotates datacenter proxy sessions, and retries once through residential proxy when available; if every attempt is refused the row gets
status: blocked(free) and the run stops after 6 blocked videos in a row. Run again a few minutes later. - Up to 10,000 links per run; the history store keeps up to 50,000 videos for 6 months after they were last seen.
Legal
Unofficial. Not affiliated with or endorsed by Bilibili (上海宽娱数码科技有限公司). Reads only public video statistics that bilibili.com shows to any visitor; no personal data beyond the uploader's public display name and id. You are responsible for complying with Bilibili's terms of service and the laws that apply to you.