当我们在YouTube上打开视频时,我们看到URL中有一些随机字符,例如https://www.youtube.com/watch?v=cpp69ghR1IM
。
是否有用于此作业的算法,或者它只是创建随机字符串并检查其是否在数据库中?由于YouTube上有大量视频,因此不会浪费时间来检查生成的随机字符串的唯一性吗?
此外,为什么YouTube不使用视频标题生成的更好的标签?例如:https://www.youtube.com/watch/Some-Dummy-Video-Title
谢谢。
答案 0 :(得分:1)
11个字符的base64字符串只是一个编码的长整数。
很难确定,但是我怀疑它们是从一个序号开始的,并使用类似于我在https://stackoverflow.com/a/34420445/56778中描述的乘法逆的方式对其进行混淆。然后,他们对结果进行base64编码。
有关更详细的处理方法,请参阅我的博客文章http://blog.mischel.com/2017/06/20/how-to-generate-random-looking-keys/。
关于为什么他们不使用外观更好的,您必须要问他们。我想到的一些可能性。
答案 1 :(得分:0)
您可以在hashids上查看他们的操作方式。这是一个根据数字生成短的,唯一的,非顺序的ID的库。它以多种不同的编程语言实现。