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


私が自宅で使っているPC(ノート)はそれほど良いスペックではありません。それでもやっぱりC言語のソースをコンパイルしたり、重たいスクリプトを走らせたりする事があります。そんな時、横で淡々と流れていて欲しいustream.tvがブラウザ内をデカデカを乗っ取って、しかもリソースをどんどん食っていくのはとても耐え切れなかったりします。
ただもう最近は、ブラウザを使わずustream.tvを楽しんでいます。
今日はその方法をご紹介。

映像/音声ですが、Linux版に用意されているスタンドアローン版flashplayerを使っています。ネット上にあるFLVもコマンドラインから起動して閲覧出来ます。
# gflashplayer http://www.example.com/path/to/flv/example.flv
ustream.tvでは、flashを全画面で開く「Open in larger window」というリンクがありますが、このリンクはustream.tvのFLVプレーヤへの直接リンクとなっています。ですからこれをgflashplayerで起動すれば動画が見れます。
もちろんこのflashは、コントロールパネル付属のプレーヤでしか無く、このflash自身から実際のストリームを再生していますから再生していて中断しちゃった...なんて場合は再接続ボタンを押せばうまく再生し直してくれる場合があります。
この「Open in larger window」というリンクを取得し、gflashplayerに渡して再生する以下のシェルスクリプトを私は用意しています。
#!/bin/sh

GFLASHPLAYER=/usr/bin/gflashplayer

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

USC=`curl -s "http://ustream.tv/channel/$1" | grep 'Open in larger window' | sed -e 's!^.*<a href="/\([^"]*\)".*$!\1!'`
if [ "x$USC" == "x" ]; then
  echo "currently offline?"
  exit
fi
URL="http://ustream.tv/$USC"
echo playing $URL
$GFLASHPLAYER "$URL"
このシェルスクリプト「ustplayer」をコマンドラインから # ustplayer erogeek-con と実行しています。
twitterで、followerさんが「http://ustream.tv/channel/xxxxx 見てる」と言えば、この"channel"の後の部分、"xxxxx"を実行引数に渡します。
またchatですが、私が自宅で使っているOSはLinuxですからxchatというX Window/GTK2で動くIRCソフトウェアがインストール出来ます。ustream.tvでは「chat1.ustream.tv/6667」というIRCサーバが公開されていますから、わざわざブラウザを上げるまでもないのです。charsetを"utf-8"にさえしておけばchat出来ます。ただしustream.tvのIRCサーバはustream.tvアカウントの認証が必要になりますから、設定画面等でログインパスワードを設定しておく必要があります。

で、昨日開催された「エロギークカンファレンス」を見ていた時のキャプチャがこれ...

erogeek-con

余談ですが、xchat等PC-UNIX上でIRCソフトウェアを使われる方でお薦めしたいのがbitlbee。xinetdデーモンとしても動作するIRCサーバで、MSN,Jabber,ICQ等各種IMプロトコルを中継してくれます。Jabberを使えばGTalkとおしゃべり出来ますから、xchat一つ起動しておけばtwitterも出来るし、jaikuも出来るし、MSNチャットも出来るし余分なリソースを取られなくて嬉しい限りです。

2007/10/21 追記
ustream.tvのHTMLフォーマットが変更された模様。それにあわせシェルスクリプトを修正
#!/bin/sh

GFLASHPLAYER=/usr/bin/gflashplayer

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

USC=`curl -s "http://ustream.tv/channel/$1" | grep 'ustream\.tv/.*\.usc' | sed -e 's!.* src=\&quot;http://ustream\.tv/\([^&]*\)&.*$!\1!'`
if [ "x$USC" == "x" ]; then
  echo "currently offline?"
  exit
fi
URL="http://ustream.tv/$USC"
echo playing $URL
$GFLASHPLAYER "$URL"
Posted at by