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 the 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; and storing, by the device, the 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.