簡単にVideo PodcastができるPHPです。
配信する動画は別途準備してください。
<?php
require_once('Vodcaster.php');
$baseUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/vodcast/';
//動画の詳細なデータを配列に入れる
$items[] = array(
'title' => "タップダンサー"
, 'description' => "この華麗なステップ!"
, 'date' => "2006-11-18"
, 'url' => $baseUrl . "dance.mp4" //動画ファイルのURL
, 'path' => "dance.mp4" //サーバ上の動画ファイルへのパス
);
$items[] = array(
'title' => "枕係さん奮闘中"
, 'description' => "枕を出すのが僕の仕事!"
, 'date' => "2007-01-28"
, 'url' => $baseUrl . "makura.mp4"
, 'path' => "makura.mp4"
);
// 1. インスタンスを生成
$v = new VodCaster();
// 2. publicな変数に(必要に応じて)値をセット
$v->title = '日々是生活';
$v->link = $baseUrl;
$v->description = '心和む日常のビデオです。';
$v->encode = 'Shift_JIS';
// 3. 詳細データを渡してフィードを出力
$v->feed($items);
<?php
class Vodcaster {
public $title; //Vodcast全体のタイトル
public $link; //Podcast情報に表示するURL
public $description; //説明欄に表示する文章
public $language = 'ja';
public $encode = 'UTF-8';
/**
* @param array $items array(title, description, date, url, path)
*/
public function feed(array $items) {
$f = '<?xml version="1.0" encoding="' . $this->encode . '"?>' . "\n";
$f .= '<rss version="2.0">' . "\n";
$f .= "<channel>\n";
$f .= '<title>' . $this->_h($this->title) . "</title>\n";
$f .= '<link>' . $this->link . "</link>\n";
$f .= '<description>' . $this->_h($this->description) . "</description>\n";
$f .= '<language>' . $this->language . "</language>\n";
foreach ($items as $item) {
$f .= "<item>\n";
$f .= '<title>' . $this->_h($item['title']) . "</title>\n";
$f .= '<description>' . $this->_h($item['description']) . "</description>\n";
$f .= '<pubDate>' . date_format(new DateTime($item['date']), DATE_RSS) . "</pubDate>\n";
$f .= '<enclosure url="' . $item['url'] . '" length="' . filesize($item['path']) . '"';
$f .= ' type="video/mp4" />' . "\n";
$f .= "</item>\n";
}
$f .= "</channel>\n";
$f .= "</rss>\n";
header('Content-type: application/rss+xml'); //これでなくても動くけど
echo $f;
}
private function _h($value) {
return htmlSpecialChars($value, ENT_QUOTES);
}
}