#!/bin/bash

# Author: Paul Kocialkowski
# Copyright: GNU General Public License
# Date: 27/08/2010
# Note: This script was made with help from bioinfornatics
# Requires: sed, grep, wget
# Version: 0.1.1

# Check arguments count
if (( $# < 1 ))
then
	echo "Usage: $0 <URL1> <URL2>..."
	exit
fi

i=0

# Loop to parse each argument
while (( $i <= $# ))
do
	# Download the specified page and parse interesting infos
	flickr_infos_page=$( wget "$1" -o /dev/null -O /dev/stdout | grep '<link rel="video_src"' )
	
	# Get the id and the "secret" from the infos
	flickr_photo_id=$( echo $flickr_infos_page | sed "s/.*photo_secret=.*&photo_id=\(.*\)\">.*/\1/g" )
	flickr_photo_secret=$( echo $flickr_infos_page | sed "s/.*photo_secret=\(.*\)&photo_id=.*\">.*/\1/g" )

	# Download an XML file, required to get the video id
	flickr_infos_xml=$( wget "http://www.flickr.com/apps/video/video_mtl_xml.gne?v=x&photo_id=$flickr_photo_id&secret=$flickr_photo_secret&olang=fr-fr&noBuffer=null&bitrate=700&target=_self" -o /dev/null -O /dev/stdout )
	flickr_video_id=$( echo $flickr_infos_xml | sed "s/.*<Item id=\"id\">\([^><]*\)<\/Item>.*/\1/g" )

	# Download an XML file that will give us the video location
	flickr_infos_video_xml=$( wget "http://www.flickr.com/video_playlist.gne?node_id=$flickr_video_id&tech=flash&mode=playlist&bitrate=700&secret=$flickr_photo_secret&rd=video.yahoo.com&noad=1" -o /dev/null -O /dev/stdout )

	# Parse the video location
	flickr_video=$( echo $flickr_infos_video_xml | sed "s/.*<STREAM APP=\"\([^\"]*\)\".*FULLPATH=\"\([^\"]*\)\".*/\1\2/g" | sed "s/\&amp;/\&/g" )

	# Now, let's download the video !

	wget "$flickr_video" --progress=bar:force -O "flickr_$flickr_photo_id.mp4" -o /dev/stdout

	let i=1+$i
	shift
done



