▼ 2008/07/04(金) ポッドキャスト支援用rubyスクリプト
ポッドキャストをちょっとやってみようと思ったんだが、ちょうど使い勝手のよいソフトも見つからなかったので、Rubyの勉強もかねて、ポッドキャスト支援用のrubyスクリプトを作ってみた。podcast.zip
(ipodは持ってないのでiTunes+ipodの組み合わせはできない)
ほとんど素人なのに、多少は役に立つものが作れちゃうRubyはすごいかもしれない。
コードも100行以下でできてしまった。
podcast.rbを実行すると、同じフォルダにあるpodcast_rss.txtを読み込んで、最新のコンテンツを自動でダウンロードしてくれます。
オーディオプレイヤーが、PCに挿すと単なるUSBメモリとして認識される物の場合は「Podcast」というフォルダを作って、その中にpodcast.rbとpodcast_rss.txtを置いて実行すると便利だと思う。
うちの環境

podcast_rss.txtの書式は、こんな感じ
RSSのURLのすぐ下の行の"落語"とか"読売"+"コンテンツの元ファイル名"というファイル名でpodcast.rbと同じ場所に保存する。
たとえば、"読売080704.mp3"というファイル名で保存されたりする。
それ以外の行は無視。今のところ行頭の#も特に意味はない。
"http://〜〜〜"の行が連続しちゃうとたぶん変なことになると思う。
すでに同じ名前のファイルが保存されている場合は、ダウンロードを行わない。
ダウンロードの進行状況は表示されないので、ちゃんと動いてるかわかりにくいとこが難点。
うちの環境では落語のダウンロードは時間かかってちょっと不安になった。
podcast.rbの実行にはRubyのインストールが必要。
exerbでexeファイルに変換しようと思ったんだけど、なぜかうまく変換できなかった。
2008.08.28
成功しました。exeファイル実行するだけで使えます。
でも実行ファイルサイズ1.6Mとかえらいでかくなった。インタプリタ内蔵だから仕方ないのかな。
WindowsのRubyインストールは、ActiveScriptRubyがおすすめ。
今後はプレイヤーがの容量が足りなくなったら古いファイルを自動で消す機能とかつけようかなと思ってる。
だけどちゃんと作れるか不安。
あと、PCに接続したら自動でダウンロード開始するように「Autorun.inf」を作ろうと思ったんだけど、どうやらそれは簡単にはできないらしいのでたぶん断念。
以下 ソースコード
プログラミングはほとんど趣味でしかやってないので、改善の余地はいろいろあると思う。
(ipodは持ってないのでiTunes+ipodの組み合わせはできない)
ほとんど素人なのに、多少は役に立つものが作れちゃうRubyはすごいかもしれない。
コードも100行以下でできてしまった。
podcast.rbを実行すると、同じフォルダにあるpodcast_rss.txtを読み込んで、最新のコンテンツを自動でダウンロードしてくれます。
オーディオプレイヤーが、PCに挿すと単なるUSBメモリとして認識される物の場合は「Podcast」というフォルダを作って、その中にpodcast.rbとpodcast_rss.txtを置いて実行すると便利だと思う。
うちの環境
podcast_rss.txtの書式は、こんな感じ
#ぽっどきゃすてぃんぐ落語 http://podfeedsp.podcastjuice.jp/app/rss_convert.cgi?url=http%3A%2F%2Fwww.podcastjuice.jp%2Frakugo%2F 落語 #ECC 英会話 Podcasting 知ってる単語でこんなに話せる! http://www3.eccweblesson.com/podcast/verbs.xml 英語ECC #日本経済新聞<総合版> http://nikkei.hi-ho.ne.jp/podcast/kiku4.xml 日経総合 #読売ニュース ポッドキャスト : YOMIURI ONLINE(読売新聞) http://podfeedsp.podcastjuice.jp/app/rss_convert.cgi?url=http%3A%2F%2Fyp%2Dyol%2Ecocolog%2Dnifty%2Ecom%2Fpodcast_yomiuri_online%2F 読売"http://〜〜〜"はRSSファイルのURLを指定する。
RSSのURLのすぐ下の行の"落語"とか"読売"+"コンテンツの元ファイル名"というファイル名でpodcast.rbと同じ場所に保存する。
たとえば、"読売080704.mp3"というファイル名で保存されたりする。
それ以外の行は無視。今のところ行頭の#も特に意味はない。
"http://〜〜〜"の行が連続しちゃうとたぶん変なことになると思う。
すでに同じ名前のファイルが保存されている場合は、ダウンロードを行わない。
ダウンロードの進行状況は表示されないので、ちゃんと動いてるかわかりにくいとこが難点。
うちの環境では落語のダウンロードは時間かかってちょっと不安になった。
podcast.rbの実行にはRubyのインストールが必要。
2008.08.28
成功しました。exeファイル実行するだけで使えます。
でも実行ファイルサイズ1.6Mとかえらいでかくなった。インタプリタ内蔵だから仕方ないのかな。
WindowsのRubyインストールは、ActiveScriptRubyがおすすめ。
今後はプレイヤーがの容量が足りなくなったら古いファイルを自動で消す機能とかつけようかなと思ってる。
だけどちゃんと作れるか不安。
あと、PCに接続したら自動でダウンロード開始するように「Autorun.inf」を作ろうと思ったんだけど、どうやらそれは簡単にはできないらしいのでたぶん断念。
以下 ソースコード
プログラミングはほとんど趣味でしかやってないので、改善の余地はいろいろあると思う。
require 'rss'
#コンテンツのURLを受け取ってsavefile(ファイルパス)にファイル保存(上書き)
def get_content(url,savefile)
begin
content = open(url)
f = File.open(savefile,"wb")
f.write content.read
f.close
rescue => ex
print ex.message,"\n"
end
end
#RSSを受信して、同じファイルが保存済みでなければダウンロードする
def get_rss(url,name)
begin
rss = RSS::Parser.parse(url,false)
#rss.items.each{|item| #コンテンツ根こそぎダウンロードは自重
item = rss.items[0]
content_url = item.enclosure.url
print content = name + content_url.split('/')[-1] #ファイル名取得
unless FileTest.file?(content)
print " ",content,"\n ",content_url,"\n のダウンロードを開始\n"
get_content(content_url,content)
print " ",content,"のダウンロードを終了\n"
end
#}
rescue => ex
print ex.message,"\n"
end
end
#podcast_rss.txtからrssのurlと名前を読み出す。
#さらにRSS受信して保存してないものがあればダウンロードする
podcast_rss = File.open("podcast_rss.txt")
while line = podcast_rss.gets
line.chomp!
if line[0,7] == "http://"
url = line
if name = podcast_rss.gets
name.chomp!
else
name = ""
end
print name," ",url,"\nの処理を開始\n"
get_rss(url,name)
print name,"の処理を終了\n\n"
end
end
print "処理終了\n"
2008.08.28 ファイル重複チェックには自作関数でなく「FileTest.file?」を使用するように変更。ソースが約50行くらいになったw▼ コメント(0件)
- TB-URL http://777.boo.jp/adiary/0780/tb/
-
▼
090923-rubyでポッドキャストを取得するには
Non-programmer's Ruby in Pocketポッドキャストをmp3プレーヤー(実はW-ZERO3)に「手軽に」(重要!)ダウ