Digital Audio Access Protocol
Encyclopedia
The Digital Audio Access Protocol (DAAP) is the proprietary protocol
introduced by Apple
in its iTunes
software to share media across a local network.
DAAP addresses the same problems for Apple as the UPnP AV standards address for members of the Digital Living Network Alliance
(DLNA).
A DAAP server is a specialized HTTP server, which performs two functions. It sends a list of songs and it streams requested songs to clients. There are also provisions to notify the client of changes to the server. Requests are sent to the server by the client in form of URLs and are responded to with data in application/x-dmap-tagged mime-type, which can be converted to XML
by the client. iTunes uses the ZeroConf
(also known as Bonjour
) service to announce and discover DAAP shares on a local subnet
. The DAAP service uses TCP
port 3689 by default.
DAAP is one of two media sharing schemes that Apple has currently released. The other, Digital Photo Access Protocol (DPAP), is used by iPhoto
for sharing images. They both rely on an underlying protocol, Digital Media Access Protocol (DMAP).
Early versions of iTunes allowed users to connect to shares across the Internet, however, in recent versions only computers on the same subnet can share music (workarounds such as port tunneling
are possible). The Register
speculates that Apple made this move in response to pressure from the record labels. More recent versions of iTunes also limit the number of clients to 5 unique IP address
es within a 24-hour period.
DAAP has also been implemented in other non-iTunes media applications such as Banshee
, Amarok, Exaile
(with a plugin), Songbird
(with a plugin), Rhythmbox
, and WiFiTunes.
function used previously. Both authentication methods were successfully reverse engineered within months of release.
With iTunes 7.0, a new 'Client-DAAP-Validation' header hash is needed when connecting to an iTunes 7.0 server. This does not affect third-party DAAP servers, but all current DAAP clients (including official iTunes before iTunes 7.0) will fail to connect to an iTunes 7.0 server, receiving a '403 Forbidden' HTTP error. The iTunes 7.0 authentication traffic analysis seem to indicate that a certificate exchange is performed to calculate the hash sent in the 'Client-DAAP-Validation' header.
As of June 2010, the iTunes 7.0 DAAP authentication still hasn't been reverse engineered, so no third-party application can stream from iTunes 7.x, 8.x, 9.x or 10.x servers.
Proprietary protocol
In telecommunications, a proprietary protocol is a communications protocol owned by a single organization or individual.-Enforcement:Proprietors may enforce restrictions through patents and by keeping the protocol specification a trade secret...
introduced by Apple
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...
in its iTunes
ITunes
iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad....
software to share media across a local network.
DAAP addresses the same problems for Apple as the UPnP AV standards address for members of the Digital Living Network Alliance
Digital Living Network Alliance
The Digital Living Network Alliance is a non-profit collaborative trade organization established by Sony in June 2003, and has more than 250 member companies in the mobile, consumer electronics, PC, and service provider industries...
(DLNA).
Description
The DAAP protocol was originally introduced in iTunes version 4.0. Initially, Apple did not officially release a protocol description, but it has been reverse-engineered to a sufficient degree that reimplementations of the protocol for non-iTunes platforms have been possible. Recently, however, Apple has begun to license the protocol specification for commercial implementations.A DAAP server is a specialized HTTP server, which performs two functions. It sends a list of songs and it streams requested songs to clients. There are also provisions to notify the client of changes to the server. Requests are sent to the server by the client in form of URLs and are responded to with data in application/x-dmap-tagged mime-type, which can be converted to XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
by the client. iTunes uses the ZeroConf
Zeroconf
Zero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....
(also known as Bonjour
Bonjour (software)
In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a group of technologies that includes service discovery, address assignment, and name resolution...
) service to announce and discover DAAP shares on a local subnet
Subnetwork
A subnetwork, or subnet, is a logically visible subdivision of an IP network. The practice of dividing a network into subnetworks is called subnetting....
. The DAAP service uses TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
port 3689 by default.
DAAP is one of two media sharing schemes that Apple has currently released. The other, Digital Photo Access Protocol (DPAP), is used by iPhoto
IPhoto
iPhoto is a digital photograph manipulation software application developed by Apple Inc. and released with every Macintosh personal computer as part of the iLife suite of digital life management applications...
for sharing images. They both rely on an underlying protocol, Digital Media Access Protocol (DMAP).
Early versions of iTunes allowed users to connect to shares across the Internet, however, in recent versions only computers on the same subnet can share music (workarounds such as port tunneling
Port forwarding
Port forwarding or port mapping is a name given to the combined technique of# translating the address and/or port number of a packet to a new destination# possibly accepting such packet in a packet filter...
are possible). The Register
The Register
The Register is a British technology news and opinion website. It was founded by John Lettice, Mike Magee and Ross Alderson in 1994 as a newsletter called "Chip Connection", initially as an email service...
speculates that Apple made this move in response to pressure from the record labels. More recent versions of iTunes also limit the number of clients to 5 unique IP address
IP address
An Internet Protocol address is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing...
es within a 24-hour period.
DAAP has also been implemented in other non-iTunes media applications such as Banshee
Banshee (music player)
Banshee is an open-source media player, called Sonance until 2005. Built upon Mono and Gtk#, it uses the GStreamer multimedia platform for encoding and decoding various media formats, including Ogg Vorbis, MP3 and FLAC. Banshee can play and import audio CDs and supports many portable media players,...
, Amarok, Exaile
Exaile
Exaile is a music player that was originally conceived to be similar in style and function to KDE's Amarok 1.4, but use the GTK+ widget toolkit rather than Qt...
(with a plugin), Songbird
Songbird (software)
Songbird is a free and open source software audio player and web browser, with a stated mission "to incubate Songbird, the first Web player, to catalyze and champion a diverse, open Media Web."...
(with a plugin), Rhythmbox
Rhythmbox
Rhythmbox is an audio player that plays and helps organize digital music. Originally inspired by Apple's iTunes, it is free software, designed to work well under the GNOME Desktop using the GStreamer media framework. However, Rhythmbox functions on desktop environments other than GNOME.-Music...
, and WiFiTunes.
DAAP authentication
Beginning with iTunes 4.2, Apple introduced authentication to DAAP sharing, meaning that the only clients that could connect to iTunes servers were other instances of iTunes. This was further modified in iTunes 4.5 to use a custom hashing algorithm, rather than the standard MD5MD5
The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check data integrity...
function used previously. Both authentication methods were successfully reverse engineered within months of release.
With iTunes 7.0, a new 'Client-DAAP-Validation' header hash is needed when connecting to an iTunes 7.0 server. This does not affect third-party DAAP servers, but all current DAAP clients (including official iTunes before iTunes 7.0) will fail to connect to an iTunes 7.0 server, receiving a '403 Forbidden' HTTP error. The iTunes 7.0 authentication traffic analysis seem to indicate that a certificate exchange is performed to calculate the hash sent in the 'Client-DAAP-Validation' header.
As of June 2010, the iTunes 7.0 DAAP authentication still hasn't been reverse engineered, so no third-party application can stream from iTunes 7.x, 8.x, 9.x or 10.x servers.
DAAP clients
Name | Platform | Development status |
---|---|---|
Amarok | Windows, Mac, and Linux | Active |
Banshee | Windows, Mac, and Linux | Active |
Crossfire | A cross-platform Ajax-based Firefly client with multiple browser support for iPhone IPhone The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007... (Safari), Nokia, Opera, IE and Chrome. |
Active |
DAAP Client | Android | Active |
FireflyClient | Independent (uses Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... ) |
Dormant |
Get it together | Any Java supported platform | Dormant |
iTunes ITunes iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad.... |
Mac and Windows | Native |
LimeWire LimeWire LimeWire is a free peer-to-peer file sharing client program that runs on Windows, Mac OS X, Linux, and other operating systems supported by the Java software platform. LimeWire uses the gnutella network as well as the BitTorrent protocol. A free software version and a purchasable "enhanced"... |
Windows, Mac, and Linux | Active |
One2OhMyGod | Any Java supported platform | Dormant |
Rhythmbox Rhythmbox Rhythmbox is an audio player that plays and helps organize digital music. Originally inspired by Apple's iTunes, it is free software, designed to work well under the GNOME Desktop using the GStreamer media framework. However, Rhythmbox functions on desktop environments other than GNOME.-Music... |
Linux | Active |
Roku Soundbridge and Radio | Device | Dormant |
WiFiTunes | PocketPC | Dormant |
Songbird Songbird (software) Songbird is a free and open source software audio player and web browser, with a stated mission "to incubate Songbird, the first Web player, to catalyze and champion a diverse, open Media Web."... |
Windows, Mac, Linux (unsupported) | Dormant, via plugin for 1.8.0 |
SoundBox | Windows and Mac | Active |
Silverplay | * (only Silverlight req) | Active |
Simple DAAP Client | iPhone | Active |
XBMC | Windows, Mac, Linux, Apple TV and XBMC Live | Active |
DAAP servers
Name | Platform | Development status |
---|---|---|
forked-daapd | Linux, FreeBSD FreeBSD FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant... |
Active |
iTunes ITunes iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad.... |
Mac OS X, Windows | Active |
mt-daapd/Firefly DAAP Media Server | Linux, Windows, Mac OS X | Dormant |
Tangerine | Linux, Windows, Mac OS X | Active |
spydaap DAAP server (python) and here | Linux, Windows, Mac OS X | Active |
See also
- List of software using Digital Audio Access Protocol
- Digital Audio Control ProtocolDigital Audio Control ProtocolDigital Audio Control Protocol is a protocol used by the Apple Remote application on iOS mobile devices to control iTunes running on a remote computer....
- Remote Audio Output ProtocolRemote Audio Output ProtocolRemote Audio Output Protocol , is an RTSP/RTP based protocol made by Apple Inc. It powers the AirPlay technology built into AirPort Express wireless access point as well as the Apple TV...
External links
- OpenDAAP forum
- Unofficial DAAP protocol documentation
- DAAP, a C++ implementation of DAAP. (no longer developed)
- libopendaap, a C implementation of DAAP
- DAAPD, another implementation of DAAP on Unix.
- Firefly DAAP Media Server, implementation of the DAAP protocol (both video and audio) for Windows, Linux, Mac OS X and Mobile OS X (iPod touchIPod touchThe iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line...
and iPhoneIPhoneThe iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
). No longer maintained. - libdmapsharing, Open source GObject- and libsoup-based library that supports server- and client-side DAAP, DPAP and DACP.
- dmapd, Open source server that supports DAAP and DPAP.
- forked-daapd, a rewritten version of Firefly Media Server for Linux currently under development.
- iTunes 7.0 traffic analysis
- Tangerine is a DAAP server. It runs on Linux, Windows, and Mac OS X.