TL;DR
- クソデカファイルをGoogle Driveからダウンロードするときは,
gdown
ではなくcurl
直打ちでダウンロードしよう
はじめに
- Google Drive内の50GBほどあるデータをgdownでダウンロードしようとすると以下のエラーが出た
Access denied with the following error:
Too many users have viewed or downloaded this file recently. Please
try accessing the file again later. If the file you are trying to
access is particularly large or is shared with many people, it may
take up to 24 hours to be able to view or download the file. If you
still can't access a file after 24 hours, contact your domain
administrator.
- issue①にて作者曰く, “At the moment, I’m not sure how to avoid this error.“ということで, どうやらgdown上での解決策は無いらしい
- ということでまずは
gdown
を諦めます👊
解決策
-
結論から言うと, “Access denied"とあるのだから, アクセス権限を渡して
curl
すれば良い- OAuth 2.0 Playgroundというシロモノを使えば, 時間制限付きだが自分専用のAccess-Tokenが発行できるので, OAuth認証(というかBearer認証)が手軽にできる
-
解決策
- 当該URLからファイルIDを抜き出す (URLのどこがidなのかは適当にググってください)
- OAuth 2.0 Playgroundにアクセス
- “Drive API v3”を探してクリック→ 「 https://www.googleapis.com/auth/drive.readonly 」と書いてある所をクリック
- “exchange authorization code for tokens"をクリックして"Access Token"を取得
curl -H "Authorization: Bearer <access-token>" https://www.googleapis.com/drive/v3/files/<file-id>?alt=media -o <output-path>
を実行<access-token>
,<file-id>
,<output-path>
はご自身に適切なものを入れてください