Я пишу код для проверки 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
это будет работать тоже.