首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同的YouTube URL指向同一视频

不同的YouTube URL指向同一视频
EN

Stack Overflow用户
提问于 2017-07-30 18:54:44
回答 1查看 102关注 0票数 2

我在youtube上发现了一些错误,当我反向工程的时候,它是视频标识生成器。如果我更改视频id的最后一个字符,它将重定向到同一个视频。这怎麽可能?

示例:

代码语言:javascript
复制
https://www.youtube.com/watch?v=9bZkp7q19f0
https://www.youtube.com/watch?v=9bZkp7q19f1
https://www.youtube.com/watch?v=9bZkp7q19f2
https://www.youtube.com/watch?v=9bZkp7q19f3

但这个网址不管用:

代码语言:javascript
复制
https://www.youtube.com/watch?v=9bZkp7q19f4
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-30 20:27:20

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

对于videoId,它是一个8字节(64位)整数.将Base64 64编码应用于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

代码语言:javascript
复制
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:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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):

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45403510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档