Прежде всего позвольте мне сказать, что я не спрашиваю «как проверить статус ранее загруженного видео». Мой вопрос заключается в получении статуса видео из ответа на загрузку. Я использую dotnet-клиент, и сразу после завершения загрузки ответ представляет собой объект Google.Apis.Youtube.v3.Data.Video
. Этот объект имеет свойство, называемое Status
, которое содержит следующие поля: RejectionReason
, PrivacyStatus
и UploadStatus
. Проблема в том, что только значения PrivacyStatus и UploadStatus имеют значения. RejectionReason имеет значение null. Джефф Posnick отметил, что (see whole thread here)Обработка дублированной загрузки видео Youtube с использованием API YouTube API v3 Клиент Dotnet
Там нет никакого способа, чтобы определить, является ли видео дубликата или нет, как часть ответа загрузки, потому что YouTube не знает, является ли видео дубликата, пока она не обрабатывается видео и обработка происходит после завершения загрузки
Это немного странно, потому что, когда я выдаю файл video.list сразу после загрузки, API возвращает статус для загруженного видео. Поэтому, даже если видео не опубликовано, и похоже, что YouTube все еще индексирует/обрабатывает видео, он уже знает статус «только что загруженного видео». Так почему он не может вернуть статус как часть ответа?
Важно, чтобы ответ включал статус, потому что если нет, то в коде нам нужно делать два вызова API каждый раз, когда мы делаем загрузку: (1) insertmediaupload then (2) video.list. Это было бы очень дорогостоящей операцией, особенно, что не все закачки будут дублироваться.
EDIT В ответ на комментарий Jeff-Posnick в ниже вопрос «может API подождать несколько секунд и проверить, если обработка выполняется, а затем включить статус как часть ответа?».
Я придумал этот вопрос из-за поведения, которое я видел: That's a bit strange because when I issue a video.list right after the upload the API returns a status for the uploaded video
. Но я играл с API и получил непоследовательные результаты. Я загружал одно и то же видео снова и снова, и иногда есть «дублированный» статус, а иногда нет. Пожалуйста, обратите внимание на шаги, которые я предпринял, № 1 и № 2 выше. Между этими двумя вызовами API нет других кодов.
Я отредактировал мое сообщение. Я бы согласился с тем, что лучше всего использовать механизм обратного вызова.Кроме того, я начал использовать метод опроса для проблемы, которую я имею, это единственное решение, которое мы можем получить в соответствии с v3 API. –