Add a download button on Scribd pages to redirect to a custom download service in the same tab, supporting document, doc, and presentation URLs.
目前為
// ==UserScript==
// @name Scribd Download Button
// @namespace http://tampermonkey.net/
// @version 1.6
// @description Add a download button on Scribd pages to redirect to a custom download service in the same tab, supporting document, doc, and presentation URLs.
// @author Mayclin.IT
// @match https://www.scribd.com/document/*
// @match https://www.scribd.com/doc/*
// @match https://www.scribd.com/presentation/*
// @icon https://www.google.com/s2/favicons?domain=scribd.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
console.log("📌 Tampermonkey script is running...");
// Extract version number from metadata
const scriptVersion = GM_info.script.version;
console.log("📌 Script Version:", scriptVersion);
// Get the current URL
const currentUrl = window.location.href;
// Regular expression to match URL format correctly
const urlMatch = currentUrl.match(/https:\/\/www\.scribd\.com\/(?:document|doc|presentation)\/(\d+)\/(.+)/);
if (urlMatch) {
// Extract the document ID and title
const docId = urlMatch[1]; // Document ID
let docTitle = urlMatch[2]; // Document title
// Debugging
console.log("📌 Extracted docId:", docId);
console.log("📌 Extracted raw docTitle:", docTitle);
// Fix docTitle: Replace `/` with `-` and encode special characters
docTitle = docTitle.replace(/\//g, '-'); // Replace slashes with dashes
docTitle = encodeURIComponent(docTitle); // Encode special characters
// Construct the new download URL with "/document/" path
const downloadUrl = `https://scribd.downloader.tips/document/${docId}/${docTitle}`;
console.log("📌 Final download URL:", downloadUrl);
// Create a download button
const button = document.createElement('button');
button.textContent = `Download v${scriptVersion}`;
button.style.position = 'fixed';
button.style.top = '10px';
button.style.right = '10px';
button.style.padding = '10px 15px';
button.style.backgroundColor = '#007bff';
button.style.color = '#fff';
button.style.border = 'none';
button.style.borderRadius = '5px';
button.style.cursor = 'pointer';
button.style.zIndex = '10000';
// Add click event to redirect to the download URL in the same tab
button.addEventListener('click', () => {
window.location.href = downloadUrl;
});
// Append the button to the body
document.body.appendChild(button);
console.log("✅ Download button added successfully!");
} else {
console.warn("❌ No matching document found in the URL.");
}
})();