Wdrożenie: filmy

Poniższe przykłady pokazują, jak za pomocą interfejsu YouTube Data API (wersja 3) wykonywać funkcje związane z filmami.

Pobieranie przesłanych filmów z kanału

Ten przykład pobiera filmy przesłane na konkretny kanał. Przykład składa się z 2 etapów:

Ten przykład pokazuje, jak pobrać listę najpopularniejszych filmów w YouTube, które są wybierane za pomocą algorytmu łączącego wiele różnych sygnałów w celu określenia ogólnej popularności.

Aby pobrać listę najpopularniejszych filmów, wywołaj metodę videos.list i ustaw wartość parametru chart na mostPopular.mostPopular Wykres zawiera popularne filmy muzyczne, filmy i filmy o grach.

Następnie możesz opcjonalnie ustawić te parametry:

  • regionCode: nakazuje interfejsowi API zwrócenie listy filmów z określonego regionu. Wartością parametru jest kod kraju w formacie ISO 3166-1 alfa-2. Aby pobrać listę kodów regionów obsługiwanych przez YouTube, możesz użyć metody i18nRegions.list.
  • videoCategoryId: określa kategorię filmów, dla której mają zostać pobrane najpopularniejsze filmy. Aby pobrać listę identyfikatorów kategorii obsługiwanych przez YouTube, możesz użyć metody videoCategories.list.

Na przykład to żądanie pobiera najpopularniejsze filmy o sporcie w Hiszpanii:

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

Pobieranie statystyk wielu filmów

Ten przykład pobiera statystyki listy filmów za pomocą metody videos.batchGetStats.

Aby użyć tej metody, ustaw parametr id żądania na listę rozdzielonych przecinkami identyfikatorów filmów na YouTube, dla których chcesz pobrać statystyki. Ustaw wartość parametru part na listę oddzielonych przecinkami części zasobu videoStat, które mają być uwzględnione w odpowiedzi. Obsługiwane części to snippet, statistics, contentDetailsid.

W przypadku filmów niepublicznych do korzystania z tej metody wymagane jest uwierzytelnianie, ale w przypadku filmów publicznych nie jest ono konieczne. Jeśli żądanie pobiera dane dotyczące filmów niepublicznych, musi być odpowiednio autoryzowane.

Poniższe żądanie pobiera statystyki dotyczące identyfikatorów filmów VIDEO_ID_1VIDEO_ID_2:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.batchGetStats?
        part=snippet,statistics
        &id=VIDEO_ID_1,VIDEO_ID_2

Prześlij film

Eksplorator interfejsów API nie obsługuje przesyłania plików, więc ten opis nie zawiera linku do przykładu wykonywalnego. Poniższe materiały pomogą Ci zmodyfikować aplikację, aby mogła przesyłać filmy za pomocą interfejsu API w wersji 3:

  • Dokumentacja metody videos.insert interfejsu API zawiera kilka przykładów kodu, które pokazują, jak przesyłać filmy w różnych językach programowania.

  • W przewodniku Przesyłanie z możliwością wznowienia znajdziesz opis sekwencji żądań HTTP, których aplikacja używa do przesyłania filmów z możliwością wznowienia. Ten przewodnik jest przeznaczony głównie dla programistów, którzy nie mogą korzystać z bibliotek klienta interfejsu API Google, z których niektóre zapewniają natywną obsługę przesyłania z możliwością wznowienia.

  • Przykład w JavaScript dotyczący przesyłania filmu korzysta z mechanizmu CORS (współdzielenia zasobów pomiędzy serwerami z różnych domen), aby pokazać, jak przesłać plik wideo za pomocą strony internetowej. Biblioteka przesyłania CORS, z której korzysta interfejs API w wersji 3, naturalnie obsługuje przesyłanie z możliwością wznowienia. Przykład pokazuje też, jak sprawdzić stan przesłanego filmu, pobierając część processingDetails zasobu video, oraz jak obsługiwać zmiany stanu przesłanego filmu.

Sprawdzanie stanu przesłanego filmu

Ten przykład pokazuje, jak sprawdzić stan przesłanego filmu. Przesłany film będzie od razu widoczny na karcie przesłanych filmów uwierzytelnionego użytkownika. Film nie będzie jednak widoczny w YouTube, dopóki nie zostanie przetworzony.

  • Krok 1. Prześlij film

    Wywołaj metodę videos.insert, aby przesłać film. Jeśli żądanie zostanie zrealizowane, odpowiedź interfejsu API będzie zawierać zasób video, który identyfikuje unikalny identyfikator przesłanego filmu.

  • Krok 2. Sprawdź stan filmu

    Wywołaj metodę videos.list, aby sprawdzić stan filmu. Ustaw wartość parametru id na identyfikator filmu uzyskany w kroku 1. Ustaw wartość parametru part na processingDetails.

    Jeśli żądanie zostanie obsłużone, odpowiedź interfejsu API będzie zawierać zasób video. Sprawdź wartość właściwości processingDetails.processingStatus, aby określić, czy YouTube nadal przetwarza film. Gdy YouTube zakończy przetwarzanie filmu, wartość właściwości zmieni się na inną niż processing, np. succeeded lub failed.

    Treść żądania to zasób video, w którym właściwość id określa identyfikator filmu, który chcesz usunąć. W tym przykładzie zasób zawiera też obiekt recordingDetails.

    Poniższe żądanie sprawdza stan filmu. Aby dokończyć żądanie w APIs Explorer, musisz ustawić wartość właściwości id.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
            part=snippet,processingDetails
            &id=VIDEO_ID

Uwaga: aplikacja może wysyłać do interfejsu API zapytania, aby okresowo sprawdzać stan nowo przesłanego filmu. Po przetworzeniu filmu aplikacja może utworzyć komunikat lub wykonać inne działanie w zależności od stanu filmu.

Aktualizowanie filmu

Ten przykład pokazuje, jak zaktualizować film, aby dodać informacje o czasie i miejscu nagrania. Przykład zawiera te kroki:

  • Krok 1. Pobierz identyfikator filmu

    Wykonaj powyższe czynności, aby pobrać przesłane filmy z kanału aktualnie uwierzytelnionego użytkownika. Listę można wykorzystać do wyświetlania listy filmów, używając identyfikatora każdego filmu jako klucza.

    Uwaga: istnieje wiele innych sposobów uzyskania identyfikatorów filmów, np. pobieranie wyników wyszukiwania lub wyświetlanie elementów na liście odtwarzania. Ponieważ jednak film może być aktualizowany tylko przez jego właściciela, pierwszym krokiem w tym procesie jest prawdopodobnie pobranie listy filmów należących do użytkownika, który autoryzuje żądanie do interfejsu API.

  • Krok 2. Zaktualizuj film

    Wywołaj metodę videos.update, aby zaktualizować konkretny film. Ustaw wartość parametru part na recordingDetails. (Wartość parametru zależy od tego, które pola metadanych filmu są aktualizowane).

    Treść żądania to zasób video, w którym właściwość id określa identyfikator filmu, który aktualizujesz. W tym przykładzie zasób zawiera też obiekt recordingDetails.

    Przykładowy zasób poniżej wskazuje, że film został nagrany 30 października 2013 r. w Bostonie:

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

    Aby dokończyć żądanie w APIs Explorer, musisz ustawić wartość właściwości id.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update?
            part=snippet

Przesyłanie niestandardowej miniatury i ustawianie jej dla filmu

Aby przesłać niestandardowy obraz miniatury i ustawić go dla filmu, możesz użyć metody thumbnails.set interfejsu API w wersji 3. W żądaniu wartość parametru videoId określa film, do którego będzie używana miniatura.

