#!/bin/bash
if [ "$#" -ne 1 ]; then
	echo "K použití je třeba zadat !AKTUÁLNÍ! URL stránky s videem konkrétního pořadu."
	echo "Např: $0 http://www.ceskatelevize.cz/ivysilani/208522161400007-vypravej/"
	exit
fi

#zkušební stažení obsahu www stránky
page_data=$(curl -s $1)

#když se nestahne nic
if [ "$page_data" == "" ]; then
	echo "Nepodařilo se stáhnout žádnou web stránku - je odkaz $1 správný ?"
	echo "Fatální chyba, končím není odkud stahovat."
	exit
fi

#získat nejvyžší kvalitu - je li dostupná
url="$1"
if (echo $url | grep -qv '?streamtype'); then
        url="${url}?streamtype=WM3"
fi

echo "Zjišťuji URL playlistu video streamu...."
#URL streamu leží v <param name="url" value="URL" uloží se do proměnné
stream_url=$(curl -s $url | sed -n 's/.*<param name="url" value="\([^"]*\)" \/.*>/\1/p')
#když se stahne html ale není tam <param name="url" value="něco" / >
if [ "$stream_url" == "" ]; then
	echo "Nepodařilo se získat stream URL - je adresa stránky www stránky $1 ta správná, kde je požadované video ?"
	echo "Bohužel, tato chyba je fatální, končím. "
	exit
fi

#parsovat čistou mms:// URL pořadu - bez REKLAMY
http=$(curl -A "Windows-Media-Player/11.0.5721.5145" -s $stream_url | sed -r -n 's/.*REF HREF="([^\&]*)&.*<DURATION.*/\1/p')
mms=$(echo $http | sed 's/http/mms/')

#název se získá parsováním tagu <title>.*</title> a vymažou se HTML entity &.*;
nazev=$(curl -s $url -A Mozilla | sed -n 's/.*<title>\([^<]*\)<\/title>.*/\1/p' | sed 's/&.*\;//g') || nazev=video

echo "Playlist je na adrese: $stream_url"
echo "V něm je kromě trapných reklam mms stream:"
echo $mms
echo "Název souboru bude: ${nazev}.asf"

prikaz="mplayer -cache 2000 -user-agent \"Windows-Media-Player/11.0.5721.5145\" $mms -dumpstream -dumpfile \"${nazev}.asf\""
echo "Nahrává se příkazem:"
echo $prikaz
mplayer -cache 2000 -user-agent "Windows-Media-Player/11.0.5721.5145" $mms -dumpstream -dumpfile "${nazev}.asf" || echo "Stahování souboru bylo z neznámých důvodů ukončeno předčasně !! Zkuste to znovu..." && exit
echo "Stahovánívidea bylo dokončeno"
exit
