1. A method for inserting secondary content into a media stream having primary content, the method comprising: at a processor, dividing the media stream comprising a plurality of frames into a plurality of shots; grouping consecutive shots from the plurality of shots into a plurality of scenes; generating a first list of insertion points for introducing the secondary content, wherein the insertion points of the first list are boundaries between consecutive scenes in the plurality of scenes; generating an average insertion point saliency of the media stream at the insertion points in the first list; and generating a second list of insertion points, wherein the insertion points are arranged in the second list to maximize a function of the average insertion point saliency and a distance between each insertion point in the second list with other insertion points in the second list.