Dzen Scraper: Channel Stats, Articles, Transcripts avatar

Dzen Scraper: Channel Stats, Articles, Transcripts

Pricing

from $1.50 / 1,000 publications

Go to Apify Store
Dzen Scraper: Channel Stats, Articles, Transcripts

Dzen Scraper: Channel Stats, Articles, Transcripts

Dzen scraper and dzen.ru API alternative (Yandex Zen): views, likes, comments and subscribers for channels, articles, posts, videos and shorts, read-throughs for articles, full article text and transcripts of videos with Dzen subtitles. No login, no browser, no start fee.

Pricing

from $1.50 / 1,000 publications

Rating

0.0

(0)

Developer

Firsthand

Firsthand

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Dzen Scraper turns public Dzen (ex Yandex Zen) pages into clean rows: views, likes, comments and channel subscribers for articles, posts, videos and shorts, read-throughs for articles and posts, plus the full article text and transcripts of videos that have Dzen's own Russian subtitles. Paste channel links or publication links and export to JSON, CSV or Excel, or call it as a Dzen API from your code.

No Yandex account, no browser and no proxy are needed: runs are fast and cheap, and there is no start fee.

What you get

  • Channels: articles, videos and shorts of a channel, newest first, page by page, with the channel name, link and subscriber count in each row. Posts are looked up in the latest 200 entries of the channel feed.
  • Engagement: views, likes, comments, engagementRate. Articles and posts also have viewsTillEnd (read to the end) and readThroughRate; Dzen does not show these for videos and shorts.
  • Content: title, lead text, full article and post text, read time, video duration, cover image, publication time. Video description and tags come with Open every publication or a direct video link, when the author set them.
  • Video transcripts: the transcript with timestamps for videos that have subtitles on Dzen. hasSubtitles in every video row tells you which ones do. No speech recognition fees.
  • Familiar fields: contentId, contentType, contentUrl, author, authorUrl, authorSubscribers, publishedAt, engagementRate, inputUrl use the names found in two popular Dzen actors, so moving a pipeline takes little work. Some values differ, so check contentId, authorId and status if you switch.

How to use Dzen Scraper

  1. Paste links into Dzen links, one per line. Supported:
    • channels: https://dzen.ru/tass, https://dzen.ru/id/5ddebbefc429860a2f8e4c3c, or just tass; a link with ?tab=shorts or ?tab=videos takes only that type;
    • articles https://dzen.ru/a/..., posts https://dzen.ru/b/..., videos https://dzen.ru/video/watch/..., shorts https://dzen.ru/shorts/...;
    • old zen.yandex.ru/... and mobile m.dzen.ru/... links.
  2. For channels, choose What to take from channels (articles, videos, shorts, posts) and Max publications per channel and type.
  3. Turn on Add video transcripts if you need the text of videos, and Open every publication if you need complete article text, exact publication time and video descriptions from channels.
  4. Click Start and download the dataset.

Dzen channel statistics

Channel rows come straight from Dzen's channel feed, 20 publications per request, so a channel with hundreds of articles is read in seconds. Each row has views, read-throughs, likes and comments as Dzen shows them on the channel page.

Dzen video transcript

With Add video transcripts on, every video with subtitles gets transcript (plain text), transcriptSegments (start, end, text), transcriptLanguage and transcriptSource (dzen_auto_subtitles).

