From 511111f874f0853cd424a1cde3f17ea4645c66b3 Mon Sep 17 00:00:00 2001 From: putyy Date: Thu, 18 Jul 2024 17:28:26 +0800 Subject: [PATCH] =?UTF-8?q?V2.0=E9=87=8D=E7=A3=85=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=8C=E6=89=80=E8=A7=81=E5=8D=B3=E6=89=80=E5=BE=97=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 69 +++--- electron/main/ipc.ts | 38 ++-- electron/main/proxyServer.ts | 362 ++++++++++++++----------------- electron/main/utils.ts | 52 +++-- package.json | 4 +- public/show.webp | Bin 23586 -> 39492 bytes src/components/layout/Footer.vue | 8 +- src/views/About.vue | 4 +- src/views/Index.vue | 71 +++--- 9 files changed, 294 insertions(+), 314 deletions(-) diff --git a/README.md b/README.md index ba5d5f5..046878a 100644 --- a/README.md +++ b/README.md @@ -1,56 +1,45 @@ -# res-downloader -#### 爱享素材下载器 - -💪 支持视频、音频、图片、m3u8等网络资源下载 -📦 支持微信视频号、小程序、抖音、快手、小红书、酷狗音乐、qq音乐等网络资源下载 -🍊 支持设置代理以获取特殊网络下的资源 +# V2.0重磅更新,所见即所得! +## res-downloader(爱享素材下载器) +🖥️ 支持Win10、Win11、Mac +🌐 支持视频、音频、图片、m3u8等网络资源下载 +💪 支持微信视频号、小程序、抖音、快手、小红书、酷狗音乐、qq音乐等网络资源下载 +👼 支持设置代理以获取特殊网络下的资源 ## 软件下载 🆕 [github下载](https://github.com/putyy/res-downloader/releases) 🆕 [蓝奏云下载 密码:9vs5](https://wwjv.lanzoum.com/b04wgtfyb) - -## 二次开发 -> ps: 打包慢的问题可以参考 https://www.putyy.com/articles/87 -```sh -git clone https://github.com/putyy/res-downloader - -cd res-downloader - -yarn install - -yarn run dev - -# 打包mac -yarn run build --universal --mac - -# 打包win -yarn run build --win -``` - ## 使用方法 +> 0. 安装一定要同意安装证书文件,安装一定要同意安装证书文件,安装一定要同意安装证书文件! > 1. 打开本软件 > 2. 软件首页选择要获取的资源类型(默认选中的视频) > 3. 打开要捕获的源, 如:视频号、网页、小程序等等 -> 4. 返回软件首页即可看到要下载的资源 - -## 常见问题 -> 1. 无法拦截获取 -> > 手动检测系统代理是否设置正确 本软件代理地址: 127.0.0.1:8899 -> 2. 关闭软件后无法正常上网 -> > 手动关闭系统代理设置 -> 3. 视频号抓取流程 -> > 将需要下载的视频发给好友或者文件助手 再打开即可拦截,通常会出现解密下载按钮 -> > -> > 大视频可以复制链接通过其他工具加速下载,然后再通过对应的视频操作项进行"视频解密" +> 4. 返回软件首页即可看到资源列表 ## 软件截图 ![](public/show.webp) -## 实现原理 -> 通过代理网络抓包拦截响应,筛选出有用的资源,同fiddler、charles等抓包软件、浏览器F12打开控制也能达到目的,只不过这些软件需要手动进行筛选,对于小白用户上手还是有点难度,所以就有了本项目这样的软件。 +## 常见问题 +下载慢、大视频下载失败 +> 推荐使用如下工具加速下载,视频号可以下载完成后再到对应视频操作项选择 “视频解密(视频号)” 按钮 +>> [Neat Download Manager](https://www.neatdownloadmanager.com/index.php/en/)、[Motrix](https://motrix.app/download)等软件进行下载 + +Win7无法使用 +> 软件不支持,也无计划支持 + +打开本软件,无法正常拦截获取 +> 检查系统代理是否正确设置 代理地址:127.0.0.1 端口:8899 -## 参考项目 +关闭软件后无法正常上网 +> 手动关闭系统代理设置 -- [WeChatVideoDownloader](https://github.com/lecepin/WeChatVideoDownloader) 原项目是react写的,本项目参考原项目用vue3重写了一下,核心逻辑没什么变化,主要是增加了一些新的功能,再次感谢! +打开本软件后无法上网 +> 手动删除安装标识锁文件,之后再打开软件会进行检查证书是否正确安装 +>> MAC: /Users/你的用户名称/.res-downloader@putyy/res-downloader-installed.lock +>> Win: C:\Users\Admin\.res-downloader@putyy/res-downloader-installed.lock +#### 更多问题见: [issues](https://github.com/putyy/res-downloader/issues)、[爱享论坛](https://s.gowas.cn/d/4089-quan-ping-tai-zi-yuan-xia-zai-ruan-jian-zui-xin-ban-v106/171) + +## 免责声明 +本软件用于学习研究使用,若因使用本软件造成的一切法律责任均与本人无关! +``` diff --git a/electron/main/ipc.ts b/electron/main/ipc.ts index e2975ea..ea61bfd 100755 --- a/electron/main/ipc.ts +++ b/electron/main/ipc.ts @@ -5,16 +5,12 @@ import {downloadFile, decodeWxFile, suffix} from './utils' // @ts-ignore import {hexMD5} from '../../src/common/md5' import fs from "fs" -import CryptoJS from 'crypto-js' import {floor} from "lodash" -let getMac = require("getmac").default let win: BrowserWindow let previewWin: BrowserWindow let isStartProxy = false -let aesKey = "as5d45as4d6qe6wqfar6gt4749q6y7w6h34v64tv7t37ty5qwtv6t6qv" - export default function initIPC() { ipcMain.handle('invoke_app_is_init', async (event, arg) => { @@ -67,16 +63,15 @@ export default function initIPC() { return {is_file: res, fileName: `${save_path}/${fileName}.mp4`} }) - ipcMain.handle('invoke_down_file', async (event, {data, save_path, description}) => { - let down_url = data.down_url + ipcMain.handle('invoke_down_file', async (event, {data, save_path}) => { + let down_url = data.url if (!down_url) { return false } - - let fileName = description ? description.replace(/[^a-zA-Z\u4e00-\u9fa5]/g, '') : hexMD5(down_url); + let fileName = data?.description ? data.description.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g, '') : hexMD5(down_url); let save_path_file = `${save_path}/${fileName}` + suffix(data.type) - if (process.platform === 'win32'){ + if (process.platform === 'win32') { save_path_file = `${save_path}\\${fileName}` + suffix(data.type) } @@ -92,20 +87,10 @@ export default function initIPC() { win?.webContents.send('on_down_file_schedule', {schedule: floor(res * 100)}) } ).catch(err => { + // console.log("err:", err) return false }) - }) - - ipcMain.handle('invoke_get_mac', async (event) => { - let mac = getMac() - if (mac === "") { - return "" - } - return CryptoJS.AES.encrypt(mac, CryptoJS.enc.Hex.parse(aesKey), { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 - }).ciphertext.toString() - }) + }); ipcMain.handle('invoke_resources_preview', async (event, {url}) => { if (!url) { @@ -128,6 +113,17 @@ export default function initIPC() { shell.showItemInFolder(save_path) }) + ipcMain.handle('invoke_file_del', (event, {url_sign}) => { + if (url_sign === "all"){ + global.videoList = {} + return + } + if (url_sign) { + delete global.videoList[url_sign] + return + } + }) + ipcMain.handle('invoke_window_restart', (event) => { app.relaunch() app.exit() diff --git a/electron/main/proxyServer.ts b/electron/main/proxyServer.ts index 0d88be3..893b0ed 100755 --- a/electron/main/proxyServer.ts +++ b/electron/main/proxyServer.ts @@ -7,78 +7,35 @@ import * as urlTool from "url" import {toSize} from "./utils" // @ts-ignore import {hexMD5} from '../../src/common/md5' +import pkg from '../../package.json' const hoXy = require('hoxy') const port = 8899 -let videoList = {} +global.videoList = {} if (process.platform === 'win32') { process.env.OPENSSL_BIN = CONFIG.OPEN_SSL_BIN_PATH process.env.OPENSSL_CONF = CONFIG.OPEN_SSL_CNF_PATH } -// setTimeout to allow working in macOS -// in windows: H5ExtTransfer:ok -// in macOS: finderH5ExtTransfer:ok - -const injection_script1 = ` -setTimeout(() => { - let receiver_url = "https://res-downloader.666666.com"; - - function send_response_if_is_video(response) { - if (response == undefined) return; - if (!response["err_msg"].includes("H5ExtTransfer:ok")) return; - let value = JSON.parse(response["jsapi_resp"]["resp_json"]); - if (value["object"] == undefined || value["object"]["object_desc"] == undefined || value["object"]["object_desc"]["media"].length == 0) { - return; - } - let media = value["object"]["object_desc"]["media"][0]; - let description = value["object"]["object_desc"]["description"].trim(); - let video_data = { - "decode_key": media["decode_key"], - "url": media["url"]+media["url_token"], - "size": media["file_size"], - "description": description, - "uploader": value["object"]["nickname"] - }; - fetch(receiver_url, { - method: "POST", - mode: "no-cors", - body: JSON.stringify(video_data), - }).then((resp) => { - // alert(\`video data for \${video_data["description"]} sent!\`); - }); - } - - function wrapper(name,origin) { - return function() { - let cmdName = arguments[0]; - if (arguments.length == 3) { - let original_callback = arguments[2]; - arguments[2] = async function () { - if (arguments.length == 1) { - send_response_if_is_video(arguments[0]); - } - return await original_callback.apply(this, arguments); - } - } else { - } - let result = origin.apply(this,arguments); - return result; - } - } +const resObject = { + url: "", + url_sign: "", + platform: "", + size: "", + type: "video/mp4", + type_str: 'video', + progress_bar: "", + save_path: "", + decode_key: "", + description: "" +} - window.WeixinJSBridge.invoke = wrapper("WeixinJSBridge.invoke", window.WeixinJSBridge.invoke); - window.wvds = true; -}, 200);`; +const vv = hexMD5(pkg.version) + (CONFIG.IS_DEV ? Math.random() :"") -export async function startServer({ - win, - upstreamProxy, - setProxyErrorCallback = f => f, - }) { +export async function startServer({win, upstreamProxy, setProxyErrorCallback = f => f,}) { return new Promise(async (resolve: any, reject) => { try { const proxy = hoXy.createServer({ @@ -94,14 +51,14 @@ export async function startServer({ resolve() }) .catch((err) => { - setProxyErrorCallback(err); - reject('setting proxy err: '+ err.toString()); + setProxyErrorCallback(err) + reject('setting proxy err: ' + err.toString()) }); }) .on('error', err => { - setProxyErrorCallback(err); - reject('proxy service err: ' + err.toString()); - }); + setProxyErrorCallback(err) + reject('proxy service err: ' + err.toString()) + }) proxy.intercept( @@ -113,26 +70,32 @@ export async function startServer({ (req, res) => { res.string = 'ok' res.statusCode = 200 - let url_sign: string = hexMD5(req.json.url) - let urlInfo = urlTool.parse(req.json.url, true) - win?.webContents?.send?.('on_get_queue', { - url_sign: url_sign, - url: req.json.url, - down_url: req.json.url, - high_url: '', - platform: urlInfo.hostname, - size: toSize(req.json.size ?? 0), - type: "video/mp4", - type_str: 'video', - progress_bar: '', - save_path: '', - downing: false, - decode_key: req.json.decode_key, - description: req.json.description, - uploader: '', - }) + try { + if (!req.json?.description || req.json?.media?.length <= 0) { + return + } + const media = req.json?.media[0] + const url_sign: string = hexMD5(media.url) + if (global.videoList.hasOwnProperty(url_sign) === true) { + return + } + const urlInfo = urlTool.parse(media.url, true) + global.videoList[url_sign] = media.url + win.webContents.send('on_get_queue', Object.assign({}, resObject, { + url_sign: url_sign, + url: media.url + media.urlToken, + platform: urlInfo.hostname, + size: media?.fileSize ? toSize(media.fileSize) : 0, + type: "video/mp4", + type_str: 'video', + decode_key: media?.decodeKey ? media?.decodeKey : '', + description: req.json.description, + })) + } catch (e) { + log.log(e.toString()) + } }, - ); + ) proxy.intercept( { @@ -142,10 +105,42 @@ export async function startServer({ }, async (req, res) => { if (req.url.includes('/web/pages/feed') || req.url.includes('/web/pages/home')) { - res.string = res.string.replace('', '\n\n'); - res.statusCode = 200; + res.string = res.string.replaceAll('.js"', '.js?v=' + vv + '"') + res.statusCode = 200 } }, + ) + + proxy.intercept( + { + phase: 'response', + as: 'string', + }, + async (req, res) => { + if (req.url.endsWith('.js?v=' + vv)) { + res.string = res.string.replaceAll('.js"', '.js?v=' + vv + '"'); + } + if (req.url.includes("web/web-finder/res/js/virtual_svg-icons-register.publish")) { + // console.log(res.string.match(/return\s*\{\s*width:([\s\S]*?)scalingInfo:([\s\S]*?)\}/)) +// res.string = res.string.replace( +// /return\s*{\s*width:(.*?)scalingInfo:(.*?)\s*}/, +// `var mediaInfo = {width:$1scalingInfo:$2}; +// console.log("mediaInfo", mediaInfo); +// console.log("this.objectDesc", this.objectDesc); +// return mediaInfo;` +// ) + res.string = res.string.replace(/get\s*media\s*\(\)\s*\{/, ` + get media(){ + if(this.objectDesc){ + fetch("https://res-downloader.666666.com", { + method: "POST", + mode: "no-cors", + body: JSON.stringify(this.objectDesc), + }); + }; + `) + } + } ); proxy.intercept( @@ -153,125 +148,94 @@ export async function startServer({ phase: 'response', }, async (req, res) => { - // 拦截响应 - let ctype = res?._data?.headers?.['content-type'] - let url_sign: string = hexMD5(req.fullUrl()) - let res_url = req.fullUrl() - let urlInfo = urlTool.parse(res_url, true) - switch (ctype) { - case "video/mp4": - case "video/webm": - case "video/ogg": - case "video/x-msvideo": - case "video/mpeg": - case "video/quicktime": - case "video/x-ms-wmv": - case "video/x-flv": - case "video/3gpp": - case "video/x-matroska": - if (videoList.hasOwnProperty(url_sign) === false) { - videoList[url_sign] = req.fullUrl() - let high_url = '' - let down_url = res_url - win?.webContents?.send?.('on_get_queue', { + try { + // 拦截响应 + const ctype = res?._data?.headers?.['content-type'] + const url_sign: string = hexMD5(req.fullUrl()) + const res_url = req.fullUrl() + const urlInfo = urlTool.parse(res_url, true) + switch (ctype) { + case "video/mp4": + case "video/webm": + case "video/ogg": + case "video/x-msvideo": + case "video/mpeg": + case "video/quicktime": + case "video/x-ms-wmv": + case "video/x-flv": + case "video/3gpp": + case "video/x-matroska": + if (global.videoList.hasOwnProperty(url_sign) === false) { + global.videoList[url_sign] = res_url + win.webContents.send('on_get_queue', Object.assign({}, resObject, { + url: res_url, + url_sign: url_sign, + platform: urlInfo.hostname, + size: toSize(res?._data?.headers?.['content-length'] ?? 0), + type: ctype, + type_str: 'video', + })) + } + break; + case "image/png": + case "image/webp": + case "image/jpeg": + case "image/jpg": + case "image/svg+xml": + case "image/gif": + case "image/avif": + case "image/bmp": + case "image/tiff": + case "image/x-icon": + case "image/heic": + case "image/vnd.adobe.photoshop": + win.webContents.send('on_get_queue', Object.assign({}, resObject, { + url: res_url, url_sign: url_sign, - url: down_url, - down_url: down_url, - high_url: high_url, platform: urlInfo.hostname, - size: toSize(res?._data?.headers?.['content-length'] ?? 0), + size: res?._data?.headers?.['content-length'] ? toSize(res?._data?.headers?.['content-length']) : 0, type: ctype, - type_str: 'video', - progress_bar: '', - save_path: '', - downing: false, - decode_key: '', - description: '', - uploader: '', - }) - } - break; - case "image/png": - case "image/webp": - case "image/jpeg": - case "image/jpg": - case "image/svg+xml": - case "image/gif": - case "image/avif": - case "image/bmp": - case "image/tiff": - case "image/x-icon": - case "image/heic": - case "image/vnd.adobe.photoshop": - win?.webContents?.send?.('on_get_queue', { - url_sign: url_sign, - url: res_url, - down_url: res_url, - high_url: '', - platform: urlInfo.hostname, - size: toSize(res?._data?.headers?.['content-length'] ?? 0), - type: ctype, - type_str: 'image', - progress_bar: '', - save_path: '', - downing: false, - decode_key: '', - description: '', - uploader: '', - }) - break; - case "audio/mpeg": - case "audio/wav": - case "audio/aiff": - case "audio/x-aiff": - case "audio/aac": - case "audio/ogg": - case "audio/flac": - case "audio/midi": - case "audio/x-midi": - case "audio/x-ms-wma": - case "audio/opus": - case "audio/webm": - case "audio/mp4": - win?.webContents?.send?.('on_get_queue', { - url_sign: url_sign, - url: res_url, - down_url: res_url, - high_url: '', - platform: urlInfo.hostname, - size: toSize(res?._data?.headers?.['content-length'] ?? 0), - type: ctype, - type_str: 'audio', - progress_bar: '', - save_path: '', - downing: false, - decode_key: '', - description: '', - uploader: '', - }) - break; - case "application/vnd.apple.mpegurl": - case "application/x-mpegURL": - win.webContents?.send?.('on_get_queue', { - url_sign: url_sign, - url: res_url, - down_url: res_url, - high_url: '', - platform: urlInfo.hostname, - size: toSize(res?._data?.headers?.['content-length'] ?? 0), - type: ctype, - type_str: 'm3u8', - progress_bar: '', - save_path: '', - downing: false, - decode_key: '', - description: '', - uploader: '', - }) - break; + type_str: 'image', + })) + break + case "audio/mpeg": + case "audio/wav": + case "audio/aiff": + case "audio/x-aiff": + case "audio/aac": + case "audio/ogg": + case "audio/flac": + case "audio/midi": + case "audio/x-midi": + case "audio/x-ms-wma": + case "audio/opus": + case "audio/webm": + case "audio/mp4": + win.webContents.send('on_get_queue', Object.assign({}, resObject, { + url: res_url, + url_sign: url_sign, + platform: urlInfo.hostname, + size: res?._data?.headers?.['content-length'] ? toSize(res?._data?.headers?.['content-length']) : 0, + type: ctype, + type_str: 'audio', + })) + break + case "application/vnd.apple.mpegurl": + case "application/x-mpegURL": + win.webContents.send('on_get_queue', Object.assign({}, resObject, { + url: res_url, + url_sign: url_sign, + platform: urlInfo.hostname, + size: res?._data?.headers?.['content-length'] ? toSize(res?._data?.headers?.['content-length']) : 0, + type: ctype, + type_str: 'm3u8', + })) + break + } + } catch (e) { + log.log(e.toString()) } - }, ) } catch (e) { diff --git a/electron/main/utils.ts b/electron/main/utils.ts index 9e0dfbc..632f440 100755 --- a/electron/main/utils.ts +++ b/electron/main/utils.ts @@ -25,13 +25,18 @@ function downloadFile(url, decodeKey, fullFileName, progressCallback) { if (decodeKey) { xorStream = xorTransform(getDecryptionArray(decodeKey)); } - - return axios.get(url, { + let config = { responseType: 'stream', headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36', }, - }).then(({data, headers}) => { + } + + if (url.includes("douyin")){ + config.headers['Referer'] = url + } + + return axios.get(url, config).then(({data, headers}) => { let currentLen = 0 const totalLen = headers['content-length'] @@ -95,25 +100,46 @@ function toSize(size: number) { function suffix(type: string) { switch (type) { case "video/mp4": + case "video/webm": + case "video/ogg": + case "video/x-msvideo": + case "video/mpeg": + case "video/quicktime": + case "video/x-ms-wmv": + case "video/x-flv": + case "video/3gpp": + case "video/x-matroska": return ".mp4"; case "image/png": - return ".png"; case "image/webp": - return ".webp"; + case "image/jpeg": + case "image/jpg": case "image/svg+xml": - return ".svg"; case "image/gif": - return ".gif"; + case "image/avif": + case "image/bmp": + case "image/tiff": + case "image/x-icon": + case "image/heic": + case "image/vnd.adobe.photoshop": + return ".png"; case "audio/mpeg": + case "audio/wav": + case "audio/aiff": + case "audio/x-aiff": + case "audio/aac": + case "audio/ogg": + case "audio/flac": + case "audio/midi": + case "audio/x-midi": + case "audio/x-ms-wma": + case "audio/opus": + case "audio/webm": + case "audio/mp4": return ".mp3"; case "application/vnd.apple.mpegurl": + case "application/x-mpegURL": return ".m3u8"; - case "image/jpeg": - return ".jpeg"; - case "image/jpg": - return ".jpg"; - case "image/avif": - return ".avif"; } return "" } diff --git a/package.json b/package.json index 1d603a7..49ab379 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "res-downloader", - "version": "1.0.6", + "version": "2.0.0", "main": "dist-electron/main/index.js", - "description": "Electron + Vue + Vite 实现的资源下载软件,支持微信视频号下载、抖音视频下载、快手视频下载、酷狗音乐下载等", + "description": "res-downloader(爱享素材下载器),支持视频号、小程序、抖音、快手、小红书、酷狗音乐、qq音乐下载等", "author": "putyy@qq.com", "license": "MIT", "private": true, diff --git a/public/show.webp b/public/show.webp index 7749793e67c0040cdb08dcc93c27e7286c5e2bd1..3e5c320265172a312a656793c2a300adc3e8ba3b 100644 GIT binary patch literal 39492 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 uR3_= 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 literal 23586 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 H^#A|>pF(q{ diff --git a/src/components/layout/Footer.vue b/src/components/layout/Footer.vue index 224ca83..1b0cd8f 100755 --- a/src/components/layout/Footer.vue +++ b/src/components/layout/Footer.vue @@ -24,6 +24,11 @@ const jump = (scene: number)=>{ url: "https://s.gowas.cn/d/4089-quan-ping-tai-zi-yuan-xia-zai-ruan-jian" }) break; + case 5: + ipcRenderer.invoke('invoke_open_default_browser', { + url: "https://www.ais.do/ivi/rr2GaZ" + }) + break; case 6: ipcRenderer.invoke('invoke_open_default_browser', { url: "https://github.com/putyy/res-downloader" @@ -40,7 +45,8 @@ div.line a.item(@click="jump(4)") 问题反馈 div.line a.item 推荐: - a.item(@click="jump(2)") 云盘资源 + a.item(@click="jump(5)") Ai助手(免费) + a.item(@click="jump(2)") 网盘资源 a.item(@click="jump(3)") 图片无损压缩 a.item(@click="jump(6)") 软件源码 diff --git a/src/views/About.vue b/src/views/About.vue index a7e230e..2cd1254 100644 --- a/src/views/About.vue +++ b/src/views/About.vue @@ -47,7 +47,7 @@ const str = "使用方法\n" + @@ -375,15 +373,16 @@ el-container.container } } - .show_res{ + .show_res { width: 100%; height: auto; - .img{ + + .img { max-height: 200px; } } - .actions{ + .actions { display: flex; flex-direction: column; align-items: flex-start;