#!/bin/bash # 2016-01-26 https://github.com/mediathekview/MediathekView/blob/9558f62a46cff0b1b8078083629647b5e87e82ca/res/bin/aria2-remote.sh # 2022-12-29 Changes by github-user @porg # - Fixed bug: # - base64 argument --wrap (Linux lingo) vs. --break (Mac lingo) # - Changed $filename to $filepath (hence removed basename operation) # - That way one can pass ./paths/to/video.mp4 relative to aria root --dir=/srv/media/videos # - Log # - Changed debug format to be more readable. # - Log location customizable to typical paths on Mac or Linux. # - Persistent log (First write operation is not an overwrite ">" but an append ">>" operation) # Das Skript muss evtl. noch # "ausführbar" gemacht werden!!! # Programmparameter in MediathekView # %f ** # oder ohne gesetztes Passwort # %f ** # Start von aria2 auf dem Server # aria2c --enable-rpc --rpc-listen-all --dir=/ZIELPFAD/FILME # Wichtig: Kein abschließender Schrägstrich, sonst werden von Mediathek übergebene # relative ./pfade/zum/video zu /ZIELPFAD/FILME//pfade/zum/video mit Doppelschrägstrich # OS adaptation / User customization: # Linux log in temporary folder: log=/tmp/MediathekView-aria2.log # Mac: Persistent log within Home Directory: log=~/Library/Logs/MediathekView-aria2.log log=~/Library/Logs/MediathekView-aria2.log echo -e "▾ $(date '+%Y-%d-%m %H:%M:%S')\n" >> $log echo -e " • RUN $0 $*\n" >> $log url=$1 filepath="$2" # filename=$(basename "$2") aria2_server_url=$3 aria2_server_secret=$4 #echo >>$log #echo "MediathekView-aria2 parameters:" >>$log #while [ -n "$1" ] #do # echo "$1" >>$log # shift #done echo -e "• URL $url\n" >> $log echo -e "• PATH $filepath\n" >> $log echo -e "• SERV $aria2_server_url\n" >> $log echo -e "• TOKN $aria2_server_secret\n" >> $log id=medview method=aria2.addUri if [ -n "$filepath" ] then options=",{\"out\":\"${filepath}\"}" else options="" fi params="[\"token:${aria2_server_secret}\",[\"${url}\"]${options}]" # OS adaptation: base64 argument terminology differs between Mac and Linux variant # Linux: -w / --wrap option # macOS: -b / --break -- Both in built-in and brew variant of base64. params_base64enc=$(echo "${params}" | base64 --break 0 -) params_base64enc_urlenc=${params_base64enc//=/%3D} get="${aria2_server_url}?id=${id}&method=${method}¶ms=${params_base64enc_urlenc}" echo >>$log echo "EXEC $get" >> $log result=$(curl -S -k "$get") echo >>$log echo -e "--> $result\n\n---\n\n" >> $log if [[ $result =~ '"Result":' ]] then exit 0 else exit 1 fi