Usługa Content ID w YouTube

Usługa YouTube Content ID umożliwia korzystanie z interfejsu YouTube Content ID API w Apps Script. Ten interfejs API umożliwia programistom bezpośrednią interakcję z systemem zarządzania prawami Content ID w YouTube. Jako partner YouTube możesz używać interfejsu API do tworzenia komponentów, roszczeń i kampanii oraz zarządzania nimi.

Dokumentacja

Szczegółowe informacje o tej usłudze znajdziesz w dokumentacji referencyjnej publicznego interfejsu YouTube Content ID API. Podobnie jak wszystkie usługi zaawansowane w Apps Script, zaawansowana usługa YouTube Content ID używa tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w artykule Jak określane są sygnatury metod.

Aby zgłaszać problemy i uzyskać pomoc, zapoznaj się z przewodnikiem po pomocy dotyczącej interfejsu YouTube API.

Przykładowy kod

Poniższy przykładowy kod korzysta z wersji 1 interfejsu YouTube Content ID API.

Odbieranie filmu

Ta funkcja tworzy roszczenie przesłane przez partnera dotyczące Twojego filmu z określonymi zasadami zasobu.

advanced/youtubeContentId.gs
/**
 * This function creates a partner-uploaded claim on a video with the specified
 * asset and policy rules.
 * @see https://developers.google.com/youtube/partner/docs/v1/claims/insert
 */
function claimYourVideoWithMonetizePolicy() {
  // The ID of the content owner that you are acting on behalf of.
  const onBehalfOfContentOwner = "replaceWithYourContentOwnerID";
  // A YouTube video ID to claim. In this example, the video must be uploaded
  // to one of your onBehalfOfContentOwner's linked channels.
  const videoId = "replaceWithYourVideoID";
  const assetId = "replaceWithYourAssetID";
  const claimToInsert = {
    videoId: videoId,
    assetId: assetId,
    contentType: "audiovisual",
    // Set the claim policy to monetize. You can also specify a policy ID here
    // instead of policy rules.
    // For details, please refer to the YouTube Content ID API Policies
    // documentation:
    // https://developers.google.com/youtube/partner/docs/v1/policies
    policy: { rules: [{ action: "monetize" }] },
  };
  try {
    const claimInserted = YouTubeContentId.Claims.insert(claimToInsert, {
      onBehalfOfContentOwner: onBehalfOfContentOwner,
    });
    console.log("Claim created on video %s: %s", videoId, claimInserted);
  } catch (e) {
    console.log(
      "Failed to create claim on video %s, error: %s",
      videoId,
      e.message,
    );
  }
}

Aktualizacja danych własności zasobu

Ta funkcja aktualizuje informacje o prawach własności do istniejącego zasobu.

advanced/youtubeContentId.gs
/**
 * This function updates your onBehalfOfContentOwner's ownership on an existing
 * asset.
 * @see https://developers.google.com/youtube/partner/docs/v1/ownership/update
 */
function updateAssetOwnership() {
  // The ID of the content owner that you are acting on behalf of.
  const onBehalfOfContentOwner = "replaceWithYourContentOwnerID";
  // Replace values with your asset id
  const assetId = "replaceWithYourAssetID";
  // The new ownership here would replace your existing ownership on the asset.
  const myAssetOwnership = {
    general: [
      {
        ratio: 100,
        owner: onBehalfOfContentOwner,
        type: "include",
        territories: ["US", "CA"],
      },
    ],
  };
  try {
    const updatedOwnership = YouTubeContentId.Ownership.update(
      myAssetOwnership,
      assetId,
      { onBehalfOfContentOwner: onBehalfOfContentOwner },
    );
    console.log("Ownership updated on asset %s: %s", assetId, updatedOwnership);
  } catch (e) {
    console.log(
      "Ownership update failed on asset %s, error: %s",
      assetId,
      e.message,
    );
  }
}

Wycofać roszczenie

Ta funkcja zwalnia istniejące roszczenie do filmu.

advanced/youtubeContentId.gs
/**
 * This function releases an existing claim your onBehalfOfContentOwner has
 * on a video.
 * @see https://developers.google.com/youtube/partner/docs/v1/claims/patch
 */
function releaseClaim() {
  // The ID of the content owner that you are acting on behalf of.
  const onBehalfOfContentOwner = "replaceWithYourContentOwnerID";
  // The ID of the claim to be released.
  const claimId = "replaceWithYourClaimID";
  // To release the claim, change the resource's status to inactive.
  const claimToBeReleased = {
    status: "inactive",
  };
  try {
    const claimReleased = YouTubeContentId.Claims.patch(
      claimToBeReleased,
      claimId,
      { onBehalfOfContentOwner: onBehalfOfContentOwner },
    );
    console.log("Claim %s was released: %s", claimId, claimReleased);
  } catch (e) {
    console.log("Failed to release claim %s, error: %s", claimId, e.message);
  }
}