Creating a Google Takeout export (specifically for Google Drive) requires this POST variable to be set.
[[["U5lrKc","[\"ac.t.st\",[[[\"drive\",[],[\"1AO8SZZvP1XJUPWk8iKMcT44heFqaHcjy\"],[]]],\"TGZ\",null,5,null,4294967295,1]]",null,"generic"]]]
The above is an example of a drive export. The [\"1AO8SZZvP1XJUPWk8iKMcT44heFqaHcjy\"]
is clearly a list of Drive ID's, \"TGZ\"
is the archive format (either 'TGZ' or 'ZIP') and 4294967295
is the size of the single archives.
["1073741824", "2147483648", "4294967295", "10737418240", "53687091200"]
)]}'
504
[["wrb.fr","U5lrKc","[\"ac.t.star\",[\"ac.t.ta\",\"e6be7f48-cdb1-4f9a-8c96-ba104e447b7b\",\"28 December 2019\",null,\"\",null,0,[[\"drive\",\"Drive\",\"https://www.gstatic.com/images/branding/product/1x/drive_32dp.png\",null,null,null,null,null,\"https://www.gstatic.com/images/branding/product/1x/drive_64dp.png\"]\n]\n,null,***0***,null,false,null,null,null,null,null,false,5,null,null,false,1577822939583,null,0]\n]\n",null,null,null,"generic"]
,["di",3352]
,["af.httprm",3351,"-3990804138194223976",29]
]
26
[["e",4,null,null,541]
]
The progress of your archive is given by the number surrounded by ***
in the above JSON. You can check on the status of the archive by polling:
https://takeout.google.com/u/1/_/TakeoutUi/data/batchexecute?rpcids=xxxxxx&f.sid=-xxxxxxxxxxxxxxxxxx&bl=boq_identityfrontenduiserver_20191215.19_p0&hl=en-GB&_reqid=xxxxxxx&rt=c
When you right-click and Download a folder in Drive, a request is made to the takeout endpoint. The JSON payload is:
POST https://takeout-pa.clients6.google.com/v1/exports?key=xxxxxxxxxxxxxxxxxxxxxxxxx
{"archiveFormat":"TGZ","archivePrefix":"6 prefix","conversions":null,"items":[{"id":"1Km3S2ZK3c_FRR1RHz2rvPJ1rEc21T1Hm"}],"locale":null}
Attempting to find the parameter which allows us to specify the archive size was a lot of brute forcing, with mostly these errors:
{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"compressedSize\" at 'export_request': Cannot find field.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "export_request",
"description": "Invalid JSON payload received. Unknown name \"compressedSize\" at 'export_request': Cannot find field."
}
]
}
]
}
}
Not silly at all. I wasn't ever able to get this to work and I don't understand how it would ever work since there's no official Takeout API that would be available to be enabled in the dev console.
If you make any progress with this I'd be very interested to hear.