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ść naapplication/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 MIMEapplication/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: