使用工件

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

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

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

工件保留

会议结束后,Meet 会创建录制内容和转录文本,并将其上传到会议组织者的云端硬盘。默认情况下,系统会根据云端硬盘规则保留 Meet 工件。工件会在创建时间或上次修改时间 90 天后自动删除。如需延长工件的保留时间,您可以将其移动到共享云端硬盘

Meet REST API 提供的转写条目会在会议结束 30 天后删除。这些内容无法移至共享云端硬盘以延长其保留期限。

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

制品 默认保留期限
Meet 原始录制内容和转录内容 90 天
转写条目 30 天

录音内容

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

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

conferenceRecords.recordings 资源包含 driveDestination 对象。driveDestination 对象包含录制内容在云端硬盘中的导出位置(录制内容将保存为 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 天内可用。

转录条目包含参与者语音的转录文本,最多包含 1 万字。所讲文本的语言代码也包含在 IETF BCP 47 语法中(例如 en-US)。

请注意,Meet REST API 返回的转录条目可能与文档转录文件中的转录内容不匹配。如果转录文件在生成后发生修改,就会出现这种情况。

搜索所有转写条目

如需获取有关所有转录条目的详细信息,请对 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)

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