Telegram Voice Transcriber avatar

Telegram Voice Transcriber

Pricing

from $8.00 / 1,000 audio minute transcribeds

Go to Apify Store
Telegram Voice Transcriber

Telegram Voice Transcriber

Transcribe voice messages, video notes and videos from public Telegram channels into searchable text.

Pricing

from $8.00 / 1,000 audio minute transcribeds

Rating

0.0

(0)

Developer

Stanislav Shupilkin

Stanislav Shupilkin

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 hours ago

Last modified

Categories

Share

Turn the audio half of Telegram into searchable text. Point this Actor at any public Telegram channel and it returns every voice message, video note (circle) and video as clean, readable text — so the content your keyword alerts, brand monitors and OSINT tooling silently skip finally shows up in your data.

No Telegram account, no phone number, no API keys, no browser. Channel names in, transcripts out. It reads Telegram's own public web preview and transcribes with Whisper Large v3 Turbo, which handles 90+ languages and auto-detects each one.

What you can do with Telegram transcripts

  • Brand and reputation monitoring — competitors, agencies and niche communities announce prices, complaints and partnerships in 40-second voice notes that no text scraper can see. Search the transcripts for your brand, your competitors, or your product category.
  • Lead generation — channels where people post "looking for X" as a voice message are invisible to text search. Transcribe them and filter for buying intent.
  • Sentiment and narrative tracking — feed transcripts to your LLM or sentiment model with the post date, the channel and the view count already attached.
  • OSINT and news monitoring — field reports, eyewitness circles and off-the-record commentary get published as audio precisely because audio does not get indexed. Now it does.
  • Content repurposing — turn a channel's voice diary into blog drafts, newsletters or subtitles.

Output fields

One dataset row is one piece of media. Every row carries:

FieldTypeWhat it is
channelstringChannel username the message came from
message_idintegerTelegram message id
datestringWhen it was posted, ISO 8601 UTC
message_urlstringDirect t.me link to the message
media_typestringvoice, round_video, video, or null for a text-only post
duration_secintegerLength of the audio in seconds
textstringThe transcript — the whole point
languagestringLanguage Whisper detected (Russian, English, …)
viewsstringView count as Telegram shows it (4.53K)
post_textstringThe caption written next to the media (present when includePostText is on)
errorstringPresent only on a row whose media could not be transcribed, with the reason — the run keeps going and this row is not charged

Example output

{
"channel": "BuroBobkova",
"message_id": 785,
"date": "2026-08-30T12:11:34+00:00",
"message_url": "https://t.me/BuroBobkova/785",
"media_type": "round_video",
"duration_sec": 44,
"text": "Вообще, в целом, если абстрагироваться от всего того, всей той скетичности, которая меня ждет, этот отпуск будет везде с какой запоминающейся, потому что в таких условиях так далеко я еще не ходил…",
"language": "Russian",
"views": "4.53K",
"post_text": ""
}

Export it as JSON, CSV, Excel or XML, or pull it straight from the Apify API into your own pipeline.

How to transcribe a Telegram channel

  1. Paste one or more public channels into Telegram channels@durov, t.me/durov and https://t.me/durov all point at the same channel and all work.
  2. Pick what to transcribe under What to transcribe: voice messages, video notes (circles), regular videos, or any combination.
  3. Optionally set a date range and how deep into the channel history to go.
  4. Run it. Results stream into the dataset as they are transcribed, so the first transcripts arrive within seconds.

Input options

FieldWhat it doesDefault
channelsPublic channels to scan (@name, t.me/name or a full link)required
mediaTypesWhich media to transcribe: voice, round_video, videoall three
maxMessagesPerChannelHow many recent messages to look at per channel50
dateFrom / dateToOnly messages inside this date rangeno limit
languageISO-639-1 hint (en, ru, de, …)auto-detect
includePostTextAdd the caption written next to the media to every rowtrue
includeTextOnlyPostsAlso output regular text posts (free — nothing is transcribed)false
maxAudioDurationSecondsSkip anything longer, so one 4-hour recording can't eat the budget3600
maxPagesPerChannelHow many preview pages (~16–20 messages each) to page through20

Pricing: pay per event

You are charged for results, not for runtime:

EventPrice
message-transcribed — one transcribed message$0.001
audio-minute — one minute of audio, rounded up per file$0.008

A 40-second voice message costs $0.009. A hundred of them cost about $0.90. Messages that fail to download, media that exceeds your duration cap, and text-only posts are not charged.

If you set a maximum spend on the run, the Actor stops as soon as your limit is reached and finishes successfully with everything transcribed up to that point — you keep the partial dataset and pay nothing extra.

How it works

  • It reads the public web preview, https://t.me/s/<channel> — the same page Telegram serves to a logged-out browser. No account, no phone number, no Telegram API, no headless browser. That is why only public channels are reachable.
  • Media is downloaded and stripped, not rehosted. For a video note or a video, the picture track is thrown away with ffmpeg before anything is sent to speech recognition — a 6 MB circle becomes ~130 KB of audio — so runs stay fast and cheap.
  • Long recordings are chunked and stitched. Anything long is split into 15-minute segments, transcribed in order, and joined back into one continuous transcript, so a two-hour audio post comes back as a single text.
  • Recognition is Whisper Large v3 Turbo, multilingual and self-switching — Russian, Ukrainian, English, German, Spanish, Turkish, Arabic and 80+ more. The detected language is reported in every row. Transient provider errors are retried; a message that still fails is written out with an error and skipped, never crashing the run.

Limits worth knowing before you run it

  • Public channels only. Private channels, groups and DMs are not reachable without a Telegram account, and this Actor deliberately does not use one.
  • Audio sent as a file attachment cannot be transcribed. Telegram's public web preview shows those as a name and a size, with no downloadable link. Voice messages, video notes and videos are all fine.
  • Voice messages are rarer in channels than in chats. Many channels post none at all — keep round_video and video enabled to capture a channel's full spoken content.
  • A channel that is missing, private or briefly unreachable is skipped, not fatal. The run logs a warning, moves on to the next channel and finishes successfully with whatever it did collect.
  • Media links on Telegram's CDN are signed and expire, so everything is downloaded during the same run.