How to automatically repost from RSS
Automatically reposting from RSS feeds to your Telegram channel lets you keep your audience updated with fresh content from blogs, news sites, or any source that publishes an RSS/Atom feed — all without manual copy-pasting. The most common approaches involve using third-party bots (like @TheFeedReaderBot), automation platforms (Zapier, Make, n8n), or self-hosted scripts.
How RSS-to-Telegram Reposting Works
RSS (Really Simple Syndication) is a standardized format that websites use to publish updates. An RSS feed is essentially a structured list of recent articles or posts, each containing a title, link, summary, and publication date.
When you set up automatic reposting, a bot or service periodically checks the RSS feed for new entries. When it detects a new item, it formats the content and sends it as a message to your Telegram channel. The check interval varies — from every minute to every few hours — depending on the tool you use.
What You Need Before Starting
- A Telegram channel where you have admin rights
- A bot created via @BotFather, added as an admin to your channel (with permission to post messages)
- The RSS feed URL of the source you want to repost from (usually found at
example.com/feed,example.com/rss, orexample.com/feed.xml)
Method 1: Using @TheFeedReaderBot (Easiest)
This is the simplest way to get RSS content into your Telegram channel without any coding or external services.
Step 1: Start the Bot
Open Telegram and search for @TheFeedReaderBot. Press Start to activate it.
Step 2: Subscribe to an RSS Feed
Send the bot your RSS feed URL directly:
https://example.com/feed
The bot will detect the feed and show you recent entries to confirm it's working.
Step 3: Connect to Your Channel
Use the /addchannel command and follow the bot's prompts. You will need to:
- Add
@TheFeedReaderBotas an administrator to your channel - Grant it the Post Messages permission
- Confirm the channel by sending its
@usernameor channel ID to the bot
Step 4: Assign the Feed to the Channel
Once the channel is linked, use the bot's menu to assign your RSS subscription to that channel. New items from the feed will now be posted automatically.
Note: The free tier of @TheFeedReaderBot typically checks feeds every 30–60 minutes. If you need faster updates, consider a paid plan or a different method.
Method 2: Using Zapier or Make (Integromat)
Automation platforms give you more control over formatting, filtering, and combining multiple sources.
Setting Up with Zapier
Step 1: Create a New Zap
Log in to Zapier and click Create Zap. Choose RSS by Zapier as the trigger app and select New Item in Feed as the trigger event.
Step 2: Configure the RSS Trigger
Paste your RSS feed URL and set the check interval. Zapier's free plan checks every 15 minutes; paid plans offer 1–5 minute intervals.
Step 3: Add the Telegram Action
Choose Telegram Bot as the action app. Select Send Message as the action event. Connect your bot using the API token from @BotFather.
Step 4: Format the Message
Configure the message template. A typical setup:
📰 {{title}}
{{summary}}
🔗 Read more: {{link}}
You can use Zapier's built-in formatter to strip HTML tags, truncate long text, or add custom hashtags.
Step 5: Test and Enable
Run a test to see how the message looks in your channel, then turn the Zap on.
Setting Up with Make (Integromat)
Make offers a visual workflow builder and often provides more generous free-tier limits than Zapier.
- Create a new Scenario
- Add the RSS module → Watch RSS Feed Items
- Add the Telegram Bot module → Send a Message
- Map the RSS fields (title, description, link) to the message template
- Set the scheduling interval (free plan allows 15-minute intervals)
- Activate the scenario
Method 3: Self-Hosted with n8n or Custom Scripts
For maximum control and zero recurring costs, you can run your own automation.
Using n8n (Self-Hosted)
n8n is an open-source workflow automation tool you can host on your own server.
- Install n8n via Docker:
docker run -d --name n8n -p 5678:5678 n8nio/n8n - Open the web interface at
http://your-server:5678 - Create a workflow: RSS Read node → Telegram node
- Configure the RSS node with your feed URL
- Configure the Telegram node with your bot token and channel ID (use the format
-100XXXXXXXXXXfor channel IDs) - Set the workflow to run on a Cron trigger (e.g., every 10 minutes)
Using a Python Script
For developers who want a lightweight solution:
import feedparser
import requests
import json
import time
BOT_TOKEN = "your_bot_token"
CHANNEL_ID = "@your_channel"
FEED_URL = "https://example.com/feed"
SEEN_FILE = "seen_entries.json"
def load_seen():
try:
with open(SEEN_FILE, "r") as f:
return set(json.load(f))
except FileNotFoundError:
return set()
def save_seen(seen):
with open(SEEN_FILE, "w") as f:
json.dump(list(seen), f)
def send_message(text):
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
requests.post(url, json={
"chat_id": CHANNEL_ID,
"text": text,
"parse_mode": "HTML",
"disable_web_page_preview": False
})
seen = load_seen()
feed = feedparser.parse(FEED_URL)
for entry in reversed(feed.entries):
if entry.id not in seen:
message = f"<b>{entry.title}</b>\n\n{entry.summary[:300]}...\n\n<a href='{entry.link}'>Read more</a>"
send_message(message)
seen.add(entry.id)
time.sleep(2) # Avoid hitting Telegram rate limits
save_seen(seen)
Run this script via cron every 10–15 minutes:
*/10 * * * * /usr/bin/python3 /path/to/rss_to_telegram.py
Method 4: Using @RSSBot or Similar Bots
Several other Telegram bots offer RSS reposting:
- @FeedlyBot — integrates with your Feedly account
- @RSSBot — simple RSS subscription directly in Telegram
- @Feed2Telegram_bot — focused on channel reposting with formatting options
Each has slightly different features, but the setup process is similar: add the bot, provide the feed URL, link your channel.
Advanced: Filtering and Formatting
Keyword Filtering
Most automation platforms allow you to filter RSS entries before posting. For example, in Zapier you can add a Filter step to only repost items whose title contains specific keywords. This is useful when you want content from a broad news feed but only items relevant to your channel's niche.
Custom Formatting with HTML
Telegram supports a subset of HTML in messages. You can format your reposted content using:
-
<b>bold</b>for titles -
<i>italic</i>for emphasis -
<a href="url">link text</a>for clickable links -
<code>monospace</code>for technical terms
Combining Multiple Feeds
If your channel aggregates content from several sources, you can set up multiple RSS triggers pointing to the same channel. Add a source label to each message so readers know where the content originates:
📡 Source: TechCrunch
📰 Article Title Here
Brief summary...
🔗 Read more
Tips & Best Practices
- Respect posting frequency. If your RSS source publishes 50 articles a day, your subscribers will be overwhelmed. Use filters or pick feeds that match your desired posting frequency (3–10 posts per day is a comfortable range for most channels).
- Add value beyond the headline. Include a brief summary or your own commentary along with the repost. Channels that simply mirror RSS feeds without context tend to lose subscribers to the original source.
- Use web page previews wisely. Telegram auto-generates link previews. If the preview already shows the article title and image, you can keep your message text shorter.
- Monitor for broken feeds. RSS feeds occasionally change URLs or go offline. Set up a weekly check or use a monitoring tool to alert you when a feed stops updating.
- Consider creating a web mirror. Services like tgchannel.space can export your Telegram channel content to an SEO-optimized blog, giving your curated RSS content a second life as a searchable web archive.
Common Mistakes
Mistake 1: Not adding the bot as a channel admin
Why it's wrong: Without admin permissions (specifically "Post Messages"), the bot cannot send anything to your channel, and you'll see silent failures.
How to avoid: Always go to Channel Settings → Administrators → Add Administrator, select your bot, and enable the "Post Messages" permission.
Mistake 2: Reposting full articles instead of summaries
Why it's wrong: Many RSS feeds include complete article HTML. Posting the full text creates excessively long messages that Telegram may truncate or that annoy readers.
How to avoid: Use the summary or description field instead of content, and truncate to 300–500 characters with a "Read more" link.
Mistake 3: Ignoring Telegram's rate limits
Why it's wrong: Telegram limits bots to approximately 20 messages per minute to the same chat. If your RSS feed has a backlog of 100 items, the bot will get temporarily blocked.
How to avoid: Add a delay (1–3 seconds) between messages and process backlogs gradually. On first setup, consider skipping existing entries and only posting new ones going forward.
Mistake 4: Using a feed URL that requires authentication
Why it's wrong: Some sites protect their RSS feeds behind logins or paywalls. Your bot will receive empty or error responses.
How to avoid: Test the RSS URL in a browser's incognito/private mode first. If you can't access it without logging in, the bot can't either.
Frequently Asked Questions
Can I repost from multiple RSS feeds to the same channel?
Yes. Most bots and automation platforms support multiple feed subscriptions per channel. Simply repeat the setup process for each feed. Just be mindful of the total posting volume so you don't flood your subscribers.
Will images from the RSS feed appear in Telegram?
It depends on the method. Link previews in Telegram will often pull the article's featured image automatically. However, if you want inline images, you'll need a more advanced setup using the sendPhoto API method and extracting image URLs from the feed's <enclosure> or <media:content> tags.
How quickly do new RSS items appear in my channel?
This varies by tool. @TheFeedReaderBot checks every 30–60 minutes. Zapier's free plan checks every 15 minutes. Self-hosted solutions can check as frequently as every 1–2 minutes, though checking more than once per 5 minutes is rarely necessary.
Can I edit or delete a reposted message after it's sent?
Bots can edit messages they sent using the editMessageText API method, but most RSS-to-Telegram tools do not support this automatically. If an article is updated in the RSS feed, it will typically be treated as a new entry or ignored, depending on how the tool tracks seen items.
Is there a way to schedule RSS reposts for specific times?
Automation platforms like Zapier and Make allow you to add delay or scheduling steps. You can collect new RSS items and batch-send them at a specific time (e.g., 9 AM daily). In n8n, you can use a combination of an RSS trigger, a wait node, and time-based conditions.