2009-05-06 10 views

risposta

5

È probabilmente una rappresentazione Base 64 modificata di un GUID. (Le implementazioni di Base 64 includono caratteri problematici per gli URL).

+0

sembra probabile. può essere la parte Data4 del GUID (ovvero gli ultimi 2 segmenti della rappresentazione 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'), che è 8 byte, fornendo 11char rappresentazione base64 (variante url-safe) – mykhal

3

Usano questo ID per impedire alle persone di coltivare/inviare spam ai video semplicemente aumentando un numero.

1

Ho visto almeno uno con un trattino di sottolineatura "_" nel mix. Che mi ha sorpreso ... dato che avevo assunto la stessa espressione regolare di Piskvor ... fino ad ora ...

+1

yap .. ad esempio : https://www.youtube.com/watch?v=ivjPQZ_3-xM –

25

Ha modificato base64 come immaginato da Ishmael. Base64 normale è [a-zA-Z0-9 \ + \ /] [=] *. Cioè, i numeri contengono A-Z, a-z, 0-9, + o /, e sono riempiti con 0, 1 o 2 "=" alla fine. YouTube sembra saltare il padding (come UTF-7 Base64 per MIME) e poiché i problemi + e/pose per gli URL, - e _ sono sostituiti rispettivamente.

Pertanto, l'ID YouTube deve corrispondere a REGEXP:/[a-zA-Z0-9 \ -_] +/o/[\ w \ -] +/(sono equivalenti poiché \ w è [A- Za-z0-9_])

Io lo uso in un'implementazione dinamica del caricatore SWFObject di YouTube e funziona perfettamente. Ho osservato entrambi e _ negli ID YouTube, ma mai nessun altro carattere non alfanumerico. Ulteriori informazioni su Base64 possono essere trovate su Wikipedia: URL applications of Base64

Buona fortuna!

Problemi correlati