Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/TelegramOrg/Telegram-web-k/llms.txt

Use this file to discover all available pages before exploring further.

Telegram Web K supports the full breadth of Telegram’s media types — photos and albums with spoiler blur, videos with covers, round video messages, voice notes, documents up to 4 GB, all three sticker formats, GIFs, paid media behind a Stars paywall, and stories. Media playback is driven by appMediaViewer for the fullscreen viewer and appMediaPlaybackController for audio and video, while a lazy-load queue keeps performance smooth as you scroll through media-heavy chats.
Single photos and albumsPhotos can be sent individually or grouped into albums of up to 10 items. Albums are displayed as a compact grid inside the message bubble.Spoiler blurAny photo (single or within an album) can be sent with a spoiler effect. The image is blurred with a shimmering overlay until the recipient clicks or taps to reveal it. This is implemented via the messageMediaPhoto spoiler flag.CaptionsCaptions support the same rich formatting as regular text messages — bold, italic, links, custom emoji, and more. Captions can optionally appear above the media rather than below.Media editorBefore sending, photos pass through the built-in media editor, which provides crop, rotation, brightness/contrast adjustments, a drawing canvas, text overlays, and sticker layers. Rendering uses a WebGL pipeline for smooth performance.

Media viewer

The fullscreen media viewer (appMediaViewer) opens when you click any photo or video in a chat. It provides:
  • Swipe or arrow-key navigation through the current album or chat history.
  • Zoom and pan for photos.
  • Full playback controls for videos.
  • A download button for saving to disk.
  • Forwarding and sharing directly from the viewer.
A dedicated RTMP media viewer (appMediaViewerRtmp) handles live-stream viewing within the same UI shell.

Stories

Stories from contacts and channels you follow appear in a horizontal scrollable bar at the top of the chat list (list.tsx). Clicking a story opens the fullscreen story viewer (viewer.tsx), which advances through stories automatically.Stories support reactions, replies, and forwarding. The viewer shows a progress bar for each story in a user’s sequence.
Visiting a user’s or channel’s profile shows their pinned and archived stories in a dedicated profileList.tsx section. Pinned stories remain visible indefinitely; archived stories are accessible to the owner.
Premium users can activate Stealth Mode from the story viewer to prevent their view from being recorded in the story’s view list for a short window. This is managed by storiesStealthMode.tsx.
Story privacy settings control who can see each story — all contacts, selected contacts, or close friends. These settings are configurable per-story before posting.
Posting new stories is not supported in Web K. The story viewer is fully functional for reading stories from your contacts and channels.
Posts marked as paid media (messageMediaPaidMedia) display a Stars paywall overlay. Clicking Unlock deducts the required number of Stars from your balance and reveals the underlying photo or video. The Stars balance is shown as a floating indicator updated in real time.

Giveaway posts

Giveaway messages (messageMediaGiveaway and messageMediaGiveawayResults) render with the full giveaway card UI, including prize description, end date, eligible channels, and country filters. Results posts show the winner list.

Lazy-load queue

Web K uses a virtual list and a priority-based lazy-load queue for media in the message list. Thumbnails closest to the viewport are fetched first; off-screen media is deferred. This keeps scroll performance smooth even in media-heavy channels with thousands of messages loaded.

Build docs developers (and LLMs) love