2006年11月15日

YouTube APIの最も簡単な説明書(日本語版) このエントリーをはてなブックマークに追加

こんにちは、神山繁です(嘘です)。

YouTube TAGというブログパーツをつくってみた のコメント欄に ゆうすけさん から、
YouTube TAG Search のスクリプトの配布をして欲しい

という依頼があった。

っと、YouTube APIを利用してみたい人は、他にもいるかも(いない?)と思い、僭越ながらりょーちのしょぼいscriptを公開してみることにしてみた。

で、単にscriptを公開してもなんだかよくわからないと思い、実行例とそのソースにコメントを入れてみた。



基本的には、YouTube APIは YouTube Developer APIs で公開されている下記の7つの関数を利用することになる。
youtube.users.get_profile
youtube.users.list_favorite_videos
youtube.users.list_friends
youtube.videos.get_details
youtube.videos.list_by_tag
youtube.videos.list_by_user
youtube.videos.list_featured
で、この中の youtube.videos.list_by_tag を利用するものを解説してみた。

youtube.videos.list_by_tag では、YouTube内でユーザが付けたタグを検索キーとして検索し、検索結果をXMLファイルで返してくれるっぽい。
REST InterfaceXML-RPC Interface の2種類を利用できるが、今回はREST Interfaceを利用している。

以下、利用にあたっての注意事項っす。

YouTube のサイトの アカウントを持っている場合、http://www.youtube.com/my_profile_devにアクセスすると Developer ID が表示されていると思います。
APIの利用にはこの Developer ID が必要です。

ソースの一番初めの方で
define("DEVID","xxxxxxxxx");

などとしておくのがよいでしょう。

youtube.videos.list_by_tag のパラメータを見てみると、GETメソッドで渡すパラメータは
・method
・dev_id
・tag
・(page)
・(per_page)
の5つになっています。

method  : youtube.videos.list_by_tag
dev_id  : 上の行のdefineで定義したDEVID になります。
tag   : 探したいタグ(UTF-8でURLエンコードされたもの)
page   : 受け取ったデータの件数が数ページになる場合、その何ページ目を表示するか
per_page : ページングを何ページ毎で区切るか(デフォルトは20で最大100)

で、これらを念頭に入れ、REST APIの呼び出し用のURLを作ります。
$tagは探したいタグ(UTF-8でURLエンコードされたもの)が入ります。

なので、これらをGETメソッドで
http://www.youtube.com/api2_rest
にわたしてあげればよいでしょう。
$urlというURLを格納する変数にこんな感じに入力してみます。

$url = "http://www.youtube.com/api2_rest?
method=youtube.videos.list_by_tag&dev_id=".DEVID.
"&tag=".$tag."&page=1&per_page=5";

※改行してますが実際は1行です。

$tagはUTF-8でURLエンコードされた値が入ります。

で、あとはこれを SimpleXML関数 で処理すればよいっす。

$data = simplexml_load_file($url);


で、$dataには連想配列としてXMLファイルの全てのデータが入りますので、あとは簡単。

foreach($data->video_list->video as $item){

}


って感じで$itemの中身を好きに取り出してみればよいっす。

こんなのでわかります?

YouTube APIの最も簡単な説明 にはもうちょい詳しく書いてあるのでそちらを参考にしてもらえればよいかと思われます。

#って、現在YouTubeメンテナンスで落ちてるじゃん・・・orz
posted by りょーち | Comment(21) | TrackBack(3) | Web周辺技術

2006年11月14日

YouTubeのお気に入りを高速表示するツール このエントリーをはてなブックマークに追加

こんにちは、TM NETWORKでお馴染みの小室等です(嘘です、ってそれ間違い・・・)
何の意味もなくまたもやこんなの作ってみた。



ユーザIDを入力するとYouTubeの検索一覧よりも(多分)速くYouTubeのMyFavorite一覧を表示します。

YouTubeの一覧表示だと、10件ごとにしか表示されないけど、これならよりはやく自分のブックマークした動画を見ることができるっす。
余計な機能はかなり排除したので(実際に検索で利用している関数は8行くらいだし)、多分結構はやいっす。

多分便利です。
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2006年11月09日

【疑問】SimpleXMLで読み込むXMLが正しいXMLかどうかを知る方法【教えて】 このエントリーをはてなブックマークに追加

こんにちは、藤竜也です(嘘です)。

