目的
Linuxからブラウザでアクセスすることなく,Google Drive上のプライベートファイルをダウンロードしてきたい.
概要
Google DriveのAPIとGdriveというものを使って,コンソールからコマンドでファイルを自由にダウンロードできるようにする.
手法
1. Google APIの設定
-
Google Cloud Console(https://console.cloud.google.com/)にアクセス
-
「プロジェクトを作成または選択」からプロジェクトを作成する
-
右上の新しいプロジェクトを選択
-
プロジェクト名と必要であれば場所を追加し,作成
-
プロジェクトを作成という通知が表示されたらOK
-
「プロジェクトを選択」からダッシュボードを開く
-
検索欄にdrive apiと検索し,「Google Drive API」を選択
-
Google Drive APIを有効化
-
画面がこうなっていたらOK
-
「認証情報」を開き,「同意画面を構成」をクリック
-
「開始」をクリック
-
アプリ情報を記入
-
対象は「外部」を選択
-
連絡先情報を記入し,ポリシーに同意して続行
-
「作成」を選択
-
OAuth クライアントを作成を選択
-
アプリケーションの種類はデスクトップアプリを選択(名前はご自由に)
-
このような表示が出たら下部にある「JSONをダウンロード」をクリック
-
閉じるとクライアントの欄に以下のように表示される
-
「データアクセス」を選択
-
「スコープを追加または削除」を選択し,「フィルタ」に「Google Drive API」と入力して適切なAPIを選択
例)ファイルのダウンロードをしたい場合⇒…/auth/drive.readonly
メタデータを取得したい場合⇒…/auth/drive.metadata.readonly -
スコープが追加されていることを確認して「Save」
-
「対象」を選択し.テストユーザーの「+Add users」から「gdrive」を使用するメールアドレスを追加
-
個人的に使うだけなら公開の必要はなし
2. gdriveのインストール
-
Githubからwgetコマンドを使用して,gdriveの最新版をダウンロード
( https://github.com/glotlabs/gdrive/releases )$ wget https://github.com/glotlabs/gdrive/releases/download/3.9.1/gdrive_linux-x64.tar.gz -
tarコマンドを使用してアーカイブを解凍
$ tar -xzf gdrive_linux-x64.tar.gz -
解凍されたgdriveバイナリを/usr/local/bin/ディレクトリに移動し,実行可能に
$ sudo mv gdrive /usr/local/bin/ $ sudo chmod +x /usr/local/bin/gdrive
4.インストールが正しく行われたことを確認
$ gdrive version gdrive 3.9.1 Commit: unknown Rust: 1.75.0 Arch: x86_64 OS: linux
5. google driveアカウントの設定
google driveアカウントをgdriveに追加する.
$ gdrive account add
実行すると、クライアントIDとクライアントシークレットを求められる.
Client ID: xxxxxx.apps.googleusercontent.com Client secret: xxxxxxxx
6. URLを開き,認証
以下のようなURLを開き,指示に従ってGoogleアカウントへのアクセスを許可
Gdrive requires permissions to manage your files on Google Drive. Open the url in your browser and follow the instructions: https://accounts.google.com/xxxxxxxxx
認証が完了すると,CLIに戻り,google driveへのアクセスが設定されます.
gdriveの基本操作
- マイドライブのファイルリストを取得(デフォルト最大30個まで)
$ gdrive files list - ファイルのダウンロード
gdrive files download <FILE_ID> - ディレクトリごとダウンロード
gdrive files download --recursive <FILE_ID>



















