1. A method of interacting with a user, comprising: collecting a set of user preferences for a user into a user preference database; providing a metadata stream associated with a program, comprising metadata for the program; comparing the metadata stream with the set of user preferences to form a comparison; and outputting a message to the user if the comparison indicates that the metadata stream matches one or more elements of the set of user preferences; wherein collecting the set of user preferences for the user comprises determining a percentage of time the program was perceived by the user prior to changing to a different audiovisual input; wherein the percentage of time the audiovisual input was perceived is calculated by dividing an amount of time that the audiovisual input was perceived by the user by a total length of time the program was available; and wherein the message is a verbal recommendation; and executing instructions on a computer for performing user preference acquisition comprising: (a) looping until the program is played, then unsetting a wait flag; and (b) if the program has been played for a percentage of time <30%, then: (i) setting the wait flag; (ii) queuing program metadata as a 0-Star entry in a user preference database; (iii) looping until the wait flag is not set; (iv) posting the queued metadata to the user preference database; and (v) returning to step (a); (c) if the program has been played for a percentage of time <70%, then: (i) setting the wait flag; (ii) queuing program metadata as a 3-Star entry in the user preference database; (iii) looping until the wait flag is not set; (iv) posting the queued metadata to the user preference database; and (v) returning to step (a); (d) assuming that the program has been played to completion, then: (i) if the user does not want to rate the program, then queuing program metadata as a 5-Star entry in the user preference database; (ii) if the user rates the program as disliked, then queuing program metadata as the O-Star entry in the user preference database; (iii) if the user rates the program as partially liked, then queuing program metadata as the 3-Star entry in the user preference database; (iv) if the user rates the program as liked, then queuing program metadata as the 5-Star entry in the user preference database; (v) posting the queued metadata to the user preference database; and (vi) returning to step (a).