phpでほにゃほにゃとテキトーなプログラムを作っているのだが、よくわかんなくなってきた。

phpであるサイトのRSSを取得する際に、simpleXMLを使うとこんな感じになる。

$xml = simplexml_load_string($xmlstr);

ファイルとして取得する際は、
$xml = simplexml_load_file($xmlstr);


って感じになるのだが、例えば simplexml_load_string(); で読み込もうとしている $xmlstr が正しいXMLファイルであるかどうかはどうやって分かるのであろう?

正しく読み込まれたなら、$xmlにはXMLデータが配列として取得され、

$urllist = array();
$urltitle = array();
foreach ($xml->item as $item) {
    $urllist[] = $item->link;
    $urltitle[] = $item->title;
}


って感じで配列にデータを取得してほにゃほにゃしたりできるのであるが、これはあくまでも$xmlにキチンとしたXMLデータが取得されているときに限る。
なので、正しくは、

if ( $xml が、ホントにXMLだったら ){
    $urllist = array();
    $urltitle = array();
    foreach ($xml->item as $item) {
        $urllist[] = $item->link;
        $urltitle[] = $item->title;
    }
}else{ //XMLってのが偽りならば
    なんだがエラー処理
}


って感じになるはずである。で、この赤い部分をどーやって書けばいいのかりょーちにはよくわかんないっす。うーむ。

非常にシンプルな問題だと思うのだが、エライ人、教えてくまさい。

posted by りょーち | Comment(3) | TrackBack(1) | Web周辺技術

2006年11月08日

はてなブックマークで情報感度を調べる方法(案) このエントリーをはてなブックマークに追加

こんにちは、コニタンこと小西博之です(嘘です)。

意味もなくこんなことを考えてみた。

はてなブックマークで沢山のブックマークをされているサイトを初めの方にブックマークしている人がいたら、その人の情報感度は結構いいかもと思ったりする。

で、方法案。
はてなブックマークしたあるサイトを他に何人ブックマークしていて、自分は何人目かを調べる。

Aの記事をブックマークしている人40人のうち1番目にブックマークしていたら
No 1 : point = 40 / 1 * 40 = 160 (*)
No 2 : point = 40 / 2 * 40 = 80
No 40 : point = 40 / 40 * 40 = 1

Bの記事をブックマークしている人4人のうち3番目にブックマークしていたら
No 1 : point = 4 / 1 * 4 = 16
No 2 : point = 4 / 2 * 4 = 8
No 3 : point = 4 / 3 * 4 = 5.33 (*)
No 4 : point = 4 / 4 * 4 = 1

Cの記事をブックマークしている人2人のうち2番目にブックマークしていたら
No 1 : point = 2 / 1 * 2 = 2
No 2 : point = 2 / 2 * 2 = 1 (*)


こうやって、あるユーザの全てのはてなブックマークに対して調べていく。

このポイントを
P(X,Y) = X / Y * X
X = ある記事ではてなブックマークされている全ての数
Y = ある記事ではてなブックマークしたある人の順番


って感じで定義しておく。

この計算方法からわかるように、既に自分のブックマークしているサイトの被ブックマーク数が増えたらポイントが自動的に増えていく。

ただ、こうすると、なんでもかんでもブックマークしている人のポイントが高くなるので、そのユーザのブックマーク総数 n でポイント数を割ってみる。

( Σ Pk(Xk , Yk) ) / n
(k = 1 ... n)


上の例だと、

( Σ Pk(Xk , Yk) ) / n = ( 160 + 5.33 + 1 ) / 3 = 55.44


とかね。

この数値で何が調べられるってわけじゃないけど、なんか突き詰めたらオモシロそう(な気がする)。
この方法では、なんでもかんでもブックマークしている人が必ずしも高いポイントを取得するわけではないということである。必要なのはブックマークしたスピードとその情報にどの程度被ブックマークがつくかって感じである。

どうかねぇ?(誰か作ってくれないかなー)

#でも、早いもの勝ち感は否めないけど・・・orz
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2006年11月07日

類似サイトを検索できる:similicio.us このエントリーをはてなブックマークに追加

こんにちは、金子信雄です(嘘です)。

Webサイトを徘徊していると、今見ているサイトと似たようなサイトはどっかにないかねぇと思ったりする。
こういうのは検索エンジンを使ってもなかなか探せない。
何故難しいかってーと、やっぱ、コンピュータでは「このサイトとこのサイトが似ている」って判断するまでの言語解析ができないからじゃないかねぇ・・・

しかし、これをやってのけるサービスがあるっぽい(知らんかった)。



名前から分かるよーに、このサービスは del.icio.us のAPIを利用しているっぽい。
del.icio.usのブックマークを分類・分析して、被ブックマークのリンクの傾向から似ているって判断するようである。

http://www.techcrunch.com/で試してみたらそれっぽいものが表示された。

日本でもはてなブックマークAPIなどを使えば面白いものができそーだ。
誰か作ってくれないかなぁ・・・(りょーちでは無理っす)
posted by りょーち | Comment(2) | TrackBack(0) | Web周辺技術

2006年11月06日

Lyricsfly YouTube Project このエントリーをはてなブックマークに追加

こんにちは、剛田ジャイ子です(嘘です)。

YouTube で海外の音楽を聴いたりしていると、やっぱ、哀しいかな日本人。歌詞がよくわかんないっす。

で、そんなときは lyricsfly.com が頼りになるっす。

だけど、いちいち検索するのは結構面倒なので、YouTubeのPVと歌詞をマッチングさせたいと思ったりした。

マッチングは勿論自動ではできないので、手動でちまちま登録するしかないのだが、どーせなら、いろいろ登録しあえば便利になるのではと思い、勝手にしょぼいプロジェクトを立ち上げてみた。



ようするに、YouTubeのURLとlyricsfly.comのURLを無理矢理対応付けましょうってことをやりたいのである。

YouTube で海外のPVを見つけたら、 lyricsfly.com で歌詞をすかさず検索。検索結果として表示されたURLをlyricsfly URL:とYouTube URL:に夫々入力して、「join video and lyrics」のボタンを押すだけ。登録したものは歌詞と動画がマッチングしてちょっと嬉しい。ホントにそれだけ。

沢山登録して貰えると結構嬉しいっす。

どうかねぇ・・・
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2006年11月01日

Simple RSS Tickerを作ってみた このエントリーをはてなブックマークに追加

こんにちは、たかたかしです(全くの嘘です)。

ブログパーツをさがせ の satokoto さんのところで紹介されていた RSSTicker Factory が結構かっこよかったので、あそこまでは高機能ではないが、りょーちもシンプルなのを作ってみた(satokotoさんの紹介記事を参照)。




Simple RSS Ticker は、テキトーなRSSを入力するとその記事タイトルをスクロールして表示しますってよーなものです。
表示イメージはこんな感じ。



スクロールの部分は argilla: aScroller を利用させていただいております。
CSSの設定はこのファイルを参考にしてください:style.css

「item_sc」というクラスがリンク部分に割り当てられています。
スクロールバーの表示部分は、「scroller-h」というidを割り当てています。

マウスカーソルをのせると、スクロールが止まり、リンクをクリックすることで記事へリンクします。 RSSTicker Factory さんのところはRSSのDescriptionを拾ってきているので結構かっちょいいのだが、りょーちのは至ってシンプル・・・orz

なんとなく、テキトーに作った感じが丸分かりだが、まあ、お遊びってことで・・・(ってこれ、ちゃんと動いているのか?)
posted by りょーち | Comment(1) | TrackBack(1) | Web周辺技術

2006年10月27日

Wikipedia検索窓 このエントリーをはてなブックマークに追加

こんにちは、前田犬千代・竹千代です(嘘です)。

SimpleAPIさんのところでリリースされたWikipediaAPIがかなりイケてるのでなんだかわからないけどブログとかホームページにWikipediaの検索窓を簡単に貼り付けて検索できるよーなものを(殆どサンプルそのままだが)作ってみた。

ブログパーツ風味だがデザインを変えたりすることは(面倒なので)できないよーに作ってしまった。機能を利用するだけなら下記URLからタグを取得すれば(一応)ブログなどに貼り付けたりできるっぽい。

Blogなどに貼り付けるサイズを指定するとHTMLタグが表示されるっぽいので、それを利用してみるとよかろう。



こんな風に貼り付けられるっぽい。


まあ、実用性はないので、あくまでもお遊びってことで・・・
続きを読む
posted by りょーち | Comment(4) | TrackBack(1) | Web周辺技術

2006年10月26日

ページのリンク一覧を表示するブログパーツを作ってみた このエントリーをはてなブックマークに追加

