A computer-implemented method for sending media files to a computing device, the method comprising: storing, at a server system, a media library associated with a user, the media library including at least one media file; receiving, at the server system, a request from a first computing device for the media file from the media library, wherein the first computing device sent the request in response to the user selecting the media file for output by the first computing device; determining, at the server system, whether the media file is stored on a second computing device that is able to send the media file to the first computing device across a local network connecting the first computing device and the second computing device; if the determination indicates that the media file is not stored on a second computing device that is able to send the stored media file to the first computing device across a local network connecting the first computing device and the second computing device, sending the media file to the first computing device from the server system such that the first computing device is able to output the media file to the user; and if the determination indicates that the media file is stored on a second computing device that is able to send the stored media file to the first computing device across a local network connecting the first computing device and the second computing device, sending, from the server system to the first computing device or the second computing device, an instruction that causes the second computing device to send the media file to the first computing device across the local network such that the first computing device is able to output the media file to the user; characterised in that the determining, at the server system, whether the media file is stored on a second computing device that is able to send the media file to the first computing device across a local network connecting the first computing device and the second computing device includes determining that the first computing device and the second computing device are located within a defined geographic proximity such that a wireless local area network is able to be established between the first computing device and the second computing device. storing, at a server system, a media library associated with a user, the media library including at least one media file; receiving, at the server system, a request from a first computing device for the media file from the media library, wherein the first computing device sent the request in response to the user selecting the media file for output by the first computing device; determining, at the server system, whether the media file is stored on a second computing device that is able to send the media file to the first computing device across a local network connecting the first computing device and the second computing device; if the determination indicates that the media file is not stored on a second computing device that is able to send the stored media file to the first computing device across a local network connecting the first computing device and the second computing device, sending the media file to the first computing device from the server system such that the first computing device is able to output the media file to the user; and if the determination indicates that the media file is stored on a second computing device that is able to send the stored media file to the first computing device across a local network connecting the first computing device and the second computing device, sending, from the server system to the first computing device or the second computing device, an instruction that causes the second computing device to send the media file to the first computing device across the local network such that the first computing device is able to output the media file to the user;