- 追加された行はこの色です。
- 削除された行はこの色です。
- GetAG.sh へ行く。
#setlinebreak(on)
*GetAG.sh [#eac30d3e]
AGQRのflash player対応にともないrtmp化したため保存スクリプトを用意しました。
とりあえず、説明なしであげておきます。
最新のスクリプトは[[GitHub:https://github.com/sarami55/script]]にあります。
#sh("bash"){{
#!/bin/sh
export PATH=$PATH:/home/user/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/\usr/local/sbin:/usr/local/bin
export LD_LIBRARY_PATH=/home/user/lib
export PERL5LIB="/home/user/lib/perl5/lib/perl5:/home/user/lib/perl5/li\b/perl5/perl5/i386-freebsd-64int"
# args check
if [ $# -ne 8 ]; then
echo "usage : $0 OUTFILE_SUFFIX REC_TIME(s) "\
"STREAM(V/A) UPLOAD(0/1) COMMENT DL_PASS RM_PASS BIWEEK(0/1)"
exit 1;
fi
SUFFIX=AG-$1
REC_TIME=$2
STREAM=$3
UPLOAD_F=$4
COMMENT=$5
DL_PASS=$6
RM_PASS=$7
BIWEEK_F=$8
ftpaccount_pass='user:pass':jh8tgv;
ftpurl="ftp://ftp.4shared.com";
working_dir=/home/user/REC
check_biweek_dir=/home/user/100
now=`date '+%Y-%m-%d-%H%M'`;
ftpdir=Public/Radio/`date '+%Y-%m'`;
check_date=`date -v -1w '+%Y-%m-%d-%H%M'`;
check_file=$check_date-$SUFFIX
if ( [ $BIWEEK_F -eq 9 ] ); then
today=`date -v -6H '+%d'`;
weekly=`date -v -6H '+%u'`;
checkmonday=$(expr $today - $weekly + 1);
if ( [ $checkmonday -le 0 ] ); then
exit 0;
fi
if ( [ $checkmonday -ge 8 ] && [ $checkmonday -le 14 ] ); then
exit 0;
fi
if ( [ $checkmonday -ge 22 ] && [ $checkmonday -le 28 ] ); then
exit 0;
fi
fi
if ( [ $BIWEEK_F -eq 1 ] && [ -f $check_biweek_dir/$check_file ] ); then
rm -f $check_biweek_dir/$check_file;
exit 0;
fi
cd $working_dir
outfile=$now-$SUFFIX;
[ $BIWEEK_F -eq 1 ] && touch "$check_biweek_dir/$outfile";
#
# rtmpdump
#
RETRYCOUNT=0
while :
do
RANDOM=`od -vAn -N4 -tu4 < /dev/random`;
index=$(expr $RANDOM % 2);
index=$(expr $index + 1);
tmpurl="rtmpe://fms${index}.uniqueradio.jp/";
outfile=${outfile}-${index};
RANDOM=`od -vAn -N4 -tu4 < /dev/random`;
index=$(expr $RANDOM % 2);
index=$(expr $index + 1);
tmppath="?rtmp://fms-base${index}.mitene.ad.jp/agqr/";
outfile=${outfile}${index};
RANDOM=`od -vAn -N4 -tu4 < /dev/random`;
index=$(expr $RANDOM % 2);
index=$(expr $index + 1);
outfile=${outfile}${index};
# echo $RANDOM;
# echo $tmpurl
# echo $tmppath
rtmpdump -q -vr $tmpurl \
-a $tmppath \
-f "WIN 11,8,800,94" \
-W "http://www.uniqueradio.jp/agplayerf/LIVEPlayer-HD0318.swf" \
-p "http://www.uniqueradio.jp/agplayerf/newplayerf2-win.php" \
-C B:0 -y "aandg${index}" \
--stop ${REC_TIME} \
--timeout 30 \
-o $outfile
if [ $? -ne 1 -o `wc -c $outfile | awk '{print $1}'` -ge 10240 ]; then
break
elif [ ${RETRYCOUNT} -ge 5 ]; then
echo "failed rtmpdump"
exit 1
else
RETRYCOUNT=`expr ${RETRYCOUNT} + 1`
fi
done
####
####
if ( [ $STREAM = 'V' -o $STREAM = 'v' ] ); then
mv $outfile $outfile.flv
outfile=$outfile.flv
else
ffmpeg -i $outfile -vn -acodec copy $outfile.m4a >/dev/null 2>/dev/null
rm -f $outfile
outfile=$outfile.m4a
fi
gpg --options /home/user/.gnupg/opt.txt $outfile
DB=/home/user/.gnupg/Sessionkeys.db
key=`gpg -o /dev/null --batch --show-session-key $outfile.gpg 2>&1|
perl -ne 'print $1 if (/gpg: session key:\s+.(\w+:\w+)/)'`
sqlite3 $DB "insert into sKey values('$outfile.gpg', '$key');"
Update-crk.sh $working_dir/$outfile.gpg
#curl -s \
# -T "$upfile" \
# -u "$ftpaccount_pass" \
# --retry 20 \
# --retry-delay 10 \
# --connect-timeout 300 \
# --retry-delay 10 \
# --ftp-create-dirs \
# $ftpurl/$ftpdir/ > /dev/null
curl -s \
-T "$outfile.gpg" \
-u "$ftpaccount_pass" \
--retry 20 \
--retry-delay 10 \
--connect-timeout 300 \
--ftp-create-dirs \
$ftpurl/$ftpdir/ >/dev/null
curl -s \
-T "$outfile.gpg" \
-u user:pass \
--retry 2 \
--retry-delay 2 \
--connect-timeout 30 \
--ftp-create-dirs \
ftp://a.agqr.tk/public_html/Radio/`date '+%Y-%m'`/ >/dev/null
curl -s \
-T "$outfile.gpg" \
-u 'user:pass' \
--retry 10 \
--retry-delay 10 \
--connect-timeout 120 \
--ftp-create-dirs \
ftp://a.anispa.tk/public_html/Radio/`date '+%Y-%m'`/ >/dev/null
TW.pl "[$outfile.gpg] is uploaded." >/dev/null
rm -f $outfile.gpg
exit 0;
}}