Login
  1. Bugs and Suggestions
Open
Closed
Fix coming
Fixed
General
Android
iOS
Telegram Desktop
macOS
Web
Android X
Bot API
Accessibility
Calls
Tablet
Tip
WebK
WebA
Translation Platform
GmailBot
Contest
Unigram
Mini Apps
iOS 18
AllIssuesSuggestions
by rating by time

34303 Cards

Fixed
iOS badge counter shows unread messages, even when all chats are read
Badge counters inside the app and on the app's icon may sometimes show unread messages while there are no unread chats in the list. Workaround Tap 10 times on the Settings tab icon > Reindex Unread Counters.…
Nov 12, 2020Issue, iOS
135703
Added
About this platform
All users are welcome to create new entries, view existing entries and vote on them. What is this for? This platform is a place where users can vote for feature suggestions for Telegram or report issues…
Dec 23, 2020ClosedTip
88336
Fixed
Missing parts of message history
Your help needed: The team needs help with app's logs. Messages are missing on mobile but visible on Telegram Web and Desktop. Notifications of new messages are received, but messages don't appear in…
Feb 15, 2022Issue, Android
66315
Fixed
In-app translator is not working
When I try to read a message, I get an error that translations are disabled. Steps to reproduce 1. Go to any group. 2. Try to translate a message. 3. Get an error that translations are disabled.
Jun 26Issue, General
179179
Added
An option to disable the Stories feature
An option in the app settings to completely disable the Stories feature to reduce visual clutter. Official Response: Stories take up no extra space in the Telegram UI – but if you'd prefer not to see…
Jul 21, 2023Suggestion, General
15096845
Added
Shadowsocks proxy support
Add Built-in VMess, Shadowsocks, SSR, Trojan-GFW proxies support The ( vmess / vmess1 / ss / ssr / trojan ) proxy link in the message can be clicked
Apr 11, 2021Suggestion, General
1046278
Added
Improve the ability to search chat history for Asian regional languages, such as Chinese and Japanese
Improve the ability to search chat history for Asian regional languages, such as Chinese and Japanese. Telegram's chat history search function is based on words, and is suitable for languages such as…
Dec 23, 2020Suggestion, General
2033601
Added
Silent sign up
A feature to join Telegram incognito, making the phone number privacy set to Nobody before creating a new account. Current users who have that number added to their contacts list will not get a new c…
Dec 12, 2019Suggestion
1483084
Added
The sticker text is covered of the time of the message
The time of the message is displayed on the sticker. It is not comfortable to read sticker. It often happens that time covers part of the text on the sticker. And if the sticker is sent from the channel…
Mar 20, 2022Android, Suggestion
112253
1:52
Added
Emergency passcode to hide chats
Option to set an alternative passcode ("double bottom") that either opens a limited set of chats, opens a different account, or destroys one of the connected accounts completely when entered. Use cases…
Feb 27, 2021Suggestion
651780
Added
Group Video Calls
Group Video Calls has been implemented in June 2021. Related suggestions: Group Video Calls with Contacts, Screen Sharing in private chats.
Dec 11, 2019FixedSuggestion, Calls
1021755
Added
Cryptocurrency donations for bots, groups and channels
Show a button for sending quick donations to maintainers of bots, groups or channels using cryptocurrency. This could use either an established cryptocurrency like Bitcoin, Etherium, EOS, etc. – or some…
Dec 25, 2020Suggestion, General
1351715
Added
Chat permissions: Can Talk
Please add chat permission: Can Talk. How it works If it's enabled, user can talk in a voice chat. Otherwise user is muted. For users In apps it would be useful for chat owners - they will be able to…
Aug 3, 2021Suggestion, General
221651
Added
Notify all group members
An option to notify all group members or admins using a special mention (e.g. @all and @admins). Use cases Important news and major updates in big communities. Potential issues Some group admins already…
Nov 4, 2019Suggestion
1291582
Added
Choose a different default folder instead of "All Chats"
This feature is available as part of Telegram Premium. An option to pin one of your folders as the main folder instead of All Chats. When you open the app, it would show you the folder you chose. Pressing…
Nov 16, 2020FixedSuggestion
761413
Added
Unlimited favorite stickers
Increase the limit for favorite stickers. The current limit is five stickers. When you add another one, the first sticker is replaced. Use cases Choose a limited set of stickers which you will always…
Dec 11, 2019Suggestion
761376
Added
Add "Ban Users" permission for admins of channels
In channels, admins can always ban users regardless of their permissions, it would be useful to remove the permission to ban users to some admins. Possible Solution - It could be added as sub-permission…
Aug 1, 2021Suggestion, General
241375
0:27
Fixed
Removing the restriction of adding members to Telegram groups
1: We enter the group 2: In the add member section 3: Selection of contacts or members 4: Add to the group But no member is added to our group Steps to reproduce 1: We enter the group 2: In the add member…
Jan 31, 2024Issue
581338
Fixed
Live streams have low speed audio resulting in almost no sound
Since the latest stable update, audio from Live Streams is missing. The audio track is actually slightly audible if you max out the volume of your device, but it will be barely noticeable, and feels extremely…
Jan 4FixedIssue, iOS
61319
Added
Partial reply
Reply only on parts of a message. This would be very useful, if someone wrote a very long message and you only want to refer to one or two sentences - or even only one or a few words.  If you click on…
Jan 23, 2021FixedSuggestion, General
781293
Added
Disable "New Contact Joined" chats
Users receive a notification when one of their contacts becomes available on Telegram. It is currently possible to disable the notification: the new chats will appear in the list without sending a notification.…
Dec 11, 2019Suggestion, General
811204
Added
Allow adding Bots (Web Apps) to the Attachment Menu to all bots
Now only selected bots can be added to the Attachment Menu. But as a developer of inline bots, I see this as a barrier to make telegram a better messenger Let users decide, what they want to see in their…
Apr 17, 2022Suggestion, General
471201
Added
Alternate profile pictures
When setting a profile picture or video that's only visible to contacts (or certain users, groups etc.), allow choosing an alternate picture or video that will be shown to everyone else. Use cases -…
Nov 17, 2020FixedSuggestion
571088
Added
Armenian language official translation in telegram
Dear Telegram administration. We ask you to make the translation of the Armenian language official in telegram. Not a few people speak Armenian, and a full-fledged Armenian segment has already formed…
Jan 8, 2023Suggestion, General
2021041
Fixed
Telegram's Message Limit: Old Messages Gone Forever
When the message count reaches a million, old messages disappear. Steps to reproduce 1. Be an active Telegram user 2. Wait until the coveted number of incoming/outgoing messages is reached. 3. Eh, it's…
Jul 19, 2022Issue, General
911029
Added
Allow site owners to make their own Instant View templates
Instant View templates are currently created and maintained by Telegram, the list of supported websites is expanded gradually. Some site owners would like to get IV support for their websites sooner.…
Jan 23, 2021Suggestion, General
62994
Added
Add Instant View to Telegram Desktop
Add Instant View to Telegram Desktop. The feature is there right now for MacOS Telegram App, but missing from regular Telegram Desktop. Preferably, it should open an article in the existing telegram window…
Dec 23, 2020FixedSuggestion, Telegram Desktop
64992
Added
Better global search
Make global search a place to find all communities in channels and public chats.
Feb 9, 2021Suggestion, Android
45946
Added
No one open the video in the groups conversations without the admins permission
During the meeting conversations in telegram, some members want to speak so when we open the Microphone for them to speak, they open video with sexual content. This leads to annoy the members and they…
Jan 30, 2023Android, Suggestion
20927
Added
Transfer ownership if creator account was deleted
Option to transfer ownership in groups and channels if the creator was deleted so the first admin with all permissions will become a creator! Thumbs up if you want this to happen 👍 App: all
Dec 24, 2020FixedSuggestion, General
135907
Fixed
Status displaying issue for iranian numbers
Title: Unreasonable Restrictions on Iranian Accounts Description: Viewing Premium Statuses: Non-premium Iranian accounts cannot see the statuses of premium users. However, purchasing a premium subscription…
Oct 26, 2024Issue, Android
64891
Added
Video Notes Inline
Proper support for Video Notes (aka round videos) in inline mode for bots
Nov 9, 2022Suggestion, General
39863
Added
Add an option to disable auto-ordering of sticker packs on mobile
Add an option to disable auto-ordering of sticker packs. If you have a lot of packs, it make sense to order them in a way that makes it easy for you to find the right sticker. This has been the behaviour…
Sep 19, 2022FixedSuggestion, Android, iOS
225853
Added
Custom icons for folders
Add the ability to choose icons for folders on mobile platforms – like in Telegram Desktop and Telegram macOS. Sync them on all devices. Use cases - Find folders you're looking for more easily. - Save…
Nov 17, 2020Suggestion, iOS, Android
19830
0:14
Added
Pedophilic Content on Telegram: A Growing Concern
The dissemination of pedophilic content is one of the gravest online crimes that severely infringes on children’s rights. Such content not only promotes and reinforces sexual abuse of children but also…
Jul 25, 2024Suggestion, General
171819
Added
Hide messages from blocked users in groups
Sometimes you don't want to see messages from people you blocked, even in the groups you share with them. Such messages could be automatically collapsed and hidden under a spoiler (like 'You blocked Doge.…
Nov 5, 2019Suggestion
187808
Added
Call transfer between devices
An option to seamlessly transfer ongoing voice and video calls between different devices with one account: e.g., from a mobile phone to a desktop PC and vice versa.
Dec 23, 2020Suggestion, General, Calls
24793
Added
More Two-Factor Authentication methods
An option to add an authenticator app with temporary, one-time passwords (e.g. Authy, Google Authenticator) as another second factor.
Nov 5, 2019Suggestion
31775
Added
Separate passcode lock for specific chats or Archive
Option to lock certain chats with a separate passcode. On a chat-by-chat basis, or for an entire Chat Folder, e.g. the Archive. Use cases Family iPads and other shared devices. Can also be used in environments…
Nov 5, 2019Suggestion
48771
Added
An option for a channel/group owner to better interact with subscribers without the risk of being reported as spammer by trolls.
An option for the owner of a channel or a group to set a visible flag informing all new members that they might be privately contacted one single time by the owner/admins of the channel/group they are…
Feb 26, 2022Suggestion, General
20751
Added
Stories / Statuses
An option to share moments (media, like photos or short videos, texts, etc.) with your mutual contacts (this can be adapted with granular privacy permissions) to view, interact, and forward. Such statuses…
Dec 12, 2019FixedSuggestion
968702
Added
Allow opening media directly from the preview.
When someone posts a link, Telegram generates a link preview with title, media and some of the text from the page linked. Ever since the October 2023 update, clicking or tapping anywhere inside the preview…
Oct 29, 2023Suggestion, General
65681
Added
Different background images for each chat
A feature to set a individual wallpaper for specific chats. (f.e. One wallpaper for a specific group, another for a chat with a friend...) Use cases This would make navigation between chats easier, especially…
Nov 5, 2019Suggestion, General
42667
Added
Tmail - Telegram Email Service
Telegram is a great messenger, but it can also be a great Email service. So without further introductions, let's start. It may seem like Email service is for the previous generation, but many people,…
Jan 24, 2021Suggestion, General
77658
Added
Syntax highlighting in code blocks
An optional extension to the backtick syntax to specify a language to highlight. Similar examples are the likes of Gitlab and GitHub comments.
Dec 27, 2020FixedSuggestion, General
47612
Added
Change file names in Telegram
Option to change file name on Telegram without needing to re-upload the file. App: all
Dec 24, 2020Suggestion, General
31580
Added
Requests to join group or channel
If enabled, the user attempting to join the group/channel will only be able to view the content and send things after being accepted by an administrator (optional: only admins who have the "accept/decline…
Nov 23, 2020FixedSuggestion, General
155569
Fixed
Incorrect Search Ban for Quality channels
Incorrect Search Ban on one of The Largest Telegram Channel Steps to reproduce My Channel @Funny is one of the largest English Entertainment channel with Over 250K Subscribers & great Engagement. But…
Dec 15, 2024Issue, Android
37568
Added
[Privacy] [Private] New privacy option to not allow private messages from non-contacts.
Like many have asked before (for different reasons) for years (even before we had this suggestions platform) and as you can see with other suggestions in this platform too: https://bugs.telegram.org/c/1748…
Oct 24, 2021Suggestion, General
106566
Fixed
Telegram downloads images instead of using bitmap data from clipboard
When I paste an image copied from Firefox, Telegram downloads it again instead of using the bitmap data from the clipboard. This happens because the clipboard also stores the image URL. If I paste the…
Jun 27, 2021FixedIssue, Telegram Desktop
13518
Added
Please Add a Clear Response button/ Retract response button in the Poll (Quiz mode) too for admins of the channel and subscribers of the channel
Hello Sir/Ma'am. I would like to draw the attention of the Telegram app to an important suggestion/request. I run telegram channels which consists of more than 50k+ Highly active students who solve quiz…
Feb 5, 2022Suggestion, Android
72501
Added
Remove or modify Telegram ad features
I really do wish that Telegram would reconsider putting up sponsored ads in channels. I've always kept it as my safe zone while the rest of the internet is saturated with ads. If the ads are going to…
Dec 9, 2021Suggestion, Android
74497
Added
New Syrian flag
Hello Telegram Team I request Telegram administration to change the Syrian flag emoji to the new Syrian flag among the emojis https://t.me/addemoji/Syria_Flag
Dec 9, 2024Suggestion, General
2492
Added
Secret Chats on Telegram Desktop
An option to create Secret Chats using the multiplatform Telegram Desktop client.
Jan 5, 2021Suggestion, Telegram Desktop
53487
0:12
Fixed
No popup appears when hitting floodwait limits for t.me links
When you hit floowait limits for t.me/ links, an endless loading animation appears, this may confuse users that could think about a connection issue. No issues on iOS, where a popup correctly appears.…
Feb 5, 2021FixedIssue, Android
88481
Added
Starred Messages
An option to bookmark/star a message. Marking a message would add it to the separate Starred Messages section on the profile page, for quick access to messages. While Telegram doesn't have Starred Messages…
Dec 12, 2019Suggestion
85479
Added
Secret group chats
Secret group chats with end-to-end encryption.
Jan 28, 2021Suggestion, General
50466
Added
Sign up for Telegram without a phone number
You currently need a phone number to sign up for Telegram. Add an option to sign up using an email address or another method, like some messengers do (e.g., Wire, Matrix, Threema, Session). Potential…
Dec 30, 2020Suggestion, General
113452
Added
Telegram via low-speed mobile (terrestrial) and satellite networks with frequent signal interruptions
Telegram via low-speed mobile (terrestrial) and satellite networks with frequent signal interruptions Access speed: up to 22 kbps down to 88 kbps It is impossible to reliably send attached files larger…
Jul 5Suggestion, General
10440
Added
Show folders when forwarding a message
An option to see your folders when sharing or forwarding messages. Use case Find the chats you were looking for more quickly. Workarounds - Use the search option to find the chat if it's not at the top.…
Nov 17, 2020FixedSuggestion
12439
Fixed
Incorrect Global Search Ban of Established Channel
My channel @peliculas is currently the 8th largest public channel and the oldest among the top 10 Spanish channels on Telegram. Unfortunately, it has recently been banned from the global search due to…
Sep 27, 2024FixedIssue, Android
12439
Added
Privacy settings for Bio
The Bio section in Telegram profiles is currently always public. Add an option to configure 'Who can see your bio?' to the Privacy and Security Settings. Use cases Putting more sensitive or private info…
Nov 5, 2019FixedSuggestion
21438
Added
Way to mark messages as sensitive
An option to mark a message or photo as sensitive before sending. Sensitive messages can be revealed or re-hidden with a tap and default to hidden when a chat is opened. App: all
Dec 23, 2020Suggestion, General
11427
Added
Transfer ownership of sticker packs
Add the ability to transfer ownership of sticker packs to other users. There are some packs I had originally made for others, but there needs to be a way to transfer these packs to them without deleting…
Dec 23, 2020Suggestion, General
22421
Added
Automatically use the best proxy in the list
An option to automatically check and connect to the best MTProxy if several proxies are available.
Dec 11, 2019Suggestion
14404
Added
Bookmarks in channels
A feature to mark a message in a channel, and to continue reading the channel from this message. Use cases Long stories, broadcasts, and 'I will read it later' situations. Workaround Forwarding a message…
Nov 5, 2019Suggestion
18398
Added
Statistics for Bots
An option to view Bot statistics in Bot Father, for example how many users started a conversation with the Bot! App: all
Dec 23, 2020Suggestion, Bot API
24398
Added
Recording calls
Add ability to record calls in app App: all
Dec 23, 2020Suggestion, General
34383
Added
Message threads like Slack
Message threads like Slack https://slack.com/intl/en-ru/help/articles/115000769927-Use-threads-to-organize-discussions-
Feb 27, 2021Suggestion, General
32381
Added
Image polls
An option to include images in polls
Mar 14, 2021Suggestion, General
11369
Fixed
iPhone overheating / excessive battery usage
I recently upgraded my phone and my telegram app is burning through battery at an incredible rate. It makes the phone very hot whenever I open it for no discernable reason. All I'm doing is texting…
Dec 20, 2024FixedIssue, iOS
126369
0:08
Fixed
Inline keyboard buttons become unresponsive when the menu is edited after tapping on a button
Workaround Rotate your phone and then tap on the desired button. Inline keyboard buttons become unresponsive with the new "menu transition" animation that appears when the menu is edited after tapping…
Dec 29, 2021FixedIssue, iOS
29357
Added
Dear Mr.Durov and your wonderful team! Record only sharing screen, pleaaase
Dear Mr. Durov and your wonderful team, In the group video chats with screen sharing, please include an option to only record the shared screen, without switching to the avatars of the currently speaking…
Sep 16, 2024Suggestion, General
347
Added
An option for the owner of a channel or a group to better interact with subscribers without being disturbed by trolls.
An option for the owner of a channel (or a group) to set a flag so that all registered users become aware/informed that they can be contacted directly by admins (and only by them). In this case, users…
Feb 10, 2022Suggestion, General
3342
0:14
Fixed
AnswerCallbackQuery doesn't show a popup with text if there is a pinned message in the chat
Pop-ups don't appear when you click the bot's buttons, in case there is a pinned-message in this bot. Steps to reproduce 1. Open @BotFather and pin random message. 2. Go to "/mybots", choose any of your…
Feb 26, 2023FixedIssue, Android
4335
Added
File manager
A feature for viewing, moving, selecting, and deleting all downloaded/cached items (files, media, etc.) in one place, perhaps under Storage Usage in the app's Settings. This can also be enhanced with…
Dec 12, 2019Suggestion
13328
Added
Support tags in polls
Hello. Poll in Telegram don't highlight tags. It's important feature to find all polls by one topic. Steps to reproduce 1. Create poll with any tag (#something) in question 2. Publish poll 3. Tag isn't…
Aug 4, 2023General, Suggestion
3328
Added
Allow bots to react on messages and get users who reacted
Allow bot to react on message and get the users who reacted on a specific message_id in a specific chat
Dec 30, 2021FixedSuggestion, Bot API
31327
Added
Allow to remove "Your contacts on Telegram" from the home page
The "contacts on Telegram" section is currently shown in the chat list when you have fewer than 10 chats. Workaround Have more than 10 chats in your list.
Jan 29, 2021ClosedSuggestion, Android
87320
Added
Reply to multiple messages at once
With this feature we no longer have to reply to several message multiple time, you just reply to one message and then it should be possible to select more messsage to include to your reply. It will be…
Jan 27, 2021Suggestion, General
28318
Added
allow only forward hide sender name
with this feature the messages of a group can be forwarded but the sender of that message will be hidden, even he doesn't have hide sender option enabled.
Dec 25, 2022Suggestion, General
8313
Added
Improve invitation links
Let's say I buy a lot of advertising, let there be 5 placements every day, how do I understand which link belongs to which channel? Constantly going in and looking at whether it's a link or not is hard…
Sep 11, 2021FixedSuggestion, General
35303
Added
Exclude archived chats from badge counter
I suggest an option to exclude archived chat messages from the badge counter in taskbar
Feb 18, 2021Suggestion, Telegram Desktop
50302
Added
Disable quick reactions
Dear Facegram... Quick reactions is an annoying useless feature that just gluts the overall look and feel of the whole chat area UX/UI. Please add an option to disable that feature totally for the individual…
Jan 1, 2022Suggestion, General
46292
Added
Who can send me messages
Available Private Messaging Restrictions (who can send me messages) to All Telegram users All Telegram users should have the ability to restrict private messaging. This would allow users to shield themselves…
Mar 29Suggestion, General
60288
Added
Rooms inside a group chat
The ability to have different "rooms" inside a group chat. Meaning, you'll be able to categorize the group chat into different topics without needing to open a whole new one just for one purpose alone.
Feb 2, 2021FixedSuggestion, General
40287
Added
Detailed 'Read' receipts: time when read, who read messages in groups
A message info screen with more information about the 'read' status of messages: When the message was read in private chats. Which group members read the message and at what time. Use cases Knowing…
Dec 12, 2019Suggestion
66286
Added
create a support&news Twitter account and telegram news channel for Iranians
I think telegram Twitter account for Support&News and telegram news channel is needed for iranians Because Persian speakers are very active in Telegram And the channels that have the most subscribers…
Apr 5, 2023Suggestion, General
9286
Added
Folders in Saved Messages to better organize stuff
Folders in Saved Messages to better organize stuff. A great example would be recorded voice chats going to a "Recorded Voice Chats" folder under Saved Messages. (Attached sample mockups)
Apr 8, 2021Suggestion, General
16284
0:07
Added
Request 2FA for important actions
Right now, anyone who accesses your account can delete it, change phone number, or close all of your sessions. Solution: request 2FA for these actions.
Apr 19, 2021Suggestion, General
11277
Added
Support sending webm videos
I have various video files in the webm format, this is also what google's Stadia service saves clips as, so when sharing webm videos with friends on telegram, they have to download the video as a file…
Feb 17, 2021Suggestion, General
15276
0:34
Added
In-Call Messaging
Reply to incoming messages from your call partner without leaving another page currently open in the app. Demo – 00:19 on the attached video.
Nov 19, 2020Suggestion, Calls
10274
Added
Feed or Stream with posts from Subscribed Channels
Show posts from channels you're subsribed to in a single view, one post after another – without the need to open each channel seprately to see what's new. Like Twitter and other feed-based social networks.…
Dec 23, 2020Suggestion, General
65272
Fixed
The problem is for accounts that became premium and are with "Iran (+98)" number.
The problem is for accounts that became premium and are with "Iran (+98)" number. It is not possible to change the status emoji. It is not possible to use saved emojis. It is not possible to view the…
Dec 23, 2023FixedIssue, Android
53272
Added
disable notifications in groups of individual messages, for example "#crypto"
disable notifications in groups of individual messages, for example "#crypto"
Nov 11, 2022Suggestion, General
269
Added
Custom profile pictures for contacts without one
Allow choosing a profile picture for users in your contacts who didn't upload one. These images would only be visible to you. Use cases - Improve the visual appeal of your chat list. - Find people more…
Dec 12, 2019FixedSuggestion
18266
Added
Full-screen message input field
What's the benefit of full-screen message input? • You can write and edit long messages without being distracted by searching for the desired piece of text using the slider • You will not have to use…
Aug 29, 2021Suggestion, Telegram Desktop
10254
Fixed
User gifts don't scroll further than first 1000
On any device, opening my gifts and scrolling down stops at exactly 1000 gifts and doesn't load any gifts further than that Steps to reproduce 1. Open my profile 2. Tap on Gifts 3. Scroll down 4. Reach…
Jan 29Issue, Telegram Desktop
20248
Added
allow download but no forward
atm we have content protection "restrict saving content" but imho this must be splited on 3 allow copy allow save allow forward on that way we can allow saving content locally, but disallow to send to…
Apr 15, 2024Suggestion, General
18242
Added
Different Nicknames on Groups
Please make a feature that permit us to select a different nickname on groups, it's useful for people that use the same account in multiple groups including work (when we identify ourselves with real…
Jun 8, 2021Suggestion, General
21238
Loading

Log In

Log in here to report bugs or suggest features. Please enter your phone number in the international format and we will send a confirmation message to your account via Telegram.

Cancel
(Incorrect?)

We've just sent you a message.
Please confirm access via Telegram

CancelBack
  • Copy Link
Stop server-side JPEG-to-JPEG recompression
Сергѣй Юрьевичъ Соколовъ, Jan 24, 2021 at 06:32
OpenSuggestionGeneral

A contributor to Telegram Desktop has once said at https://github.com/telegramdesktop/tdesktop/issues/5317#issuecomment-502341782 that it's not useful to raise the quality of JPEG photoes compressed by client-side applications because “the server itself compresses the photos” and “most of the compression is performed by the server”.

Hence the suggestion that is very simple: Telegram should stop performing server-side JPEG-to-JPEG recompression because such recompression has several important demerits.

Server-side JPEG-to-JPEG recompression makes it nonsensical to improve client-side JPEG compression. Telegram Desktop's decision to use MozJPEG (see https://github.com/telegramdesktop/tdesktop/pull/8787 for details) and the same (earlier) decision of Telegram for iOS (see https://github.com/TelegramMessenger/Telegram-iOS/commit/e1432e41711f5b114e338e81522ad73a3f4f5645 for details) does not mean much if the server then uses some visibly worse JPEG encoder that cannot even generate progressive JPEG (see https://t.me/kepka_support/15058 for details).

Server-side JPEG-to-JPEG recompression results in generation loss (see https://en.wikipedia.org/wiki/Generation_loss for the definition). The most popular pictures (the pictures that are saved and sent again the most often: the memes, the spectacular photoes, the screenshots of awesome news, etc.) are the most “punished” by the quality loss.

Server-side JPEG-to-JPEG recompression is likely to incentivize unofficial clients to create JPEG files of exorbitant quality (when compressing PNG-to-JPEG, for example) and thus to lengthen the delivery in order to ensure that the only quality loss is server-side.

Server-side JPEG-to-JPEG recompression is costly. It involves the expenditure of the precious server-side CPU cycles (and these are so precious that Telegram intentionally refrains from GIF-to-MP4 recompression of files greater than 10 megabytes despite the larger filesize-related gains for them). In addition to that, and perhaps more importantly, server-side JPEG-to-JPEG recompression also generates (because of the generation loss) many files containing the same image on different stages of recompression and thus the expenditure of server-side storage for all of these files.

Telegram should get rid of all that demerits: Telegram should rely solely on client-side JPEG compression. The only server-side JPEG processing should be simple (not CPU-intensive) tasks such as removing of geotags (for the sake of better privacy) and trimming the files' tails (to prevent any RARJPEG) and the inevitable check of images' parameters to enforce the simple set of rules that are imposed on client-side JPEG compression; and these rules should be made public.

For example, compressed images in Telegram cannot exceed 1280×1280 pixels, and thus server should reject client-sent JPEG images wider or higher than this limit with an error (instead of attempting to recompress).

For example, Telegram servers can reject large JPEG files with an error if the file is larger than, say, one or two megabytes.

For example, Telegram servers can reject JPEG files based on their bytes-to-pixels ratio, requiring no more than 6 or 7 bits (of the encoded files) per pixel on average (not to be confused with https://en.wikipedia.org/wiki/8-bit_color of the decoded images).

2194Copy link
Comments9
Сергѣй Юрьевичъ Соколовъ Jan 24, 2021
Telegram clients (both official and unofficial) are then expected to adhere to these public rules and also to refrain from any JPEG-to-JPEG recompression of any files that already abide by the rules. The goal here is to ensure that the image becomes immutable (does not degrade and multiply further) after having entered Telegram. The goal here is to make the joke of https://xkcd.com/1683/ no longer relevant in Telegram.

MozJPEG compression needs so much CPU time (45½ times, see https://libjpeg-turbo.org/About/Mozjpeg for details) that it is probably not affordable on Telegram servers or would require ridiculous amounts of Telegram's monetization. However, the collective ability of many hundred millions of client-side devices to shoulder (almost effortlessly) their individual parts of the cost of such better JPEG compression is quite obvious.
Сергѣй Юрьевичъ Соколовъ Jan 24, 2021
Client-side applications can afford being better at JPEG compression than Telegram servers. Telegram users, however, can go even further if necessary. A typical Telegram client can only try one default setting of JPEG compression (and then maybe two or three backup settings) because it's inclined to send its results faster. And when Telegram users (such as digital artists or authors of some photo documentary) are ready to try many more compression settings for the sake of better-looking images in their Telegram channels (and when they spend much more time than the usual user can tolerate before an image is sent; ten minutes, for example), that's exactly when they are able to reach somewhat better JPEG quality within the same public set of constraints. They could find and try some experimental luma-controlled method of color subsampling (such as https://github.com/kornelski/jpeg-compressor#subsampling for example) that any Telegram developer could not know about or could not implement; and their resulting JPEG files would still be accepted and published in Telegram if the current server-side JPEG-to-JPEG recompression is stopped and abolished.
Сергѣй Юрьевичъ Соколовъ Jan 24, 2021
It is important to keep in mind that engineers in Twitter are one year ahead in understanding the benefits of incentivizing user-side compression efforts: Twitter allows any JPEG to be posted through their Web site “almost as is” (without server-side JPEG-to-JPEG recompression; nevertheless, any geotags are removed for the sake of better privacy) if that JPEG does not exceed 4096×4096 pixels, and does not exceed 5 megabytes, and does not spend more than 8 bits on an average pixel (since January 2020, see https://twittercommunity.com/t/upcoming-changes-to-png-image-support/118695 for details). Telegram might decide to follow that example not only because the practice seems rational, but also because that's exactly what is habitual for many millions of “digital refugees from Twitter” that are coming to Telegram.
Сергѣй Юрьевичъ Соколовъ Jan 24, 2021
Likewise, Telegraph (the site, not the Graph Messenger) should also stop its own server-side JPEG-to-JPEG recompression. Telegraph should keep uploaded JPEG files “as is” (like it keeps uploaded PNG files already) and only impose the usual Telegraph's limit on filesizes (5 megabytes).

Telegram Desktop should also refrain from further client-side JPEG-to-JPEG recompression when its users save JPEG files. Any saved JPEG files should be saved exacty as they were received.
S
Serhii Popov ️ Jun 18, 2021
You can send jpgs without recompression in Telegram already. Select pictures, tap three dots menu and select "Send without compression".
But I think it's a nice default to rescale and recompress images so they don't take much space.
Сергѣй Юрьевичъ Соколовъ Jun 18, 2021
Serhii Popov ️
You can send jpgs without recompression in Telegram already. Select pictures, tap three dots menu and select "Send without compression". But I think it's a nice default to rescale and recompress images so they don't take much space.
A common case is that the picture, if passed through Telegram channels, has already been recompressed twice or thrice: once when sent, once again on the server side, maybe once again if saved from Telegram Desktop. If you need to repost that picture, can you decide that it's not compressed enough (despite all the previous attempts to compress it) and justify its further recompression by the argument “so it doesn't take much space”? — also that argument may already be invalid if Telegram uses some single-instance storage (see https://en.wikipedia.org/wiki/Single-instance_storage for the definition) and an exact copy of the file is much cheaper than the recompressed version.
Khaled [E] Dec 11, 2021
Maybe offer conversion options in the client. Like video quality options for videos.
Сергѣй Юрьевичъ Соколовъ Mar 9, 2022
Сергѣй Юрьевичъ Соколовъ
Likewise, Telegraph (the site, not the Graph Messenger) should also stop its own server-side JPEG-to-JPEG recompression. Telegraph should keep uploaded JPEG files “as is” (like it keeps uploaded PNG files already) and only impose the usual Telegraph's limit on filesizes (5 megabytes). Telegram Desktop should also refrain from further client-side JPEG-to-JPEG recompression when its users save JPEG files. Any saved JPEG files should be saved exacty as they were received.
A fix for one of the aforementioned issues (“Telegram Desktop should also refrain from further client-side JPEG-to-JPEG recompression when its users save JPEG files”) is delivered in Telegram Desktop 3.5.6 beta.

Its changelog at https://github.com/telegramdesktop/tdesktop/releases/tag/v3.5.6 says “Always try to save original photo bytes to disk”.
Сергѣй Юрьевичъ Соколовъ Apr 30, 2022
A further improvement is delivered in Telegram Desktop version 3.6.0 (see https://github.com/telegramdesktop/tdesktop/commit/6805259f74a163ea851fee0e1ae743e81bf75c61 for details).

Telegram Desktop no longer recompresses a JPEG file before sending if the following four rules are obeyed by that JPEG:

① JPEG format is progressive,

② JPEG's width is 1280 pixels or less,

③ JPEG's height is 1280 pixels or less,

④ JPEG's filesize is 4 bits (or less) per average pixel.

Such JPEG files are nevertheless recompressed (JPEG-to-JPEG), but only once (on the server side).