top | item 7210750

Ask HN: Decode Youtube 500 page

44 points| aeon10 | 12 years ago

This is youtube's 500 page. I wonder if someone knows how the 'information' is encoded. It is not base64. Does anyone know how to decode it.

http://paste.pm/raw/dme

19 comments

order

djthorpe|12 years ago

The code is indeed very useful to debug issues. When asked for it by YouTube, please provide the actual text rather than a screenshot...I get sent the screenshot a lot and then I have to use OCR software in order to decode it.

aeon10|12 years ago

Can you divulge what kinds of information is stored in it. Or the encoding it uses?

Perseids|12 years ago

Why do you assume it is not base64 encoded? I have always come to believe it is some encrypted data. If I was Google I would probably give every server a UUID and a symmetric key. If an error occurs encrypt (and authenticate) the stacktrace and other debug information with that symmetric key and prepend the UUID. As a developer you can then find out the server that produced the error message, log in via SSH and decrypt the debug information.

But it would be interesting to collect a lot of this error messages to check if they appear to be completely random.

nwh|12 years ago

They change completely on every load. Encoding would likely have similar sections between page refreshes, as it doesn't we can assume your theory of encrypted data is correct. It makes sense anyway, it means they can have a user supply a stack trace or similar without exposing any information to them.

kaivi|12 years ago

It is surely an encrypted stack trace, encoded in base64, which is probably being spit out by the load balancer proxy. I would not be surprised if Youtube developers used their own Chrome extension for making that binary meat readable.

I have once set out to write a module for Nodejs for the same purpose, but never finished it. Can't really see a downside in this way of reporting errors.

babawere|12 years ago

1. Non-standard base64 and 2. Definitely Compressed ... by guess would be snappy compression 3. Possibility of serialization using protocol buffer 4. not sure if such information would be encrypted after such a server failure

nigma|12 years ago

Using Python 3.3:

    import base64
    base64.urlsafe_b64decode(s)

aeon10|12 years ago

I cant seem to get any legible data.