Accessibility Settings

color options

monochrome muted color dark

reading tools

isolation ruler
Telegram, app, Russia
Telegram, app, Russia

Image: Shutterstock

The messaging service Telegram is highly popular on the Russian-speaking internet. With Facebook blocked and Twitter restricted, it’s also one of the last social network applications fully accessible to internet users in Russia.

In recent days, it has been a vitally important tool for documenting the Russian invasion of Ukraine. Ordinary Ukrainians regularly post videos and photos attesting to the scale of destruction caused by the war. This material has allowed us to geolocate multiple attacks on civilians and establish the Russian military’s use of cluster munitions.

But the online media environment in Russia and Ukraine at present is highly volatile. Archiving content from the ground ensures it can still be used by researchers if a user deletes a post, if a channel is removed, or if an entire platform becomes inaccessible. For any type of internet content, links stop working over time, a phenomenon known as “link rot.” Archiving content can preserve it for years.

On February 25, the Telegram channel @MariypolCalling posted a video of Russian troop movements prior to the invasion. At the time of writing, this post is no longer viewable due to a supposed ‘moderation action.’

Telegram post from Mariupol, Ukraine

Example of a Telegram post from Mariupol, Ukraine that has since been removed by moderators. Image: Screenshot

However, we have a copy, because we archived it when we saw it — and you could too. That’s because Telegram is one of the easiest communication platforms to archive, and one of the last that can preserve image metadata — a privacy risk to users, but often a boon to open source researchers. Telegram’s chat export formats also make it easy to translate an entire channel using Google Translate. The steps are simple even for non-technical users.

Telegram content can be useful in many other contexts. For example, Bellingcat has previously archived Telegram posts for multiple investigations into far-right groups and the QAnon conspiracy.

While the examples provided below focus on generic groups unrelated to any of the topics above, the principles described can be applied to any Telegram group or post.

How to Archive a Specific Post, Image, or Video

The easiest way to archive media is by using the Telegram desktop application, available for Windows, Mac, and Linux. Then, you can save media by simply right-clicking on an image or video, and clicking the “Save as…” dropdown task. If the image is attached as a file, it will contain all original metadata too.

To archive an image on Telegram using the desktop version of the app, simply right click and choose "Save as…"

To archive an image on Telegram using the desktop version of the app, simply right-click and choose “Save as…” Image: Screenshot

You can do this with any message you are viewing in the Telegram application, even if you are not a member of the group. If you have the URL of a post in a format like, choosing “VIEW IN CHANNEL” will allow you to open it in the Telegram application.

To view a Telegram post via the desktop app using the original URL, choose “View in Channel.” Image: Screenshot

Additionally, it is wise to take a screenshot of the original post to save the timestamp, user, and to remember where you found the media item. Going further, you can save a complete copy of the entire post’s content and metadata by forwarding it to the Show Json Bot and saving the returned Json content in a separate text file. Json refers to a specific file format used for computer-readable information. This is the same content that might be returned by an application programming interface (API). Note that sensitive or private messages should never be forwarded to a bot. Saving metadata is useful as it contains as much information as possible from a post, including user IDs, the chat ID, and full timestamps.

To save a complete copy of an entire Telegram post’s content and metadata, forward it to the Show Json Bot. Image: Screenshot

Show Json Bot results from a saved Telegram post. Image: Screenshot

How to Archive an Entire Channel or Group

Telegram goes above and beyond other chat platforms in featuring the ability to export an entire chat history, in both human-readable and machine-readable formats, including files and media. However, this feature is unavailable on Mac OS. The simplest way around this (if using Mac or Linux) is by using a Windows virtual machine. VMWare Fusion offers free licenses for non-commercial users, and a guide on how to use it can be found here.

First, open a chat in the Telegram app by selecting it from your conversations or searching for it. Telegram chats can be private conversations, channels (where a single user broadcasts to an audience), or groups (where many users chat). Sometimes public channels are shared as online preview links. If you have one of these, in a format like[username] — such as — clicking on the channel’s username will provide an option to open it in the Telegram application, assuming you have the platform installed on your computer. You can also use these preview URLs to find certain channels that are hidden from search results.

With a group or channel open (even one that you are previewing and are not a member of), click the menu button in the upper right corner and select “Export chat history”.

To download a Telegram chat or group, use the “Export chat history” function from the menu. Image: Screenshot

There are several export settings to choose from. Checking every box will export all media contained in the channel. Maximizing the size limit captures as much media as possible, but note that it can increase the export time significantly.

Export setting can be selectively turned on or off, to choose only certain types of media and to minimize download file times. Image: Screenshot

There are two format options to choose from: html or Json. The html format is designed to be human readable. It can be opened in a web browser and is most useful for manual review. The Json format is designed to be machine readable, and is most useful when exporting data for further analysis.

When downloading chats, choose either html or Json export formats. Image: Screenshot

You can also specify a date range, which can speed up the process if you only want a subset of the full channel archive. Finally, clicking on “EXPORT” starts the export process. For large chat histories, this can take up to several hours.

It’s possible to narrow the chat data exported, by selecting a date range. Image: Screenshot

To view the export, open the messages.html file in your web browser.

Note: exporting large chat histories can sometimes take several hours. Image: Screenshot

Unfortunately, it is not currently possible to export channel comments with this technique.

How to Translate Telegram Messages

Telegram recently added a translation feature to the mobile application. Activate the feature by going to Settings > Language > Show Translate button in the app. To translate a message, bring up a context menu by pressing and holding, then select the “Translate” option.

Telegram also offers a “Translate” function to view chats and posts in different languages. Image: Screenshot

However, with this feature you can only translate one message at a time.

It is possible to translate an entire channel’s content at once by exporting a chat history as html (as described above) and opening it in Google Chrome. If Chrome does not offer to translate the page, you can request it by right-clicking and selecting “Translate to English” (or your preferred language).

Scraping and APIs

For advanced users, Telegram’s API offers very open access to the platform as well, making it easy to archive messages and media, as well as user, channel, and group metadata. For Python developers, the Telethon API is full-featured and well-documented.

An alternative method of downloading Telegram messages is by using a non-API scraper. This approach can be faster than Telegram’s native export features, but it is only possible for public channels, not for chat groups. JustAnotherArchivist’s tool snscrape works well for this, and Bellingcat has ‘forked’ it to support retrieval of media and channel forwarding information.

This story was originally posted on Bellingcat, and is reprinted here with permission. 

Additional Resources

Bellingcat’s Grozev on Investigating Russia’s Invasion of Ukraine

15 Tips for Investigating War Crimes

Journalism Resources for Tracking Events in Ukraine

Bellingcat logo


Bellingcat’s Investigative Tech Team develops tools for open source investigations and explores tech-focused research techniques.

Republish our articles for free, online or in print, under a Creative Commons license.

Republish this article

Material from GIJN’s website is generally available for republication under a Creative Commons Attribution-NonCommercial 4.0 International license. Images usually are published under a different license, so we advise you to use alternatives or contact us regarding permission. Here are our full terms for republication. You must credit the author, link to the original story, and name GIJN as the first publisher. For any queries or to send us a courtesy republication note, write to

Read Next