2009/07/11


またさらに動かなくなってしまいました。
(再)ブラウザを全く使わずにustream.tvを楽しむ方法

その後、ustream.tvで何か変更があり、そのままでは使えなくなってしまったのですが、もういっかいチャレンジしたら見れる事が分かりました。

http://mattn.kaoriya.net/web/ustream/20090622220622.htm
今度の変更は、paramに&(アンパサンド)が入ったのと、IE対応による重複したparam要素です。
でも抽出しなきゃ行けない値は変わりません。
#!/bin/bash

FLASHPLAYER=/usr/bin/flashplayer

if [ "x$1" == "x" ]; then
  echo "usage: `basename $0` [channel]"
  exit
fi

TMP=`mktemp /tmp/ustplayer.XXXXXX`
curl -s "http://www.ustream.tv/channel/$1" |\
    /bin/grep "<param name=\"\(flashvars\|movie\)\"" |\
    /bin/sed -e 's/&amp;/\&/g' -e 's/^\s*//g' |\
    /usr/bin/sort |\
    /usr/bin/uniq > $TMP
URL=`cat $TMP | sed -ne 's/^\s*<param name="movie" value=\"\([^\"]\+\)\".*$/\1/p'`
URL=$URL\&`cat $TMP | sed -ne 's/^\s*<param name="flashvars" value=\"\([^\"]\+\)\".*/\1/p'`
rm $TMP

if [ "x$URL" == "x" ]; then
  echo "currently offline?"
  exit
fi
echo playing $URL
$FLASHPLAYER "$URL"
負けません。
もうそろそろ面倒くさくなってきたので、githubに置いて更新して行きます。
mattn's ustplayer at master - GitHub

ustream.tv player using standalone flashplayer

http://github.com/mattn/ustplayer/tree/master
Posted at by



2009/06/23


以前こんな記事を書いた事がありました。
Big Sky :: ブラウザを全く使わずにustream.tvを楽しむ方法

映像/音声ですが、Linux版に用意されているスタンドアローン版flashplayerを使っています。ネット上にあるFLVもコマンドラインから起動して閲覧出来ます。

http://mattn.kaoriya.net/web/ustream/20071018005843.htm
その後、ustream.tvで何か変更があり、そのままでは使えなくなってしまったのですが、もういっかいチャレンジしたら見れる事が分かりました。
答えは簡単で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"
これでまたブラウザが楽になりました。
Posted at by



2008/01/31


以前書いた、「ブラウザを全く使わずにustream.tvを楽しむ方法」という記事、なかなか好評だったのですが、 IRCチャットはともかくスタンドアロンFLASHプレーヤがLinuxしかないので、Windowsの方にはそれ程ありがたい記事では無かったかもしれません。

erogeek-con
※Linux版スタンドアロンFLASHプレーヤ

って事でWindows版のUstreamプレーヤを作りました。
  • GUIツールキットはFLTK2
  • FLASHはブラウザが使用しているActiveXだけを表示
  • 入力エリアにチャネル名を入力するだけで再生
名前はFLTK2アプリケーションには必ずと言っていい程、先頭に「FL」が付くので、「flUstPlayer」としました。
実行画面はこんな感じです。

続きを読む...

Posted at by