読者です 読者をやめる 読者になる 読者になる

COBOL技術者の憂鬱

COBOLプログラマは不在にしています

WEBアプリを見よう見まねで作成(その後)

まだ第一段階ですが、完成しました。
フォームから入力されたキーワードでYouTubeのTAG検索を実行して、上位5件を表示するというものです。YouTubeで直接TAG検索実行するのと何ら変わりはないのですが、WEB上のAPIを使ったサーバサイドプログラミングというものがどんなものなのか大体の感じはつかめたと思います。

ソースはこんな感じになりました。20行程度のベタ打ちです。COBOLエンジニア丸出しで恐縮です・・

#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"

require "cgi-lib"
require "youtube"
require "kconv"

input = CGI.new
inputdata = Kconv.toutf8(input["senddata"]) 

youtube = YouTube.new 'DEVELOPER ID'
videos = youtube.videos_by_tag(inputdata,1,5)

print '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
       <title>test</title></head><body>'
print "TAG = #{inputdata}"
print "<P>"

videos.each { |video| print '<object width="225" height="170">
             <param name="movie" value="http://www.youtube.com/v/' + video.id + '">
             </param>
             <param name="wmode" value="transparent"></param>
             <embed src="http://www.youtube.com/v/' + video.id + 
             '" type="application/x-shockwave-flash" wmode="transparent" 
             width="225" height="170"></embed>
             </object>' + video.title + '<P>'}

print "</body></html>"

わずか20行程度のソースなので、ほとんど何もしていないのですが、それは先日ちょっとお話したように、こちらのインターフェースを使用させていただいているためです。これがなかったらXMLの扱いとか他にもいろいろと大変だったと思います。
ただこのインターフェース、標準ライブラリにはないものを色々と使用しています。ローカル環境ではRubyGemsで自動インストールされるのですんなり動くのですが、同じことをサーバー環境でどうやればよいのかがわからずに一苦労しました。自分でソース調べて、必要なライブラリを同じディレクトリに置くだけでよかったんですね。


参考:
RubyCGI.org RubyでCGIを作ろう
Rubyist Magazine - Ruby ビギナーのための CGI 入門 【第 1 回】 初めての CGI プログラム
Page not found · GitHub Pages