telegram_media_downloader
“
一个用于下载 Telegram 聊天、频道或机器人中媒体文件的工具。它支持多种运行方式,包括作为机器人运行或一次性下载工具。
警告⚠️,这玩意,国内是不让玩的哦!
Github
https://github.com/tangyoha/telegram_media_downloader
功能特点
- 机器人运行
:通过机器人下发命令(如
下载或转发)。 - 一次性下载工具
:直接运行脚本下载指定内容。
- Web 界面
:运行后访问
localhost:5000,支持远程配置(需设置web_host)。 - 机器人界面
:通过配置
bot_token使用机器人进行操作。
-
音频、文档、照片、视频、video_note、语音等。
-
提供了版本更新计划,例如 v2.2.0。
安装方法
*对于nix 系统(如 Linux、macOS)
gitclonehttps://github.com/tangyoha/telegram_media_downloader.git
cdtelegram_media_downloader
make install
gitclonehttps://github.com/tangyoha/telegram_media_downloader.git
cdtelegram_media_downloader
pip3 install -r requirements.txt
Docker 容器部署
确保安装了docker和docker-compose。
拉取镜像并配置文件:
docker pull tangyoha/telegram_media_downloader:latest
mkdir-p ~/app &&mkdir-p ~/app/log/ &&cd~/app
wget https://raw.githubusercontent.com/tangyoha/telegram_media_downloader/master/docker-compose.yaml -O docker-compose.yaml
wget https://raw.githubusercontent.com/tangyoha/telegram_media_downloader/master/config.yaml -O config.yaml
wget https://raw.githubusercontent.com/tangyoha/telegram_media_downloader/master/data.yaml -O data.yaml
vi config.yaml # 编辑配置文件
启动容器:
docker-compose run --rmtelegram_media_downloader # 第一次前台启动
docker-compose up -d # 后续后台启动
升级:
docker pull tangyoha/telegram_media_downloader:latest
cd~/app
docker-compose down
docker-compose up -d
配置文件
配置文件是项目的核心,以下是主要配置项:
api_hash和
api_id:通过 Telegram API 获取。bot_token:机器人凭证。
chat:指定要下载的聊天/频道 ID。
chat_id:聊天 ID。
last_read_message_id:上次读取的消息 ID。
download_filter:下载过滤器(如按日期过滤)。
media_types:支持的媒体类型(如音频、文档等)。
file_formats:支持的文件格式(如
mp4、pdf等)。save_path:下载文件的保存路径。
file_path_prefix:文件存储路径前缀(如按聊天标题、日期等分类)。
upload_drive:支持将文件上传到云盘。
enable_upload_file:是否启用上传。
remote_dir:云盘目标路径。
upload_adapter:上传适配器(如
rclone或aligo)。before_upload_file_zip:上传前是否压缩文件。
after_upload_file_delete:上传成功后是否删除本地文件。
web_host和
web_port:Web 界面的主机和端口。web_login_secret:Web 界面登录密码。
allowed_user_ids:允许使用机器人的用户 ID。
date_format:日期格式化设置。
enable_download_txt:是否启用下载
.txt文件。
执行脚本
运行脚本后,所有下载的媒体文件将按照配置存储到指定路径:
python3 media_downloader.py
代理支持
支持 socks4、socks5 和 http 代理,配置示例:
proxy:
scheme:socks5
hostname:127.0.0.1
port:1234
username:你的用户名(可选)
password:你的密码(可选)