Upload
yohei-sasaki
View
975
Download
3
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
id: yssk22 (CouchDB-JP)
z*ohnamiさんより
>個人的にはyssk22さんのリッピング環境をCouchDBで構築する話が聞きたいです!!
デジタルメディア整理です。
失笑でお願いします。
デジタルメディア
CD
DVD
TV番組
ラジオ番組
Mac + iTunes
基本ツール。
満足には至らず。
問題点1
重複曲
問題点1:重複曲
あの大ヒット曲
問題点1:重複曲
実は14曲あるんです;;
整理の上での問題
重複じゃありません = 消せない! remasteringの課程で曲の長さが変わったもの(アルバム収録)
使う楽器が別のもの
変調しているもの
ライブ音源のもの
...
○ わかる人にはわかります(TM
ほかの楽曲でも、リメイクは多数
iTunes上は、194曲存在
○ 実際はそんなに楽曲ないよ!
問題点2
データ
共有
iTunesのデータ共有
方法1: iTunes 共有機能
1台がマスター、その他はクライアント
方法2: Networkマウント
OS起動時にSMBマウントしておく
整理上の問題
使用するPCが2台以上だとマスターが決まらない 音楽はiMac
DVDはMacbookとML115
TV番組はWindowsマシン
ラジオはMacbook
2台以上で、同じライブラリファイルをマウントするといろいろ面倒 整合性がとれなくなる
ポータブルじゃない DVDとTV
○ iPhoneだと容量&解像度不足
その他のかゆいところに手が届かない問題 TV, ラジオ
「出演者」というタグ付けができない。
○ 俳優/女優でドラマを選ぶ身としては致命的
iPhotoと統合できない
TVのキャプチャ(静止画)と動画の関連づけ
モバイル専用のiTunesライブラリ必要
解決策!
そこでデータストアをiTunesから分離
iTunesは単なるPlayer
種々の問題をCouchDBで解決
必要なもの
iTunes用のライブラリファイルからCouchDBに取り込むスクリプト
CouchDBからiTunes用のライブラリファイル(XML)を生成するツール
Architecture
iMac ML115 WindowsMacbook
CD担当(AAC)
DVD担当(H.264)
TV担当(H.264)
ラジオ担当(AAC)
双方向レプリケーション(同じサーバーの異なるディスク上)
HTTP PUT
(XMLからJSONへ)
HTTP PUT
(Direct)
ポイント
メタデータの入力を極力避け、自動化する
CD
○ CDDB情報を使う
iTunesがやってくれる
テレビ○ EPG情報を infoseek番組表から。
infoseekは出演者検索のインデックスが秀逸
ラジオ○ 手作業...? EPGある?
録音自体がかなりアナログ
DVD
○ 手作業...?
Amazon とかからとった方がいいかも。
iTunes -> CouchDB
iTunes Music Library.xml を使う
iTunes Library.itdb (バイナリ) をXMLにしたもの
○ http://www.apple.com/DTDs/PropertyList-
1.0.dtd
iTunes固有の情報を含んでいない点は注意
スマートリストなどは、検索結果のみ
「メディアの種類」などは含まれない
CouchDB -> iTunes
View と List を使ってXMLを作成する!
iTunes側では itdbファイルを削除してXMLファイルをインポートすると itdb
を作成してくれる。
ただし、限定的
Viewの例
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);
}
}
CouchDBのView
iTunesの
プレイリストそのもの
Viewの結果をフォーマットする List 機能を使うだけ
XMLにしてiTunesに取り込む
○ 完全なプレイリスト代わりにはならない CDやDVDを焼いたりするときなど
動画をPS3 で再生するとき
○ DLNAじゃなくても PS3 ブラウザからmp4をたどると再生する!
Content-Type: video/mp4 でOK
ただし、アップコンバージョンはきかない。
CouchDBにするとうれしいことデータモデルはいじり放題
プレイリストもいじり放題
○ リメイク曲をまとめたプレイリスト
○ 出演者によるプレイリスト
○ ...
簡単にデータを同期できる
rsyncも簡単だけど。
いろんなクライアントで使える
とくにPS3は重要。
○ DVDを入れ替えるのが面倒なので
課題点
CouchDB用のフロントエンド
今は手でJSONを編集しなおしている。
ビュービルダみたいなのもほしい。
2層DVDだとCouchDBが落ちることがしばしば
6GB超えるあたりから怪しい。