ホーム > タグ > PSP

PSP

過去に作ったものをrhacoに置き換えてみる(psptube編)

借りてるサーバでアクセス解析のサービスが開始されたので早速アクセス解析を眺めていたら、予想外のものがアクセストップだった。
いままではASP型のアクセス解析(Google Analyticsとか)を使っていたから全く気がつかなかった。
アクセス数ランキング
このファイルってば、むかーしPSPで直接youtubeが見れないだろうか?と試行錯誤しながら、結局PSPに入ってるFlashのバージョンが低くて使えなかったのでそのまま「youtubewall」にしたやつのパーツの一部です。

今現在は、サムネイルこそwall状に表示されますが、クリックしても再生されません。youtubeのサイト上をPHPでスクレイピングしてflvの場所を探し出し、それをFlashに渡すような仕様なのですが、youtubeのサイトが当時とは変わっているため当然その部分が動かなくなってます。
なので、これを再度動くように、Rhacoで改修してみた。

以下、その部分のソース。

<?php
include_once("__init__.php");
Rhaco::import("generic.Flow");
Rhaco::import('tag.model.SimpleTag');
Rhaco::import("network.http.Browser");
Rhaco::import("lang.StringUtil");

Rhaco::constant("YOUTUBE_BASE_URL","http://www.youtube.com/watch?v=");

$flow = new Flow();

//yutubeの個別ID(/watch?v=以降の値)を渡す
$v = $flow->getVariable("v","3vdqWQScc7Y");

//Browserでyoutube内のページを取得
$browser = new Browser();
$page = StringUtil::encoding($browser->get(YOUTUBE_BASE_URL.$v));

//SimpleTagでスクレイピング開始
$tag = new SimpleTag();
$tag->set($page);
$scripts= $tag->getIn('script');

$lines = explode("\n",$scripts[2]->getValue());
foreach($lines as $key => $value){
    if( preg_match("/additionalStatsHonorsUrl/",$value)){
        break;
    }
    if( preg_match("/swfArgs/",$value)){
        $buf = explode('=',$value);
        $search = array('@ @','@{@','@"@','@:@','@,@','@;@','@}@');
        $match  = array('','','','=','&','','');
        $data = preg_replace($search,$match,$buf[1]);
    }
}

//出力
header("Content-type: application/xml");
$flow->setVariable("parm",urlencode($data));
$flow->write("sample_template.html");
?>

テンプレートはこんな感じ。

<?xml version="1.0" encoding="utf-8"?>
<rss>
<item title="http://www.youtube.com/get_video?{$f.escape($parm)}" />
</rss>

最後の出力部分はxmlを出力したいのですが結構ひどい感じです。
Rhacoでのうまいやり方はどんな感じなんだろか?

実行した感じはこんなんです。title要素をFlashで取得してflv表示って感じですね

PSPでYouTubeを見る!(っていうか見たい)

psptube
PSP(ver2.70以降)でFlashコンテンツの再生が可能となったのでPSPでYouTubeの動画を直接見れるんじゃね?!!と思い、実験用のコンテンツを作ってみた。

はてなブックマークからyoutubeに関わるエントリーRSSをさせる。
それを自前のPHPに食わせてFlashに読み込みやすいXMLに成型。
成型したXMLをFlashに食わせてFlash上に配置したコンボボックスに表示。
コンボボックスで選択した項目を配置した埋め込みビデオに表示させる。
という手順。

結果は・・・見事に失敗><
PSPのFlashってば「FlashPlayer6.0相当」なんだよなあ。
これだと外部flvファイルの再生はできない。
それができるのは「FlashPlayer7.0以降」・・・んー、惜しい!惜しすぎる!!
いつかPSPのFlashPlayerが7.0以降対応になるまでこのコンテンツはここに晒しておこう・・・シクシク
んでも、youtubeからflvファイルを取得する方法がわかったので良しとしよう。

Home > Tags > PSP

Search
Feeds
Meta

Return to page top