ericvlog / note

6 stars 1 forks source link

一个好用的 Telegram 文件批量上传/下载工具 · Dejavu's Blog #60

Open ericvlog opened 5 months ago

ericvlog commented 5 months ago

一个好用的 Telegram 文件批量上传/下载工具 · Dejavu's Blog

↓跳到主要内容

Dejavu’s Blog

  1. Dejavu's Blog/
  2. 所有文章/
  3. 一个好用的 Telegram 文件批量上传/下载工具/

一个好用的 Telegram 文件批量上传/下载工具

2021 年 07 月 21 日·2775 字·约 6 分钟

程序部署 Telegram Python Workflow

本文目录

前言 #

平时为了满足自己的“松鼠癖”在服务器上部署了一些文件下载/同步服务如:Aria2 ProqBittorrent EnhancedResilio Sync 等。服务器/VPS 上远程下载好了,如果想要把文件分享给 Telegram 联系人,又不想不通过服务器直链分享文件,就需要手动下载文件再上传到 Telegram;另一种情况就是 Telegram 上收的一些文件需要上传到 OneDrive 进行归档,这样在平时的使用中就会增加不少时间和流量成本。

不久前我发现一个 Python 写的开源项目 telegram-upload 可以很方便的在服务器/VPS 和 Telegram 之间进行文件的上传和下载操作(上传 OneDrive 下回再讲)

个人文件管理方案

特性 #

telegram-upload 使用个人 Telegram 账户上传和下载文件,单个文件最大支持 2GB(Telegram Bot 限制 50MB)| 文档(英文)

telegram-upload

安装 #

安装 Python 和 Pip #

服务器需要 安装 Python,下面我将以 Debian 10 下 Python3 安装 telegram-upload 为例,其他操作系统详见 Python 安装指南

Tips: Python2 已经过时,建议安装使用 Python3

复制```

Debian 刷新软件源 sudo apt-get update # 安装 Python3 sudo apt-get install python3 # 安装 Pip3 sudo apt-get install python3-pip # 安装完成后验证一下版本 python3 -V pip3 -V # 类似下面输出就代表没问题了 root@debian:~# python3 -V Python 3.7.3 root@debian:~# pip3 -V pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)


### 安装 ffmpeg(可选) [#](#%e5%ae%89%e8%a3%85-ffmpeg%e5%8f%af%e9%80%89)

如果你需要上传视频文件的话,需要确保安装 ffmpeg,否则会导致上传的视频无法在线播放或者显示缩略图

复制```
# 对于 Debian/Ubuntu,使用下面命令安装 ffmpeg sudo apt-get update && sudo apt-get install ffmpeg # 检查 ffmpeg 安装 ffmpeg -version 

安装 telegram-upload #

安装稳定版

稳定版是推荐的版本,默认情况下会默认安装最新的稳定版 telegram-upload

复制``` sudo pip3 install -U telegram-upload


**指定版本号**

使用以下命令从 [Pypi](https://pypi.org/) 安装已发布的其他版本,`<version>` 是具体版本号

复制```
pip install telegram-upload==<version> 

从 GitHub 仓库安装

已经安装有 Git 的情况安装,<branch> 是 GitHub 分支名

复制``` pip install git+https://github.com/Nekmo/telegram-upload.git@#egg=telegram_upload


系统没有安装 Git 的情况下安装,`<branch>` 是 GitHub 分支名

复制```
pip install https://github.com/Nekmo/telegram-upload/archive/<branch>.zip 

配置 #

注册 Telegram App #

用 Telegram 注册的手机号登录 My Telegram,登录完成后应该会看到如下几个菜单

Your Telegram Core

进入 API development tools,可以看到下图的界面

Telegram App 设置

App api_idApp api_hash 是等下需要的应用 ID 和应用机密,复制保留备用;App titleShort name 可以随便填,拉到页面底部 Save changes 保存设置

经过和 xiaoxinhuozhu 同学的验证,如果此步骤注册 API 应用过程中出现莫名 Error,很可能是因为国内 +86 手机号被 Telegram 限制,建议使用其他国家的手机号,目前使用 Google Voice 美国 VoIP 手机号没问题

请注意,此页面的应用 ID、机密和密钥等信息非常非常非常重要,千万不要泄露!

生成配置文件 #

随便准备一个小文件,上传到自己 Telegram 的收藏夹:

复制```

telegram-upload [文件路径] telegram-upload /telegram/[ATFMaker]白修女.zip


第一次登录会提示输入 Telegram `手机号` 其他 Telegram 设备收到的 `验证码`

> 注意手机号需要带国际电话区号,美国/加拿大是 +1…

复制```
Please enter your phone: +1********** Please enter the code you received: ***** Signed in successfully as [Telegram Nick Name] 

文件会开始上传,我们可以再终端里看到上传进度,上传完成后,你应该能看到文件在你的 Telegram 收藏夹了 🤠

复制``` xxxxxuser@b1s:~telegram-upload /telegram/[ATFMaker]白修女.zip Uploading "[ATFMaker]白修女.zip" [####################################] 100%


默认情况下我们生成的配置文件路径为 `/root/.config/telegram-upload.json`,该文件包含你的Telegram App 登录的机密信息,请妥善保存,之后的登录就不需要在输入机密信息了

使用 [#](#%e4%bd%bf%e7%94%a8)
---------------------------

现在我们的服务器上 [telegram-upload](https://github.com/Nekmo/telegram-upload) 安装和配置都没问题了,下面根据 [官方文档](https://docs.nekmo.org/telegram-upload/usage.html) 介绍一下它的用法,这里主要分为 Telegram 上传和 Telegram 下载两部分

### Telegram 上传 [#](#telegram-%e4%b8%8a%e4%bc%a0)

默认情况下,使用 Telegram 个人账户上传一个或多个文件到你的 `收藏夹`,单个文件最大限制 2GB,用法:

复制```
telegram-upload [选项] [文件路径] 

[选项]

Telegram 下载 #

下载聊天中的所有最新消息,默认情况下从收藏夹(保存的消息) 下载,建议将要下载的文件转发到 收藏夹(保存的消息) 并使用参数 --delete-on-success,下载完成后转发的消息将自动从聊天中删除,例如下载队列,用法:

复制``` telegram-upload [选项]


*   `-f`, `--from` `<from_>`

    手机号码、用户名、频道/群组 ID 或者 收藏夹(保存的消息),默认为 `收藏夹`

*   `--config` `<config>`

    要使用的 Telegram App 配置文件路径,默认为 `/root/.config/telegram-upload.json`

*   `-d`, `--delete-on-success`

    下载成功后删除电报信息,用于创建下载队列

*   `-p`, `--proxy` `<proxy>`

    对于一些无法连接 Telegram(如中国)使用代理,支持 `http`、`sock4`、`sock5`、`mtproxy` 等代理类型,具体使用见后文

### 代理 [#](#%e4%bb%a3%e7%90%86)

`mtproxy` 和 `sock4` 代理可直接在 `-p` 或者 `--proxy` 参数后使用,对于 `http` 或 `sock5` 代理需要安装 `pysocks`

复制```
pip install pysocks 

mtproxy 代理

复制``` mtproxy://secret>@<address:


**其他代理**

复制```
<protocol>://[<username>:<passwd>@]<address>:<port> 

比如

复制```

http 类型 http://username:passwd@1.2.3.4:1987 # socks4 类型 socks4://username:passwd@1.2.3.4:1980 # socks5 类型 socks5://username:passwd@1.2.3.4:1980


上传文件的过程指定代理使用参数 `-p` 或者 `--proxy` 加上代理格式

复制```
telegram-upload image1.jpg --proxy mtproxy://secret@proxy.my.site:443 telegram-upload image2.jpg --proxy http://username:passwd@1.2.3.4:1987 telegram-upload image3.jpg --proxy socks4://username:passwd@1.2.3.4:1980 telegram-upload image4.jpg --proxy socks5://username:passwd@1.2.3.4:1980 

环境变量

除了设置代理参数你还可以使用环境变量,就可以不用每次都指定代理了,可以在终端定义环境变量以定义一下代理之一:TELEGRAM_UPLOAD_PROXYHTTPS_PROXYHTTP_PROXY

复制```

导入环境变量代理 export HTTPS_PROXY=socks5://username:passwd@1.2.3.4:1980 # 然后可以直接上传文件无需再设置代理 telegram-upload image.jpg # 如果需要禁用代理 export TELEGRAM_UPLOAD_PROXY= export HTTPS_PROXY= export HTTP_PROXY=


注意:代理参数 `-p` 或者 `--proxy` 比环境变量指定的代理拥有更高的优先级,环境变量 `TELEGRAM_UPLOAD_PROXY` 优先级高于 `HTTPS_PROXY` 并且它优先于 `HTTP_PROXY`

防止任务中断 [#](#%e9%98%b2%e6%ad%a2%e4%bb%bb%e5%8a%a1%e4%b8%ad%e6%96%ad)
-------------------------------------------------------------------

telegram-upload 在终端里执行,如果终端断开,其进程就可能中断,因此在 Linux 下我们需要使用 screen 命令来让进程在后台执行会话

对于 Debian/Ubuntu 安装 screen

复制```
sudo apt-get update sudo apt-get install screen 

在安装好 screen 后,可以使用 screen 会话让我们的上传操作在后台进行且不会因为 SSH 断开而终止了

复制```

新建一个名为 tg 的 screen 会话(注意大小写) screen -S tg # 然后在里面执行我们的 telegram-upload 命令,比如: telegram-upload /telegram/xxx.zip # 按Ctrl+A,再按"D"键,保留会话在 SSH 断开后继续执行 # 未来需要恢复名为 tg 的会话 screen -r tg # 任务完成,需要关闭 tg 这个会话 exit



![](https://blog.dejavu.moe/img/avatar_hu153f535f3685d84c2248f9e3bcb0c932_112544_192x192_fill_q75_h2_box_center_2.webp)

作者

Dejavu Moe

Not for success, just for growing.

* * *

[←→ Clash for Windows 优雅地使用 TUN 模式接管系统流量 2021 年 07 月 14 日](/posts/cfw-tun/) [Windows Terminal+PowerShell 7 打造 Windows 下最好用的终端 2021 年 07 月 27 日 →←](/posts/windows-terminal/)

* * *

表情图片预览

发送

1 条评论

*   最新
*   最热
*   最早
*   作者

关闭评论

通知中心

![](https://weavatar.com/avatar/3a8a50ec47e2d9a03734146606f6d6ca?d=mp&s=240)

xm 2023-09-17 佐治亚亚特兰大Edge 116Windows 10

window能也能用吗,准备用来备份资料

赞同 (0)反对 (0)回复折叠已审置顶编辑删除

Powered By [Artalk](https://artalk.js.org "Artalk v2.5.5")

加载更多

[↑](#the-top "回到顶部")

*   [版权声明](/copyright/ "版权声明")
*   [隐私政策](/privacy/ "隐私政策")
*   [网站地图](/sitemap.xml)
*   [运行状态](https://uptime.dejavu.moe/status/monitor)

全站约 142,319 字 / 相当于写完了一本《狂人日记》  
© 2023 [Dejavu Moe](/)

Built with [Hugo](https://gohugo.io/) & [Congo](https://git.io/hugo-congo)

▲

x▼