You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
YouTube-API-Kontingent ist knapp. Deshalb sollte jeder Request gecached werden.
Beatsaver-API-Kontingent hingegen ist endlos vorhanden. Also im Zweifelsfall einfach den letzten Befehl nochmal ausführen, das ist kein Problem.
Na gut ganz endlos ist es doch nicht, daher prüfen wir, ob wir gedrosselt wurden und versuchen dann den jeweiligen Download nochmal.
Manche Songs wurden auch wieder heruntergenommen. Daher durfte ich lernen, dass es in bash ein continue 2 gibt. Coole Sache. Könnte sich die ein oder andere Sprache Mal eine Scheibe von abschneiden.
KEY="[YouTube-API-Key]"
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&key=$KEY' --header 'Accept: application/json' --compressed > dieter1.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter1.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter2.json && less dieter2.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter2.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter3.json && less dieter3.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter3.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter4.json && less dieter4.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter4.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter5.json && less dieter5.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter5.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter6.json && less dieter6.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter6.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter7.json && less dieter7.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter7.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter8.json && less dieter8.json
curl 'https://youtube.googleapis.com/youtube/v3/search?part=id&channelId=UCbXjQecIReDgxsn7FUf4Tbw&maxResults=50&order=date&pageToken=$(jq -r ".nextPageToken" dieter8.json)&key=$KEY' --header 'Accept: application/json' --compressed > dieter9.json && less dieter9.json
for i in $(seq 1 9); do for j in $(seq 0 49); do curl "https://youtube.googleapis.com/youtube/v3/videos?part=snippet&id=$(jq -r ".items[$j].id.videoId" dieter$i.json)&key=$KEY" --header 'Accept: application/json' --compressed > dieter-video$i$j.json; done; done
for i in $(seq 1 9); do for j in $(seq 0 49); do jq -r ".items[0].snippet.description" dieter-video$i$j.json | grep -o -P "(https:\\/\\/beatsaver.com\\/beatmap\\/\\w*)" >> beatmaps.txt; done; done
echo "{\"playlistTitle\": \"Dieter - gesammelte Werke\", \"playlistAuthor\": \"MaxMatti\", \"image\": \"\", \"songs\": [" > dieter.bplist; for i in $(cat beatmaps.txt); do echo "${i#"https://beatsaver.com/beatmap/"}"; while true; do curl "https://beatsaver.com/api/maps/detail/${i#"https://beatsaver.com/beatmap/"}" -A 'Wget/1.20.3 (linux-gnu)' -s > tmp.json; [ "$(jq -r ".hash" tmp.json)" != "null" ] && [ "$(jq -r ".hash" tmp.json)" != "" ] && break; [ "$(cat tmp.json)" = "Not Found" ] && continue 2; sleep 1; done; echo "{\"hash\": \"$(jq -r ".hash" tmp.json)\", \"songName\": \"$(jq -r ".metadata.songName" tmp.json)\"}," >> dieter.bplist; done; echo "]}" >> dieter.bplist;