【问题标题】:What is the algorithm of Youtube's for generating video slugs?Youtube 生成视频片段的算法是什么?
【发布时间】:2019-02-08 02:32:18
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

标签: algorithm youtube slug


【解决方案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. 因为他们一直都是这样做的。

【讨论】:

    【解决方案2】:

    您可以在hashids 了解他们是如何做到的。这是一个从数字生成短的、唯一的、非连续的 id 的库。它以许多不同的编程语言实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-27
      • 2013-09-26
      • 1970-01-01
      • 2021-07-13
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多