前言
神器呀!大家都有在电报上有许多视频,想保存下来,以前的电报客户端只能在当前消息进行下载,也不能查看进度,也不敢往下翻消息,生怕下载错误,只能等待着下载完成,而且速度也是固定的,而且客户端只能开着下载。最近客户端更新了,可以不用盯着那一个消息,也可以大致的看下载进度,但客户端也只能开着,速度也是固定的。这个方式不好,博主之前也使用过第三方机器人,通过转发视频给指定机器人,它会帮你下载并转到国外文件储存站点,然后给你一个下载链接,而且可以使用第三方工具,高速下载,很方便,但那毕竟是依靠别人服务器的工具,说不定哪天就不行了,后来我经常用的那几个机器人要么停工了,要么更改了文件储存站点,又因为站点规则限制了文件大小,后来有的机器人只能同时下载一个任务,等等各种问题,随后博主也放弃了。后来又用过网页版电报,通过浏览器下载,用了一两次,速度挺快,后面就不行了,总是错误,这个方法也失效了。总之我想到的招我全试了,最后放弃了。后来我又想电报用户这么多,上面的资源这么多,找这种第三方下载工具不得一抓一大把呀,搜了一大圈,竟然没有一个。也在男人最多的网站github上以teletram为关键词搜索也没有看到有关工具,这我就震惊了,github上竟然没有……电报上的资源看的博主心痒痒,后来就隔一个月左右就在google上搜一下有没有相关工具,经过一年左右的坚持,在又一次的例行搜索中在一个网站中看到了这个东西的介绍,那个网站也只是简单介绍了一下,然后就试着在github看看那个项目的介绍,然后经过几天的折腾终于部署好了。这个可以多任务下载,也可以查看进度,速度也比客户端快,转发消息给它,就可以提交下载任务,无人值守下载。还有这个可以当作一个电报资源远程下载器,比如我们使用客户端,同时下载好几个视频,因为文件太多,下载速度又是恒定的,所以要开着客户端,这样就得等待,中间不敢走开,生怕小孩玩电脑,有了这个东西我们只需要把要下载的视频转发给我们部署的机器人,然后我们关闭客户端,它就可以下载了。神器呀神器!!真神器也!!
官方有两个版本,一个是电脑版,一个是docker版本,我们要兼顾远程下载,所以就选择使用docker方式部署。博主这里以群晖920命令行演示。
官方有教程为什么博主还要出一个教程呢,因为官方教程,是使用的compose文件部署的,有很多小白不懂这个,只能按照他们预定好的命令部署,不会更改,还要参考他的windows部署方式,而博主一开始按照他们的官方教程,也弄了三四天才弄成功,所以博主就按照自己看懂的方式来部署了。
项目地址
创建机器人
首先登陆Telegram官网获取api_id和api_hash。
输入手机号进验证。
然后打开你的电报客户端,找到teletram发送给人的验证码填写并验证。
然后创建应用程序,复制api_id和api_hash并保存后面会用到,应用程序标题和简称随便填。
这里也是随便填。
我们的使用目的就是把要下载的资源发送给机器人,然后机器人就会自动帮我们下载,所以我们还需要添加创建机器人
首先与BotFather对话,输入 /start。
输入 /newbot,它会让你给机器人取个称呼。
然后回复你想要的称呼,随后他会让你给机器人创建一个用户名,用户名以_bot结尾。
我们回复想要的用户名,然后会回复你机器人的api,我们复制保存api。
配置文件
然后我们新建一个config.yaml,然后输入以下内容。
api_hash: 获取的api_hash
api_id: 获取的api_id
bot_token: 获取的机器人api
web_host: 0.0.0.0
#proxy:
#scheme: socks5
#hostname: host ipaddr
#port: port
#username: user
#password: password
file_formats:
audio:
- all
document:
- all
video:
- all
file_path_prefix:
- chat_title
- media_datetime
media_types:
- audio
- photo
- video
- document
- voice
- video_note
# in linux please use /
# save_path: E:\github\telegram_media_downloader
disable_syslog: []
save_path: /app/downloads
language: ZH
默认配置是同时下载任务是5,如果需要更改同时下载任务数,添加配置信息max_download_task: 5,并更改后面的数值 如果你的机器人部署环境无法连接TG服务器,则将#proxy:
取消注释并填写相应对的代理信息。
然后新建一个data.yaml.文件,并输入以下内容。
ids_to_retry: []
验证
首先在群晖SSH里执行以下命令部署容器,config.yaml和data.yaml即为上一步我们创建的配置文件,文件路径替换为你实际要使用的路径。 这一步是获取并创建sessions文件。
docker run -itd --name telegram-media-downloader -v /volume1/docker/telegram_media_downloader/config.yaml:/app/config.yaml -v /volume1/docker/telegram_media_downloader/sessions/:/app/sessions tangyoha/telegram_media_downloader:latest
部署完后我们输入以下命令验证。
docker start -i telegram-media-downloader
然后输入你的手机号加上国家代码,然后按“Y”确认,然后在TG客户端获验证码并输入验证码。
正式部署
然后我们把刚才创建的容器给删除掉,然后参考我的再次创建一个容器,根据你的实际情况创建好对应的文件夹、修改端口映射等操作,说明一下/app/downloads/要映射你的下载目录,注意sessions文件夹、config.yaml、data.yaml要映射对应的位置。
version: "3.3"
services:
telegram_media_downloader:
image: tangyoha/telegram_media_downloader:latest
build: .
container_name:telegram-media-downloader
ports:
# Here is what you need to edit
- "8066:5000"
#environment:
# - http_proxy=http://192.168.101.30:10811
# - https_proxy=http://192.168.101.30:10811
volumes:
# Here is what you need to edit
- /volume1/docker/telegram_media_downloader/config.yaml:/app/config.yaml
- /volume1/docker/telegram_media_downloader/rclone/:$HOME/.config/rclone/
- /volume1/docker/telegram_media_downloader/data.yaml:/app/data.yaml
- /volume1/docker/telegram_media_downloader/log/:/app/log/
- /volume2/BT/telegram/:/app/downloads/
- /volume2/BT/telegram/temp:/app/temp
- /volume1/docker/telegram_media_downloader/sessions:/app/sessions
restart: unless-stopped
我这里使用的是compose文件,但是我没有群晖docker上没有安装compose文件,我是使用的portainer部署的,它可以使用compose文件来部署容器,关于怎么使用参考我另一篇帖子。
然后在打开TG应该就能看到你创建的机器人已经上线了。
最后登陆你的群晖IP+端口即可访问web界面。这个界面就是查看下载进度的,也可以在tG里查看进度。
使用
然后我们在TG客户端把要想下载的资源发送给机器人它就会帮我们下载,会在TG显示下载进度,或者在web界面查看下载进度。