Google Driveにある大きいファイルをcurl でdowload(2022)
confirm の値がcookieで保存され無くなった?ので改良した
ファイル名のドライブの名前を使う.ディレクトリでもfileでもokにもしてる
自分はbashですが必要に応じて一行目のシェバンのとこを変えれば楽です.自分のshellに応じて実行してください
#!/usr/bin/bash
DIR=`pwd`
if [ $# = 0 ] ; then
echo "no URL"
exit
fi
if [ ` echo $1 |grep /d/` ] ; then
echo Downloading File
line=${1#*'/d/'}
FILE_ID=${line%%'/view'*}
elif [ ` echo $1 |grep /folders/` ] ; then
echo Downloading Folers
line=${1#*'/folders/'}
FILE_ID=${line%%'?usp=sharing'*}
fi
echo $FILE_ID
CODE=$(curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=${FILE_ID}" | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')
# CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"昔のやつ
echo $CODE
curl -JO -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=${FILE_ID}"