*1  getmovie.rb - youtube の動画をダウンロードする ruby script

google videoやyoutubeとかの動画を落して保存。 を参考に ruby で youtube の flv をダウンロードするものを書いた。youtube 以外にも色々対応していて高機能な php をそのまま使えば良い気もするが、半分趣味と言うことで。

youtube の url を引数に与えるとタイトルをファイル名にしてダウンロードする。気が向いたら svn/trac にも登録するかも、程度で。

( Permalink | Comments (6) | tags: ruby  movie  )
YouTube動画を表示するような FrontRowプラグインを作れればてっとりばやいんだけど、プラグインの作り方がわからないので他の方法を考えます。 ~/Movieディレクトリ以下に配置した動画は FrontRowからも観られるので、YouTubeから観たい動画を自動的にダウンロードできるよ...
Comments
お!面白い。

yoosee は euc-jp なのか。俺はもう、legacy encoding には戻れん。
ってことで、locale を見て、ファイル名のエンコードを決める patch。
あと、ファイル名の先頭に微妙に 「_」が入ってたのを若干修正。

--- getmovie.rb.orig 2006-07-11 00:15:26.000000000 +0900
+++ getmovie.rb 2006-07-11 00:43:40.000000000 +0900
@@ -31,8 +31,18 @@
f.read
end
end
+
+ toOption = "-e" #default to EUC
+ charmap = `locale -k charmap`
+ if /charmap="([^"]+)"/ =~ charmap
+ case $1
+ when "UTF-8"
+ toOption = "-w8"
+ end
+ end
+
if /]*>(.+)/i =~ page
- filename = NKF.nkf('-e', $1.gsub(/
/, '')).gsub(/YouTube -/, '').
+ filename = NKF.nkf(toOption, $1.gsub(/
/, '')).gsub(/YouTube - ?/, '').
gsub(/^\s+/, '').gsub(/ /, '_') + '.flv'
end
2. yoosee at 2006-07-11 15:29
参考にして修正してみました。仕事で使っているノートはUTF-8なんだけど、自宅のマシンはレガシーなファイルが多いのでEUC-JPのままなんですよ。
そう言えばこのblogもEUC-JPのままだった。
うはは、Shift_JIS まではやろうかと思ったけど、JIS も対応にしたか。マニアww 。BSDとかには JIS locale とか存在するんだっけか。

まじめにやるなら、http の header と contents の meta タグ見て、locale の codeset に iconv で流し込むんだろうか。
4. yoosee at 2006-07-11 22:39
そもそも BSD には locale コマンド自体が無い気がするんで、真面目にやるなら ruby-locale あたりのライブラリ使うべきなのかも。と言いつつ、そもそも youtube 相手だから日本語タイトルって少ないかもしれず。iconv はめんどくさいしな…。
あぁ、今気づいた。 -w8 より -w/-w80 の方がいいかも。
BOM がついてて、ファイル指定しにくい。 orz。

iconv は、ruby なら Iconv.iconv(toCode,fromCode,string) でいけるから、簡単だよ。Iconv::InvalidEncoding と Iconv::IllegalSequence を rescue で捕まえとけばオッケー。Youtube は UTF-8 だろうから、fromCode は固定でもいいかもな。

とはいえ、もう個人的には必要ないなww
6. yoosee at 2006-07-12 07:23
-w にしました。iconv がめんどくさいって言ったのは、基本的に fromCode の guess が無いから。UTF-8 固定なら簡単か。ま、nkf で事足りるうちはそのままの方針で…。

Please write your comment. email address won't appear. Cannot use any HTML tags in comment.
コメントをお書き下さい。メールアドレスは公開されません。 またHTMLタグは利用できません。
Name   E-mail   URL
Comment

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

このエントリーのブックマーク

Monthly Archives

Select Month to read