Nie można przetestować tego zapytania za pomocą narzędzia APIs Explorer, ponieważ nie obsługuje ono przesyłania plików multimedialnych, co jest wymagane w przypadku tej metody.

Powiązane przykłady kodu: PHP, Python

Usuwanie filmów

Ten przykład pokazuje, jak usunąć film. Przykład obejmuje te czynności:

  • Krok 1. Pobierz identyfikator filmu

    Wykonaj powyższe czynności, aby pobrać przesłane filmy z kanału aktualnie uwierzytelnionego użytkownika. Listę można wykorzystać do wyświetlania listy filmów, używając identyfikatora każdego filmu jako klucza.

    Uwaga: istnieje wiele innych sposobów uzyskania identyfikatorów filmów, np. pobieranie wyników wyszukiwania lub wyświetlanie elementów na liście odtwarzania. Ponieważ jednak film może usunąć tylko jego właściciel, pierwszym krokiem w tym procesie jest prawdopodobnie pobranie listy filmów należących do użytkownika, który autoryzuje żądanie do interfejsu API.

  • Krok 2. Usuń film

    Wywołaj metodę videos.delete, aby usunąć konkretny film. W żądaniu parametr id określa identyfikator filmu, który usuwasz. Żądanie musi być autoryzowane za pomocą protokołu OAuth 2.0. Jeśli testujesz to zapytanie w narzędziu APIs Explorer, musisz zastąpić wartość parametru id prawidłowym identyfikatorem filmu.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete?
            id=VIDEO_ID
    

Zgłaszanie filmu naruszającego zasady

W tym przykładzie pokazujemy, jak zgłosić film zawierający nieodpowiednie treści. Przykład zawiera te kroki:

  • Krok 1. Pobierz identyfikatory, które wyjaśniają, dlaczego film jest zgłaszany

    Wyślij autoryzowane żądanie do metody videoAbuseReportReasons.list, aby pobrać listę prawidłowych powodów zgłoszenia filmu. Przykładowy zasób videoAbuseReportReason poniżej zawiera informacje o zgłaszaniu filmów zawierających spam lub treści wprowadzające w błąd.

    {
      "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"
          }
        ]
      }
    }

    Jak widać w zasobie, ten powód jest powiązany z listą powodów dodatkowych. Gdy zgłaszasz film jako spam, musisz podać identyfikator powodu. Zalecamy też podanie drugiego powodu.

  • Krok 2. Zgłoś film z powodu nieodpowiednich treści

    Wyślij autoryzowane żądanie do metody videos.reportAbuse, aby zgłosić film. Treść żądania to obiekt JSON, który zawiera informacje o filmie, który ma zostać zgłoszony, oraz powód zgłoszenia. Jak wspomnieliśmy w kroku 1, w przypadku niektórych typów powodów obsługiwany jest powód dodatkowy, który jest zdecydowanie zalecany.

    Właściwość videoId obiektu JSON identyfikuje film, który jest oznaczany.

    Przykładowy obiekt JSON poniżej oznacza film jako zawierający spam lub wprowadzające w błąd treści, a w szczególności jako wykorzystujący wprowadzającą w błąd miniaturę. Jak widać w przykładowym obiekcie JSON powyżej, identyfikator treści spamowych lub wprowadzających w błąd to S. Identyfikator miniatur wprowadzających w błąd to 28.

    {
      "videoId": "VIDEO_ID",
      "reasonId": "S",
      "secondaryReasonId": "28",
      "comments": "Testing the video flagging feature.",
      "language": "en"
    }

    Żądanie videos.reportAbuse musi być autoryzowane za pomocą protokołu OAuth 2.0. Poniższy link otwiera w Eksploratorze interfejsów API obiekt JSON powyżej. Aby przetestować zapytanie, musisz zastąpić wartość właściwości videoId prawidłowym identyfikatorem filmu. Pamiętaj, że przesłanie tej prośby spowoduje zgłoszenie filmu.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse