Open3

GASからGeminiに動画の議事録作成をお願いする。

ようかんようかん

Meetで録画→GoogleDriveに保存→GASで録画を取得し、Geminiに投げて議事録作成がやりたい。
Geminiに議事録作成をお願いする場合はあらかじめFile APIを使って動画をアップロードしてあげると良い
(直接アップロードする方法もあるが、動画場合だけ何故かうまくいかなかった)

FileAPIにリクエストを投げるところまでは以下Scrap済み
https://zenn.dev/inoue2002/scraps/a072f86872f7e2

ようかんようかん

動画をアップロード後、アップロードされたurlをinputに入れる。
アップロード直後だと、処理中でこけるので、10秒ほど待った方が良さそう。

/**
 * Gemini APIを呼び出して文字起こしまたは要約を行う
 * @param {string} input 入力(ファイルURI)
 * @return {string} API応答
 */
function callGeminiAPI(input) {
  const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent?key=${GEMINI_API_KEY}`;
  let payload;
 {
    payload = {
      'contents': [{
        "role": "USER",
        "parts": [
          {
            "fileData": {
              "mimeType": 'video/mp4',
              "file_uri": input
            },
          },
          {
            text: '会議の議事録動画です。ここから会話の内容を文字起こしして、記録してください。'
          }
        ],
      }]
    };

  const options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    muteHttpExceptions: true
  };

  const response = UrlFetchApp.fetch(url, options);
  const responseJson = JSON.parse(response.getContentText());
  console.log(responseJson)
  return responseJson.candidates[0].content.parts[0].text;
}