A method executed at a server for improvement of media content streaming from the server to an end user's device through a communications network, where the server is adapted to receive more than one media stream for the same media content from at least one source, and where each media stream is segmented, said method comprising the following steps: a) Obtaining, for a plurality of segments of a plurality of received media streams, quality events which affect the Quality of Experience of the end user, and labelling the plurality of segments with the obtained quality events; b) For at least one labelled segment whose quality events are above a predefined error threshold, of at least one of the received media streams, called erroneous segment, the method comprising: b1) Selecting one segment of at least one media stream of the rest of media streams received for the same media content, as a candidate segment to replace the erroneous segment; b2) Assigning to the erroneous segment and to the candidate segments, a quality score, where the quality score assigned to a segment is based at least on the vector of quality events of the segment and the difference between the bit rate of the segment and the bit rate of the erroneous segment; b3) If there is any candidate segment with a quality score higher than the quality score of the erroneous segment, replacing the erroneous segment by the candidate segment with the highest quality score. a) Obtaining, for a plurality of segments of a plurality of received media streams, quality events which affect the Quality of Experience of the end user, and labelling the plurality of segments with the obtained quality events; b) For at least one labelled segment whose quality events are above a predefined error threshold, of at least one of the received media streams, called erroneous segment, the method comprising: b1) Selecting one segment of at least one media stream of the rest of media streams received for the same media content, as a candidate segment to replace the erroneous segment; b2) Assigning to the erroneous segment and to the candidate segments, a quality score, where the quality score assigned to a segment is based at least on the vector of quality events of the segment and the difference between the bit rate of the segment and the bit rate of the erroneous segment; b3) If there is any candidate segment with a quality score higher than the quality score of the erroneous segment, replacing the erroneous segment by the candidate segment with the highest quality score. b1) Selecting one segment of at least one media stream of the rest of media streams received for the same media content, as a candidate segment to replace the erroneous segment; b2) Assigning to the erroneous segment and to the candidate segments, a quality score, where the quality score assigned to a segment is based at least on the vector of quality events of the segment and the difference between the bit rate of the segment and the bit rate of the erroneous segment; b3) If there is any candidate segment with a quality score higher than the quality score of the erroneous segment, replacing the erroneous segment by the candidate segment with the highest quality score.