Telegram Media Downloader
Feature request · Report a bug · Support: Discussions & Telegram Community
Download all media files from a conversation or a channel that you are a part of from telegram. A meta of last read/downloaded message is stored in the config file so that in such a way it won't download the same media file again.
|Download media types||audio, document, photo, video, video_note, voice|
- Add support for multiple channels/chats.
For *nix os distributions with
$ git clone https://github.com/Dineshkarthik/telegram_media_downloader.git $ cd telegram_media_downloader $ make install
For Windows which doesn't have
$ git clone https://github.com/Dineshkarthik/telegram_media_downloader.git $ cd telegram_media_downloader $ pip3 install -r requirements.txt
All the configurations are passed to the Telegram Media Downloader via
Getting your API Keys: The very first step requires you to obtain a valid Telegram API key (API id/hash pair):
- Visit https://my.telegram.org/apps and log in with your Telegram Account.
- Fill out the form to register a new Telegram application.
- Done! The API key consists of two parts: api_id and api_hash.
Getting chat id:
1. Using web telegram:
- Open https://web.telegram.org/?legacy=1#/im
- Now go to the chat/channel and you will see the URL as something like
853521067is the chat id.
somenameis the chat id.
-100to the start of the id =>
-100to the start of the id =>
2. Using bot:
- Use @username_to_id_bot to get the chat_id of
- almost any telegram user: send username to the bot or just forward their message to the bot
- any chat: send chat username or copy and send its joinchat link to the bot
- public or private channel: same as chats, just copy and send to the bot
- id of any telegram bot
api_hash: your_api_hash api_id: your_api_id chat_id: telegram_chat_id last_read_message_id: 0 ids_to_retry:  media_types: - audio - document - photo - video - voice file_formats: audio: - all document: - pdf - epub video: - mp4
- api_hash - The api_hash you got from telegram apps
- api_id - The api_id you got from telegram apps
- chat_id - The id of the chat/channel you want to download media. Which you get from the above-mentioned steps.
- last_read_message_id - If it is the first time you are going to read the channel let it be
0or if you have already used this script to download media it will have some numbers which are auto-updated after the scripts successful execution. Don't change it.
- ids_to_retry -
Leave it as it is.This is used by the downloader script to keep track of all skipped downloads so that it can be downloaded during the next execution of the script.
- media_types - Type of media to download, you can update which type of media you want to download it can be one or any of the available types.
- file_formats - File types to download for supported media types which are
video. Default format is
all, downloads all files.
$ python3 media_downloader.py
All the downloaded media will be stored inside respective direcotry named in the same path as the python script.
|Media type||Download directory|
Socks5 proxy is supported in this project currently. To use it, simply create a
config.ini file in the path of this project, and edit it with your proxy server info as follow:
[proxy] enabled = True hostname = 127.0.0.1 port = 1080 username = password =
Then the proxy will automatically be enabled.
Read through our contributing guidelines to learn about our submission process, coding rules and more.
Want to Help?
Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing.
Code of Conduct
Help us keep Telegram Media Downloader open and inclusive. Please read and follow our Code of Conduct.