tglibrary 是一个使用Flask编写的基于 Telegram Bot API 的媒体文件存储解决方案,让您能够轻松上传、管理和分享图片和视频文件,并突破 Telegram 的 20MB 文件大小限制。
前端部分借鉴SkyDependence大佬的前端,大佬的tgDrive也是不错的项目,大家可以自行前往查看
- 🖼️ 支持图片上传和存储
- 🎬 支持视频上传和存储
- 📊 突破 Telegram 20MB 文件大小限制
- 🔗 生成可直接访问的文件链接
- 📂 文件管理功能
- 🔒 安全的私人存储空间
- 💻 简单易用的命令接口
- 🔺 自由开关和设置水印
- 🤖 发送给机器人文件自动生成访问链接
tglibrary 利用 Telegram Bot API 作为后端存储系统,通过以下方式实现功能:
- 文件分片上传 - 对于超过 20MB 的视频文件,tglibrary 会自动将其分割成多个TS进行上传,播放时调用m3u8进行播放
- 元数据管理 - 为每个文件维护详细的元数据记录,便于快速检索
- 直接链接生成 - 为所有上传的媒体文件生成直接可访问的链接
下载存储库中的 tglibrary 二进制文件
在使用 tglibrary 前,您需要创建一个 Telegram Bot 并获取 API Token。
- 在 Telegram 中与 @BotFather 聊天创建新的 Bot
- 获取 API Token
- 在 Telegram 中与 @get_myidbot 聊天获取你的 CHAT_ID
- 程序自动创建默认配置,请进入管理后台自行更改相关配置
默认密码为:admin
docker pull sulong/tglibrary:latest
docker run -d -p 5000:5000 --name tglibrary sulong/tglibrary:latestDocker部署不是很熟悉,如果你遇到问题有相关的解决方案,欢迎及时lssuse,谢谢!
由于本次打包未包含jpeg-dev和ffmpeg依赖,请自行安装或使用Dokcer版本!!
# 安装依赖
apt install libjpeg-turbo-dev ffmpeg
# 运行tglibrary
./tglibrary您可以将 tglibrary 设置为系统服务,使其在后台持续运行。以下是使用 systemd 配置的方法:
- 创建服务文件:
sudo nano /etc/systemd/system/tglibrary.service- 添加以下内容:
[Unit]
Description=Telegram Library Media Storage
After=network.target
[Service]
Type=simple
User=YOUR_USERNAME
WorkingDirectory=/path/to/tglibrary
ExecStart=/path/to/tglibrary
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=tglibrary
[Install]
WantedBy=multi-user.target- 启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable tglibrary
sudo systemctl start tglibrary- 检查服务状态:
sudo systemctl status tglibrary# 启动服务
sudo systemctl start tglibrary
# 停止服务
sudo systemctl stop tglibrary
# 重启服务
sudo systemctl restart tglibrary
# 查看日志
sudo journalctl -u tglibrary -f- 确保 tglibrary 具有执行权限:
chmod +x /path/to/tglibrary - 首次运行请根据你获取的
API Token和CHAT_ID进入后台自行配置相关信息 - 系统服务运行时将使用配置文件中指定的存储路径
Nginx
server {
listen 80;
server_name your-domain.com;
# 设置最大上传文件大小为100MB
client_max_body_size 100M;
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}如果您觉得本项目对您有帮助,欢迎:
- ⭐ 给项目点个 Star
- 🔄 分享给更多的朋友
- 🐛 提交 Issue
- 您的支持是项目持续发展的动力!


