Skip to content

Instantly share code, notes, and snippets.

@slicksammy
Created November 21, 2025 15:56
Show Gist options
  • Select an option

  • Save slicksammy/6f0d8338dfcd06e0700a04bcc7e242b0 to your computer and use it in GitHub Desktop.

Select an option

Save slicksammy/6f0d8338dfcd06e0700a04bcc7e242b0 to your computer and use it in GitHub Desktop.
screenshot
// screenshots must be an array of objects like:
// {
// filename: "...",
// url: "...",
// timestamp: "...",
// uploadedAt: ...
// }
const screenshots = $input.first().json.screenshots || [];
async function fetchImageBase64(url) {
try {
const data = await this.helpers.request({
url,
method: "GET",
encoding: null, // return a Buffer
json: false
});
return Buffer.from(data).toString("base64");
} catch (err) {
console.error(`Failed to load screenshot: ${url}`, err.message);
return null; // signal failure
}
}
const aiImages = [];
for (const ss of screenshots) {
try {
const base64 = await fetchImageBase64.call(this, ss.url);
if (!base64) {
// skip if failed or corrupt
continue;
}
aiImages.push({
type: "image",
source: "screenshot",
filename: ss.filename,
timestamp: ss.timestamp,
uploadedAt: ss.uploadedAt,
content: `data:image/png;base64,${base64}`
});
} catch (err) {
// Catch any unexpected error and continue
console.error("Unexpected screenshot conversion error:", err.message);
continue;
}
}
// return { content: aiImages[0].content }
return { aiImages };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment