Web Dev CodyW
Convex Community16mo ago
4 replies
Web Dev Cody

youtube api in action

I'm trying to upload a file to youtube from a convex action, but I get this error:

Uncaught TypeError: part.body.pipe is not a function
    at multipartUpload (../node_modules/googleapis-common/build/src/apirequest.js:180:12)
    at createAPIRequestAsync (../node_modules/googleapis-common/build/src/apirequest.js:219:12)
    at createAPIRequest (../node_modules/googleapis-common/build/src/apirequest.js:52:4)
    at insert [as insert] (../node_modules/googleapis/build/src/apis/youtube/v3.js:2595:12)
    at handler (../convex/youtube.ts:104:6)


const youtube = google.youtube({ version: "v3", auth: oauth2Client });
    const fileStream = file.stream();
    const fileSize = file.size;

    await youtube.videos.insert(
      {
        part: ["snippet", "status"],
        requestBody: {
          snippet: {
            title: video.title,
            description: "this video was created using thevideocrafter.com",
          },
          status: {
            privacyStatus: "private",
          },
        },
        media: {
          body: fileStream,
        },
      },
      {
        onUploadProgress: (evt) => {
          const progress = (evt.bytesRead / fileSize) * 100;
          console.log(`${progress.toFixed(2)}% complete`);
        },
      }
    );
Was this page helpful?