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

PythonでNHKのラジオ基礎英語3を一気に落とすスクリプトを書いた

RTMPDumpを使う。っつっても、自作のFLVからMP3抽出するプログラム(flvmp3rip)とかを呼んでるし、第三者にはそもそも使う事ができないという。
まあ何かの参考にでもどうぞ。

from xml.dom import minidom, Node
import os
import shutil
import urllib

SAVEDIR = '/Users/peryaudo/Documents/nhkrtmp'
KOUZALIST = ['english/basic3']

def download(music):
        kouza = music.getAttribute("kouza")
        hdate = music.getAttribute("hdate")
        file = music.getAttribute("file")

        if not os.path.exists(kouza):
                os.mkdir(kouza)

        os.system('rtmpdump -r "rtmp://flv9.nhk.or.jp/flv9/_definst_/flv:gogaku/streaming/flv/' + file + '" -o temp.flv')
        os.system('flvmp3rip temp.flv')
        os.remove('temp.flv')
        shutil.move('temp.mp3', kouza + '/' + hdate + '.mp3')

if __name__ == '__main__':
        for kouzaid in KOUZALIST:
                listdata = minidom.parseString(urllib.urlopen('http://www.nhk.or.jp/gogaku/' + kouzaid + '/listdataflv.xml').read())
                for music in listdata.getElementsByTagName('music'):
                        os.chdir(SAVEDIR)
                        download(music)

汚ないのは取り急ぎで書いたからです。もうちょっと書こうと思えばきれいにも書けると思います。