次の例は、YouTube Data API(v3)を使用して動画に関連する機能を実行する方法を示しています。
チャンネルのアップロード済み動画を取得する
この例では、特定のチャンネルにアップロードされた動画を取得します。この例には、次の 2 つのステップがあります。
-
ステップ 1: チャンネルのアップロード済み動画の再生リスト ID を取得する
channels.listメソッドを呼び出して、チャンネルのアップロード動画を含む再生リストの ID を取得します。リクエストのpartパラメータ値には、取得するchannelリソース部分の 1 つとしてcontentDetailsが含まれている必要があります。API レスポンスのcontentDetails.relatedPlaylists.uploadsプロパティには、再生リスト ID が含まれます。チャネルを特定する方法はいくつかあります。
-
mineパラメータ値をtrueに設定すると、現在認証されているユーザーの YouTube チャンネルの情報を取得できます。リクエストは OAuth 2.0 を使用して承認する必要があります。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &mine=true
-
forUsernameパラメータを YouTube のユーザー名に設定すると、そのユーザー名に関連付けられたチャンネルの情報が取得されます。この例では、forUsernameパラメータ値をGoogleに設定して、Google の公式 YouTube チャンネルの情報を取得します。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &forUsername=Google
-
idパラメータを、情報を取得するチャンネルを一意に識別する YouTube チャンネル ID に設定します。この例では、idパラメータをUCK8sQmJBp8GCxrOtXWBpyEAに設定しています。これは、Google の公式 YouTube チャンネルも識別します。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &id=UCK8sQmJBp8GCxrOtXWBpyEA
-
-
ステップ 2: アップロードされた動画のリストを取得する
playlistItems.listメソッドを呼び出して、アップロードされた動画のリストを取得します。playlistIdパラメータの値を手順 1 で取得した値に設定します。この例では、パラメータ値はUUK8sQmJBp8GCxrOtXWBpyEAに設定されています。これは、Google の公式 YouTube チャンネルにアップロードされた動画のリストです。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list? part=snippet,contentDetails,status &playlistId=UUK8sQmJBp8GCxrOtXWBpyEA
最も人気のある動画を取得する
この例では、YouTube で最も人気のある動画のリストを取得する方法を示します。このリストは、さまざまなシグナルを組み合わせて全体的な人気度を判断するアルゴリズムを使用して選択されます。
最も人気のある動画のリストを取得するには、videos.list メソッドを呼び出し、chart パラメータの値を mostPopular に設定します。
mostPopular チャートには、急上昇の音楽、映画、ゲーム動画が含まれます。
必要に応じて、次のパラメータを設定できます。
regionCode: 指定された地域の動画のリストを返すように API に指示します。パラメータ値は ISO 3166-1 alpha-2 形式の国コードです。i18nRegions.listメソッドを使用すると、YouTube がサポートしている地域コードのリストを取得できます。videoCategoryId: 最も人気のある動画を取得する動画カテゴリを識別します。videoCategories.listメソッドを使用して、YouTube でサポートされているカテゴリ ID のリストを取得できます。
たとえば、次のリクエストは、スペインで最も人気のあるスポーツ動画を取得します。
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet &chart=mostPopular ®ionCode=es &videoCategoryId=17
動画の統計情報を一括で取得する
この例では、videos.batchGetStats メソッドを使用して動画のリストの統計情報を取得します。
このメソッドを使用するには、リクエストの id パラメータに、統計情報を取得する YouTube 動画 ID のカンマ区切りのリストを設定します。part パラメータの値を、レスポンスに含める videoStat リソース部分のカンマ区切りのリストに設定します。サポートされている部分は snippet、statistics、contentDetails、id です。
このメソッドを非公開動画に対して使用する場合は認証が必要ですが、公開動画の場合は必要ありません。リクエストで非公開動画のデータを取得する場合は、適切に承認されている必要があります。
以下のリクエストは、動画 ID VIDEO_ID_1 と VIDEO_ID_2 の統計情報を取得します。
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.batchGetStats? part=snippet,statistics &id=VIDEO_ID_1,VIDEO_ID_2
動画をアップロード
API Explorer はファイルのアップロード機能をサポートしていないため、この説明は実行可能な例にリンクしていません。次のリソースは、v3 API を使用して動画をアップロードできるようにアプリケーションを変更するのに役立ちます。
-
API の videos.insert メソッドのドキュメントには、さまざまなプログラミング言語を使用して動画をアップロードする方法を説明するコードサンプルがいくつか含まれています。
-
再開可能なアップロードのガイドでは、再開可能なアップロード プロセスを使用して動画をアップロードするためにアプリケーションが使用する HTTP リクエストのシーケンスについて説明しています。このガイドは主に、Google API クライアント ライブラリを使用できないデベロッパーを対象としています。一部のライブラリは、再開可能なアップロードをネイティブにサポートしています。
-
動画のアップロードの JavaScript の例では、CORS(クロスオリジン リソース シェアリング)を使用して、ウェブページから動画ファイルをアップロードする方法を示しています。v3 API が使用する CORS アップロード ライブラリは、再開可能なアップロードをネイティブにサポートしています。また、この例では、
videoリソースのprocessingDetails部分を取得してアップロードされた動画のステータスを確認する方法と、アップロードされた動画のステータスの変更を処理する方法も示しています。
アップロードした動画のステータスを確認する
この例では、アップロードされた動画のステータスを確認する方法を示します。アップロードされた動画は、認証済みユーザーのアップロード動画フィードにすぐに表示されます。ただし、動画は処理が完了するまで YouTube に表示されません。
-
ステップ 1: 動画をアップロードする
videos.insertメソッドを呼び出して動画をアップロードします。リクエストが成功すると、API レスポンスには、アップロードされた動画の一意の動画 ID を識別するvideoリソースが含まれます。 -
ステップ 2: 動画のステータスを確認する
videos.listメソッドを呼び出して、動画のステータスを確認します。idパラメータの値を、ステップ 1 で取得した動画 ID に設定します。partパラメータの値をprocessingDetailsに設定します。リクエストが正常に処理されると、API レスポンスに
videoリソースが含まれます。processingDetails.processingStatusプロパティの値を確認して、YouTube で動画の処理がまだ行われているかどうかを判断します。YouTube で動画の処理が完了すると、プロパティの値はprocessing以外の値(succeededやfailedなど)に変わります。リクエストの本文は
videoリソースです。idプロパティには、削除する動画の動画 ID を指定します。この例では、リソースにrecordingDetailsオブジェクトも含まれています。次のリクエストは、動画のステータスを確認します。API Explorer でリクエストを完了するには、
idプロパティの値を設定する必要があります。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet,processingDetails &id=VIDEO_ID
注: アプリケーションは、API をポーリングして、新しくアップロードされた動画のステータスを定期的に確認できます。動画の処理が完了すると、アプリケーションは動画のステータスに応じて、掲示板を作成したり、他のアクションに進んだりできます。
動画の更新
この例では、動画を更新して、動画の撮影日時と場所に関する情報を追加する方法を示します。この例の手順は次のとおりです。
-
ステップ 1: 動画 ID を取得する
上記の手順に沿って、現在認証されているユーザーのチャンネルのアップロード動画を取得します。このリストは、各動画の ID をキーとして使用して、動画のリストを表示するために使用できます。
注: 検索結果の取得や再生リスト内のアイテムのリスト表示など、動画 ID を取得する方法は他にも多数あります。ただし、動画を更新できるのはその所有者のみであるため、このプロセスの最初のステップとして、API リクエストを承認するユーザーが所有する動画のリストを取得することをおすすめします。
-
ステップ 2: 動画を更新する
videos.updateメソッドを呼び出して、特定の動画を更新します。partパラメータの値をrecordingDetailsに設定します。(パラメータ値は、更新する動画のメタデータ フィールドによって異なります)。リクエストの本文は
videoリソースです。idプロパティには、更新する動画の動画 ID を指定します。この例では、リソースにrecordingDetailsオブジェクトも含まれています。次のリソースの例は、動画が 2013 年 10 月 30 日にボストンで録画されたことを示しています。
{ "id": "VIDEO_ID", "recordingDetails": { "location": { "latitude": "42.3464", "longitude": "-71.0975" } "recordingDate": "2013-10-30T23:15:00.000Z" } }API Explorer でリクエストを完了するには、
idプロパティの値を設定する必要があります。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update? part=snippet
ブランド パートナー アクセスを管理する(クリエイター主導のブランド パートナー アクセス)
クリエイター主導のブランド パートナー アクセス(CI BPA)を使用すると、動画の所有者は動画へのアクセス権をブランド パートナー チャンネルと共有できます。これには brandPartner 部分が必要です。
アクセス権を確立する(挿入)
動画のアップロード時にアクセス権を設定するには、part パラメータに brandPartner を含め、リクエスト本文に brandPartner オブジェクトを指定します。ブランド チャンネルを識別するには、channelId(「UC」で始まる外部チャンネル ID)または channelHandle(「@」で始まる)のいずれかを指定する必要があります。
POST /youtube/v3/videos?part=snippet,status,brandPartner { "snippet": { "title": "Video Title", "description": "Video Description", "categoryId": "22" }, "status": { "privacyStatus": "private" }, "brandPartner": { "channelHandle": "@brandchannel" } }
解決済みの channelId のみがレスポンスで返されます。
アクセス権を更新または削除する(更新)
別のブランド チャンネルへのアクセスを更新する場合、またはアクセスを削除する場合は、part パラメータに brandPartner を指定して videos.update メソッドを呼び出します。
アクセスを置き換えるには、リクエスト本文で新しい channelId または channelHandle を指定します。
PUT /youtube/v3/videos?part=brandPartner
{
"id": "VIDEO_ID",
"brandPartner": {
"channelId": "UC_SOME_BRAND_CHANNEL_ID"
}
}アクセス権を削除するには、part パラメータに brandPartner を指定し、リクエスト本文に空の brandPartner オブジェクトを指定してリクエストを送信します。
PUT /youtube/v3/videos?part=brandPartner
{
"id": "VIDEO_ID",
"brandPartner": {}
}カスタム サムネイル画像をアップロードして動画に設定する
v3 API の thumbnails.set メソッドを使用して、カスタム サムネイル画像をアップロードし、動画に設定できます。リクエストの videoId パラメータの値は、サムネイルを使用する動画を識別します。
このクエリは、API Explorer ではテストできません。API Explorer では、このメソッドの要件であるメディア ファイルのアップロードがサポートされていないためです。
動画の削除
この例では、動画を削除する方法を示します。この例の手順は次のとおりです。
-
ステップ 1: 動画 ID を取得する
上記の手順に沿って、現在認証されているユーザーのチャンネルのアップロード動画を取得します。このリストは、各動画の ID をキーとして使用して、動画のリストを表示するために使用できます。
注: 動画 ID を取得する方法は他にも多数あります。たとえば、検索結果を取得する方法や、再生リスト内のアイテムを一覧表示する方法などがあります。ただし、動画を削除できるのはその所有者のみであるため、このプロセスの最初のステップとして、API リクエストを承認するユーザーが所有する動画のリストを取得することをおすすめします。
-
ステップ 2: 動画を削除する
特定の動画を削除するには、
videos.deleteメソッドを呼び出します。リクエストのidパラメータには、削除する動画の動画 ID を指定します。リクエストは OAuth 2.0 を使用して承認する必要があります。API Explorer でこのクエリをテストする場合は、idパラメータ値を有効な動画 ID に置き換える必要があります。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete? id=VIDEO_ID
不正使用の疑いがある動画を報告する
この例では、不適切なコンテンツを含む動画を報告する方法を示します。この例の手順は次のとおりです。
-
ステップ 1: 動画が報告されている理由を説明する ID を取得する
videoAbuseReportReasons.listメソッドに承認済みリクエストを送信して、動画を報告する正当な理由のリストを取得します。以下のvideoAbuseReportReasonリソースのサンプルには、スパムや誤解を招くコンテンツを含む動画を報告するための情報が含まれています。{ "kind": "youtube#videoAbuseReportReason", "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Or2VqBIilpHU7j__oPzUFCvGVBw\"", "id": "S", "snippet": { "label": "Spam or misleading", "secondaryReasons": [ { "id": "27", "label": "Spam or mass advertising" }, { "id": "28", "label": "Misleading thumbnail" }, { "id": "29", "label": "Malware or phishing" }, { "id": "30", "label": "Pharmaceutical drugs for sale" }, { "id": "31", "label": "Other misleading info" } ] } }リソースに示されているように、この理由は二次的な理由のリストに関連付けられています。スパムを含む動画を報告する場合は、理由の ID を指定する必要があります。また、2 つ目の理由も指定することを強くおすすめします。
-
ステップ 2: 不適切なコンテンツとして動画を報告する
承認済みのリクエストを
JSON オブジェクトのvideos.reportAbuseメソッドに送信して、実際に動画を報告します。リクエスト本文は、フラグが付けられる動画と、フラグが付けられる理由の両方を識別する JSON オブジェクトです。ステップ 1 で説明したように、理由の種類によっては、二次的な理由がサポートされており、強く推奨されています。videoIdプロパティは、報告対象の動画を識別します。次の JSON オブジェクトの例では、スパムまたは誤解を招くコンテンツが含まれている動画、具体的には誤解を招くサムネイル画像が使用されている動画にフラグを設定しています。上記の JSON オブジェクトの例に示すように、スパムや誤解を招くコンテンツの ID は S です。誤解を招くサムネイルの ID は 28 です。
{ "videoId": "VIDEO_ID", "reasonId": "S", "secondaryReasonId": "28", "comments": "Testing the video flagging feature.", "language": "en" }videos.reportAbuseリクエストは OAuth 2.0 を使用して承認する必要があります。次のリンクをクリックすると、上記の JSON オブジェクトが APIs Explorer に読み込まれます。クエリをテストするには、videoIdプロパティの値を有効な動画 ID に置き換える必要があります。このリクエストを送信すると、実際に動画にフラグが付けられます。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse