iwan

こんにちは、月日は流れ会社ではすっかり古株の iwan です。
今日は、自分の放送局を作ってみたい方に、Podcast サーバを作って iTunes で Podcast を購読するところまでを解説します。

Podcast をご存知でしょうか? Wikipedia によると、「ポッドキャスト(英: Podcast)とは、インターネット上で音声や動画のデータファイルを公開する方法の1つであり、オーディオやビデオでのウェブログ(ブログ)として位置付けられている。インターネットラジオ・インターネットテレビの一種である。」と書かれており、つまり音を綴ったブログですね。

私は 3 年ほど前からボランティアで東海地方のコミュニティ FM 番組の制作・収録を手がけており、番組 MC から番組を世界中に公開できないものか?という相談がきっかけで Podcast サーバを構築することになりました。

ボブディランの歌のタイトルのように、時代は変わり、今では誰もがいつでも気軽にインターネットを使ってブロードキャストできてしまう時代になったのですね。

さて、本題から外れてしまいそうなので、話を戻します。

iTunes の Podcast 関連情報の Podcast を制作する を読むと、 iTunes で Podcast を購読するためには、以下2点をクリアする必要があります。

  1. RSS 2.0 仕様に準拠したフィードを作成する。
  2. メディアファイルと作成した RSS フィードを置く場所を用意する。

今回は、DirCaster という RSS を自動作成してくれるオープンソースのソフトウェアを使用します。

DirCaster を利用することで、事前に設定ファイルで指定したディレクトリにメディアファイルをアップロードすると、自動的に RSS フィードに反映されるようになります。

事前に用意するもの

  • レンタルサーバ(PHPが利用可能なもの)
  • 配信する音源ファイル
    • 今回の記事で用意したのは自作の音源になります

作業の流れは以下のようになります。

  1. DirCaster を展開し、設定ファイルを編集する
  2. DirCaster をレンタルサーバにアップロードする
  3. メディアファイルのアップロード用のディレクトリを作成し、音源をアップロードする
  4. RSSフィードを取得しメディアファイルの情報が反映されていることを確認する
  5. iTunes をインストールする
  6. Apple IDを作成する
  7. iTunes を使って Podcast を購読する
  8. 新しいメディアファイルをアップロードして、フィードが更新されていることを確認する

今回使用するレンタルサーバ

私自身が運用していて、稼働実績があるのは、ロリポップ!レンタルサーバーのチカッパプランです。今回はチカッパプランの利用を想定して進めていきますが、他のレンタルサーバでもだいたい同じようにできると思います。

DirCaster を展開し、設定ファイルを編集

DirCaster をダウンロードします。 2014 年 7 月時点では、最新バージョンは DirCasterV09j.zip です。

DirCasterV09j.zip を展開すると以下の構造となっています。

DirCasterV09j
|-- .htaccess
|-- changelog for DirCaster.txt
|-- config_inc.php
|-- copyto_dircaster.php
|-- dircaster.php
|-- doppler.jpg
|-- DS_Store
|-- index.php
|-- juice_receiver.gif
|-- list.txt
|-- override.1st
|-- override.css
|-- override.js
|-- override.php
|-- override_ajax_json.php
|-- override_ajax_util.php
|-- override_notes.php.htm
|-- podcast_logo_grey.png
|-- ReadMe.1st
|-- Required-Remote-Media-Values.txt
|
|-- lib_getid3
|
`-- override_files

展開したファイルで設定変更が必要なのは、config_inc.phpです。
config_inc.phpで変更が必要な項目について説明します。

$remoteMedia
ローカルか外部のストレージサービスからの読み込みに対応するモードのどちらかを選択する。 今回はシンプルにローカルを参照するので、「0」とします。
$mediaDir
メディアファイルを置くディレクトリを指定します。今回は「audio」入力し、同名のフォルダを作成します。
$titleTAG
番組の名前を入力します。
$descriptionTAG
番組の説明文を入力します。
$linkTAG
番組を紹介しているHPなどのURLを入力します。
$copyrightTAG
著作権表記が必要な場合に入力します。

次に iTune Podcast で必要な項目について説明します。

$summaryTAG
番組の説明文を入力します。
$authorTAG
著者・作者の名前を入力します。
$ownerNameTAG
この番組のオーナーの名前を入力します。
$ownerEmailTAG
この番組のオーナーのE-mailアドレスを入力します。
$topCategoryTAG
iTunes Podcast で登録するカテゴリを選択します。
$subCategoryTAG
iTunes Podcast で登録するサブカテゴリを選択します。

index.phpは、私が使いはじめた頃にはなかったプログラムで、どうやらマイページを表示するようなのですが、今回は取り上げません。

配信するメディアファイルを用意します。
iTunes Podcast がサポートしているファイルフォーマットは以下の通りです。

  • m4a、.mp3、.mov、.mp4、.m4v、.pdf、.epub (参考)

DirCaster では、config_inc.php の $sftypes を以下のように定義しています。今回はこれをそのまま利用します。

    $sftypes = "(.mp3 .m4a .asf .wma .wav .avi .mov .m4b .m4v)";

DirCaster をレンタルサーバにアップロード

config_inc.php の編集が終わったら、契約したレンタルサーバーへソースをアップロードします。
アップロードするデータとして、ボランティアで制作しているラジオ番組データの使用許可をもらい、テスト用に test-radio.mp3 というデータを作りました。今回は FileZilla を使ってアップロードをします。
filezilla1

メディアファイルのアップロード用のディレクトリを作成し、音源をアップロード

audioディレクトリを作成します。
filezilla4
ディレクトリパーミッションを確認します。
filezilla2
filezilla3

[OK] をクリックし、作成した audio フォルダにテスト用のデータをアップロードします。

RSSフィードを取得しメディアファイルの情報が反映されていることを確認

feed1
item のところにアップロードしたファイルのデータが表示されていれば、DirCaster が自動生成し成功していることになります。

iTunes のインストールと Apple ID の作成

まず Apple のサイトから iTunes をダウンロードしてインストールします。簡単ですので詳細は割愛します。

次に Apple ID の作成ですが、今回は iTunes で決済不要のアカウントを作ります。
iTunes を起動して、App Store にアクセスし、適当にアプリを選択し、アプリケーションのアイコンの下にある「無料 App」をクリックします。「Apple ID を作成」のポップアップウィンドウが表示されるので、ウィザードにしたがって作成します。
この手順で進めていくと、お支払い方法の選択で、「なし」が表示されます。
詳しくは、Appleの公式サポートページに載っていますので参照してみてください。

iTunes を使って Podcast を購読

iTunes を起動する メニュー「ファイル」-「Podcast を購読」使って設定したフィードを取得します。
itunes1
itunes2

新しいメディアファイルをアップロードして、フィードが更新されていることを確認

先ほど作成した audio フォルダにファイルをアップロードします。以下は FileZilla を使ってのアップロードの例です。
filezilla5
iTunes に戻り、登録したRSSフィードを更新するとアップロードしたファイルが最新のフィードに反映されます。
itunes3

このように、DirCaster を使えば、お手軽に Podcast サーバを構築することができます。
昨今は、スマートフォンで簡単に録音・編集もできるので自分の放送局を作り楽しんでみてはいかがでしょうか?

参考サイト

Tags: , , , ,

ookoshi

Seleniumでの自動テストの運用方法

Posted Date: 2014-06-12 14:00
Author: / No Comments

こんにちは。品質管理グループのおおこしです。

今回は品質管理グループで行っている Selenium での自動テストの運用方法について書きます。
Selenium は Web アプリケーションのテストツールです。
セミナーでは導入についてよく聞きますが、現場でどのように運用しているかはあまり例を聞かないため、トライコーンの場合をまとめてみます。

日常的に行うこととして、最新状態の開発環境に対してスモークテストとして Selenium を毎朝実行しています。
毎日実行するのにはすぐに差異を見つけることと、テストデータを積み重ねる目的があります。
レポートを品質管理グループのメーリングリストに届くようにして出勤後に結果を確認しています。

失敗していたテストスイートについては内容を参照し、どのテストケースが失敗したかを確認した上で、再実行して再現確認と再現条件の特定をします。
バグであれば修正依頼をし、開発による変更ならテストケースの修正をします。

失敗するテストケースを放置すると修正が追うのが難しくなり、使われないテストケースになってしまうので早めの対応が大事です。
一般に指標として聞かれるのはケース数であったりレポートにカウントされる判定部分になりますが、トライコーンの開発で重視しているのは画面数です。テストのパターン数を増やすのも大事ですが、現在品質管理グループでは網羅性の向上を優先しています。
また、テストスイートはプロダクトの機能ごとにまとめるようにしています。これによりプロダクト側の機能の追加や修正に際し、機能ごとにテストスイートを作成したり修正していけば良いため、テストケース管理の見通しが良くなっています。

テストスイートおよびテスト対象サーバは setting.properties により切り替えを行えるようにしており、(1) 開発サーバに対しての最新のコードのテスト、(2) 本番サーバに対してのリリース版のコードのテスト、(3) テスト用に外部に提供しているサーバに対してのリリース版のコードのテスト、なども簡単に切り替え可能です。

lrwxrwxrwx 1 kreisel kreisel setting.properties -> setting.properties_lion_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_apibeta_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_apitest_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_dev_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_honban_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_lion_Kreisel

このように切り替えが容易なため、日次の実行以外に、メンテナンスを行う際のリグレッションテストにも利用しています。リグレッションテスト時はステージング環境で、リリースするコードに対してテストを実施します。

なお、テストスイート及びそこに含まれるテストケースは Subversion で管理しています。

トライコーンのクライゼルやコトシロなどのプロダクトはバージョンアップを継続的に行う派生開発を行っているため、同じテストを何回も繰り返します。自動テストは作成やメンテナンスの工数はかかりますが、日々実行していることと、確実な結果が出せることで元がとれていると思います。

過去の資産が多いことから現在は Selenium 1 を継続利用していますが、Selenium 2 への移行も進めています。これからもプロダクトの開発に合わせた運用方法を探しながら進めていこうと思います。

Tags: , , ,