実装: 動画

次の例は、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 メソッドを呼び出して動画をアップロードします。リクエストが成功すると、API レスポンスには、アップロードされた動画の一意の動画 ID を識別する video リソースが含まれます。

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

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

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

    リクエスト本文は 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 ではメディア ファイルのアップロード機能がサポートされていないためです。このメソッドではメディア ファイルのアップロードが必要です。

関連するコードサンプル: 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 つ目の理由も指定することを強くおすすめします。

  • ステップ 2: 動画を不正なコンテンツとして報告する

    動画を実際に報告するには、videos.reportAbuse メソッドに承認済みリクエストを送信します。リクエスト本文は、報告対象の動画と報告の理由の両方を識別する JSON オブジェクトです。ステップ 1 で説明したように、理由によっては、2 つ目の理由を指定できます。2 つ目の理由を指定することを強くおすすめします。

    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