23
id: yssk22 (CouchDB-JP)

Media On Couch

Embed Size (px)

DESCRIPTION

My slide at RelaxCafe.break3 describing how to import iTunes XML to CouchDB. This presentation shows an use case for CouchDB as a media storage.

Citation preview

Page 1: Media On Couch

id: yssk22 (CouchDB-JP)

Page 2: Media On Couch

z*ohnamiさんより

>個人的にはyssk22さんのリッピング環境をCouchDBで構築する話が聞きたいです!!

デジタルメディア整理です。

失笑でお願いします。

Page 3: Media On Couch

デジタルメディア

CD

DVD

TV番組

ラジオ番組

Page 4: Media On Couch

Mac + iTunes

基本ツール。

満足には至らず。

Page 5: Media On Couch

問題点1

重複曲

Page 6: Media On Couch

問題点1:重複曲

あの大ヒット曲

Page 7: Media On Couch

問題点1:重複曲

実は14曲あるんです;;

Page 8: Media On Couch

整理の上での問題

重複じゃありません = 消せない! remasteringの課程で曲の長さが変わったもの(アルバム収録)

使う楽器が別のもの

変調しているもの

ライブ音源のもの

...

○ わかる人にはわかります(TM

ほかの楽曲でも、リメイクは多数

iTunes上は、194曲存在

○ 実際はそんなに楽曲ないよ!

Page 9: Media On Couch

問題点2

データ

共有

Page 10: Media On Couch

iTunesのデータ共有

方法1: iTunes 共有機能

1台がマスター、その他はクライアント

方法2: Networkマウント

OS起動時にSMBマウントしておく

Page 11: Media On Couch

整理上の問題

使用するPCが2台以上だとマスターが決まらない 音楽はiMac

DVDはMacbookとML115

TV番組はWindowsマシン

ラジオはMacbook

2台以上で、同じライブラリファイルをマウントするといろいろ面倒 整合性がとれなくなる

ポータブルじゃない DVDとTV

○ iPhoneだと容量&解像度不足

Page 12: Media On Couch

その他のかゆいところに手が届かない問題 TV, ラジオ

「出演者」というタグ付けができない。

○ 俳優/女優でドラマを選ぶ身としては致命的

iPhotoと統合できない

TVのキャプチャ(静止画)と動画の関連づけ

モバイル専用のiTunesライブラリ必要

Page 13: Media On Couch

解決策!

そこでデータストアをiTunesから分離

iTunesは単なるPlayer

種々の問題をCouchDBで解決

必要なもの

iTunes用のライブラリファイルからCouchDBに取り込むスクリプト

CouchDBからiTunes用のライブラリファイル(XML)を生成するツール

Page 14: Media On Couch

Architecture

iMac ML115 WindowsMacbook

CD担当(AAC)

DVD担当(H.264)

TV担当(H.264)

ラジオ担当(AAC)

双方向レプリケーション(同じサーバーの異なるディスク上)

HTTP PUT

(XMLからJSONへ)

HTTP PUT

(Direct)

Page 15: Media On Couch

ポイント

メタデータの入力を極力避け、自動化する

CD

○ CDDB情報を使う

iTunesがやってくれる

テレビ○ EPG情報を infoseek番組表から。

infoseekは出演者検索のインデックスが秀逸

ラジオ○ 手作業...? EPGある?

録音自体がかなりアナログ

DVD

○ 手作業...?

Amazon とかからとった方がいいかも。

Page 16: Media On Couch

iTunes -> CouchDB

iTunes Music Library.xml を使う

iTunes Library.itdb (バイナリ) をXMLにしたもの

○ http://www.apple.com/DTDs/PropertyList-

1.0.dtd

iTunes固有の情報を含んでいない点は注意

スマートリストなどは、検索結果のみ

「メディアの種類」などは含まれない

Page 17: Media On Couch

CouchDB -> iTunes

View と List を使ってXMLを作成する!

iTunes側では itdbファイルを削除してXMLファイルをインポートすると itdb

を作成してくれる。

ただし、限定的

Page 18: Media On Couch

Viewの例

Page 19: Media On Couch

View の例

function(doc){

var cond = (doc.Artist == "SPEED") && // アーティストが

(doc.Genre != "Radio") && // ジャンルが...

(!doc.Name.match(/instrumental/)) && // 名前が..含まない

(doc["HasVideo"] != true) && // メディアの種類は

(doc["Has Movie"] != true); // XMLファイルに入らない

if(cond){

emit(doc.name, null);

}

}

Page 20: Media On Couch

CouchDBのView

iTunesの

プレイリストそのもの

Page 21: Media On Couch

Viewの結果をフォーマットする List 機能を使うだけ

XMLにしてiTunesに取り込む

○ 完全なプレイリスト代わりにはならない CDやDVDを焼いたりするときなど

動画をPS3 で再生するとき

○ DLNAじゃなくても PS3 ブラウザからmp4をたどると再生する!

Content-Type: video/mp4 でOK

ただし、アップコンバージョンはきかない。

Page 22: Media On Couch

CouchDBにするとうれしいことデータモデルはいじり放題

プレイリストもいじり放題

○ リメイク曲をまとめたプレイリスト

○ 出演者によるプレイリスト

○ ...

簡単にデータを同期できる

rsyncも簡単だけど。

いろんなクライアントで使える

とくにPS3は重要。

○ DVDを入れ替えるのが面倒なので

Page 23: Media On Couch

課題点

CouchDB用のフロントエンド

今は手でJSONを編集しなおしている。

ビュービルダみたいなのもほしい。

2層DVDだとCouchDBが落ちることがしばしば

6GB超えるあたりから怪しい。