Download Google Drive Files with wget or curl
UPDATE:
I now have a Python script with many more features (eg. folder support)
You can read more about it here: https://www.matthuisman.nz/2021/11/google-drive-download-script.html
You can read more about it here: https://www.matthuisman.nz/2021/11/google-drive-download-script.html
Often I find myself needing to download google drive files on a remote headless machine without a browser.
Below are the simple shell commands to do this using wget or curl.
Small file = less than 100MB
Large File = more than 100MB (more steps due to Googles 'unable to virus scan' warning)
The text in red is what needs changing for the particular file you want to download.
The fileid can be found in the google url of the file you want to download.
eg:
Note: Make sure the file has been shared 'via link' as the script does not authenticate you.
Below are the simple shell commands to do this using wget or curl.
Small file = less than 100MB
Large File = more than 100MB (more steps due to Googles 'unable to virus scan' warning)
The text in red is what needs changing for the particular file you want to download.
The fileid can be found in the google url of the file you want to download.
eg:
- https://drive.google.com/open?id=1sNhrr2u6n48vb5xuOe8P9pTayojQoOc_
- https://drive.google.com/file/d/1yXsJq7TTMgUVXbOnCalyupESFN-tm2nc/view?usp=sharing
Set the filename to anything you like (most likely the origin files name).
Note: Make sure the file has been shared 'via link' as the script does not authenticate you.
Small File (less than 100MB)
cd ~
export fileid=1yXsJq7TTMgUVXbOnCalyupESFN-tm2nc
export filename=matthuisman.jpg
## WGET ##
wget -O $filename 'https://docs.google.com/uc?export=download&id='$fileid
## CURL ##
curl -L -o $filename 'https://docs.google.com/uc?export=download&id='$fileid
Large File (more than 100MB)
cd ~
export fileid=1sNhrr2u6n48vb5xuOe8P9pTayojQoOc_
export filename=combian.rar
## WGET ##
wget --save-cookies cookies.txt 'https://docs.google.com/uc?export=download&id='$fileid -O- \
| sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p' > confirm.txt
wget --load-cookies cookies.txt -O $filename \
'https://docs.google.com/uc?export=download&id='$fileid'&confirm='$(<confirm.txt)
## CURL ##
curl -L -c cookies.txt 'https://docs.google.com/uc?export=download&id='$fileid \
| sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p' > confirm.txt
curl -L -b cookies.txt -o $filename \
'https://docs.google.com/uc?export=download&id='$fileid'&confirm='$(<confirm.txt)
rm -f confirm.txt cookies.txt