#!/bin/bash gamepage="$1" # e.g. https://vimm.net/vault/1169 if [ $# -eq 0 ] then echo "No arguments supplied. Example: ./script.sh https://vimm.net/vault/1169" exit 1 fi # Find the mediaID while true; do id=$(curl -s "$gamepage" | grep 'fileSize\[' | head -n 1 | cut -d \[ -f2 | cut -d \] -f1) if [ -z "$id" ]; then echo "\$id is empty. Retrying ..." else echo "\$id is $id" break fi done # Construct URL URL="https://download.vimm.net/download/?mediaId=$id" echo "Visiting $URL" # Find the filename while true; do filename=$(curl -s -D - \ -H "Referer: https://vimm.net/" \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" \ "$URL" | grep "Content-Disposition" | awk -F '=' '{print substr($2,2,length($2)-3)}') if [ -z "$filename" ]; then echo "\$filename is empty. Retrying ..." else echo "\$filename is $filename" break fi done # Download it while true; do curl -s \ -H "Referer: https://vimm.net/" \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" \ "$URL" --output "$filename" # Test the file if test -f "$filename"; then echo "$filename has been downloaded" # Check if thefile is zip if file "$filename" | grep 'Zip archive data' &> /dev/null; then echo "$filename is a valid Zip archive" break else echo "$filename is not a zip archive. Retrying ..." fi else echo "$filename has not been downloaded. Retrying ..." fi done # Not needed Headers # -H "Cache-Control: max-age=0" \ # -H "If-None-Match: \"add61c4fdac54d1a735088da4c743358\"" \ # -H "Cookie: __cfduid=db8b88950e20f8a7abcd1a8c1e5c3f4ef1601646842" \ # -H "DNT: 1" \ # -H "Upgrade-Insecure-Requests: 1" \ # -H "Sec-Fetch-User: ?1" \ # -H "Sec-Fetch-Site: same-site" \ # -H "Sec-Fetch-Mode: navigate" \ # -H "Sec-Fetch-Dest: document" \ # -H "Host: download.vimm.net" \ # -H "Content-Type: application/zip" \ # -H "Connection: keep-alive" \ # -H "Accept-Language: en,en-DE;q=0.9,el-GR;q=0.8,el;q=0.7,de-DE;q=0.6,de;q=0.5,en-US;q=0.4" \ # -H "Accept-Encoding: gzip, deflate, br" \ # -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" \ # curl -v --connect-timeout 5 -k -L \