Pith. sign in

REVIEW 4 major objections 6 minor 1 cited by

TelegramScrap: A comprehensive tool for scraping Telegram data

T0 review · 4 major / 6 minor · reviewed 2026-08-11 · deepseek-v4-flash

Pith's one-line read This paper presents TelegramScrap, an open-source Google Colab notebook that extracts messages, comments, and engagement metadata from public Telegram channels into Excel or Parquet, and claims it is a robust, versatile tool for…

desk verdict Useful manual, but the printed code omits the login step, so the tool as described fails before scraping anything. read the letter →

arxiv 2412.16786 v1 pith:JRMVPXRH submitted 2024-12-21 cs.CY

classification cs.CY
keywords TelegramscrapingdatacollectiontoolTelethonGoogleColabcomputationalsocialsciencedisinformationresearchopen-sourcesoftwaremediaanalysis
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This white paper presents TelegramScrap, a three-cell Google Colab notebook that scrapes messages, comments, and metadata from public Telegram channels using the Telethon library. The author's claim is that this is a robust, versatile, and ethical solution for researchers who need structured Telegram data, and the paper supports that claim by cataloguing studies, technical notes, and legal investigations that used the tool. A sympathetic reader would care because the tool is offered as a reusable open-source pipeline that lowers the technical barrier for studying disinformation, political communication, and online communities.

What carries the argument

The load-bearing component is the third cell's asynchronous loop, built on Telethon's TelegramClient, which calls iter_messages to page through each channel's history, filters by date and keyword, and fetches comments with reply_to lookups. Three named helpers -- remove_unsupported_characters, format_time, and print_progress -- clean text, present elapsed and remaining time, and show completion percentage. A running message counter triggers automatic Excel or Parquet backups every 1,000 messages, and the loop exits when the message cap or the Colab session limit is reached.

What would settle it

Run the three cells exactly as printed in a fresh Google Colab session against a small public channel and verify that the downloaded Excel file contains the expected messages, comments, views, shares, and reactions with no errors.

Watch

Extended reading notes

Core claim

The central claim is that TelegramScrap delivers a complete, customizable data-collection pipeline: after a one-time credential setup, users configure channels, a UTC date range, an optional keyword, a message cap, a timeout, and an output format (Excel or Parquet), and the notebook's asynchronous loop captures message text, views, shares, reactions, media presence, and nested comments. The paper states that the tool tracks progress in real time, writes backup files every 1,000 messages, and respects Telegram's terms of service and privacy regulations, and that its open-source release invites adaptation by the academic community.

Load-bearing premise

The load-bearing premise is that the code as printed in Section 3 runs without modification in a Google Colab notebook and successfully authenticates with Telegram's API.

Editorial extensions

If this is right

  • Researchers can reproduce published Telegram-based studies by running the same code, making prior analyses of disinformation and political discourse auditable.
  • The tool's Excel/Parquet outputs, with comments stored as JSON, provide a standard format for longitudinal and cross-corpus comparisons.
  • The documented soft-ban and session-timeout guidance gives practitioners a practical recipe for collecting large volumes without data loss.
  • Because the tool has already supported a parliamentary inquiry and cybercrime investigations, its open-source release extends those capabilities to other jurisdictions.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • The paper's reliance on Google Colab's six-hour sessions implies the same code could run on any always-on server with longer collection windows and fewer batching constraints, a path the author leaves implicit.
  • The demonstrated applications concentrate on Portuguese-language political and conspiracy communities; whether the tool performs equally well on other languages and platform structures is untested in the paper.
  • A natural, testable extension would compare TelegramScrap's output with Telegram's official API for the same channel to quantify completeness and fidelity of comments, reactions, and shares.
Share X Bluesky LinkedIn Reddit HN

Signed reviews

No signed human review yet.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

4 major / 6 minor

Summary. The paper describes TelegramScrap, an open-source tool for scraping messages, metadata, and comments from Telegram channels and groups using the Telethon library in Google Colab. It provides three code cells for credential setup, parameter configuration, and scraping, and claims that the tool is robust, versatile, and scalable. The paper also lists numerous prior studies and institutional investigations that purportedly used the tool, and concludes with an invitation for adoption in social-science research.

Significance. TelegramScrap addresses a real need in computational social science: a configurable, open-source scraper for Telegram data. The paper's clear step-by-step presentation and the availability of a GitHub repository are strengths, as are the explicit cautions about Colab runtime limits and Telegram API softbans. However, the paper provides no tests, benchmarks, or worked examples, and the code listing as printed contains at least two runtime errors that would prevent it from scraping anything in a fresh Colab session. These issues directly undermine the central claim of robustness and reliability, so the contribution is not yet demonstrated.

major comments (4)
  1. [§3 Table 03 and §2.III] The scraping cell opens `async with TelegramClient(username, api_id, api_hash) as client:` and immediately calls `client.iter_messages(channel, ...)`. In Telethon, the async context manager only connects; it does not authenticate the session. There is no `client.start()`, `sign_in()`, or `code_callback` anywhere in the listing, and the 'Set up your credentials once' step in §3.I does not create a `.session` file. Consequently, in a fresh Colab runtime the first API call will raise `UnauthorizedError` (or `AuthKeyUnregisteredError`), and no messages will be scraped. The claim in §2.III that 'Telegram may request a verification code during the process' has no corresponding code path.
  2. [§3 Table 01 vs Table 03] The first cell imports `from telethon.sync import TelegramClient`, but the third cell uses the client as an asynchronous context manager with `async with` and `async for`. The `telethon.sync` module is intended for synchronous usage; its `iter_messages` returns a synchronous generator, so the `async for` loop in Table 03 will fail at runtime because a synchronous generator is not an async iterator. The paper's note in §2 that Google Colab can 'run async without needing to define them within an async def' does not resolve this inconsistency, because the import itself selects the synchronous API.
  3. [§3 Table 03, `print_progress`] The progress formula `current_progress = t_index/(t_index+message_id) if (t_index+message_id) <= max_t_index else t_index/max_t_index` does not measure progress. `message_id` is a Telegram message identifier, which can be arbitrarily large, so the ratio is not bounded by 1 and is unrelated to the number of messages processed. The else-branch uses `t_index/max_t_index`, but the first branch makes the displayed percentage, estimated total time, and remaining time meaningless. This undermines the advertised 'real-time progress tracking' feature.
  4. [Abstract, §4] The central claims that the tool is 'robust,' 'versatile,' and 'reliable' are not substantiated by any test, benchmark, or reproducible example. The paper lists applications in prior studies and institutional settings, but it does not report a single run of the code, nor does it specify Python versions, Telethon versions, required packages beyond Telethon, or a sample dataset. The omission is load-bearing because a tool paper's central claim is that the code works as described; without a minimal verification, the claims in the abstract cannot be evaluated.
minor comments (6)
  1. [§2] The paper refers to Figure 1, Figure 2, and Figure 3 in §2, but the full text does not display these figures; only captions are present.
  2. [Title] The title contains a typo: 'Acomprehensive' should be 'A comprehensive'.
  3. [Whole paper] The paper is bilingual (English and Portuguese) with duplicated content; this makes the manuscript longer than necessary and may reduce readability for reviewers.
  4. [§5 References] The reference list includes several entries that are not clearly relevant to Telegram scraping (e.g., Aduma & Ntaka on social media and academic performance); the connection to the paper's topic should be clarified.
  5. [§2] Section 2 states that Google Colab 'typically crashes after running this code for around 6 hours and 20 minutes' and that the Telegram API imposes a softban after about 200 channels; these are useful practical caveats, but they are presented as tips rather than as limitations of the tool, which may overstate the 'scalability' claimed in the abstract.
  6. [§3 Table 03] The code's `current_max_id = min(c_index + message.id, max_t_index)` is printed as a count of 'contents' but computes a sum of a channel-specific message ID and a session counter, which has no clear interpretation.

Circularity Check

0 steps flagged · score 2.0 of 10

No derivation-based circularity; minor self-citation in the impact narrative does not affect the tool's self-contained code.

full rationale

The paper contains no equations, fitted parameters, or first-principles derivations, so none of the reduction-by-construction patterns apply. The central claim—that TelegramScrap can scrape Telegram channels/groups and output Excel/Parquet files—is supported by the complete Python code in Section 3 (Tables 01–03), by the step-by-step usage description in Section 2, and by the public GitHub repository. The self-citations appear mainly in Section 1 and Section 5.3 as evidence of the tool's 'impact': the abstract says the paper demonstrates impact through applications in multiple studies, and many of those cited applications are authored or co-authored by the tool's author (Silva & Oliveira 2023; Silva 2023b; Rocha, Silva & Mielli 2024; Silva & Máximo 2024; Silva 2024a–h). This is a weak, self-referential way to support an impact claim, but it is not load-bearing for the core technical claim, which stands on the exhibited code and also on external references (Senado Federal 2023; RedHotCyber 2024). No predicted quantity is equivalent by construction to an input, and no cited result is needed to make the code's basic functionality work. The reader's correctness concern about missing client.start() authentication is a functional bug, not circularity.

Assumptions & free parameters 0 free parameters · 3 assumptions · 0 invented entities

The paper relies on assumptions about Telegram API behavior, Google Colab stability, and code correctness rather than on free parameters or invented entities. The main assumptions are domain-specific and unverified.

assumptions (3)
  • domain assumption Telegram's API allows scraping of 150-200 channels per session before a temporary ban, and this use complies with Telegram's terms of service.
    Stated in Section 2 usage tips and Section 4 ethical claims, but no evidence or legal analysis is provided.
  • domain assumption Google Colab sessions run for approximately 6 hours and 20 minutes, and the code's timeout logic is sufficient to avoid interruption.
    Stated in Section 2 as a usage tip; the paper provides no systematic measurement.
  • domain assumption The code as printed in Section 3 is syntactically valid and runnable in a Google Colab notebook.
    The code listing mixes async and sync patterns and contains a progress formula that may divide by zero, so this assumption is not self-evident.

how reviews work

0 comments
Cite this review

Pith. "Pith review of TelegramScrap: A comprehensive tool for scraping Telegram data." pith.science (2026). https://pith.science/paper/JRMVPXRH

@misc{pith2026241216786,
  author       = {Pith},
  title        = {Pith review of: TelegramScrap: A comprehensive tool for scraping Telegram data},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/JRMVPXRH}},
  note         = {Machine review of arXiv:2412.16786}
}
read the original abstract

[WhitePaper] The TelegramScrap tool provides a robust and versatile solution for extracting and analyzing data from Telegram channels and groups, addressing the increasing demand for efficient methods to study digital ecosystems. This white paper outlines the tool's development, capabilities, and applications in academic and scientific research, including studies on disinformation, political communication, and thematic patterns in online communities. Built with flexibility and user accessibility in mind, the tool allows researchers to customize scraping parameters, handle large datasets, and produce structured outputs in formats such as Excel and Parquet. Its modular architecture, real-time progress tracking, and error-handling mechanisms ensure reliability and scalability for diverse research needs. Emphasizing ethical data collection, the tool aligns with Telegram's terms of service and data privacy regulations, encouraging responsible use. Released under an open-source license, TelegramScrap invites the academic community to explore, adapt, and improve the tool while providing appropriate credit. This paper demonstrates the tool's impact through its application in multiple studies, showcasing its potential to advance computational social science and enhance understanding of digital interactions and societal trends [ Code available on GitHub: https://github.com/ergoncugler/web-scraping-telegram ].

Discussion (0). Continue with ORCID to comment.

Forward citations

Cited by 1 Pith paper

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score. Full citation record

  1. Civil Society in the Loop: Feedback-Driven Adaptation of (L)LM-Assisted Classification in an Open-Source Telegram Monitoring Tool

    cs.HC 2025-07 conditional novelty 4.0 of 10

    A design proposal for an open-source Telegram monitoring tool that lets civil society users correct AI classification labels, with the corrections used to retrain or reprompt the model.

Reference graph

Works this paper leans on

