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."
}
]
}
]
}
}
@stewartmcgown @ScottG489 @AlexDev404 : Silly question, but does this actually work or is it conceptual? I think I have this setup. I am targeting the endpoint directly, but am getting a 404 error. Let me know if I am missing something.