#!/bin/sh

OUTDIR=${HOME}/arte
BIN=rtmpdump

QUAL=hd		# sd / hd
LANG=fr		# de / fr

function extract_name {
	basename "$1" | sed "s/-[0-9]*\.html//"
}

function extract_number {
	NAME=`extract_name "$1"`
	basename "$1" | sed "s/${NAME}-//;s/\.html//"
}

function extract_url {
	NAME=`extract_name "$1"`
	NUMBER=`extract_number "$1"`
	PLAYLIST_LANG="http://videos.arte.tv/fr/do_delegate/videos/${NAME}-${NUMBER},view,asPlayerXml.xml"
	PLAYLIST_QUAL=`ftp -V -o - "$PLAYLIST_LANG" | grep "<video lang=\"$LANG\" " | sed "s/.*ref=\"//;s/\".*//"`
	ftp -V -o - "$PLAYLIST_QUAL" | grep "<url quality=\"$QUAL\">" | sed "s/.*\">//;s/<.*//"
}

function get_video {
	URL=`extract_url "$1"`
	FILE=${OUTDIR}/`extract_name "$1"`-`date +%F`.flv
	shift

	echo "Dumping broadcast to $FILE"

	$BIN $* -e -o $FILE -r "$URL"
	while [ $? -eq 2 ]; do
		sleep 5
		$BIN $* -e -o $FILE -r "$URL"
	done
}

if [ $# -ge 1 ]; then
	get_video $*
else
	echo "usage: $0 <arte+7_url> [<additional parameters to rtmpdump...>]"
fi

