1. A client for receiving a data stream for use in a predefined number of viewings, comprising: a control module that is programmed to perform actions comprising: providing a URI that is a location of the data stream on a server, and a token associated with the URI, and a request for the data stream to the server; and if the URI, and token are validated: negotiating an encryption key with the server, receiving the data stream over a network a rate of a flow to maintain a substantially full client buffer and wherein a compression quality of the data stream is dynamically varied based on a determined bandwidth over the network, using the encryption key to decrypt the data stream; and a display module that is configured to control the display of the data stream.