不同的YouTube网址指向同一视频

时间:2017-07-30 18:54:45

标签: url youtube

当我对其视频ID生成器进行逆向工程时,我在youtube中发现了一些错误。如果我更改了视频ID的最后一个字符,它会重定向到同一个视频。这怎么可能?

示例:

https://www.youtube.com/watch?v=9bZkp7q19f4

但是这个网址不起作用:

System.Data.DataTable

1 个答案:

答案 0 :(得分:1)

videoId是8字节(64位)base64编码。来自this post

  

对于videoId,它是一个8字节(64位)整数。应用   Base64编码到8个字节的数据需要11个字符。然而,   因为每个Base64字符恰好传达6位,这个分配   实际上可以容纳11×6 = 66位 - 超过2位   我们的有效载荷需要什多余的位设置为零,具有   排除某些字符在最后出现的效果   编码字符串的位置。特别是,videoId将永远   以下列之一结束:{A,E,I,M,Q,U,Y,c,g,k,o,s,   w,0,4,8}

在您的情况下,您的videoId为9bZkp7q19f0

enc.  | 9      b      Z      k      p      7      q      1      9      f      | 0
value | 61     27     25     36     41     59     42     53     61     31     | 52
bin.  | 111101 011011 011001 100100 101001 111011 101010 110101 111101 011111 | 1101  00

如果修改了最后一个字符,如果修改了4个最有意义位(MSB),则64位id将会改变:

9bZkp7q19f1:

enc.  | 9      b      Z      k      p      7      q      1      9      f      | 1
value | 61     27     25     36     41     59     42     53     61     31     | 53
bin.  | 111101 011011 011001 100100 101001 111011 101010 110101 111101 011111 | 1101  01

9bZkp7q19f2:

enc.  | 9      b      Z      k      p      7      q      1      9      f      | 2
value | 61     27     25     36     41     59     42     53     61     31     | 54
bin.  | 111101 011011 011001 100100 101001 111011 101010 110101 111101 011111 | 1101  10

9bZkp7q19f3:

enc.  | 9      b      Z      k      p      7      q      1      9      f      | 3
value | 61     27     25     36     41     59     42     53     61     31     | 55
bin.  | 111101 011011 011001 100100 101001 111011 101010 110101 111101 011111 | 1101  11

这将提供不同的视频ID(请注意,最后一个字节的4个MSB已修改为11011110):

enc.  | 9      b      Z      k      p      7      q      1      9      f      | 4
value | 61     27     25     36     41     59     42     53     61     31     | 56
bin.  | 111101 011011 011001 100100 101001 111011 101010 110101 111101 011111 | 1110  00

9bZkp7q19f4将提供不同的64位ID。请注意,如果此类ID存在9bZkp7q19f49bZkp7q19f59bZkp7q19f69bZkp7q19f7将提供相同的ID。

您可以查看base64编码/值here