A method for retrieving annotations, the method comprising: receiving from a client device a request for an annotation associated with a first frame of a first instance of a media file, the first instance comprising a plurality of frames, the first instance of the media file being displayed at the client device, the request including a feature set including a plurality of features of the first frame of the first instance of the media file; identifying from a plurality of frames of a second instance of the media file based on a feature in the feature set, a candidate set of frames of the second instance having potential for mapping to the first frame of the first instance, wherein the first and second instances of the media file are copies of the same video whose frames are time shifted with respect to one another; wherein said feature in the feature set is a temporal position of the first frame of the first instance, the candidate set of frames being selected from frames within a fixed amount of time or frames before and after the first frame, the second instance of media file being stored at a host device (102, 106, 108) remotely located from the client device; selecting, from the candidate set of frames of the second instance of the media file, a corresponding frame of the second instance of the media file based on a distance between the feature set of the first frame of the first instance and a feature set of the corresponding frame of the second instance; retrieving an annotation associated with the corresponding frame of the second instance of the media file; and transmitting the annotation to the client device for processing thereon. receiving from a client device a request for an annotation associated with a first frame of a first instance of a media file, the first instance comprising a plurality of frames, the first instance of the media file being displayed at the client device, the request including a feature set including a plurality of features of the first frame of the first instance of the media file; identifying from a plurality of frames of a second instance of the media file based on a feature in the feature set, a candidate set of frames of the second instance having potential for mapping to the first frame of the first instance, wherein the first and second instances of the media file are copies of the same video whose frames are time shifted with respect to one another; wherein said feature in the feature set is a temporal position of the first frame of the first instance, the candidate set of frames being selected from frames within a fixed amount of time or frames before and after the first frame, the second instance of media file being stored at a host device (102, 106, 108) remotely located from the client device; selecting, from the candidate set of frames of the second instance of the media file, a corresponding frame of the second instance of the media file based on a distance between the feature set of the first frame of the first instance and a feature set of the corresponding frame of the second instance; retrieving an annotation associated with the corresponding frame of the second instance of the media file; and transmitting the annotation to the client device for processing thereon.