使用工件

工件是 Google Meet 在响应会议时生成的文件或数据。这包括视频和其他工件,例如转写内容。

本页面介绍了如何检索由会议生成的不同会议工件的相关信息。

如需生成工件,参与者必须在大会结束前在 Meet 中生成工件。转录独立于录制内容,并且您无需录制会议即可生成转录内容。如需了解详情,请参阅录制视频会议在 Google Meet 中使用转写功能

制品保留

会议结束后,Meet 会创建录制内容和转写,并将其上传到会议组织者的云端硬盘。默认情况下,系统会根据云端硬盘规则来保留 Meet 工件。

Meet REST API 提供的转写条目会在会议结束后的 30 天后删除。

您还可以在 Google 保险柜中使用 Meet 专用的保留规则,单独管理 Meet 工件保留事宜。如需了解详情,请参阅使用保险柜保留 Google Meet 录制内容和日志

录音内容

以下部分详细介绍了如何获取有关会议录制的信息。

在录制文件生成后,Meet 可以访问录制 ID。用户有可能从 Google 云端硬盘中删除录音文件,但 Meet 中仍会返回唯一的名称。

conferenceRecords.recordings 资源包含 driveDestination 对象。driveDestination 对象用于存储 Google 云端硬盘中的导出位置,录音会以 MP4 文件的形式保存到该位置。如需下载录音或在浏览器中播放录音文件,请使用 file 字段值。如果您熟悉 Google Drive API,就会发现 file 字段对应于 files 资源中的 id。如需了解详情,请参阅下载和导出文件

搜索所有录音

如需获取有关所有录音的详细信息,请对 conferenceRecords.recordings 资源使用 list() 方法,并附带 parent 路径参数。

该方法会返回会议录制的列表,按 startTime 升序排列,并作为 conferenceRecords.recordings 资源的实例返回。

以下代码示例展示了如何列出会议记录中的所有录音:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/listrecordings/AsyncListRecordings.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordName;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.ListRecordingsRequest;
import com.google.apps.meet.v2.Recording;

public class AsyncListRecordings {

  public static void main(String[] args) throws Exception {
    asyncListRecordings();
  }

