23 Commits
1.2 ... 1.2.3

Author SHA1 Message Date
MasterAcnolo
368851b4bb Merge pull request #15 from MasterAcnolo/build-branch
1.2.3
2025-09-25 21:51:13 +02:00
MasterAcnolo
fa2da5712d ReadME Update 2025-09-25 21:48:38 +02:00
MasterAcnolo
7df97d70bb YT-DLP Update + Fix Crash 2025-09-25 21:43:14 +02:00
MasterAcnolo
5c5f595829 Fix Spicy Image 2025-09-21 09:57:47 +02:00
MasterAcnolo
5b659e3d8a ffprobe 2025-09-20 18:22:43 +02:00
MasterAcnolo
1a526777cc FFPROBE 2025-09-20 18:22:07 +02:00
MasterAcnolo
b0d99d4c29 Update project purpose in README-FR.md 2025-09-20 17:59:17 +02:00
MasterAcnolo
c7554475a9 Update README.md 2025-09-20 17:58:53 +02:00
MasterAcnolo
cab177e8a7 Merge pull request #14 from MasterAcnolo/build-branch
Build branch
2025-09-20 17:53:59 +02:00
MasterAcnolo
f7244a69ac ReadME Update 2025-09-20 17:42:15 +02:00
MasterAcnolo
c6ed79ed1d Title Window 2025-09-20 17:41:27 +02:00
MasterAcnolo
00e5358bbb Asar 2025-09-20 17:21:38 +02:00
MasterAcnolo
598c35eb54 Asar 2025-09-20 17:00:33 +02:00
MasterAcnolo
00c74ea6c6 Package Update + Notif Fix Issues#13 2025-09-20 16:51:46 +02:00
MasterAcnolo
0c415c9106 Merge pull request #12 from MasterAcnolo/build-branch
1.2.1
2025-09-17 12:29:53 +02:00
MasterAcnolo
b0495d033d FFMPEG Location 2025-09-17 11:10:48 +02:00
MasterAcnolo
d72cc6e0ca Correct Log Folder Name 2025-09-17 10:32:53 +02:00
MasterAcnolo
b59cb9f57f Fix Server.js Path 2025-09-17 10:30:48 +02:00
MasterAcnolo
af743be5b0 GitIgnore Fix 2025-09-13 16:18:17 +02:00
MasterAcnolo
024d039701 Package Updated for 1.2.1 + ReadME Fix 2025-09-13 15:41:19 +02:00
MasterAcnolo
e9a91656bc Package JSON Updated for 1.2.1 2025-08-31 18:09:16 +02:00
MasterAcnolo
3505606b44 ADD Licence 'discordRPC.js' 2025-08-31 18:04:07 +02:00
MasterAcnolo
815abae0a0 YT-DLP Moove 2025-08-31 16:30:54 +02:00
14 changed files with 861 additions and 450 deletions

8
.gitignore vendored
View File

@@ -1,6 +1,10 @@
/node_modules
/downloads
/dist
/out
/ressources/ffmpeg.exe
/ressources/ffprobe.exe
logs/*.json
logs/*.log
/out
logs/*.log

View File

@@ -2,13 +2,13 @@
<!-- Release -->
![Static Badge](https://img.shields.io/badge/Release-1.2-blue?style=flat&logo=Test)
![Static Badge](https://img.shields.io/badge/Release-1.2.3-blue?style=flat&logo=Test)
<!-- Build (Next Release) -->
![Static Badge](https://img.shields.io/badge/Build-1.2.1--beta-yellow?style=flat&logo=Test)
![Static Badge](https://img.shields.io/badge/Build-1.2.4--beta-yellow?style=flat&logo=Test)
> Ce projet a pour but de permettre le téléchargement de contenu Vidéo/Audio de manière gratuite, open source et libre. Il permettra à terme de choisir
> Ce projet a pour but de permettre le téléchargement de contenu Vidéo/Audio de manière gratuite, open source et libre.
## 🚀 Fonctionnalités

View File

@@ -2,13 +2,13 @@
<!-- Release -->
![Static Badge](https://img.shields.io/badge/Release-1.2-blue?style=flat&logo=Test)
![Static Badge](https://img.shields.io/badge/Release-1.2.3-blue?style=flat&logo=Test)
<!-- Build (Next Release) -->
![Static Badge](https://img.shields.io/badge/Build-1.2.1--beta-yellow?style=flat&logo=Test)
![Static Badge](https://img.shields.io/badge/Build-1.2.4--beta-yellow?style=flat&logo=Test)
> This project aims to enable free, open-source, and unrestricted downloading of Video/Audio content. Eventually, it will allow users to choose
> This project aims to enable free, open-source, and unrestricted downloading of Video/Audio content.
## 🚀 Features

View File

@@ -25,7 +25,7 @@ const { logger, logSessionStart, logSessionEnd, logDir } = require("./server/log
let mainWindow;
// Utilise le vrai dossier de logs défini dans logger.js
const logsFolderPath = logDir;
app.setAppUserModelId("com.masteracnolo.freedomloader"); /* Pour la notif */
/*
Fonction principale qui crée la fenêtre principale de l'application.
Elle évite la création multiple et configure les dimensions et options de la fenêtre.
@@ -40,7 +40,7 @@ async function createWindow() {
}
mainWindow = new BrowserWindow({
title: "Freedom Loader",
title: "Freedom Loader 1.2.3", // A Changer à chaque Version
width: 750,
height: 800,
minWidth: 750,

1229
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "freedom-loader",
"productName": "Freedom Loader",
"version": "1.2.0",
"version": "1.2.3",
"author": "MasterAcnolo",
"description": "Freedom Loader",
"main": "main.js",
@@ -43,11 +43,23 @@
"directories": {
"buildResources": "build"
},
"asar": false,
"asar": true,
"extraResources": [
{
"from": "build/confirm-icon.png",
"to": "confirm-icon.png"
},
{
"from": "ressources/yt-dlp 2025.09.23.exe",
"to": "yt-dlp 2025.09.23.exe"
},
{
"from": "ressources/ffmpeg.exe",
"to": "ffmpeg.exe"
},
{
"from": "ressources/ffprobe.exe",
"to": "ffprobe.exe"
}
],
"win": {

View File

@@ -9,7 +9,7 @@
font-src https://fonts.gstatic.com;
img-src 'self' data: https://i.ytimg.com;
">
<title>Freedom Loader</title>
<title></title>
<!--CSS-->
<link rel="stylesheet" href="styles/styles.css">

View File

@@ -43,8 +43,9 @@ body.spicy {
/* Optionnel: background piments */
body.spicy {
background-image: url('../../assets/images/Spicy.webp');
background-image: url('../../assets/images/spicy.webp');
background-size:contain;
background-position: center;
background-attachment: fixed;
}
background-repeat: no-repeat;
}

Binary file not shown.

View File

@@ -1,6 +1,22 @@
// discordRPC.js
const RPC = require("discord-rpc");
/*
This file is part of Freedom Loader.
Copyright (C) 2025 MasterAcnolo
Freedom Loader is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License.
Freedom Loader is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const RPC = require("discord-rpc");
const clientId = "1410934537051181146";
const rpc = new RPC.Client({ transport: "ipc" });

View File

@@ -22,8 +22,8 @@ const { Notification } = require("electron");
const logger = require("../logger").logger;
// Path vers le fichier exécutable yt-dlp (outil tiers pour le téléchargement)
// const ytDlpPath = path.join(__dirname, '../../yt-dlp.exe');
const ytDlpPath = path.join(__dirname, '../../yt-dlp 2025.08.27.exe');
// const ytDlpPath = path.join(process.resourcesPath, '../../yt-dlp.exe');
const ytDlpPath = path.join(process.resourcesPath, 'yt-dlp 2025.09.23.exe');
router.post("/", (req, res) => {
try {
@@ -84,7 +84,8 @@ router.post("/", (req, res) => {
"--add-metadata", // ajoute les tags (titre, artiste, etc.)
"--concurrent-fragments", "8",// accélère le téléchargement
"--retries", "10", // réessaie jusqu'à 10 fois en cas d'erreur
"--fragment-retries", "10" // réessaie aussi 10 fois chaque fragment
"--fragment-retries", "10" , // réessaie aussi 10 fois chaque fragment
"--ffmpeg-location", path.join(process.resourcesPath, "ffmpeg.exe")
];
// Si l'option audioOnly est activée, on ajoute les flags pour extraction audio en mp3

View File

@@ -24,7 +24,7 @@ const fs = require("fs");
const { logger } = require("../logger"); // On récupère ton logger Winston
// Path absolu vers l'exécutable yt-dlp
const ytDlpPath = path.join(__dirname, '../../yt-dlp 2025.08.27.exe');
const ytDlpPath = path.join(__dirname, '../../ressources/yt-dlp 2025.09.23.exe');
// Vérification que yt-dlp.exe existe bien au lancement du module
if (!fs.existsSync(ytDlpPath)) {

View File

@@ -31,19 +31,19 @@ const app = express(); // Création de linstance Express, notre serveur web
// Définition du dossier par défaut où enregistrer les téléchargements
// On prend le dossier Téléchargements de lutilisateur Windows (USERPROFILE)
const downloadsPath = path.join(process.env.USERPROFILE, "Downloads");
const outputFolder = path.join(downloadsPath, "Freedom Loader Output");
const outputFolder = path.join(downloadsPath, "Freedom Loader");
// Création du dossier de sortie sil nexiste pas déjà
if (!fs.existsSync(outputFolder)) {
try {
fs.mkdirSync(outputFolder, { recursive: true }); // création récursive au cas où
logger.info("Dossier Freedom Loader Output cree dans Telechargements.");
logger.info("Dossier Freedom Loader cree dans Telechargements.");
} catch (err) {
logger.error("Impossible de creer le dossier :", err);
process.exit(1); // Arrêt du programme si dossier non créé (critique)
}
} else {
logger.info("Dossier Freedom Loader Output deja existant.");
logger.info("Dossier Freedom Loader deja existant.");
}
// On rend ce dossier accessible globalement via app.locals pour lutiliser dans les routes