一站式磁力管理工具,支持磁力预览、离线下载到 PikPak、图片管理、标签分类、云备份。
- 部署
page/index.html到 GitHub Pages 或任意静态托管 - 安装下方浏览器扩展
- 页面自动通过扩展桥接 PikPak,无需配置
- 登录 PikPak 即可离线下载
也可以不装扩展独立使用,需自行部署 CORS 代理(见下方)。
- 打开
chrome://extensions→ 开启 开发者模式 - 加载已解压的扩展程序 → 选择本仓库
extension/目录 - 扩展会自动注入到所有网页,安装后在任意网页的磁力链接旁会出现「预览」按钮
扩展功能:磁力嗅探、预览弹窗、图片代理下载、PikPak 内部登录、待导入队列
扩展设置:右键扩展图标 → 选项,可登录 PikPak、管理待导入队列、配置图片白名单。
假设你在论坛、BT 网站看到一部想下载的电影:
- 安装扩展后,页面上的每个磁力链接旁边会自动出现「🔍 预览」按钮
- 点击「🔍 预览」,弹出窗口显示标题、截图、文件大小
- 在弹窗中你可以:
- 💾 保存:保存到磁力管理器
- 📥 离线:直接发送到 PikPak 离线下载
- ⚡ 离线并保存:两者都做
- 弹窗中的标题可以直接点击编辑
- 保存后打开管理器页面,卡片已出现在列表中
没有扩展也能用:复制磁力链接 → 打开管理器页面 → 页面自动检测到剪贴板中的磁力链接并提示导入。
如果你有一批磁力链接(比如从资源帖中复制了十几部电影):
- 点顶部工具栏 ➕ 添加磁力(或菜单中的「批量添加磁力」)
- 粘贴所有磁力链接(每行一个),点击 🔍 解析
- 每个链接显示为一行,包含预览、离线、保存按钮:
- 🔍 预览:查看磁力详情(标题、截图、大小)
- 📥 离线:发送到 PikPak
- 💾 保存:保存到管理器(自动获取标题和截图,无需手动填写)
- ⚡ 离线并保存:两者都做
- 底部还有「全部保存」「全部离线」「全部离线并保存」一键操作
需要先部署 Telegram Bot(见下方「部署 Telegram Bot」),并在页面点 TG 登录。
首次登录:
- 点顶部工具栏 TG 登录 → 选择国家 → 输入手机号
- 输入 Telegram 发送的验证码
- 如果开启了两步验证,输入密码
- 登录成功后状态显示「✅ 已登录」
导入视频:
- 在 Telegram 中找到想下载的视频,复制其 t.me 链接(如
https://t.me/频道名/123) - 页面自动检测到剪贴板中的链接,开始解析
- 解析完成后,该链接对应的卡片出现在列表中:
- 单视频链接 → 生成一张卡片,显示视频标题和截图
- 相册(多条视频) → 合并成一张卡片,显示「🎬 视频×N」
- 点击卡片上的 📥 离线,Bot 会将视频转发到你的 @PikPak_Bot,自动创建离线任务
文件引用过期怎么办:
- Bot 转发时如果文件引用(fileReference)过期,页面会自动重新解析 TG 链接并重试,无需手动操作
- 如果自动重试失败,可以手工点击卡片上的 🔄 更新 按钮,手动刷新元数据后再试
私密频道(禁止转发):
- 如果频道设置了
noforwards,卡片上会显示 🔒 图标 - 点击离线时会自动打开 t.me 链接,你自己在 Telegram 中手动保存
旧卡片迁移(重要):
如果你之前已经用过 Bot 并保存了一些 TG 卡片,建议做一次迁移: 菜单 → 📤 迁移旧卡片元数据 → 将 Bot 中的文件元数据写入卡片自身。 迁移后卡片不再依赖 Bot,清空 Bot 数据也不影响转发,然后再做备份。
打标签:
- 创建标签:菜单 → 🏷️ 管理标签 → 输入标签名 → 添加
- 在卡片上点击 ✏️ 编辑 可以给卡片加标签
- 标签栏中点击标签可以筛选出该标签的所有卡片
- 标签可以拖拽排序,顺序会保持
自动标签(省力):
菜单 → 🤖 自动标签规则 → 添加规则
例如设置规则:"标题包含 4K" → "自动打上 4K 标签"
之后点 ✨ 批量应用规则 即可对所有卡片生效
评分: 卡片底部的星星可以点 1-5 星评分,顶部有评分筛选按钮。
搜索和筛选:
| 方式 | 操作 |
|---|---|
| 🔍 搜索框 | 输入标题或标签名,实时过滤 |
| ⭐ 评分筛选 | 点星星筛选特定评分的卡片 |
| 📋 下拉筛选 | 全部 / 无标签 / 网络图 / 无图片 / 电报卡片 |
| 点击标签 | 快速筛选该标签的卡片 |
进入选择模式(勾选卡片右上角复选框,或 Shift+点击连续多选),底部浮动工具栏出现:
| 按钮 | 用途 |
|---|---|
| 🏷️ 批量添加标签 | 选中的卡片统一加标签 |
| 🔗 批量复制链接 | 一键复制所有磁力链接 |
| 💾 批量存本地 | 将网络图片下载到浏览器(永久有效) |
| 📥 批量离线 | 全部发送到 PikPak(可选文件夹) |
| 🗑 批量删除 | 删除选中卡片 |
| 🔄 重新获取 | 按 TG 链接重新生成卡片(会删除旧的并重新创建) |
| 🔄 更新元数据 | 批量刷新 Telegram 视频文件元数据 |
完整备份(换设备、迁移用):
- 菜单 → 📤 迁移旧卡片元数据(如果有 TG 卡片的话)
- 菜单 → 💾 完整备份(含图片) → 下载 ZIP 包
- 将 ZIP 存到网盘或其他地方
- 恢复时:菜单 → 📂 恢复完整备份 → 选择之前下载的 ZIP
日常增量备份(Google Drive):
- 顶部工具栏 → ☁️ 云端管理 → 按提示授权 Google 账号
- 点「☁️ 上传备份」→ 只上传新增或修改的卡片/图片
- 下次再点「☁️ 上传备份」→ 增量上传,不会重复
| 菜单项 | 功能 |
|---|---|
| ➕ 添加磁力 | 手动输入磁力链接 |
| 📋 从剪贴板导入 | 从复制的 JSON 数据导入 |
| 🏷️ 管理标签 | 创建/删除标签 |
| 🤖 自动标签规则 | 按标题关键词自动打标签 |
| ✨ 批量应用规则 | 对所有卡片执行自动标签规则 |
| 🔍 清理重复项 | 检测并删除重复磁力(支持精确/模糊匹配 / 按电报链接去重) |
| ✂️ 管理标题过滤词 | 自动移除标题中的广告词 |
| 🧹 批量清理标题 | 对所有卡片标题执行过滤词清理 |
| 📦 一键转换所有图片到本地 | 将所有网络图片下载到浏览器本地 |
| 图片下载失败的卡片列表 | |
| 之前预览失败的磁力,可批量重试 | |
| 💾 完整备份(含图片) | 导出 ZIP(含全部图片) |
| 📂 恢复完整备份 | 从 ZIP 恢复数据 |
| 📁 从文件夹导入图片 | 从本地文件夹导入图片到卡片 |
| 💾 导出数据(单文件) | 快速备份元数据(不含图片) |
| 📂 导入数据(单文件) | 从单文件恢复 |
| 📤 迁移旧卡片元数据 | 将 Telegram 卡片元数据写入卡片自身(备份前执行) |
| 🗑️ 重置所有数据 | 清空所有数据 |
侧边栏底部有 🌙 暗色模式切换按钮。
| 按钮 | 功能 |
|---|---|
| ➕ 添加磁力 | 打开批量添加弹窗 |
| 📥 扩展导入 | 从扩展的待导入队列拉取卡片 |
| ⏱ 自动导入 | 定时从扩展队列自动拉取(可设间隔分钟) |
| ☁️ 云端管理 | Google Drive 增量备份/恢复 |
| 🔑 PikPak 登录 | 页面直连 PikPak(无需扩展时用) |
| 登录 Telegram 账号(用于 Bot 转发) | |
| 🔍 测试连通性 | 测试 PikPak 和各服务连通性 |
| 🟢 监视剪贴板 | 自动检测剪贴板中的磁力/TG 链接 |
卡片以网格排列,每张显示:
- 预览图(本地/网络,点击可放大)
- 标题 + 标签徽章(视频/本地/网络)
- 标签(彩色标签条)
- 文件大小
- 磁力链接 / TG 链接(可点击)
- 操作按钮(离线、预览、编辑、存本地、更新、删除等)
- 评分星星
- 上传图片:编辑卡片时点「📁 上传图片」选择本地文件
- 粘贴图片 URL:编辑卡片时直接粘贴网络图片链接
- 网络→本地:点卡片的 💾 存本地 将网络图下载到浏览器(永久有效,不怕图床失效)
- 一键全部转换:菜单 → 📦 一键转换所有图片到本地
- 本地图片:存储在浏览器 IndexedDB 中,备份时随 ZIP 导出
| 方式 | 含图片 | 大小 | 适用场景 |
|---|---|---|---|
| 导出单文件 | ❌ | 小 | 快速备份/迁移元数据 |
| 完整备份 ZIP | ✅ | 大 | 换设备、完整迁移 |
| Google Drive 云备份 | ✅增量 | 中等 | 日常自动备份 |
💡 建议流程:迁移旧卡片 → 完整备份 ZIP → 存网盘。平时用 Google Drive 增量备份。
- Fork 本仓库
- 仓库 Settings → Pages → Source 选 GitHub Actions 或 Deploy from a branch
- 目录选
/page/,部署完成访问https://你的用户名.github.io/仓库名/
cd telegram-bot
npm install复制 .env.example 为 .env,填入:
API_ID=你的API_ID # https://my.telegram.org/apps
API_HASH=你的API_HASH
BOT_TOKEN=你的Bot_Token # @BotFather 创建
BOT_USERNAME=你的Bot用户名
ALLOWED_USER_ID=你的TG用户ID # 可选,限制 Bot 只接受你的命令
TARGET_BOT_USERNAME=@PikPak_Bot
PORT=19876启动:双击 start_bot.bat 或 node telegram-bot/index.js
首次启动需要扫码或手机号登录 Telegram 账号。
Bot API 端点:
| 端点 | 用途 |
|---|---|
POST /api/resolve-tg-link |
解析 t.me 链接,下载图片,创建 pending 卡片 |
POST /api/resolve-tg-file |
轻量解析,仅返回文件元数据(不下图不入队列) |
POST /api/forward-to-pikpak/:fileId |
转发文件到 @PikPak_Bot |
GET /api/pending |
获取待导入卡片列表 |
DELETE /api/pending/:id |
删除指定待导入卡片 |
GET /api/doc-map |
获取全量文件映射(旧卡片迁移用) |
GET /api/doc-map-entry/:docId |
获取单个映射条目 |
POST /api/telethon/send-code |
发送 Telegram 登录验证码 |
POST /api/telethon/sign-in |
验证码登录 |
POST /api/telethon/check-2fa |
检查是否需要两步验证 |
部署后在页面「PikPak 登录」弹窗底部填入代理地址。
node proxy/server.js
# 浏览器打开 http://localhost:3000同源访问,无需任何代理配置。
/
├── page/index.html ← 磁力管理器页面(GitHub Pages 入口)
├── extension/ ← Chrome 扩展
│ ├── manifest.json
│ ├── content.js ← 页面桥接通信
│ ├── background.js ← 后台 Service Worker
│ ├── magnet-detector.js ← 磁力嗅探与预览弹窗
│ ├── options.html / .js ← 扩展设置页
│ └── pikpak-token.js ← PikPak Token 捕获
├── telegram-bot/ ← Telegram Bot(gramjs MTProto)
│ ├── index.js ← Express 服务器 + gramjs 客户端
│ ├── .env.example
│ └── start_bot.bat
├── proxy/ ← CORS 代理
│ ├── server.js ← 本地 Node.js 代理
│ ├── worker.js ← Cloudflare Worker
│ └── start-server.bat
├── api/proxy/index.js ← Vercel Serverless 代理
└── README.md