mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ed59fd272 | ||
|
|
4df1cb207f | ||
|
|
d03e3bc7e5 | ||
|
|
df02acb97f | ||
|
|
6ef04700ab | ||
|
|
766694f330 | ||
|
|
93380b2f36 | ||
|
|
8c969d694f | ||
|
|
f2f3d42e8c | ||
|
|
8d8973acfc | ||
|
|
281bff2379 | ||
|
|
e30f54050f | ||
|
|
0ae808c1a0 | ||
|
|
2598573844 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,4 +2,5 @@
|
||||
/downloads
|
||||
/dist
|
||||
logs/*.json
|
||||
logs/*.log
|
||||
/out
|
||||
25
README-EN.md
25
README-EN.md
@@ -1,21 +1,26 @@
|
||||
# Freedom Loader
|
||||
|
||||
<!-- Release -->
|
||||
|
||||

|
||||

|
||||
|
||||
 
|
||||
<!-- Build (Next Release) -->
|
||||
|
||||

|
||||
|
||||
> This project aims to enable free, open-source, and unrestricted downloading of Video/Audio content. Eventually, it will allow users to choose
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
✅ Video Download (MP4)
|
||||
✅ Audio Download (MP3)
|
||||
✅ Detailed Logs (Console + Logs)
|
||||
✅ Automatic Fetch of Information
|
||||
✅ Playlist Download
|
||||
✅ Theme selection
|
||||
✅ Custom output path selection for videos
|
||||
- ✅ Video download (MP4)
|
||||
- ✅ Audio-only download (MP3)
|
||||
- ✅ Full playlist support
|
||||
- ✅ Automatic metadata retrieval (title, duration, etc.)
|
||||
- ✅ Detailed logs: console and rotating files (7 days)
|
||||
- ✅ Custom output path selection with saving
|
||||
- ✅ Multiple graphical themes available for interface customization
|
||||
- ✅ Simple, intuitive, and responsive interface
|
||||
- ✅ Notification system when download finished (Click = Open Output Folder)
|
||||
|
||||
---
|
||||
|
||||
@@ -52,7 +57,7 @@ Try restarting the application, checking the logs, or opening the browser's deve
|
||||
- [ ] Extract / Split video using native chapters
|
||||
- [ ] Parallel downloads
|
||||
- [ ] Skip sponsored parts of videos
|
||||
- [ ] Custom output path selection (default **C:\Users\Username\Downloads** with a **Freedom Loader Output** folder created)
|
||||
- [x] ~~Custom output path selection (default **C:\Users\Username\Downloads** with a **Freedom Loader Output** folder created)~~
|
||||
|
||||
---
|
||||
|
||||
|
||||
25
README.md
25
README.md
@@ -1,21 +1,26 @@
|
||||
# Freedom Loader
|
||||
|
||||
<!-- Release -->
|
||||
|
||||

|
||||

|
||||
|
||||
 
|
||||
<!-- Build (Next Release) -->
|
||||
|
||||

|
||||
|
||||
> 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
|
||||
|
||||
## 🚀 Fonctionnalités
|
||||
|
||||
✅ Téléchargement Vidéo (MP4)
|
||||
✅ Téléchargement Audio (MP3)
|
||||
✅ Logs détaillés (console + fichiers logs)
|
||||
✅ Récupération automatique des informations
|
||||
✅ Téléchargement des playlists
|
||||
✅ Choix de thèmes
|
||||
✅ Choix du chemin de sortie des vidéos personnalisés
|
||||
- ✅ Téléchargement de vidéos (MP4)
|
||||
- ✅ Téléchargement audio uniquement (MP3)
|
||||
- ✅ Support des playlists complètes
|
||||
- ✅ Récupération automatique des métadonnées (titre, durée, etc.)
|
||||
- ✅ Logs détaillés : console et fichiers rotatifs (7 jours)
|
||||
- ✅ Choix du chemin de sortie personnalisé avec sauvegarde
|
||||
- ✅ Plusieurs thèmes graphiques au choix pour personnaliser l’interface
|
||||
- ✅ Interface simple, intuitive
|
||||
- ✅ Notification quand le téléchargement est fini (Click = Ouverture Dossier Output)
|
||||
|
||||
---
|
||||
|
||||
@@ -52,7 +57,7 @@ Essayez de relancer l'application, de consulter les logs ou d'ouvrir la console
|
||||
- [ ] Extraction / découpage de la vidéo via chapitrage natif
|
||||
- [ ] Téléchargements parallèles
|
||||
- [ ] Suppression automatique des parties sponsorisées (skip sponsor)
|
||||
- [ ] Choix personnalisé du chemin de sortie (par défaut **C:\Users\Utilisateur\Downloads**, où un dossier **Freedom Loader Output** sera créé)
|
||||
- [x] ~~Choix personnalisé du chemin de sortie (par défaut **C:\Users\Utilisateur\Downloads**, où un dossier **Freedom Loader Output** sera créé)~~
|
||||
|
||||
---
|
||||
|
||||
|
||||
BIN
build/confirm-icon.png
Normal file
BIN
build/confirm-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.8 KiB |
10
package-lock.json
generated
10
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "freedom-loader",
|
||||
"version": "1.0.2",
|
||||
"version": "1.1.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "freedom-loader",
|
||||
"version": "1.0.2",
|
||||
"version": "1.1.1",
|
||||
"dependencies": {
|
||||
"chalk": "^4.1.2",
|
||||
"debug": "^4.4.1",
|
||||
@@ -2792,9 +2792,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/electron": {
|
||||
"version": "37.1.0",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-37.1.0.tgz",
|
||||
"integrity": "sha512-Fcr3yfAw4oU392waVZSlrFUQx4P+h/k31+PRgkBY9tFx9E/zxzdPQQj0achZlG1HRDusw3ooQB+OXb9PvufdzA==",
|
||||
"version": "37.2.0",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-37.2.0.tgz",
|
||||
"integrity": "sha512-dE6+qeg6SBUVd5d8CD2+GH82kh+gF1v40+hs+U+UOno681NMSGmBtgqwldQRpbvtnQDD7V2M9Cpfr3+Abw7aBg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "freedom-loader",
|
||||
"productName": "Freedom Loader",
|
||||
"version": "1.0.2",
|
||||
"version": "1.1.1",
|
||||
"author": "MasterAcnolo",
|
||||
"description": "Freedom Loader, parce que nous le valons bien",
|
||||
"main": "main.js",
|
||||
@@ -43,6 +43,12 @@
|
||||
"buildResources": "build"
|
||||
},
|
||||
"asar": false,
|
||||
"extraResources": [
|
||||
{
|
||||
"from": "build/confirm-icon.png",
|
||||
"to": "confirm-icon.png"
|
||||
}
|
||||
],
|
||||
"win": {
|
||||
"target": "nsis",
|
||||
"icon": "build/installer-icon.ico"
|
||||
|
||||
@@ -18,11 +18,12 @@ const router = express.Router();
|
||||
const { execFile } = require("child_process");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
|
||||
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.exe');
|
||||
const ytDlpPath = path.join(__dirname, '../../yt-dlp 2025.06.30.exe');
|
||||
|
||||
router.post("/", (req, res) => {
|
||||
try {
|
||||
@@ -144,6 +145,25 @@ router.post("/", (req, res) => {
|
||||
child.on("close", (code) => {
|
||||
logger.info(`yt-dlp terminé avec code de sortie : ${code}`);
|
||||
if (code === 0) {
|
||||
|
||||
const iconPath = path.join(process.resourcesPath, "confirm-icon.png"); // la sécurité pour toutes les machines
|
||||
|
||||
console.log("Icon path pour la notif :", iconPath);
|
||||
|
||||
const notif = new Notification({
|
||||
title: "Freedom Loader",
|
||||
body: "Ton téléchargement est terminé, clique ici pour l'ouvrir.",
|
||||
icon: iconPath,
|
||||
});
|
||||
|
||||
notif.on("click", () => {
|
||||
console.log("Notification cliquée !");
|
||||
//Pour pouvoir ouvrir le dossier de la vidéo
|
||||
const { shell } = require("electron");
|
||||
shell.openPath(requestedOutputFolder);
|
||||
});
|
||||
|
||||
notif.show();
|
||||
res.send("✅ Téléchargement terminé !");
|
||||
} else {
|
||||
res.status(500).send(`❌ yt-dlp a échoué avec le code : ${code}`);
|
||||
|
||||
@@ -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.exe");
|
||||
const ytDlpPath = path.join(__dirname, '../../yt-dlp 2025.06.30.exe');
|
||||
|
||||
// Vérification que yt-dlp.exe existe bien au lancement du module
|
||||
if (!fs.existsSync(ytDlpPath)) {
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user