How to Clone a Restricted Telegram Channel
You find a Telegram channel with exactly the content you need. You tap a message, hit forward, and Telegram tells you: "Restricting saving content." The forward button is greyed out. You cannot copy text, save media, or share anything from this channel. The admin enabled content protection, and Telegram enforces it at the client level. This guide covers every working method to clone a restricted channel, from manual workarounds to automated tools that read protected content through the API layer where these restrictions do not apply.
Why Do Channels Restrict Forwarding?
Telegram introduced the "Restrict Saving Content" setting to give channel admins control over how their posts spread. Understanding why channels use this feature helps you pick the right cloning method and respect the original creator's intent.
Paid and Premium Content Protection
Channels that sell access through Telegram's paid subscription feature or external payment systems restrict forwarding to protect their business model. If subscribers could freely forward every post to non-paying friends, the paywall would be meaningless. Crypto signals channels, trading groups, course material distributors, and exclusive news outlets all use this setting. The restriction is their primary defense against content leaking to free audiences.
Copyright and Brand Control
Original content creators, including photographers, journalists, and researchers, enable restrictions to prevent their work from being reposted without attribution. When forwarding is enabled, anyone can share a post and the "Forwarded from" label provides some credit. But many people strip that label or screenshot the content. Restricting forwarding forces people to link to the channel directly rather than copying the content elsewhere.
Anti-Scraping Measures
Some channels restrict content specifically to slow down competitors who scrape and republish their posts, which is a different job from pulling a member list and is covered separately in extracting group members. News aggregation channels, deal-alert channels, and research outlets know that their content has value precisely because it is curated and timely. Unrestricted forwarding makes it trivially easy for copycat channels to mirror everything in real time.
Important: The methods in this guide work on a technical level. Whether you should use them depends on context. Cloning your own restricted channel for backup or migration is completely legitimate. Cloning someone else's paid channel to redistribute for free is not. Use good judgment.
What Content Protection Actually Switches On
Before picking a method it helps to know exactly what the admin turned on, because the restriction is narrower than it feels. It is one flag rather than a wall, and knowing where the flag stops tells you which of the four methods below can work at all.
One Flag on the Channel
In Telegram's own protocol the setting is a channel-level flag named noforwards, documented as whether the channel or group is protected and therefore does not allow forwarding messages from it. On the Bot API side the same state shows up per message as has_protected_content, described in one line as true if the message cannot be forwarded. Both were read from Telegram's documentation on 8 August 2026.
What the Flag Stops
It stops the client from forwarding, from saving media to your device, and from selecting text to copy, and it asks mobile clients to block screenshots. Every item on that list is enforced by the app in front of you, which is the detail the rest of this guide turns on.
What the Flag Does Not Stop
It does not encrypt anything, it does not stop the messages reaching your account, and it has no answer to a second camera pointed at the screen. More importantly it is a client-side instruction, so a client that reads the same account through the API layer never meets the greyed-out button at all. That is why the scripted method further down works where the interface refuses, and it is the same reason a saved copy of restricted content is possible in the first place.
How to Check Before You Start
Open the channel and try to forward one message. If the option is missing or the text will not highlight, the flag is on. There is no partial mode, so one test answers the question for the whole channel, and the answer will not change while you work unless the admin changes it. If forwarding turns out to be allowed, you do not need any of this and the ordinary route in our guide to cloning a Telegram channel is faster.
Method 1: Screenshots and Screen Recording
The simplest workaround requires no tools, no code, and no API access. It works on every device and every operating system. It is also the slowest and least scalable approach, suitable only for grabbing a handful of posts.
How It Works
Telegram's content protection disables in-app forwarding, text selection, and media saving. But it cannot prevent your operating system from capturing what is on screen. On desktop, use your OS screenshot tool (Snipping Tool on Windows, Cmd+Shift+4 on Mac). On mobile, use the standard screenshot gesture. For video content, use a screen recorder.
Some Android custom ROMs and rooted devices can also bypass the screenshot restriction that Telegram applies on mobile. On desktop clients, screenshot blocking does not apply at all, so this method always works from a computer.
Why This Does Not Scale
A single text post takes 15-30 seconds to screenshot, crop, and save. An image post takes about the same. A video requires real-time screen recording for its full duration. Now multiply that by 500 or 5,000 posts. The math breaks immediately.
Screenshots also produce images, not structured text. You cannot search, edit, or repost the content as native Telegram messages. You end up with a folder of image files that are useful for reference but useless for republishing to a channel. If your goal is to populate a new channel with the same content, screenshots are a dead end.
Verdict: Use screenshots when you need to save 5-10 specific posts for personal reference. For anything larger, move to an automated method.
Method 2: Telegram Web and Developer Tools
Several forum posts and tutorials suggest using Telegram Web or Telegram Desktop with browser developer tools to extract content from restricted channels. The idea sounds clever, but the reliability is poor and the effort-to-reward ratio is unfavorable for most users.
The Inspect Element Approach
Open Telegram Web (web.telegram.org) in a browser, navigate to the restricted channel, right-click, and select "Inspect Element." The message text exists in the DOM even when Telegram's UI prevents you from selecting it. You can find the text inside <div class="message"> elements and copy it from the HTML source.
This works for individual text messages. It breaks down for several reasons:
- Media files: Images and videos are loaded as blobs or protected URLs. Extracting them requires intercepting network requests, downloading blob URLs, or using browser extensions. None of this is straightforward.
- Pagination: Telegram Web loads messages lazily as you scroll. To access older messages, you need to scroll through the entire history, waiting for each batch to load. For a channel with thousands of posts, this takes a very long time.
- Formatting: Extracting raw text from the DOM loses Telegram's entity-based formatting (bold, italic, links). Reconstructing formatted text from HTML classes is possible but tedious.
- Fragile selectors: Telegram updates its web client frequently. CSS class names and DOM structures change without notice, breaking any scraping logic you build around them.
Browser Extensions
A few browser extensions claim to bypass Telegram's content protection on the web client. These extensions typically override the JavaScript that prevents text selection and right-click menus. They work for copying individual messages but offer no automation for full-channel cloning. They also carry security risks, as you are granting a third-party extension access to your Telegram session.
Verdict: Desktop tricks work for grabbing a few text messages. They are unreliable for media, impractical for large archives, and break with every Telegram Web update. Not a real cloning solution.
Method 3: Telethon or Pyrogram Script
This is where things get serious. Telethon and Pyrogram are Python libraries that connect to Telegram through the MTProto protocol, the same protocol the official apps use. The critical insight: Telegram's "Restrict Saving Content" setting is enforced at the client level, not the API level. The MTProto API returns full message content regardless of the channel's restriction settings.
Why API-Level Access Bypasses Restrictions
When you open a restricted channel in the Telegram app, the client checks the channel's settings and disables forwarding, text selection, and media saving in the UI. But the underlying API call that fetches messages (messages.getHistory) returns the complete message object with all text, entities, and media references. The restriction is a client-side rule, not a server-side one.
This means any script using Telethon or Pyrogram can read every message, download every media file, and extract every piece of text from a restricted channel, as long as the authenticated account is a member of that channel.
Example: Reading Messages from a Restricted Channel
from telethon import TelegramClient
import asyncio
api_id = 12345 # from my.telegram.org
api_hash = "your_api_hash"
session_name = "restricted_clone"
source_channel = "restricted_channel_username"
dest_channel = "your_destination_channel"
client = TelegramClient(session_name, api_id, api_hash)
async def clone_restricted():
await client.start()
source = await client.get_entity(source_channel)
dest = await client.get_entity(dest_channel)
messages = []
async for message in client.iter_messages(source, limit=None):
messages.append(message)
messages.reverse() # Chronological order
for msg in messages:
try:
if msg.media:
await client.send_message(
dest, msg.text or '',
file=msg.media,
formatting_entities=msg.entities
)
else:
await client.send_message(
dest, msg.text,
formatting_entities=msg.entities
)
await asyncio.sleep(2) # Rate limit protection
except Exception as e:
print(f"Skipped message {msg.id}: {e}")
asyncio.run(clone_restricted())
What You Need
- Python 3.7+ installed on your machine
- A Telegram API ID and hash from my.telegram.org
- Membership in the restricted channel: Your authenticated account must be a member. The API does not bypass access controls, only content protection restrictions.
- A destination channel where you have posting permissions
Limitations and Risks
The script approach gives you full control but comes with real downsides:
- Account risk: Running automated scripts on your personal Telegram account can trigger flood wait errors or temporary bans. Telegram's anti-abuse system monitors for rapid automated activity, and if you do end up limited, the way back is in our walkthrough of getting a spam restriction lifted.
- Edge cases: Media groups (albums), polls, round videos, stickers, and custom emoji all need special handling. A basic script misses these. A production-quality script takes significant development time.
- No error recovery: If the script crashes at message 3,000 out of 10,000, you need to manually track where it stopped and resume from that point. Without checkpoint logic, you restart from zero.
- Maintenance burden: Telethon and Pyrogram update their APIs as Telegram changes. Scripts that work one month may break with the next library or protocol update. The same pattern applies to anything you pull off a repository, which we went through in what a public Telegram repo actually costs to run.
Verdict: The Python script method is the most powerful DIY option. If you can code and you are comfortable managing API credentials and account risk, this is the way to go for restricted channels. If you want the same result without writing code, keep reading.
Method 4: Channel Clone by Floqal
Floqal's Channel Clone handles restricted channels the same way it handles unrestricted ones. The service operates through the MTProto API layer, which means content protection settings do not block the cloning process. Text, images, videos, documents, and formatting all transfer regardless of the channel's restriction settings.
How It Handles Restricted Content
When you submit a clone job for a restricted channel, the process works identically to a standard clone:
- Authentication: Connect your Telegram account through the Floqal dashboard. Your account must be a member of the restricted source channel.
- Source selection: Enter the restricted channel's username or invite link. The system reads the channel's message history through the API, bypassing client-side restrictions.
- Configuration: Choose your destination channel, select content types (text, media, or both), set the date range, and configure posting speed.
- Execution: The system downloads all content, preserves formatting and entities, handles media groups and special message types, and posts everything to your destination channel in chronological order.
- Completion: You receive a summary showing how many messages were processed and whether any required special handling.
Why Use a Service Instead of a Script?
The script approach and the service approach both use the same underlying technology (MTProto API access). The difference is operational:
- No coding required: You do not need Python, a development environment, or API credentials from my.telegram.org
- Edge case handling: Media groups, polls, round videos, custom emoji, and other special message types are handled automatically. No debugging required on your end.
- Rate limit management: The service implements intelligent throttling that keeps your account safe from flood wait errors and restrictions
- Error recovery: If a clone job is interrupted, it resumes from where it stopped. No manual checkpoint tracking.
- Account safety: The service uses proven sending patterns that minimize the risk of triggering Telegram's anti-abuse systems
Check the pricing page for current rates. For operators running Mass DMs alongside channel operations, combining tools under one dashboard simplifies workflow significantly.
What About Private Restricted Channels?
Private channels add a second layer on top of content restriction. A public restricted channel blocks forwarding but anyone can join and view. A private restricted channel blocks forwarding and requires an invite link or admin approval to access the content in the first place.
The Access Requirement
Every cloning method, whether manual, script-based, or service-based, requires your Telegram account to be a member of the source channel. The MTProto API bypasses content protection (forwarding restrictions), but it does not bypass access controls. If you are not a member, the API returns nothing.
This means: to clone a private restricted channel, you must first join it through the normal invitation process. If the channel requires paid access, you need an active subscription. If it requires admin approval, you need to be approved. Once you are a member, all the methods described in this guide work identically for private and public channels.
Invite Links and Session Files
If you have a join link (t.me/+xxxxx format), your Telegram account can join the channel before starting the clone job. For Floqal Channel Clone, you connect your account through a session file, and the difference between that and the other handover formats is set out in session file versus TDATA. The service uses that session to access the private channel. The account joins (or is already a member), reads the message history, and clones the content to your destination.
Key point: Content restriction and channel privacy are separate settings. Restriction blocks forwarding. Privacy blocks access. To clone a channel that uses both, you need membership (to get access) and an API-level tool (to bypass forwarding restrictions).
Auto-Translate: Clone in One Language, Deliver in Another
One of the most practical use cases for cloning restricted channels is language expansion. A Russian crypto signals channel publishes high-value analysis, but your audience speaks English. A Spanish news outlet covers your niche, but you need the content in Portuguese. Cloning the restricted channel is step one. Translation is step two.
How the Workflow Looks
The standard approach combines cloning with post-processing:
- Clone the restricted source channel to a staging channel (a private channel you control)
- Run translation on the cloned content before publishing to your public destination channel. This can be automated through translation APIs (DeepL, Google Translate) or handled manually for high-accuracy needs.
- Publish the translated content to your audience-facing channel with adapted formatting, localized links, and any editorial adjustments
Floqal's Channel Clone supports text replacement rules that can be applied during the cloning process. While this is not full machine translation, it handles common patterns like brand name localization, link swapping, and terminology replacement automatically during the clone.
Why This Matters for Restricted Channels Specifically
Unrestricted channels can be cloned through simpler forwarding-based methods. Restricted channels require API-level access, which means you are already using a tool capable of text extraction and manipulation. Adding translation to the pipeline is a natural extension. The same script or service that bypasses content protection can also transform the content before publishing.
For teams operating multilingual channel networks, this workflow turns a single high-quality source channel into content for multiple markets. Once the pipeline exists, the scheduling and posting side of it belongs with the rest of your channel automation, and a continuous mirror rather than a one-off copy is the job described in four ways to mirror a channel. Combined with ProspectPulse for finding relevant audiences in each language market, you can build a complete distribution pipeline.
Cross-Platform Alternative: Pull from Twitter/X Instead
Sometimes the content you want from a restricted Telegram channel also exists on another platform. Many channels cross-post to Twitter/X, websites, or RSS feeds. If the same content is available on an unrestricted platform, pulling from there can be simpler than bypassing Telegram's content protection.
When This Works
This approach is viable when:
- The channel admin publishes the same content on Twitter/X (many crypto, news, and tech channels do)
- The channel mirrors content from a public website or blog with an RSS feed
- The content is text-heavy and the media (if any) is secondary or also available elsewhere
Twitter/X content can be scraped, RSS feeds can be parsed, and website content can be extracted, all without Telegram restrictions being a factor. If that platform is where your audience already sits, our notes on finding customers on Twitter cover the same ground from the other direction. The extracted content then gets formatted and posted to your Telegram channel through standard API methods.
When This Does Not Work
The cross-platform approach fails when:
- The restricted Telegram channel is the only or primary source of the content
- The content includes Telegram-specific formatting, polls, or media that does not exist on other platforms
- The cross-posted versions are abridged or modified compared to the Telegram originals
- Timing matters, as cross-platform posting often has delays, and the Telegram version is the fastest source
For most restricted channels, the Telegram-native approach (Method 3 or Method 4) is more reliable and complete. The cross-platform alternative is worth considering as a fallback when the primary methods are not feasible, or when you want to aggregate content from multiple platforms into one Telegram channel.
How Long a Clone Actually Takes
Every method above is usually chosen on capability and then regretted on time, so it is worth doing the arithmetic before you start rather than at message four hundred.
The Number That Sets Everything
Look at the pause in the script example further up, two seconds between sends. That single value decides the whole schedule, because the reading side is fast and the writing side is not. At two seconds a thousand messages take a little over half an hour, three thousand take roughly an hour and forty minutes, and ten thousand take most of a working day. Shortening the pause shortens the job and raises the chance of the destination account being limited, which is the trade the whole exercise turns on.
What Makes It Longer Than the Arithmetic Says
Media is the usual surprise. A text message is one request, while a video is a download followed by an upload, and a channel heavy with video runs several times slower than the same count of text posts. Albums add another layer because the parts have to be regrouped rather than sent one by one. A run that stalls and restarts from zero has effectively doubled itself, which is why resuming from the last completed message matters more than raw speed.
Plan the Window, Not the Total
Rather than starting a ten thousand message job and hoping, split it by date range and run it across several sessions. Smaller runs finish, and a finished run tells you what the real rate is on your account, with your media mix, today. After two of them the estimate for the rest stops being a guess.
Choosing the Right Method
Each method serves a different situation. The breakdown below maps your constraints to the best approach so you can skip straight to the method that fits.
For Quick Personal Reference (Under 10 Posts)
Screenshots and screen recording work fine. No setup, no tools, no risk. Just capture what you need and move on. This is not cloning in any meaningful sense, but it solves the immediate problem of saving a few specific posts from a restricted channel.
For Developers Who Want Full Control
A Telethon or Pyrogram script gives you complete flexibility. You control the rate limiting, the content filtering, the formatting, and the destination. The tradeoff is development time, debugging, and ongoing maintenance. If you are comfortable with Python and Telegram's API, this is the most powerful option.
For Operators Who Need Reliability Without Code
Floqal Channel Clone handles restricted channels through a web dashboard. No code, no API credentials to manage, no debugging edge cases. The service manages rate limiting, error recovery, and special message types automatically. Best for operators who need results without the technical overhead.
For Multi-Channel Operations
If you are cloning multiple restricted channels, running outreach campaigns, or managing several Telegram accounts, a unified platform saves time. Individual scripts per channel become unmanageable past three or four channels. A centralized dashboard with job management, progress tracking, and account management scales better.
Quick decision: Can you code? Use Telethon. Cannot code but need the full archive? Use Floqal. Only need a few posts? Use screenshots. Content exists on Twitter too? Consider pulling from there instead.
Restricted channels add one extra layer of complexity to the cloning process, but they do not make it impossible. The forwarding restriction is a client-side rule that the official Telegram apps enforce. The underlying API delivers full content regardless. Once you understand this distinction, choosing the right tool is straightforward: pick the method that matches your technical ability, your volume needs, and how often you will repeat the process.
Frequently Asked Questions
Can a Telegram channel with forwarding disabled still be cloned
Yes, because the restriction is a client-side instruction rather than a lock on the data. Telegram's protocol carries it as a channel flag named noforwards, and the Bot API mirrors it per message as has_protected_content, described in one line as true if the message cannot be forwarded. A tool that reads the same account through the API layer receives the full message with its text, entities and media references, which is why the scripted and service methods above work while the app greys the button out.
Does content protection stop screenshots
It asks mobile clients to block them and most comply, but desktop clients do not enforce it at all, so a screenshot from a computer always works. Some rooted Android devices ignore the request as well. That is why the manual method is listed first despite being the weakest: it needs nothing and it never fails, it simply does not scale past about ten posts and produces images rather than text you can repost.
Do I need to be a member of the channel first
Yes, for every method on this page. The API bypasses content protection but it does not bypass access control, so an account that is not a member receives nothing at all. For a public channel that means joining. For a private one it means an invite link, admin approval or an active paid subscription, exactly as an ordinary reader would obtain it.
Can cloning a restricted channel get my account limited
The reading side is quiet, but the writing side is where accounts get into trouble. Posting several thousand messages into a destination channel in a short window looks like automated activity, which is what the anti-abuse system watches for. The mitigations are pacing between sends, resuming rather than restarting after a failure, and not running the job on the account you cannot afford to lose.
Is it acceptable to clone somebody else's restricted channel
The technical answer and the sensible answer differ. Cloning a channel you own, for backup or for migration, is straightforward and is the most common reason people arrive here. Copying a paid channel so it can be handed out at no charge is taking somebody's product, and the admin turned the flag on precisely to prevent that. The method works either way, so the decision is yours rather than the tool's.
Clone Restricted Channels Without Writing Code
Floqal's Channel Clone reads through the API layer where content protection does not apply. Text, media, formatting, and all message types transfer to your destination channel automatically.
Try Channel Clone