Google Drive - DriveApp получить миниатюру видео на электронную таблицу
Я пытаюсь организовать огромный список видеофайлов на Google Диске, где я использую приведенный ниже код для отображения изображений JPG.
function myFiles() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('MyImages');
var files = DriveApp.getFiles();
var s='';
var cnt=1;
while(files.hasNext())
{
var fi=files.next();
var type=fi.getMimeType();
if(type==MimeType.GIF || type==MimeType.JPEG || type==MimeType.PNG)
{
sh.appendRow([cnt++,fi.getName(),type,fi.getUrl(),'=IMAGE("' +
getThumbNailLink(fi.getId()) + '",1)']);
}
}
}
function getThumbNailLink(fileId)
{
var file=Drive.Files.get(fileId);
return file.thumbnailLink;
}
У меня вопрос и проблема в том, есть ли способ показать миниатюры для видеофайлов, например, как диск в представлении папки? Таким образом, идея состоит в том, чтобы связать файл и показать миниатюру файла в электронной таблице, помогая организовать коллекцию.
Спасибо
1 ответ
Вы хотите импортировать "counter, filename, mimetype, link of file, thumbnail" для каждого видеофайла в электронную таблицу. Если мое понимание верно, как насчет этой модификации?
Точки модификации:
- Ссылки на миниатюры из видеофайлов можно получить с помощью Drive API.
- Вы можете получить видео файлы, используя mimetype, например
video/mp4
, - Соберите данные каждого файла и импортируйте собранные данные, используя
setValues()
,- Это более эффективно, чем при использовании
appendRow()
с петлей.
- Это более эффективно, чем при использовании
Модифицированный скрипт:
function myFiles() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName('MyImages');
var files = DriveApp.getFiles();
var s = '';
var cnt = 1;
var values = []; // Added
while(files.hasNext()) {
var fi = files.next();
var type = fi.getMimeType();
if (type.indexOf("video") > -1) { // Modified
values.push([cnt++,fi.getName(),type,fi.getUrl(),'=IMAGE("' + getThumbNailLink(fi.getId()) + '",1)']); // Modified
}
}
if (values.length > 0) { // Added
sh.getRange(sh.getLastRow() + 1, 1, values.length, values[0].length).setValues(values); // Added
}
}
function getThumbNailLink(fileId) {
var file = Drive.Files.get(fileId);
return file.thumbnailLink;
}
Замечания:
- По моему опыту, когда видеофайлы загружаются на Google Drive с использованием Drive API, ссылку на миниатюру можно извлечь из файлов, которые можно увидеть в миниатюре.
- Если вы хотите получить данные из другого mimetype видеофайла, пожалуйста, измените
if (type == "video/mp4") {
,
Если я неправильно понимаю ваш вопрос, извините.