NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Bunkrr DL Button // @version 1 // @description Add a download button below each thumbnails of each videos in a bunkrr album // @match https://bunkrr.su/a/* // @namespace bunkrr // @license MIT // ==/UserScript== (async () => { "use strict"; const mediaLinks = Array.from( document.querySelectorAll(".grid-images_box-link") ); const links = mediaLinks.map((mediaLink) => { const relativeLink = mediaLink.getAttribute("href"); return window.location.origin + relativeLink; }); const ddlLinks = await Promise.all( links.map(async (link) => { const response = await fetch(link); const html = await response.text(); const parser = new DOMParser(); const doc = parser.parseFromString(html, "text/html"); const ddlLink = doc.querySelector("a[href$='.mp4']").getAttribute("href"); return ddlLink; }) ); const grid = document.querySelector(".grid-images"); const medias = document.querySelectorAll(".grid-images > *"); medias.forEach((media, i) => { const newBox = document.createElement("div"); newBox.style.display = "flex"; newBox.style.flexDirection = "column"; const dlBox = document.createElement("button"); dlBox.textContent = "Download"; dlBox.style.border = "solid #ffd369 2px"; dlBox.style.borderRadius = "0px 0px 20px 20px"; dlBox.addEventListener("click", (e) => { e.stopPropagation(); window.open(ddlLinks[i]); }); media.style.borderBottom = "none"; media.style.borderBottomLeftRadius = "0px"; media.style.borderBottomRightRadius = "0px"; newBox.appendChild(media); newBox.appendChild(dlBox); grid.appendChild(newBox); }); })();