tdl

iyearAGPL-3.0活跃维护

用 Go 写的 Telegram 工具箱,能批量下载频道和群组里的文件、图片与视频,也支持导出消息记录,适合做资源备份和归档。

📥 A Telegram toolkit written in Golang

v0.20.4发布于 2026-08-23 18:25 UTC8,256star +7 / 7 天834fork同步于 2026-11-10 17:32 UTC

怎么上手

由 README 提炼,执行前请确认
README 未给出安装命令,请参考官方文档 https://docs.iyear.me/tdl/
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Go 写的 Telegram 命令行工具箱,单文件启动,能高速下载、上传和导出消息

用 Go 写的 Telegram 工具箱,能批量下载频道和群组里的文件、图片与视频,也支持导出消息记录,适合做资源备份和归档。

核心能力

  • 从受保护的聊天中下载文件
  • 转发消息并支持自动回退与消息路由
  • 上传文件到 Telegram
  • 把消息、成员和订阅者导出为 JSON
  • 单文件启动且资源占用低

容易踩的坑

README 未说明具体依赖与配置细节,使用前需查阅官方文档;下载速度取决于是否为 Telegram Premium 账号

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.20.4
  1. v0.20.4最新正式版2026-08-23 · 2026-08-23 18:25 UTC

    Changelog

    Bug fixes

    • fba05bbc736e57924a77d522722f4bd78d6b4ce9: fix(deps): bump go-m1cpu from v0.1.6 to v0.2.2 (#1319) (@lenny-ts)
    • 8e20006a31778130738674bebbd921084cc23ad1: fix(dl): prevent concurrent map read/write race (#1328) (@lenny-ts)

    Others

    • caed78ce14c09dad8c9da2261f76d5b787a2141e: chore(deps): bump actions/checkout from 6 to 7 (#1283) (@dependabot[bot])
    • 2a9089df985ad73bb68e5821d2a7cb2b8bc0f998: chore(deps): bump actions/setup-go from 6 to 7 (#1313) (@dependabot[bot])
    • 5d28d828b3f20d2bd60d35bf5208c86d589f3fc4: chore(deps): bump dawidd6/action-homebrew-bump-formula from 7 to 8 (#1292) (@dependabot[bot])
    • 0be7c03ca1829bd486f9841b52136e231e2b0d80: chore(deps): bump docker/login-action from 4 to 4.5.2 (#1330) (@dependabot[bot])
    • 20c4ea07f8186856f249277dea07ddefffbedd05: chore(deps): bump github.com/gabriel-vasile/mimetype (#1322) (@dependabot[bot])
    • a1affc154bb5f335eb637b17b6f8327bf207c215: chore(deps): bump github.com/go-faster/errors from 0.7.1 to 0.8.0 (#1324) (@dependabot[bot])
    • 67f67e1b58d3054cd28768cbb3fffa4641778c2d: chore(deps): bump github.com/go-playground/validator/v10 (#1247) (@dependabot[bot])
    • 082bb96ff0649a4dce5d5c99efad01ca75445c86: chore(deps): bump github.com/klauspost/compress from 1.18.6 to 1.19.2 (#1332) (@dependabot[bot])
    • b93035e736e5bbcfcba8c037e8a9ad4a0615a604: chore(deps): bump github.com/mattn/go-runewidth from 0.0.23 to 0.0.28 (#1339) (@dependabot[bot])
    • a13e7b02292b623fcfe9e1c4dc78e029d3011980: chore(deps): bump github.com/onsi/ginkgo/v2 from 2.29.0 to 2.32.1 (#1334) (@dependabot[bot])
    • 97baadb63b286f1fd6069fbbf324cc7f277dddbb: chore(deps): bump github.com/onsi/gomega from 1.41.0 to 1.42.1 (#1289) (@dependabot[bot])
    • 79f0b8f2b3b4f63ffefa4ca3cb3bd750f8b6d176: chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.1 (#1338) (@dependabot[bot])
    • 32ce63db4e934f7579db7b7b6955dd94c52b17dd: chore(deps): bump golang.org/x/net from 0.55.0 to 0.58.0 (#1335) (@dependabot[bot])
    • 47f580deba539de69814568874b0a66aa3bf0af5: chore(deps): bump tdl/core to v0.20.4 (@iyear)
    • 9d7d49eef2bcb04da720c26e33598c49c68b9ddd: chore(deps): bump tdl/extension to v0.20.4 (@iyear)
    • 27e1150c9280921d24e3b91dd0c51d76e75a28b7: use curl if wget isnt installed (#1282) (@max-programming)
  2. v0.20.32026-05-23 · 2026-05-23 15:34 UTC
    查看更新说明

    Changelog

    New Features

    • 99ed82f803708da3d198afc7b0fe0c3cbb60077b: feat(cmd): add flag to disable progress ps info (#1241) (@iyear)

    Others

    • 6d1b069d2e526272e1ee5c258a29324a0f72b234: chore(deps): bump actions/configure-pages from 5 to 6 (#1205) (@dependabot[bot])
    • 6e9f21afff4f997b90f77d95b7fcbd7da6823822: chore(deps): bump actions/upload-pages-artifact from 4 to 5 (#1218) (@dependabot[bot])
    • d4c59b1e33c759989b3ce5b5c5ad2c39a0a532dc: chore(deps): bump github.com/go-playground/validator/v10 (#1206) (@dependabot[bot])
    • 6ae0b1f9ef413b823a13d265d97be38966beffe3: chore(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6 (#1226) (@dependabot[bot])
    • a6793f891290f59ab54c92a1cc4e73efaa048027: chore(deps): bump github.com/mattn/go-runewidth from 0.0.21 to 0.0.23 (#1214) (@dependabot[bot])
    • fbbff8d31d2c0265edc0593bc28e2fb63243f5f7: chore(deps): bump github.com/onsi/ginkgo/v2 from 2.28.1 to 2.29.0 (#1236) (@dependabot[bot])
    • 4672d49f3033b993d77a064264536971c7d35e36: chore(deps): bump github.com/onsi/gomega from 1.39.1 to 1.41.0 (#1235) (@dependabot[bot])
    • 5d67267cf011a094b7af7e079f7f7b437a4d1e2e: chore(deps): bump github.com/tidwall/gjson from 1.18.0 to 1.19.0 (#1231) (@dependabot[bot])
    • c761bf03f641dbc462c494e630f589553d69f852: chore(deps): bump go.opentelemetry.io/otel in /core (#1240) (@dependabot[bot])
    • e3ecdada01354c45cb034e3506b36763498cc1eb: chore(deps): bump go.opentelemetry.io/otel in /extension (#1219) (@dependabot[bot])
    • 6fc46030b8846e35b47b85873b4c6fbd0a04e48f: chore(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0 (#1221) (@dependabot[bot])
    • 9af70d8d76be06ffbef95562b43bf88047c00e58: chore(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0 in /core (#1222) (@dependabot[bot])
    • a98b4555763cb4abd47d7f5637b10c7fd1307684: chore(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0 in /extension (#1223) (@dependabot[bot])
    • a2096bc321206d0059797ffab759f5b92e36daad: chore(deps): bump golang.org/x/net from 0.53.0 to 0.55.0 (#1238) (@dependabot[bot])
    • 9359aa28ed7b423a9350f61e87ec38d7030e1e9c: chore(deps): bump tdl submodules to v0.20.3 (@iyear)
    • 29431d94f0771b6bc1c31c0856f243d0b9667b87: chore(deps): bump tdl/core to v0.20.3 (@iyear)
  3. v0.20.22026-03-28 · 2026-03-28 08:47 UTC
    查看更新说明

    Changelog

    Others

    • 37fe18b673af92f915c3b5e80db75b4ae54cdc5c: chore(ci): disable e2e test due to instability (#1203) (@iyear)
    • 4139ba4435b64c1c62d5706d554e05e90cfefb93: chore(deps): bump actions/deploy-pages from 4 to 5 (#1202) (@dependabot[bot])
    • 3608ad38f8ff4b3a4b2e173a55cd511a945ae11c: chore(deps): bump docker/build-push-action from 6 to 7 (#1166) (@dependabot[bot])
    • 8c786fb2ce6dc036da361577759e50576253bb7d: chore(deps): bump docker/login-action from 3 to 4 (#1162) (@dependabot[bot])
    • 7fd61bd81f06f9e356bf49c760e2db0f2cb0e880: chore(deps): bump docker/metadata-action from 5 to 6 (#1167) (@dependabot[bot])
    • 14d2f55e1d84e809778434753b8f47b4136f6687: chore(deps): bump docker/setup-buildx-action from 3 to 4 (#1164) (@dependabot[bot])
    • c0451c389838f2c32f819220b0628e9815f9ee63: chore(deps): bump docker/setup-qemu-action from 3 to 4 (#1163) (@dependabot[bot])
    • 4b200a3fef15d2a025ae1f1bc0dbfbe28d230442: chore(deps): bump github.com/beevik/ntp from 1.4.3 to 1.5.0 (#1138) (@dependabot[bot])
    • 094c2d4b85dd790ca6e00647ef2677d4e0ef6ec8: chore(deps): bump github.com/expr-lang/expr from 1.17.5 to 1.17.7 (#1133) (@dependabot[bot])
    • 13362e85aa3b47d2775b80695db95cc27b16bea3: chore(deps): bump github.com/expr-lang/expr from 1.17.7 to 1.17.8 (#1170) (@dependabot[bot])
    • 9ba804d558674f84efd460540c7fc8d20996b455: chore(deps): bump github.com/fatih/color from 1.18.0 to 1.19.0 (#1198) (@dependabot[bot])
    • 446f9db8f0188f9a92b490a63f8601aa6d6f7d15: chore(deps): bump github.com/gabriel-vasile/mimetype (#1130) (@dependabot[bot])
    • 3c9b2f15a32b92b7394762e64de8bf6994dc3395: chore(deps): bump github.com/gabriel-vasile/mimetype (#1175) (@dependabot[bot])
    • 78cef7c0929af6b12560d2d22e0bf99dc5bf5937: chore(deps): bump github.com/gabriel-vasile/mimetype in /core (#1132) (@dependabot[bot])
    • 586122802ff977109f78cef2f6b25b6c0757a9f2: chore(deps): bump github.com/gabriel-vasile/mimetype in /core (#1179) (@dependabot[bot])
    • a59fa2470413d75df80bfeb9899a991eecbacbcb: chore(deps): bump github.com/go-playground/validator/v10 (#1174) (@dependabot[bot])
    • 01c7ef4a4617cd7d64f45ec9f8def786022336a3: chore(deps): bump github.com/go-viper/mapstructure/v2 (#1173) (@dependabot[bot])
    • 816f4d69b5d098e98ae1286f0c6ff17daf31e291: chore(deps): bump github.com/klauspost/compress from 1.18.0 to 1.18.2 (#1129) (@dependabot[bot])
    • 8300fb76b6dcdad99f9d694e6f60b0f47d0b31d1: chore(deps): bump github.com/klauspost/compress from 1.18.2 to 1.18.4 (#1168) (@dependabot[bot])
    • 8964e919b98bb19024b54eb259485eee225cd154: chore(deps): bump github.com/klauspost/compress from 1.18.4 to 1.18.5 (#1200) (@dependabot[bot])
    • bc73393766cc992f4910f49c10ad55299c05015c: chore(deps): bump github.com/mattn/go-runewidth from 0.0.19 to 0.0.20 (#1172) (@dependabot[bot])
    • 90f05451dcdf9c39f35677a399471a7cddd80609: chore(deps): bump github.com/mattn/go-runewidth from 0.0.20 to 0.0.21 (#1186) (@dependabot[bot])
    • 7c1b61b0a6f1b43e0b5772061741a1dedb41f5b0: chore(deps): bump github.com/onsi/ginkgo/v2 from 2.25.1 to 2.28.1 (#1178) (@dependabot[bot])
    • 950dab5708b86c50bcc725ff35fadcbe6efd80fa: chore(deps): bump github.com/onsi/gomega from 1.38.2 to 1.39.1 (#1176) (@dependabot[bot])
    • 00e3afe7cc27ec273300c387d3109b875167e819: chore(deps): bump github.com/samber/lo from 1.52.0 to 1.53.0 in /core (#1181) (@dependabot[bot])
    • fce78c1b7c86a0353cf9fd8634902bc6d6d472ad: chore(deps): bump github.com/spf13/viper from 1.20.1 to 1.21.0 (#1131) (@dependabot[bot])
    • 0651febf81fe0dbab5ea06addb304a50b7d87678: chore(deps): bump go.uber.org/zap from 1.27.0 to 1.27.1 (#1139) (@dependabot[bot])
    • 4ab3ffa74e11df21fdc4a2b18fe8f6f3bb85849a: chore(deps): bump go.uber.org/zap from 1.27.0 to 1.27.1 in /core (#1142) (@dependabot[bot])
    • b7e7509ea1a92a9c200a51d8159caa9ce6c159f6: chore(deps): bump go.uber.org/zap from 1.27.0 to 1.27.1 in /extension (#1143) (@dependabot[bot])
    • fdfd15a430bafb4e82a74c3752dff1ebe956bc2b: chore(deps): bump golang.org/x/crypto from 0.39.0 to 0.45.0 in /core (#1126) (@depend
  4. v0.20.12025-12-14 · 2025-12-14 16:41 UTC
    查看更新说明

    Changelog

    Bug fixes

    • b7551a421c688e0e3d51573359bea76535b598b4: fix: prevent index out of range panic in chat ls command (issue #1112) (#1115) (@L9Lenny)
    • 33d3785221922b2df5348768041537120ecc2b3c: Fix/handle deleted messages (#1114) (@L9Lenny)

    Others

    • 742da1b2f01988f1df89481e623b1f67fbf0acee: chore(deps): bump all tdl submodules to v0.20.1 (@iyear)
    • 8d1eeab84e3e81add976e45a98b4b44bab8f61fe: chore(deps): bump dawidd6/action-homebrew-bump-formula from 6 to 7 (#1110) (@dependabot[bot])
    • a48a6694d8471a9dc112f435b4cf631eed704cf5: chore(deps): bump github.com/go-faster/jx from 1.1.0 to 1.2.0 (#1121) (@dependabot[bot])
    • c6292d6b9975be0c70d5b577d3ea9df2bd6ac300: chore(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 (#1122) (@dependabot[bot])
    • b035aaa3b3a7b1bbf94dfddeb2536ac31bcaba54: chore(gowork): sync work sum (@iyear)
  5. v0.20.02025-11-23 · 2025-11-23 12:03 UTC
    查看更新说明

    Changelog

    New Features

    • fde3857805e2c64a6d0b78b510862739b73f76a2: RE: feat(upload): support --include flag (#650) (@XMLHexagram)
    • 1b6139ab42138a7baf78561b63325fac10cad5ce: feat(up): rewrite custom caption (#1089) (@iyear)
    • d3b716a6f7e4e710131bbdd73dc9154c06ea7c3a: feat(upload): add support on upload to topic (#559) (@XMLHexagram)
    • fe1d251441ccd74489b1d60e262587a3c43e8696: feat(upload): support custom file’s caption by Expr (#565) (@XMLHexagram)
    • 0de5f4d989c8f523b673e46a1a5681b622f9d56e: feat: handle all unsupported media type properly (#1069) (@XMLHexagram)

    Bug fixes

    • 9a4066e8f8df83a6c5474d464f6938bf2ee13385: fix(dl): skip unsupported media (#1090) (@iyear)
    • 8facee23ed3432c554423de3a8f84028058cdeff: fix: Implement fallback for fetching dialogs in batches (#1077) (@EzekialSA)

    Documentation updates

    • 52e646365cf8ca63a2554fbbbbd52a6118a7d789: docs(up): upload to topic (#1104) (@iyear)

    Refactoring

    • d2b7609aec4144bc39fe910ca8a5ba9c9dd827dd: refactor(dl): redesign grouped message dl logic (#1064) (@XMLHexagram)

    Others

    • 10ae878eeaa9c59690e0e81a66dd3f439ca64874: chore(CODEOWNERS): add @XMLHexagram to code/doc files (@iyear)
    • 83c8be5afc2973c77e9b2c84296cc86f12c013ac: chore(ci): upgrade golangci-lint (#1070) (@XMLHexagram)
    • d7649c9bdc5e58cd226476dcfc5f82687970099c: chore(deps): bump actions/checkout from 5 to 6 (#1099) (@dependabot[bot])
    • f63bdc496e248a9ad749bb075b6139f743bf39ad: chore(deps): bump all tdl submodules to v0.20.0 (@iyear)
    • 344ac3eda0762665197b6d391153cddd8644a20e: chore(deps): bump dawidd6/action-homebrew-bump-formula from 5 to 6 (#1098) (@dependabot[bot])
    • dccf2db008cf10f826873c957c12f2805059ac36: chore(deps): bump github.com/gabriel-vasile/mimetype from 1.4.8 to 1.4.11 in /core (#1066) (@dependabot[bot])
    • fb78e49367e011c27c346d878f1cb1d0c97231c1: chore(deps): bump github.com/mattn/go-runewidth from 0.0.16 to 0.0.19 (#1086) (@dependabot[bot])
    • a58293128e9420df00e69df2f5d60e0609616834: chore(deps): bump github.com/spf13/cobra from 1.9.1 to 1.10.1 (#1047) (@dependabot[bot])
    • 389d5b4b998e8711ae2dbe93a59cc27bd21565ed: chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#1049) (@dependabot[bot])
    • 65d44e7171a9f6b895e8ac0ab2bda6678dab5837: chore(deps): bump golangci/golangci-lint-action from 8 to 9 (#1083) (@dependabot[bot])
    • 483c42c7b17f97389b98657bee2f2895b35ef130: chore(deps): bump stefanzweifel/git-auto-commit-action from 6 to 7 (#1059) (@dependabot[bot])
    • 3d240db2862c5e6fc8eef2c685997fa787893bf7: chore(gitignore): add DS Store (@iyear)
    • e06746fbfd36581c6ac9b33035b93acd03d95b12: chore(goreleaser): add prev tag env (@iyear)
    • 6c2f1dc92d560802c3d9fb822dbcf503f3894e58: chore(gowork): tidy work sum (@iyear)
    • 93c849ce446a8f4981355c947f18fc3297494b8d: fix(ls/topic): Check for non-empty messages before accessing lastMsg (#1067) (@EzekialSA)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    tdl

    📥 Telegram Downloader, but more than a downloader

    English | 简体中文

    Features:
    • Single file start-up
    • Low resource usage
    • Take up all your bandwidth
    • Faster than official clients
    • Download files from (protected) chats
    • Forward messages with automatic fallback and message routing
    • Upload files to Telegram
    • Export messages/members/subscribers to JSON

    Preview

    It reaches my proxy's speed limit, and the speed depends on whether you are a premium

    Documentation

    Please refer to the documentation.

    Sponsors

    Contributors

    LICENSE

    AGPL-3.0 License