自动申请API秘钥、多线程、带上传下载进度条的TinyPNG批量云压缩命令行工具
掘金文章:无限制、多线程、带进度条的TinyPNG云压缩工具[Python]
TinyPNG将WebP, PNG and JPEG图片进行智能有损压缩,该压缩对视觉的影响几乎不可见,但是能显著压缩文件体积,以节省空间储存,方便网络传输。
通过邮箱免费申请TinyPNG官方API密钥,可以获得每月500张图片的免费压缩次数(不限文件大小)。
因此,通过API进行图片批量压缩是相对理想的形式,TinyPNG – Developer API
本项目仅供技术研究使用,请勿用于任何商业及非法用途,任何后果作者概不负责!
本项目可自动申请API密钥,以多线程形式批量进行TinyPNG压缩,并附带上传、下载和总体任务的进度条,旨在提供最方便快捷的云压缩功能
本项目实现的功能:
- 通过多个临时邮箱自动申请TinyPNG官方API密钥,以实现无限制使用TinyPNG
- 自动切换不可用密钥(即将达到500次免费压缩的密钥)
- 多线程上传下载图片,加快批量压缩进度
- 可选使用代理上传、下载图片
- 可选递归子文件夹,可通过正则匹配需要压缩的文件名
- 可选通过配置文件批量添加图片文件名、文件夹任务列表
- 可选输出压缩日志到图片输出文件夹目录
- 显示上传、下载和总体任务的进度条
- 为每个压缩后的图片添加压缩标记字节(不影响图片内容),避免重复压缩
- 上传、下载带有超时时间
- 压缩错误自动重试,超出重试次数输出错误文件列表,下次运行时自动重新压缩
方式一:
-
下载本项目文件
-
安装依赖
pip install -r requirements.txt
方式二:
- 下载已编译命令行工具:TinyPNG-Unlimited.exe
-
压缩单文件
path\to\your\python main.py file "path\to\your\image" TinyPNG-Unlimited.exe file "path\to\your\image"
-
压缩单文件夹
path\to\your\python main.py dir "path\to\your\image\dir" TinyPNG-Unlimited.exe dir "path\to\your\image\dir"
-
使用配置文件批量压缩
path\to\your\python main.py tasks "path\to\tasks.json" TinyPNG-Unlimited.exe dir "path\to\tasks.json"
tasks-emample.json:
{ "file_tasks": ["D:\\1.jpg", "D:\\2.jpg"], "dir_tasks": ["D:\\dir1", "D:\\dir2"] }
-
申请API密钥
程序运行时会自动申请密钥,但也可以通过此方式再次申请
path\to\your\python main.py apply 4 TinyPNG-Unlimited.exe apply 4
-
重新排列API密钥顺序
依次请求获取本地储存的API密钥压缩次数,重新排列密钥顺序
path\to\your\python main.py rearrange TinyPNG-Unlimited.exe rearrange
-
更多细节请使用命令行帮助,或者打开项目源码查看
TinyPNG-Unlimited.exe -h TinyPNG-Unlimited.exe file -h TinyPNG-Unlimited.exe dir -h TinyPNG-Unlimited.exe tasks -h TinyPNG-Unlimited.exe apply -h TinyPNG-Unlimited.exe rearrange -h