12. A non-transitory computer readable medium storing instructions that, when executed by at least one processor, cause the processor to perform the following operations: identifying a multimedia stream associated with a link, the multimedia stream comprising content and metadata that describes content; removing the metadata from the stream and encoding the content using a compression algorithm to generate a fingerprint for the multimedia stream, the fingerprint comprising a set of unique bits; comparing the generated fingerprint to at least one fingerprint stored in a fingerprint database; determining, based on the comparison, whether the generated fingerprint matches at least one fingerprint stored in the fingerprint database; storing the generated fingerprint in the fingerprint database when it is determined that there is not a match to the generated fingerprint; creating a canonical resource locator for the identified multimedia stream by resolving the link and at least one other link into a simplified format; and associating the canonical resource locator with the generated fingerprint.
16. The computer readable medium of claim 12 , wherein the instructions further cause the at least one processor to perform the operations of: comparing the canonical resource locator to at least one stored canonical resource locator; determining, based on the comparison, whether the canonical resource locator matches at least one stored canonical resource locator; and storing the canonical resource locator in the fingerprint database when it is determined that there is not a match to the stored canonical resource locator.