2020年12月30日 星期三

透過Docker將Google Photo相簿同步到本地硬碟

 *事前準備

如果你電腦還沒有安裝,請先參考 官方文件 進行安裝,或是Google搜尋如何在電腦上安裝Docker


1. 在電腦內建立兩個資料夾,一個名稱為 storage,用來儲存從Google下載的照片,另一個名稱為 config,用來放設定檔案

2. 到 Google Console 做事前準備:

[1] 打開 Google Cloud Platform 
[2] 建立新專案,名稱自訂,位置選無機構,按下建立

[3] 點選左邊的『資料庫』

[4] 在『搜尋API和服務』輸入 『Photo Library API』,並且點選搜尋結果
[5] 點選『啟用』

[6] 點選『憑證』,再點選『建立憑證』,然後選擇『OAuth 用戶端 ID』


[7] 點選『設定同意畫面』

[8] 點選『外部』,再點選『建立』


[9] 應用程式名稱輸入一個自己想要的名稱,使用者支援電子郵件選擇自己的email,開發人員聯絡資訊的電子郵件輸入自己的email,之後按下『儲存並繼續』
[10] 點選『新增或移除範圍』,將全部的API都打勾,按下『更新』,再按『儲存並繼續』

[11] 按下 『ADD USERS』,並且輸入你想同步的Google帳號,有幾個就要輸入幾個,然後按下『新增』,再按下『儲存並繼續』
[12] 直接拉到最下面,按『返回資訊主頁』
[13] 點左側功能表的『憑證』,選擇『建立憑證』,點選『OAuth用戶端ID』
[14] 應用程式類型選擇『電腦版應用程式』,點選『建立』
[15] 他會先彈出一個『OAuth用戶端已建立』的視窗,先點『確定』關閉,然後點選最右邊的下載按鈕,並且將下載好的檔案重新命名成『client_secret.json』
[16] 將重新命名的『client_secret.json』檔案放到步驟一所建立的『config』資料夾中

3. 到你電腦的終端機中輸入以下指令:

docker run \
 -ti \
 --name gphotos-sync \
 -v {步驟一建立的storage資料夾路徑}
:/storage \ 
 -v {步驟一建立的config資料夾路徑}:/config \ 
 gilesknap/gphotos-sync \
 /storage

隔沒多久會出現一個網址給你,拿這個網址貼到瀏覽器,進行同意後會給你一串代碼,再把他貼回終端機內貼上,並且按下Enter



4. 接下來會看到『WARNING  Downloading Photos』這個字眼,代表已經開始下載你的Google Photo的照片了,第一次會把你上面所有的相片下載下來,會需要花上許多時間,端看你上面有多少照片來取決於他第一次同步的時間會花多長


5. 接下來將以下啟動指令做成啟動檔,並且設定排程,就可以每天幫你自動抓相片嚕

 docker container start gphotos-sync


[後記]

最近在使用的時候發現出現了錯誤訊息:『oauthlib.oauth2.rfc6749.errors.TokenExpiredError: (token_expired)』

這時候請輸入以下指令來重新取得 token:

docker run \
 --rm \
 -ti \
 -v {步驟一建立的storage資料夾路徑}
:/storage \ 
 -v {步驟一建立的config資料夾路徑}:/config \ 
 gilesknap/gphotos-sync \
 /storage --new-token

然後照著步驟3再走一次就可以重新取得token了

沒有留言:

張貼留言