mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
English
This commit is contained in:
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@@ -6,7 +6,6 @@
|
||||
},
|
||||
"editor.suggestOnTriggerCharacters": false,
|
||||
"editor.parameterHints.enabled": false,
|
||||
"editor.hover.enabled": false,
|
||||
"editor.codeLens": false,
|
||||
"editor.lightbulb.enabled": "off",
|
||||
"editor.inlineSuggest.enabled": false,
|
||||
|
||||
@@ -40,21 +40,21 @@
|
||||
Audio seulement (MP3)
|
||||
</label>
|
||||
<select name="quality">
|
||||
<option value="best">Meilleure qualité</option>
|
||||
<option value="medium">Qualité moyenne</option>
|
||||
<option value="worst">Qualité minimale</option>
|
||||
<option value="best">Best Quality</option>
|
||||
<option value="medium">Medium Quality</option>
|
||||
<option value="worst">Lowest Quality</option>
|
||||
<option value="1080">1080p</option>
|
||||
<option value="720">720p</option>
|
||||
<option value="480">480p</option>
|
||||
</select>
|
||||
|
||||
<button type="submit" onclick="startProgress()">Télécharger</button>
|
||||
<button type="submit" onclick="startProgress()">Download</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="download-path">
|
||||
Sera enregistré dans <span id="savePath"></span>
|
||||
<button id="changePath">Modifier</button>
|
||||
Will be save on <span id="savePath"></span>
|
||||
<button id="changePath">Edit</button>
|
||||
</div>
|
||||
|
||||
<div id="downloadProgressWrapper">
|
||||
|
||||
@@ -4,7 +4,7 @@ const themes = {
|
||||
light: { label: "Clair", subtitle: "Qui aime ce thème ?" },
|
||||
neon: { label: "Néon", subtitle: "How was your day ?"},
|
||||
nf: { label: "NF", subtitle: "You call it music, i call it my Therapist" },
|
||||
songbird: { label: "Songbird", subtitle: "From Her to Eternity" },
|
||||
songbird: { label: "Songbird", subtitle: "From Her to Eternity" },
|
||||
drift: { label: "Drift", subtitle: "Si la route t'appelle, contre appel" },
|
||||
fanatic: { label: "Fanatic", subtitle: "Always Fnatic !" },
|
||||
chirac: { label: "Chirac", subtitle: "J'aime les pommes" },
|
||||
|
||||
@@ -18,11 +18,11 @@ async function fetchVideoInfo(url) {
|
||||
if (!res.ok) return { error: `An Error occured when fetching info` };
|
||||
|
||||
const data = await res.json();
|
||||
if (!data) return { error: "Données manquantes" };
|
||||
if (!data) return { error: "Data is Missing" };
|
||||
|
||||
return data;
|
||||
} catch (e) {
|
||||
return { error: "Erreur réseau ou JSON" };
|
||||
return { error: "Network or JSON Issue" };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,8 +71,8 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
if (data.type === "playlist") {
|
||||
infoDiv.classList.add("playlist-mode");
|
||||
infoDiv.innerHTML = `
|
||||
<h3 style="color:var(--video-info-heading-color);"><strong>Playlist détectée: ${data.title}</strong></h3>
|
||||
<h3 style="color:var(--video-info-heading-color);"><strong>Nombre de vidéos: ${data.count}</strong></h3>
|
||||
<h3 style="color:var(--video-info-heading-color);"><strong>Playlist Detected: ${data.title}</strong></h3>
|
||||
<h3 style="color:var(--video-info-heading-color);"><strong>Video Count: ${data.count}</strong></h3>
|
||||
<p><strong>Channel :</strong> ${data.channel || "Unknown"}</p>
|
||||
<div id="playlistVideos"></div>
|
||||
`;
|
||||
@@ -89,7 +89,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
<div style="margin-bottom:12px;">
|
||||
<img src="${v.thumbnail}" width="160" alt="Thumbnail">
|
||||
<p><strong>${v.title}</strong></p>
|
||||
<p>Durée : ${durationStr}</p>
|
||||
<p>Duration : ${durationStr}</p>
|
||||
<p><a href="${videoUrl}" target="_blank">URL</a>
|
||||
<button class="copy-btn" data-url="${videoUrl}">📋</button>
|
||||
</p>
|
||||
@@ -152,7 +152,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
// ---------- VIDEO NORMALE ----------
|
||||
const durationStr = data.duration
|
||||
? `${Math.floor(data.duration/60)}m ${(data.duration%60).toString().padStart(2,"0")}s`
|
||||
: "Inconnue";
|
||||
: "Unknown";
|
||||
|
||||
const sizeStr = formatSize(data.filesize_approx);
|
||||
const readableDate = formatDate(data.upload_date);
|
||||
@@ -162,15 +162,15 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
<h3>${data.title}</h3>
|
||||
<img src="${data.thumbnail}" width="320" alt="Thumbnail">
|
||||
<ul>
|
||||
<li><strong>Durée :</strong> ${durationStr}</li>
|
||||
<li><strong>Duration :</strong> ${durationStr}</li>
|
||||
<li><strong>Uploader :</strong> ${data.uploader || "Inconnu"}</li>
|
||||
<li><strong>Date d’upload :</strong> ${readableDate}</li>
|
||||
<li><strong>Vues :</strong> ${data.view_count?.toLocaleString() || "?"}</li>
|
||||
<li><strong>Upload Date :</strong> ${readableDate}</li>
|
||||
<li><strong>Views :</strong> ${data.view_count?.toLocaleString() || "?"}</li>
|
||||
<li><strong>Likes :</strong> ${data.like_count?.toLocaleString() || "?"}</li>
|
||||
<li><strong>URL :</strong> <a href="${data.webpage_url}" target="_blank">${data.webpage_url}</a></li>
|
||||
<li><strong>Channel :</strong> <a href="${data.channel_url}" target="_blank">${data.channel_url}</a></li>
|
||||
<li><strong>Taille estimée :</strong> ${sizeStr}</li>
|
||||
<li><strong>Catégories :</strong> ${categories}</li>
|
||||
<li><strong>Estimed Size :</strong> ${sizeStr}</li>
|
||||
<li><strong>Category :</strong> ${categories}</li>
|
||||
</ul>
|
||||
`;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ async function infoController(req, res){
|
||||
logger.info(`/Info Request receive by the Info Controller. URL: ${url}`);
|
||||
|
||||
if (url.includes("?list")) {
|
||||
logger.info("Type de contenu: Playlist")
|
||||
logger.info("Estimated Data Type: Playlist")
|
||||
|
||||
} else{
|
||||
logger.info("Type de contenu: Vidéo")
|
||||
logger.info("Estimated Data Type: Video")
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
@@ -6,7 +6,7 @@ const notify = require("./notify")
|
||||
function getUserBrowser() {
|
||||
const userProfile = os.homedir();
|
||||
|
||||
// Liste des navigateurs supportés par yt-dlp
|
||||
// Liste des navigateurs supportés par yt-dlp (Actuellement je peux que garantir Firefox, Désolé)
|
||||
const browsers = [
|
||||
{ name: "firefox", path: path.join(userProfile, "AppData", "Roaming", "Mozilla", "Firefox", "Profiles") },
|
||||
// { name: "chrome", path: path.join(userProfile, "AppData", "Local", "Google", "Chrome", "User Data", "Default") },
|
||||
|
||||
Reference in New Issue
Block a user