telegram-channel

n8n node to scrape public Telegram channel messages via the t.me/s/ web preview (no bot token, no API).

Package Information

Released: 4 mo ago
Downloads: 7 weekly / 141 monthly
Latest Version: 0.1.0
Author: himmel

Documentation

n8n-nodes-telegram-channel

n8n community node that scrapes public Telegram channel messages via the
https://t.me/s/<channel> web preview. No bot token, no API, no login.

Ported from the RayNews-Reader fetcher.py (parse_messages + before=
pagination).

How it works

  1. GET https://t.me/s/<channel> (optionally ?before=<id>)
  2. Parse HTML with cheerio — selector .tgme_widget_message_wrap
  3. Extract per message: id, datetime, text, html, images, videos,
    link_preview_url, link_preview_title
  4. Paginate with before=<oldest id on page> (Telegram returns IDs < before)

The channel must be public (an open t.me/s/ preview).

Parameters

Param Description
Channel Username without @ (e.g. durov)
Return All Paginate through history (off = latest page only)
Max Pages Cap on history pages (port of MAX_HISTORY_PAGES)
Since Message ID Only return id > sinceId (incremental fetch)
Before Start pagination before this ID
Request Timeout (ms) HTTP timeout

Output: one n8n item per message, oldest first.

Build & install

cd n8n-nodes-telegram-channel
npm install
npm run build

# Local test — link into your n8n custom dir
mkdir -p ~/.n8n/custom
npm link
cd ~/.n8n/custom && npm link n8n-nodes-telegram-channel

# Restart n8n. Node appears as "Telegram Channel (Scrape)".

Or publish to npm and install via Settings → Community Nodes with package
name n8n-nodes-telegram-channel.

Notes

  • Scrapes public HTML; subject to Telegram markup changes — selectors live in
    parseMessages().
  • For incremental polling, store the max returned id and feed it back as
    Since Message ID (the workflow holds state, not the node).

Discussion