gpt4 book ai didi

google-apps-script - 如何以编程方式获取谷歌驱动器文件的文件(视频)持续时间?

转载 作者:行者123 更新时间:2023-12-04 15:45:22 25 4
gpt4 key购买 nike

可以使用 rest API、Google Scripts、Node SDK,无论哪种都行。

我在文档中看到了这个,但似乎没有告诉我持续时间:

function watchFile(fileId, channelId, channelType, channelAddress) {
var resource = {
'id': channelId,
'type': channelType,
'address': channelAddress
};
var request = gapi.client.drive.files.watch({
'fileId': fileId,
'resource': resource
});
request.execute(function(channel){console.log(channel);});
}

我找到了这个链接,但它似乎没有帮助 https://apis-nodejs.firebaseapp.com/drive/classes/Resource $Files.html#watch

最佳答案

  • 您想检索 Google Drive 上视频的时长。
  • 您想使用 Google Apps 脚本实现这一目标。

如果我的理解是正确的,这个示例脚本怎么样?在此修改中,我使用了 Drive API 的 files.get 和 files.list 方法。根据您的问题,我认为端点直接请求的脚本可能对您的情况有用。所以我提出了以下脚本。

1。使用 files.get 方法

在此示例脚本中,持续时间是从视频文件中检索的。

示例脚本:

function sample1() {
var fileId = "###"; // Please set the file ID of the video file.

var fields = "mimeType,name,videoMediaMetadata"; // duration is included in "videoMediaMetadata"
var url = "https://www.googleapis.com/drive/v3/files/" + fileId + "?fields=" + encodeURIComponent(fields) + "&access_token=" + ScriptApp.getOAuthToken();
var res = UrlFetchApp.fetch(url);
var obj = JSON.parse(res);
Logger.log("filename: %s, duration: %s seconds", obj.name, obj.videoMediaMetadata.durationMillis / 1000);

// DriveApp.getFiles() // This line is put for automatically detecting the scope (https://www.googleapis.com/auth/drive.readonly) for this script.
}

2。使用 files.list 方法

在此示例脚本中,持续时间是从包含视频文件的文件夹中检索的。

示例脚本:

function sample2() {
var folderId = "###"; // Please set the folder ID including the video files.

var q = "'" + folderId + "' in parents and trashed=false";
var fields = "files(mimeType,name,videoMediaMetadata)"; // duration is included in "videoMediaMetadata"
var url = "https://www.googleapis.com/drive/v3/files?q=" + encodeURIComponent(q) + "&fields=" + encodeURIComponent(fields) + "&access_token=" + ScriptApp.getOAuthToken();
var res = UrlFetchApp.fetch(url);
var obj = JSON.parse(res);
for (var i = 0; i < obj.files.length; i++) {
Logger.log("filename: %s, duration: %s seconds", obj.files[i].name, obj.files[i].videoMediaMetadata.durationMillis / 1000);
}

// DriveApp.getFiles() // This line is put for automatically detecting the scope (https://www.googleapis.com/auth/drive.readonly) for this script.
}

注意事项:

  • 这些是简单的示例脚本。因此,请根据您的情况修改它们。
  • 我不确定您的视频文件的格式。因此,如果上述脚本不能用于您的情况,我深表歉意。

引用资料:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

更新时间:2020 年 3 月 19 日

自 2020 年 1 月起,访问 token 不能与 access_token=### 等查询参数一起使用。 Ref所以请使用请求 header 的访问 token 而不是查询参数。具体如下。

var res = UrlFetchApp.fetch(url, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});

关于google-apps-script - 如何以编程方式获取谷歌驱动器文件的文件(视频)持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55989742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com