transcriptStatus tells what happened: ok, no_subtitles (no track on Dzen), empty_subtitles (the track has no speech), subtitles_unavailable (the download failed), subtitles_wrong_video (Dzen returned a track of another video), skipped_max_charge (the run's maximum cost left no room). The transcript is charged only with ok; the video row itself is a normal paid row in every case.

Not every video has subtitles. In a sample of 58 videos from 4 channels on October 31, 2026, 30 had them, and it depends on the channel: 15 of 15 on one, 1 of 13 on another. Shorts had none (0 of 60), so shorts return no_subtitles. Run the channel without transcripts first and check hasSubtitles if you need to know in advance.

Example output

A video and an article from a real run, long texts shortened here:

[
{
"platform": "dzen",
"contentType": "video",
"contentId": "6a51d216dc87c335f3ac8f2e",
"contentUrl": "https://dzen.ru/video/watch/6a51d216dc87c335f3ac8f2e",
"title": "Закон Бернулли",
"author": "GetAClass | Физика в опытах",
"authorId": "5da40fd8bc251465cd7975ed",
"authorUrl": "https://dzen.ru/getaclass",
"authorSubscribers": 18854,
"views": 164381,
"viewsTillEnd": null,
"readThroughRate": null,
"likes": 238,
"comments": 26,
"engagementRate": 0.16,
"publishedAt": "2026-07-11T05:19:30Z",
"timeToReadSeconds": null,
"durationSeconds": 347,
"textPreview": "Закон Бернулли устанавливает зависимость между скоростью стационарного потока жидкости и её давлением. Согласно этому за...",
"text": null,
"tags": [
"физика",
"наука",
"принцип бернулли",
"уравнение непрерывности"
],
"imageUrl": "https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6a51d216dc87c335f3ac8f2e_6a51d234c5f9831d7439d1ef/smart_crop_516x290",
"hasSubtitles": true,
"inputUrl": "https://dzen.ru/video/watch/6a51d216dc87c335f3ac8f2e",
"transcript": "Что будет, если между двумя шарами, висящими на нитях, направить сильную струю воздуха? Кажется, что струя растолкнет ша...",
"transcriptSegments": [
{
"start": 21.92,
"end": 23.68,
"text": "Что будет, если между двумя шарами,"
},
{
"start": 23.7,
"end": 26.25,
"text": "висящими на нитях, направить сильную"
}
],
"transcriptLanguage": "ru",
"transcriptSource": "dzen_auto_subtitles",
"transcriptStatus": "ok",
"status": "ok",
"scrapedAt": "2026-10-31T07:31:27Z"
},
{
"platform": "dzen",
"contentType": "article",
"contentId": "afRiHXixAFfUTmXO",
"contentUrl": "https://dzen.ru/a/afRiHXixAFfUTmXO",
"title": "Овощи, которые стоит сажать рядом друг с другом 🍅🌿",
"author": "Садовый клуб. Вероника Поливкина",
"authorId": "5ddebbefc429860a2f8e4c3c",
"authorUrl": "https://dzen.ru/id/5ddebbefc429860a2f8e4c3c",
"authorSubscribers": 91419,
"views": 24889,
"viewsTillEnd": 17157,
"readThroughRate": 68.93,
"likes": 316,
"comments": 3,
"engagementRate": 1.28,
"publishedAt": "2026-05-06T05:30:37.272Z",
"timeToReadSeconds": 81,
"durationSeconds": null,
"textPreview": "Грамотное соседство на грядках — это не просто удобство, а настоящий способ повысить урожай, защитить растения от вредит...",
"text": "Грамотное соседство на грядках — это не просто удобство, а настоящий способ повысить урожай, защитить растения от вредит...",
"tags": null,
"imageUrl": "https://avatars.dzeninfra.ru/get-zen-pub-og/271828/pub_69f4621d78b10057d44e65ce_69facb55e7c98d7e5ac29d44/optimize",
"inputUrl": "https://dzen.ru/a/afRiHXixAFfUTmXO",
"status": "ok",
"scrapedAt": "2026-10-31T07:31:21Z"
}
]

Pricing

Pay per result. There is no start fee, so a run on one link costs one row, while other Dzen actors in Apify Store charge up to $0.06 per run start:

EventPriceWhen
Publication$0.0015 per roweach article, post, video or short returned
Transcript$0.003 per videoonly when a transcript is returned

Failed links, deleted publications and links Dzen refused are not charged. A video without subtitles is charged as a publication, without the transcript fee. Set Max publications in total or the run's maximum cost to cap the spend. If a stopped run is resurrected, it continues and does not charge the same publications again.

Dzen API for developers

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>") # apify-client 3.x
run = client.actor("firsthand/dzen-scraper").call(run_input={
"urls": ["https://dzen.ru/tass", "https://dzen.ru/a/afRiHXixAFfUTmXO"],
"contentTypes": ["articles", "videos"],
"maxItemsPerChannel": 50,
"includeTranscripts": True,
})
for row in client.dataset(run.default_dataset_id).iterate_items():
if row["status"] == "ok":
print(row["contentType"], row["views"], row["title"])

Input names from other Dzen actors are accepted too: startUrls, channelContent, fetchArticleText, maxResults, proxy.

Good to know

  • Only public pages are read, the same ones anyone can open without logging in. Personal data is limited to what Dzen shows publicly (channel names and public counters). Make sure your use complies with Dzen's terms and with data protection law such as GDPR.
  • Counters are taken at the time of the run.
  • A proxy is optional. It is used only if Dzen does not answer a direct request.
  • publishedAt of an article read from a channel is the date Dzen created it, which can be earlier than the publication time (by up to 2.5 days in our sample). Article links and Open every publication give the exact time.
  • Post views exist only on the post page, so each post is opened one by one; posts take longer than other types.
  • Dzen sometimes reports more read-throughs than views on small publications. The raw counters are kept and readThroughRate stays empty in that case.
  • Dzen shows likes only when there are some: a publication with no likes returns likes: 0.
  • Every row has status. Links that fail come back as rows with status and error and are not charged: not_found, blocked (Dzen refused), error, not_processed (the timeout, the maximum cost or Max publications in total came first). The run's SUMMARY record lists inputs, errors and traffic.
  • If no link gives a publication, the run ends as failed with the reason.
  • Transcripts are Dzen's automatic subtitles: punctuation is automatic, names may be misspelled, and parts of news-style videos can be missing (8% and 36% of spoken words in two news videos we checked against speech recognition; none in a talking-head video).