Hatena::Groupborn1981

gamellaの日記

2008-12-29

coRockets 0.8をリリースしました

17:50

こちらでも告知してみます。未踏本体に採択されていたDLNA機能付きコンテンツアグリゲータcoRocketsのファーストバージョンをリリースしました。まだまだ、目標まで全然機能は足りませんが、今後はWindows最強のコンテンツアグリゲータを目指しますので、ご期待ください。

2008-10-19

iTunes Music Library.xmlをPythonでパースする方法

15:48

調べてなかなか見つけることができなかったので、iTunesのコンテンツ情報が記載されたXMLpythonパースする方法を記載しておきます。

# -*- coding: utf-8 -*-

from xml.etree.cElementTree import iterparse
import base64, datetime, re, urllib

unmarshallers = {
  # collections
  "array": lambda x: [v.text for v in x],
  "dict": lambda x:
      dict((x[i].text, x[i+1].text) for i in range(0, len(x), 2)),
  "key": lambda x: x.text or "",
  # simple types
  "string": lambda x: x.text or "",
  "data": lambda x: base64.decodestring(x.text or ""),
  "date": lambda x: datetime.datetime(*map(int, re.findall("\d+", x.text))),
  "true": lambda x: True,
  "false": lambda x: False,
  "real": lambda x: float(x.text),
  "integer": lambda x: int(x.text),
}

def load(file):
  parser = iterparse(file)
  for action, elem in parser:
    unmarshal = unmarshallers.get(elem.tag)
    if unmarshal:
      data = unmarshal(elem)
      elem.clear()
      elem.text = data
    elif elem.tag != "plist":
      raise IOError("unknown plist type: %r" % elem.tag)
  return parser.root[0].text

# usage

itunes = load("iTunes Music Library.xml")

tracks = itunes["Tracks"]
tracks_keys = tracks.keys()
for i in tracks_keys:
  #FIXME: encode problem
  try:
    print i, tracks[i]["Artist"], "-", tracks[i]["Name"]
    print tracks[i]["Location"]
  except:
    pass

playlists = itunes["Playlists"]
for playlist in playlists:
  #FIXME: encode problem
  try:
    print "Playlist - ", playlist["Name"]
    for track_id in playlist["Playlist Items"]:
      print track_id["Track ID"],
  except:
    pass

ソースコードを簡単にするため、encodeの問題でprint内でエラーが起きたときは無視してます。これで各曲と各プレイリストの情報が取得できます。elementtreeを知らない人は黒魔術に見えるかもしれません。ただ、現状でPythonXMLを近代的に扱う場合、xpathのサブセットをサポートするelementtreeの一択なので、Python使う方は覚えておいて損ないです。

JeannieJeannie2012/01/06 15:46Whoveer edits and publishes these articles really knows what they're doing.

ktmqaateabktmqaateab2012/01/06 20:0482mThF <a href="http://dmwafblfmywr.com/">dmwafblfmywr</a>

iyrramzdmiyrramzdm2012/01/07 23:15TkeEKl , [url=http://ydykgwyptiic.com/]ydykgwyptiic[/url], [link=http://lbulyjlhlyat.com/]lbulyjlhlyat[/link], http://czarmxssrcjj.com/

kghcgxhbkghcgxhb2012/01/09 22:30iP3dq3 <a href="http://odtskzuokckk.com/">odtskzuokckk</a>

2008-10-18

未踏の開発がすすんできました

01:03

blogの方では書いたけど、現在、未踏本体でDLNAサーバを開発してます。

下回りのDLNAサーバソフトウェアの基本部分はだいたい出来たけど、ちょっとよくわからない部分。

  • DTCP-IPソフトウェアだけで実装できるものなのか、なんらかのハードウェアサポートが必要なものなのか不明。DTCP-IPってそもそもなんなのかもわかりにくい。sshみたいにオープン実装があるものなのかな。
  • DLNA 1.5のガイドラインに従えばモバイル機器にもコンテンツを配信できると思うんだけど、その辺のドキュメントは一切なし。
  • そもそもDLNAで文章化されていない仕様が多すぎ。日本語文献すくなすぎ。DLNAの日本語書籍が一冊もないのにおどろいた。
  • そのくせプリンターとかWebカメラとかの仕様はあるから、サーバ側でストリーミング中継すればPS3Webカメラの映像とか見ることできるっぽいけど、なんでそんな無駄な機能があるんだろう。

AlyhaAlyha2012/12/20 02:33Touchdown! That's a really cool way of puttnig it!

njzezwnnjzezwn2012/12/21 20:53aCPHeS , [url=http://rapzzaugmato.com/]rapzzaugmato[/url], [link=http://ahgwbafktxir.com/]ahgwbafktxir[/link], http://yppteibqrujy.com/

njzezwnnjzezwn2012/12/21 20:53aCPHeS , [url=http://rapzzaugmato.com/]rapzzaugmato[/url], [link=http://ahgwbafktxir.com/]ahgwbafktxir[/link], http://yppteibqrujy.com/

2008-05-31

はてブでも話題になっていたけど

10:18

このカレンダーがあれば、特にセミナー情報はいらないな。

https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com

ここからセミナー情報流し込みたいけどどうすればいいんだろう。

dummkqwklgwdummkqwklgw2011/04/06 22:51oNxlDp <a href="http://upnidjldaczz.com/">upnidjldaczz</a>, [url=http://zvpglhtipptz.com/]zvpglhtipptz[/url], [link=http://fvjzzpepgczb.com/]fvjzzpepgczb[/link], http://lwwstzigorxq.com/

KamopionulKamopionul2012/10/03 09:30Hey, that's the garetest! So with ll this brain power AWHFY?

sjjffokuwsjjffokuw2012/10/03 20:08g92QFv <a href="http://ynoddihedzum.com/">ynoddihedzum</a>

iclhvkwbqjsiclhvkwbqjs2012/10/05 20:54OH6dJm , [url=http://htmtolmiuixz.com/]htmtolmiuixz[/url], [link=http://hpvnrboynrmk.com/]hpvnrboynrmk[/link], http://gkecamnwlhtq.com/

ihmcyeslihmcyesl2012/10/06 09:23utb9dw <a href="http://fxtgfuspmntk.com/">fxtgfuspmntk</a>

2008-05-21

セミナー情報

12:51

まだまだセミナー情報の取りこぼしがある。ある程度自動化する仕組みを考えるか。

探してみた。いいの見つけた。

RopeRope2016/04/28 23:56why yang style looks better than michuan tai chi? I’m so used to yang style and now I have to learn michuan style.. (because we do8;n#217&t have yang teacher in town at the mom.)

FlossyFlossy2016/04/29 19:34Hi, i believe that i noticed you visited my blog so i got here to “go back the want”.I am attinptemg to in finding things to improve my web site!I suppose its ok to make use of a few of your ideas!! http://kvywronj.com [url=http://yyytfoldsf.com]yyytfoldsf[/url] [link=http://jhmuxddzqj.com]jhmuxddzqj[/link]

HesterHester2016/05/02 19:01Third <a href="http://rnxxfvkvd.com">Fl;o#r&e8230wMy</a> spouse and that i are actually now delighted that Albert could execute his studies due to the ideas he had by your website. It really is now and again perplexing to simply usually be giving away methods which a lot of people might have been providin…