The first think you need to know is, there is no such thing as a Google Video stream or format per say.
When you click to see a movie in the Google Video Player, it downloads a tiny text file with file extension GVP. This causes the Google Video Player to launch. It reads the file and starts to download the video via HTTP, just like the a Flash player is doing in the web browser.
The GVP file is just a text file, so you can open it using notepad and find the URL.
looking at the header of the file, and the first four bytes are "RIFF". Using a File::Format::RIFF, you can took a look inside it and find that it starts with a LIST of type "goog", which has inside it a chunk of type "GDAT" that is 32 bytes long.
AVICodec is willing to overlook this extra data, but Windows Media Player and WinAmp don't.
Here's what AVICodec sees inside the AVI file:
File : 9.91 MB (9.91 MB), duration: 0:02:34, type: AVI, 1 audio stream(s), quality: 46 %
Video : 7.56 MB, 411 Kbps, 30.0 fps, 480*360 (4:3), divx = OpenDivx v4, Supported
Audio : 2.34 MB, 128 Kbps, 44100 Hz, 2 channels, 0x55 = MPEG Layer-3, Supported
So, there's nothing fancy about the data; it's Divx video and MP3 audio. There's just a litte extra data in there gumming up the works.
Essentially, Google and Microsoft are not buddies.
I did find this, however, so if you are good with Linux, you could use the following script:
Update: When you strip out the "goog" list from the front of a GVI file, you get a valid AVI that will play in Windows Media Player and WinAmp. The following script, called gvi2avi will convert a GVI to an AVI:
my ( $riff1 ) = File::Format::RIFF->read( \*STDIN );
$riff1->write( \*STDOUT );
An unmodified GVI file (i.e. with the "goog" list intact) will play correctly in VLC.
The author of this script reported that the quality was so horrendous in the conversion that it was not worth it.
Hopefully someone has made or will make a wizywig for this, but I have yet to find it.
There's a bit of Metablade in all of us.