1. A method comprising: obtaining, by a device, metadata pertaining to programs originating from multiple metadata sources; comparing, by the device, metadata of a first type from one of the metadata sources with one or more metadata of the first type from one or more others of the metadata sources; determining, by the device, whether compared metadata of the first type from the one of the metadata sources matches the one or more metadata of the first type from the one or more others of the metadata sources based on the comparing; transforming, by the device, the compared metadata based on one or more transformation rules when the compared metadata does not match; storing, by the device, transformed metadata, wherein the transformed metadata of the first type from the one of the metadata sources matches at least one of the one or more metadata of the first type from at least one other of the metadata sources; aggregating one or more other types of metadata associated with the transformed metadata with one or more other types of metadata associated with the at least one of the one or more others of the metadata sources, wherein the aggregating comprises: identifying when metadata of a same metadata type is obtained from the one of the metadata sources and the one or more others of the metadata sources, wherein the metadata of the same metadata type is other than title metadata; determining which metadata of the same metadata type to aggregate based on a quality metric that indicates a quality of each metadata; and selecting metadata of the same metadata type from the one of the metadata sources or the one or more others of the metadata sources based on the determining, wherein the determining which metadata of the same metadata type to aggregate based on the quality metric comprising: counting a number of words in the metadata of the same metadata type from the one of the metadata sources; counting a number of words in the metadata of the same metadata type from the one or more others of the metadata sources; and determining whether the number of words in the metadata of the same metadata type from the one of the metadata sources is greater than the number of words in the metadata of the same metadata type from the one or more others of the metadata sources; and wherein the selecting comprises: selecting the metadata of the same metadata type from the one of the metadata sources or from the one or more others of the metadata sources in response to the determining that the number of words in the metadata of the same metadata type from the one of the metadata sources or from the one or more others of the metadata sources is greater.