Przesyłanie z możliwością wznowienia

Możesz przesyłać filmy w bardziej niezawodny sposób, korzystając z protokołu umożliwiającego wznowienie przesyłania w interfejsach Google API. Ten protokół umożliwia wznowienie operacji przesyłania po przerwie w działaniu sieci lub innym błędzie transmisji, co pozwala zaoszczędzić czas i przepustowość w przypadku awarii sieci.

Przerywane przesyłanie jest szczególnie przydatne w tych sytuacjach:

  • Przenosisz duże pliki.
  • Prawdopodobieństwo przerwania połączenia jest wysokie.
  • Przesyłanie danych pochodzi z urządzenia o niskiej przepustowości lub niestabilnym połączeniu z internetem, takiego jak urządzenie mobilne.

W tym przewodniku opisujemy sekwencję żądań HTTP, które aplikacja wysyła, aby przesłać filmy za pomocą procesu przerywanego przesyłania. Ten przewodnik jest przeznaczony przede wszystkim dla deweloperów, którzy nie mogą korzystać z bibliotek klienta interfejsu API Google, z których niektóre obsługują wbudowane wznawialne przesyłanie. W przewodniku YouTube Data API – przesyłanie filmu znajdziesz informacje o tym, jak za pomocą biblioteki klienta interfejsów API Google dla języka Python przesłać film przy użyciu procesu umożliwiającego wznowienie przesyłania.

Uwaga: możesz też wyświetlić serię żądań wysłanych w ramach przerywanego przesyłania lub innej operacji interfejsu API, korzystając z jednej z bibliotek klienta interfejsu API Google z włączonym rejestrowaniem HTTPS. Aby na przykład włączyć śledzenie HTTP w Pythonie, użyj biblioteki httplib2:

httplib2.debuglevel = 4

Krok 1. Rozpocznij sesję z możliwością wznowienia

Aby rozpocząć przerywane przesyłanie filmu, wyślij żądanie POST na ten adres URL. W adresie URL ustaw wartość parametru part na odpowiednią dla Twojego żądania. Pamiętaj, że wartość parametru identyfikuje części zawierające właściwości, które ustawiasz, a także części, które mają być uwzględnione w odpowiedzi interfejsu API. Wartości parametrów w adresie URL żądania muszą być zakodowane na potrzeby adresu URL.

https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=PARTS

W treści żądania ustaw zasób video. Ustaw też te nagłówki żądania HTTP:

  • Authorization – token autoryzacji żądania.
  • Content-Length – liczba bajtów podana w treści żądania. Jeśli używasz kodowania transferu w porcjach, nie musisz podawać tego nagłówka.
  • Content-Type – ustaw wartość na application/json; charset=UTF-8.
  • X-Upload-Content-Length – liczba bajtów, które zostaną przesłane w kolejnych żądaniach. Ustaw tę wartość na rozmiar pliku, który przesyłasz.
  • x-upload-content-type – typ MIME pliku, który przesyłasz. Możesz przesyłać pliki z dowolnym typem MIME wideo (video/*) lub typem MIME application/octet-stream.

Poniższy przykład pokazuje, jak zainicjować sesję z możliwością wznowienia w celu przesłania filmu. Żądanie ustawia (i pobiera) właściwości w częściach snippet i status zasobu video, a także pobiera właściwości w części contentdetails zasobu.

post /upload/youtube/v3/videos?uploadType=resumable&part=parts http/1.1
host: