1. A method for implementing a preferred viewing library of programs, comprising: monitoring a viewing activity of a user; saving the viewing activity of the user in a database; searching electronic program guide data for a program satisfying a criterion based upon the viewing activity of the user stored in the database; determining whether a program in the electronic program guide satisfies the criterion; in the event a program in the electronic program guide satisfies the criterion, scheduling to record the program at a predetermined time; in the event no program in the electronic program guide satisfies the criterion, searching electronic program guide data periodically and/or upon receiving an update of electronic program guide data, until a program in the electronic program guide satisfies the criterion; monitoring the time and then determining whether the present time is the predetermined time; in the event the present time is the predetermined time, notifying the user that the program is to be recorded and confirming whether the program should be recorded; in the event it is confirmed the present time is the predetermined time, recording the program; and organizing the recorded program in a program library such that a user may select the program from the program library and view the recorded program at an appropriate time.