ここはユニの生配信の情報のまとめWikiです。配信でよくある質問や、配信中の詳しい内容・途中経過をまとめていきます。

Perl勉強配信

ここでは、2010/02/26に生配信したPerlの勉強配信の細かい内容について書いていきます。

詳細

ユニ謹製 マルチストリーム に、更新チェック機能をつけようとして、レンタルサーバで普及しているPerl(CGI)を使って実装しようとします。

おおまかな作業の流れ

  1. 配信用のレンタルwikiを作ります
  2. 簡単なPerl初歩の初歩をおさらい
  3. 作る流れを表にまとめます
  4. Perlコードを書いていきます。
  5. PCでテストして、Justinの配信チェック

ユニのPerl度は?

ゼロからです。
「一週間でマスターするCGI for Windows 福島靖浩 著」
ISDN 978-48399904302

JavaScriptをちょっとだけ、ActionScriptはちょっと。
C言語はほんのちょっとだけ。

勉強の流れ

Windows7 に Active Perlをインストールして
Perl Editor(メモ帳)っていうソフトを使ってコーディングしていきます。

コマンドプロンプトにPerlのパスを通して
動作のチェックをします。

上手く動いたら PerlをCGI仕様に書き換えます
ローカルのApache上で動かして動作を確認します

Sitemixっていう無料レンタルサーバがCGIを使えるので
そこにアップして動作確認します。

上手く情報が取得できたら。Javascriptから
保存したファイルを読み取ってHPに反映させます。

配信チェック機能の概要

Justin/Ustreamの登録チャンネルリストを
APIを使って、「配信中かどうか」を調べます。
その情報を status.dat に保存します。

マルチストリームのHPから
status.dat をJavascriptで読み取って
「現在配信中のチャンネル一覧」を表示します。

必要な機能

  • 定期的に実行する仕組み→アクセス時にチェックする仕組み
  • JustinのAPIから配信中を知らせる部分
  • Webのデータを読み取る仕組み
  • 文字データを整形する仕組み
  • ファイルを保存・追加書き込みする仕組み

※日本語は全く使いません。

Perlのおさらい

  • 変数は$ 配列は@ 連想配列は%から始まる
  • print "文字列","文字列";で出力できる。
  • プログラムの行の最後には;
  • if  elsif else for の使い方は普通と同じ
  • ""の中の変数は解釈される。 ''の中は絶対にそのまま。
  • foreach(配列) で、配列の中の要素を$_に代入して全要素でループできる。

JustinAPIの仕様

http://api.justin.tv/api/stream/list.xml?channel=アカウント名,アカウント名,アカウント名…
にアクセスして、帰ってきたXMLの中に

配信してない時は<results></results>になる。

”<channel_url>http://www.justin.tv/アカウント</channel_url>”という文字列があれば配信中なので
完全一致検索<  で もし一個以上見つかれば=配信中
見つからなければ = 配信してない
と判断すればいい

プログラムのフローチャート

HP:マルチストリームを開く
    ↓
CGI:もし前回のデータ保存時から一定時間経っていれば発動する
    ↓
CGI:JustinのXMLデータを取得する→データを保存する
    ↓
CGI:XMLのデータから、配信中のチャンネルを抽出して保存。
  (一つの配信chを調べる→配信中なら1、次〜みたいな)
    ↓
AJAX: ボタンを押したらdatファイルを読み取って配信中リストを表示させる



Justinのライブ情報のDAT

その後色々あって完成しました。今は主に自分用の配信チェックページとして稼働中です。

メンバーのみ編集できます