Youtube生成视频片段的算法是什么?

时间:2018-07-20 12:46:21

标签: algorithm youtube slug

当我们在YouTube上打开视频时,我们看到URL中有一些随机字符,例如https://www.youtube.com/watch?v=cpp69ghR1IM

是否有用于此作业的算法,或者它只是创建随机字符串并检查其是否在数据库中?由于YouTube上有大量视频,因此不会浪费时间来检查生成的随机字符串的唯一性吗?

此外,为什么YouTube不使用视频标题生成的更好的标签?例如:https://www.youtube.com/watch/Some-Dummy-Video-Title

谢谢。

2 个答案:

答案 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. 很容易确保它们的base64编码数字是唯一的。强制标题的唯一性很困难。
  2. 他们可能不得不对那些看起来更好的标题运行某种“调皮的单词”过滤器。这是一个非常困难的问题。
  3. 使视频标题的编辑更加困难。
  4. 有时视频标题中包含垃圾内容。
  5. 现有的块很容易生成,没有争议,而且无论如何也没人看。为什么要浪费时间在他们身上?
  6. 因为他们总是那样做。

答案 1 :(得分:0)

您可以在hashids上查看他们的操作方式。这是一个根据数字生成短的,唯一的,非顺序的ID的库。它以多种不同的编程语言实现。