When I tried to encode a YouTube URL to base64 again, the value after the
=sign didn't change, except for the first two letters. Is the last portion already in base64?
Menos o sinal = sendo traduzido em %3D , sim, CvUN8qg9lsk já está codificado em Base64.
Why are they the same?
Como o @LPChip destaca, a função que você está usando é um codificador de URL que traduz somente caracteres especiais no URL ( : , / , ? , + e = ) em sua equivalentes hexadecimais (letras não normais).
Base64 includes other encoding too, right?
Embora a codificação de URL seja considerada uma forma de codificação Base64, vale a pena observar que esse termo está potencialmente sobrecarregado. Por Wikipedia (grifo nosso):
"Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation."
Em suma, a função base64 que você está usando não deve codificar / decodificar CvUN8qg9lsk .
Como uma pequena nota lateral, se você adicionar um = (preenchimento) e tentar traduzir, por exemplo, CvUN8qg9lsk= com um codificador / decodificador "normal" Base64, isso pode funcionar. Dito isso, é improvável que você consiga algo que valha a pena (ou seja, significativo para os seres humanos). É muito provável que os valores que o YouTube usa para obter seus IDs sejam o produto de um algoritmo muito específico que provavelmente não tem relação com nada fora do Google / YouTube.