22. An apparatus comprising: a processor; and memory storing instructions that, when executed by the processor, cause the apparatus to perform: receiving a program content search request from a user terminal in a communications network; suggesting additional content based on a user's past search criterion or previously downloaded content; searching a local content database based on the program content search request; searching one or more remote content databases based on the program content search request; determining that the program content search request does not yield a matching result with respect to the local content database and the one or more remote content databases; maintaining a list of a plurality of active searches based on the program content search request responsive to determining that the program content search request does not yield a matching result with respect to the local content database and the one or more remote content databases; identifying one or more programs based on the searches; acquiring one or more of the one or more identified programs from one or more of the local content database and the remote databases responsive to a content change made to at least one of the local content database and the remote databases, the content change matching at least one of the active searches, if said one or more identified programs has a viewing audience above a predetermined threshold and meets a predetermined selection criterion that rejects specific items; receiving a user selection for a program of said acquired one or more of the one or more identified programs; and delivering said user selected program to said user terminal.
22. An apparatus comprising: a processor; and memory storing instructions that, when executed by the processor, cause the apparatus to perform: receiving a program content search request from a user terminal in a communications network; suggesting additional content based on a user's past search criterion or previously downloaded content; searching a local content database based on the program content search request; searching one or more remote content databases based on the program content search request; determining that the program content search request does not yield a matching result with respect to the local content database and the one or more remote content databases; maintaining a list of a plurality of active searches based on the program content search request responsive to determining that the program content search request does not yield a matching result with respect to the local content database and the one or more remote content databases; identifying one or more programs based on the searches; acquiring one or more of the one or more identified programs from one or more of the local content database and the remote databases responsive to a content change made to at least one of the local content database and the remote databases, the content change matching at least one of the active searches, if said one or more identified programs has a viewing audience above a predetermined threshold and meets a predetermined selection criterion that rejects specific items; receiving a user selection for a program of said acquired one or more of the one or more identified programs; and delivering said user selected program to said user terminal. 23. The apparatus of claim 22 , wherein the instructions include at least one instruction that, when executed by the processor, causes the apparatus to perform: decoding the one or more programs received from the remote databases; storing the decoded programs; encoding the stored programs and the programs from the local content database for delivery to the user terminal; and delivering the encoded programs to the user terminal.