Telegram Media Downloader — Photos, Videos & Files, No Login avatar

Telegram Media Downloader — Photos, Videos & Files, No Login

Pricing

from $5.00 / 1,000 media item extracteds

Go to Apify Store
Telegram Media Downloader — Photos, Videos & Files, No Login

Telegram Media Downloader — Photos, Videos & Files, No Login

Download photos, videos, voice notes and stickers from public Telegram channels, with direct media URLs and optional file saving to Apify storage. No API key or login needed.

Pricing

from $5.00 / 1,000 media item extracteds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

19

Total users

2

Monthly active users

23 days ago

Last modified

Share

What is Telegram Media Downloader?

Telegram Media Downloader collects the photos, videos, round videos, voice notes and documents posted in public Telegram channels and returns one dataset row per media item. Each row has the direct media URL, media type, caption, message link and post date. Turn on downloadFiles and the Actor also saves each file to Apify storage with a permanent download link. Researchers, archivists, content teams and AI agents use it to back up or analyse channel media, with no Telegram account, phone number or API key.

Why people use it for Telegram media

  • No Telegram login. It reads the public web preview of each channel (t.me/s/<channel>).
  • Direct media URLs. Every row links straight to the image or video file.
  • Optional file saving. downloadFiles stores each file in the key-value store and returns apify_download_url.
  • Filter by type and date. Pick photos only, videos only or any mix, and set oldestMediaDate to stop at a date.
  • Album aware. Each photo in an album becomes its own row with media_index.

How to use it

The 50 latest photos and videos from one channel:

{
"channels": ["telegram"],
"maxMediaPerChannel": 50,
"mediaTypes": ["photo", "video"]
}

Save photos from two channels since 1 January 2026:

{
"channels": ["durov", "https://t.me/telegram"],
"maxMediaPerChannel": 100,
"mediaTypes": ["photo"],
"oldestMediaDate": "2026-01-01",
"downloadFiles": true
}
InputWhat it controls
channelsChannel usernames, @handles or t.me URLs
maxMediaPerChannelMedia items per channel; each album photo counts once (default 50)
mediaTypesAny of photo, video, roundvideo, voice, sticker, document (stickers are off by default)
oldestMediaDateCollect media posted on or after this YYYY-MM-DD date
downloadFilesSave each file to Apify storage and return a download link (default off)
maxFileSizeMbSize ceiling for saved files, in MB (default 25)
proxyConfigurationProxy for Telegram requests; the default works for public channels

Output: Telegram media data you receive

A real row with downloadFiles on (media URL shortened):

{
"record_type": "media",
"channel_username": "durov",
"channel_url": "https://t.me/durov",
"message_id": "536",
"message_url": "https://t.me/durov/536",
"posted_at": "2026-07-30T16:55:01+00:00",
"media_type": "photo",
"media_url": "https://cdn4.telesco.pe/file/pFGsbBXCx7Qlei...jpg",
"caption": "🇦🇫😈",
"requires_telegram_app": false,
"downloaded": true,
"apify_download_url": "https://api.apify.com/v2/key-value-stores/<storeId>/records/media_durov_536_0.jpg",
"media_index": 0,
"source_url": "https://t.me/s/durov",
"scraped_at": "2026-10-02T10:41:17.415Z"
}
FieldWhat it contains
media_type, media_urlType of media and its direct file URL
apify_download_url, downloadedPermanent link to the saved copy when downloadFiles is on
caption, posted_atMessage text and post time
message_id, message_urlThe Telegram message the media belongs to
media_indexPosition inside an album
requires_telegram_apptrue for large videos and documents that Telegram serves only inside its app; the row keeps the message link
channel_username, channel_url, source_urlWhich channel the row came from

The dataset also ends with one run_summary row listing channels processed, media found and files saved. OUTPUT and RUN_SUMMARY in the key-value store hold the same totals.

Example workflow: a channel media archive

A news researcher follows a channel that posts field photos. Every week they collect the latest photos with oldestMediaDate set to last week's date and downloadFiles on. The saved files stay available through apify_download_url, and the captions and dates go into a spreadsheet for review. Then they continue with Telegram Channels Scraper to pull the full message text and views for the same period.

Pricing

This Actor uses Pay per event. Apify platform usage is included in the event price. You pay a start event, one event per media item collected and one more event per file saved when downloadFiles is on. The live Pricing tab on this page shows the current prices.

  • 1 channel × 50 photos, links only = 50 media events.
  • The same job with downloadFiles = 50 media events plus one download event per saved file.
  • maxMediaPerChannel and oldestMediaDate both cap the cost.

Telegram media with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Get the last 20 photos posted in the Telegram channel "durov" with their captions and dates.

Agent checklist:

  1. Put channel names or URLs in channels.
  2. Set mediaTypes to what the user asked for and maxMediaPerChannel to the requested count.
  3. Read rows with get-dataset-items; skip the final run_summary row.
  4. Use media_url for previews and apify_download_url for saved copies.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~telegram-media-downloader/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels": ["telegram"], "maxMediaPerChannel": 20, "mediaTypes": ["photo", "video"]}'
Your next stepUseWhy
When you want the full message text, views and linksTelegram Channels ScraperEvery message with engagement data
When you want channel size and profile details firstTelegram Channel Info ScraperSubscribers, bio and verification per channel

Best results

Starting situationHelpful actionExpected outcome
Only images neededSet mediaTypes to ["photo"]Photo rows only, lower cost
A regular archiveSet oldestMediaDate to the last collection dateOnly new media since then
Files must stay availableTurn on downloadFilesPermanent copies in Apify storage
Large video filesRaise maxFileSizeMbBigger files saved to storage

Builder's note

I found that most people asking for a Telegram downloader want working file links more than message text, so every row leads with media_url and the saved-file link. I learned that Telegram's public preview shows small and medium media directly while larger videos and documents stay inside the app, so those rows are marked with requires_telegram_app and keep the message link.

FAQ

Do I need a Telegram account or API key?

No. The Actor reads the public web preview of each channel.

Which channels work?

Public channels with a web preview. Open https://t.me/s/<channel> in a browser; if posts show there, the Actor can read them.

Where are downloaded files stored?

In the default key-value store of the job. Each row's apify_download_url links to its file.

Why do some rows have no saved file?

Large videos and documents that Telegram serves only in its app are marked with requires_telegram_app: true. Files above maxFileSizeMb keep their media_url.

Can I collect stickers?

Yes. Add sticker to mediaTypes.

Responsible use

This Actor collects media from public Telegram channels. Download and reuse media only where you have the rights to do so, and follow Telegram's terms and the copyright and privacy laws that apply to you. Read Apify's guide on whether web scraping is legal for more context. Telegram is a trademark of Telegram FZ-LLC. This independent Actor is not affiliated with, associated with, or endorsed by Telegram. For questions or bugs, open a ticket in the Issues tab.