GitHub |
您所在的位置:网站首页 › idm官网网址 › GitHub |
Internet Download Manager (IDM)下载辅助工具,允许主动拉起IDM进行下载,并配置referer、User-Agent等信息。 安装/卸载绿色命令行程序,只需要写入注册表关联: 下载ef2.exe到任意目录。 双击打开ef2.exe,点击安装按钮即可。如果觉得不好用,需要卸载: 双击打开ef2.exe,点击卸载按钮。 删除ef2.exe即可。ef2.exe最好放到专门的目录,以免移动或丢失,移动后须重新注册。 使用方式 ※ IDM导出文件IDM官方定义了专门的文件格式,拓展名.ef2,用于导入导出下载列表,不过用起来步骤较多且不支持双击打开。本工具不仅支持双击打开ef2文件开始下载并拓展了ef2文件的配置项支持。 ef2文件本质是一个标准的纯文本文件(utf-8编码),展开示例如下: 查看ef2文件示例 < https://img2.example.com/data/1102/94/IMG_0001.jpg referer: https://img2.example.com/data/1102/94/ User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko > < https://img2.example.com/data/1102/94/IMG_0002.jpg referer: https://img2.example.com/data/1102/94/ User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko > < https://img2.example.com/data/1102/94/IMG_0003.jpg referer: https://img2.example.com/data/1102/94/ User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko >除了IDM官方提供referer、User-Agent关键词,本工具还拓展了一些关键词: 查看拓展的关键词 cookies cookies 字符串 postdata 改用POST方法send的字符串 username HTTP认证用户名 password HTTP认证密钥 filepath 保存路径(反斜杠形式) filename 文件名(包括拓展名) 值得注意的是如果ef2文件中有多条下载数据(即批量下载),双击打开将直接添加到IDM默认下载列表,需要到IDM中自己开启队列来开始下载。 ※ ef2协议为了方便从浏览器中拉起IDM,本工具自定义了一种名为ef2的协议,能像使用http协议一样使用,格式如下: 协议头 内容 完整形式 ef2:// d3d3LmV4YW1wbGUuY29t ef2://d3d3LmV4YW1wbGUuY29t http:// www.example.com http://www.example.com不难发现所谓的ef2就是将http协议内容部分用Base64编码一下然后将http协议头改为ef2。 如此一来在浏览器中点击该链接便可以拉起IDM。但我们还需拓展一下,以让这种协议不仅能传递下载链接,还要能传递referer、User-Agent等关键词以支持ef2文件类似的功能。 于是我们将协议内容部分由单纯的网址转变为命令行参数形式(为方便演示暂时未使用Base64编码) www.example.com ----参数化----> -u www.example.com 查看完整参数说明(*含空格等非法字符时请用双引号包裹*) 参数标记 参数内容 说明示例 u URL -u https://img2.example.com/data/1102/94/IMG_0001.jpg r referer -r https://img2.example.com/ a User-Agent -a "Bilibili Freedoooooom/MarkII" c cookies -c cookies字符串 d 改用POST请求send的数据 -d send字符串 U HTTP认证用户名 -U username字符串 P HTTP认证密钥 -P password字符串 o 保存路径(反斜杠) -o F:\下载 s 文件名(含拓展名) -s 视频.mp4 f 禁用下载对话框 -f q 稍后下载(加入默认队列) -q注意别忘了用Base64编码一下然后添加上ef2协议头。 这种ef2协议使用方式基本类似http、ftp等协议,可以直接在浏览器地址栏中输入、添加a标签等href属性并点击、window.open()等方法打开,当然也可以直接作为命令行参数传递给ef2.exe(Base64编码千万别忘记)。 第一次使用本方法浏览器会弹出打开外部程序请求弹窗,需要点击允许,建议勾选不再提示。 ※ webSocket本工具还支持在后台运行,通过websocket协议接受下载数据并传递给IDM。 命令行启动ef2.exe同时传递参数ef2://websocket:${端口号},如ef2://websocket:12345。(不需要Base64加密!) 使用websocket客户端连接ws://localhost:${端口号},如ws://localhost:12345。 使用websocket.send方法发起下载数据,格式可以是ef2协议(需要Base64编码)字符串。 使用websocket.close关闭websocket连接。 如果要退出后台运行,请在websocket.close前使用websocket.send方法发送字符串fin。注意也可以用使用ef2协议的方式使用ef2://websocket:${端口号}(不需要Base64加密)后台运行。 ※ ef2.js本项目自带了一个标准的es6模块ts/js文件,以default方式导出了一个对象,支持生成ef2协议字符串。 以标准es6模块加载方式加载该模块,如const ef2 = (await import("ef2.js")).default。 使用encode()方式返回编码生成ef2协议字符串,const result = ef2.encode({url: "http://www.example.com/"})。 使用生成的ef2协议拉起IDM进行下载,如window.open(result)。1.0.2版本,新添了一个异步方法nativeMessaging,传递端口号可以启动webSocket模式。 具体模块定义在ts文件中有详细说明文档,在VSCode中可以获取详细提示。 编译相关 环境 版本 Windows 11 10.0.22000.1 VSCode 1.63.2 MSVC 19.30.30709 Windows SDK 10.0.22000.0说明: 需要在Developer Command Prompt for VS中启动VSCode,或者手动将MSVC及Windows SDK添加进系统环境变量。 打开main.cpp文件然后f5启用调试,或者运行任务C/C++: cl.exe build直接编译发行版。 任务tsc: build - typescript/tsconfig.json用来编译ef2.ts到js文件,输出目录为dist。 开源许可MIT License 项目中参考其他源码及文章: 项目或文章 开源协议 idm_api 未知 IDMHelper GPL-3.0 License mingw控制台中文乱码 未知 C++实现utf8和gbk编码字符串互相转换 未知 base64 MIT License HeadSocket 未知 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |