1. A system for processing media files comprising: a processor for executing computer program code; and a non-transitory computer-readable storage medium storing executable computer program code for: monitoring at least one application for occurrences of events wherein at least one event is associated with a media file; capturing the at least one event upon the occurrence of the event by queuing event data associated with the at least one event at a position in the queue; indexing and storing at least some of the event data and the media file associated with the at least one event at a time after the occurrence of the at least one event, wherein the time is based on performance data indicating a readiness to process the at least one event and the position in the queue; receiving a search query; locating at least one relevant media file from the indexed and stored events relevant to the search query; and outputting a result set comprising the at least one relevant media file.