Загрузите видео на Youtube с помощью Java

Я пытаюсь загрузить видео на YouTube с помощью YouTube API. При выполнении тестов с неизмененным кодом возникло следующее исключение:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot call getProgress() if the specified AbstractInputStreamContent has no content length. Use  getNumBytesUploaded() to denote progress instead.
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:92)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:49)
at com.google.api.client.googleapis.media.MediaHttpUploader.getProgress(MediaHttpUploader.java:934)
at com.google.api.services.samples.youtube.cmdline.UploadVideo$1.progressChanged(UploadVideo.java:151)
at com.google.api.client.googleapis.media.MediaHttpUploader.updateStateAndNotifyListener(MediaHttpUploader.java:907)
at com.google.api.client.googleapis.media.MediaHttpUploader.resumableUpload(MediaHttpUploader.java:471)
at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:336)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:427)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.google.api.services.samples.youtube.cmdline.UploadVideo.main(UploadVideo.java:165)

Есть идеи, почему и как я могу это исправить?


person Blunderchips    schedule 27.10.2015    source источник
comment
Вы пробовали getNumBytesUploaded() вместо getProgress()?   -  person dguay    schedule 27.10.2015


Ответы (2)


Заменить getProgress() на getNumBytesUploaded()

  System.out.println("Upload percentage: " + uploader.getNumBytesUploaded());

Это работает, вы можете загружать большое видео.

person Jigar Patel    schedule 01.06.2017

Чтобы добиться прогресса с помощью метода getProgress(), API должен знать размер файла, который вы пытаетесь загрузить, который вы можете установить с помощью inputStreamContent.setLength(file.getSize()).

Или вы можете просто использовать getNumBytesUploaded(), как предложено.

person Kolawole    schedule 18.04.2018