Apakah kode YouTube dijamin selalu 11 karakter?

18

Saya menulis kode untuk memvalidasi URL YouTube. Apakah dijamin bahwa ID video, seperti oHg5SJYRHA0, selalu panjang persis 11 karakter, atau bisakah terkadang lebih pendek atau lebih lama? Apakah ada dokumentasi resmi tentang ini?

nitro2k01
sumber
Setidaknya hingga 5.20e + 19 video dibuat;)
@Jason sialan kau! kalkulator apa yang kamu gunakan!
2
Maks. kombinasi dalam 11 karakter sepertinya jumlah yang besar, tetapi mungkin tidak akan terjadi dalam beberapa tahun sejak jumlah video youtube yang diunggah tumbuh secara eksponensial ... Jadi, jangan mengandalkan itu jika Anda membuat not-for-one- situs web tahun.
jave.web
@ jave.web Anda terlambat ke pesta. Saya meminta sumber-sumber resmi, bukan untuk seseorang yang berdebat apakah jumlah yang saya peroleh besar. Mungkin ada alasan lain bahwa beberapa kode video bisa memiliki format yang berbeda dari kehabisannya. Misalnya, mungkin ada video lawas dengan kode yang lebih pendek, atau video yang disimpan dalam sistem yang terpisah, dengan format kode yang berbeda sama sekali. Jawaban yang diterima berisi jawaban paling otoritatif yang pernah saya lihat sejauh ini.
nitro2k01
komentar saya masih berlaku, terutama pada tahun 2014, dan hanya mendukung jawaban yang diterima;)
jave.web

Jawaban:

20

Mereka mungkin akan menempel 11 karakter untuk waktu yang lama. Setiap karakter memiliki 64 nilai yang mungkin:

2 * 26 huruf (huruf kecil dan huruf besar) + 10 untuk digit, + 2 untuk karakter "_" dan "-"

2 * 26 + 10 + 2 = 64

Maka total 11 karakter:

64 ^ 11 = 73786976294838210000 (atau lebih atau kurang "73,7e18")

Tentu saja tidak semua kombinasi akan digunakan, tergantung pada algoritme mereka, tetapi mereka mungkin tidak akan mengubahnya dalam waktu dekat. Namun, kata-kata dari pengembang YouTube menyatakan bahwa mereka tidak menjamin:

Saya tidak melihat di mana pun di dokumentasi tempat kami secara resmi berkomitmen untuk panjang standar 11 karakter untuk id video YouTube. Ini adalah salah satu hal di mana kami memiliki implementasi saat ini, dan mungkin tetap seperti itu tanpa batas. Tetapi kami tidak menawarkan komitmen resmi apa pun untuk itu, jadi teruskan risiko Anda sendiri.

Pendekatan yang lebih baik, meskipun yang lebih terlibat, akan mengambil setiap id video dan membuat permintaan ke API YouTube untuk melihat apakah itu valid. Misalnya, buat HTTP GET ke

http://gdata.youtube.com/feeds/api/videos/VIDEO_ID

dan lihat apakah Anda mendapatkan kembali respons HTTP 200. Tentu saja, jika Anda mengambil pendekatan itu, video yang telah dihapus dari YouTube akan kembali sebagai tidak valid (yang mungkin atau mungkin tidak Anda inginkan) dan video yang baru-baru ini diunggah ke YouTube mungkin juga kembali sebagai tidak valid.

Ceria, -Jeff Posnick, Tim API YouTube

Sumber: https://web.archive.org/web/20120306111051/http://osdir.com/ml/youtube-api-gdata/2009-10/msg00237.html

Vidar S. Ramdal
sumber
1
@Diego: Jika Anda akan mengutip begitu banyak digit, Anda juga dapat menunjukkan beberapa digit terakhir: 64 ^ 11 = 2 ^ 66 = 73.786.976.294.838.206.464 Dengan pembulatan 0,5, bentuk teknik adalah 73.787e18.
Saya setuju dengan @ user60228, jangan tampilkan angka penuh kecuali jika Anda menunjukkan akurasi penuh atau detail sebaliknya. Cukup menarik bagi sebagian dari kita untuk mengetahui kebenaran matematika penuh. (PS Jawaban hebat!)
Xonatron
4

Sesuatu yang layak ditunjukkan, beberapa URL mengarah ke video yang sama. Misalnya, dalam video yang diposting di bawah ini, semuanya adalah "Hadiah Nobel 2015!" oleh Scishow:

Juga, jika Anda mengubah karakter terakhir ke Catau Dyang akan berfungsi juga.

Criticofus
sumber
1
Anda mungkin menemukan cacat. Rupanya setiap video memiliki setidaknya 4 url. Dalam hal Anda menyebutkan A, B, C, dan D semua menunjuk ke A. Juga, E, F, G, dan H menunjuk ke E; I, J, K, dan L menunjuk ke I. Dan seterusnya. Dan itu berlaku untuk setiap video yang saya uji.
JP de la Torre
Tampaknya ini tidak lagi berlaku sejak memposting komentar ini.
nitro2k01
-2

Ya, mereka selalu memiliki 11 karakter.


sumber
3
Apakah Anda memiliki informasi untuk mendukungnya?
ale