How to track new TikTok Top Ads by industry and country with Python
Pull TikTok Creative Center Top Ads for several countries and industries, merge the lists, and get only the ads that are new since your last run.
datagrit › Guides › Bilibili Anime Catalog, Rankings & Calendar
GuidePull Bilibili's Top 100 anime ranking, a filterable catalog with follower and rating counts, and the release calendar as clean JSON using Python or cURL.
Published 2026-10-05 · uses the Bilibili Anime Catalog, Rankings & Calendar Actor
Bilibili is where a large share of anime and Chinese animation ("donghua", called guochuang on the site) is watched and talked about. Its numbers matter to licensors, streaming analysts, fan sites and studios: how many people follow a series, how many plays it has, how it is rated, and which episode comes out tomorrow. Most Bilibili tooling targets videos, comments and creator profiles. The series layer, the section Bilibili calls "bangumi" or PGC, is rarely covered.
This guide shows how to read that layer as data: a Top 100 ranking, a filtered catalog with statistics, a release calendar, and a full record for single series. The examples use the Bilibili Anime Catalog, Rankings & Calendar Actor, but the field notes apply to anything you build on the same public endpoints.
Bilibili serves its series pages from public JSON endpoints that need no login and no request signature. The Actor reads four families of them:
Each endpoint reports counts in a different shape. The catalog index gives only the number you sorted by, as text like 552.9万追番 (5.529 million followers, where 万 means ten thousand and 亿 a hundred million). The statistics endpoint gives exact integers. The calendar reports - for series that have no count yet. The Actor converts all of this to plain numbers and leaves a field null when the source has no value, so a missing count never turns into a zero.
sortedBy and matchedFilters so you can see how it was selected.found: false.Retry-After.A catalog run for anime, sorted by followers, with statistics:
{
"mode": "catalog",
"contentTypes": ["anime"],
"sortBy": "follows",
"isFinished": "any",
"includeStats": true,
"maxItems": 20
}
mode is one of ranking, catalog, calendar or details. In catalog mode you can add access (free or paid members), year, quarter, area and genres (English names such as comedy or isekai, or the Chinese names shown on Bilibili). For a ranking, use "mode": "ranking" with rankingWindowDays of "3" or "7". For one or more specific titles, use "mode": "details" with seasons set to IDs such as ss33415, ep323085, md28228813 or full Bilibili URLs.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("datagrit/bilibili-anime-series-tracker").call(run_input={
"mode": "catalog",
"contentTypes": ["anime"],
"sortBy": "follows",
"includeStats": True,
"maxItems": 20,
})
rows = [r for r in client.dataset(run["defaultDatasetId"]).iterate_items() if r.get("found")]
for r in rows[:10]:
print(r["follows"], r["ratingScore"], r["ratingCount"], r["title"])
curl -X POST \
"https://api.apify.com/v2/acts/datagrit~bilibili-anime-series-tracker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"ranking","contentTypes":["anime","guochuang"],"rankingWindowDays":"7","maxItems":100}'
| Field | Example | Meaning |
|---|---|---|
recordType | catalog | ranking, catalog, calendar or season |
seasonId | 835 | Bilibili season ID, the ss number in the play URL |
follows | 5529108 | followers of this season |
seriesFollows | 5803863 | followers across all seasons of the series |
views | 97780235 | play count |
ratingScore / ratingCount | 9.6 / 53783 | score and number of ratings; null when there are no ratings yet |
danmaku | 4710640 | on-screen comment count |
isFinished | true | finished or still airing |
accessLevel | member | free or member (paid Bilibili membership) |
areas | ["日本"] | production regions |
Ranking rows add rank and rankingWindowDays. Calendar rows add calendarDate, episodeId, episodeLabel, episodePublishAt, episodePublished and episodeDelayed.
A weekly follower snapshot in a sheet. Schedule a ranking run every Monday and append the rows to a spreadsheet with a date column. Because the ranking carries follows and views per season, the difference between two weeks shows which series are gaining followers fastest.
A release alert. Schedule a calendar run once a day with calendarDaysAfter set to 2. Filter the rows where episodeDelayed is true and send those to Slack or email; the delayReason field carries Bilibili's own explanation when one exists.
A quick look at a genre in pandas. Pull the free comedy titles sorted by plays and see how rating relates to follower count:
import pandas as pd
df = pd.DataFrame(client.dataset(run["defaultDatasetId"]).list_items().items)
df = df[df["found"] == True]
print(df[["title", "views", "follows", "ratingScore", "ratingCount"]]
.sort_values("follows", ascending=False).head(15))
For a run like this, set access to free and genres to ["comedy"] in the input.
The Actor is on the Apify Store as Bilibili Anime Catalog, Rankings & Calendar, and the full input and output reference is on the documentation page. It is priced per result, and a maximum spend on the run caps what a run can cost.
Pull TikTok Creative Center Top Ads for several countries and industries, merge the lists, and get only the ads that are new since your last run.
Pull startup job postings with pay ranges from Ashby boards, annualised to yearly amounts, with currency and remote filters and an only-new feed.
Monitor open roles at a list of companies across 8 applicant tracking systems in one schema, with numeric salaries and a daily only-new feed.