YouTube URL algorithm?

How would you go about generating the unique video URL's that YouTube uses?

Example:

  • http://www.youtube.com/watch?v=CvUN8qg9lsk

Solution 1:

YouTube uses Base64 encoding to generate IDs for each video.Characters involved in generating Ids consists of

(A-Z) + (a-z) + (0-9) + (-) + (_). (64 Characters).

Using Base64 encoding and only up to 11 characters they can generate 73+ Quintilian unique IDs.How much large pool of ID is that?

Well, it's enough for everyone on earth to produce video every single minute for 18000 years.

And they have achieved such huge number by only using 11 characters (64*64*64*64*64*64*64*64*64*64*64) if they need more IDs they will just have to add 1 more character to their IDs.

So when video is uploaded on YouTube they basically randomly select from 73+ Quintilian possibility and see if its already taken or not.if not use it otherwise look for another one.

Refer to this video for detailed explanation.

Solution 2:

Using some non-trivial hashing function. The probability of collision is very low, depending on the function, the parameters and the input domain. Keep in mind that cryptographic hashes were specifically designed to have very low collision rates for non-random input (i.e. completely different hashes for two close-but-unequal inputs).

This post by Jeff Attwood is a nice overview of the topic.

And here is an online hash calculator you can play with.