次の例は、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
に設定します。このリストを取得するときに、次のパラメータのいずれかまたは両方を設定することもできます。
regionCode
: 指定した地域の動画のリストを返すように API に指示します。videoCategoryId
: 最も人気のある動画を取得する動画カテゴリを指定します。
次のリクエストは、スペインで最も人気のあるスポーツ動画を取得します。
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.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 つ目の理由も指定することを強くおすすめします。
-
ステップ 2: 動画を不正なコンテンツとして報告する
動画を実際に報告するには、
JSON オブジェクトのvideos.reportAbuse
メソッドに承認済みリクエストを送信します。リクエスト本文は、報告対象の動画と報告の理由の両方を識別する JSON オブジェクトです。ステップ 1 で説明したように、理由によっては、2 つ目の理由を指定できます。2 つ目の理由を指定することを強くおすすめします。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 を使用して承認する必要があります。以下のリンクをクリックすると、API Explorer に上記の JSON オブジェクトが読み込まれます。クエリをテストするには、videoId
プロパティの値に有効な動画 ID を代入する必要があります。このリクエストを送信すると、動画が報告されます。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse