A content stream user defines preferences, which are compared to aggregated metadata describing in real time a plurality of content streams to which the user has access. The metadata for each content stream may be generated by automated analysis of onscreen indicators, noise levels in standard video or audio sequences, or speech recognition or image recognition data applied to identify particular keywords, individuals, etc. Where a match between content and user preferences is identified, the user is notified, and may be given the option of switching to the matching content stream. A number of approaches are used to ensure that the user is able to access the whole of the content of interest, and does not miss the starting porting. Certain parts of the content streams may be cached for video on demand viewing, or the content streams may be buffered allowing access to various portions of the stream, or a delay in content transmission may be introduced relative to the metadata transmission so as to allow time for a content stream change.