Skip to content
TBTelegramBuddy
Languageen
Main navigation
← All guides

How to Save Telegram Videos on a Mac

Save Telegram videos on a Mac as real files in Finder, with their own names, folders and original post dates. No cache digging, no uploads, no guesswork.

8 min read

The dependable way to save Telegram videos on a Mac is to write them out as proper named files: for one or two clips, right-click the video in Telegram and choose Save As…, which gives you a real .mp4 wherever you point it. For a whole chat, a channel archive, or a few hundred clips, use a desktop downloader that walks the conversation’s history and writes every video to disk in one pass. What you should not do is go rummaging in Telegram’s cache folder, even though that is the first advice you usually find. Here is why that route disappoints, and what a good result actually looks like in Finder.

Where Telegram keeps videos on your Mac before you save them

When you watch a video inside Telegram, the app downloads it into a cache — a private scratch folder it uses to avoid fetching the same file twice. The cache is a working area for the app, not a library for you.

Where it lives depends on which Telegram you run. The cross-platform Telegram Desktop keeps its data in ~/Library/Application Support/Telegram Desktop/tdata/, with media tucked into a user_data cache directory inside it. The native Telegram for macOS is sandboxed, so its data sits in a group container folder under ~/Library/Group Containers/. In Finder you can reach either with Go > Go to Folder (Shift-Command-G) and pasting the path. Exact layouts change between versions, which is the first hint that this is not a place to build a workflow on.

Both apps also give you legitimate exits. Right-click a video and you get Save As… and Show in Finder. In Telegram Desktop, Settings > Advanced lets you set a download path so saved files land somewhere predictable, and Settings > Data and Storage shows how large the cache has grown and lets you clear it.

Why copying files out of the cache is not a real answer

Open that cache folder and you will find directories with two-character names full of files that have no extension and no recognisable title — just long strings derived from internal identifiers. That causes four concrete problems:

  • You cannot tell what anything is. Nothing links a file to the chat it came from, the caption it had, or the day it was posted. Finder will not even preview most of them, because without a .mp4 on the end macOS does not know what it is looking at.
  • It only holds what you already loaded. A video you never opened, or that auto-download skipped, was never cached. Scrolling a 4,000-message channel to trigger downloads is not a plan.
  • Telegram deletes from it whenever it likes. The cache has a size limit and an age limit. Files you meant to keep can vanish because you watched something else.
  • Dates are wrong. Even when you find the right file and rename it by hand, its timestamp is the moment your Mac cached it, not the moment the video was posted.

Cache spelunking is a way to recover one file you are desperate for. It is not a way to save Telegram videos at any scale.

Save Telegram videos on a Mac with a dedicated downloader

TelegramBuddy is a free desktop app for macOS and Windows (Linux users can run it from source) built for exactly this job. It is not a bot and not a web service: there is no TelegramBuddy account and no TelegramBuddy server. A Python backend talks to Telegram’s own API, a React interface runs in a native window on your Mac, you sign in to your Telegram, and files are written straight to your local disk. Nothing is uploaded anywhere.

Getting to saved videos looks like this:

  1. Install the app. The download page has the current instructions.
  2. Get a free api_id and api_hash. These are the two API credentials Telegram issues to any account at my.telegram.org under API development tools. On first run TelegramBuddy asks for them and stores them locally. Each install uses its own pair, because Telegram counts rate limits against the api_id — there is a step-by-step walkthrough if the page is unfamiliar.
  3. Sign in to your own Telegram. Scan a QR code with the Telegram app on your phone, or use your phone number. The resulting session — your login — is a file on your Mac, nowhere else.
  4. Open the chat. Pick it from your list, or paste an @username, a numeric id, a t.me/+ invite link, or a link to a single message in a private channel to reach something the list does not show.
  5. Switch to Gallery view and filter to Videos. Gallery is a thumbnail grid of media only, so you are not scrolling past text. You can also search captions and file names, and restrict the view to a date range.
  6. Select what you want. Click a thumbnail, shift-click for a range, or use Select all / Files only when you want the lot.
  7. Or skip selecting entirely and run a bulk download: every matching file in the chat, scanned across its whole history. Several chats can sit in the queue at once.

One thing worth saying plainly: a tool that can pull a whole channel in one go does not change who owns what is in it. Keep what you have the right to keep.

What the folders look like afterwards

You get one folder per chat, and you can have it split into Photos / Videos / Files / Music / Voice subfolders so videos are already separated from everything else. That means a channel you follow for a year ends up as one tidy folder you can point iMovie at, back up, or drag to an external drive — no post-sorting pass.

The file names you get

Names are the part people notice most, because Telegram itself is inconsistent here.

  • If the video was sent as a file and had a name, that name is kept exactly.
  • Most videos and photos posted to Telegram carry no name at all. Those are named after the message id, which keeps them unique and in posting order.
  • If two files genuinely clash, the message id is added in brackets — clip.mp4 and clip (18452).mp4 — so nothing is silently overwritten.

Dates that match the day the video was posted

Each saved file’s date is set to the date of the message it came from. This sounds minor and turns out to matter constantly: sort a chat’s folder by date in Finder and you get the channel’s timeline back. Search by date range in Spotlight and you find the week you were thinking of. Photos and video libraries that read file dates will place the clips where they belong instead of stacking everything on the day you ran the download.

Three approaches, side by side

Dragging from the cache Save As, one at a time Bulk download
Correct extension No Yes Yes
Original file name No Yes, if it had one Yes, if it had one
Date of the original post No Usually today’s date Yes
Sorted into per-chat folders No You do it Yes
Practical for a whole channel No Not really Yes
Survives a dropped connection n/a Start that file over Resumes where it stopped
Skips files you already have No You keep track Yes

That resume row is the one that decides long jobs. Videos are large, Wi-Fi is not, and you will close the lid at some point. TelegramBuddy runs several downloads at once — you set the limit — and each can be paused, resumed, cancelled or retried. A large file that stops mid-way leaves a .part file and picks up from that exact byte afterwards, even if you quit the app; small files and photos are simply fetched again whole, which is quicker than bookkeeping. Finished files are skipped on the next run, so re-running a channel a month later only pulls what is new, and Telegram’s rate limits (its “flood waits”) are waited out for you rather than thrown at you as errors. There is more detail on interrupted downloads if you are moving a large archive.

Where to go next

If the chat you care about is a channel rather than a conversation, downloading every video from a Telegram channel covers the queue-and-forget version of this. If you want the words as well as the media — a readable HTML page or JSON of the whole conversation, with media linked — start with exporting Telegram chat history. And the FAQ answers the two questions people always have next: why the app needs your own API credentials, and where your session file actually lives.