Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/* HOW TO USE 1. go to the artist's page on bandcamp (e.g., https://artistname.bandcamp.com/album/...) 2. use this script via console (F12 to open) 3. CTRL+C generated commands 4. open powershell and go to the folder wich you want to storage covers 5. CTRL+V generated commands and press enter */ // Script to generate PowerShell commands for downloading covers from Bandcamp (function() { 'use strict'; // Function to sanitize a filename by removing invalid characters function sanitizeFilename(filename) { // Remove invalid characters, leaving letters, numbers, spaces, hyphens, and underscores const cleaned = filename.replace(/[^a-z0-9\s\-_]/gi, '').trim(); // Replace multiple spaces with a single one and then with an underscore return cleaned.replace(/\s+/g, '_'); } // Function to get the URL of the image in maximum quality function getFullSizeImageUrl(url) { // _10 is usually one of the largest versions. _0 is the original, but may not be available. return url.replace(/_\d+\.jpg/, '_0.jpg'); } // --- Main function --- function generatePowerShellCommands() { console.log('🎵 Starting to gather information to generate commands...'); const musicItems = document.querySelectorAll('#music-grid .music-grid-item'); if (musicItems.length === 0) { console.error('❌ No music items found on the page.'); return; } const covers = []; musicItems.forEach(item => { const imgElement = item.querySelector('.art img'); const titleElement = item.querySelector('.title'); if (imgElement && titleElement) { const imageUrl = imgElement.src || imgElement.getAttribute('data-original'); const title = titleElement.textContent.trim(); covers.push({ fullSizeUrl: getFullSizeImageUrl(imageUrl), filename: `${sanitizeFilename(title)}.jpg` }); } }); if (covers.length === 0) { console.error('❌ Failed to extract cover data.'); return; } console.log(`✅ Found ${covers.length} covers.`); console.log('--------------------------------------------------'); console.log('⬇️ COPY THE ENTIRE COMMAND BLOCK BELOW AND PASTE IT INTO POWERSHELL ⬇️'); console.log('--------------------------------------------------'); // Generate one large string with all the commands const commands = covers.map(cover => { // Use the native PowerShell command Invoke-WebRequest return `Invoke-WebRequest -Uri "${cover.fullSizeUrl}" -OutFile "${cover.filename}"`; }).join('\n'); // Output the entire block to the console for easy copying console.log(commands); console.log('--------------------------------------------------'); console.log('⬆️ END OF COMMAND BLOCK ⬆️'); console.log('\n✅ Done! Now open PowerShell in the desired folder and paste the copied commands.'); } // Start the generation generatePowerShellCommands(); })();
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)