Skip to content

Instantly share code, notes, and snippets.

@mdukat
Created June 27, 2019 20:41
Show Gist options
  • Save mdukat/ae6d864b61ab473c1a050ee71b263dc5 to your computer and use it in GitHub Desktop.
Save mdukat/ae6d864b61ab473c1a050ee71b263dc5 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Usage:
# cat list_of_links.txt | ./zippyshare-downloader.sh
# or
# ./zippyshare-downloader.sh [link]
function _download {
refererLink=${1}
# Check if link is correct
if [[ ${refererLink} =~ https:\/\/www[0-9]+\.zippyshare\.com\/v\/[0-9a-zA-Z]{8}\/file\.html$ ]]; then
echo "Link OK!"
else
echo "Link Error!"
return
fi
refererData=$(curl -vvs ${refererLink} |& cat)
# Check if file exists on server
if [[ "${refererData}" == *"File does not exist on this server"* ]]; then
echo "File does not exist on this server!"
return
fi
cookie=$(echo "${refererData}" |& sed '/JSESSIONID/!d; s/< Set-//; s/; Path.*//; s/.*Cookie/Cookie/')
filename=$(echo "${refererData}" |& sed '/<title>/!d; s/.*<title>Zippyshare.com - //; s/<\/title>//; s/\r//')
calc=$(echo "${refererData}" |& grep document.getElementById\(\'dlbutton\'\) | sed 's/.*+ (//; s/).*//')
calcfin=$((${calc}))
id=$(echo "${refererLink}" | sed 's/^.*\/v\///; s/\/file.html//')
serverNumber=$(echo "${refererLink}" | sed 's/^.*www//; s/\.zippyshare.*//')
echo "${cookie}"
echo "${filename}"
echo "${calc} = ${calcfin}"
echo "${id}"
echo "${serverNumber}"
# Check if file exists locally
if [ -f "./${filename}" ]; then
echo "File ${filename} exists!"
return
fi
downloadLink="https://www${serverNumber}.zippyshare.com/d/${id}/${calcfin}/${filename}"
echo "${downloadLink}"
wget ${downloadLink} -O "${filename}" --referer='${refererLink}' --cookies=off --header "${cookie}" --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'
echo ""
}
# MAIN
if [[ ${1} == "" ]]; then
while read line
do
_download ${line}
done
else
_download ${1}
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment