Skip to content

Commit

Permalink
Cleanup and finish script
Browse files Browse the repository at this point in the history
  • Loading branch information
johnteslade committed Jan 28, 2014
1 parent e1899f0 commit dd31fc0
Showing 1 changed file with 24 additions and 22 deletions.
46 changes: 24 additions & 22 deletions vimeo_downloader.sh
Expand Up @@ -33,6 +33,7 @@ VIMEO_ID=`echo $1 | awk -F / '{print $NF}'`
# Set the user agent ID to use
USER_AGENT="Mozilla/5.0"

# Check we have the tools we need
which wget
if [ $? -eq 1 ]; then
echo "ERROR: this tool requires wget on the path"
Expand All @@ -45,43 +46,44 @@ if [ $? -eq 1 ]; then
exit 1
fi

GET_CMD="wget -U \"${USER_AGENT}\" -O"

VIDEO_XML=`${GET_CMD} - http://vimeo.com/${VIMEO_ID}`
# Get the main page
VIDEO_XML=`wget -U \"${USER_AGENT}\" -q -O - http://vimeo.com/${VIMEO_ID}`

# Get the config url
CONFIG_URL=`echo $VIDEO_XML | grep data-config-url | perl -p -e 's/^.*? data-config-url="(.*?)".*$/$1/g' | perl -pe 's/&/&/g'`
echo "Look for config at $CONFIG_URL"

VIDEO_CONFIG=`${GET_CMD} - ${CONFIG_URL}`
VIDEO_CONFIG=`wget -U \"${USER_AGENT}\" -q -O - ${CONFIG_URL}`

# Determine the download url and caption
HD_URL=`echo $VIDEO_CONFIG | perl -pe 's/^.*"hd":{(.*?)}.*$/$1/g' | perl -pe 's/^.*"url":"(.*?)".*$/$1/g'`
SD_URL=`echo $VIDEO_CONFIG | perl -pe 's/^.*"sd":{(.*?)}.*$/$1/g' | perl -pe 's/^.*"url":"(.*?)".*$/$1/g'`

echo HD $HD_URL
echo SD $SD_URL

exit

REQUEST_SIGNATURE=`echo $VIDEO_CONFIG | perl -e '@text_in = <STDIN>; if (join(" ", @text_in) =~ /"signature":"(.*?)"/i ){ print "$1\n"; }'`
REQUEST_SIGNATURE_EXPIRES=`echo $VIDEO_CONFIG | perl -e '@text_in = <STDIN>; if (join(" ", @text_in) =~ /"timestamp":(\d*?),/i ){ print "$1\n"; }'`
CAPTION=`echo $VIDEO_XML | perl -p -e '/^.*?\<meta property="og:title" content="(.*?)"\>.*$/; $_=$1; s/[^\w.]/-/g;'`
ISHD=`echo $VIDEO_XML | perl -p -e '/^.*?\<meta itemprop="videoQuality" content="(HD)"\>.*$/; $_=lc($1)||"sd";'`

FILENAME="${CAPTION}-(${ISHD}-${VIMEO_ID}).flv"
# Select the correct URL
if [ "$HD_URL" ]; then
DOWNLOAD_URL=$HD_URL
QUALITY="HD"
elif [ "$SD_URL" ]; then
DOWNLOAD_URL=$SD_URL
QUALITY="SD"
else
echo "ERROR: failed to download vimeo ID ${VIMEO_ID}"
echo "Please report this error at https://github.com/johnteslade/vimeo-downloader/issues"
fi

# Set the filename output
FILENAME="${CAPTION}-(${QUALITY}-${VIMEO_ID}).flv"

echo
echo "Downloading video ${VIMEO_ID} to ${FILENAME}..."
echo "Request_signature=${REQUEST_SIGNATURE}"
echo "Request_signature_expires=${REQUEST_SIGNATURE_EXPIRES}"
echo "From URL ${DOWNLOAD_URL}"
echo "Quality=${QUALITY}"
echo

EXEC_CMD="${GET_CMD} --post-data 'id=${VIMEO_ID}&sig=${REQUEST_SIGNATURE}&time=${REQUEST_SIGNATURE_EXPIRES}&quality=${ISHD}&codecs=H264,VP8,VP6&type=moogaloop_local&embed_location=' http://player.vimeo.com/v2/log/play"
EXEC_CMD="${GET_CMD} --post-data 'referrer=http%3A%2F%2Fvimeo.com%2F1084537&embed=false&context=clip.main&id=1084537&userId=0&userAccountType=none&ownerId=508904&privacy=anybody&rating=null&type=html&videoFileId=24130451&delivery=progressive&quality=hd&duration=596&seconds=0&signature=bba9539b684b68a669df61672fdaa620&session=b33ffe835f53dff6f965d079b45c57e2&time=1389393290&expires=1496' - http://player.vimeo.com/v2/log/play"
echo "Executing ${EXEC_CMD}"
${EXEC_CMD} > "${FILENAME}"
# Do the download
wget -U \"${USER_AGENT}\" -O ${FILENAME} ${DOWNLOAD_URL}

echo
echo "Video ${VIMEO_ID} saved to ${FILENAME}"
echo `file "${FILENAME}"`
echo

0 comments on commit dd31fc0

Please sign in to comment.