Created
June 24, 2024 20:03
-
-
Save FGRibreau/420b5da7289969e5746298356a49423c to your computer and use it in GitHub Desktop.
Download all Suno (app.suno.ai) songs displayed on a page
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// open your javascript console and paste this | |
copy([...$('[role="grid"]')[Object.keys($('[role="grid"]')).filter(x => x.startsWith('__reactProps'))[0]].children[0].props.values[0][1].collection].filter(x => x.value.audio_url).map(x => x.value.audio_url).join(' ')) | |
// now you have a list of mp3 urls directly in your clipboard that you can pass to wget or a url downloader |
If you want a slightly improved download script that @jagamypriera created, this one will let you specify any input file you like but it also handles duplicate filenames by appending a number to the song name.
example:
Stardust Reverberation.mp3
Stardust Reverberation.mp4
Stardust Reverberation_2.mp3
Stardust Reverberation_2.mp4
#!/bin/bash
# Check if the input file is provided
if [ -z "$1" ]; then
echo "Usage: $0 <input_file>"
exit 1
fi
input_file="$1"
# Read the file line by line
while IFS="|" read -r filename url; do
# Check if the file already exists
if [[ -e "$filename" ]]; then
base="${filename%.*}"
ext="${filename##*.}"
counter=2
while [[ -e "${base}_${counter}.${ext}" ]]; do
((counter++))
done
filename="${base}_${counter}.${ext}"
fi
# Print the song name being downloaded
echo "Downloading $filename"
# Use curl to download the file
curl -o "$filename" "$url"
# Wait for 1 second
sleep 1
done < "$input_file"
I hope this helps someone.
works great!, thanks
Im trying to do this but the issue is when pasting it in the console window it doesnt work. I looked and it seems the children element doesnt exsist.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'd like to offer an updated js snippet to the work done by @gadelkareem , this one will handle the renaming of multiple song names. Don't we all just love how SUNO always spends double our credits making 2 songs fo every prompt.
I found the original code above was a bit problematic because it would try to name the songs the same which doesn't work well when bulk downloading.
This code will give multiple songs of the same name a number such as
songname_2
,songname_3
etc. The first song name is untouched.Example:
I hope this helps.