LittleFox

  • 博客
  • 收藏
  • 关于
  • 订阅本站
LittleFox
Simple & Naïve
  1. 首页
  2. 挨踢
  3. 正文

使用wget从Google Drive下载文件

2019年6月12日 3059点热度 4人点赞 0条评论

Google Drive(谷歌开车???)是国外非常常用的网盘,有时候我们需要把Google Drive的文件下载到小鸡上,但是直接用wget后面跟下载链接是行不通的,这时候应该怎么办呢?

首先最简单粗暴的方法是用浏览器下载到本地再上传到小鸡,但是对于大文件这样流量和时间是很伤不起的;然后是非官方的Google Drive客户端,github上一大把,如果你常用的话是可以的,但是用来下载单个文件还是很麻烦;那么我们能不能直接用wget下载Google Drive的直链呢?

可以的!首先你要有一个Google Drive分享链接,我们知道Google Drive的分享链接是这样的格式:

https://docs.google.com/open?id=<ID>

知道了ID,就可以用wget来下载了,只需要转换一下链接格式:

$  wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=<ID>' -O <FILENAME>

把其中的<ID>和<FILENAME>替换成分享ID和文件名,就可以下载了。

不过有的时候呢,这样还是会报错,因为Google对于较大的文件,下载前是需要确认的,这个确认的过程我理解是会生成一个cookies,然后浏览器把cookies传递给下载器(或者浏览器内置),我们就可以愉快地下载了,但是通过wget直接下载并不生成cookies,所以就下不下来咯。那么生成cookies这一步可以用wget实现么?当然可以啦,只不过命令稍微长一点:

$ wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=<ID>' -O- | sed -rn 's/.confirm=([0-9A-Za-z_]+)./\1\n/p')&id=<ID>" -O <FILENAME> && rm -rf /tmp/cookies.txt

经常用的话,可以写成function放到aliases里,参看这里。更多信息可以参考这个讨论。

另外还有一个获取链接的方法,我没有测试,理论上应该可行已经实测可用(截止2021年3月)。Firefox有个插件叫cliget,可以在扩展中心找到,这个东西的作用是把你正在下载的链接转换成curl wget或者aria2可用的链接,那么在插件启用的状态下,在浏览器下载文件(必须用浏览器内置的下载器),下载过程中用cliget获取命令,获取到以后可以暂停或者取消,然后用对应的工具在小鸡上下载即可,大文件建议用screen哦。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: Google Drive VPS 原创
最后更新:2021年3月15日

Fox

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

公告

由于主题和插件冲突,暂时关闭了评论的第三方登录功能。

分类
  • 挨踢 / 39篇
  • 日常 / 2篇
  • 随想 / 8篇
  • 默认分类 / 1篇

COPYRIGHT © 2022 littlefox.me. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang