実装: 動画

次の例は、YouTube Data API(v3)を使用して動画に関連する機能を実行する方法を示しています。

チャンネルにアップロードされた動画を取得する

この例では、特定のチャンネルにアップロードされた動画を取得します。この例では、次の 2 つのステップを行います。

この例では、YouTube で特に人気の高い動画のリストを取得する方法を示します。このアルゴリズムは、さまざまなシグナルを組み合わせて全体的な人気度を判断するアルゴリズムを使用して選択されています。

特に人気の高い動画リストを取得するには、videos.list メソッドを呼び出し、chart パラメータの値を mostPopular に設定します。このリストを取得する場合は、以下のパラメータのいずれかまたは両方を設定することもできます。

  • regionCode: 指定した地域の動画のリストを返すように API に指示します。
  • videoCategoryId: 最も人気のある動画を取得する動画のカテゴリを指定します。

次のリクエストでは、スペインで特に人気のあるスポーツ動画を取得します。

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?
        part=snippet
        &chart=mostPopular
        &regionCode=es
        &videoCategoryId=17

動画のアップロード

API Explorer はファイルのアップロード機能をサポートしていないため、この説明は実行例にリンクされていません。v3 API を使用して動画をアップロードできるようにアプリケーションを変更する際は、次のリソースを参考にしてください。

  • API の videos.insert メソッドのドキュメントには、さまざまなプログラミング言語を使用して動画をアップロードする方法を説明するコードサンプルが含まれています。

  • 再開可能なアップロードのガイドでは、再開可能なアップロードのプロセスを使用して動画のアップロードに使用する HTTP リクエストのシーケンスについて説明します。このガイドは主に、再開可能なアップロードのネイティブ サポートを提供する Google API クライアント ライブラリを使用できないデベロッパーを対象としています。

  • 動画のアップロードの JavaScript の例では、CORS(クロスオリジン リソース シェアリング)を使用して、ウェブページから動画ファイルをアップロードする方法を示します。v3 API が使用する CORS アップロード ライブラリは、当然、再開可能なアップロードをサポートしています。また、この例は、video リソースの processingDetails 部分を取得して、アップロードされた動画のステータスを確認し、アップロードした動画のステータス変更を処理する方法を示しています。

アップロードした動画のステータスを確認する

この例は、アップロードした動画のステータスを確認する方法を示しています。アップロードした動画は、認証済みユーザーのアップロード動画フィードにすぐに表示されます。処理が完了するまで、動画は YouTube に表示されません。

  • ステップ 1: 動画をアップロードする

    videos.insert メソッドを呼び出して、動画をアップロードします。リクエストが成功すると、アップロードされた動画の一意の動画 ID を識別する video リソースが API レスポンスに含まれます。

  • ステップ 2: 動画のステータスを確認する

    videos.list メソッドを呼び出して、動画のステータスを確認します。id パラメータの値を、ステップ 1 で取得した動画 ID に設定します。part パラメータの値を processingDetails に設定します。

    リクエストが正常に処理されると、API レスポンスに video リソースが含まれます。processingDetails.processingStatus プロパティの値を確認して、YouTube がまだ動画を処理しているかどうかを確認してください。YouTube が動画の処理を完了すると、プロパティの値は processing 以外(succeededfailed など)に変更されます。

    リクエストの本文は、id プロパティが削除する動画の動画 ID を指定する video リソースです。この例では、リソースに recordingDetails オブジェクトも含まれています。

    以下のリクエストでは、動画のステータスを確認します。APIs 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 に設定します。(パラメータ値は、更新される動画のメタデータ フィールドによって異なります)。

    リクエストの本文は、id プロパティで更新する動画の動画 ID を指定する video リソースです。この例では、リソースに recordingDetails オブジェクトも含まれています。

    以下のサンプル リソースは、この動画が 2013 年 10 月 30 日にボストンで撮影されたことを示しています。

    {
      "id": "VIDEO_ID",
      "recordingDetails": {
        "location": {
          "latitude": "42.3464",
          "longitude": "-71.0975"
        }
        "recordingDate": "2013-10-30T23:15:00.000Z"
      }
    }

    APIs 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 でテストできません。これは、このメソッドの要件となっています。

関連するコードサンプル: PHPPython

動画の削除

この例では、動画を削除する方法を示します。この例の手順は次のとおりです。

  • ステップ 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: 不適切なコンテンツを報告する

    実際に動画を報告するには、videos.reportAbuse メソッドに承認済みのリクエストを送信します。リクエスト本文は JSON オブジェクトで、報告対象の動画と報告した理由の両方を識別します。ステップ 1 で説明したように、なんらかの理由でなんらかの理由からサポートが強く推奨されます。

    JSON オブジェクトの 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