核心功能
本技能基于 Pyrogram/Telethon MTProto 客户端,实现对 Telegram 公开/私密频道的深度读取能力。核心命令包括:
- `tg-reader-check`:离线预检,验证凭证、会话文件及后端安装状态
- `tg-reader info`:获取频道元数据(标题、描述、订阅数)
- `tg-reader fetch`:抓取帖子,支持
--since时间窗口、--comments评论抓取、--text-only过滤、--output文件输出等 - `tg-reader auth`:首次认证生成会话文件
未读追踪模式(read_unread)是显著亮点:自动记录已读位置,后续仅返回新帖,适合日报/监控场景。状态持久化存储,支持 --all 覆盖。
显著优点
1. 双后端兼容:Pyrofork(默认,适配 2026 年新 TL schema)与 Telethon 可选,会话格式互通
2. 评论完整抓取:支持讨论组评论,包含评论数、用户名、时间戳
3. 智能输出:--output 模式将大数据写入文件,stdout 仅返回确认信息,显著节省 token
4. 健壮的错误体系:error_type + action 结构化返回,便于自动化决策(如 flood_wait 自动重试 ≤60s)
5. 周期性任务友好:支持 cron 集成,提供 main(推荐)与 isolated 两种运行模式
潜在局限
- 凭证门槛高:需用户手动从 my.telegram.org 获取
api_id/api_hash,流程繁琐 - 会话文件安全:
.session文件即账户全权凭证,泄露风险极高 - 评论非实时:仅抓取现有评论,不支持实时推送;评论中的媒体不分析
- 环境依赖重:Python 依赖多(pyrofork/tgcrypto/telethon),Linux 需 venv 隔离
- 隔离模式不稳定:Docker 内会话可能因环境变化被 Telegram 注销(
AUTH_KEY_UNREGISTERED)
适合人群
- 需要监控 Telegram 信源的研究者、记者、分析师
- 运营多频道内容聚合的社区管理员
- 构建 Telegram 数据管道的开发者(配合
--output+ cron) - 对 MTProto 有一定认知,能接受手动配置的技术用户
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 账户安全 | 会话文件泄露 = 账户完全失控 | 设 `chmod 600`,禁 git 提交,定期轮换 |
| 速率限制 | Telegram FloodWait 可能触发 | 内置 ≤60s 自动重试,超限时返回结构化错误 |
| 隐私合规 | 抓取公开频道虽合法,存储/分析需合规 | 明确告知用户数据用途,遵守 GDPR/本地法规 |
| 依赖维护 | pyrofork 为社区 fork,上游更新不确定 | 锁定版本,关注 Telegram schema 变更 |
| 配置漂移 | 环境变量与文件配置优先级易混淆 | 优先使用 `~/.tg-reader.json`,避免 `.bashrc` 写敏感值 |