Digital Audio Access Protocol(デジタル・オーディオ・アクセス・プロトコル、略称 : DAAP)は、ローカルネットワークで楽曲を共有するためのAppleによってiTunes上に実装されたプロプライエタリな通信プロトコルである。
DAAPプロトコルはiTunes バージョン4ではじめて実装された。[1] Appleは公式にはプロトコルの詳細を公開しなかったが、リバースエンジニアリングによってiTunes以外のプラットフォームでもDAAPが利用できるようになった。しかし最近になって[いつ?]Appleは商用の実装に対してはプロトコルの詳細をライセンスするようになった。[2]
DAAPサーバーは特殊なHTTPサーバーであると言え、曲の一覧を提供し、リクエストされた音楽をクライアントへ送信するという2つの機能を有する。また、サーバーにおける変更をクライアントへ通知する機能もある。クライアントによるリクエストはURLの形で送られ、レスポンスはMIMEタイプがapplication/x-dmap-tagged であるデータの形で返される。このデータはクライアント側でXMLに変換できる。iTunesはBonjourとしても知られるZeroConfサービスを用いてローカルサブネット上のDAAPのアナウンスや発見を行う。DAAPはTCPのポート番号3689番をデフォルトで使用する。[3]
DAAPはAppleが今までにリリースしたメディアの共有手段2つのうちの1つである。もう一方のDigital Photo Access Protocol (DPAP) はiPhotoによって使用されている。双方とも基礎的なプロトコルであるDigital Media Access Protocol (DMAP) に依存している。
初期のiTunesはインターネット上で共有されたものに対しても接続できたが、新しいバージョンでは同じサブネットに存在するコンピューターとしか共有できない。しかし、依然としてポートトンネリングなどの方法は利用できる。The RegisterはAppleがこのような制限を課した理由はレーベルからの圧力にあると推測している。[4] さらに新しいバージョンでは24時間で5つのユニークなIPアドレスにクライアントを制限している。
DAAPはBanshee、Amarok、Exaile (要プラグイン)、Songbird (要プラグイン)、Rhythmbox、WiFiTunesなどのiTunes以外のメディアプレイヤーでも実装されている。
iTunes 4.2から、AppleはDAAPに対して認証機構を追加した。これはiTunesに接続できるクライアントはiTunesに限られるということである。iTunes 4.5からは、以前用いられていたMD5に変わって独自のハッシュアルゴリズムを用いるようになった。両方ともリリースから数ヶ月以内にリバースエンジニアリングに成功した。[5]
iTunes 7.0からは、7.0のサーバーに接続する際に新たに'Client-DAAP-Validation'ヘッダが必要になった。これはサードパーティーのDAAPサーバーには影響しないが、全てのクライアント(7.0以前の公式なiTunesも含む)は'403 Forbidden'エラーによって7.0サーバーに接続できなくなった。iTunes 7.0のトラフィック解析によれば、'Client-DAAP-Validation'ヘッダー内で送られたハッシュを計算するために証明書が交換されていると示されている。
2009年9月まで、iTunes 7.0の認証機構は破られていない。つまり、iTunes 7.x 8.x 9.xのサーバーからストリームを受信できるクライアントは存在しない。
名称 | プラットフォーム | 種類 |
---|---|---|
AmaroK | linux, mac, win | 活動中 |
Banshee | linux, mac | 活動中 |
FireflyClient | * (only JRE req) | 本家 |
FirePlay | win | 活動中 |
Get it together | ? | 休止中 |
iTunes | mac, win | 本家 |
Rhythmbox | linux | 活動中 |
Roku Soundbridge and Radio | device | 活動中 |
Winamp DAAP Client plugin | win | プラグイン |
WifiTunes | PocketPC | 休止中 |
Songbird plugins | linux, mac, win | プラグイン |
SoundBox | mac, win | 活動中 |
Silverplay | * (only Silverlight req) | 活動中 |