itunes2ppp

前の日記で使ったスクリプトを利用して、PyPodcastPlayerpodcast_list.txtを作成するスクリプト
PyPodcastPlayerソースファイルに同梱。
まず、前の日記を参考に、iTunesから局情報ファイルを取り出す。
その全てのファイルを置いたフォルダで、スクリプトを実行する。
itunes2ppp.py

import sys
import xml.dom.minidom
import glob

def readXmldata(data) :
 data_map = {}
 dom = xml.dom.minidom.parseString(data)
 dom_data = dom.getElementsByTagName("channel")
 item = dom_data.item(0)
 link_elm = item.getElementsByTagName("link").item(0)
 link = link_elm.getAttribute("href")
 data_map["link"] = link
 title_elm = item.getElementsByTagName("title").item(0)
 title = title_elm.firstChild.data
 data_map["title"] = title
 try :
  cat_elm = item.getElementsByTagName("category").item(0)
  cat = cat_elm.firstChild.data
  data_map["category"] = cat
 except :
  data_map["category"] = ""
 try :
  subtitle_elm = item.getElementsByTagName("subtitle").item(0)
  subtitle = subtitle_elm.firstChild.data
  data_map["subtitle"] = subtitle
 except :
  data_map["subtitle"] = ""
 return data_map

def readFile(flist) :
 data_list = []
 for i, v in enumerate(flist) :
  f = open(v)
  xmldata = f.read()
  xmlmap = readXmldata(xmldata)
  data_list.append(xmlmap)
  f.close()
 return data_list

def makeList() :
 flist = glob.glob('*.pcast')
 return flist

if __name__=='__main__' :
 file_list = makeList()
 data_list = readFile(file_list)
 listf = open("podcast_list.txt", "w")
 for i, v in enumerate(data_list) :
  line =v["link"] + "\n"
  listf.write(line)
 listf.close()

実行

> python itunes2ppp.py
>

フォルダにpodcast_list.txtが作られているので、PyPodcastPlayer.pyと同じフォルダに置く。