// ==UserScript==
// @name Pixeldrain unlimited download
// @namespace Violentmonkey Scripts
// @match https://pixeldrain.com/u/*
// @match https://pixeldrain.com/l/*
// @grant none
// @version 1.7.2
// @author -
// @description 8/24/2025, 1:10:16 PM
// @license MIT
// @downloadURL https://update.greasyfork.icu/scripts/547073/Pixeldrain%20unlimited%20download.user.js
// @updateURL https://update.greasyfork.icu/scripts/547073/Pixeldrain%20unlimited%20download.meta.js
// ==/UserScript==
// jshint esversion:6
const api_base = "https://cdn.pd1.workers.dev/api/file/";
function aria2_try_add() {
const toolbar = document.querySelector(".toolbar")
const current = toolbar.querySelector("a#aria2-input-file");
if (current !== null) {
return;
}
const button = toolbar.querySelector("button.button.svelte-1bj9uys");
const album_urls = Array.from(
document.querySelectorAll("a.file.svelte-zfpa77 > div")
).map(div =>
api_base + div.style["background-image"].split("/")[3]
);
if (album_urls.length === 0) {
return;
}
const file_id = document.location.href.split("/").pop().split("#")[0];
const aria2_input = document.createElement('a');
aria2_input.id = "aria2-input-file";
aria2_input.href = "data:text/plain;base64,"+btoa(album_urls.join("\n") + "\n");
aria2_input.download = `${file_id}.txt`;
aria2_input.innerHTML = '';
toolbar.insertBefore(aria2_input, button);
}
function add_ddl_zip() {
const file_id = document.location.href.split("/").pop().split("#")[0];
const toolbar = document.querySelector(".toolbar");
const button = toolbar.querySelector("button.button.svelte-1bj9uys");
const link = document.createElement('a');
link.href = `https://cdn.pd1.workers.dev/api/list/${file_id}/zip`;
link.innerHTML = '';
toolbar.insertBefore(link, button);
aria2_try_add();
}
function add_ddl_button() {
const description = document.querySelector("div.description");
if (description === null) {
return;
}
const current = description.querySelector("#cf-ddl-button");
if (current !== null) {
description.removeChild(current);
}
// Create the anchor element
const link = document.createElement('a');
link.id = "cf-ddl-button";
if (document.location.hash.startsWith("#item=")) {
const file_id = document.querySelector(".block.svelte-40do4p > img").src.split("/api/file/")[1].split("/")[0];
link.href = api_base + file_id;
} else {
const file_id = document.location.href.split("/").pop().split("#")[0];
link.href = api_base + file_id;
}
link.innerHTML = '';
description.appendChild(link);
}
window.addEventListener('load', () => {
if (
document.location.pathname.startsWith("/u/")
) {
add_ddl_button();
}
else if (
document.location.pathname.startsWith("/l/")
) {
add_ddl_button();
add_ddl_zip();
window.addEventListener('hashchange', function(event) {
if (event.newURL.search("#item=") !== -1) {
add_ddl_button();
} else {
aria2_try_add();
}
});
}
}, false);