Welcome, guest! Login / Register - Why register?
[email protected] webmail now available. Want one? Go here.
Windows getting boring or just want to try something Open Source for your next Desktop Environment?! Go Zorin OS.

Paste

Pasted as Bash by registered user uwe ( 11 years ago )
#!/bin/bash

tvprefix=/Volumes/media/mediathek/
log=$tvprefix/.mediathek.log
maxtries=25

PATH=$PATH:/usr/local/bin

if [ -n "$log" ]; then
  echo "$(date +%F-%T) start" >> $log
fi

# Das Glueck dieser Erde
search[0]="Das Glück dieser Erde"
url[0]="http://www.ardmediathek.de/ard/servlet/export/rss/id=7283770"
grep[0]="http://www.ardmediathek.de[^<]*"
dir[0]="$tvprefix/Das Glück dieser Erde"

# Verbotene Liebe
search[1]="Verbotene Liebe"
url[1]="http://mediathek.daserste.de/daserste/servlet/export/rss?sendung=439104"
grep[1]="http.*_folge[^<]*"
dir[1]="$tvprefix/Verbotene Liebe"

tmp=$(mktemp -t $(basename $0)) || exit 1

for x in 0 1; do

  urls="$(curl -s "${url[$x]}" | grep -o "${grep[$x]}")"

  mkdir -p "${dir[$x]}"

  for u in $urls; do
    curl -s "$u" > $tmp
    title="$(grep -o "${search[$x]} - Folge[^<]*" $tmp)"
    if [ "x$title" == "x" ]; then continue; fi
    ep=${title/*Folge }
    ep=${ep/:*}
    save="${dir[$x]}/$ep $title"

    if ! grep -q "done  $title" $log -o [ ! -s "$save.flv" ]; then
      if [ -n "$log" ]; then
        echo "$(date +%F-%T) get   $title" >> $log
      fi

      try=1
      ex=3
      while [[ $ex -ne 0 ]]; do
        if [[ $[++try] -eq $maxtries ]]; then
          break
        fi
        if [[ $ex -eq 1 ]]; then
          rm -f "$save.flv"
        fi        
        rtmpdump -q -e --host vod.daserste.de --app ardfs/ --playpath "$(grep -o 'mp4:video.*Web-L[^"]*' $tmp)" -o "$save.flv"
        ex=$?
      done

      if [[ $ex -eq 0 ]]; then
        chmod 644 "$save.flv"
        if [ -n "$log" ]; then
          echo "$(date +%F-%T) done  $title" >> $log
        fi
      else
        rm -f "$save.flv"
        if [ -n "$log" ]; then
          echo "$(date +%F-%T) fail  $title" >> $log
        fi
      fi
    fi
  done
done

if [ -n "$log" ]; then
  echo "$(date +%F-%T) stop" >> $log
fi

rm -f $tmp

 

Revise this Paste

Your Name: Code Language: