채널 클립 만들기 및 관리하기

이 페이지에서는 Live Stream API 채널 클립을 만들고 관리하는 방법을 설명합니다. 채널 클립은 채널의 하위 리소스입니다. 채널 클립을 사용하여 실시간 스트림에서 VOD 파일을 만들 수 있습니다. 이러한 VOD 파일은 Cloud Storage에 저장됩니다. 자세한 내용은 실시간 스트림에서 VOD 클립 만들기를 참고하세요.

Google Cloud 프로젝트 및 인증 설정

Google Cloud 프로젝트와 사용자 인증 정보를 만들지 않은 경우 시작하기 전에를 참조하세요.

기본 요건

채널 클립을 만들기 전에 다음 리소스를 만들어야 합니다.

  1. 입력 엔드포인트 만들기

  2. 보관 구성으로 채널 만들기

채널 클립 만들기

채널 클립을 만들기 전에 채널을 시작하고 채널에 콘텐츠 스트리밍을 시작해야 합니다.

채널 클립을 만들려면 projects.locations.channels.clips.create 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER: Google Cloud 프로젝트 번호. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
  • LOCATION: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.
    위치 표시
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: 채널의 사용자 정의 식별자
  • CLIP_ID: VOD 클립의 사용자 정의 식별자
  • MARK_IN_TIME: 원래 실시간 스트림 매니페스트의 마크인 Unix epoch 시간. RFC3339 UTC 'Zulu' 형식의 타임스탬프를 사용합니다(예: 2014-10-02T15:01:23Z).
  • MARK_OUT_TIME: 원래 실시간 스트림 매니페스트의 마크아웃 Unix epoch 시간. RFC3339 UTC 'Zulu' 형식의 타임스탬프를 사용합니다(예: 2014-10-02T15:01:23Z).
  • BUCKET_NAME: VOD 클립 매니페스트 및 세그먼트 파일을 보관하기 위해 만든 Cloud Storage 버킷의 이름. 실시간 스트림 매니페스트에 만든 동일한 버킷 또는 다른 버킷을 사용할 수 있습니다. 버킷 이름에 디렉터리 이름을 추가할 수도 있습니다(예: my-bucket/vod-clip).

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/clips/CLIP_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

이 명령어는 요청 진행 상태를 추적하는 데 사용할 수 있는 장기 실행 작업(LRO)을 만듭니다. 자세한 내용은 장기 실행 작업 관리를 참조하세요.

채널 클립 세부정보 가져오기

채널 클립의 세부정보를 가져오려면 projects.locations.channels.clips.get 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER: Google Cloud 프로젝트 번호. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
  • LOCATION: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.
    위치 표시
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: 채널의 사용자 정의 식별자
  • CLIP_ID: VOD 클립의 사용자 정의 식별자

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/clips/CLIP_ID",
  "createTime": CREATE_TIME,
  "startTime": START_TIME,
  "updateTime": UPDATE_TIME,
  "state": "SUCCEEDED",
  "outputUri": "gs://BUCKET_NAME",
  "slices": [
    {
      "timeSlice": {
        "markinTime": "MARK_IN_TIME",
        "markoutTime": "MARK_OUT_TIME"
      }
    }
  ],
  "features": {},
  "clipManifests": [
    {
      "manifestKey": "manifest_hls",
      "outputUri": "gs://BUCKET_NAME/main.m3u8"
    }
  ]
}

projects.locations.channels.clips.get 메서드를 사용하면 채널당 최근 클립 작업 레코드 1,000개만 사용할 수 있습니다. 제한보다 오래된 클립 작업 기록은 모두 삭제됩니다. outputUri로 지정된 생성된 클립 파일을 관리해야 합니다. Live Stream API는 Cloud Storage에서 이러한 파일을 삭제하지 않습니다.

채널 클립 나열

채널에 만든 모든 채널 클립을 나열하려면 projects.locations.channels.clips.list 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER: Google Cloud 프로젝트 번호. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
  • LOCATION: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.
    위치 표시
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: 채널의 사용자 정의 식별자

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
    "clips": [
      {
        "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/clips/CLIP_ID",
        "createTime": CREATE_TIME,
        "startTime": START_TIME,
        "updateTime": UPDATE_TIME,
        "state": "SUCCEEDED",
        "outputUri": "gs://BUCKET_NAME",
        "slices": [
          {
            "timeSlice": {
              "markinTime": "MARK_IN_TIME",
              "markoutTime": "MARK_OUT_TIME"
            }
          }
        ],
        "features": {},
        "clipManifests": [
          {
            "manifestKey": "manifest_hls",
            "outputUri": "gs://BUCKET_NAME/main.m3u8"
          }
        ]
      },
      {
        "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/clips/my-clip2",
        "createTime": CREATE_TIME,
        "startTime": START_TIME,
        "updateTime": UPDATE_TIME,
        "state": "SUCCEEDED",
        "outputUri": "gs://BUCKET_NAME",
        "slices": [
          {
            "timeSlice": {
              "markinTime": "MARK_IN_TIME",
              "markoutTime": "MARK_OUT_TIME"
            }
          }
        ],
        "features": {},
        "clipManifests": [
          {
            "manifestKey": "manifest_hls",
            "outputUri": "gs://BUCKET_NAME/main.m3u8"
          }
        ]
      }
  ]
}