2023年4月17日 星期一

Tools : 解析出雲端硬碟資料夾中所有圖片或音檔的網址

2023年4月17日 星期一

補記:本文為 2023.04 的舊文,2024年已無法存取音檔。

好友江明勳老師問到有什麼快速的方法抓出 Google 雲端硬碟資料夾中的所有圖片檔案的網址清單 ?如果想直接利用網頁中的 Javascript ,應該瀏覽器的安全管制,是無法辦到,但是用 Python、PHP、Perl ...... 甚至 Google Apps Script ,就沒有什麼辦不到的了。

由於我們會有抓出圖片網址的需求,主要是想應用在 HTML5 FUN 題庫的製作,而 HTML5 烘焙機的「圖形化題庫編輯器」如果貼上試算表複製的資料,會自動解析並加上欄位符號,所以我利用 Google 試算表,並以 Google Apps Script 設計了自訂公式:

  • getImages : 將解析出的圖片網址,以橫向的方式填入試算表儲存格。
  • getImagesV : 將解析出的圖片網址,以縱向的方式填入試算表儲存格。
  • getImage : 轉換單一圖片的網址。
  • getAudio : 將解析出的音檔網址,以橫向的方式填入試算表儲存格。 (已無法存取音檔,2024年補記)
  • getImagesV : 將解析出的音檔網址,以縱向的方式填入試算表儲存格。
  • getAll : 解析出圖片的網址、mp3音檔的網址、mp4影片檔的網址,並將主檔名一樣者放在同一列中,同一列會依序在各欄中填入檔案的主檔名、圖檔網址、音檔網址、影片檔網址,如果沒有該檔的則保持空白;不同檔名的會放到下一列中。(2023.09.26新增)

[圖1] 試算表中加了自訂公式 getImages

使用時,只要給 Google 雲端硬碟資料夾的公開分享網址,該資料夾中的所有公開分享的圖片網址或是音檔網址,就會被解析出來,並填入試算表的儲存格中。

[圖2] 使用 getImages 的公式

[圖3] 以 getImages 公式解析出圖片的網址

工具網址

本文中這個帶有 getImages 自訂公式的 Google 試算表網址如下:

開啟以後,記得要先由上方主選單「檔案」的「建立副本」,先建立好自己的副本才能使用;以後如果要更新為最新版,也是同樣的程式。

(註: 已無法存取音檔,2024年補記)

示範影片

底下這部影片示範如何利用帶有 getImages 自訂公式的 Google 試算表,解析出已公開分享的雲端硬碟資料夾網址中的所有圖片網址;並製作成 HTML5 FUN 的造句靈感產生器


遇到 REF! 錯誤的解決方法

底下的影片說明如果出現 REF! 時的解決方法。

Q & A

  • Q:填入公式以後,只出現了「=REF!」及「陣列結果並未展開,否則會覆蓋 D3 內的資料。」的錯誤訊息,要如何排除?
    A:使用 getImages、getImagesV、getAudio 及 getAudioV 時,會將多個結果往右或是往下填入儲存格,如果目標區原來就有資料,就會無法填入而出現錯誤訊息。所以只要將那些「障礙物」先刪除,就可以順利使用本文中的自訂函數了。(請參考前面的影片)
  • Q:圖片的解析度最大只能到 640x480,如何提高解析度?
    A:圖片網址中的「sz=w640-h480」,將數字改為自己想要的大小即可。

相關連結

更新記錄

  • 2023.09.26 新增 getAll 。
  • 2023.04.23 改從 JSON 資料中擷取檔案資訊,可以正確地在網址中記錄原始檔名。圖片的網址由「uc?id=」改用「thumbnail?sz=w640-h480&id=」,這樣可以利用「sz」的參數來設定圖片的最大寬度和最大的高度,自動將解析度太高的圖片降低大小,節省資源及載入的時間。
  • 2023.04.18 getImage 及 getAudio 加入檢查 mime type 的程序,檔案類型不對會出現錯誤訊息提醒。
  • 2023.04.17 加強錯誤訊息的處理;增加 getImage 可轉換單一圖檔的網址;增加 getAudio、getAudioV 可擷取資料夾中的音檔網址,也可轉換單一音檔的網址。
  • 2023.04.16 初稿。

沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket