Я пишу код для перевірки URL-адрес YouTube. Чи гарантується, що ідентифікатор відео, наприклад oHg5SJYRHA0
, завжди має рівно 11 символів, чи може іноді бути коротшим чи довшим? Чи є офіційна документація з цього приводу?
Я пишу код для перевірки URL-адрес YouTube. Чи гарантується, що ідентифікатор відео, наприклад oHg5SJYRHA0
, завжди має рівно 11 символів, чи може іноді бути коротшим чи довшим? Чи є офіційна документація з цього приводу?
Відповіді:
Вони, ймовірно, довго дотримуватимуться 11 символів. Кожен символ має 64 можливі значення:
2 * 26 літер (малі та великі літери) + 10 для цифр, + 2 для знаків «_» та «-»
2 * 26 + 10 + 2 = 64
Тоді 11 символів:
64 ^ 11 = 73786976294838210000 (або більше або менше "73,7e18")
Звичайно, не всі комбінації будуть використані, залежно від їх алгоритму, але вони, ймовірно, не збираються змінити це незабаром. Слова розробника YouTube стверджують, що вони не гарантують:
Я не бачу ніде в документації, де ми офіційно зобов'язуємося до стандартної довжини 11 символів для відео-ідентифікаторів YouTube. Це одна з тих речей, де ми маємо поточну реалізацію, і це може залишатися таким нескінченно. Але ми не пропонуємо жодних офіційних зобов’язань щодо цього, тому дійте на свій страх і ризик.
Кращим підходом, хоч і тим, хто займається більше, було б взяти кожен ідентифікатор відео та подати запит до API YouTube, щоб перевірити, чи він дійсний. Наприклад, зробити HTTP GET для
http://gdata.youtube.com/feeds/api/videos/VIDEO_ID
і подивіться, чи отримаєте ви відповідь HTTP 200. Звичайно, якщо ви скористаєтесь таким підходом, відео, вилучені з YouTube, повернуться як недійсні (які можуть бути або не бути такими, які ви хочете), а відео, недавно завантажені на YouTube, також можуть повернутися як недійсні.
Ура, -Джеф Познік, команда API YouTube
Щось варто зазначити, пара URL-адрес вказує на одне відео. Наприклад, у відеороликах, розміщених нижче, усі вони "Нобелівські премії за 2015 рік!" від Scishow:
Крім того, якщо ви змінили останнього символу на той C
чи D
інший, він також буде працювати.