こんにちは、勝野洋です(嘘です)。

何に使えるのかよくわかんないんだけど、ページ内のリンク一覧を表示するブログパーツを作ってみたかったのだが、Firefoxではどーも動きがへんな気がする・・・

Windows Internet Explorer 7 では動作確認できたんだけどな・・・(うーむ、どこがおかしいのか?)。

設置方法は簡単でこんな感じに記載する。

<script type="text/javascript" src="http://ryouchi.up.seesaa.net/js/linklist.js"></script>
<button onclick="showLinkList('thisPageLinkList')">このページのリンク一覧</button>
<div id="thisPageLinkList"></div>


そーすると、下記のよーになるはず。





thisPageLinkList の部分はリンク一覧を表示するためのdivタグのid属性に合わせるよーにすればよい。
また、divタグにstyle属性を付けたりするのもよかろう。

で、これ作ってて思ったんだけど、Internet Explorer と Firefox ではjavascriptのinnerHTMLの扱いが微妙に異なるよーな気がする。

FirefoxやInternet Explorerであるdivタグ内にinnerHTMLで文字やタグを設定する際、divタグのidがABCだった場合、

document.all.item("ABC").innerHTML ="hogehoge";

って感じにするっぽい。
で、一度innerHTMLで表示したものを消そうとしたときに、りょーちとしては、

document.all.item("ABC").innerHTML ="";

ってやればよいと思ったのだが、こーすると、internet explorerではdivタグがすっきりと消えないよーな気がする・・・ うーむ、なんでだろ? 偉い人教えてちょーだい。

で、ここまで作ってみたのだが、需要がある、ないって前に、どーも何に使えるのかいまいちよくわかんないっす・・・orz

まあ、こんなこともできるらしいということで(謎)。
posted by りょーち | Comment(1) | TrackBack(0) | Web周辺技術

2006年10月18日

YouTubeのお気に入りを一覧表示するYouTubookmarkを作ってみた このエントリーをはてなブックマークに追加

こんにちは、アゴで笑う健康法でお馴染みのアゴ勇です(嘘です)。

YouTube がどこでも人気らしい。Google が買収に乗り出そうが、ユーザにとってはどーでもよい話しだったりするのでそのあたりは このあたりを検索 してもらえればよいであろう。

で、すっかりりょーちもYouTubeのユーザだったりするのであるが、YouTubeを利用していて結構面倒だなーと思うのがMy FavoriteというYouTube上のお気に入りの管理だったりする。

YouTubeでは動画やその他の検索結果は10件づつ表示され、10件を越えたものに関しては次のページへとページング処理がなされるのだ。つまり、一度に10件以上動画リストを確認することができない。

これはちょいと致命的かも。ちなみにりょーちのお気に入りに入っている動画は こんな感じ。2006年10月現在で190件くらいある。そんなにヘビーユーザでもないりょーちでさえこんなにあるのだから、他の人々はどーやって管理しているのだろう・・・

そこで思ったのが YouTube API を利用して外部からブックマークを閲覧すればよいのだということに気づいた。

YouTubeAPIでは、下記のAPIが利用できる。
■User Information
youtube.users.get_profile
youtube.users.list_favorite_videos
youtube.users.list_friends
■Video Viewing
youtube.videos.get_details
youtube.videos.list_by_tag
youtube.videos.list_by_user
youtube.videos.list_featured


この中の youtube.users.list_favorite_videos と youtube.videos.get_details を利用して、下記のよーなものをつくってみた。



上記サイトに行き、YouTubeのユーザIDを入力するとYouTubeのMyFavoriteの一覧を探してきてリストに表示する。

一覧表示されたリストを選択すると動画がが再生されるのは当たり前だが、既に削除された動画についてはリストの前に[orz...]というマークをつけるようにしてみた。

一覧表示されたリストにマウスカーソルを合わせると、動画のプレビュー画面と動画を登録したユーザ名が表示される。
ユーザ名をクリックすると、そのユーザのMyFavoriteも表示するよーにしてみた。

ユーザID入力後に表示されるページをブックマークしておけば、何時でも好きなときに呼び出せるので便利。
作った自分が言うのも変だが、自分で使ってみて驚くほど便利なので、YouTubeヘビーユーザは一度おためしあれ。

posted by りょーち | Comment(2) | TrackBack(0) | Web周辺技術