for future user who happen to come here having the same issue, I don't find any solution for this. But I found some trick
When I click backup, browser send request to server. in the browser, I can copy the request as curl.
open google colab, type ! (exclamation mark) followed by the copied request
for example
!curl 'https://www.awesome-website.com/web/database/backup' \
-H 'Connection: keep-alive' \
--data-raw master_pwd=your_odoo_pass\&name=your_db_name\&backup_format=zip
Then I get error if I run as it is. Curl need -o flag to determine what filename will be if the download finished. So here is the full command
!curl -o your_filename 'https://www.awesome-website.com/web/database/backup' \
-H 'Connection: keep-alive' \
--data-raw master_pwd=your_odoo_pass\&name=your_db_name\&backup_format=zip
Then run it
Google will download the database with high speed internet. Then I can download with my crappy wifi :D
after the download finish, I can either copy it into my google drive for me to download it later or download it right away
Please be careful when using this trick because this trick will expose your odoo password
Check the odoo logs for any error info while taking the backup