Отличный ответ! Я не проверял предоставленное вами решение, но думаю, что в этом причина. Причина запуска внутри скрипта приложений заключается в том, что я хотел избежать работы с сетью на стороне клиента, поэтому я помещу все в сценарий для запуска за пределами клиента.
аюсь импортировать список файлов с Google Drive на YouTube. Метаданные и URL-адрес файла находятся в электронной таблице Google, поэтому я написал некоторый код с помощью скрипта Google Apps, который выполняет следующие действия.
Получить выбранные строкиПолучить заголовок, описание, Google Drive URLЗагрузите файл с Google Drive черезDriveApp.getFileById
Загрузите BLOB-объект на YouTube, используя заголовок и описание черезYouTube.Videos.insert
Обновите выбранную строку идентификатором видео YouTube из ответаЗагрузка выглядит примерно так
var blob = DriveApp.getFileById(id).getBlob();
var resource = {
snippet: {
title: 'The title',
description: 'A long description ...',
defaultLanguage: 'de',
categoryId: 17,
tags: [ 'Sport', 'Fitness' ],
},
status: {
privacyStatus: 'unlisted'
}
}
try {
var result = YouTube.Videos.insert(resource, "snippet,status", blob);
return result.id;
} catch (err) {
console.log({message: 'Error ' + err.message, error: err});
}
Этот код уже работал около года назад. Я немного адаптировал его, но теперь не получаю ответа отYouTube.Videos.insert
вызов. Следующее зарегистрировано внутри улова:
сообщение: Ошибка Пустой ответ
ошибка: исключение: пустой ответ
Не очень полезно.
Перед загрузкой я делаюYouTube.Channels.list
чтобы получить целевой канал, если доступно несколько каналов. Для этого запроса мне нужно разрешить доступ к моим данным, и меня спрашивают только при первом вызове. Я также вижу сценарий в спискеприложения для моей учетной записи Google, Я предполагаю, что разрешения в порядке.
Любые предложения о том, как я могу получить больше информации по этому вопросу, или я должен сделать что-то по-другому?
Что касается целевого канала (и это может быть другой вопрос), я не могу использовать это, так как кажется, что я могу загрузить только на определенный канал, если я являюсь партнером по контенту YouTube (см. ПараметрыonBehalfOfContentOwner а такжеonBehalfOfContentOwnerChannel):
Запись: Этот параметр предназначен исключительно для контент-партнеров YouTube.