AI摘要

`tgautodown` 是一款基于 Telegram MTProto 的自动下载工具,可监听指定频道或群组,自动下载视频、音乐、图片、文档、磁力链和笔记至本地。它支持 Web 登录,并提供任务暂停、继续和删除功能。通过 Docker Compose 部署,可将资源按类型分类保存,适合作为私人 Telegram 资源归档器。

tgautodown 是一个基于 Telegram MTProto 的自动下载工具。它不依赖 Bot API,也不需要单独部署 bot-api-server,登录自己的 Telegram 账号后,就可以监听指定频道或群,把收到的视频、音乐、图片、文档、磁力链和笔记自动保存到本地目录。

比较适合的使用场景是:自己建一个私有频道,把需要保存的资源转发进去,然后让 tgautodown 自动下载和分类归档。

主要功能

  • 支持下载视频、音乐、图片、文档。
  • 支持保存文本笔记。
  • 支持磁力链接下载。
  • 支持获取 Telegram 文件原文件名。
  • 支持 Web 页面登录 Telegram。
  • 登录成功后,Web 页面展示正在下载任务的进度,不展示 AppHash、手机号等隐私信息。
  • 每个下载任务会分配一个临时 UID,可在 Telegram 中暂停、继续或删除任务。
  • Docker Compose 支持 ARM64 和 AMD64 架构。

频道参数怎么填

启动参数里的 -names 或 Docker 环境变量 TG_CHANNEL 用来配置监听来源。

公开频道或公开群填写用户名即可,例如:

my_public_channel

私有频道或私有群填写邀请链接里的 +hash。例如邀请链接是:

https://t.me/+AjbQIYhiKlhhNzMx

那么配置为:

+AjbQIYhiKlhhNzMx

注意:这里不是频道 ID。当前版本不支持直接填写频道 ID。

如果账号尚未加入这个私有频道,程序会尝试通过邀请链接自动加入。更稳妥的方式是先用 Telegram 官方客户端登录同一个账号,手动加入频道或群,然后再启动程序。

Docker Compose 启动

先把项目拉到服务器上:

git clone https://github.com/Suk-ldev/tgautodown.git
cd tgautodown

项目里已经提供了 docker-compose.yml,先打开它:

nano docker-compose.yml

你主要需要改这几处:

environment:
  TG_CHANNEL: "+AjbQIYhiKlhhNzMx"
  TG_PROXY: "socks5://192.168.31.2:7891"
  TG_F2A: ""
  TG_RETRYCNT: "10"
ports:
  - "2020:2020"
volumes:
  - "/mnt/sda1/download:/app/download"
  - "/mnt/sda1/data:/app/data"

说明一下:

  • TG_CHANNEL 是监听来源。公开频道填用户名,私有频道填邀请链接里的 +hash
  • TG_PROXY 是 socks5 代理。如果服务器能直接访问 Telegram,就改成 ""
  • TG_F2A 是 Telegram 两步验证密码。没有开启两步验证就留空。
  • TG_RETRYCNT 是下载失败后的重试次数,一般保持 10
  • ports 左边是宿主机端口,右边是容器端口。默认访问 http://服务器IP:2020
  • volumes 左边是服务器目录,右边是容器目录。通常只改左边,例如改成自己的硬盘挂载目录。

完整示例:

services:
  tgautodown:
    image: tgautodown:${TARGETARCH:-arm64}
    build:
      context: .
      dockerfile: Dockerfile
      args:
        TARGETOS: linux
        TARGETARCH: ${TARGETARCH:-arm64}
    platform: linux/${TARGETARCH:-arm64}
    container_name: tgautodown
    restart: unless-stopped
    environment:
      TG_CHANNEL: "+AjbQIYhiKlhhNzMx"
      TG_PROXY: ""
      TG_F2A: ""
      TG_RETRYCNT: "10"
    ports:
      - "2020:2020"
    volumes:
      - "/root/download:/app/download"
      - "/root/data:/app/data"

保存后启动:

docker compose up -d --build

ARM64 机器可以直接构建:

docker compose up -d --build

如果是 AMD64:

TARGETARCH=amd64 docker compose up -d --build

强制重新构建镜像:

docker compose down --rmi local
docker compose build --no-cache --pull
docker compose up -d --force-recreate

首次登录

容器启动后,打开:

http://服务器IP:2020

输入 Telegram API 的 App IDApp Hash 和手机号,等待验证码,然后在页面中提交验证码。登录成功后,页面会进入下载进度视图。

Telegram API ID 和 App Hash 可以在这里申请:

https://core.telegram.org/api/obtaining_api_id

下载目录

资源会按类型保存:

videos      视频
music       音乐
documents   文档
photos      图片
bt          磁力链
note        文本笔记

如果 Docker 中把 /app/download 映射到了宿主机目录,例如 /mnt/sda1/download,那么最终文件会出现在宿主机的对应分类目录里。

暂停、继续和删除下载

任务开始后,程序会在 Telegram 中回复类似这样的提示:

正在下载视频: example.mp4
- UID: 100
- 文件大小: 1.20GB
- 消息ID: 123
- 暂停请输入: 暂停 100
- 删除正在下载视频请输入: 删除 100
- 继续请输入: 继续 100

之后可以在监听频道或群里发送:

暂停 100
继续 100
删除 100

UID 是临时的,下载完成、失败或删除后会释放。

关于 FLOOD_WAIT

如果日志里出现:

FLOOD_WAIT (2452)

意思是 Telegram 限制了这个账号继续请求,需要等待括号中的秒数。比如 2452 秒大约是 40 分 52 秒。

遇到这种情况不要反复重启容器,也不要频繁尝试同一个邀请链接。等限制时间过去后再启动,或者先用 Telegram 官方客户端手动加入频道,再让程序监听。

查看日志

docker compose logs -f --tail=100 tgautodown

如果看到 ready,说明 Telegram 账号已经登录成功。如果看到 private channelpublic channel,说明频道已经被识别并开始监听。

小结

tgautodown 更像一个私人 Telegram 资源归档器:把资源转发到固定频道,它负责下载、分类和保存。配合 Docker 部署到 NAS、软路由或 ARM 小主机上,基本可以做到长期后台运行。

END

本文标题:使用 tgautodown 自动下载 Telegram 频道资源

本文链接:https://imsuk.cn/archives/278/

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

Last modification:April 25, 2026
请用钱砸我