😂

Google Meet APIを使ってできること(結論: 無料プランだと録画取得できませんでした...)

2024/07/15に公開

こちらのポストを見て初めてGoogle MeetのAPIがあることを知りました。
これはLLMとかなり相性が良さそうだったので、使ってみました。

(文字起こし、録画の取得はLLMと相性が良さそうなのでAPIを使ってみたかったのですが、無料プランではできなかったですmm)

https://x.com/codehex/status/1812420211200462951

公式ドキュメント
https://developers.google.com/meet/api/guides/overview?hl=ja

※リリースノートを見ると、2023年11月2日にプレビューで公開され、2024年2月15日にGAとなったようです。

APIでできること

  • 会議スペースを作成して、ビデオでユーザーをつなぐ
  • 会議室または会議をリソース名で取得する
  • 参加者と参加者セッションのリストを取得する
  • 会議のアーティファクト(録画、文字起こし、文字起こしのエントリ)を取得する

要は、会議の作成・変更はもちろん、会議終了後に録画や文字起こしを取得できるようです。

セットアップ

  1. APIを有効にする
  2. GCPでAPIとサービス認証情報タブに移動
  3. アプリケーションの種類をデスクトップアプリにし、アプリ名を入力して作成
  4. クレデンシャル情報のjsonをダウンロードし、手元にcredentials.jsonとして保存
  5. 以下のコードを実行 ※最新の情報は公式ドキュメントを確認してください。
from __future__ import print_function

import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from google.apps import meet_v2

# If modifying these scopes, delete the file token.json.
SCOPES = ['https://www.googleapis.com/auth/meetings.space.created']


def main():
    """Shows basic usage of the Google Meet API.
    """
    creds = None
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.json', 'w') as token:
            token.write(creds.to_json())

    try:
        client = meet_v2.SpacesServiceClient(credentials=creds)
        request = meet_v2.CreateSpaceRequest()
        response = client.create_space(request=request)
        print(f'Space created: {response.meeting_uri}')
    except Exception as error:
        # TODO(developer) - Handle errors from Meet API.
        print(f'An error occurred: {error}')


if __name__ == '__main__':
    main()
  1. Googleのログイン画面が立ち上がるため、アカウントを選択してログイン
  2. 会議が作成されているのが確認できればOK
Space created: https://meet.google.com/xxx-xxxx-xxx

録画を取得する

https://developers.google.com/meet/api/guides/artifacts?hl=ja

こちらのドキュメントを実装しようと思いましたが、以下のプランに入っていないと録画を保存できず、無料プランの私は実行できませんでしたmm

https://support.google.com/meet/answer/9308681?hl=ja#zippy=%2Cビデオ会議を録画するための要件

ビデオ会議を録画する機能は、以下の Google Workspace エディションでご利用いただけます。

Business Plus
Business Standard
Essentials
Education Plus。「教職員向け」または「生徒向け」のライセンスが割り当てられているユーザーが利用できます。
Enterprise Essentials
Enterprise Plus
Enterprise Standard
Enterprise Starter
Google One(保存容量が 2 TB 以上のプラン)のメンバー
Teaching and Learning Upgrade。「Teaching and Learning Upgrade」のライセンスが割り当てられているユーザーが利用できます。
Workspace Individual

さいごに

有料プランになった時 or 何か使える機会が来たら試してみようと思います。

Discussion