我试图在脚本中从谷歌驱动器下载一个文件,我这样做有点麻烦。我要下载的文件在这里。
我在网上搜了很多,终于下载了其中一个。我得到了文件的uid,较小的文件(1.6MB)下载正常,但较大的文件(3.7GB)总是重定向到一个页面,询问我是否想在不进行病毒扫描的情况下继续下载。谁能帮我跳过那个屏幕?
下面是我如何让第一个文件工作-
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz
当我对另一个文件进行同样操作时,
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz
我得到以下输出-
我注意到在链接的第三行到最后一行,有一个&confirm=JwkK,这是一个随机的4个字符的字符串,但建议有一种方法添加到我的URL确认。我访问的一个链接建议&confirm=no_antivirus,但这不起作用。
我希望这里有人能帮忙!
从2022年开始,你可以使用这个解决方案:
https://drive.google.com/uc?export=download&id=FILE_ID&confirm=t
“病毒扫描警告页面”的来源:
“下载无论如何”的表单张贴到相同的URL,但有额外的三个参数:
t
确认
uuid
如果你改变你原来的URL并添加其中一个:confirm=t,它将下载文件而没有警告页面。
把URL改成
https://drive.google.com/uc?export=download&id=FILE_ID&confirm=t
例如:
$ curl -L 'https://drive.google.com/uc?export=download&id=FILE_ID' > large_video.mp4
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2263 0 2263 0 0 5426 0 --:--:-- --:--:-- --:--:-- 5453
添加confirm=t后,结果为:
$ curl -L 'https://drive.google.com/uc?export=download&id=FILE_ID&confirm=t' > large_video.mp4
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 128M 100 128M 0 0 10.2M 0 0:00:12 0:00:12 --:--:-- 10.9M
2020年7月- Windows用户批处理文件解决方案
我想为windows用户添加一个简单的批处理文件解决方案,因为我只发现了linux解决方案,我花了几天时间来学习为windows创建解决方案的所有这些东西。因此,为了避免其他人可能需要它,这里是。
你需要的工具
wget for windows (5KB exe小程序,无需安装)
从这里下载。
https://eternallybored.org/misc/wget/
jrepl for windows (117KB的批处理程序,无需安装)
该工具类似于linux的sed工具。
从这里下载:
https://www.dostips.com/forum/viewtopic.php?t=6044
假设
%filename% -你想下载的文件将被保存到的文件名。
%fileid% =谷歌文件id(前面已经解释过了)
批量代码下载小文件从谷歌驱动器
wget -O "%filename%" "https://docs.google.com/uc?export=download&id=%fileid%"
批量代码下载大文件从谷歌驱动器
set cookieFile="cookie.txt"
set confirmFile="confirm.txt"
REM downlaod cooky and message with request for confirmation
wget --quiet --save-cookies "%cookieFile%" --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=%fileid%" -O "%confirmFile%"
REM extract confirmation key from message saved in confirm file and keep in variable resVar
jrepl ".*confirm=([0-9A-Za-z_]+).*" "$1" /F "%confirmFile%" /A /rtn resVar
REM when jrepl writes to variable, it adds carriage return (CR) (0x0D) and a line feed (LF) (0x0A), so remove these two last characters
set confirmKey=%resVar:~0,-2%
REM download the file using cookie and confirmation key
wget --load-cookies "%cookieFile%" -O "%filename%" "https://docs.google.com/uc?export=download&id=%fileid%&confirm=%confirmKey%"
REM clear temporary files
del %cookieFile%
del %confirmFile%