A content server that provides encoded media to playback devices comprising: a processor ; a memory readable by the processor ; and instructions in the memory that when read by the processor direct the processor to: - receive shared media content for streaming from a first playback device; - transcode the shared media content into a plurality of encodings that include assets to provide the shared media content in a plurality of alternative streams, each alternative stream having at least one of the group consisting of a different encoding standard, a different maximum bitrate, a different resolution, and a different frame rate, where at least one of the alternative streams are provided in response to a request for content based on device capability of a requesting device; - receive a request for at least one encoding from the plurality of encodings of the shared media content from a second playback device where the request includes device capability information of the second playback device; - generate a top level index file that includes information for assets that can be used to provide the shared media content to the second playback device based upon the device capability information for the second playback device; and - transmit the top level index file to the second playback device. a processor ; a memory readable by the processor ; and instructions in the memory that when read by the processor direct the processor to: - receive shared media content for streaming from a first playback device; - transcode the shared media content into a plurality of encodings that include assets to provide the shared media content in a plurality of alternative streams, each alternative stream having at least one of the group consisting of a different encoding standard, a different maximum bitrate, a different resolution, and a different frame rate, where at least one of the alternative streams are provided in response to a request for content based on device capability of a requesting device; - receive a request for at least one encoding from the plurality of encodings of the shared media content from a second playback device where the request includes device capability information of the second playback device; - generate a top level index file that includes information for assets that can be used to provide the shared media content to the second playback device based upon the device capability information for the second playback device; and - transmit the top level index file to the second playback device. - receive shared media content for streaming from a first playback device; - transcode the shared media content into a plurality of encodings that include assets to provide the shared media content in a plurality of alternative streams, each alternative stream having at least one of the group consisting of a different encoding standard, a different maximum bitrate, a different resolution, and a different frame rate, where at least one of the alternative streams are provided in response to a request for content based on device capability of a requesting device; - receive a request for at least one encoding from the plurality of encodings of the shared media content from a second playback device where the request includes device capability information of the second playback device; - generate a top level index file that includes information for assets that can be used to provide the shared media content to the second playback device based upon the device capability information for the second playback device; and - transmit the top level index file to the second playback device. <EOS>