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

What is the algorithm of Youtube's for generating video slugs?

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

这项工作是否有算法,或者它只是创建随机字符串并检查它是否在数据库中?既然 YouTube 有海量的视频,岂不是浪费时间来检查这个生成的随机字符串的唯一性?

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

提前致谢。

11 个字符的 base64 字符串只是一个编码的长整数。

很难确定,但我怀疑他们是从一个序号开始的,然后使用类似于我在 https://whosebug.com/a/34420445/56778 中描述的乘法逆的东西来混淆它。然后,他们对结果进行 base64 编码。

更详细的处理见我的博客post,http://blog.mischel.com/2017/06/20/how-to-generate-random-looking-keys/.

至于他们为什么不使用 better-looking 鼻涕虫,你得问问他们。我想出了一些可能性。

  1. 很容易确保他们的 base64 编码数字是唯一的。强制标题的唯一性很困难。
  2. 他们可能不得不 运行 对那些 nicer-looking 标题进行某种 "naughty word" 过滤。这是一个非常困难的问题。
  3. 使视频标题的编辑更加困难。
  4. 有时视频标题中包含垃圾。
  5. 现有的 slug 很容易生成,non-controversial,反正没人看。为什么要在他们身上浪费时间?
  6. 因为他们一直都是这样做的。

您可以在 hashids 看看他们是怎么做的。这是一个从数字生成短的、唯一的、非连续的 id 的库。它以多种不同的编程语言实现。