A fast and lightweight tool for collecting Telegram profile details and public messages. Designed to reliably extract clean, structured data from public Telegram channels with minimal overhead.
This Telegram scraper helps researchers, analysts, and developers gather profiles and messages at scale without needing the Telegram app.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for Telegram you've just found your team — Let’s Chat. 👆👆
This project extracts public Telegram profile information and channel messages in a structured and automation-friendly way. It solves the challenge of collecting Telegram data without manual browsing or app access.
It is ideal for analysts, developers, OSINT researchers, and data-driven projects requiring Telegram insights.
- Efficiently gathers both profile metadata and channel posts.
- Handles structured messages including text, replies, and polls.
- Runs quickly while minimizing resource usage.
- Easy to configure with profiles, operation mode, and scrolling duration.
- Designed for reliability with retry and delay controls.
| Feature | Description |
|---|---|
| Profile Extraction | Retrieves username, full name, avatar, follower count, and bio. |
| Message Scraping | Captures text posts, replies, polls, views, timestamps, and links. |
| Flexible Operations | Choose between profile-only or profile+messages for performance control. |
| Scroll-Based Collection | Adjustable scroll time for deeper message retrieval. |
| Robust Request Handling | Optional retry and delay settings for stable long runs. |
| Field Name | Field Description |
|---|---|
| username | The Telegram handle of the profile. |
| fullname | Full display name of the account or channel. |
| avatar_url | Direct URL to the profile image. |
| followers | Number of subscribers/followers. |
| bio | Public biography text. |
| messages | Array of scraped message objects. |
| date | Readable date of each message. |
| fulldate | Full timestamp in ISO format. |
| description | The text content of the message. |
| link | URL to the message. |
| views | Number of views the message received. |
| poll | Poll metadata if present. |
| url | Public preview URL of the account. |
{
"username": "@telegram",
"fullname": "Telegram News",
"avatar_url": "https://cdn1.cdn-telegram.org/file/MEKEz...",
"followers": 6870000,
"bio": "The official Telegram on Telegram. Much recursion. Very Telegram. Wow.",
"messages": [
{
"date": "June 9, 2017",
"fulldate": "2017-06-09T19:02:40+00:00",
"description": "If you lost your stickers for a few minutes...",
"image": "",
"video": "",
"preview": "",
"link": "https://xn--r1a.website/s/telegram/64",
"views": "2.5M",
"reply": "",
"poll": ""
}
],
"url": "https://xn--r1a.website/s/telegram"
}
Telegram/
├── src/
│ ├── runner.py
│ ├── extractors/
│ │ ├── telegram_profile_parser.py
│ │ └── telegram_message_parser.py
│ ├── outputs/
│ │ └── exporters.py
│ └── config/
│ └── settings.example.json
├── data/
│ ├── inputs.sample.txt
│ └── sample.json
├── requirements.txt
└── README.md
- Researchers collect Telegram messages for sentiment or trend analysis to gain better insights into public discussions.
- Journalists monitor public Telegram channels to track announcements and community updates.
- Data engineers automate Telegram data ingestion into analytics pipelines.
- OSINT investigators gather publicly available Telegram information for intelligence workflows.
- Developers integrate Telegram data into dashboards and monitoring tools.
Q: Does this scraper work with private Telegram channels? A: No. Only public channels with a working “Preview Channel” link are supported.
Q: Can it capture images or videos? A: Message metadata is collected, but full media file downloading is not supported in this version.
Q: What determines how many messages are scraped?
A: The scrolltime value controls how long the scraper scrolls through channel history.
Q: How can I prevent rate limits?
A: Use proxies and adjust the delay and retries options for stable, long-duration scraping.
Primary Metric: Processes typical Telegram profiles in under 2 seconds and scrapes up to several hundred messages per minute depending on scroll settings. Reliability Metric: Consistently achieves over 98% success rate on public channels with proper proxy settings. Efficiency Metric: Minimal resource usage due to lightweight request handling and selective content extraction. Quality Metric: High data completeness for text messages, replies, polls, and metadata with consistent JSON-structured output.