  public static void asyncListRecordings() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      ListRecordingsRequest request =
          ListRecordingsRequest.newBuilder()
              .setParent(ConferenceRecordName.of("[CONFERENCE_RECORD]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .build();
      ApiFuture<Recording> future =
          conferenceRecordsServiceClient.listRecordingsPagedCallable().futureCall(request);
      // Do something.
      for (Recording element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.list_recordings.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Format: `conferenceRecords/{conference_record}`
 */
// const parent = 'abc123'
/**
 *  Maximum number of recordings to return. The service might return fewer
 *  than this value.
 *  If unspecified, at most 10 recordings are returned.
 *  The maximum value is 100; values above 100 are coerced to 100.
 *  Maximum might change in the future.
 */
// const pageSize = 1234
/**
 *  Page token returned from previous List Call.
 */
// const pageToken = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callListRecordings() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const iterable = meetClient.listRecordingsAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callListRecordings();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_list_recordings_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_list_recordings():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.ListRecordingsRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_recordings(request=request)

    # Handle the response
    async for response in page_result:
        print(response)

将父级值替换为会议记录的名称。

搜索特定录音

如需获取特定录音的详细信息,请对 conferenceRecords.recordings 资源使用 name 路径参数调用 get() 方法。如需检索录音的名称,请使用 conferenceRecords.recordings.list 方法。

该方法会返回 conferenceRecords.recordings 资源的实例。

以下代码示例展示了如何检索特定记录:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/getrecording/AsyncGetRecording.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.GetRecordingRequest;
import com.google.apps.meet.v2.Recording;
import com.google.apps.meet.v2.RecordingName;

public class AsyncGetRecording {

  public static void main(String[] args) throws Exception {
    asyncGetRecording();
  }

  public static void asyncGetRecording() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      GetRecordingRequest request =
          GetRecordingRequest.newBuilder()
              .setName(RecordingName.of("[CONFERENCE_RECORD]", "[RECORDING]").toString())
              .build();
      ApiFuture<Recording> future =
          conferenceRecordsServiceClient.getRecordingCallable().futureCall(request);
      // Do something.
      Recording response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.get_recording.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the recording.
 */
// const name = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callGetRecording() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.getRecording(request);
  console.log(response);
}

callGetRecording();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_get_recording_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_get_recording():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.GetRecordingRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_recording(request=request)

    # Handle the response
    print(response)

将录音名称替换为要查找的特定录音的名称。

解说词

以下部分详细介绍了如何获取有关会议转写内容的信息。

转写数据生成后,Meet 会获得转写 ID 的访问权限。用户可能会从云端硬盘中删除转写文件,但 Meet 中仍会返回唯一名称。

conferenceRecords.transcripts 资源包含 docsDestination 对象。docsDestination 对象用于存储 Google 云端硬盘中的导出位置,即 Google 文档转写内容的保存位置。如需提取内容或在浏览器中浏览转写内容,请使用 document 字段值。

搜索所有转写内容

如需获取有关所有转录内容的详细信息,请对 conferenceRecords.transcripts 资源使用 conferenceRecords.transcripts.list 方法和 parent 路径参数。

该方法会返回会议转写内容列表,按 startTime 升序排列,并作为 conferenceRecords.transcripts 资源的实例返回。

以下代码示例展示了如何列出会议记录中的所有转写内容:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/listtranscripts/AsyncListTranscripts.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordName;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.ListTranscriptsRequest;
import com.google.apps.meet.v2.Transcript;

public class AsyncListTranscripts {

  public static void main(String[] args) throws Exception {
    asyncListTranscripts();
  }

  public static void asyncListTranscripts() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      ListTranscriptsRequest request =
          ListTranscriptsRequest.newBuilder()
              .setParent(ConferenceRecordName.of("[CONFERENCE_RECORD]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .build();
      ApiFuture<Transcript> future =
          conferenceRecordsServiceClient.listTranscriptsPagedCallable().futureCall(request);
      // Do something.
      for (Transcript element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.list_transcripts.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Format: `conferenceRecords/{conference_record}`
 */
// const parent = 'abc123'
/**
 *  Maximum number of transcripts to return. The service might return fewer
 *  than this value.
 *  If unspecified, at most 10 transcripts are returned.
 *  The maximum value is 100; values above 100 are coerced to 100.
 *  Maximum might change in the future.
 */
// const pageSize = 1234
/**
 *  Page token returned from previous List Call.
 */
// const pageToken = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callListTranscripts() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const iterable = meetClient.listTranscriptsAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callListTranscripts();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_list_transcripts_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_list_transcripts():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.ListTranscriptsRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_transcripts(request=request)

    # Handle the response
    async for response in page_result:
        print(response)

将父级值替换为会议记录的名称。

搜索特定转写文稿

如需搜索特定转写内容,请对 conferenceRecords.transcripts 资源使用 get() 方法,并附带 name 路径参数。如需检索转写内容的名称,请使用 conferenceRecords.transcripts.list 方法。

该方法会返回 conferenceRecords.transcripts 资源的实例。

以下代码示例展示了如何检索特定转写内容:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/gettranscript/AsyncGetTranscript.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.GetTranscriptRequest;
import com.google.apps.meet.v2.Transcript;
import com.google.apps.meet.v2.TranscriptName;

public class AsyncGetTranscript {

  public static void main(String[] args) throws Exception {
    asyncGetTranscript();
  }

  public static void asyncGetTranscript() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      GetTranscriptRequest request =
          GetTranscriptRequest.newBuilder()
              .setName(TranscriptName.of("[CONFERENCE_RECORD]", "[TRANSCRIPT]").toString())
              .build();
      ApiFuture<Transcript> future =
          conferenceRecordsServiceClient.getTranscriptCallable().futureCall(request);
      // Do something.
      Transcript response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.get_transcript.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the transcript.
 */
// const name = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callGetTranscript() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.getTranscript(request);
  console.log(response);
}

callGetTranscript();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_get_transcript_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_get_transcript():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.GetTranscriptRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_transcript(request=request)

    # Handle the response
    print(response)

将转写内容名称替换为要查找的特定转写内容的名称。

解说词

以下部分详细介绍了如何将会议转写会话期间每位参与者的讲话内容作为转写条目获取。

conferenceRecords.transcripts.entries 数据在会议结束后可保留 30 天。

转写条目包含对学员语音内容的转写文本,最多不超过 10,000 个字词。所说内容的语言代码也以 IETF BCP 47 语法的形式包含在内(例如 en-US)。

请注意,Meet REST API 返回的转写条目可能与 Google 文档转写文件中找到的转写内容不一致。如果在生成转录文件后对其进行了修改,就会发生这种情况。

搜索所有转写条目

如需获取所有转写条目的详细信息,请对 conferenceRecords.transcripts.entries 资源使用 list() 方法和 parent 路径参数。

该方法会返回每个会议转写的结构化转写条目列表,按 startTime 升序排序,以 conferenceRecords.transcripts.entries 资源的实例的形式返回。

以下代码示例展示了如何列出会议记录中的所有转写条目:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/listtranscriptentries/AsyncListTranscriptEntries.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.ListTranscriptEntriesRequest;
import com.google.apps.meet.v2.TranscriptEntry;
import com.google.apps.meet.v2.TranscriptName;

public class AsyncListTranscriptEntries {

  public static void main(String[] args) throws Exception {
    asyncListTranscriptEntries();
  }

  public static void asyncListTranscriptEntries() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      ListTranscriptEntriesRequest request =
          ListTranscriptEntriesRequest.newBuilder()
              .setParent(TranscriptName.of("[CONFERENCE_RECORD]", "[TRANSCRIPT]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .build();
      ApiFuture<TranscriptEntry> future =
          conferenceRecordsServiceClient.listTranscriptEntriesPagedCallable().futureCall(request);
      // Do something.
      for (TranscriptEntry element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.list_transcript_entries.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Format:
 *  `conferenceRecords/{conference_record}/transcripts/{transcript}`
 */
// const parent = 'abc123'
/**
 *  Maximum number of entries to return. The service might return fewer than
 *  this value.
 *  If unspecified, at most 10 entries are returned.
 *  The maximum value is 100; values above 100 are coerced to 100.
 *  Maximum might change in the future.
 */
// const pageSize = 1234
/**
 *  Page token returned from previous List Call.
 */
// const pageToken = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callListTranscriptEntries() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const iterable = meetClient.listTranscriptEntriesAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callListTranscriptEntries();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_list_transcript_entries_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_list_transcript_entries():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.ListTranscriptEntriesRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_transcript_entries(request=request)

    # Handle the response
    async for response in page_result:
        print(response)

将父级值替换为会议记录的名称和转写内容的名称。

搜索特定转写条目

如需搜索特定转写条目,请对 conferenceRecords.transcripts.entries 资源使用 get() 方法,并附加 name 路径参数。如需检索转录条目的名称,请使用 conferenceRecords.transcripts.entries.list 方法。

该方法会返回 conferenceRecords.transcripts.entries 资源的实例。

以下代码示例展示了如何检索特定的转写条目:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/gettranscriptentry/AsyncGetTranscriptEntry.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.GetTranscriptEntryRequest;
import com.google.apps.meet.v2.TranscriptEntry;
import com.google.apps.meet.v2.TranscriptEntryName;

public class AsyncGetTranscriptEntry {

  public static void main(String[] args) throws Exception {
    asyncGetTranscriptEntry();
  }

  public static void asyncGetTranscriptEntry() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      GetTranscriptEntryRequest request =
          GetTranscriptEntryRequest.newBuilder()
              .setName(
                  TranscriptEntryName.of("[CONFERENCE_RECORD]", "[TRANSCRIPT]", "[ENTRY]")
                      .toString())
              .build();
      ApiFuture<TranscriptEntry> future =
          conferenceRecordsServiceClient.getTranscriptEntryCallable().futureCall(request);
      // Do something.
      TranscriptEntry response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.get_transcript_entry.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the `TranscriptEntry`.
 */
// const name = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callGetTranscriptEntry() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.getTranscriptEntry(request);
  console.log(response);
}

callGetTranscriptEntry();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_get_transcript_entry_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_get_transcript_entry():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.GetTranscriptEntryRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_transcript_entry(request=request)

    # Handle the response
    print(response)

将转写条目名称替换为要查找的特定转写条目的名称。