1. A computer-implemented method for interaction with an application from a client abstraction layer, the method comprising: receiving a request to instantiate the client abstraction layer; receiving a request to set a media source through the abstraction layer, wherein the media source identifies a server from which the abstraction layer can retrieve an identified media presentation; downloading media associated with the requested media source on behalf of the application; starting playback of the downloaded media on behalf of the application; receiving an indication that a user action related to the media playback has occurred; and modifying the media playback in accordance with the received indication of the user's action, wherein the preceding steps are performed by at least one processor.