Magicode logo
Magicode
3

YouTubeのvideo idをpythonで作ってみた。

YouTubeのビデオのidがuuidじゃない件

例えば https://www.youtube.com/watch?v=gocwRvLhDf8 の「gocwRvLhDf8」のような数字だ。

衝突しないidを作る場合、uuidが良さそうだ。


0752ec709a534b85a9c975a67680c770 32文字

UUID4とは

Universally Unique Identifierのことで、「将来にわたって重複や偶然の一致が起こらないという前提で用いることができる」ようだ。

uuid4は、16進数の32文字からなる。

しかしYouTubeでは、動画のidとしてuuidを使わず11文字の文字列で表していることがわかる。

YouTubeのvideo idで使われている文字

YouTubeではvideo idとして、base64をベースに用いている。 base64とは大文字小文字のアルファベット(a~z, A~z)と数字(0~9)、記号(+/)で表す。 アルファベットは26文字、数字は10文字、記号は2文字なので、26×2 + 10 + 2 = 64となる。

そのうち+/はURLにおいて不都合が生じるため-_で代用している。 これをPythonで書くとこのようになる。(適当なのでより良い書き方があったら教えてほしいです。)

参考: http://www.learningaboutelectronics.com/Articles/How-to-generate-a-random-unique-video-id-like-youtube-with-Python-in-Django.php



'4_El_ZFuqvk'

おまけ

この動画を見て思いつきました。 https://www.youtube.com/watch?v=gocwRvLhDf8

ご意見やご感想があればコメントください!

Discussion

コメントにはログインが必要です。