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."
}
]
}
]
}
}
Would it be too much of a bother to ask for a little more information on how to use this? The first block looks like some kind of service discovery schema, but beyond that I'm not able to discern how to use this. Any help would be appreciated!