gpt4 book ai didi

node.js - 在 Electron 版本中,YouTube API上传返回状态200,并且没有错误,但没有上传。相同的代码可在常规NodeJS项目中使用

转载 作者:行者123 更新时间:2023-12-03 12:32:30 26 4
gpt4 key购买 nike

我正在尝试使用来自googleapis的YouTube v3 api将视频上传到YouTube。当我这样做时,videos.insert函数将返回以下输出(底部对象):image of output
执行此过程大约需要5秒钟,并返回状态200。但是,问题是它实际上没有上传视频,确实插入了我的YouTube视频中,但是没有上传数据并且YouTube显示失败上载。
问题不在于身份验证,因为我可以使用相同的OAuth2请求 channel 信息,并且不返回任何错误。
对我来说,最奇怪的是,使用相同的googleapis库的相同代码确实可以在常规NodeJS项目上使用。它可以正确上传视频。
有谁知道与NodeJS相比Electron可能有什么不同?
由Electron发送的请求:
Request body
Electron 上传功能:https://github.com/RuurdBijlsma/MovieMaker/blob/master/movie-maker/src/plugins/vuex/auth-module.js#L69

async uploadVideo({commit, getters, rootState}) {
console.log("Upload", filePath, service);
commit('ytUpload', true);
commit('ytDone', false);
commit('ytProgress', 0);
commit('ytUrl', '');

let filePath = 'C:/Users/Ruurd/Videos/soep.mp4';
let fileSize = fs.statSync(filePath).size;
let title = 'What up gang my new rocet league video here';
console.log("Uploading", title);
let res = await service.videos.insert({
auth: getters.oauth,
part: 'snippet,status',
resource: {
snippet: {
title,
description: 'how u doing'
},
status: {
privacyStatus: "unlisted"
},
},
media: {
mimeType: 'video/mp4',
body: fs.createReadStream(filePath)
},
}, {
onUploadProgress: function (e) {
console.log('progress', e.bytesRead / fileSize);
}
});
console.log(res);
},
NodeJS上传代码: https://gist.github.com/RuurdBijlsma/bad525ce011a0d08eeece6e02a7d1c5b
async function upload() {
authorize();
let filePath = 'C:/Users/Ruurd/Videos/soep.mp4';
let fileSize = fs.statSync(filePath).size;
let service = google.youtube('v3')
let title = 'test1' + Math.random();
console.log("Uploading", title);
let res = await service.videos.insert({
auth: oauth2Client,
part: 'snippet,status',
resource: {
snippet: {
title,
description: 'test'
},
status: {
privacyStatus: "unlisted"
},
},
media: {
mimeType: 'video/mp4',
body: fs.createReadStream(filePath)
},
}, {
onUploadProgress: function (e) {
console.log(e.bytesRead / fileSize);
}
});
console.log(res);
}

最佳答案

我最终将上载功能移到了 Electron 应用程序的主要过程中,现在可以使用了。虽然不确定为什么需要这样做,但我在渲染器中使用了许多其他仅Node包(express,fluent-ffmpeg,electron-context-menu),并且可以通过在electronBuilder配置中将它们声明为Node包来使用它们(外部)
imo不是一个很好的解决方案,但它现在可以使用。我仍然觉得完全上传失败而没有任何错误或警告仍然很奇怪

关于node.js - 在 Electron 版本中,YouTube API上传返回状态200,并且没有错误,但没有上传。相同的代码可在常规NodeJS项目中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65343408/

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