Custom folder and filenames in playlist

pull/84/head
aandrew-me 4 years ago
parent be98b24656
commit 3fd50a3b6b

@ -137,7 +137,8 @@
<br>
<div class="prefBox">
<span>Filename format for playlists</span>
<input type="text" id="filenameFormat" placeholder="yt-dlp format style" value="%(playlist_index)s.%(title)s.%(ext)s">
<input type="text" id="filenameFormat" placeholder="yt-dlp format style"
value="%(playlist_index)s.%(title)s.%(ext)s">
<button class="redBtn" id="resetFilenameFormat">Reset to default</button>
</div>

@ -4,7 +4,7 @@
"yt-dlp-wrap-extended": "^2.3.15"
},
"name": "ytdownloader",
"version": "3.8.1",
"version": "3.9.0",
"main": "main.js",
"scripts": {
"start": "electron .",

@ -47,6 +47,17 @@ let playlistId = "";
let folderLocation;
function download(type) {
// Handling folder and file names
let foldernameFormat = "%(playlist_title)s";
let filenameFormat = "%(playlist_index)s.%(title)s.%(ext)s";
if (localStorage.getItem("foldernameFormat")) {
foldernameFormat = localStorage.getItem("foldernameFormat");
}
if (localStorage.getItem("filenameFormat")) {
filenameFormat = localStorage.getItem("filenameFormat");
}
getId("list").innerHTML = "";
getId("playlistName").textContent = "";
@ -88,11 +99,7 @@ function download(type) {
format,
"--yes-playlist",
"-o",
`"${path.join(
downloadDir,
"%(playlist_title)s",
"%(playlist_index)s.%(title)s.%(ext)s"
)}"`,
`"${path.join(downloadDir, foldernameFormat, filenameFormat)}"`,
"--ffmpeg-location",
ffmpeg,
cookieArg,
@ -111,11 +118,7 @@ function download(type) {
"--audio-format",
format,
"-o",
`"${path.join(
downloadDir,
"%(playlist_title)s",
"%(playlist_index)s.%(title)s.%(ext)s"
)}"`,
`"${path.join(downloadDir, foldernameFormat, filenameFormat)}"`,
"--ffmpeg-location",
ffmpeg,
cookieArg,

@ -1,151 +1,176 @@
let rightToLeft = false;
if (localStorage.getItem("rightToLeft")) {
rightToLeft = localStorage.getItem("rightToLeft")
rightToLeft = localStorage.getItem("rightToLeft");
}
if (rightToLeft == "true") {
document.querySelectorAll(".prefBox").forEach(item => {
item.style.flexDirection = "row-reverse"
})
document.querySelectorAll(".prefBox").forEach((item) => {
item.style.flexDirection = "row-reverse";
});
} else {
console.log("Change to left to right");
document.querySelectorAll(".prefBox").forEach((item) => {
item.style.flexDirection = "row";
});
}
else {
console.log("Change to left to right");
document.querySelectorAll(".prefBox").forEach(item => {
item.style.flexDirection = "row"
})
}
let downloadPath = localStorage.getItem("downloadPath")
getId("path").textContent = downloadPath
let downloadPath = localStorage.getItem("downloadPath");
getId("path").textContent = downloadPath;
const { ipcRenderer } = require("electron")
const { ipcRenderer } = require("electron");
function getId(id) {
return document.getElementById(id)
return document.getElementById(id);
}
getId("back").addEventListener("click", () => {
ipcRenderer.send("close-secondary")
})
ipcRenderer.send("close-secondary");
});
// Selecting download directory
getId("selectLocation").addEventListener("click", () => {
ipcRenderer.send("select-location", "")
})
ipcRenderer.send("select-location", "");
});
ipcRenderer.on("downloadPath", (event, downloadPath) => {
console.log(downloadPath);
localStorage.setItem("downloadPath", downloadPath)
getId("path").textContent = downloadPath
})
console.log(downloadPath);
localStorage.setItem("downloadPath", downloadPath);
getId("path").textContent = downloadPath;
});
const enabledTransparent = getId("enableTransparent")
const enabledTransparent = getId("enableTransparent");
enabledTransparent.addEventListener("change", (event) => {
if (enabledTransparent.checked) {
localStorage.setItem("enabledTransparent", "true")
}
else {
localStorage.setItem("enabledTransparent", "false")
}
})
if (enabledTransparent.checked) {
localStorage.setItem("enabledTransparent", "true");
} else {
localStorage.setItem("enabledTransparent", "false");
}
});
// Selecting config directory
getId("configBtn").addEventListener("click", () => {
ipcRenderer.send("select-config", "")
})
ipcRenderer.send("select-config", "");
});
ipcRenderer.on("configPath", (event, configPath) => {
console.log(configPath);
localStorage.setItem("configPath", configPath)
getId("configPath").textContent = configPath
})
console.log(configPath);
localStorage.setItem("configPath", configPath);
getId("configPath").textContent = configPath;
});
const configCheck = getId("configCheck")
const configCheck = getId("configCheck");
configCheck.addEventListener("change", (event) => {
if (configCheck.checked) {
getId("configOpts").style.display = "flex"
}
else {
getId("configOpts").style.display = "none"
localStorage.setItem("configPath", "")
}
})
const configPath = localStorage.getItem("configPath")
if (configPath){
getId("configPath").textContent = configPath;
configCheck.checked = true
getId("configOpts").style.display = "flex"
if (configCheck.checked) {
getId("configOpts").style.display = "flex";
} else {
getId("configOpts").style.display = "none";
localStorage.setItem("configPath", "");
}
});
const configPath = localStorage.getItem("configPath");
if (configPath) {
getId("configPath").textContent = configPath;
configCheck.checked = true;
getId("configOpts").style.display = "flex";
}
// Language settings
const localEnabledTransparent = localStorage.getItem("enabledTransparent")
const localEnabledTransparent = localStorage.getItem("enabledTransparent");
if (localEnabledTransparent == "true") {
enabledTransparent.checked = true
enabledTransparent.checked = true;
}
const language = localStorage.getItem("language")
const language = localStorage.getItem("language");
if (language) {
getId("select").value = language
getId("select").value = language;
}
function changeLanguage() {
const language = getId("select").value
localStorage.setItem("language", language)
if (language === "fa") {
rightToLeft = true;
localStorage.setItem("rightToLeft", true)
}
else {
rightToLeft = false;
localStorage.setItem("rightToLeft", false)
}
const language = getId("select").value;
localStorage.setItem("language", language);
if (language === "fa") {
rightToLeft = true;
localStorage.setItem("rightToLeft", true);
} else {
rightToLeft = false;
localStorage.setItem("rightToLeft", false);
}
}
// Browser preferences
let browser = localStorage.getItem("browser")
let browser = localStorage.getItem("browser");
if (browser) {
getId("browser").value = browser
getId("browser").value = browser;
}
getId("browser").addEventListener("change", () => {
browser = getId("browser").value
localStorage.setItem("browser", browser)
})
browser = getId("browser").value;
localStorage.setItem("browser", browser);
});
// Handling preferred video quality
let preferredVideoQuality = localStorage.getItem("preferredVideoQuality")
if (preferredVideoQuality){
getId("preferredVideoQuality").value = preferredVideoQuality
let preferredVideoQuality = localStorage.getItem("preferredVideoQuality");
if (preferredVideoQuality) {
getId("preferredVideoQuality").value = preferredVideoQuality;
}
getId("preferredVideoQuality").addEventListener("change", ()=>{
preferredVideoQuality = getId("preferredVideoQuality").value
localStorage.setItem("preferredVideoQuality", preferredVideoQuality) = preferredVideoQuality
})
getId("preferredVideoQuality").addEventListener("change", () => {
preferredVideoQuality = getId("preferredVideoQuality").value;
localStorage.setItem("preferredVideoQuality", preferredVideoQuality);
});
// Handling preferred audio quality
let preferredAudioQuality = localStorage.getItem("preferredAudioQuality")
if (preferredAudioQuality){
getId("preferredAudioQuality").value = preferredAudioQuality
let preferredAudioQuality = localStorage.getItem("preferredAudioQuality");
if (preferredAudioQuality) {
getId("preferredAudioQuality").value = preferredAudioQuality;
}
getId("preferredAudioQuality").addEventListener("change", ()=>{
preferredAudioQuality = getId("preferredAudioQuality").value
localStorage.setItem("preferredAudioQuality", preferredAudioQuality) = preferredAudioQuality
})
getId("preferredAudioQuality").addEventListener("change", () => {
preferredAudioQuality = getId("preferredAudioQuality").value;
localStorage.setItem("preferredAudioQuality", preferredAudioQuality);
});
// Reload
function reload(){
ipcRenderer.send("reload")
function reload() {
ipcRenderer.send("reload");
}
getId("restart").addEventListener("click", () =>{
reload()
})
getId("restart").addEventListener("click", () => {
reload();
});
// Handling filename formats
getId("filenameFormat").addEventListener("input", () => {
const text = getId("filenameFormat").value;
localStorage.setItem("filenameFormat", text);
});
if (localStorage.getItem("filenameFormat")) {
getId("filenameFormat").value = localStorage.getItem("filenameFormat");
}
getId("resetFilenameFormat").addEventListener("click", () => {
getId("filenameFormat").value = "%(playlist_index)s.%(title)s.%(ext)s";
localStorage.setItem(
"filenameFormat",
"%(playlist_index)s.%(title)s.%(ext)s"
);
});
// Handling folder name formats
getId("foldernameFormat").addEventListener("input", () => {
const text = getId("foldernameFormat").value;
localStorage.setItem("foldernameFormat", text);
});
if (localStorage.getItem("foldernameFormat")) {
getId("foldernameFormat").value = localStorage.getItem("foldernameFormat");
}
getId("resetFoldernameFormat").addEventListener("click", () => {
getId("foldernameFormat").value = "%(playlist_title)s";
localStorage.setItem("foldernameFormat", "%(playlist_title)s");
});
require("../src/translate_preferences")
// Translation file
require("../src/translate_preferences");

Loading…
Cancel
Save