Czy kody YouTube mają zawsze 11 znaków?

18

Piszę kod, aby sprawdzić poprawność adresów URL YouTube. Czy jest gwarantowane, że identyfikator wideo, taki jak oHg5SJYRHA0, ma zawsze dokładnie 11 znaków, czy może czasami jest krótszy lub dłuższy? Czy jest na to oficjalna dokumentacja?

nitro2k01
źródło
Przynajmniej do 5.20e + 19 filmów;)
@Jason niech cię diabli! jakiego kalkulatora używasz!
2
Maks. kombinacja 11 znaków wydaje się być dużą liczbą, ale prawdopodobnie nie będzie się rozśmieszać za kilka lat, ponieważ liczba przesłanych filmów z YouTube rośnie wykładniczo ... Więc NIE licz na to, jeśli tworzysz nie dla jednego roczne strony internetowe.
jave.web
@ jave.web Spóźniłeś się na przyjęcie. Prosiłam o wiarygodne źródła, a nie o to, by ktoś spierał się, czy 64 ^ 11 to duża liczba. Mogą istnieć inne powody, dla których niektóre kody wideo mogą mieć inny format niż ich brak. Na przykład mogą istnieć starsze filmy z krótszymi kodami lub filmy, które są przechowywane w osobnym systemie, z całkowicie innym formatem kodu. Przyjęta odpowiedź zawiera najbardziej wiarygodną odpowiedź, jaką do tej pory widziałem.
nitro2k01
mój komentarz wciąż obowiązuje, szczególnie w 2014 roku, i popiera tylko zaakceptowaną odpowiedź;)
jave.web

Odpowiedzi:

20

Prawdopodobnie będą trzymać się 11 znaków przez długi czas. Każdy znak ma 64 możliwe wartości:

2 * 26 liter (małe i wielkie litery) + 10 dla cyfr, + 2 dla znaków „_” i „-”

2 * 26 + 10 + 2 = 64

Następnie łącznie 11 znaków:

64 ^ 11 = 73786976294838210000 (lub mniej więcej „73,7e18”)

Oczywiście nie wszystkie kombinacje zostaną użyte, w zależności od algorytmu, ale prawdopodobnie nie zamierzają go zmienić w najbliższym czasie. Słowa od programisty YouTube stwierdzają, że nie gwarantują:

Nigdzie nie widzę w dokumentacji, w której oficjalnie ustalamy standardową długość 11 znaków dla identyfikatorów filmów na YouTube. Jest to jedna z tych rzeczy, w których mamy bieżące wdrożenie i może tak pozostać na czas nieokreślony. Ale nie oferujemy żadnych oficjalnych zobowiązań, więc postępuj na własne ryzyko.

Lepszym podejściem, choć bardziej zaangażowanym, byłoby pobranie każdego identyfikatora filmu i przesłanie zapytania do interfejsu API YouTube, aby sprawdzić, czy jest prawidłowe. Na przykład wykonaj HTTP GET to

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

i sprawdź, czy otrzymasz odpowiedź HTTP 200. Oczywiście, jeśli zastosujesz to podejście, filmy, które zostały usunięte z YouTube, wrócą jako nieważne (co może, ale nie musi być tym, czego chcesz), a filmy, które zostały niedawno przesłane do YouTube, mogą również wrócić jako nieważne.

Pozdrawiam, -Jeff Posnick, zespół YouTube API

Źródło: https://web.archive.org/web/20120306111051/http://osdir.com/ml/youtube-api-gdata/2009-10/msg00237.html

Vidar S. Ramdal
źródło
1
@Diego: Jeśli chcesz zacytować tak wiele cyfr, równie dobrze możesz pokazać kilka ostatnich: 64 ^ 11 = 2 ^ 66 = 73.786,976,294,838,206,464 Przy zaokrągleniu 0,5 forma inżynierska to 73.787e18.
Zgadzam się z @ user60228, nie pokazuj pełnych cyfr, chyba że podasz pełną dokładność lub szczegóły w inny sposób. Po prostu interesujące dla niektórych z nas, aby poznać pełną prawdę matematyczną. (PS Świetna odpowiedź!)
Xonatron
4

Coś, na co warto zwrócić uwagę, kilka adresów URL wskazuje ten sam film. Na przykład w zamieszczonych poniżej filmach wszystkie to „Nagrody Nobla 2015!” autor: Scishow:

Ponadto, jeśli zmienisz ostatni znak na Club Dto też będzie działać.

Criticofus
źródło
1
Być może znalazłeś wadę. Najwyraźniej każdy film ma co najmniej 4 adresy URL. W przypadku, gdy wspominasz A, B, C i D wszystkie wskazują na A. Ponadto, E, F, G i H wskazują na E; Ja, J, K i L. wskazują na I. I tak dalej. Dotyczy to każdego testowanego wideo.
JP de la Torre
Wydaje się, że nie ma to już miejsca po opublikowaniu tego komentarza.
nitro2k01
-2

Tak, zawsze mają 11 znaków.


źródło
3
Czy masz jakieś informacje, aby to zrobić?
ale