Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 73ae0ad083 | |||
| 5ed6e84a14 | |||
| ed45cd8d73 | |||
| f393b99cb5 | |||
| 6638600ffa | |||
| 4d5cae3b0c |
@@ -1 +1,4 @@
|
||||
VITE_APP_TDID=
|
||||
VITE_APP_SENTRY_DSN=
|
||||
|
||||
NODE_ENV=development
|
||||
|
||||
@@ -1 +1,4 @@
|
||||
VITE_APP_TDID=
|
||||
VITE_APP_SENTRY_DSN=
|
||||
|
||||
NODE_ENV=production
|
||||
|
||||
@@ -1,32 +1,39 @@
|
||||
# media-downloader
|
||||
m3u8 视频在线提取工具 流媒体下载 m3u8下载 桌面客户端 windows mac
|
||||
|
||||
# 功能简介
|
||||
|
||||
m3u8 视频在线提取工具 流媒体下载 m3u8下载 桌面客户端 windows mac。
|
||||
可以直接在线获取 m3u8 链接地址,无需使用使用网络抓包,无需安装浏览器插件,可以直接带出请求标头……
|
||||
|
||||
# 下载链接
|
||||
# 上手指南
|
||||
以下指南将帮助你在本地机器上安装和运行该项目,进行开发和测试。关于如何将该项目部署到在线环境,请参考部署小节。
|
||||
|
||||
# 安装要求
|
||||
运行代码需要 node 和 yarn,node需要在官网下载安装,yarn可以通过`npm i -g yarn`安装。
|
||||
|
||||
# 运行代码
|
||||
|
||||
开发环境 `yarn run watch`
|
||||
|
||||
打包运行 `yarn run publish`
|
||||
|
||||
# 下载链接
|
||||
- [v1.1.3 windows](https://github.com/caorushizi/m3u8-downloader/releases/download/1.1.3/media-downloader-setup-1.1.3.exe)
|
||||
- [v1.0.3 windows](http://static.ziying.site/media-downloader-1.0.3%20Setup.exe)
|
||||
- [v1.0.2 windows](http://static.ziying.site/media-downloader-1.0.2%20Setup.exe)
|
||||
- [v1.0.1 windows](http://static.ziying.site/media-downloader-1.0.1%20Setup.exe)
|
||||
- [v1.0.0 windows](http://static.ziying.site/media-downloader-1.0.0%20Setup.exe)
|
||||
|
||||
# 更新日志 2021.04.18
|
||||
1. 新增视频批量下载功能;
|
||||
2. 添加收藏功能;
|
||||
3. 更新了界面样式;
|
||||
|
||||
# 软件截图
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
# 技术栈
|
||||
- vite https://cn.vitejs.dev
|
||||
- antd https://ant.design
|
||||
- electron https://www.electronjs.org
|
||||
|
||||

|
||||
# 鸣谢
|
||||
N_m3u8DL-CLI 来自于 https://github.com/nilaoda/N_m3u8DL-CLI
|
||||
|
||||
# 使用 Vite & esBuild 构建
|
||||
mediago 来自于 https://github.com/caorushizi/mediago
|
||||
|
||||

|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "media-downloader",
|
||||
"version": "1.1.3",
|
||||
"version": "1.1.4",
|
||||
"description": "在线视频下载",
|
||||
"author": "caorushizi",
|
||||
"main": "dist/main/index.js",
|
||||
|
||||
+10
-5
@@ -1,14 +1,19 @@
|
||||
const { build } = require("vite");
|
||||
const fs = require("fs");
|
||||
const { resolve } = require("path");
|
||||
|
||||
const { build } = require("vite");
|
||||
const rimraf = require("rimraf");
|
||||
|
||||
rimraf.sync(resolve(__dirname, "../dist"));
|
||||
|
||||
const { parsed } = require("dotenv").config({
|
||||
path: resolve(__dirname, `../.env.${process.env.NODE_ENV}.local`),
|
||||
});
|
||||
let envPath = resolve(__dirname, `../.env.${process.env.NODE_ENV}.local`);
|
||||
if (!fs.existsSync(envPath)) {
|
||||
envPath = resolve(__dirname, `../.env.${process.env.NODE_ENV}`);
|
||||
}
|
||||
|
||||
const mainDefined = Object.keys(parsed).reduce((prev, cur) => {
|
||||
const { parsed } = require("dotenv").config({ path: envPath });
|
||||
|
||||
const mainDefined = Object.keys(parsed || {}).reduce((prev, cur) => {
|
||||
prev[`process.env.${[cur]}`] = JSON.stringify(parsed[cur]);
|
||||
return prev;
|
||||
}, {});
|
||||
|
||||
+11
-7
@@ -1,17 +1,21 @@
|
||||
const fs = require("fs");
|
||||
const { resolve, join } = require("path");
|
||||
const { spawn } = require("child_process");
|
||||
|
||||
const { createServer } = require("vite");
|
||||
const chalk = require("chalk");
|
||||
const { resolve } = require("path");
|
||||
const electron = require("electron");
|
||||
const reactRefresh = require("@vitejs/plugin-react-refresh");
|
||||
const path = require("path");
|
||||
const { spawn } = require("child_process");
|
||||
|
||||
let electronProcess = null;
|
||||
let manualRestart = false;
|
||||
|
||||
require("dotenv").config({
|
||||
path: resolve(__dirname, `../.env.${process.env.NODE_ENV}.local`),
|
||||
});
|
||||
let envPath = resolve(__dirname, `../.env.${process.env.NODE_ENV}.local`);
|
||||
if (!fs.existsSync(envPath)) {
|
||||
envPath = resolve(__dirname, `../.env.${process.env.NODE_ENV}`);
|
||||
}
|
||||
|
||||
require("dotenv").config({ path: envPath });
|
||||
|
||||
function startMain() {
|
||||
return require("esbuild").build({
|
||||
@@ -82,7 +86,7 @@ function startRenderer() {
|
||||
}
|
||||
|
||||
function startElectron() {
|
||||
let args = ["--inspect=5858", path.join(__dirname, "../dist/main/index.js")];
|
||||
let args = ["--inspect=5858", join(__dirname, "../dist/main/index.js")];
|
||||
|
||||
electronProcess = spawn(String(electron), args);
|
||||
|
||||
|
||||
+8
-6
@@ -12,12 +12,14 @@ import handleUpdater from "main/helper/handleUpdater";
|
||||
|
||||
Sentry.init({ dsn: process.env.VITE_APP_SENTRY_DSN });
|
||||
|
||||
crashReporter.start({
|
||||
companyName: author,
|
||||
productName: name,
|
||||
ignoreSystemCrashHandler: true,
|
||||
submitURL: process.env.VITE_APP_SENTRY_DSN,
|
||||
});
|
||||
if (process.env.VITE_APP_SENTRY_DSN) {
|
||||
crashReporter.start({
|
||||
companyName: author,
|
||||
productName: name,
|
||||
ignoreSystemCrashHandler: true,
|
||||
submitURL: process.env.VITE_APP_SENTRY_DSN,
|
||||
});
|
||||
}
|
||||
|
||||
if (require("electron-squirrel-startup")) {
|
||||
app.quit();
|
||||
|
||||
Reference in New Issue
Block a user