11 extracted references · 10 canonical work pages · cited by 1 Pith paper

  1. [1]

    InformationalCo-optionagainstDemocracy:ComparingBolsonaro’s DiscoursesaboutVotingMachineswiththePublicDebate

    Introduction Telegramhaspositioneditselfasoneofthemostversatilecommunicationplatformsof the digitalage, renownedfor its robustprivacyfeatures,scalability, and diversefunctionalities,suchas encryptedmessaging,publicchannels,andbot integrations.Itsdecentralizedstructurehasmadeitafavoredplatformforfosteringcommunitiesandenablinglarge-scaleinformationdissemin...

  2. [2]

    @”symbol,andthephonenumbermustbeformattedinternationally, forexample,

    Step-by-stepusage Justsomeintroductorytips: ➔ GoogleColabruntimelimit:GoogleColabtypicallycrashesafterrunningthiscodeforaround6 hoursand20minutes(whichis 22,800seconds).Therefore,seta limitwithinthistimeframetoavoidinterruptions.➔ TelegramAPIsoftban:TheTelegramAPIusuallyimposesa 24-hoursoftbanafterscrapingmorethan200channelsorgroups.However, thereseemstob...

  3. [3]

    string"}#@markdown**1.2.**YourTelegramaccountphonenumber(ex:'+5511999999999'):phone= '+5511999999999'#@param{type:

    Code I.Setupyourcredentialsonce Table01.Firstcellapproachesandcode Approachdescription Codedescription It utilizes the Telethon library, arobust tool for programmaticallyinterfacing with Telegram. Users areprompted to input their Telegramusername, phone number, api_id, andapi_hash, which are essentialcredentials generated fromTelegram’s app creation page(...

  4. [4]

    Conclusions The TelegramScraptool proposesa comprehensivesolutionfor extracting,organizing,andanalyzingdatafromTelegramchannelsandgroups,addressingthegrowingdemandfor effectivetoolsto navigatedigitalplatforms.By integratinguser-friendlyfunctionalities,thetoolbridgesthegapbetweenrawdataavailabilityandactionableinsights. [ englishversion/ portuguêsabaixo] I...

  5. [6]

    Authorbiography Ergon Cugler de Moraes Silva has a Master's degree in Public Administration and Government(FGV), a Postgraduate MBAin DataScience&Analytics(USP), aBachelor'sdegreeinPublicPolicyManagement (USP), and is currently pursuing a Postgraduate degree in Data Science for Social andBusiness Analytics at the University of Barcelona. He is associated ...

  6. [7]

    InformationalCo-optionagainstDemocracy:ComparingBolsonaro’s DiscoursesaboutVotingMachineswiththePublicDebate

    Introdução OTelegramposicionou-secomoumadasplataformasdecomunicaçãomaisversáteisdaeradigital,conhecidoporsuasrobustasfuncionalidadesdeprivacidade,escalabilidadeediversasopções,comomensagenscriptografadas,canaispúblicoseintegraçõescombots.Suaestruturadescentralizadatornou-oumaplataformapreferidaparafomentarcomunidadesepossibilitara disseminaçãodeinformaçõe...

  7. [8]

    @”,e o númerodetelefonedeveestarnoformatointernacional,porexemplo,“+5511999999999

    Usopassoapasso Apenasalgumasdicasintrodutórias: [ versãoportuguês/ englishabove] ➔ Limitede tempono GoogleColab:O runtimedo GoogleColabnormalmenteencerraapóscercade6horase20minutos(22.800segundos).Assim,érecomendáveldefinirumlimitedetempodentrodesseintervaloparaevitarinterrupções.➔ SoftbandaAPIdoTelegram:AAPIdoTelegramgeralmenteaplicaumsoftbande24horasapó...

  8. [9]

    string"}#@markdown**1.2.**YourTelegramaccountphonenumber(ex:'+5511999999999'):phone= '+5511999999999'#@param{type:

    Código I.Configuresuascredenciaisumaúnicavez Tabela01.Abordagensdaprimeiracélulaecódigo Abordagem Código Ele utiliza a biblioteca Telethon, umaferramenta robusta para interagirprogramaticamente com o Telegram.Os usuários são solicitados a inserirseu username, número de telefone,api_id e api_hash, credenciaisessenciais geradas na página decriação de aplica...

Show all 11 references
  1. [10]

    Conclusões A ferramentaTelegramScrappropõeumasoluçãoparaa extração,organizaçãoeanálisededadosdecanaise gruposdoTelegram,atendendoàdemandaporferramentasparanavegarporplataformasdigitais.Aointegrarfuncionalidadesintuitivas,aferramentaconectaadisponibilidadededadosbrutosainsights...

  2. [11]

    Ferramenta Silva,ErgonCuglerdeMoraes.(2023a,feb)TelegramScrap:A comprehensivetoolforscraping Telegram data

    Referências5.1. Ferramenta Silva,ErgonCuglerdeMoraes.(2023a,feb)TelegramScrap:A comprehensivetoolforscraping Telegram data. Disponível em:https://github.com/ergoncugler/web-scraping-telegram/. 5.2. Bibliografia Admassie,B.M.,& Melesse,D.Y. (2024).Practiceandchallengesrelatedto...

  3. [12]

    Biografiadoautor ErgonCugler de Moraes Silva possui Mestrado emAdministraçãoPúblicaeGoverno(FGV), MBAem Ciência de Dados e Analytics (USP), Bacharelado em Gestão de Políticas Públicas (USP) eatualmente cursa Pós-Graduação emData Sciencefor Social andBusinessAnalyticsnaUniversi...

Pith tools

Reviewed August 11, 2026 · model on record in the stance chip above.