Help

The Community will be temporarily unavailable starting on Friday February 28. We’ll be back as soon as we can! To learn more, check out our Announcements blog post.

How can i get an attachment from a table and send it in a PUT call?

1872 1
cancel
Showing results for 
Search instead for 
Did you mean: 
mikepowers
4 - Data Explorer
4 - Data Explorer

So im trying to upload videos to youtube via an airtable database. Currently my application sends video files to a database in airtable and I want to build a script that sends the attachment to a specific URL. Im having trouble figuring out the script to query the URL and then how do I format it correctly so the PUT call will accept it. 

Ive provided a screenshot of what my simple database looks like. I need to have the attachment in the "Videos" field be sent in the "<file contents here>" portion of the follow script:

 

var myHeaders = new Headers();
myHeaders.append("Content-Type""video/mp4");

var file = "<file contents here>";

var requestOptions = {
  method: 'PUT',
  headers: myHeaders,
  body: file,
  redirect: 'follow'
};
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error'error));
 
If anyone could help me on this one it would be greatly appreciated as I'm very new to airtable and not to familiar with querying! Thanks! 
 
 
1 Reply 1
mikepowers
4 - Data Explorer
4 - Data Explorer

I tried to make some sample code and idk if this will help but its the start I have

// Airtable Script to Find a File in a Table and Upload it using Fetch API

let table = base.getTable("upload");
let query = await table.selectRecordsAsync();

// Find the file record in the "upload" table with the video file attachment
let record = query.records.find(record => record.getCellValue("Video") !== null);

// Check if a file record was found
if (record) {
// Get the file contents from the attachment field
let attachment = record.getCellValue("Video");
let url = attachment[0].url;

// Set the headers and request options for the fetch API
let myHeaders = new Headers();
myHeaders.append("Content-Type", "video/mp4");

let requestOptions = {
method: 'PUT',
headers: myHeaders,
body: await fetch(url).then(response => response.blob()),
redirect: 'follow'
};

// Make the fetch request to upload the video file to YouTube
fetch("https://www.googleapis.com/upload/youtube/v3/videos", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
}
else {
console.log("No file record found in the 'upload' table with a video attachment.");
}