Big Sky :: ブラウザを全く使わずにustream.tvを楽しむ方法その後、ustream.tvで何か変更があり、そのままでは使えなくなってしまったのですが、もういっかいチャレンジしたら見れる事が分かりました。映像/音声ですが、Linux版に用意されているスタンドアローン版flashplayerを使っています。ネット上にあるFLVもコマンドラインから起動して閲覧出来ます。
http://mattn.kaoriya.net/web/ustream/20071018005843.htm
答えは簡単でobjectタグのパラメータ値を全て足せば再生出来るURLになるという事。
たとえばさっきまで見ていたVimMの動画。
<object
id="viewer"
name="viewer"
width="480"
height="386"
allowfullscreen="true"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
ここから
<param name="movie" value="http://cdn1.ustream.tv/swf/4/viewer.137.swf?varnish=true" />
<param name="flashvars" value="loc=/&cid=19118&channelid=19118&share=false&group=channel19118&imu=medrect&autoResize=false&localid=4398457344a3f82bac4140&varnish=true&vrsl=c.4.158&" />
ここまで
</object>
これを結合して出来上がったURLにflashplayerスタンドアローン版でアクセスすれば良いのです。これをshellスクリプトにすると以下の様になりました。
#!/bin/bash
GFLASHPLAYER=/usr/bin/flashplayer
#GFLASHPLAYER=mplayer
if [ "x$1" == "x" ]; then
echo "usage: `basename $0` [channel]"
exit
fi
TMP=`mktemp /tmp/XXXXXX`
curl -s "http://www.ustream.tv/channel/$1" | grep "<param" > $TMP
URL=''
while read -r line; do
if [ ! -z $URL ]; then
URL="$URL&"
fi
URL="$URL`echo \"$line\" | sed 's/^.* value=\"\([^\"]\+\)\".*$/\1/'`"
done < $TMP
rm $TMP
if [ "x$URL" == "x" ]; then
echo "currently offline?"
exit
fi
echo playing $URL
$GFLASHPLAYER "$URL"
これでまたブラウザが楽になりました。