次の例は、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
動画をアップロード
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
カスタム サムネイル画像をアップロードして動画に設定する
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: 虐待的なコンテンツとして動画を報告する
承認されたリクエストを
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